2013/02/06
■ [変愚蛮怒/スポイラー]process_monster()関数によるモンスターの行動処理(変愚蛮怒 Ver2.1.1 rev3265)
process_monster()関数はモンスターにターンが回ってきた際の処理が非常に長々と書かれている。全仕様を詳細に述べるとややこしくなるので、とりあえず大まかな流れだけ今回にまとめて、重要度の高いものは別項にまとめる。
- モンスターにRIDINGフラグがないのに、@さんがそれに騎乗している状態なら、この時点で落馬処理が行われる(通常変身などの直後に落馬処理が行われるはずなので、恐らく保険としての処理)
- モンスターの正体が眠っていないカメレオンならば1/13の確率で別のモンスターに変身する。
- @さんが忍者の超隠密状態ならば、一定の確率でモンスターは「気づかない状態」(aware=FALSE)状態になり、以下の一部の行動を行わない。
- 召喚などによって生成されて、親元が存在しているモンスターならば、その親元のモンスターが既にフロア中から消滅していると同様に削除される。
- QUANTUM(量子生物)フラグを持っているモンスターはQUESTERでない限り一定確率で自然消滅する。(ペットならば@さんが悲しい気分になる)
- 手榴弾はダメージ1を無条件に受ける(0になれば爆発する仕様になっている)
- 場が闘技場でなく、ペットか友好的なユニークやナズグル(準ユニーク)はHPが最大の1/3未満に陥っている場合、危機を感じて撤退しようとする。
- @さんが騎乗中のモンスターの場合「束縛から逃れようとしている!」と警告が出て、2ターン後に消滅、落馬処理が発生する。
- 蛆虫爺の狗共(『くいつき』『きば』『おおかみ』)以外でCAN_SPEAK持ちのユニークならば、「ピンチだ!退却させてもらう!」と丁寧に断る。
- レベルテレポートの巻物を読んで撤退する。(実質は単なるフロアからの削除であってどこかの階に必ず再生成される訳ではない)
- 何故か騎乗中のモンスターならばまた落馬処理が発生する。
- モンスターがまだ眠っている場合、この時点で処理が終了する。
- @さんが反感を持っている場合はこの時点で無条件に目を覚ます。
- モンスターが朦朧としている状態なら1/2の確率で行動キャンセルで処理が終了する。
- @さんが反感持ちなら友好的なモンスターや、ペットのユニーク、ナズグル(準ユニーク)は即座に敵に回る。
- MULTIPLYモンスターの増殖処理。
- 闘技場でなければ、CAN_SPEAK持ちの場合会話メッセージが表示される。
- 魔法詠唱確率を通った場合の魔法選択、実行処理。(別の関数にすべきなほど長い、後日別記事)
- モンスターの移動処理(別の関数にすべきなほどクッソ長い、後日別記事)