2013/01/29
■ [変愚蛮怒/スポイラー]place_monster_one()関数の処理の流れ(変愚蛮怒 Ver2.1.1)
単体でモンスターを配置する関数。
- 広域マップ上では生成キャンセル。
- フロアの範囲外では生成キャンセル。
- 0は生成されない。
- PM_IGNORE_TERRAINフラグでの生成では無い場合パターンのマスやモンスターの侵入可能な地形で無い場合キャンセル。
- 闘技場以外では、同じフロアに既に規定数以上のモンスターが生成されている場合はキャンセルされる。
- ユニーク/準ユニークの場合1体まで
- ナズグルの場合5体まで
- 『バーノール=ルパート』は、摂政『バーノール公』と『ルパート将軍』がいる場合生成キャンセルされる。
- FORCE_DEPTHフラグ持ちのモンスターは規定の階未満では生成キャンセルされる。ただし、悪夢モードの場合QUESTOR扱いのモンスターでない限り生成される可能性を持つ。
- 生成モンスターがその階のクエストの撃破対象である場合は生成キャンセル。(クエストモンスターは別処理で配置される)
- 守りのルーン上では1d550>モンスターレベル+20の判定を突破しない限り生成キャンセルされる。突破した場合守りのルーンを破壊して生成される。
- 生成するマスに既にモンスターがいた場合は生成キャンセル。
- この時点でモンスターの生成は確定。ステータスは随時モンスター種族を元に代入していくか、処理の流れは以下のようにある程度分岐する。
- モンスターの種族IDを設定
- モンスターの表面上の種族IDを決める。
- TANUKIフラグを持っている場合、ユニークでなく、クエストターゲットでなく、さらにFORCE_DEPTH持ちで生成制限にかかっていない全てのモンスターを対象に変身IDを決める。
- PM_KAGEフラグ持ちの生成ならば表面上の種族が「あやしい影」になる。
- CHAMELEONフラグ持ちのモンスターは変身先を決めた上で表面上のIDをそれに定める。
- それ以外は本来の種族IDをそのまま生成する。
- PM_PETフラグ持ちでの生成の場合、@さん/プレイヤーのIDを親として代入しておく。
- @さんのペットが召喚したモンスターは親IDを保持した上で@さんのペットとなる。
- PM_NO_PETによる生成なら、この時点で無条件にペットフラグを外す。
- PM_FORCE_PETによる生成なら、この時点で無条件にペットフラグをつける。
- モンスター種族がFRINEDLYの場合、@さんと属性が合えば、友好的なモンスターとして生成される。
- PM_ALLOW_SLEEPつきの生成で、睡眠値を持つモンスター種族で、悪夢モードでない場合はモンスターを眠らせた状態で生成。
- FORCE_MAX持ちなら、HPを最大にして生成、そうでない場合、規定のダイスを振って生成。
- 悪夢モードならそこからHP2倍、ただし、30000は超えない。
- PM_HASTEフラグによる生成なら加速を与える。
- 悪夢モードなら生成されたてのモンスターに次のターンが回ってくるスピードが上がる。
- 悪夢モードでなく、FORCE_SLEEPフラグ持ちなら、常に眠らせる。
- @さんが警告持ちなら、この時点で指輪が生成階にたいするモンスターのレベル差に合わせて光る。
- 生成されたマス目の上が爆発のルーンなら爆発判定、1d299>モンスターレベルなら爆発するが、そうでなければ解除される。