Rename some battle commands

`hittarget` was misleading, as it doesn't actually "hit" the target, it
only plays the animation. As such, I've renamed it to `moveanim`.

`checkfaint` has nothing to do with checking if the user or target has
fainted, instead, it applies wCurDamage onto the target's HP, hitting
the substitute if applicable. I've renamed the command to `applydamage`
and all of its subfunctions accordingly.
This commit is contained in:
mid-kid 2018-04-04 23:27:40 +02:00
parent 2958188fc6
commit d4025863cf
5 changed files with 198 additions and 188 deletions

View File

@ -14,10 +14,10 @@ BattleCommandPointers: ; 3fd28
dw BattleCommand_DamageVariation ; 34cfd
dw BattleCommand_CheckHit ; 34d32
dw BattleCommand_LowerSub ; 34eee
dw BattleCommand_HitTargetNoSub ; 34f60
dw BattleCommand_MoveAnimNoSub ; 34f60
dw BattleCommand_RaiseSub ; 35004
dw BattleCommand_FailureText ; 35023
dw BattleCommand_CheckFaint ; 3505e
dw BattleCommand_ApplyDamage ; 3505e
dw BattleCommand_CriticalText ; 35175
dw BattleCommand_SuperEffectiveText ; 351ad
dw BattleCommand_CheckDestinyBond ; 351c0
@ -174,7 +174,7 @@ BattleCommandPointers: ; 3fd28
dw BattleCommand_BeatUpFailText ; 355b5
dw BattleCommand_ClearMissDamage ; 355d5 - a9
dw BattleCommand_MoveDelay ; 37e80
dw BattleCommand_HitTarget ; 34f57
dw BattleCommand_MoveAnim ; 34f57
dw BattleCommand_TriStatusChance ; 3658f
dw BattleCommand_SuperEffectiveLoopText ; 351a5
dw BattleCommand_StartLoop ; 35197

View File

