2013/03/13
■ [変愚蛮怒/スポイラー]amusement()関数による誰得の巻物生成処理(変愚蛮怒 Ver2.1.2 rev3345)
新規に追加された誰得の巻物及び*誰得*の巻物はamusement()関数により実装されている。
void amusement(int y1, int x1, int num, bool known)
この関数は指定の座標にnum回分誰得なアイテムを生成する。誰得ならば1回、*誰得*ならば1+1d2回である。
処理の流れは以下の通り。
- 以下のテーブルに従ってオブジェクトを生成率を指定する。
Tval | Sval | 生成比率 | 備考 |
ボトル(BOTTLE) | 任意 | 5 | 特になし |
ゴミ類(JUNK) | 任意 | 3 | 複数生成 |
くさび(SPIKE) | 任意 | 10 | 大量生成 |
彫像(STATUE) | 任意 | 15 | 特になし |
死体(CORPSE) | 任意 | 15 | ユニークはなし |
骨(SKELETON) | 任意 | 15 | ユニークはなし |
人形(FIGURINE) | 任意 | 10 | ユニークはなし |
羊皮紙(PARCHMENT) | 任意 | 1 | 特になし |
竿状武器(POLEARM) | 釣竿 | 3 | 特になし(実質INSTA_ART作用で★太公望) |
剣(SWORD) | 折れたダガー | 3 | 固定アーティファクト(実質★手品師) |
剣(SWORD) | 折れたダガー | 10 | 特になし |
剣(SWORD) | 折れた剣 | 5 | 特になし |
巻物(SCROLL) | 誰得 | 10 | 特になし |
- numを要求される残り生成回数とみなし、0になるまで以下の処理を繰り返す。
- 上記の生成比率に従って、ランダムに一種類を選ぶ
- 固定アーティファクトの指定があった場合該当のアーティファクトとして生成する処理を行う。
- 通常生成の場合apply_magic()によりエゴ/アーティファクト生成になる可能性はある、ただしベースアイテム的にそのままでは勿論誰得なので修理してもらおう(提案)。
- 複数生成の場合数が1d3になる。
- 大量生成の場合数が1d99になる。
- 以上生成に成功すればnumを1減らす。