ステータス画面での魔法剣の攻撃力について、物理攻撃力を表示するように変更

魔法剣を装備したユニットのステータス画面を見ると、魔法で攻撃したときの攻撃力が表示されていたのを、物理で攻撃したときの攻撃力を表示するように変更しました。

変更前
変更後

具体的な処理としては、以下で設定している「ステータス画面での計算に使用する射程」を1に変更しました。

83:CE85  A9 FF		lda	#$FF	; 255
83:CE87  8D DE A4	sta	$A4DE	; 戦闘の射程

元の処理では「$ff」(255)が設定されていたので、意図をもって魔法剣の攻撃力表示を魔力ベースにしたというよりは、適当な値を設定したら巻き添えで魔法剣の表示がおかしくなってしまった、という感じがします(想像ですが)。

Contents

追記

射程内かを判定する処理 (JSL $83B104) において、戦闘の射程が $FF のときは常に攻撃可の扱いとすることでステータス画面の攻撃力などを出しているようです。なので「ステータス画面での計算に使用する射程」を1に変更しただけだと、弓などの射程1に攻撃できない武器を装備したユニットの攻撃力が表示されなくなる問題がありました。

ステータス画面の表示用に仮想敵のクラスをダンサーに設定する処理で $00 を設定するようにした上で、敵クラスIDが空の時は常に攻撃可とするように判定を変更し、この問題を修正しました。

83:B107  29 FF 00	and	#$00FF	; (a に戦闘の射程が設定されて呼ばれる)
83:B10A  C9 FF 00	cmp	#$00FF	; 
83:B10D  F0 1C		beq	$B12B	; 戦闘の射程が $FF のときは常に攻撃可
83:CE79  A9 2D		lda	#$2D	; ダンサー

追記2

闘技場で戦うときも戦闘距離が $ff となっており、cmp #$00FF の判定処理を削除してしまうと戦闘が開始できずフリーズしていました。なので、上記判定を置き換えるのではなく、「敵のクラスIDが0なら常に攻撃可」の判定を追加で挿入するようにしました。