summaryrefslogtreecommitdiff
path: root/engine/battle/effect_commands.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/battle/effect_commands.asm')
-rw-r--r--engine/battle/effect_commands.asm415
1 files changed, 1 insertions, 414 deletions
diff --git a/engine/battle/effect_commands.asm b/engine/battle/effect_commands.asm
index 07e8b3a2a..3e6d928d2 100644
--- a/engine/battle/effect_commands.asm
+++ b/engine/battle/effect_commands.asm
@@ -7,8 +7,6 @@ DoPlayerTurn:
jr DoTurn
-
-
DoEnemyTurn:
call SetEnemyTurn
@@ -24,7 +22,6 @@ DoEnemyTurn:
; fallthrough
-
DoTurn:
; Read in and execute the user's move effects for this turn.
@@ -40,7 +37,6 @@ DoTurn:
call UpdateMoveData
-
DoMove:
; Get the user's move effect.
ld a, BATTLE_VARS_MOVE_EFFECT
@@ -72,7 +68,6 @@ DoMove:
ld [wBattleScriptBufferAddress + 1], a
.ReadMoveEffectCommand:
-
; ld a, [wBattleScriptBufferAddress++]
ld a, [wBattleScriptBufferAddress]
ld l, a
@@ -112,8 +107,6 @@ DoMove:
.DoMoveEffectCommand:
jp hl
-
-
CheckTurn:
BattleCommand_CheckTurn:
; checkturn
@@ -141,9 +134,7 @@ BattleCommand_CheckTurn:
and a
jp nz, CheckEnemyTurn
-
CheckPlayerTurn:
-
ld hl, wPlayerSubStatus4
bit SUBSTATUS_RECHARGE, [hl]
jr z, .no_recharge
@@ -156,7 +147,6 @@ CheckPlayerTurn:
.no_recharge
-
ld hl, wBattleMonStatus
ld a, [hl]
and SLP
@@ -202,7 +192,6 @@ CheckPlayerTurn:
.not_asleep
-
ld hl, wBattleMonStatus
bit FRZ, [hl]
jr z, .not_frozen
@@ -222,7 +211,6 @@ CheckPlayerTurn:
.not_frozen
-
ld hl, wPlayerSubStatus3
bit SUBSTATUS_FLINCHED, [hl]
jr z, .not_flinched
@@ -236,7 +224,6 @@ CheckPlayerTurn:
.not_flinched
-
ld hl, wPlayerDisableCount
ld a, [hl]
and a
@@ -254,7 +241,6 @@ CheckPlayerTurn:
.not_disabled
-
ld a, [wPlayerSubStatus3]
add a
jr nc, .not_confused
@@ -293,7 +279,6 @@ CheckPlayerTurn:
.not_confused
-
ld a, [wPlayerSubStatus1]
add a ; bit SUBSTATUS_ATTRACT
jr nc, .not_infatuated
@@ -317,7 +302,6 @@ CheckPlayerTurn:
.not_infatuated
-
; We can't disable a move that doesn't exist.
ld a, [wDisabledMove]
and a
@@ -334,7 +318,6 @@ CheckPlayerTurn:
.no_disabled_move
-
ld hl, wBattleMonStatus
bit PAR, [hl]
ret z
@@ -349,8 +332,6 @@ CheckPlayerTurn:
call CantMove
jp EndTurn
-
-
CantMove:
ld a, BATTLE_VARS_SUBSTATUS1
call GetBattleVarAddr
@@ -377,19 +358,12 @@ CantMove:
res SUBSTATUS_FLYING, [hl]
jp AppearUserRaiseSub
-
-
-
OpponentCantMove:
call BattleCommand_SwitchTurn
call CantMove
jp BattleCommand_SwitchTurn
-
-
-
CheckEnemyTurn:
-
ld hl, wEnemySubStatus4
bit SUBSTATUS_RECHARGE, [hl]
jr z, .no_recharge
@@ -402,7 +376,6 @@ CheckEnemyTurn:
.no_recharge
-
ld hl, wEnemyMonStatus
ld a, [hl]
and SLP
@@ -446,7 +419,6 @@ CheckEnemyTurn:
.not_asleep
-
ld hl, wEnemyMonStatus
bit FRZ, [hl]
jr z, .not_frozen
@@ -465,7 +437,6 @@ CheckEnemyTurn:
.not_frozen
-
ld hl, wEnemySubStatus3
bit SUBSTATUS_FLINCHED, [hl]
jr z, .not_flinched
@@ -479,7 +450,6 @@ CheckEnemyTurn:
.not_flinched
-
ld hl, wEnemyDisableCount
ld a, [hl]
and a
@@ -498,7 +468,6 @@ CheckEnemyTurn:
.not_disabled
-
ld a, [wEnemySubStatus3]
add a ; bit SUBSTATUS_CONFUSED
jr nc, .not_confused
@@ -513,7 +482,6 @@ CheckEnemyTurn:
call StdBattleTextBox
jr .not_confused
-
.confused
ld hl, IsConfusedText
call StdBattleTextBox
@@ -557,7 +525,6 @@ CheckEnemyTurn:
.not_confused
-
ld a, [wEnemySubStatus1]
add a ; bit SUBSTATUS_ATTRACT
jr nc, .not_infatuated
@@ -581,7 +548,6 @@ CheckEnemyTurn:
.not_infatuated
-
; We can't disable a move that doesn't exist.
ld a, [wEnemyDisabledMove]
and a
@@ -599,7 +565,6 @@ CheckEnemyTurn:
.no_disabled_move
-
ld hl, wEnemyMonStatus
bit PAR, [hl]
ret z
@@ -615,16 +580,12 @@ CheckEnemyTurn:
; fallthrough
-
EndTurn:
ld a, $1
ld [wTurnEnded], a
jp ResetDamage
-
-
MoveDisabled:
-
; Make sure any charged moves fail
ld a, BATTLE_VARS_SUBSTATUS3
call GetBattleVarAddr
@@ -638,10 +599,7 @@ MoveDisabled:
ld hl, DisabledMoveText
jp StdBattleTextBox
-
-
HitConfusion:
-
ld hl, HurtItselfText
call StdBattleTextBox
@@ -670,8 +628,6 @@ HitConfusion:
call DoPlayerDamage
jp BattleCommand_RaiseSub
-
-
BattleCommand_CheckObedience:
; checkobedience
@@ -714,7 +670,6 @@ BattleCommand_CheckObedience:
cp [hl]
ret z
-
.obeylevel
; The maximum obedience level is constrained by owned badges:
ld hl, wJohtoBadges
@@ -742,7 +697,6 @@ BattleCommand_CheckObedience:
; no badges
ld a, 10
-
.getlevel
; c = obedience level
; d = monster level
@@ -761,14 +715,12 @@ BattleCommand_CheckObedience:
jr nc, .checklevel
ld b, $ff
-
.checklevel
; If the monster's level is lower than the obedience level, it will obey.
ld a, c
cp d
ret nc
-
; Random number from 0 to obedience level + monster level
.rand1
call BattleRandom
@@ -786,7 +738,6 @@ BattleCommand_CheckObedience:
call IgnoreSleepOnly
ret c
-
; Another random number from 0 to obedience level + monster level
.rand2
call BattleRandom
@@ -797,7 +748,6 @@ BattleCommand_CheckObedience:
cp c
jr c, .UseInstead
-
; No hope of using a move now.
; b = number of levels the monster is above the obedience level
@@ -820,7 +770,6 @@ BattleCommand_CheckObedience:
call HitConfusion
jp .EndDisobedience
-
.Nap:
call BattleRandom
add a
@@ -833,7 +782,6 @@ BattleCommand_CheckObedience:
ld hl, BeganToNapText
jr .Print
-
.DoNothing:
; 4 random choices
call BattleRandom
@@ -857,9 +805,7 @@ BattleCommand_CheckObedience:
call StdBattleTextBox
jp .EndDisobedience
-
.UseInstead:
-
; Can't use another move if the monster only has one!
ld a, [wBattleMonMoves + 1]
and a
@@ -870,7 +816,6 @@ BattleCommand_CheckObedience:
and a
jr nz, .DoNothing
-
ld hl, wBattleMonPP
ld de, wBattleMonMoves
ld b, 0
@@ -891,7 +836,6 @@ BattleCommand_CheckObedience:
and a
jr nz, .GetTotalPP
-
.CheckMovePP:
ld hl, wBattleMonPP
ld a, [wCurMoveNum]
@@ -905,7 +849,6 @@ BattleCommand_CheckObedience:
cp b
jr z, .DoNothing
-
; Make sure we can actually use the move once we get there.
ld a, 1
ld [wAlreadyDisobeyed], a
@@ -918,7 +861,6 @@ BattleCommand_CheckObedience:
ld c, a
push af
-
.RandomMove:
call BattleRandom
maskbits NUM_MOVES
@@ -940,7 +882,6 @@ BattleCommand_CheckObedience:
and PP_MASK
jr z, .RandomMove
-
; Use it.
ld a, [wCurMoveNum]
ld c, a
@@ -954,12 +895,10 @@ BattleCommand_CheckObedience:
call UpdateMoveData
call DoMove
-
; Restore original move choice.
pop af
ld [wCurMoveNum], a
-
.EndDisobedience:
xor a
ld [wLastPlayerMove], a
@@ -973,10 +912,7 @@ BattleCommand_CheckObedience:
jp EndMoveEffect
-
-
IgnoreSleepOnly:
-
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVar
@@ -1003,17 +939,12 @@ IgnoreSleepOnly:
scf
ret
-
-
BattleCommand_UsedMoveText:
; usedmovetext
farcall DisplayUsedMoveText
ret
-
-
CheckUserIsCharging:
-
ld a, [hBattleTurn]
and a
ld a, [wPlayerCharging] ; player
@@ -1023,8 +954,6 @@ CheckUserIsCharging:
and a
ret
-
-
BattleCommand_DoTurn:
call CheckUserIsCharging
ret nz
@@ -1150,7 +1079,6 @@ BattleCommand_DoTurn:
ld b, 1
ret
-
.continuousmoves
db EFFECT_RAZOR_WIND
db EFFECT_SKY_ATTACK
@@ -1192,8 +1120,6 @@ CheckMimicUsed:
and a
ret
-
-
BattleCommand_Critical:
; critical
@@ -1286,10 +1212,8 @@ BattleCommand_Critical:
INCLUDE "data/battle/critical_hits.asm"
-
INCLUDE "engine/battle/move_effects/triple_kick.asm"
-
BattleCommand_Stab:
; STAB = Same Type Attack Bonus
ld a, BATTLE_VARS_MOVE_ANIM
@@ -1474,8 +1398,6 @@ BattleCommand_Stab:
ld [wTypeModifier], a
ret
-
-
BattleCheckTypeMatchup:
ld hl, wEnemyMonType1
ld a, [hBattleTurn]
@@ -1555,8 +1477,6 @@ CheckTypeMatchup:
pop hl
ret
-
-
BattleCommand_ResetTypeMatchup:
; Reset the type matchup multiplier to 1.0, if the type matchup is not 0.
; If there is immunity in play, the move automatically misses.
@@ -1576,13 +1496,10 @@ BattleCommand_ResetTypeMatchup:
ld [wTypeMatchup], a
ret
-
-
INCLUDE "engine/battle/ai/switch.asm"
INCLUDE "data/types/type_matchups.asm"
-
BattleCommand_DamageVariation:
; damagevariation
@@ -1592,7 +1509,6 @@ BattleCommand_DamageVariation:
; is not consistent. This makes the highest damage multipliers
; rarer than normal.
-
; No point in reducing 1 or 0 damage.
ld hl, wCurDamage
ld a, [hli]
@@ -1636,8 +1552,6 @@ BattleCommand_DamageVariation:
ld [hl], a
ret
-
-
BattleCommand_CheckHit:
; checkhit
@@ -1706,7 +1620,6 @@ BattleCommand_CheckHit:
.Hit:
ret
-
.Miss:
; Keep the damage value intact if we're using (Hi) Jump Kick.
ld a, BATTLE_VARS_MOVE_EFFECT
@@ -1720,7 +1633,6 @@ BattleCommand_CheckHit:
ld [wAttackMissed], a
ret
-
.DreamEater:
; Return z if we're trying to eat the dream of
; a monster that isn't sleeping.
@@ -1734,7 +1646,6 @@ BattleCommand_CheckHit:
and SLP
ret
-
.Protect:
; Return nz if the opponent is protected.
ld a, BATTLE_VARS_SUBSTATUS1_OPP
@@ -1756,7 +1667,6 @@ BattleCommand_CheckHit:
and a
ret
-
.LockOn:
; Return nz if we are locked-on and aren't trying to use Earthquake,
; Fissure or Magnitude on a monster that is flying.
@@ -1786,7 +1696,6 @@ BattleCommand_CheckHit:
and a
ret
-
.DrainSub:
; Return z if using an HP drain move on a substitute.
call CheckSubstituteOpp
@@ -1805,7 +1714,6 @@ BattleCommand_CheckHit:
and a
ret
-
.FlyDigMoves:
; Check for moves that can hit underground/flying opponents.
; Return z if the current move can hit the opponent.
@@ -1841,7 +1749,6 @@ BattleCommand_CheckHit:
cp MAGNITUDE
ret
-
.ThunderRain:
; Return z if the current move always hits in rain, and it is raining.
ld a, BATTLE_VARS_MOVE_EFFECT
@@ -1853,16 +1760,13 @@ BattleCommand_CheckHit:
cp WEATHER_RAIN
ret
-
.XAccuracy:
ld a, BATTLE_VARS_SUBSTATUS4
call GetBattleVar
bit SUBSTATUS_X_ACCURACY, a
ret
-
.StatModifiers:
-
ld a, [hBattleTurn]
and a
@@ -1955,7 +1859,6 @@ BattleCommand_CheckHit:
INCLUDE "data/battle/accuracy_multipliers.asm"
-
BattleCommand_EffectChance:
; effectchance
@@ -1983,8 +1886,6 @@ BattleCommand_EffectChance:
and a
ret
-
-
BattleCommand_LowerSub:
; lowersub
@@ -2053,16 +1954,12 @@ BattleCommand_LowerSub:
ld [wSomeoneIsRampaging], a
ret
-
-
BattleCommand_MoveAnim:
; moveanim
call BattleCommand_LowerSub
call BattleCommand_MoveAnimNoSub
jp BattleCommand_RaiseSub
-
-
BattleCommand_MoveAnimNoSub:
ld a, [wAttackMissed]
and a
@@ -2127,8 +2024,6 @@ BattleCommand_MoveAnimNoSub:
ld [wNumHits], a
jp PlayFXAnimID
-
-
BattleCommand_StatUpAnim:
ld a, [wAttackMissed]
and a
@@ -2137,8 +2032,6 @@ BattleCommand_StatUpAnim:
xor a
jr BattleCommand_StatUpDownAnim
-
-
BattleCommand_StatDownAnim:
ld a, [wAttackMissed]
and a
@@ -2152,7 +2045,6 @@ BattleCommand_StatDownAnim:
; fallthrough
-
BattleCommand_StatUpDownAnim:
ld [wNumHits], a
xor a
@@ -2163,8 +2055,6 @@ BattleCommand_StatUpDownAnim:
ld d, 0
jp PlayFXAnimID
-
-
BattleCommand_SwitchTurn:
; switchturn
@@ -2173,8 +2063,6 @@ BattleCommand_SwitchTurn:
ld [hBattleTurn], a
ret
-
-
BattleCommand_RaiseSub:
; raisesub
@@ -2194,8 +2082,6 @@ BattleCommand_RaiseSub:
ld a, SUBSTITUTE
jp LoadAnim
-
-
BattleCommand_FailureText:
; failuretext
; If the move missed or failed, load the appropriate
@@ -2238,8 +2124,6 @@ BattleCommand_FailureText:
call AppearUserRaiseSub
jp EndMoveEffect
-
-
BattleCommand_ApplyDamage:
; applydamage
@@ -2332,8 +2216,6 @@ BattleCommand_ApplyDamage:
ld [de], a
ret
-
-
GetFailureResultText:
ld hl, DoesntAffectText
ld de, DoesntAffectText
@@ -2402,8 +2284,6 @@ FailText_CheckOpponentProtect:
.not_protected
jp StdBattleTextBox
-
-
BattleCommand_BideFailText:
ld a, [wAttackMissed]
and a
@@ -2414,8 +2294,6 @@ BattleCommand_BideFailText:
jp z, PrintDoesntAffect
jp PrintButItFailed
-
-
BattleCommand_CriticalText:
; criticaltext
; Prints the message for critical hits or one-hit KOs.
@@ -2447,7 +2325,6 @@ BattleCommand_CriticalText:
dw CriticalHitText
dw OneHitKOText
-
BattleCommand_StartLoop:
; startloop
@@ -2461,8 +2338,6 @@ BattleCommand_StartLoop:
ld [hl], a
ret
-
-
BattleCommand_SuperEffectiveLoopText:
; supereffectivelooptext
@@ -2473,7 +2348,6 @@ BattleCommand_SuperEffectiveLoopText:
; fallthrough
-
BattleCommand_SuperEffectiveText:
; supereffectivetext
@@ -2487,8 +2361,6 @@ BattleCommand_SuperEffectiveText:
.print
jp StdBattleTextBox
-
-
BattleCommand_CheckDestinyBond:
; checkdestinybond
@@ -2576,8 +2448,6 @@ BattleCommand_CheckDestinyBond:
.finish
jp EndMoveEffect
-
-
BattleCommand_BuildOpponentRage:
; buildopponentrage
@@ -2609,8 +2479,6 @@ BattleCommand_BuildOpponentRage:
call StdBattleTextBox
jp BattleCommand_SwitchTurn
-
-
BattleCommand_RageDamage:
; ragedamage
@@ -2639,8 +2507,6 @@ BattleCommand_RageDamage:
ld [wCurDamage + 1], a
ret
-
-
EndMoveEffect:
ld a, [wBattleScriptBufferAddress]
ld l, a
@@ -2652,8 +2518,6 @@ EndMoveEffect:
ld [hl], a
ret
-
-
DittoMetalPowder:
ld a, MON_SPECIES
call BattlePartyAttr
@@ -2690,8 +2554,6 @@ DittoMetalPowder:
rr c
ret
-
-
BattleCommand_DamageStats:
; damagestats
@@ -2701,7 +2563,6 @@ BattleCommand_DamageStats:
; fallthrough
-
PlayerAttackDamage:
; Return move power d, player level e, enemy defense c and player attack b.
@@ -2784,8 +2645,6 @@ PlayerAttackDamage:
and a
ret
-
-
TruncateHL_BC:
.loop
; Truncate 16-bit values hl and bc to 8-bit values b and c respectively.
@@ -2831,8 +2690,6 @@ TruncateHL_BC:
ld b, l
ret
-
-
GetDamageStatsCritical:
; Return carry if non-critical.
@@ -2843,7 +2700,6 @@ GetDamageStatsCritical:
; fallthrough
-
GetDamageStats:
; Return the attacker's offensive stat and the defender's defensive
; stat based on whether the attacking type is physical or special.
@@ -2884,8 +2740,6 @@ GetDamageStats:
pop hl
ret
-
-
ThickClubBoost:
; Return in hl the stat value at hl.
@@ -2901,8 +2755,6 @@ ThickClubBoost:
pop bc
ret
-
-
LightBallBoost:
; Return in hl the stat value at hl.
@@ -2918,8 +2770,6 @@ LightBallBoost:
pop bc
ret
-
-
SpeciesItemBoost:
; Return in hl the stat value at hl.
@@ -2960,8 +2810,6 @@ SpeciesItemBoost:
rl h
ret
-
-
EnemyAttackDamage:
call ResetDamage
@@ -3040,11 +2888,8 @@ EnemyAttackDamage:
and a
ret
-
-
INCLUDE "engine/battle/move_effects/beat_up.asm"
-
BattleCommand_ClearMissDamage:
; clearmissdamage
ld a, [wAttackMissed]
@@ -3053,8 +2898,6 @@ BattleCommand_ClearMissDamage:
jp ResetDamage
-
-
HitSelfInConfusion:
call ResetDamage
ld a, [hBattleTurn]
@@ -3091,8 +2934,6 @@ HitSelfInConfusion:
ld e, a
ret
-
-
BattleCommand_DamageCalc:
; damagecalc
@@ -3216,12 +3057,11 @@ BattleCommand_DamageCalc:
ld [hDivisor], a
ld b, 4
call Divide
-.DoneItem:
+.DoneItem:
; Critical hits
call .CriticalMultiplier
-
; Update wCurDamage (capped at 997).
ld hl, wCurDamage
ld b, [hl]
@@ -3286,7 +3126,6 @@ BattleCommand_DamageCalc:
ld a, LOW(MAX_STAT_VALUE - MIN_NEUTRAL_DAMAGE)
ld [hld], a
-
.dont_cap_3
; Minimum neutral damage is 2 (bringing the cap to 999).
inc hl
@@ -3301,7 +3140,6 @@ BattleCommand_DamageCalc:
and a
ret
-
.CriticalMultiplier:
ld a, [wCriticalHit]
and a
@@ -3325,11 +3163,8 @@ BattleCommand_DamageCalc:
ret
-
-
INCLUDE "data/types/type_boost_items.asm"
-
BattleCommand_ConstantDamage:
; constantdamage
@@ -3490,7 +3325,6 @@ BattleCommand_ConstantDamage:
INCLUDE "data/moves/flail_reversal_power.asm"
-
INCLUDE "engine/battle/move_effects/counter.asm"
INCLUDE "engine/battle/move_effects/encore.asm"
@@ -3505,7 +3339,6 @@ INCLUDE "engine/battle/move_effects/lock_on.asm"
INCLUDE "engine/battle/move_effects/sketch.asm"
-
BattleCommand_DefrostOpponent:
; defrostopponent
; Thaw the opponent if frozen, and
@@ -3532,8 +3365,6 @@ BattleCommand_DefrostOpponent:
ld [hl], a
ret
-
-
INCLUDE "engine/battle/move_effects/sleep_talk.asm"
INCLUDE "engine/battle/move_effects/destiny_bond.asm"
@@ -3544,7 +3375,6 @@ INCLUDE "engine/battle/move_effects/false_swipe.asm"
INCLUDE "engine/battle/move_effects/heal_bell.asm"
-
FarPlayBattleAnimation:
; play animation de
@@ -3566,8 +3396,6 @@ PlayFXAnimID:
callfar PlayBattleAnim
ret
-
-
DoEnemyDamage:
ld hl, wCurDamage
ld a, [hli]
@@ -3628,8 +3456,6 @@ DoEnemyDamage:
.did_no_damage
jp RefreshBattleHuds
-
-
DoPlayerDamage:
ld hl, wCurDamage
ld a, [hli]
@@ -3690,8 +3516,6 @@ DoPlayerDamage:
.did_no_damage
jp RefreshBattleHuds
-
-
DoSubstituteDamage:
ld hl, SubTookDamageText
call StdBattleTextBox
@@ -3749,10 +3573,7 @@ DoSubstituteDamage:
.done
jp ResetDamage
-
-
UpdateMoveData:
-
ld a, BATTLE_VARS_MOVE_ANIM
call GetBattleVarAddr
ld d, h
@@ -3768,8 +3589,6 @@ UpdateMoveData:
call GetMoveName
jp CopyName1
-
-
BattleCommand_SleepTarget:
; sleeptarget
@@ -3841,8 +3660,6 @@ BattleCommand_SleepTarget:
pop hl
jp StdBattleTextBox
-
-
.CheckAIRandomFail:
; Enemy turn
ld a, [hBattleTurn]
@@ -3871,8 +3688,6 @@ BattleCommand_SleepTarget:
xor a
ret
-
-
BattleCommand_PoisonTarget:
; poisontarget
@@ -3908,8 +3723,6 @@ BattleCommand_PoisonTarget:
farcall UseHeldStatusHealingItem
ret
-
-
BattleCommand_Poison:
; poison
@@ -3998,15 +3811,11 @@ BattleCommand_Poison:
pop hl
jp StdBattleTextBox
-
-
.apply_poison
call AnimateCurrentMove
call PoisonOpponent
jp RefreshBattleHuds
-
-
.check_toxic
ld a, BATTLE_VARS_SUBSTATUS5_OPP
call GetBattleVarAddr
@@ -4021,8 +3830,6 @@ BattleCommand_Poison:
cp EFFECT_TOXIC
ret
-
-
CheckIfTargetIsPoisonType:
ld de, wEnemyMonType1
ld a, [hBattleTurn]
@@ -4038,32 +3845,24 @@ CheckIfTargetIsPoisonType:
cp POISON
ret
-
-
PoisonOpponent:
ld a, BATTLE_VARS_STATUS_OPP
call GetBattleVarAddr
set PSN, [hl]
jp UpdateOpponentInParty
-
-
BattleCommand_DrainTarget:
; draintarget
call SapHealth
ld hl, SuckedHealthText
jp StdBattleTextBox
-
-
BattleCommand_EatDream:
; eatdream
call SapHealth
ld hl, DreamEatenText
jp StdBattleTextBox
-
-
SapHealth:
; Divide damage by 2, store it in hDividend
ld hl, wCurDamage
@@ -4157,8 +3956,6 @@ SapHealth:
call RefreshBattleHuds
jp UpdateBattleMonInParty
-
-
BattleCommand_BurnTarget:
; burntarget
@@ -4200,8 +3997,6 @@ BattleCommand_BurnTarget:
farcall UseHeldStatusHealingItem
ret
-
-
Defrost:
ld a, [hl]
and 1 << FRZ
@@ -4227,8 +4022,6 @@ Defrost:
ld hl, DefrostedOpponentText
jp StdBattleTextBox
-
-
BattleCommand_FreezeTarget:
; freezetarget
@@ -4282,8 +4075,6 @@ BattleCommand_FreezeTarget:
ld [hl], $1
ret
-
-
BattleCommand_ParalyzeTarget:
; paralyzetarget
@@ -4320,8 +4111,6 @@ BattleCommand_ParalyzeTarget:
ld hl, UseHeldStatusHealingItem
jp CallBattleCore
-
-
BattleCommand_AttackUp:
; attackup
ld b, ATTACK
@@ -4400,8 +4189,6 @@ BattleCommand_StatUp:
ret nz
jp StatUpAnimation
-
-
CheckIfStatCanBeRaised:
ld a, b
ld [wLoweredStat], a
@@ -4481,14 +4268,11 @@ CheckIfStatCanBeRaised:
ld [wFailedMessage], a
ret
-
-
.stats_already_max
pop hl
dec [hl]
; fallthrough
-
.cant_raise_stat
ld a, $2
ld [wFailedMessage], a
@@ -4496,15 +4280,11 @@ CheckIfStatCanBeRaised:
ld [wAttackMissed], a
ret
-
-
.stat_raise_failed
ld a, $1
ld [wFailedMessage], a
ret
-
-
StatUpAnimation:
ld bc, wPlayerMinimized
ld hl, DropPlayerSub
@@ -4530,8 +4310,6 @@ StatUpAnimation:
call WaitBGMap
jp BattleCommand_MoveDelay
-
-
BattleCommand_AttackDown:
; attackdown
ld a, ATTACK
@@ -4724,8 +4502,6 @@ BattleCommand_StatDown:
ld [wAttackMissed], a
ret
-
-
CheckMist:
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
@@ -4751,8 +4527,6 @@ CheckMist:
bit SUBSTATUS_MIST, a
ret
-
-
BattleCommand_StatUpMessage:
ld a, [wFailedMessage]
and a
@@ -4783,8 +4557,6 @@ BattleCommand_StatUpMessage:
text_jump UnknownText_0x1c0ce0
db "@"
-
-
BattleCommand_StatDownMessage:
ld a, [wFailedMessage]
and a
@@ -4814,8 +4586,6 @@ BattleCommand_StatDownMessage:
text_jump UnknownText_0x1c0d06
db "@"
-
-
TryLowerStat:
; Lower stat c from stat struct hl (buffer de).
@@ -4859,8 +4629,6 @@ TryLowerStat:
and a
ret
-
-
BattleCommand_StatUpFailText:
; statupfailtext
ld a, [wFailedMessage]
@@ -4879,8 +4647,6 @@ BattleCommand_StatUpFailText:
ld hl, WontRiseAnymoreText
jp StdBattleTextBox
-
-
BattleCommand_StatDownFailText:
; statdownfailtext
ld a, [wFailedMessage]
@@ -4902,8 +4668,6 @@ BattleCommand_StatDownFailText:
ld hl, WontDropAnymoreText
jp StdBattleTextBox
-
-
GetStatName:
ld hl, StatNames
ld c, "@"
@@ -4923,10 +4687,8 @@ GetStatName:
INCLUDE "data/battle/stat_names.asm"
-
INCLUDE "data/battle/stat_multipliers.asm"
-
BattleCommand_AllStatsUp:
; allstatsup
@@ -4955,14 +4717,11 @@ BattleCommand_AllStatsUp:
call BattleCommand_SpecialDefenseUp
jp BattleCommand_StatUpMessage
-
ResetMiss:
xor a
ld [wAttackMissed], a
ret
-
-
LowerStat:
ld [wLoweredStat], a
@@ -5034,8 +4793,6 @@ LowerStat:
ld [wFailedMessage], a
ret
-
-
BattleCommand_TriStatusChance:
; tristatuschance
@@ -5057,7 +4814,6 @@ BattleCommand_TriStatusChance:
dw BattleCommand_FreezeTarget ; freeze
dw BattleCommand_BurnTarget ; burn
-
BattleCommand_Curl:
; curl
ld a, BATTLE_VARS_SUBSTATUS2
@@ -5065,8 +4821,6 @@ BattleCommand_Curl:
set SUBSTATUS_CURLED, [hl]
ret
-
-
BattleCommand_RaiseSubNoAnim:
ld hl, GetBattleMonBackpic
ld a, [hBattleTurn]
@@ -5079,8 +4833,6 @@ BattleCommand_RaiseSubNoAnim:
call CallBattleCore
jp WaitBGMap
-
-
BattleCommand_LowerSubNoAnim:
ld hl, DropPlayerSub
ld a, [hBattleTurn]
@@ -5093,8 +4845,6 @@ BattleCommand_LowerSubNoAnim:
call CallBattleCore
jp WaitBGMap
-
-
CalcPlayerStats:
ld hl, wPlayerAtkLevel
ld de, wPlayerStats
@@ -5116,8 +4866,6 @@ CalcPlayerStats:
jp BattleCommand_SwitchTurn
-
-
CalcEnemyStats:
ld hl, wEnemyAtkLevel
ld de, wEnemyStats
@@ -5136,8 +4884,6 @@ CalcEnemyStats:
jp BattleCommand_SwitchTurn
-
-
CalcStats:
.loop
push af
@@ -5207,11 +4953,8 @@ CalcStats:
ret
-
-
INCLUDE "engine/battle/move_effects/bide.asm"
-
BattleCommand_CheckRampage:
; checkrampage
@@ -5249,8 +4992,6 @@ BattleCommand_CheckRampage:
ld b, rampage_command
jp SkipToBattleCommand
-
-
BattleCommand_Rampage:
; rampage
@@ -5278,11 +5019,8 @@ BattleCommand_Rampage:
ld [wSomeoneIsRampaging], a
ret
-
-
INCLUDE "engine/battle/move_effects/teleport.asm"
-
SetBattleDraw:
ld a, [wBattleResult]
and BATTLERESULT_BITMASK
@@ -5290,8 +5028,6 @@ SetBattleDraw:
ld [wBattleResult], a
ret
-
-
BattleCommand_ForceSwitch:
; forceswitch
@@ -5511,8 +5247,6 @@ BattleCommand_ForceSwitch:
.do_text
jp StdBattleTextBox
-
-
CheckPlayerHasMonToSwitchTo:
ld a, [wPartyCount]
ld d, a
@@ -5542,8 +5276,6 @@ CheckPlayerHasMonToSwitchTo:
and a
ret
-
-
BattleCommand_EndLoop:
; endloop
@@ -5678,8 +5410,6 @@ BattleCommand_EndLoop:
ld [wBattleScriptBufferAddress], a
ret
-
-
BattleCommand_FakeOut:
ld a, [wAttackMissed]
and a
@@ -5701,8 +5431,6 @@ BattleCommand_FakeOut:
ld [wAttackMissed], a
ret
-
-
BattleCommand_FlinchTarget:
call CheckSubstituteOpp
ret nz
@@ -5721,15 +5449,12 @@ BattleCommand_FlinchTarget:
; fallthrough
-
FlinchTarget:
ld a, BATTLE_VARS_SUBSTATUS3_OPP
call GetBattleVarAddr
set SUBSTATUS_FLINCHED, [hl]
jp EndRechargeOpp
-
-
CheckOpponentWentFirst:
; Returns a=0, z if user went first
; Returns a=1, nz if opponent went first
@@ -5741,8 +5466,6 @@ CheckOpponentWentFirst:
pop bc
ret
-
-
BattleCommand_HeldFlinch:
; kingsrock
@@ -5771,8 +5494,6 @@ BattleCommand_HeldFlinch:
set SUBSTATUS_FLINCHED, [hl]
ret
-
-
BattleCommand_OHKO:
; ohko
@@ -5819,8 +5540,6 @@ BattleCommand_OHKO:
ld [wAttackMissed], a
ret
-
-
BattleCommand_CheckCharge:
; checkcharge
@@ -5834,8 +5553,6 @@ BattleCommand_CheckCharge:
ld b, charge_command
jp SkipToBattleCommand
-
-
BattleCommand_Charge:
; charge
@@ -5977,13 +5694,10 @@ BattleCommand_Charge:
text_jump UnknownText_0x1c0d6c
db "@"
-
BattleCommand3c:
; unused
ret
-
-
BattleCommand_TrapTarget:
; traptarget
@@ -6040,12 +5754,10 @@ BattleCommand_TrapTarget:
dbw CLAMP, ClampedByText ; 'was CLAMPED by'
dbw WHIRLPOOL, WhirlpoolTrapText ; 'was trapped!'
-
INCLUDE "engine/battle/move_effects/mist.asm"
INCLUDE "engine/battle/move_effects/focus_energy.asm"
-
BattleCommand_Recoil:
; recoil
@@ -6110,8 +5822,6 @@ BattleCommand_Recoil:
ld hl, RecoilText
jp StdBattleTextBox
-
-
BattleCommand_ConfuseTarget:
; confusetarget
@@ -6132,7 +5842,6 @@ BattleCommand_ConfuseTarget:
ret nz
jr BattleCommand_FinishConfusingTarget
-
BattleCommand_Confuse:
; confuse
@@ -6205,7 +5914,6 @@ BattleCommand_FinishConfusingTarget:
ld hl, UseConfusionHealingItem
jp CallBattleCore
-
BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit:
ld a, BATTLE_VARS_MOVE_EFFECT
call GetBattleVar
@@ -6217,8 +5925,6 @@ BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit:
ret z
jp PrintDidntAffect2
-
-
BattleCommand_Paralyze:
; paralyze
@@ -6299,8 +6005,6 @@ BattleCommand_Paralyze:
call AnimateFailedMove
jp PrintDoesntAffect
-
-
CheckMoveTypeMatchesTarget:
; Compare move type to opponent type.
; Return z if matching the opponent type,
@@ -6336,11 +6040,8 @@ CheckMoveTypeMatchesTarget:
pop hl
ret
-
-
INCLUDE "engine/battle/move_effects/substitute.asm"
-
BattleCommand_RechargeNextTurn:
; rechargenextturn
ld a, BATTLE_VARS_SUBSTATUS4
@@ -6348,8 +6049,6 @@ BattleCommand_RechargeNextTurn:
set SUBSTATUS_RECHARGE, [hl]
ret
-
-
EndRechargeOpp:
push hl
ld a, BATTLE_VARS_SUBSTATUS4_OPP
@@ -6358,11 +6057,8 @@ EndRechargeOpp:
pop hl
ret
-
-
INCLUDE "engine/battle/move_effects/rage.asm"
-
BattleCommand_DoubleFlyingDamage:
; doubleflyingdamage
ld a, BATTLE_VARS_SUBSTATUS3_OPP
@@ -6371,8 +6067,6 @@ BattleCommand_DoubleFlyingDamage:
ret z
jr DoubleDamage
-
-
BattleCommand_DoubleUndergroundDamage:
; doubleundergrounddamage
ld a, BATTLE_VARS_SUBSTATUS3_OPP
@@ -6382,7 +6076,6 @@ BattleCommand_DoubleUndergroundDamage:
; fallthrough
-
DoubleDamage:
ld hl, wCurDamage + 1
sla [hl]
@@ -6396,8 +6089,6 @@ DoubleDamage:
.quit
ret
-
-
INCLUDE "engine/battle/move_effects/mimic.asm"
INCLUDE "engine/battle/move_effects/leech_seed.asm"
@@ -6410,7 +6101,6 @@ INCLUDE "engine/battle/move_effects/pay_day.asm"
INCLUDE "engine/battle/move_effects/conversion.asm"
-
BattleCommand_ResetStats:
; resetstats
@@ -6444,8 +6134,6 @@ BattleCommand_ResetStats:
jr nz, .next
ret
-
-
BattleCommand_Heal:
; heal
@@ -6528,11 +6216,8 @@ BattleCommand_Heal:
ld hl, HPIsFullText
jp StdBattleTextBox
-
-
INCLUDE "engine/battle/move_effects/transform.asm"
-
BattleSideCopy:
; Copy bc bytes from hl to de if it's the player's turn.
; Copy bc bytes from de to hl if it's the enemy's turn.
@@ -6548,14 +6233,10 @@ BattleSideCopy:
.copy
jp CopyBytes
-
-
BattleEffect_ButItFailed:
call AnimateFailedMove
jp PrintButItFailed
-
-
ClearLastMove:
ld a, BATTLE_VARS_LAST_COUNTER_MOVE
call GetBattleVarAddr
@@ -6568,8 +6249,6 @@ ClearLastMove:
ld [hl], a
ret
-
-
ResetActorDisable:
ld a, [hBattleTurn]
and a
@@ -6586,8 +6265,6 @@ ResetActorDisable:
ld [wDisabledMove], a
ret
-
-
BattleCommand_Screen:
; screen
@@ -6633,22 +6310,16 @@ BattleCommand_Screen:
call AnimateFailedMove
jp PrintButItFailed
-
-
PrintDoesntAffect:
; 'it doesn't affect'
ld hl, DoesntAffectText
jp StdBattleTextBox
-
-
PrintNothingHappened:
; 'but nothing happened!'
ld hl, NothingHappenedText
jp StdBattleTextBox
-
-
TryPrintButItFailed:
ld a, [wAlreadyFailed]
and a
@@ -6656,14 +6327,11 @@ TryPrintButItFailed:
; fallthrough
-
PrintButItFailed:
; 'but it failed!'
ld hl, ButItFailedText
jp StdBattleTextBox
-
-
FailMove:
call AnimateFailedMove
; fallthrough
@@ -6673,45 +6341,34 @@ FailMimic:
ld de, ItFailedText ; 'it failed!'
jp FailText_CheckOpponentProtect
-
-
PrintDidntAffect:
; 'it didn't affect'
ld hl, DidntAffect1Text
jp StdBattleTextBox
-
-
PrintDidntAffect2:
call AnimateFailedMove
ld hl, DidntAffect1Text ; 'it didn't affect'
ld de, DidntAffect2Text ; 'it didn't affect'
jp FailText_CheckOpponentProtect
-
-
PrintParalyze:
; 'paralyzed! maybe it can't attack!'
ld hl, ParalyzedText
jp StdBattleTextBox
-
-
CheckSubstituteOpp:
ld a, BATTLE_VARS_SUBSTATUS4_OPP
call GetBattleVar
bit SUBSTATUS_SUBSTITUTE, a
ret
-
-
INCLUDE "engine/battle/move_effects/selfdestruct.asm"
INCLUDE "engine/battle/move_effects/mirror_move.asm"
INCLUDE "engine/battle/move_effects/metronome.asm"
-
CheckUserMove:
; Return z if the user has move a.
ld b, a
@@ -6736,8 +6393,6 @@ CheckUserMove:
and a
ret
-
-
ResetTurn:
ld hl, wPlayerCharging
ld a, [hBattleTurn]
@@ -6752,11 +6407,8 @@ ResetTurn:
call DoMove
jp EndMoveEffect
-
-
INCLUDE "engine/battle/move_effects/thief.asm"
-
BattleCommand_ArenaTrap:
; arenatrap
@@ -6783,11 +6435,8 @@ BattleCommand_ArenaTrap:
call AnimateFailedMove
jp PrintButItFailed
-
-
INCLUDE "engine/battle/move_effects/nightmare.asm"
-
BattleCommand_Defrost:
; defrost
@@ -6819,8 +6468,6 @@ BattleCommand_Defrost:
ld hl, WasDefrostedText
jp StdBattleTextBox
-
-
INCLUDE "engine/battle/move_effects/curse.asm"
INCLUDE "engine/battle/move_effects/protect.asm"
@@ -6837,13 +6484,10 @@ INCLUDE "engine/battle/move_effects/sandstorm.asm"
INCLUDE "engine/battle/move_effects/rollout.asm"
-
BattleCommand5d:
; unused
ret
-
-
INCLUDE "engine/battle/move_effects/fury_cutter.asm"
INCLUDE "engine/battle/move_effects/attract.asm"
@@ -6856,7 +6500,6 @@ INCLUDE "engine/battle/move_effects/frustration.asm"
INCLUDE "engine/battle/move_effects/safeguard.asm"
-
SafeCheckSafeguard:
push hl
ld hl, wEnemyScreens
@@ -6870,8 +6513,6 @@ SafeCheckSafeguard:
pop hl
ret
-
-
BattleCommand_CheckSafeguard:
; checksafeguard
ld hl, wEnemyScreens
@@ -6889,8 +6530,6 @@ BattleCommand_CheckSafeguard:
call StdBattleTextBox
jp EndMoveEffect
-
-
INCLUDE "engine/battle/move_effects/magnitude.asm"
INCLUDE "engine/battle/move_effects/baton_pass.asm"
@@ -6899,19 +6538,16 @@ INCLUDE "engine/battle/move_effects/pursuit.asm"
INCLUDE "engine/battle/move_effects/rapid_spin.asm"
-
BattleCommand_HealMorn:
; healmorn
ld b, MORN_F
jr BattleCommand_TimeBasedHealContinue
-
BattleCommand_HealDay:
; healday
ld b, DAY_F
jr BattleCommand_TimeBasedHealContinue
-
BattleCommand_HealNite:
; healnite
ld b, NITE_F
@@ -6999,7 +6635,6 @@ BattleCommand_TimeBasedHealContinue:
dw GetHalfMaxHP
dw GetMaxHP
-
INCLUDE "engine/battle/move_effects/hidden_power.asm"
INCLUDE "engine/battle/move_effects/rain_dance.asm"
@@ -7012,7 +6647,6 @@ INCLUDE "engine/battle/move_effects/psych_up.asm"
INCLUDE "engine/battle/move_effects/mirror_coat.asm"
-
BattleCommand_DoubleMinimizeDamage:
; doubleminimizedamage
@@ -7035,8 +6669,6 @@ BattleCommand_DoubleMinimizeDamage:
ld [hl], a
ret
-
-
BattleCommand_SkipSunCharge:
; mimicsuncharge
ld a, [wBattleWeather]
@@ -7045,13 +6677,10 @@ BattleCommand_SkipSunCharge:
ld b, charge_command
jp SkipToBattleCommand
-
-
INCLUDE "engine/battle/move_effects/future_sight.asm"
INCLUDE "engine/battle/move_effects/thunder.asm"
-
CheckHiddenOpponent:
; BUG: This routine should account for Lock-On and Mind Reader.
ld a, BATTLE_VARS_SUBSTATUS3_OPP
@@ -7059,8 +6688,6 @@ CheckHiddenOpponent:
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
ret
-
-
GetUserItem:
; Return the effect of the user's item in bc, and its id at hl.
ld hl, wBattleMonItem
@@ -7072,8 +6699,6 @@ GetUserItem:
ld b, [hl]
jp GetItemHeldEffect
-
-
GetOpponentItem:
; Return the effect of the opponent's item in bc, and its id at hl.
ld hl, wEnemyMonItem
@@ -7085,8 +6710,6 @@ GetOpponentItem:
ld b, [hl]
jp GetItemHeldEffect
-
-
GetItemHeldEffect:
; Return the effect of item b in bc.
ld a, b
@@ -7107,8 +6730,6 @@ GetItemHeldEffect:
pop hl
ret
-
-
AnimateCurrentMoveEitherSide:
push hl
push de
@@ -7125,8 +6746,6 @@ AnimateCurrentMoveEitherSide:
pop hl
ret
-
-
AnimateCurrentMove:
push hl
push de
@@ -7143,8 +6762,6 @@ AnimateCurrentMove:
pop hl
ret
-
-
PlayDamageAnim:
xor a
ld [wFXAnimID + 1], a
@@ -7167,8 +6784,6 @@ PlayDamageAnim:
jp PlayUserBattleAnim
-
-
LoadMoveAnim:
xor a
ld [wNumHits], a
@@ -7181,13 +6796,11 @@ LoadMoveAnim:
; fallthrough
-
LoadAnim:
ld [wFXAnimID], a
; fallthrough
-
PlayUserBattleAnim:
push hl
push de
@@ -7198,8 +6811,6 @@ PlayUserBattleAnim:
pop hl
ret
-
-
PlayOpponentBattleAnim:
ld a, e
ld [wFXAnimID], a
@@ -7221,30 +6832,22 @@ PlayOpponentBattleAnim:
pop hl
ret
-
-
CallBattleCore:
ld a, BANK("Battle Core")
rst FarCall
ret
-
-
AnimateFailedMove:
call BattleCommand_LowerSub
call BattleCommand_MoveDelay
jp BattleCommand_RaiseSub
-
-
BattleCommand_MoveDelay:
; movedelay
; Wait 40 frames.
ld c, 40
jp DelayFrames
-
-
BattleCommand_ClearText:
; cleartext
@@ -7255,7 +6858,6 @@ BattleCommand_ClearText:
.text
db "@"
-
SkipToBattleCommand:
; Skip over commands until reaching command b.
ld a, [wBattleScriptBufferAddress + 1]
@@ -7273,8 +6875,6 @@ SkipToBattleCommand:
ld [wBattleScriptBufferAddress], a
ret
-
-
GetMoveAttr:
; Assuming hl = Moves + x, return attribute x of move a.
push bc
@@ -7284,8 +6884,6 @@ GetMoveAttr:
pop bc
ret
-
-
GetMoveData:
; Copy move struct a to de.
ld hl, Moves
@@ -7294,32 +6892,22 @@ GetMoveData:
ld a, BANK(Moves)
jp FarCopyBytes
-
-
GetMoveByte:
ld a, BANK(Moves)
jp GetFarByte
-
-
DisappearUser:
farcall _DisappearUser
ret
-
-
AppearUserLowerSub:
farcall _AppearUserLowerSub
ret
-
-
AppearUserRaiseSub:
farcall _AppearUserRaiseSub
ret
-
-
_CheckBattleScene:
; Checks the options. Returns carry if battle animations are disabled.
push hl
@@ -7330,4 +6918,3 @@ _CheckBattleScene:
pop de
pop hl
ret
-