- 追加された行はこの色です。
- 削除された行はこの色です。
- 解析/自然回復 へ行く。
[[解析]]
#contents
*概要 [#f367c583]
自然回復処理等を行なっている、process_world_aux_hp_and_spについて簡単にまとめる。~
この処理は上からこの順番で10ゲームターン毎に行う。~
加速が高い場合、数回行動につき1度だけ発生する、ということに留意すべきである。~
なお、ダメージの類は全てNOESCAPE属性だが、この属性で特別なことは起こらないようだ。
*毒ダメージ [#pfe8d520]
毒状態であり、無敵でなければ1点のダメージを受ける。~
また、HPの自然回復が0になる。
*切り傷ダメージ [#i3ef95ec]
無敵でなければ、傷の深さによって以下のダメージを受ける。~
また、HPの自然回復が0になる。
|傷の深さ|ダメージ|名称|h
|1000|200|致命傷|
|200|80|ひどい深手|
|100|32|重傷|
|50|16|大変な傷|
|25|7|ひどい傷|
|10|3|軽傷|
|10未満|1|かすり傷|
*日光ダメージ [#kaa64e8c]
種族が吸血鬼であるか吸血鬼変化中のときのチェック。
-閃光耐性を持たず
-日中
-地上の
-明るいところにいるか、暗闇エゴでなく燃料切れでない光源を装備している
-無敵でない
以上を満たすとき、1点の不可避ダメージを受ける。
また、HPの自然回復が0になる。
*溶岩ダメージ [#y708da80]
溶岩の上に居るとき、無敵でなく、火の免疫を持たないならばダメージを受ける。
**基本ダメージ [#fff3be4b]
-深い溶岩の上に居るとき
--damage = 6000+d4000-1
--HPの自然回復が0になる
-浅い溶岩の上に居て浮遊がないとき
--damage = 3000+d2000-1
--HPの自然回復が0になる
**耐性による増減 [#p3ad9ea9]
-エントの場合、damage += damage / 3
-火の耐性がある場合、 damage = damage / 3
-火の一時的耐性がある場合、damage = damage / 3
-浮遊しているとき、damage = damage / 5
**最終ダメージ [#w4c2f8e7]
-damage /100(切り捨て)のNOESCAPE属性ダメージ
-(1d100-1< damage%100)のとき1点加算される。
*深い水の処理 [#o6ddbd6d]
深い水の上にいて、浮遊しておらず、水泳可能フラグを持っていないとき
総重量が重量限界を越えているならば、1d(レベル)のダメージを受ける。
*乗馬のオーラダメージ [#pca06797]
免疫を所持していなければ、乗馬のオーラダメージを受ける。~
ダメージは(乗馬のレベル/2)で、エントは火のダメージ4/3倍、アンドロイドは電撃のダメージ4/3倍である。~
耐性で1/3、一時耐性で1/3になる。
*壁のなかにいるとき [#t7ec0373]
壁抜け、幽体化をしていないとき、無敵でなければ1+(レベル/5)点のダメージを受け、HPの自然回復が0になる。~
種族が幽霊の場合、このダメージでHPが0未満になることはない。
*regen_amount [#b051c986]
通常はregen_amount=197だが、餓死寸前では回復量が減る。~
空腹の度合いにより、98、33、0と減っていく。
さらに、以下の影響を受ける
-急速回復があるとき、regen_amount *= 2
-型や構えを使用しているとき、regen_amount /= 2
-回復速度減少の呪いがかかっているとき、regen_amount /= 5
-休憩または探索状態のとき、regen_amount *= 2
*パターンの処理 [#wbcd5534]
いずれの場合もHPの自然回復が0になる。
**パターンの崩壊 [#o8da38f8]
種族がアンバライトで出血中のとき、1/10でパターンの崩壊を引き起こす。
-既に足元がPATTERN_TILE_WRECKEDならば、既にパターンは崩壊しているのでこの処理を終了する
-10d8のダメージを受ける
-半径4の範囲からランダムに床を選び、パターンであればPATTERN_TILE_WRECKEDに置換する作業を35+d45回行なう。
-プレイヤーの足元をPATTERN_TILE_WRECKEDに置換する。
崩壊処理の後、足元のパターンの種類により効果が発生する。
**PATTERN_TILE_END [#i09b8c6c]
パターンの終端にいるとき、以下の効果が起きる。
-毒、幻覚、朦朧、切り傷、盲目、恐怖が治療される。
-ステータスと経験値の一時的減少が回復する。
-1000ポイントHPを回復する。
**PATTERN_TILE_OLD [#d8c519c9]
なにも起きない。
**PATTERN_TILE_TELEPORT [#z758839f]
階を指定したテレポート、通常テレポート、何もしない、のどれかを選べる。
**PATTERN_TILE_WRECKED [#qfd6f7e1]
壊れたパターンを歩いたことにより、ダメージ200点を受ける。
**その他 [#f8af8ee5]
種族がアンバライトなら1/2で無傷。~
そうでなければ、無敵でないとき1d3のダメージを受ける。
*upkeep_factorの計算 [#o9627c0c]
ペット維持費を計算し、upkeep_factorに加算する。これはMP回復ペナルティで、上限は1000。
**ペット維持費 [#kc8ed8a7]
TO DO
**特殊な行動中のupkeep_factor [#k0999b5e]
青魔の学習中、忍者の早駆け、剣術家の降鬼陣のときはupkeep_factorに100を加算する。
*魔力の回復 [#z0a64086]
回復量 = regen_amount - upkeep_factor * PY_REGEN_NORMAL / 100~
この数値は、急回復等考慮した回復率 - ペット維持比*通常時回復率である。
**現MP > 最大MPのとき(剣術家) [#i4234438]
decay_frac = 最大MP * 32 * 197 + 524~
実際の減少量はこれを65536で割った値となる。~
なお、現MPが最大MP未満まで減った場合、現MP=最大MPとなる。
**現MP < 最大MPかつ 回復量 > 0のとき(MP回復処理) [#fa465619]
new_mana_frac = 最大MP * 回復量 + 524~
実際の回復量はこれを65536で割った値となる。~
なお、現MPが最大MPを越えた場合、現MP=最大MPとなる。
**回復量 < 0のとき(MP減衰処理) [#tc000e9a]
reduce_mana_frac = 最大MP * 回復量 + 524~
この値は通常時の@のMP自然回復量に等しい。~
実際の減少量はこれを65536で割った値となる。~
なお、現MPが0未満になる場合、現MP=0となる。
*魔道具術師の取り込み魔力回復 [#p706d10d]
回復倍率 = (30 + 知能ボーナス) / 30~
ちなみに、知能ボーナスはMAX30である。
**杖/魔法棒 [#a1ffc5c0]
new_mana = (regen_amount * 回復倍率 * (最大使用回数+13) ) / 8~
この値だけ充填される。なお、65536点充填されると使用回数が1回復する。
**ロッド [#q5ffd81d]
new_mana = (regen_amount / 197) * (回復倍率 * (最大使用回数+10) * 10 ) / 16 ~
この値だけ充填される。なお、pval*10点充填されると使用回数が1回復する。
*ペット制御 [#y04958c8]
ペット維持費が100を越えていてMPが0のとき、ペット維持費が100以下になるまでペットの開放が要求され続ける。
*突然変異 [#ac3f0f26]
回復量の減少がある。
TO DO
*体力の回復 [#o7789d58]
降鬼陣の型(剣術家)、早駆け(忍者)の使用中はHPが回復しない。~
回復量 = (最大HP * regen_amount + 1442) / 65536~
回復後最大HPを越えた場合、現HP=最大HPとする