Wizardry(NES) 解析 - キャラステータス

キャラ単位のステータス(ステータス異常、POISON値、沈黙値)について。

ステータス異常

OKおよびその他のステータス異常は以下の8種類(重複しない):

名称
0OK
1ASLEEP
2AFRAID
3PARALY
4PETRIF
5DEAD
6ASHED
7LOST

POISON値

POISON値が非0の場合、毒状態として扱われ、1歩歩くたびにHPが減る(他にもHPが 減るタイミングがあるが未解析)。

毒によるHP減少量はPOISON値と現在HPに依存する。まず、現在HPが50以上あるか どうかで処理を分ける。

(現在HP) < 50 の場合

POISON値がそのままHP減少量となる。ありそうもないことだが、POISON値が 0xFF などとなっている場合は逆にHPが回復する(ただし、回復した結果が128以上になると 負とみなされて即死する)。

(現在HP) >= 50 の場合

HP減少量は現在HPの約1/10。正確には次式で表される:

(HP減少量) = ((現在HP)/2 + 25*(現在HP)) / 256
※24bit演算なので途中でオーバーフローが発生することはない

毒状態で画面下のステータスウィンドウを開かずに歩き回り、その後ステータス ウィンドウを開くとHPが減っていないように見えるが、これは表示だけで実際にはHP が減っている。

沈黙値

沈黙値が非0の場合、戦闘中に呪文を唱えても効果が発動しない("But cannot speak" と表示される)。

沈黙値は戦闘に入るごとに0にリセットされる。


Back