@ -10,9 +10,9 @@ NormalHit:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -40,9 +40,9 @@ PoisonHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -60,9 +60,9 @@ LeechHit:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
draintarget
@ -82,9 +82,9 @@ BurnHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -103,9 +103,9 @@ FreezeHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -124,9 +124,9 @@ ParalyzeHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -145,9 +145,9 @@ Selfdestruct:
damagevariation
checkhit
selfdestruct
hittargetnosub
moveanimnosub
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -165,9 +165,9 @@ DreamEater:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
eatdream
@ -544,9 +544,9 @@ AttackDownHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -566,9 +566,9 @@ DefenseDownHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -589,9 +589,9 @@ SpeedDownHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -611,9 +611,9 @@ SpecialAttackDownHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -633,9 +633,9 @@ SpecialDefenseDownHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -655,9 +655,9 @@ AccuracyDownHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -677,9 +677,9 @@ EvasionDownHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -699,9 +699,9 @@ DefenseUpHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -721,9 +721,9 @@ AttackUpHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -743,9 +743,9 @@ AllUpHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -763,9 +763,9 @@ PayDay:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
payday
@ -796,9 +796,9 @@ Bide:
unleashenergy
resettypematchup
checkhit
hittarget
moveanim
bidefailtext
checkfaint
applydamage
checkdestinybond
buildopponentrage
kingsrock
@ -817,9 +817,9 @@ Rampage:
stab
damagevariation
clearmissdamage
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -848,9 +848,9 @@ MultiHit:
stab
damagevariation
clearmissdamage
hittargetnosub
moveanimnosub
failuretext
checkfaint
applydamage
criticaltext
cleartext
supereffectivelooptext
@ -875,9 +875,9 @@ PoisonMultiHit:
stab
damagevariation
clearmissdamage
hittargetnosub
moveanimnosub
failuretext
checkfaint
applydamage
criticaltext
cleartext
supereffectivelooptext
@ -900,9 +900,9 @@ FlinchHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -916,9 +916,9 @@ OHKOHit:
doturn
stab
ohko
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -935,9 +935,9 @@ RecoilHit:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
recoil
@ -980,9 +980,9 @@ ConfuseHit:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1022,9 +1022,9 @@ TriAttack:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1066,9 +1066,9 @@ SkyAttack:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1094,9 +1094,9 @@ HyperBeam:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
rechargenextturn
@ -1115,10 +1115,10 @@ Rage:
checkhit
ragedamage
damagevariation
hittarget
moveanim
failuretext
rage
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1176,9 +1176,9 @@ RazorWind:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1198,10 +1198,10 @@ Fly:
stab
damagevariation
checkhit
hittargetnosub
moveanimnosub
raisesub
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1220,9 +1220,9 @@ TrapTarget:
stab
damagevariation
clearmissdamage
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1239,9 +1239,9 @@ StaticDamage:
constantdamage
checkhit
resettypematchup
hittarget
moveanim
failuretext
checkfaint
applydamage
checkdestinybond
buildopponentrage
kingsrock
@ -1254,9 +1254,9 @@ Reversal:
constantdamage
stab
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
supereffectivetext
checkdestinybond
buildopponentrage
@ -1268,9 +1268,9 @@ Counter:
usedmovetext
doturn
counter
hittarget
moveanim
failuretext
checkfaint
applydamage
checkdestinybond
buildopponentrage
kingsrock
@ -1304,9 +1304,9 @@ Snore:
checkhit
effectchance
snore
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1378,9 +1378,9 @@ FalseSwipe:
damagevariation
falseswipe
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1409,9 +1409,9 @@ TripleKick:
stab
damagevariation
clearmissdamage
hittargetnosub
moveanimnosub
failuretext
checkfaint
applydamage
criticaltext
cleartext
supereffectivelooptext
@ -1434,9 +1434,9 @@ Thief:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
thief
@ -1470,9 +1470,9 @@ FlameWheel:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
defrost
@ -1543,9 +1543,9 @@ Rollout:
checkhit
rolloutpower
damagevariation
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1582,9 +1582,9 @@ FuryCutter:
checkhit
furycutter
damagevariation
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1611,9 +1611,9 @@ Return:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1634,7 +1634,7 @@ Present:
damagevariation
clearmissdamage
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1653,9 +1653,9 @@ Frustration:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1681,9 +1681,9 @@ SacredFire:
damagevariation
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
defrost
@ -1704,9 +1704,9 @@ Magnitude:
damagevariation
checkhit
doubleundergrounddamage
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1732,9 +1732,9 @@ Pursuit:
damagevariation
pursuit
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1752,9 +1752,9 @@ RapidSpin:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
clearhazards
@ -1794,9 +1794,9 @@ HiddenPower:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1824,7 +1824,7 @@ FakeOut:
doturn
checkhit
fakeout
hittarget
moveanim
failuretext
endmove
@ -1847,9 +1847,9 @@ MirrorCoat:
usedmovetext
doturn
mirrorcoat
hittarget
moveanim
failuretext
checkfaint
applydamage
checkdestinybond
buildopponentrage
kingsrock
@ -1867,9 +1867,9 @@ SkullBash:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1892,9 +1892,9 @@ Twister:
doubleflyingdamage
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1914,9 +1914,9 @@ Earthquake:
doubleundergrounddamage
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1933,9 +1933,9 @@ FutureSight:
futuresight
damagevariation ; skip here if last turn
checkhit
hittargetnosub
moveanimnosub
failuretext
checkfaint
applydamage
checkdestinybond
buildopponentrage
endmove
@ -1951,9 +1951,9 @@ Gust:
damagevariation
doubleflyingdamage
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1972,9 +1972,9 @@ Stomp:
doubleminimizedamage
checkhit
effectchance
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -1995,9 +1995,9 @@ Solarbeam:
stab
damagevariation
checkhit
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -2017,9 +2017,9 @@ Thunder:
effectchance
stab
damagevariation
hittarget
moveanim
failuretext
checkfaint
applydamage
criticaltext
supereffectivetext
checkdestinybond
@ -2047,9 +2047,9 @@ BeatUp:
damagecalc
damagevariation
clearmissdamage
hittargetnosub
moveanimnosub
failuretext
checkfaint
applydamage
criticaltext
cleartext
supereffectivetext

View File

