diff options
Diffstat (limited to 'engine/battle')
25 files changed, 0 insertions, 411 deletions
diff --git a/engine/battle/ai/items.asm b/engine/battle/ai/items.asm index 14817f414..29bc23b20 100644 --- a/engine/battle/ai/items.asm +++ b/engine/battle/ai/items.asm @@ -145,13 +145,11 @@ SwitchSometimes: ld [wEnemySwitchMonIndex], a jp AI_TrySwitch - CheckSubstatusCantRun: ld a, [wEnemySubStatus5] bit SUBSTATUS_CANT_RUN, a ret - AI_TryItem: ; items are not allowed in the BattleTower ld a, [wInBattleTowerBattle] @@ -238,7 +236,6 @@ AI_TryItem: scf ret - .IsHighestLevel: ld a, [wOTPartyCount] ld d, a @@ -270,7 +267,6 @@ AI_TryItem: scf ret - AI_Items: dbw FULL_RESTORE, .FullRestore dbw MAX_POTION, .MaxPotion @@ -520,7 +516,6 @@ AI_Items: and a ret - AIUpdateHUD: call UpdateEnemyMonInParty farcall UpdateEnemyHUD @@ -538,7 +533,6 @@ AIUsedItemSound: pop de ret - EnemyUsedFullHeal: call AIUsedItemSound call AI_HealStatus @@ -642,7 +636,6 @@ EnemyPotionFinish: predef AnimateHPBar jp AIUpdateHUD - AI_TrySwitch: ; Determine whether the AI can switch based on how many Pokemon are still alive. ; If it can switch, it will. @@ -805,7 +798,6 @@ EnemyUsedXSpecial: ld b, SP_ATTACK ld a, X_SPECIAL - ; Parameter ; a = ITEM_CONSTANT ; b = BATTLE_CONSTANT (ATTACK, DEFENSE, SPEED, SP_ATTACK, SP_DEFENSE, ACCURACY, EVASION) @@ -817,7 +809,6 @@ EnemyUsedXItem: farcall CheckIfStatCanBeRaised jp AIUpdateHUD - ; Parameter ; a = ITEM_CONSTANT PrintText_UsedItemOn_AND_AIUpdateHUD: diff --git a/engine/battle/ai/move.asm b/engine/battle/ai/move.asm index 488ea76ca..df0053141 100644 --- a/engine/battle/ai/move.asm +++ b/engine/battle/ai/move.asm @@ -15,7 +15,6 @@ AIChooseMove: farcall CheckEnemyLockedIn ret nz - ; The default score is 20. Unusable moves are given a score of 80. ld a, 20 ld hl, wBuffer1 @@ -61,7 +60,6 @@ AIChooseMove: ld [hl], 80 jr .CheckMovePP - ; Apply AI scoring layers depending on the trainer class. .ApplyLayers: ld hl, TrainerClassAttributes + TRNATTR_AI_MOVE_WEIGHTS @@ -199,7 +197,6 @@ AIChooseMove: ld [wCurEnemyMoveNum], a ret - AIScoringPointers: ; entries correspond to AI_* constants dw AI_Basic diff --git a/engine/battle/ai/scoring.asm b/engine/battle/ai/scoring.asm index 128e9841b..f6ca177f5 100644 --- a/engine/battle/ai/scoring.asm +++ b/engine/battle/ai/scoring.asm @@ -65,7 +65,6 @@ AI_Basic: INCLUDE "data/battle/ai/status_only_effects.asm" - AI_Setup: ; Use stat-modifying moves on turn 1. @@ -141,7 +140,6 @@ AI_Setup: jr .checkmove - AI_Types: ; Dismiss any move that the player is immune to. ; Encourage super-effective moves. @@ -232,7 +230,6 @@ AI_Types: jr .checkmove - AI_Offensive: ; Greatly discourage non-damaging moves. @@ -260,7 +257,6 @@ AI_Offensive: jr .checkmove - AI_Smart: ; Context-specific scoring. @@ -392,7 +388,6 @@ AI_Smart: dbw EFFECT_FLY, AI_Smart_Fly db -1 ; end - AI_Smart_Sleep: ; Greatly encourage sleep inducing moves if the enemy has either Dream Eater or Nightmare. ; 50% chance to greatly encourage sleep inducing moves otherwise. @@ -412,7 +407,6 @@ AI_Smart_Sleep: dec [hl] ret - AI_Smart_LeechHit: push hl ld a, 1 @@ -447,7 +441,6 @@ AI_Smart_LeechHit: inc [hl] ret - AI_Smart_LockOn: ld a, [wPlayerSubStatus5] bit SUBSTATUS_LOCK_ON, a @@ -552,7 +545,6 @@ AI_Smart_LockOn: pop hl jp AIDiscourageMove - AI_Smart_Selfdestruct: ; Selfdestruct, Explosion @@ -589,7 +581,6 @@ AI_Smart_Selfdestruct: inc [hl] ret - AI_Smart_DreamEater: ; 90% chance to greatly encourage this move. ; The AI_Basic layer will make sure that @@ -602,7 +593,6 @@ AI_Smart_DreamEater: dec [hl] ret - AI_Smart_EvasionUp: ; Dismiss this move if enemy's evasion can't raise anymore. @@ -688,7 +678,6 @@ AI_Smart_EvasionUp: bit SUBSTATUS_ROLLOUT, a jr nz, .asm_388ef - .asm_38936 inc [hl] ret @@ -714,7 +703,6 @@ AI_Smart_EvasionUp: dec [hl] ret - AI_Smart_AlwaysHit: ; 80% chance to greatly encourage this move if either... @@ -736,7 +724,6 @@ AI_Smart_AlwaysHit: dec [hl] ret - AI_Smart_MirrorMove: ; If the player did not use any move last turn... @@ -779,7 +766,6 @@ AI_Smart_MirrorMove: dec [hl] ret - AI_Smart_AccuracyDown: ; If player's HP is full... @@ -885,7 +871,6 @@ AI_Smart_AccuracyDown: dec [hl] ret - AI_Smart_ResetStats: ; 85% chance to encourage this move if any of enemy's stat levels is lower than -2. @@ -927,7 +912,6 @@ AI_Smart_ResetStats: inc [hl] ret - AI_Smart_Bide: ; 90% chance to discourage this move unless enemy's HP is full. @@ -939,7 +923,6 @@ AI_Smart_Bide: inc [hl] ret - AI_Smart_ForceSwitch: ; Whirlwind, Roar. @@ -956,7 +939,6 @@ AI_Smart_ForceSwitch: inc [hl] ret - AI_Smart_Heal: AI_Smart_MorningSun: AI_Smart_Synthesis: @@ -980,7 +962,6 @@ AI_Smart_Moonlight: dec [hl] ret - AI_Smart_Toxic: AI_Smart_LeechSeed: ; Discourage this move if player's HP is below 50%. @@ -990,7 +971,6 @@ AI_Smart_LeechSeed: inc [hl] ret - AI_Smart_LightScreen: AI_Smart_Reflect: ; Over 90% chance to discourage this move unless enemy's HP is full. @@ -1003,7 +983,6 @@ AI_Smart_Reflect: inc [hl] ret - AI_Smart_Ohko: ; Dismiss this move if player's level is higher than enemy's level. ; Else, discourage this move is player's HP is below 50%. @@ -1018,7 +997,6 @@ AI_Smart_Ohko: inc [hl] ret - AI_Smart_TrapTarget: ; Bind, Wrap, Fire Spin, Clamp @@ -1058,7 +1036,6 @@ AI_Smart_TrapTarget: dec [hl] ret - AI_Smart_RazorWind: AI_Smart_Unused2B: ld a, [wEnemySubStatus1] @@ -1112,7 +1089,6 @@ AI_Smart_Unused2B: ld [hl], a ret - AI_Smart_Confuse: ; 90% chance to discourage this move if player's HP is between 25% and 50%. @@ -1130,7 +1106,6 @@ AI_Smart_Confuse: inc [hl] ret - AI_Smart_SpDefenseUp2: ; Discourage this move if enemy's HP is lower than 50%. @@ -1165,7 +1140,6 @@ AI_Smart_SpDefenseUp2: inc [hl] ret - AI_Smart_Fly: ; Fly, Dig @@ -1184,7 +1158,6 @@ AI_Smart_Fly: dec [hl] ret - AI_Smart_SuperFang: ; Discourage this move if player's HP is below 25%. @@ -1193,7 +1166,6 @@ AI_Smart_SuperFang: inc [hl] ret - AI_Smart_Paralyze: ; 50% chance to discourage this move if player's HP is below 25%. @@ -1218,7 +1190,6 @@ AI_Smart_Paralyze: inc [hl] ret - AI_Smart_SpeedDownHit: ; Icy Wind @@ -1244,7 +1215,6 @@ AI_Smart_SpeedDownHit: dec [hl] ret - AI_Smart_Substitute: ; Dismiss this move if enemy's HP is below 50%. @@ -1252,7 +1222,6 @@ AI_Smart_Substitute: ret c jp AIDiscourageMove - AI_Smart_HyperBeam: call AICheckEnemyHalfHP jr c, .asm_38b72 @@ -1276,7 +1245,6 @@ AI_Smart_HyperBeam: inc [hl] ret - AI_Smart_Rage: ld a, [wEnemySubStatus4] bit SUBSTATUS_RAGE, a @@ -1315,7 +1283,6 @@ AI_Smart_Rage: inc [hl] ret - AI_Smart_Mimic: ld a, [wLastPlayerCounterMove] and a @@ -1365,7 +1332,6 @@ AI_Smart_Mimic: inc [hl] ret - AI_Smart_Counter: push hl ld hl, wPlayerUsedMoves @@ -1415,7 +1381,6 @@ AI_Smart_Counter: cp SPECIAL jr nc, .asm_38c38 - .asm_38c30 call Random cp 39 percent + 1 @@ -1430,7 +1395,6 @@ AI_Smart_Counter: inc [hl] ret - AI_Smart_Encore: call AICompareSpeed jr nc, .asm_38c81 @@ -1484,7 +1448,6 @@ AI_Smart_Encore: INCLUDE "data/battle/ai/encore_moves.asm" - AI_Smart_PainSplit: ; Discourage this move if [enemy's current HP * 2 > player's current HP]. @@ -1505,7 +1468,6 @@ AI_Smart_PainSplit: inc [hl] ret - AI_Smart_Snore: AI_Smart_SleepTalk: ; Greatly encourage this move if enemy is fast asleep. @@ -1527,7 +1489,6 @@ AI_Smart_SleepTalk: inc [hl] ret - AI_Smart_DefrostOpponent: ; Greatly encourage this move if enemy is frozen. ; No move has EFFECT_DEFROST_OPPONENT, so this layer is unused. @@ -1540,7 +1501,6 @@ AI_Smart_DefrostOpponent: dec [hl] ret - AI_Smart_Spite: ld a, [wLastPlayerCounterMove] and a @@ -1597,11 +1557,9 @@ AI_Smart_Spite: dec [hl] ret - Function_0x38d16 jp AIDiscourageMove - AI_Smart_DestinyBond: AI_Smart_Reversal: AI_Smart_SkullBash: @@ -1612,7 +1570,6 @@ AI_Smart_SkullBash: inc [hl] ret - AI_Smart_HealBell: ; Dismiss this move if none of the opponent's Pokemon is statused. ; Encourage this move if the enemy is statused. @@ -1670,7 +1627,6 @@ AI_Smart_HealBell: jp AIDiscourageMove - AI_Smart_PriorityHit: call AICompareSpeed ret c @@ -1702,7 +1658,6 @@ AI_Smart_PriorityHit: dec [hl] ret - AI_Smart_Thief: ; Don't use Thief unless it's the only move available. @@ -1711,7 +1666,6 @@ AI_Smart_Thief: ld [hl], a ret - AI_Smart_Conversion2: ld a, [wLastPlayerMove] and a @@ -1751,7 +1705,6 @@ AI_Smart_Conversion2: inc [hl] ret - AI_Smart_Disable: call AICompareSpeed jr nc, .asm_38df3 @@ -1783,7 +1736,6 @@ AI_Smart_Disable: inc [hl] ret - AI_Smart_MeanLook: call AICheckEnemyHalfHP jr nc, .asm_38e24 @@ -1825,7 +1777,6 @@ AI_Smart_MeanLook: dec [hl] ret - AICheckLastPlayerMon: ld a, [wPartyCount] ld b, a @@ -1851,7 +1802,6 @@ AICheckLastPlayerMon: ret - AI_Smart_Nightmare: ; 50% chance to encourage this move. ; The AI_Basic layer will make sure that @@ -1862,7 +1812,6 @@ AI_Smart_Nightmare: dec [hl] ret - AI_Smart_FlameWheel: ; Use this move if the enemy is frozen. @@ -1874,7 +1823,6 @@ rept 5 endr ret - AI_Smart_Curse: ld a, [wEnemyMonType1] cp GHOST @@ -1932,14 +1880,12 @@ AI_Smart_Curse: jr .asm_38eb7 - .asm_38eb0 push hl call AICheckLastPlayerMon pop hl jr z, .asm_38ecb - .asm_38eb7 call AICheckEnemyQuarterHP jp nc, .asm_38e90 @@ -1962,7 +1908,6 @@ AI_Smart_Curse: dec [hl] ret - AI_Smart_Protect: ld a, [wEnemyProtectCount] and a @@ -2014,7 +1959,6 @@ AI_Smart_Protect: inc [hl] ret - AI_Smart_Foresight: ld a, [wEnemyAccLevel] cp $5 @@ -2044,7 +1988,6 @@ AI_Smart_Foresight: dec [hl] ret - AI_Smart_PerishSong: push hl callfar FindAliveEnemyMons @@ -2081,7 +2024,6 @@ AI_Smart_PerishSong: ld [hl], a ret - AI_Smart_Sandstorm: ; Greatly discourage this move if the player is immune to Sandstorm damage. @@ -2125,7 +2067,6 @@ AI_Smart_Sandstorm: db STEEL db -1 ; end - AI_Smart_Endure: ld a, [wEnemyProtectCount] and a @@ -2168,7 +2109,6 @@ AI_Smart_Endure: inc [hl] ret - AI_Smart_FuryCutter: ; Encourage this move based on Fury Cutter's count. @@ -2192,7 +2132,6 @@ AI_Smart_FuryCutter: ; fallthrough - AI_Smart_Rollout: ; Rollout, Fury Cutter @@ -2235,7 +2174,6 @@ AI_Smart_Rollout: inc [hl] ret - AI_Smart_Swagger: AI_Smart_Attract: ; 80% chance to encourage this move during the first turn of player's Pokemon. @@ -2257,7 +2195,6 @@ AI_Smart_Attract: dec [hl] ret - AI_Smart_Safeguard: ; 80% chance to discourage this move if player's HP is below 50%. @@ -2268,7 +2205,6 @@ AI_Smart_Safeguard: inc [hl] ret - AI_Smart_Magnitude: AI_Smart_Earthquake: @@ -2300,7 +2236,6 @@ AI_Smart_Earthquake: dec [hl] ret - AI_Smart_BatonPass: ; Discourage this move if the player hasn't shown super-effective moves against the enemy. ; Consider player's type(s) if its moves are unknown. @@ -2314,7 +2249,6 @@ AI_Smart_BatonPass: inc [hl] ret - AI_Smart_Pursuit: ; 50% chance to greatly encourage this move if player's HP is below 25%. ; 80% chance to discourage this move otherwise. @@ -2333,7 +2267,6 @@ AI_Smart_Pursuit: dec [hl] ret - AI_Smart_RapidSpin: ; 80% chance to greatly encourage this move if the enemy is ; trapped (Bind effect), seeded, or scattered with spikes. @@ -2358,7 +2291,6 @@ AI_Smart_RapidSpin: dec [hl] ret - AI_Smart_HiddenPower: push hl ld a, 1 @@ -2397,7 +2329,6 @@ AI_Smart_HiddenPower: inc [hl] ret - AI_Smart_RainDance: ; Greatly discourage this move if it would favour the player type-wise. @@ -2420,7 +2351,6 @@ AI_Smart_RainDance: INCLUDE "data/battle/ai/rain_dance_moves.asm" - AI_Smart_SunnyDay: ; Greatly discourage this move if it would favour the player type-wise. @@ -2442,7 +2372,6 @@ AI_Smart_SunnyDay: ; fallthrough - AI_Smart_WeatherMove: ; Rain Dance, Sunny Day @@ -2492,10 +2421,8 @@ AIGoodWeatherType: dec [hl] ret - INCLUDE "data/battle/ai/sunny_day_moves.asm" - AI_Smart_BellyDrum: ; Dismiss this move if enemy's attack is higher than +2 or if enemy's HP is below 50%. ; Else, discourage this move if enemy's HP is not full. @@ -2518,7 +2445,6 @@ AI_Smart_BellyDrum: ld [hl], a ret - AI_Smart_PsychUp: push hl ld hl, wEnemyAtkLevel @@ -2576,7 +2502,6 @@ AI_Smart_PsychUp: inc [hl] ret - AI_Smart_MirrorCoat: push hl ld hl, wPlayerUsedMoves @@ -2626,7 +2551,6 @@ AI_Smart_MirrorCoat: cp SPECIAL jr c, .asm_391d2 - .asm_391ca call Random cp 100 @@ -2640,7 +2564,6 @@ AI_Smart_MirrorCoat: inc [hl] ret - AI_Smart_Twister: AI_Smart_Gust: @@ -2671,7 +2594,6 @@ AI_Smart_Gust: dec [hl] ret - AI_Smart_FutureSight: ; Greatly encourage this move if the player is ; flying or underground, and slower than the enemy. @@ -2687,7 +2609,6 @@ AI_Smart_FutureSight: dec [hl] ret - AI_Smart_Stomp: ; 80% chance to encourage this move if the player has used Minimize. @@ -2701,7 +2622,6 @@ AI_Smart_Stomp: dec [hl] ret - AI_Smart_Solarbeam: ; 80% chance to encourage this move when it's sunny. ; 90% chance to discourage this move when it's raining. @@ -2729,7 +2649,6 @@ AI_Smart_Solarbeam: dec [hl] ret - AI_Smart_Thunder: ; 90% chance to discourage this move when it's sunny. @@ -2744,7 +2663,6 @@ AI_Smart_Thunder: inc [hl] ret - AICompareSpeed: ; Return carry if enemy is faster than player. @@ -2760,7 +2678,6 @@ AICompareSpeed: pop bc ret - AICheckPlayerMaxHP: push hl push de @@ -2769,7 +2686,6 @@ AICheckPlayerMaxHP: ld hl, wBattleMonMaxHP jr AICheckMaxHP - AICheckEnemyMaxHP: push hl push de @@ -2778,7 +2694,6 @@ AICheckEnemyMaxHP: ld hl, wEnemyMonMaxHP ; fallthrough - AICheckMaxHP: ; Return carry if hp at de matches max hp at hl. @@ -2805,7 +2720,6 @@ AICheckMaxHP: and a ret - AICheckPlayerHalfHP: push hl ld hl, wBattleMonHP @@ -2823,7 +2737,6 @@ AICheckPlayerHalfHP: pop hl ret - AICheckEnemyHalfHP: push hl push de @@ -2845,7 +2758,6 @@ AICheckEnemyHalfHP: pop hl ret - AICheckEnemyQuarterHP: push hl push de @@ -2869,7 +2781,6 @@ AICheckEnemyQuarterHP: pop hl ret - AICheckPlayerQuarterHP: push hl ld hl, wBattleMonHP @@ -2889,7 +2800,6 @@ AICheckPlayerQuarterHP: pop hl ret - AIHasMoveEffect: ; Return carry if the enemy has move b. @@ -2921,7 +2831,6 @@ AIHasMoveEffect: scf ret - AIHasMoveInArray: ; Return carry if the enemy has a move in array hl. @@ -2955,10 +2864,8 @@ AIHasMoveInArray: pop hl ret - INCLUDE "data/battle/ai/useful_moves.asm" - AI_Opportunist: ; Discourage stall moves when the enemy's HP is low. @@ -3009,7 +2916,6 @@ AI_Opportunist: INCLUDE "data/battle/ai/stall_moves.asm" - AI_Aggressive: ; Use whatever does the most damage. @@ -3117,7 +3023,6 @@ AI_Aggressive: INCLUDE "data/battle/ai/reckless_moves.asm" - AIDamageCalc: ld a, 1 ld [hBattleTurn], a @@ -3137,7 +3042,6 @@ AIDamageCalc: INCLUDE "data/battle/ai/constant_damage_effects.asm" - AI_Cautious: ; 90% chance to discourage moves with residual effects after the first turn. @@ -3180,7 +3084,6 @@ AI_Cautious: INCLUDE "data/battle/ai/residual_moves.asm" - AI_Status: ; Dismiss status moves that don't affect the player. @@ -3243,7 +3146,6 @@ AI_Status: jr .checkmove - AI_Risky: ; Use any move that will KO the target. ; Risky moves will often be an exception (see below). @@ -3313,18 +3215,15 @@ endr INCLUDE "data/battle/ai/risky_effects.asm" - AI_None: ret - AIDiscourageMove: ld a, [hl] add 10 ld [hl], a ret - AIGetEnemyMove: ; Load attributes of move a into ram @@ -3345,13 +3244,11 @@ AIGetEnemyMove: pop hl ret - AI_80_20: call Random cp 20 percent - 1 ret - AI_50_50: call Random cp 50 percent + 1 diff --git a/engine/battle/ai/switch.asm b/engine/battle/ai/switch.asm index b975776c2..85179d2ed 100644 --- a/engine/battle/ai/switch.asm +++ b/engine/battle/ai/switch.asm @@ -96,7 +96,6 @@ CheckPlayerMoveTypeMatchups: pop hl ret - .CheckEnemyMoveMatchups: ld de, wEnemyMonMoves ld b, NUM_MOVES + 1 @@ -290,7 +289,6 @@ CheckAbleToSwitch: ld [wEnemySwitchMonParam], a ret - FindAliveEnemyMons: ld a, [wOTPartyCount] cp 2 @@ -341,7 +339,6 @@ FindAliveEnemyMons: and a ret - FindEnemyMonsImmuneToLastCounterMove: ld hl, wOTPartyMon1 ld a, [wOTPartyCount] @@ -408,7 +405,6 @@ FindEnemyMonsImmuneToLastCounterMove: srl c jr .loop - FindAliveEnemyMonsWithASuperEffectiveMove: push bc ld a, [wOTPartyCount] @@ -546,7 +542,6 @@ FindEnemyMonsWithASuperEffectiveMove: pop bc ret - FindEnemyMonsThatResistPlayer: push bc ld hl, wOTPartySpecies @@ -607,7 +602,6 @@ FindEnemyMonsThatResistPlayer: ld c, a ret - FindEnemyMonsWithAtLeastQuarterMaxHP: push bc ld de, wOTPartySpecies diff --git a/engine/battle/battle_transition.asm b/engine/battle/battle_transition.asm index 3a9749b03..96368b9ab 100644 --- a/engine/battle/battle_transition.asm +++ b/engine/battle/battle_transition.asm @@ -146,7 +146,6 @@ ConvertTrainerBattlePokeballTilesTo2bpp: TrainerBattlePokeballTiles: INCBIN "gfx/overworld/trainer_battle_pokeball_tiles.2bpp" - BattleTransitionJumptable: jumptable .Jumptable, wJumptableIndex @@ -753,7 +752,6 @@ WipeLYOverrides: jr nz, .loop ret - StartTrainerBattle_DrawSineWave: calc_sine_wave diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 902846bdc..40ba6964d 100644 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -6486,7 +6486,6 @@ CheckUnownLetter: INCLUDE "data/wild/unlocked_unowns.asm" - Unreferenced_SwapBattlerLevels: push bc ld a, [wBattleMonLevel] diff --git a/engine/battle/effect_commands.asm b/engine/battle/effect_commands.asm index 07e8b3a2a..e19cce189 100644 --- a/engine/battle/effect_commands.asm +++ b/engine/battle/effect_commands.asm @@ -8,7 +8,6 @@ DoPlayerTurn: jr DoTurn - DoEnemyTurn: call SetEnemyTurn @@ -24,7 +23,6 @@ DoEnemyTurn: ; fallthrough - DoTurn: ; Read in and execute the user's move effects for this turn. @@ -40,7 +38,6 @@ DoTurn: call UpdateMoveData - DoMove: ; Get the user's move effect. ld a, BATTLE_VARS_MOVE_EFFECT @@ -113,7 +110,6 @@ DoMove: jp hl - CheckTurn: BattleCommand_CheckTurn: ; checkturn @@ -141,7 +137,6 @@ BattleCommand_CheckTurn: and a jp nz, CheckEnemyTurn - CheckPlayerTurn: ld hl, wPlayerSubStatus4 @@ -156,7 +151,6 @@ CheckPlayerTurn: .no_recharge - ld hl, wBattleMonStatus ld a, [hl] and SLP @@ -202,7 +196,6 @@ CheckPlayerTurn: .not_asleep - ld hl, wBattleMonStatus bit FRZ, [hl] jr z, .not_frozen @@ -222,7 +215,6 @@ CheckPlayerTurn: .not_frozen - ld hl, wPlayerSubStatus3 bit SUBSTATUS_FLINCHED, [hl] jr z, .not_flinched @@ -236,7 +228,6 @@ CheckPlayerTurn: .not_flinched - ld hl, wPlayerDisableCount ld a, [hl] and a @@ -254,7 +245,6 @@ CheckPlayerTurn: .not_disabled - ld a, [wPlayerSubStatus3] add a jr nc, .not_confused @@ -293,7 +283,6 @@ CheckPlayerTurn: .not_confused - ld a, [wPlayerSubStatus1] add a ; bit SUBSTATUS_ATTRACT jr nc, .not_infatuated @@ -317,7 +306,6 @@ CheckPlayerTurn: .not_infatuated - ; We can't disable a move that doesn't exist. ld a, [wDisabledMove] and a @@ -334,7 +322,6 @@ CheckPlayerTurn: .no_disabled_move - ld hl, wBattleMonStatus bit PAR, [hl] ret z @@ -350,7 +337,6 @@ CheckPlayerTurn: jp EndTurn - CantMove: ld a, BATTLE_VARS_SUBSTATUS1 call GetBattleVarAddr @@ -379,7 +365,6 @@ CantMove: - OpponentCantMove: call BattleCommand_SwitchTurn call CantMove @@ -387,7 +372,6 @@ OpponentCantMove: - CheckEnemyTurn: ld hl, wEnemySubStatus4 @@ -402,7 +386,6 @@ CheckEnemyTurn: .no_recharge - ld hl, wEnemyMonStatus ld a, [hl] and SLP @@ -446,7 +429,6 @@ CheckEnemyTurn: .not_asleep - ld hl, wEnemyMonStatus bit FRZ, [hl] jr z, .not_frozen @@ -465,7 +447,6 @@ CheckEnemyTurn: .not_frozen - ld hl, wEnemySubStatus3 bit SUBSTATUS_FLINCHED, [hl] jr z, .not_flinched @@ -479,7 +460,6 @@ CheckEnemyTurn: .not_flinched - ld hl, wEnemyDisableCount ld a, [hl] and a @@ -498,7 +478,6 @@ CheckEnemyTurn: .not_disabled - ld a, [wEnemySubStatus3] add a ; bit SUBSTATUS_CONFUSED jr nc, .not_confused @@ -513,7 +492,6 @@ CheckEnemyTurn: call StdBattleTextBox jr .not_confused - .confused ld hl, IsConfusedText call StdBattleTextBox @@ -557,7 +535,6 @@ CheckEnemyTurn: .not_confused - ld a, [wEnemySubStatus1] add a ; bit SUBSTATUS_ATTRACT jr nc, .not_infatuated @@ -581,7 +558,6 @@ CheckEnemyTurn: .not_infatuated - ; We can't disable a move that doesn't exist. ld a, [wEnemyDisabledMove] and a @@ -599,7 +575,6 @@ CheckEnemyTurn: .no_disabled_move - ld hl, wEnemyMonStatus bit PAR, [hl] ret z @@ -615,14 +590,12 @@ CheckEnemyTurn: ; fallthrough - EndTurn: ld a, $1 ld [wTurnEnded], a jp ResetDamage - MoveDisabled: ; Make sure any charged moves fail @@ -639,7 +612,6 @@ MoveDisabled: jp StdBattleTextBox - HitConfusion: ld hl, HurtItselfText @@ -671,7 +643,6 @@ HitConfusion: jp BattleCommand_RaiseSub - BattleCommand_CheckObedience: ; checkobedience @@ -714,7 +685,6 @@ BattleCommand_CheckObedience: cp [hl] ret z - .obeylevel ; The maximum obedience level is constrained by owned badges: ld hl, wJohtoBadges @@ -742,7 +712,6 @@ BattleCommand_CheckObedience: ; no badges ld a, 10 - .getlevel ; c = obedience level ; d = monster level @@ -761,14 +730,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 +753,6 @@ BattleCommand_CheckObedience: call IgnoreSleepOnly ret c - ; Another random number from 0 to obedience level + monster level .rand2 call BattleRandom @@ -797,7 +763,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 +785,6 @@ BattleCommand_CheckObedience: call HitConfusion jp .EndDisobedience - .Nap: call BattleRandom add a @@ -833,7 +797,6 @@ BattleCommand_CheckObedience: ld hl, BeganToNapText jr .Print - .DoNothing: ; 4 random choices call BattleRandom @@ -857,7 +820,6 @@ BattleCommand_CheckObedience: call StdBattleTextBox jp .EndDisobedience - .UseInstead: ; Can't use another move if the monster only has one! @@ -870,7 +832,6 @@ BattleCommand_CheckObedience: and a jr nz, .DoNothing - ld hl, wBattleMonPP ld de, wBattleMonMoves ld b, 0 @@ -891,7 +852,6 @@ BattleCommand_CheckObedience: and a jr nz, .GetTotalPP - .CheckMovePP: ld hl, wBattleMonPP ld a, [wCurMoveNum] @@ -905,7 +865,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 +877,6 @@ BattleCommand_CheckObedience: ld c, a push af - .RandomMove: call BattleRandom maskbits NUM_MOVES @@ -940,7 +898,6 @@ BattleCommand_CheckObedience: and PP_MASK jr z, .RandomMove - ; Use it. ld a, [wCurMoveNum] ld c, a @@ -954,12 +911,10 @@ BattleCommand_CheckObedience: call UpdateMoveData call DoMove - ; Restore original move choice. pop af ld [wCurMoveNum], a - .EndDisobedience: xor a ld [wLastPlayerMove], a @@ -974,7 +929,6 @@ BattleCommand_CheckObedience: jp EndMoveEffect - IgnoreSleepOnly: ld a, BATTLE_VARS_MOVE_ANIM @@ -1004,14 +958,12 @@ IgnoreSleepOnly: ret - BattleCommand_UsedMoveText: ; usedmovetext farcall DisplayUsedMoveText ret - CheckUserIsCharging: ld a, [hBattleTurn] @@ -1024,7 +976,6 @@ CheckUserIsCharging: ret - BattleCommand_DoTurn: call CheckUserIsCharging ret nz @@ -1150,7 +1101,6 @@ BattleCommand_DoTurn: ld b, 1 ret - .continuousmoves db EFFECT_RAZOR_WIND db EFFECT_SKY_ATTACK @@ -1193,7 +1143,6 @@ CheckMimicUsed: ret - BattleCommand_Critical: ; critical @@ -1286,10 +1235,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 @@ -1475,7 +1422,6 @@ BattleCommand_Stab: ret - BattleCheckTypeMatchup: ld hl, wEnemyMonType1 ld a, [hBattleTurn] @@ -1556,7 +1502,6 @@ CheckTypeMatchup: 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. @@ -1577,12 +1522,10 @@ BattleCommand_ResetTypeMatchup: ret - INCLUDE "engine/battle/ai/switch.asm" INCLUDE "data/types/type_matchups.asm" - BattleCommand_DamageVariation: ; damagevariation @@ -1592,7 +1535,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] @@ -1637,7 +1579,6 @@ BattleCommand_DamageVariation: ret - BattleCommand_CheckHit: ; checkhit @@ -1706,7 +1647,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 +1660,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 +1673,6 @@ BattleCommand_CheckHit: and SLP ret - .Protect: ; Return nz if the opponent is protected. ld a, BATTLE_VARS_SUBSTATUS1_OPP @@ -1756,7 +1694,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 +1723,6 @@ BattleCommand_CheckHit: and a ret - .DrainSub: ; Return z if using an HP drain move on a substitute. call CheckSubstituteOpp @@ -1805,7 +1741,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 +1776,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,14 +1787,12 @@ BattleCommand_CheckHit: cp WEATHER_RAIN ret - .XAccuracy: ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVar bit SUBSTATUS_X_ACCURACY, a ret - .StatModifiers: ld a, [hBattleTurn] @@ -1955,7 +1887,6 @@ BattleCommand_CheckHit: INCLUDE "data/battle/accuracy_multipliers.asm" - BattleCommand_EffectChance: ; effectchance @@ -1984,7 +1915,6 @@ BattleCommand_EffectChance: ret - BattleCommand_LowerSub: ; lowersub @@ -2054,7 +1984,6 @@ BattleCommand_LowerSub: ret - BattleCommand_MoveAnim: ; moveanim call BattleCommand_LowerSub @@ -2062,7 +1991,6 @@ BattleCommand_MoveAnim: jp BattleCommand_RaiseSub - BattleCommand_MoveAnimNoSub: ld a, [wAttackMissed] and a @@ -2128,7 +2056,6 @@ BattleCommand_MoveAnimNoSub: jp PlayFXAnimID - BattleCommand_StatUpAnim: ld a, [wAttackMissed] and a @@ -2138,7 +2065,6 @@ BattleCommand_StatUpAnim: jr BattleCommand_StatUpDownAnim - BattleCommand_StatDownAnim: ld a, [wAttackMissed] and a @@ -2152,7 +2078,6 @@ BattleCommand_StatDownAnim: ; fallthrough - BattleCommand_StatUpDownAnim: ld [wNumHits], a xor a @@ -2164,7 +2089,6 @@ BattleCommand_StatUpDownAnim: jp PlayFXAnimID - BattleCommand_SwitchTurn: ; switchturn @@ -2174,7 +2098,6 @@ BattleCommand_SwitchTurn: ret - BattleCommand_RaiseSub: ; raisesub @@ -2195,7 +2118,6 @@ BattleCommand_RaiseSub: jp LoadAnim - BattleCommand_FailureText: ; failuretext ; If the move missed or failed, load the appropriate @@ -2239,7 +2161,6 @@ BattleCommand_FailureText: jp EndMoveEffect - BattleCommand_ApplyDamage: ; applydamage @@ -2333,7 +2254,6 @@ BattleCommand_ApplyDamage: ret - GetFailureResultText: ld hl, DoesntAffectText ld de, DoesntAffectText @@ -2403,7 +2323,6 @@ FailText_CheckOpponentProtect: jp StdBattleTextBox - BattleCommand_BideFailText: ld a, [wAttackMissed] and a @@ -2415,7 +2334,6 @@ BattleCommand_BideFailText: jp PrintButItFailed - BattleCommand_CriticalText: ; criticaltext ; Prints the message for critical hits or one-hit KOs. @@ -2447,7 +2365,6 @@ BattleCommand_CriticalText: dw CriticalHitText dw OneHitKOText - BattleCommand_StartLoop: ; startloop @@ -2462,7 +2379,6 @@ BattleCommand_StartLoop: ret - BattleCommand_SuperEffectiveLoopText: ; supereffectivelooptext @@ -2473,7 +2389,6 @@ BattleCommand_SuperEffectiveLoopText: ; fallthrough - BattleCommand_SuperEffectiveText: ; supereffectivetext @@ -2488,7 +2403,6 @@ BattleCommand_SuperEffectiveText: jp StdBattleTextBox - BattleCommand_CheckDestinyBond: ; checkdestinybond @@ -2577,7 +2491,6 @@ BattleCommand_CheckDestinyBond: jp EndMoveEffect - BattleCommand_BuildOpponentRage: ; buildopponentrage @@ -2610,7 +2523,6 @@ BattleCommand_BuildOpponentRage: jp BattleCommand_SwitchTurn - BattleCommand_RageDamage: ; ragedamage @@ -2640,7 +2552,6 @@ BattleCommand_RageDamage: ret - EndMoveEffect: ld a, [wBattleScriptBufferAddress] ld l, a @@ -2653,7 +2564,6 @@ EndMoveEffect: ret - DittoMetalPowder: ld a, MON_SPECIES call BattlePartyAttr @@ -2691,7 +2601,6 @@ DittoMetalPowder: ret - BattleCommand_DamageStats: ; damagestats @@ -2701,7 +2610,6 @@ BattleCommand_DamageStats: ; fallthrough - PlayerAttackDamage: ; Return move power d, player level e, enemy defense c and player attack b. @@ -2785,7 +2693,6 @@ PlayerAttackDamage: ret - TruncateHL_BC: .loop ; Truncate 16-bit values hl and bc to 8-bit values b and c respectively. @@ -2832,7 +2739,6 @@ TruncateHL_BC: ret - GetDamageStatsCritical: ; Return carry if non-critical. @@ -2843,7 +2749,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. @@ -2885,7 +2790,6 @@ GetDamageStats: ret - ThickClubBoost: ; Return in hl the stat value at hl. @@ -2902,7 +2806,6 @@ ThickClubBoost: ret - LightBallBoost: ; Return in hl the stat value at hl. @@ -2919,7 +2822,6 @@ LightBallBoost: ret - SpeciesItemBoost: ; Return in hl the stat value at hl. @@ -2961,7 +2863,6 @@ SpeciesItemBoost: ret - EnemyAttackDamage: call ResetDamage @@ -3041,10 +2942,8 @@ EnemyAttackDamage: ret - INCLUDE "engine/battle/move_effects/beat_up.asm" - BattleCommand_ClearMissDamage: ; clearmissdamage ld a, [wAttackMissed] @@ -3054,7 +2953,6 @@ BattleCommand_ClearMissDamage: jp ResetDamage - HitSelfInConfusion: call ResetDamage ld a, [hBattleTurn] @@ -3092,7 +2990,6 @@ HitSelfInConfusion: ret - BattleCommand_DamageCalc: ; damagecalc @@ -3221,7 +3118,6 @@ BattleCommand_DamageCalc: ; Critical hits call .CriticalMultiplier - ; Update wCurDamage (capped at 997). ld hl, wCurDamage ld b, [hl] @@ -3286,7 +3182,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 +3196,6 @@ BattleCommand_DamageCalc: and a ret - .CriticalMultiplier: ld a, [wCriticalHit] and a @@ -3326,10 +3220,8 @@ BattleCommand_DamageCalc: ret - INCLUDE "data/types/type_boost_items.asm" - BattleCommand_ConstantDamage: ; constantdamage @@ -3490,7 +3382,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 +3396,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 @@ -3533,7 +3423,6 @@ BattleCommand_DefrostOpponent: ret - INCLUDE "engine/battle/move_effects/sleep_talk.asm" INCLUDE "engine/battle/move_effects/destiny_bond.asm" @@ -3544,7 +3433,6 @@ INCLUDE "engine/battle/move_effects/false_swipe.asm" INCLUDE "engine/battle/move_effects/heal_bell.asm" - FarPlayBattleAnimation: ; play animation de @@ -3567,7 +3455,6 @@ PlayFXAnimID: ret - DoEnemyDamage: ld hl, wCurDamage ld a, [hli] @@ -3629,7 +3516,6 @@ DoEnemyDamage: jp RefreshBattleHuds - DoPlayerDamage: ld hl, wCurDamage ld a, [hli] @@ -3691,7 +3577,6 @@ DoPlayerDamage: jp RefreshBattleHuds - DoSubstituteDamage: ld hl, SubTookDamageText call StdBattleTextBox @@ -3750,7 +3635,6 @@ DoSubstituteDamage: jp ResetDamage - UpdateMoveData: ld a, BATTLE_VARS_MOVE_ANIM @@ -3769,7 +3653,6 @@ UpdateMoveData: jp CopyName1 - BattleCommand_SleepTarget: ; sleeptarget @@ -3842,7 +3725,6 @@ BattleCommand_SleepTarget: jp StdBattleTextBox - .CheckAIRandomFail: ; Enemy turn ld a, [hBattleTurn] @@ -3872,7 +3754,6 @@ BattleCommand_SleepTarget: ret - BattleCommand_PoisonTarget: ; poisontarget @@ -3909,7 +3790,6 @@ BattleCommand_PoisonTarget: ret - BattleCommand_Poison: ; poison @@ -3999,14 +3879,12 @@ BattleCommand_Poison: jp StdBattleTextBox - .apply_poison call AnimateCurrentMove call PoisonOpponent jp RefreshBattleHuds - .check_toxic ld a, BATTLE_VARS_SUBSTATUS5_OPP call GetBattleVarAddr @@ -4022,7 +3900,6 @@ BattleCommand_Poison: ret - CheckIfTargetIsPoisonType: ld de, wEnemyMonType1 ld a, [hBattleTurn] @@ -4039,7 +3916,6 @@ CheckIfTargetIsPoisonType: ret - PoisonOpponent: ld a, BATTLE_VARS_STATUS_OPP call GetBattleVarAddr @@ -4047,7 +3923,6 @@ PoisonOpponent: jp UpdateOpponentInParty - BattleCommand_DrainTarget: ; draintarget call SapHealth @@ -4055,7 +3930,6 @@ BattleCommand_DrainTarget: jp StdBattleTextBox - BattleCommand_EatDream: ; eatdream call SapHealth @@ -4063,7 +3937,6 @@ BattleCommand_EatDream: jp StdBattleTextBox - SapHealth: ; Divide damage by 2, store it in hDividend ld hl, wCurDamage @@ -4158,7 +4031,6 @@ SapHealth: jp UpdateBattleMonInParty - BattleCommand_BurnTarget: ; burntarget @@ -4201,7 +4073,6 @@ BattleCommand_BurnTarget: ret - Defrost: ld a, [hl] and 1 << FRZ @@ -4228,7 +4099,6 @@ Defrost: jp StdBattleTextBox - BattleCommand_FreezeTarget: ; freezetarget @@ -4283,7 +4153,6 @@ BattleCommand_FreezeTarget: ret - BattleCommand_ParalyzeTarget: ; paralyzetarget @@ -4321,7 +4190,6 @@ BattleCommand_ParalyzeTarget: jp CallBattleCore - BattleCommand_AttackUp: ; attackup ld b, ATTACK @@ -4401,7 +4269,6 @@ BattleCommand_StatUp: jp StatUpAnimation - CheckIfStatCanBeRaised: ld a, b ld [wLoweredStat], a @@ -4482,13 +4349,11 @@ CheckIfStatCanBeRaised: ret - .stats_already_max pop hl dec [hl] ; fallthrough - .cant_raise_stat ld a, $2 ld [wFailedMessage], a @@ -4497,14 +4362,12 @@ CheckIfStatCanBeRaised: ret - .stat_raise_failed ld a, $1 ld [wFailedMessage], a ret - StatUpAnimation: ld bc, wPlayerMinimized ld hl, DropPlayerSub @@ -4531,7 +4394,6 @@ StatUpAnimation: jp BattleCommand_MoveDelay - BattleCommand_AttackDown: ; attackdown ld a, ATTACK @@ -4725,7 +4587,6 @@ BattleCommand_StatDown: ret - CheckMist: ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar @@ -4752,7 +4613,6 @@ CheckMist: ret - BattleCommand_StatUpMessage: ld a, [wFailedMessage] and a @@ -4784,7 +4644,6 @@ BattleCommand_StatUpMessage: db "@" - BattleCommand_StatDownMessage: ld a, [wFailedMessage] and a @@ -4815,7 +4674,6 @@ BattleCommand_StatDownMessage: db "@" - TryLowerStat: ; Lower stat c from stat struct hl (buffer de). @@ -4860,7 +4718,6 @@ TryLowerStat: ret - BattleCommand_StatUpFailText: ; statupfailtext ld a, [wFailedMessage] @@ -4880,7 +4737,6 @@ BattleCommand_StatUpFailText: jp StdBattleTextBox - BattleCommand_StatDownFailText: ; statdownfailtext ld a, [wFailedMessage] @@ -4903,7 +4759,6 @@ BattleCommand_StatDownFailText: jp StdBattleTextBox - GetStatName: ld hl, StatNames ld c, "@" @@ -4923,10 +4778,8 @@ GetStatName: INCLUDE "data/battle/stat_names.asm" - INCLUDE "data/battle/stat_multipliers.asm" - BattleCommand_AllStatsUp: ; allstatsup @@ -4955,14 +4808,12 @@ BattleCommand_AllStatsUp: call BattleCommand_SpecialDefenseUp jp BattleCommand_StatUpMessage - ResetMiss: xor a ld [wAttackMissed], a ret - LowerStat: ld [wLoweredStat], a @@ -5035,7 +4886,6 @@ LowerStat: ret - BattleCommand_TriStatusChance: ; tristatuschance @@ -5057,7 +4907,6 @@ BattleCommand_TriStatusChance: dw BattleCommand_FreezeTarget ; freeze dw BattleCommand_BurnTarget ; burn - BattleCommand_Curl: ; curl ld a, BATTLE_VARS_SUBSTATUS2 @@ -5066,7 +4915,6 @@ BattleCommand_Curl: ret - BattleCommand_RaiseSubNoAnim: ld hl, GetBattleMonBackpic ld a, [hBattleTurn] @@ -5080,7 +4928,6 @@ BattleCommand_RaiseSubNoAnim: jp WaitBGMap - BattleCommand_LowerSubNoAnim: ld hl, DropPlayerSub ld a, [hBattleTurn] @@ -5094,7 +4941,6 @@ BattleCommand_LowerSubNoAnim: jp WaitBGMap - CalcPlayerStats: ld hl, wPlayerAtkLevel ld de, wPlayerStats @@ -5117,7 +4963,6 @@ CalcPlayerStats: jp BattleCommand_SwitchTurn - CalcEnemyStats: ld hl, wEnemyAtkLevel ld de, wEnemyStats @@ -5137,7 +4982,6 @@ CalcEnemyStats: jp BattleCommand_SwitchTurn - CalcStats: .loop push af @@ -5208,10 +5052,8 @@ CalcStats: ret - INCLUDE "engine/battle/move_effects/bide.asm" - BattleCommand_CheckRampage: ; checkrampage @@ -5250,7 +5092,6 @@ BattleCommand_CheckRampage: jp SkipToBattleCommand - BattleCommand_Rampage: ; rampage @@ -5279,10 +5120,8 @@ BattleCommand_Rampage: ret - INCLUDE "engine/battle/move_effects/teleport.asm" - SetBattleDraw: ld a, [wBattleResult] and BATTLERESULT_BITMASK @@ -5291,7 +5130,6 @@ SetBattleDraw: ret - BattleCommand_ForceSwitch: ; forceswitch @@ -5512,7 +5350,6 @@ BattleCommand_ForceSwitch: jp StdBattleTextBox - CheckPlayerHasMonToSwitchTo: ld a, [wPartyCount] ld d, a @@ -5543,7 +5380,6 @@ CheckPlayerHasMonToSwitchTo: ret - BattleCommand_EndLoop: ; endloop @@ -5679,7 +5515,6 @@ BattleCommand_EndLoop: ret - BattleCommand_FakeOut: ld a, [wAttackMissed] and a @@ -5702,7 +5537,6 @@ BattleCommand_FakeOut: ret - BattleCommand_FlinchTarget: call CheckSubstituteOpp ret nz @@ -5721,7 +5555,6 @@ BattleCommand_FlinchTarget: ; fallthrough - FlinchTarget: ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVarAddr @@ -5729,7 +5562,6 @@ FlinchTarget: jp EndRechargeOpp - CheckOpponentWentFirst: ; Returns a=0, z if user went first ; Returns a=1, nz if opponent went first @@ -5742,7 +5574,6 @@ CheckOpponentWentFirst: ret - BattleCommand_HeldFlinch: ; kingsrock @@ -5772,7 +5603,6 @@ BattleCommand_HeldFlinch: ret - BattleCommand_OHKO: ; ohko @@ -5820,7 +5650,6 @@ BattleCommand_OHKO: ret - BattleCommand_CheckCharge: ; checkcharge @@ -5835,7 +5664,6 @@ BattleCommand_CheckCharge: jp SkipToBattleCommand - BattleCommand_Charge: ; charge @@ -5977,13 +5805,11 @@ BattleCommand_Charge: text_jump UnknownText_0x1c0d6c db "@" - BattleCommand3c: ; unused ret - BattleCommand_TrapTarget: ; traptarget @@ -6040,12 +5866,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 @@ -6111,7 +5935,6 @@ BattleCommand_Recoil: jp StdBattleTextBox - BattleCommand_ConfuseTarget: ; confusetarget @@ -6132,7 +5955,6 @@ BattleCommand_ConfuseTarget: ret nz jr BattleCommand_FinishConfusingTarget - BattleCommand_Confuse: ; confuse @@ -6205,7 +6027,6 @@ BattleCommand_FinishConfusingTarget: ld hl, UseConfusionHealingItem jp CallBattleCore - BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit: ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar @@ -6218,7 +6039,6 @@ BattleCommand_Confuse_CheckSnore_Swagger_ConfuseHit: jp PrintDidntAffect2 - BattleCommand_Paralyze: ; paralyze @@ -6300,7 +6120,6 @@ BattleCommand_Paralyze: jp PrintDoesntAffect - CheckMoveTypeMatchesTarget: ; Compare move type to opponent type. ; Return z if matching the opponent type, @@ -6337,10 +6156,8 @@ CheckMoveTypeMatchesTarget: ret - INCLUDE "engine/battle/move_effects/substitute.asm" - BattleCommand_RechargeNextTurn: ; rechargenextturn ld a, BATTLE_VARS_SUBSTATUS4 @@ -6349,7 +6166,6 @@ BattleCommand_RechargeNextTurn: ret - EndRechargeOpp: push hl ld a, BATTLE_VARS_SUBSTATUS4_OPP @@ -6359,10 +6175,8 @@ EndRechargeOpp: ret - INCLUDE "engine/battle/move_effects/rage.asm" - BattleCommand_DoubleFlyingDamage: ; doubleflyingdamage ld a, BATTLE_VARS_SUBSTATUS3_OPP @@ -6372,7 +6186,6 @@ BattleCommand_DoubleFlyingDamage: jr DoubleDamage - BattleCommand_DoubleUndergroundDamage: ; doubleundergrounddamage ld a, BATTLE_VARS_SUBSTATUS3_OPP @@ -6382,7 +6195,6 @@ BattleCommand_DoubleUndergroundDamage: ; fallthrough - DoubleDamage: ld hl, wCurDamage + 1 sla [hl] @@ -6397,7 +6209,6 @@ DoubleDamage: ret - INCLUDE "engine/battle/move_effects/mimic.asm" INCLUDE "engine/battle/move_effects/leech_seed.asm" @@ -6410,7 +6221,6 @@ INCLUDE "engine/battle/move_effects/pay_day.asm" INCLUDE "engine/battle/move_effects/conversion.asm" - BattleCommand_ResetStats: ; resetstats @@ -6445,7 +6255,6 @@ BattleCommand_ResetStats: ret - BattleCommand_Heal: ; heal @@ -6529,10 +6338,8 @@ BattleCommand_Heal: 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. @@ -6549,13 +6356,11 @@ BattleSideCopy: jp CopyBytes - BattleEffect_ButItFailed: call AnimateFailedMove jp PrintButItFailed - ClearLastMove: ld a, BATTLE_VARS_LAST_COUNTER_MOVE call GetBattleVarAddr @@ -6569,7 +6374,6 @@ ClearLastMove: ret - ResetActorDisable: ld a, [hBattleTurn] and a @@ -6587,7 +6391,6 @@ ResetActorDisable: ret - BattleCommand_Screen: ; screen @@ -6634,21 +6437,18 @@ BattleCommand_Screen: 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 +6456,12 @@ TryPrintButItFailed: ; fallthrough - PrintButItFailed: ; 'but it failed!' ld hl, ButItFailedText jp StdBattleTextBox - FailMove: call AnimateFailedMove ; fallthrough @@ -6674,14 +6472,12 @@ FailMimic: jp FailText_CheckOpponentProtect - PrintDidntAffect: ; 'it didn't affect' ld hl, DidntAffect1Text jp StdBattleTextBox - PrintDidntAffect2: call AnimateFailedMove ld hl, DidntAffect1Text ; 'it didn't affect' @@ -6689,14 +6485,12 @@ PrintDidntAffect2: jp FailText_CheckOpponentProtect - PrintParalyze: ; 'paralyzed! maybe it can't attack!' ld hl, ParalyzedText jp StdBattleTextBox - CheckSubstituteOpp: ld a, BATTLE_VARS_SUBSTATUS4_OPP call GetBattleVar @@ -6704,14 +6498,12 @@ CheckSubstituteOpp: 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 @@ -6737,7 +6529,6 @@ CheckUserMove: ret - ResetTurn: ld hl, wPlayerCharging ld a, [hBattleTurn] @@ -6753,10 +6544,8 @@ ResetTurn: jp EndMoveEffect - INCLUDE "engine/battle/move_effects/thief.asm" - BattleCommand_ArenaTrap: ; arenatrap @@ -6784,10 +6573,8 @@ BattleCommand_ArenaTrap: jp PrintButItFailed - INCLUDE "engine/battle/move_effects/nightmare.asm" - BattleCommand_Defrost: ; defrost @@ -6820,7 +6607,6 @@ BattleCommand_Defrost: jp StdBattleTextBox - INCLUDE "engine/battle/move_effects/curse.asm" INCLUDE "engine/battle/move_effects/protect.asm" @@ -6837,13 +6623,11 @@ 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 +6640,6 @@ INCLUDE "engine/battle/move_effects/frustration.asm" INCLUDE "engine/battle/move_effects/safeguard.asm" - SafeCheckSafeguard: push hl ld hl, wEnemyScreens @@ -6871,7 +6654,6 @@ SafeCheckSafeguard: ret - BattleCommand_CheckSafeguard: ; checksafeguard ld hl, wEnemyScreens @@ -6890,7 +6672,6 @@ BattleCommand_CheckSafeguard: jp EndMoveEffect - INCLUDE "engine/battle/move_effects/magnitude.asm" INCLUDE "engine/battle/move_effects/baton_pass.asm" @@ -6899,19 +6680,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 +6777,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 +6789,6 @@ INCLUDE "engine/battle/move_effects/psych_up.asm" INCLUDE "engine/battle/move_effects/mirror_coat.asm" - BattleCommand_DoubleMinimizeDamage: ; doubleminimizedamage @@ -7036,7 +6812,6 @@ BattleCommand_DoubleMinimizeDamage: ret - BattleCommand_SkipSunCharge: ; mimicsuncharge ld a, [wBattleWeather] @@ -7046,12 +6821,10 @@ BattleCommand_SkipSunCharge: 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 @@ -7060,7 +6833,6 @@ CheckHiddenOpponent: ret - GetUserItem: ; Return the effect of the user's item in bc, and its id at hl. ld hl, wBattleMonItem @@ -7073,7 +6845,6 @@ GetUserItem: jp GetItemHeldEffect - GetOpponentItem: ; Return the effect of the opponent's item in bc, and its id at hl. ld hl, wEnemyMonItem @@ -7086,7 +6857,6 @@ GetOpponentItem: jp GetItemHeldEffect - GetItemHeldEffect: ; Return the effect of item b in bc. ld a, b @@ -7108,7 +6878,6 @@ GetItemHeldEffect: ret - AnimateCurrentMoveEitherSide: push hl push de @@ -7126,7 +6895,6 @@ AnimateCurrentMoveEitherSide: ret - AnimateCurrentMove: push hl push de @@ -7144,7 +6912,6 @@ AnimateCurrentMove: ret - PlayDamageAnim: xor a ld [wFXAnimID + 1], a @@ -7168,7 +6935,6 @@ PlayDamageAnim: jp PlayUserBattleAnim - LoadMoveAnim: xor a ld [wNumHits], a @@ -7181,13 +6947,11 @@ LoadMoveAnim: ; fallthrough - LoadAnim: ld [wFXAnimID], a ; fallthrough - PlayUserBattleAnim: push hl push de @@ -7199,7 +6963,6 @@ PlayUserBattleAnim: ret - PlayOpponentBattleAnim: ld a, e ld [wFXAnimID], a @@ -7222,21 +6985,18 @@ PlayOpponentBattleAnim: 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. @@ -7244,7 +7004,6 @@ BattleCommand_MoveDelay: jp DelayFrames - BattleCommand_ClearText: ; cleartext @@ -7255,7 +7014,6 @@ BattleCommand_ClearText: .text db "@" - SkipToBattleCommand: ; Skip over commands until reaching command b. ld a, [wBattleScriptBufferAddress + 1] @@ -7274,7 +7032,6 @@ SkipToBattleCommand: ret - GetMoveAttr: ; Assuming hl = Moves + x, return attribute x of move a. push bc @@ -7285,7 +7042,6 @@ GetMoveAttr: ret - GetMoveData: ; Copy move struct a to de. ld hl, Moves @@ -7295,31 +7051,26 @@ GetMoveData: 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 diff --git a/engine/battle/hidden_power.asm b/engine/battle/hidden_power.asm index 5f3791e18..537fe4354 100644 --- a/engine/battle/hidden_power.asm +++ b/engine/battle/hidden_power.asm @@ -8,7 +8,6 @@ HiddenPowerDamage: ld hl, wEnemyMonDVs .got_dvs - ; Power: ; Take the top bit from each stat @@ -62,7 +61,6 @@ HiddenPowerDamage: ld d, a - ; Type: ; Def & 3 diff --git a/engine/battle/misc.asm b/engine/battle/misc.asm index 1b6cb6783..74b942743 100644 --- a/engine/battle/misc.asm +++ b/engine/battle/misc.asm @@ -49,7 +49,6 @@ GetPlayerBackpicCoords: lb bc, 6, 6 ret - DoWeatherModifiers: ld de, WeatherTypeModifiers @@ -76,7 +75,6 @@ DoWeatherModifiers: inc de jr .CheckWeatherType - .done_weather_types ld de, WeatherMoveModifiers @@ -147,7 +145,6 @@ DoWeatherModifiers: INCLUDE "data/battle/weather_modifiers.asm" - DoBadgeTypeBoosts: ld a, [wLinkMode] and a diff --git a/engine/battle/move_effects/attract.asm b/engine/battle/move_effects/attract.asm index 45417936f..bb7b4fce4 100644 --- a/engine/battle/move_effects/attract.asm +++ b/engine/battle/move_effects/attract.asm @@ -22,7 +22,6 @@ BattleCommand_Attract: .failed jp FailMove - CheckOppositeGender: ld a, MON_SPECIES call BattlePartyAttr diff --git a/engine/battle/move_effects/baton_pass.asm b/engine/battle/move_effects/baton_pass.asm index 2937a8306..5f15b3cea 100644 --- a/engine/battle/move_effects/baton_pass.asm +++ b/engine/battle/move_effects/baton_pass.asm @@ -5,7 +5,6 @@ BattleCommand_BatonPass: and a jp nz, .Enemy - ; Need something to switch to call CheckAnyOtherAlivePartyMons jp z, FailedBatonPass @@ -45,7 +44,6 @@ BattleCommand_BatonPass: call ResetBatonPassStatus ret - .Enemy: ; Wildmons don't have anything to switch to @@ -82,7 +80,6 @@ BattleCommand_BatonPass: jr ResetBatonPassStatus - BatonPass_LinkPlayerSwitch: ld a, [wLinkMode] and a @@ -101,7 +98,6 @@ BatonPass_LinkPlayerSwitch: ret - BatonPass_LinkEnemySwitch: ld a, [wLinkMode] and a @@ -128,13 +124,11 @@ BatonPass_LinkEnemySwitch: jp CloseWindow - FailedBatonPass: call AnimateFailedMove jp PrintButItFailed - ResetBatonPassStatus: ; Reset status changes that aren't passed by Baton Pass. @@ -175,7 +169,6 @@ ResetBatonPassStatus: ret - CheckAnyOtherAlivePartyMons: ld hl, wPartyMon1HP ld a, [wPartyCount] @@ -185,7 +178,6 @@ CheckAnyOtherAlivePartyMons: jr CheckAnyOtherAliveMons - CheckAnyOtherAliveEnemyMons: ld hl, wOTPartyMon1HP ld a, [wOTPartyCount] diff --git a/engine/battle/move_effects/beat_up.asm b/engine/battle/move_effects/beat_up.asm index 40a375e0d..5e6cfae22 100644 --- a/engine/battle/move_effects/beat_up.asm +++ b/engine/battle/move_effects/beat_up.asm @@ -194,13 +194,11 @@ BattleCommand_BeatUp: ret - .beatup_fail ld b, buildopponentrage_command jp SkipToBattleCommand - BattleCommand_BeatUpFailText: ; beatupfailtext @@ -211,7 +209,6 @@ BattleCommand_BeatUpFailText: jp PrintButItFailed - GetBeatupMonLocation: push bc ld c, a diff --git a/engine/battle/move_effects/bide.asm b/engine/battle/move_effects/bide.asm index b28773df9..d7d8203b0 100644 --- a/engine/battle/move_effects/bide.asm +++ b/engine/battle/move_effects/bide.asm @@ -70,7 +70,6 @@ BattleCommand_StoreEnergy: jp EndMoveEffect - BattleCommand_UnleashEnergy: ; unleashenergy diff --git a/engine/battle/move_effects/curse.asm b/engine/battle/move_effects/curse.asm index e0fc0144c..4861e9a37 100644 --- a/engine/battle/move_effects/curse.asm +++ b/engine/battle/move_effects/curse.asm @@ -21,7 +21,6 @@ BattleCommand_Curse: cp GHOST jr z, .ghost - ; If no stats can be increased, don't. ; Attack @@ -54,7 +53,6 @@ BattleCommand_Curse: call BattleCommand_DefenseUp jp BattleCommand_StatUpMessage - .ghost ; Cut HP in half and put a curse on the opponent. @@ -84,7 +82,6 @@ BattleCommand_Curse: call AnimateFailedMove jp PrintButItFailed - .cantraise ; Can't raise either stat. diff --git a/engine/battle/move_effects/fury_cutter.asm b/engine/battle/move_effects/fury_cutter.asm index b34264d62..a3a8c44b3 100644 --- a/engine/battle/move_effects/fury_cutter.asm +++ b/engine/battle/move_effects/fury_cutter.asm @@ -39,7 +39,6 @@ BattleCommand_FuryCutter: ret - ResetFuryCutterCount: push hl diff --git a/engine/battle/move_effects/future_sight.asm b/engine/battle/move_effects/future_sight.asm index c1b5c0e72..8b08ce982 100644 --- a/engine/battle/move_effects/future_sight.asm +++ b/engine/battle/move_effects/future_sight.asm @@ -25,7 +25,6 @@ BattleCommand_CheckFutureSight: ld b, futuresight_command jp SkipToBattleCommand - BattleCommand_FutureSight: ; futuresight diff --git a/engine/battle/move_effects/metronome.asm b/engine/battle/move_effects/metronome.asm index b5632d005..b8a6b586f 100644 --- a/engine/battle/move_effects/metronome.asm +++ b/engine/battle/move_effects/metronome.asm @@ -34,12 +34,10 @@ BattleCommand_Metronome: call CheckUserMove jr z, .GetMove - ld a, BATTLE_VARS_MOVE call GetBattleVarAddr ld [hl], b call UpdateMoveData jp ResetTurn - INCLUDE "data/battle/metronome_exception_moves.asm" diff --git a/engine/battle/move_effects/pain_split.asm b/engine/battle/move_effects/pain_split.asm index a4dbd3d44..a94ccff6f 100644 --- a/engine/battle/move_effects/pain_split.asm +++ b/engine/battle/move_effects/pain_split.asm @@ -89,7 +89,6 @@ BattleCommand_PainSplit: ld [wBuffer6], a ret - .ButItFailed: jp PrintDidntAffect2 diff --git a/engine/battle/move_effects/perish_song.asm b/engine/battle/move_effects/perish_song.asm index 221ecfb46..4df52cc1c 100644 --- a/engine/battle/move_effects/perish_song.asm +++ b/engine/battle/move_effects/perish_song.asm @@ -1,7 +1,6 @@ BattleCommand_PerishSong: ; perishsong - ld hl, wPlayerSubStatus1 ld de, wEnemySubStatus1 bit SUBSTATUS_PERISH, [hl] diff --git a/engine/battle/move_effects/protect.asm b/engine/battle/move_effects/protect.asm index 768e51cbb..92652109d 100644 --- a/engine/battle/move_effects/protect.asm +++ b/engine/battle/move_effects/protect.asm @@ -12,7 +12,6 @@ BattleCommand_Protect: ld hl, ProtectedItselfText jp StdBattleTextBox - ProtectChance: ld de, wPlayerProtectCount @@ -68,7 +67,6 @@ ProtectChance: and a ret - .failed xor a ld [de], a diff --git a/engine/battle/move_effects/rollout.asm b/engine/battle/move_effects/rollout.asm index da890f48f..de4bfcaa6 100644 --- a/engine/battle/move_effects/rollout.asm +++ b/engine/battle/move_effects/rollout.asm @@ -1,6 +1,5 @@ MAX_ROLLOUT_COUNT EQU 5 - BattleCommand_CheckCurl: ; checkcurl @@ -23,7 +22,6 @@ BattleCommand_CheckCurl: ld [de], a ret - BattleCommand_RolloutPower: ; rolloutpower diff --git a/engine/battle/move_effects/thief.asm b/engine/battle/move_effects/thief.asm index d9d2f47fd..64de1a4fe 100644 --- a/engine/battle/move_effects/thief.asm +++ b/engine/battle/move_effects/thief.asm @@ -50,7 +50,6 @@ BattleCommand_Thief: ld [de], a jr .stole - .enemy ; The enemy can't already have an item. @@ -91,13 +90,11 @@ BattleCommand_Thief: ld [hl], a ld [de], a - .stole call GetItemName ld hl, StoleText jp StdBattleTextBox - .playeritem ld a, 1 call BattlePartyAttr diff --git a/engine/battle/move_effects/triple_kick.asm b/engine/battle/move_effects/triple_kick.asm index 4fb939d7c..358e84b94 100644 --- a/engine/battle/move_effects/triple_kick.asm +++ b/engine/battle/move_effects/triple_kick.asm @@ -27,7 +27,6 @@ BattleCommand_TripleKick: ret - BattleCommand_KickCounter: ; kickcounter diff --git a/engine/battle/read_trainer_party.asm b/engine/battle/read_trainer_party.asm index 3b1fe3bca..9775e1dcc 100644 --- a/engine/battle/read_trainer_party.asm +++ b/engine/battle/read_trainer_party.asm @@ -321,7 +321,6 @@ ComputeTrainerReward: ld [hl], a ret - Battle_GetTrainerName:: ld a, [wInBattleTowerBattle] bit 0, a diff --git a/engine/battle/used_move_text.asm b/engine/battle/used_move_text.asm index 2bb6b7845..9307a1a1e 100644 --- a/engine/battle/used_move_text.asm +++ b/engine/battle/used_move_text.asm @@ -131,7 +131,6 @@ EndUsedMove5Text: text_jump _EndUsedMove5Text db "@" - GetMoveGrammar: ; store move grammar type in wd265 @@ -169,7 +168,6 @@ GetMoveGrammar: INCLUDE "data/moves/grammar.asm" - UpdateUsedMoves: ; append move a to wPlayerUsedMoves unless it has already been used |