2013/01/23
■ [変愚蛮怒/スポイラー]build_type15()の部屋生成プロセス(変愚蛮怒 Ver2.1.1)
2013/01/24 追記
コメント欄で指摘頂いた件が判明したので修正。
本文
- 横サイズ:xsize = 9~13 を設定
- 縦サイズ:ysize = 9~13 を設定
- xsize+2, ysize+2に合うスペースを探す(find_space()関数)。スペースがなければ、生成をキャンセルする。
- 生成階 <= randint1(25)かつダンジョンにDARKNESSフラグがないなら、部屋全体を最初から明るくする。
- 一旦確保した全フロアをガラスの床に変える。
- 確保したフロアの周囲1マスをガラスの壁に変える。ただし、ダンジョンの生成によっては下図の通り、通路部分や低確率の生成により従来通りの壁が生成されることもある。
- ガラス部屋に固定配置できるモンスターを定義する。以下の2パターンがある。
- 閃光攻撃持ちモンスター
- vault配置可能モンスターであること(ユニークでなく、水棲でないこと)
- 閃光のブレス(BR_LITE)かスター・バースト(BA_LITE)を持っていること。
- 壁抜け(PASS_WALL)、壁破壊(KILL_WALL)、分解のブレス(BR_DISI)を持っていないこと。
- 破片攻撃持ちモンスター
- vault配置可能モンスターであること(ユニークでなく、水棲でないこと)
- 破片のブレス(BR_SHAR)持ちであること。
- 閃光攻撃持ちモンスター
- 1d3を振って、出た目に応じて以下の地形を中央に生成する。
- 1の場合、下図のように4つの極小部屋に閃光属性攻撃モンスターを配置し、中央に薬のある部屋を置く、中央の部屋はいずれか4方向にガラスの扉を持つ。
- 2の場合、下図のように、一つのカーテンに囲まれた極小部屋に閃光属性攻撃モンスターを一つ配置する。
- 3の場合、下図のように中央の部屋に4体の破片属性攻撃モンスターと薬2つを配置する。
いつも興味深く拝見しております。ガラス部屋に配置されるモンスターなのですが、閃光攻撃持ちだけではなく、薬とガラスを破壊する属性の攻撃手段を持つ敵が入っている事が多いように思います(グレートクリスタルDとか、フォースZとか)。本来の意図とは違うことが実際には起こっているのでしょうか?
仰る通りで、今回生成している例でも明らかに破片攻撃持ちのモンスターが配置されているケースもままあるようです。何処か誤読しているか、見逃している条件がある可能性は大です。とりあえず上記のモンスター選別はvault_aux_lite()関数を基準としたものとして記述しました。判明次第追記したいと思います。
見落とした場所が判明したので修正しました。 <br>スクリーンショット見れば一目瞭然だったのですが、3のケースの場合のみ破片ブレス持ちが生成されるようです。ご指摘ありがとうございました。
いつか通路接続のアルゴリズムをばお願いします…
返信チェック思いっきり遅れました。失敬。 <br>確かに題材にはなりそうですし、折あればやってみます。