@ -556,8 +556,8 @@ CheckEnemyTurn: ; 3421f
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
call z, PlayFXAnimID
ld c, $1
call EnemyHurtItself
ld c, TRUE
call DoEnemyDamage
call BattleCommand_RaiseSub
call CantMove
jp EndTurn
@ -676,8 +676,8 @@ HitConfusion: ; 343a5
call CallBattleCore
ld a, $1
ld [hBGMapMode], a
ld c, $1
call PlayerHurtItself
ld c, TRUE
call DoPlayerDamage
jp BattleCommand_RaiseSub
; 343db
@ -2081,16 +2081,16 @@ BattleCommand_LowerSub: ; 34eee
; 34f57
BattleCommand_HitTarget: ; 34f57
; hittarget
BattleCommand_MoveAnim: ; 34f57
; moveanim
call BattleCommand_LowerSub
call BattleCommand_HitTargetNoSub
call BattleCommand_MoveAnimNoSub
jp BattleCommand_RaiseSub
; 34f60
BattleCommand_HitTargetNoSub: ; 34f60
BattleCommand_MoveAnimNoSub: ; 34f60
ld a, [wAttackMissed]
and a
jp nz, BattleCommand_MoveDelay
@ -2274,65 +2274,68 @@ BattleCommand_FailureText: ; 35023
; 3505e
BattleCommand_CheckFaint: ; 3505e
; checkfaint
BattleCommand_ApplyDamage: ; 3505e
; applydamage
ld a, BATTLE_VARS_SUBSTATUS1_OPP
call GetBattleVar
bit SUBSTATUS_ENDURE, a
jr z, .not_enduring
call BattleCommand_FalseSwipe
ld b, $0
jr nc, .okay
ld b, $1
jr .okay
jr z, .focus_band
.not_enduring
call BattleCommand_FalseSwipe
ld b, 0
jr nc, .damage
ld b, 1
jr .damage
.focus_band
call GetOpponentItem
ld a, b
cp HELD_FOCUS_BAND
ld b, $0
jr nz, .okay
ld b, 0
jr nz, .damage
call BattleRandom
cp c
jr nc, .okay
jr nc, .damage
call BattleCommand_FalseSwipe
ld b, $0
jr nc, .okay
ld b, $2
.okay
ld b, 0
jr nc, .damage
ld b, 2
.damage
push bc
call .check_sub
ld c, $0
call .update_damage_taken
ld c, FALSE
ld a, [hBattleTurn]
and a
jr nz, .damage_player
call EnemyHurtItself
call DoEnemyDamage
jr .done_damage
.damage_player
call PlayerHurtItself
call DoPlayerDamage
.done_damage
pop bc
ld a, b
and a
ret z
dec a
jr nz, .not_enduring2
jr nz, .focus_band_text
ld hl, EnduredText
jp StdBattleTextBox
.not_enduring2
.focus_band_text
call GetOpponentItem
ld a, [hl]
ld [wNamedObjectIndexBuffer], a
call GetItemName
ld hl, HungOnText
jp StdBattleTextBox
.check_sub
.update_damage_taken
ld a, BATTLE_VARS_SUBSTATUS4_OPP
call GetBattleVar
bit SUBSTATUS_SUBSTITUTE, a
@ -2341,10 +2344,10 @@ BattleCommand_CheckFaint: ; 3505e
ld de, wPlayerDamageTaken + 1
ld a, [hBattleTurn]
and a
jr nz, .damage_taken
jr nz, .got_damage_taken
ld de, wEnemyDamageTaken + 1
.damage_taken
.got_damage_taken
ld a, [wCurDamage + 1]
ld b, a
ld a, [de]
@ -2418,11 +2421,11 @@ GetFailureResultText: ; 350e4
ld a, $1
ld [wKickCounter], a
call LoadMoveAnim
ld c, $1
ld c, TRUE
ld a, [hBattleTurn]
and a
jp nz, EnemyHurtItself
jp PlayerHurtItself
jp nz, DoEnemyDamage
jp DoPlayerDamage
FailText_CheckOpponentProtect: ; 35157
ld a, BATTLE_VARS_SUBSTATUS1_OPP
@ -3620,15 +3623,13 @@ PlayFXAnimID: ; 35d08
ld c, 3
call DelayFrames
callfar PlayBattleAnim
ret
; 35d1c
EnemyHurtItself: ; 35d1c
DoEnemyDamage: ; 35d1c
ld hl, wCurDamage
ld a, [hli]
ld b, a
@ -3638,13 +3639,14 @@ EnemyHurtItself: ; 35d1c
ld a, c
and a
jr nz, .mimic_sub_check
jr nz, .ignore_substitute
ld a, [wEnemySubStatus4]
bit SUBSTATUS_SUBSTITUTE, a
jp nz, SelfInflictDamageToSubstitute
jp nz, DoSubstituteDamage
.mimic_sub_check
.ignore_substitute
; Substract wCurDamage from wEnemyMonHP.
; store original HP in little endian wBuffer3/4
ld a, [hld]
ld b, a
ld a, [wEnemyMonHP + 1]
@ -3657,19 +3659,18 @@ EnemyHurtItself: ; 35d1c
ld [wBuffer4], a
sbc b
ld [wEnemyMonHP], a
jr nc, .mimic_faint
jr nc, .no_underflow
ld a, [wBuffer4]
ld [hli], a
ld a, [wBuffer3]
ld [hl], a
xor a
ld hl, wEnemyMonHP
ld [hli], a
ld [hl], a
.mimic_faint
.no_underflow
ld hl, wEnemyMonMaxHP
ld a, [hli]
ld [wBuffer2], a
@ -3680,6 +3681,7 @@ EnemyHurtItself: ; 35d1c
ld [wBuffer6], a
ld a, [hl]
ld [wBuffer5], a
hlcoord 2, 2
xor a
ld [wWhichHPBar], a
@ -3690,7 +3692,7 @@ EnemyHurtItself: ; 35d1c
; 35d7e
PlayerHurtItself: ; 35d7e
DoPlayerDamage: ; 35d7e
ld hl, wCurDamage
ld a, [hli]
ld b, a
@ -3700,12 +3702,15 @@ PlayerHurtItself: ; 35d7e
ld a, c
and a
jr nz, .mimic_sub_check
jr nz, .ignore_substitute
ld a, [wPlayerSubStatus4]
bit SUBSTATUS_SUBSTITUTE, a
jp nz, SelfInflictDamageToSubstitute
.mimic_sub_check
jp nz, DoSubstituteDamage
.ignore_substitute
; Substract wCurDamage from wBattleMonHP.
; store original HP in little endian wBuffer3/4
; store new HP in little endian wBuffer5/6
ld a, [hld]
ld b, a
ld a, [wBattleMonHP + 1]
@ -3719,14 +3724,13 @@ PlayerHurtItself: ; 35d7e
sbc b
ld [wBattleMonHP], a
ld [wBuffer6], a
jr nc, .mimic_faint
jr nc, .no_underflow
ld a, [wBuffer4]
ld [hli], a
ld a, [wBuffer3]
ld [hl], a
xor a
ld hl, wBattleMonHP
ld [hli], a
ld [hl], a
@ -3734,14 +3738,15 @@ PlayerHurtItself: ; 35d7e
ld [hli], a
ld [hl], a
.mimic_faint
.no_underflow
ld hl, wBattleMonMaxHP
ld a, [hli]
ld [wBuffer2], a
ld a, [hl]
ld [wBuffer1], a
hlcoord 10, 9
ld a, $1
ld a, 1
ld [wWhichHPBar], a
predef AnimateHPBar
.did_no_damage
@ -3750,8 +3755,7 @@ PlayerHurtItself: ; 35d7e
; 35de0
SelfInflictDamageToSubstitute: ; 35de0
DoSubstituteDamage: ; 35de0
ld hl, SubTookDamageText
call StdBattleTextBox

