2013/02/01
■ [変愚蛮怒/スポイラー]ストリーマーの生成(変愚蛮怒 Ver2.1.1)
ストリーマーとは図のように、偏りつつも散らばって生成された壁地形のことである。
ストリーマーはダンジョン生成中に湖地形が作られていない場合を前提として、以下の処理で生成される。
- ダンジョン毎に定義された第2ストリーマー地形生成をbuild_streamer()関数で4回、レア度15で試みる。
- ダンジョン毎に定義された第1ストリーマー地形生成をbuild_streamer()関数で4回、レア度15で試みる。
- build_streamer()関数は以下の処理でストリーマーを生成する。
- ストリーマーの縦横の開始地点を中央から(ダンジョンの長さ/3)付近の範囲でランダムに決める。
- そこからストリーマーの伸びる方向を、8方向から決める。
- ストリーマーの各地点で5回に渡って以下の処理を繰り返す。ストリーマーの地点がフロア外にはみ出るまで繰り返す。
- ストリーマーの生成地点から周辺5マスのどこかを定める。
- その地点が床地形/水地形/溶岩地形ならキャンセル。
- 永久地形ならばキャンセル。
- ストリーマーが壁地形ならば、閉じたドアや、特別な生成で作られた地形にならばキャンセル。
- その地形にモンスターやアイテムが配置されていた場合は削除される。
- ストリーマーが財宝を含んだ地形ならば、1/(レア度)の確率で財宝を含ませ、そうでなければもう一度1/(レア度)の確率で隠された財宝を含ませる。
- ストリーマーの生成地点を伸びる方向に向けて1マス進める。
このような生成プロセスになっているので、ストリーマーの流れは特に大きなダンジョンを見ると、くっきりと太さ11マスの線のように見えたりする。不自然だけど仕方ないね。