DQ3 盗賊に切り返し(カウンター)を実装する3

前回からの続き。今回はダメージを発生させるところから。

  • SR: $02D580 直接攻撃反射ダメージ計算等
省略
02D593JSL $CFAEB8SR: $0FAEB8盗賊切り返しダメージ処理
省略

  • SR: $0FAEB8 盗賊切り返しダメージ処理(新SR)
0FAEB8PHAPush A
0FAEB9PHXPush X
0FAEBAPHYPush Y
0FAEBBLDA $2602A=$2602
0FAEBEAND #$0004A&=#$0004
0FAEC1BEQ #$14if(z==on) goto $0FAED7
0FAEC3LDA $23E4A=$23E4攻撃主体と行動対象を入れ替える
0FAEC6PHAPush A
0FAEC7LDA $23E8A=$23E8
0FAECAPHAPush A
0FAECBJSL $CFAEDBSR: $0FAEDB盗賊切り返しダメージ処理(コア)
0FAECFPLAPull A
0FAED0STA $23E8$23E8=A攻撃主体と行動対象を元に戻す
0FAED3PLAPull A
0FAED4STA $23E4$23E4=A
0FAED7PLYPull Y
0FAED8PLXPull X
0FAED9PLAPull A
0FAEDARTLreturn

  • SR: $0FAEDB 盗賊切り返しダメージ処理(コア)(新SR)
0FAEDBLDA $23E4A=$23E4
0FAEDEPHAPush A
0FAEDFLDA $23E8A=$23E8
0FAEE2STA $23E4$23E4=A
0FAEE5PLAPull A
0FAEE6STA $23E8$23E8=A
0FAEE9JSR $AF16SR: $0FAF16切り返し発生時エフェクト処理
0FAEECLDA $2603A=$2603切り返しダメージ値をダメージ値用バッファにセット
0FAEEFSTA $23FA$23FA=A
0FAEF2JSL $C29200SR: $029200ダメージ確定後の処理メイン
0FAEF6LDA #$001CA=#$001C
0FAEF9TRB $2602A ^ $2602切り返し発生フラグをクリア
0FAEFCSTZ $2603$2603=#$00
0FAEFFRTLreturn

  • SR: $0FAF16 切り返し発生時エフェクト処理(新SR)
0FAF16JSL $C1E32ESR: $01E32E 引数:1#$00BC再生BGM設定?
0FAF1CJSL $C1A867SR: $01A867 引数:1#$01FA戦闘メッセージ表示
0FAF22LDY #$0000Y=#$0000
0FAF25LDX $23E8X=$23E8
0FAF28JSL $C2CAD9SR: $02CAD9 引数:1#$203A 引数:2#$00FF戦闘中キャラクター情報取得 インデックス:X
0FAF30STA $4F50,Y$4F50+Y=A
0FAF33INC $4F4E$4F4E++
0FAF36LDA #$8D72A=#$8D72稲妻の剣のエフェクトを使用
0FAF39STA $4F4C$4F4C=A
0FAF3CLDA #$000EA=#$000E
0FAF3FSTA $4F68$4F68=A
0FAF42JSL $C48D49SR: $048D49エフェクト実行
0FAF46STZ $4F4E$4F4E=#$00
0FAF49LDA #$0000A=#$0000
0FAF4CSTA $4F50,Y$4F50+Y=A
0FAF4FRTSreturn

基本的にやっていることは刃の鎧や嘆きの盾の反射と同じなので特筆すべき点はないのですが、エフェクトが起きるようにしています。装備している武器のエフェクトではなく固定のエフェクトを使うようにしています。

コメント

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