DQ3 戦士の防御による後方キャラクターのダメージ低減率をレベルに応じて変化させる2

実装を始めます。ちなみに、今回からコメント部分の表記の一部(特にアドレス部分)が変更になります。

  • SR: $02D807 戦士防御時のダメージ軽減処理
02D896CPY $2604Y==$2604?
02D899BEQ #$02if(z==on) goto $02D89D
02D89BBCS #$F2if(c==on) goto $02D88F
02D89DSTY $2606$2606=Y
02D8A0LDA $2604A=$2604
02D8A3SECc=on
02D8A4SBC $2606A-=($2606+c)
02D8A7JSL $C2EEA6SR: $02EEA6戦士防御時の補正率分子取得
  • SR: $02EEA6 戦士防御時の補正率分子取得
02EEA6PHAPush A
02EEA7LDY $2606Y=$2606
02EEAALDA $243E,YA=$243E+Y
02EEADAND #$00FFA&=#$00FF戦士の戦闘中ID取得
02EEB0STA $2428$2428=A
02EEB3JSL $C2C240SR: $02C240 引数:1#$0A戦士のレベル取得
02EEB8PHAPush A
02EEB9LDX #$0000X=#$0000Xは構造体のインデックス
02EEBCJSL $C903EESR: $0903EE 引数:1#$00 引数:2#$000A 引数:3#$C23CB2 引数:4#$0000構造体アクセス 設定値の「レベル」を取得
02EEC8CMP $01,SA==Stack($01)?実際のレベルと比較
02EECABEQ #$09if(z==on) goto $02EED5
02EECCBCS #$06if(c==on) goto $02EED4
02EECEINXX++
02EECFCPX #$0004X>=#$0004?
02EED2BCC #$E8if(c==off) goto $02EEBC
02EED4DEXX–
02EED5PLAPull A
02EED6JSL $C9050DSR: $09050D 引数:1#$00 引数:2#$000A 引数:3#$C23CB2 引数:4#$30構造体アクセス X番目の先頭アドレスをDP(第4引数)にセット
02EEE1PLAPull A戦士から何人後ろかの値をPull
02EEE2ASLA<<1
02EEE3INCA++
02EEE4INCA++
02EEE5TAYY=A
02EEE6LDA $30A=$(DP[$30])+YIndirect Longでアクセス
02EEE8RTLreturn

実装自体はこれで終わりです。もともとの実装をちょっと変えるだけなので変更量自体はたいしたことはありません。戦士が該当レベルになったら呪文習得のようなメッセージをだそうかと思っているんですが、どういう文面にしようか迷い中。また、補正値のほうは

戦士レベル補正率1補正率2補正率3補正率4
00100010001000100
2001800100010000CC
350180010000CC00B3
50018000CC00B30099

というふうにするか、

戦士レベル補正率1補正率2補正率3補正率4
00100010001000100
20018000CC01000100
35018000CC00B30100
50018000CC00B30099

というふうにしようか迷い中。後者のほうが一番守りたい最後尾に3段階目(レベルはともかく)にならないと効果が届かないので育てる意義があるかなあと。設定値を変えるだけで対応できるのでしばらく寝かせて考えます。

コメント

タイトルとURLをコピーしました