トップ «前の日記(2013/01/14) 最新 次の日記(2013/01/16)» 編集

SikabaneWorksが関係するコンテンツ(主に*band系ローグライク)の開発近況・補足から全く個人的な雑記まで。

[WEB:屍の見える丘公園]| [RSS]

Angband | Badiashimshe | C# | CRAUZEL | D'angband/小説草稿 | D'angband/開発 | DarkSouls | Demon'sSouls | DungeonCrawl | ElvenUteruses | Haskell | Hengband | J9シリーズ | LEGO | LineDrawing | MISC | MTG | Mac | Math | Moria | R-18 | Roguelike | Rough | RoughSketch | Ruby | SDL | UNIX | VMware | WarHammer | Zangband | アタシラヂョウヲウ | イラスト | ガジェット | ゲーム | ゲーム紹介 | ゲーム製作技術 | ゲーム論 | スケッチ | ツクール | テクノロジー | ニコニコ動画 | ファルコム | ファンタジー | マリオ | ヴィーヤウトゥムノ | 別記事追加予定 | 変愚蛮怒 | 変愚蛮怒/スポイラー | 変愚蛮怒/元ネタ探訪 | 変愚蛮怒/攻略 | 変愚蛮怒/開発 | 宗教 | 情報 | 政治 | 文字コード | 日ペ昔話 | 東方ワンドロ | 東方外法漢女 | 歴史 | 漫画製作 | 版権絵 | 画像処理 | 翻訳 | 自然言語 | 艦隊これくしょん | 落書き | 言語解析 | 読書 | 超人ロック | 追記予定 | 通信 | 阿片窟 | 馬鹿馬鹿蛮怒/開発 | 魔法少女まどか☆マギカ | 魚類版深夜の真剣お絵描き60分一本勝負


2013/01/15

[変愚蛮怒/スポイラー]build_type5()の部屋生成プロセス(変愚蛮怒 Ver2.1.1)

  • 最初にどのような部屋にするかを確定する。巣(nest)には予め以下のテーブルが定義されている。
名称モンスター選別関数1モンスター選別関数2生成階chance
"クローン"vault_aux_clonevault_prep_clone53
"ゼリー"vault_aux_jellyNULL56
"シンボル(善)"vault_aux_symbol_gvault_prep_symbol252
"シンボル(悪)"vault_aux_symbol_evault_prep_symbol252
"ミミック"vault_aux_mimicNULL304
"狂気"vault_aux_cthulhuNULL702
"犬小屋"vault_aux_kennelNULL454
"動物園"vault_aux_animalNULL355
"教会"vault_aux_chapel_gNULL754
"アンデッド"vault_aux_undeadNULL755
  • pick_vault_type()で現在の階>生成階で、かつd_info.txtのnestビットで許可されているパターンのみを生成の対象にする。各巣が選ばれる確率は その巣のchance値/生成チャンスのある全ての巣のchance 総計である。
  • 該当の巣がない場合生成をキャンセルする。
  • モンスター選別関数1と2を元に現在の階+11のモンスターを一体選ぶ。100回試行して選べなければ部屋の生成キャンセル。
    • そのモンスターの属性がEVILなら、生成条件にEVILフラグ持ち、GOODフラグなら生成条件にGOODフラグを持たせる。
  • 予め横25マス、縦11マスの余裕があるフロアを探し、見つからなければ生成をキャンセルする。
  • 確保した領域全体を一旦部屋の床にする。
  • 外側1マスを外壁で埋める。
  • そこから2マス内側を内壁で埋める。
  • 内壁の上下左右いずれかにドアを作成する。
  • 中の19x5マスを全てモンスター選別関数1と2の条件を満たしたモンスターで埋め尽くす。

モンスター選別関数の実質基準

巣内の生成対象になるモンスターは前提としてUNIQUE(ユニーク)、UNIQUE2(準ユニーク)、RES_ALL(はぐれメタル耐性)、AQUATIC(水棲)のいずれでもない。

その上で、各モンスター選別関数は以下のような条件を提示する。

  • vault_prep_clone()
    • 現在の階+10までのモンスター1体を標準生成対象にする。
  • vault_prep_symbol()
    • シンボルを一種類に固定する。
  • vault_aux_clone()
    • 常にvault_prep_clone()で定められた1種のモンスターだけを生成する。
  • vault_aux_jelly()
    • KILL_BODY(周辺のモンスターを殺す)かつNEVER_BLOW(打撃を行わない)フラグを持つモンスターは除外。
    • EVIL(邪悪)なモンスターは除外。
    • シンボルが'ijm'のモンスターのみを生成対象にする。
  • vault_aux_symbol_g()
    • KILL_BODY(周辺のモンスターを殺す)かつNEVER_BLOW(打撃を行わない)フラグを持つモンスターは除外。
    • EVIL(邪悪)なモンスターは除外。
    • vault_prep_symbol()で指定した一種類のシンボルだけを限定して生成する。
  • vault_aux_symbol_e()
    • KILL_BODY(周辺のモンスターを殺す)かつNEVER_BLOW(打撃を行わない)フラグを持つモンスターは除外。
    • GOOD(善良)なモンスターは除外。
    • vault_prep_symbol()で指定した一種類のシンボルだけを限定して生成する。
  • vault_aux_mimic()
    • シンボル"!$&(/=?[\|"のモンスターのみを生成対象にする。
  • vault_aux_cthulhu()
    • KILL_BODY(周辺のモンスターを殺す)かつNEVER_BLOW(打撃を行わない)フラグを持つモンスターは除外。
    • ELDRITCH_HORROR(狂気を引き起こす)モンスターのみを生成対象にする。
  • vault_aux_kennel()
    • シンボル"CZ"のモンスターのみを生成対象にする。
  • vault_aux_animal()
    • ANIMAL(自然界の動物)フラグ持ちのモンスターのみを生成対象にする。
  • vault_aux_chapel_g()
    • EVIL(邪悪)なモンスターは除外。
    • 銀のエンゼル、金のエンゼルは除外。
    • シンボル"A"のモンスターか、以下のモンスターのみを生成対象にする。「見習プリースト」「見習いパラディン」「見習いプリースト(集団生成型)」「見習いパラディン(集団生成型)」「プリースト」「緑衣の修行僧」「白衣の修行僧」「黒衣の修行僧」「黄衣の修行僧」「超エリート・パラディン」「白騎士」「聖堂騎士」
  • vault_aux_undead()
    • UNDEAD(アンデッド)フラグ持ちのモンスターのみを生成対象にする。

[東方外法漢女]罪袋兄貴

罪袋