2014/02/05
■ [変愚蛮怒/スポイラー]投擲時のダメージ・命中判定処理(変愚蛮怒 Ver2.1.4 rev3670)
以下do_cmd_throw_aux()より確認。クッソ複雑なのでサブルーチンは今後別記事に記載。
- 関数のステータスとして以下の状態を持つ。
- mult…基本的なダメージ倍率。基本的に1。(旧実装の変異レイシャルの「強力投擲時」は2+レベル/40代入が行われていたが、)
- boomerang…剣術の技「ブーメラン」処理、武器自体に戻ってくるフラグがなくても、投擲アイテムが手元に戻ってくる。
- shuriken…忍術「八方手裏剣」時に、投擲に利用するくさびのスロットを与える。それ以外では-1。
- 投擲するアイテムの選択。
- shurikenが指定されている時はくさびのアイテムスロット固定。
- boomerangがTRUEの時は装備品(右手/左手)からの選択
- それ以外では現在手をつけられる任意のアイテムを選択できる。
- アイテムが呪われた装備か闘技場出場中はここでキャンセル。
- 「あなたは強く物を投げる。」変異時、multに+3を加算。
- mul=10+2*(mult-1)
- 10ポンド以下の投擲アイテムは10ポンド扱いに修正される。
- 「それは敵に投げて大きなダメージを与えることができる。」アイテムか、boomerangがTRUEの時重量が半分扱いになる。
- 投擲距離を(プレイヤーのSTR修正 + 20) * mul / divとする。
- STR修正は3~18/***で3~240
- また投擲距離はmul以上にならないので範囲は10~18となる。
- syurikenが選択されている場合投擲範囲内をランダム、それ以外ではプレイヤーが選択したターゲットを目標にする。
- 所持品の場合、投擲するアイテム数を1減らす。
- プレイヤーの行動エネルギーを100消費
- ただし、忍者、盗賊は消費エネルギーがレベル分軽減される。
- プレイヤーが忍者で、くさびや、「それは敵に投げて大きなダメージを与えることができる。」剣を投げる場合、shurikenフラグをTRUE、それ以外ではFALSEにする(引数のshurikenと同じ仮引数だが上書きして再利用しているらしい)
- 命中のチャンス値を計算
- 「それは敵に投げて大きなダメージを与えることができる。」武器の場合、プレイヤーの投擲能力値+(素手の武器命中修正+アイテムの命中修正)*3
- そうでない場合、プレイヤーの投擲能力値+(素手の武器命中修正)*3
- shurikenがTRUEの場合チャンス値*2
- プレイヤーの投擲能力値はプレイヤーの射撃技能値とほぼ同値
- 狂戦士化している場合のみ投擲技能値のみ-20される模様。
- 射線を進む事に以下の判定を行う。
- 壁に命中した場合、人形であるか、薬であるか、その地点に敵がいない場合、一旦ここで処理を射線処理を終了する。
- 敵がいた場合、test_hit_fire()による命中判定を行う。
- 命中した場合、以下の処理を行う。
- アイテム毎に定義されたダイスでダメージ値を決定
- たいまつのみ特別に1d6で上書きされる
- tot_dam_aux()関数による投擲アイテムのスレイ加算処理
- critical_shot()関数によるクリティカル加算処理
- アイテムのダメージ修正値を加算
- boomerangがTRUEの場合ダメージがmult+(プレイヤーのその武器による攻撃回数)倍になり、プレイヤー自身のダメージ修正を加算
- そうでなく「それは敵に投げて大きなダメージを与えることができる。」武器の場合3+mult倍の上でプレイヤー自身のダメージ修正を加算
- そうでない場合ダメージをmult倍
- shrikenがTRUEの時、ダメージに((レベル+30)*(レベル+30)-900)/55を加算
- モンスターにダメージを与える。
- 敵に命中した場合、たいまつならばtorch_lost_fuel()で寿命が減る。
- アイテムの破壊確率を計算
- 敵に命中した場合breakage_chance()で計算、命中していない場合0%
- 人形の場合100%破壊
- アイテムが人形の場合召喚処理
- 薬が敵か壁に命中した場合、必ず壊れて、potion_smash_effect()が発動。
- ★ミョルニール、★イージスファング、boomerangがTRUEの場合はアイテムが帰ってくる判定を行う。
- アイテムが帰ってくる基本値は1d30+20+DEX命中修正(-3~+16)
- boomerangがTRUEの場合確率+4+1d5
- アイテムが★ミョルニール、★イージスファングかつboomerangがTRUEの場合確率+100で以下の条件に関係なく無条件に手に戻ってくる
- 基本値が30以上かつ99%の確率の場合以下の通り
- 基本値が37以上で手に装備したもの、なおかつプレイヤーが盲目で無い場合、アイテムは手に戻ってくる。
- そうでなければ手で受け損ねて、足元に帰ってくる。
- そうでなければアイテムは命中地点に落ちて、帰ってこない。
- 破壊確率を免れた場合、アイテムが対応地点に落ちる。