トップ «前の日記(2013/11/20) 最新 次の日記(2013/11/22)» 編集

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/11/21

[変愚蛮怒/スポイラー][別記事追加予定] create_artifact()による☆アーティファクトの生成プロセス(変愚蛮怒 Ver2.1.4 rev3503)

参考

11/28に取り消し線部分修正。

関数によるサブルーチンは後日解説。

  • POWERを1+1d5で決める。
  • まず生成対象となるベースアイテムの特性を全て引き継ぐ。
  • アーティファクト生成の巻物による生成ならば1/4の確率でプレイヤーの職業に応じたバイアスを指定する。
    • 戦士、狂戦士、アーチャー、剣術家、騎兵、鍛冶師ならば戦士系バイアス。
    • メイジ、ハイメイジ、スペルマスター、魔道具術師、青魔道師ならばメイジ系バイアス。
    • プリースト、修行僧、練気術師ならばプリースト系バイアス。
    • 盗賊、忍者ならば盗賊系バイアス。
    • レンジャー、スナイパーならばレンジャー系バイアス。
    • パラディンならば40%の確率で戦士系バイアス、60%の確率でプリースト系バイアス。
    • 魔法戦士、赤魔道師ならば40%の確率で戦士系バイアス、60%の確率でメイジ系バイアス。
    • 超能力者、吟遊詩人は、60%の確率でプリースト系バイアス、そうでなければ偏りなし。
    • 観光客は60%の確率で戦士系バイアス、そうでなければ偏りなし。
    • ものまね師は50%の確率でレンジャー系バイアス、そうでなければ偏りはなし。
    • 魔獣使いは50%の確率で魅力バイアス、50%の確率で戦士系バイアス。
    • 鏡使いは75%の確率でメイジ系バイアス、25%の確率で盗賊系バイアス。
  • 巻物生成でない場合1/13の確率で呪いのアーティファクトになる。
  • 指輪やアミュレットがデフォルトで呪い持ちの場合必ず呪いのアーティファクトになる。
  • 1/POWERか、8/35の確率いずれかを通る毎にPOWERに1を加算し続ける。
  • 呪いが確定しておらず、1/12の確率を通れば、POWERを倍にする。
  • 呪いが確定しているなら、POWERを半分(少数切捨て)にする。
  • 得られたPOWERの数だけ、武器と矢弾なら1d7、それ以外なら1d5を降って以下の処理を行う。
    • 1と2ならば、random_plus()関数に移りpvalステータスの追加を行う。
    • 3と4ならば、射撃武器を除く武器、矢弾ならば1/2の確率で以下の殺戮修正を行う。さもなくばrandom_resistance()で耐性を与える。
      • 呪いのアーティファクトか1/13の確率ならばならば即キャンセル
      • 1/13の確率で1/ダイス面+4の確率でダイス面を1増やす処理を繰り返す。
      • 残り12/13の確率で1/ダイス数+1の確率でダイス数を1増やす処理を繰り返す。
    • 5ならば、random_misc()関数でその他の特性を一つ与える。
    • 6と7ならば、random_slay()関数でスレイ特性を一つ与える。
  • 以上を行った結果、pvalつきの特性を持っている場合、以下の処理を行う。
  • 追加攻撃が備わっている場合、pvalは1d2、隼の剣のみさらに+1される。
  • そうでなければpvalは最低1保証された上で、1/pvalの確率を満たすかpval<1d5を満たす毎に+1加算される。
  • 1/12の確率を満たさないと4以上のpvalは4まで規制される。
  • ベースアイテムが防具の場合、既に20以上のAC修正を持つなら+1、そうでなければ1d(20-現AC修正)のACが追加される。
  • 武器や矢弾の場合、命中とダメージに20以上の修正を持つなら+1、そうでないなら1d(20-現修正)の値を追加する。また賢さのプラス修正を持つなら、祝福させる。
  • 火炎、冷気、電撃、酸で傷つかない特性を必ず与える。
  • 呪いのアーティファクトならば、curse_artifact()関数に処理を行わせる。
  • 呪いのアーティファクトでないならば、防具なら1/6の確率、そうでなかれば1/3の確率でランダムに発動をgive_activation_power()関数で与える。
  • アーティファクトが防具ならば以下の処理を行う。
    • ダメージ、命中修正の合計が+20を超えるならば、1d(ダメージ修正)と1d(命中修正)を同時に満たさない限り、ダメージと命中をそれぞれ1d3-1ずつ減らし続ける。
    • ダメージ、命中修正の合計が+20+10を超えるならば、1d(ダメージ修正)と1d(命中修正)を同時に満たさない限り、ダメージと命中をそれぞれ1d3-1ずつ減らし続ける。
  • メイジ系バイアスか知力バイアスでベースアイテムが篭手ならば、麻痺知らずを与える。
  • 毒針はここまでに与えた、全殺戮修正、全スレイ、追加攻撃を無効にする。
  • これまでに与えた特性の強さを総計することによりアーティファクトの名前を決める。
    • 防具の場合呪われていれば呪い名、15000未満で下位名、35000未満で中位名、それ以上で高位名を与える。
    • 武器の場合呪われていれば呪い名、20000未満で下位名、45000未満で中位名、それ以上で高位名を与える。
  • 巻物生成ならばここでアーティファクト名の入力を求められ、キャンセルした場合、get_table_sindarin_aux()かget_table_name_aux()による自動命名が行われる。また個の徳に+2、運の徳に+5が与えられる。
  • 巻物生成でない場合、get_random_name()関数から命名が行われる。
  • ウィザードモードでチートを行っている場合、ここでバイアスがかかっていればIDが開示される。数値表示なので基本分かりづらい。