summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/battle/effect_command_pointers.asm6
-rw-r--r--data/moves/effects.asm248
-rw-r--r--engine/battle/effect_commands.asm118
-rw-r--r--engine/battle/move_effects/false_swipe.asm6
-rw-r--r--macros/scripts/battle_commands.asm6
5 files changed, 197 insertions, 187 deletions
diff --git a/data/battle/effect_command_pointers.asm b/data/battle/effect_command_pointers.asm
index a57e08be7..f18e3c230 100644
--- a/data/battle/effect_command_pointers.asm
+++ b/data/battle/effect_command_pointers.asm
@@ -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
diff --git a/data/moves/effects.asm b/data/moves/effects.asm
index a262babe2..eeb02b3a1 100644
--- a/data/moves/effects.asm
+++ b/data/moves/effects.asm
@@ -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
diff --git a/engine/battle/effect_commands.asm b/engine/battle/effect_commands.asm
index b9a7382c0..ea6c22dda 100644
--- a/engine/battle/effect_commands.asm
+++ b/engine/battle/effect_commands.asm
@@ -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
+ jr z, .focus_band
+
call BattleCommand_FalseSwipe
- ld b, $0
- jr nc, .okay
- ld b, $1
- jr .okay
+ ld b, 0
+ jr nc, .damage
+ ld b, 1
+ jr .damage
-.not_enduring
+.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
diff --git a/engine/battle/move_effects/false_swipe.asm b/engine/battle/move_effects/false_swipe.asm
index e93b627ec..f00de91e7 100644
--- a/engine/battle/move_effects/false_swipe.asm
+++ b/engine/battle/move_effects/false_swipe.asm
@@ -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
diff --git a/macros/scripts/battle_commands.asm b/macros/scripts/battle_commands.asm
index db446d9ff..48e034bdf 100644
--- a/macros/scripts/battle_commands.asm
+++ b/macros/scripts/battle_commands.asm
@@ -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