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

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/16

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

build_type5()とは似て非なる処理。大きく違うのはモンスター生成の構造が模様状になることである。

#####################
#0000000000000000000#
#0112233455543322110#
#0112233467643322110#
#0112233455543322110#
#0000000000000000000#
#####################

7から0へと強い順に条件を満たすモンスターで埋められていく。

  • 最初にどのような部屋にするかを確定する。ピット(pit)には予め以下のテーブルが定義されている。
名称モンスター選別関数1モンスター選別関数2levelchance
"オーク"vault_aux_orcNULL56
"トロル"vault_aux_trollNULL206
"ジャイアント"vault_aux_giantNULL506
"狂気"vault_aux_cthulhuNULL802
"シンボル(善)"vault_aux_symbol_gvault_prep_symbol701
"シンボル(悪)"vault_aux_symbol_evault_prep_symbol701
"教会"vault_aux_chapel_gNULL652
"ドラゴン"vault_aux_dragonvault_prep_dragon706
"デーモン"vault_aux_demonNULL806
"ダークエルフ"vault_aux_dark_elfNULL454
  • pick_vault_type()で現在の階>生成階で、かつd_info.txtのpitビットで許可されているパターンのみを生成の対象にする。各巣が選ばれる確率は その巣のchance値/生成チャンスのある全ての巣のchance 総計である。
  • 該当の巣がない場合生成をキャンセルする。
  • モンスター選別関数1と2を元に現在の階+11のモンスターを16種類選ぶ。(重複あり)各自100回試行して選べなければ部屋の生成キャンセル。
    • そのモンスターの属性がEVILなら、生成条件にEVILフラグ持ち、GOODフラグなら生成条件にGOODフラグを持たせる。
  • 予め横25マス、縦11マスの余裕があるフロアを探し、見つからなければ生成をキャンセルする。
  • 確保した領域全体を一旦部屋の床にする。
  • 外側1マスを外壁で埋める。
  • そこから2マス内側を内壁で埋める。
  • 内壁の上下左右いずれかにドアを作成する。
  • 中の19x5マスを上記ピット模様の0~7の形で埋め尽くす。順番は16種類のレベルの低い方からソートした奇数順。

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

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

前回の巣(nest)で使われているものは省略する。

  • vault_aux_orc()
    • UNDEAD(アンデッド)フラグ持ちモンスターは除外。
    • ORC(オーク)フラグ持ちモンスターのみを選別。
  • vault_aux_troll()
    • UNDEAD(アンデッド)フラグ持ちモンスターは除外。
    • TROLL(トロル)フラグ持ちモンスターのみを選別。
  • vault_aux_giant()
    • GOOD(善良)なモンスターは除外。
    • UNDEAD(アンデッド)フラグ持ちモンスターは除外。
    • GIANT(巨人)フラグ持ちモンスターのみを選別。
  • vault_prep_dragon()
    • 1d6を振り、1~5は順にBR_ACID、BR_ELEC、BR_FIRE、BR_COLD、BR_POISのブレスを持つモンスターのみを生成対象にする。6は5種全て。つまり実質、ブラック・ドラゴン、ブルー・ドラゴン、レッド・ドラゴン、ホワイト・ドラゴン、グリーン・ドラゴン、万色ドラゴンの系統に絞ることになる(ドゥーム・ドレイクなどの亜種も含む)
  • vault_aux_dragon()
    • UNDEAD(アンデッド)フラグ持ちモンスターは除外。
    • DRAGON(ドラゴン)フラグ持ちモンスターのみを選別。
    • vault_prep_dragon()で予め定められた属性ブレスを持つモンスターのみを選別。
  • vault_aux_demon()
    • KILL_BODY(周辺のモンスターを殺す)かつNEVER_BLOW(打撃を行わない)フラグを持たないモンスターは除外。
    • DEMON(悪魔)フラグ持ちモンスターのみを選別。
  • vault_aux_dark_elf()
    • 以下の固定枠から選ぶ。ダークエルフ、ダークエルフ・メイジ、ダークエルフ戦士、ダークエルフ・ロード、ダークエルフ・ウォーロック、ダークエルフ・ドルイド僧、ナイトブレード、ダークエルフ・ソーサラー、闇エルフの影。

[ヴィーヤウトゥムノ]冥妃『モルナリル・ウルバンディ』

メスゴリラさん。

メスゴリラ