View File

@ -1,6 +1,8 @@
BattleCommand_FalseSwipe: ; 35c94
; falseswipe
; Makes sure wCurDamage < MonHP
ld hl, wEnemyMonHP
ld a, [hBattleTurn]
and a
@ -15,12 +17,14 @@ BattleCommand_FalseSwipe: ; 35c94
pop de
pop hl
jr c, .done
ld a, [hli]
ld [de], a
inc de
ld a, [hl]
dec a
ld [de], a
inc a
jr nz, .okay
dec de
@ -28,11 +32,13 @@ BattleCommand_FalseSwipe: ; 35c94
dec a
ld [de], a
.okay
ld a, [wCriticalHit]
cp 2
jr nz, .carry
xor a
ld [wCriticalHit], a
.carry
scf
ret

View File

@ -15,10 +15,10 @@ ENDM
command damagevariation ; 08
command checkhit ; 09
command lowersub ; 0a
command hittargetnosub ; 0b
command moveanimnosub ; 0b
command raisesub ; 0c
command failuretext ; 0d
command checkfaint ; 0e
command applydamage ; 0e
command criticaltext ; 0f
command supereffectivetext ; 10
command checkdestinybond ; 11
@ -175,7 +175,7 @@ ENDM
command beatupfailtext ; a8
command clearmissdamage ; a9
command movedelay ; aa
command hittarget ; ab
command moveanim ; ab
command tristatuschance ; ac
command supereffectivelooptext ; ad
command startloop ; ae