summaryrefslogtreecommitdiff
path: root/data/scripts/trainer_battle.inc
diff options
context:
space:
mode:
Diffstat (limited to 'data/scripts/trainer_battle.inc')
-rw-r--r--data/scripts/trainer_battle.inc136
1 files changed, 136 insertions, 0 deletions
diff --git a/data/scripts/trainer_battle.inc b/data/scripts/trainer_battle.inc
new file mode 100644
index 000000000..4615435d1
--- /dev/null
+++ b/data/scripts/trainer_battle.inc
@@ -0,0 +1,136 @@
+EventScript_StartTrainerBattle:: @ 819F80B
+ lock
+ special PlayTrainerEncounterMusic
+ special EndTrainerApproach
+ waitstate
+ goto EventScript_DoTrainerBattle
+
+EventScript_TryDoNormalTrainerBattle:: @ 819F818
+ lock
+ faceplayer
+ applymovement VAR_LAST_TALKED, Movement_RevealTrainer
+ waitmovement 0
+ specialvar VAR_RESULT, GetTrainerFlag
+ compare VAR_RESULT, 0
+ goto_if_ne EventScript_NoNormalTrainerBattle
+ special PlayTrainerEncounterMusic
+ special SetUpTrainerMovement
+ goto EventScript_DoTrainerBattle
+
+EventScript_NoNormalTrainerBattle:
+ gotopostbattlescript
+
+EventScript_TryDoDoubleTrainerBattle:: @ 819F840
+ lock
+ faceplayer
+ call EventScript_RevealTrainer
+ specialvar VAR_RESULT, GetTrainerFlag
+ compare VAR_RESULT, 0
+ goto_if_ne EventScript_NoDoubleTrainerBattle
+ special HasEnoughMonsForDoubleBattle
+ compare VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS
+ goto_if_ne EventScript_NotEnoughMonsForDoubleBattle
+ special PlayTrainerEncounterMusic
+ special SetUpTrainerMovement
+ goto EventScript_DoTrainerBattle
+
+EventScript_NotEnoughMonsForDoubleBattle:
+ special ScrSpecial_ShowTrainerNonBattlingSpeech
+ waitmessage
+ waitbuttonpress
+ release
+ end
+
+EventScript_NoDoubleTrainerBattle:
+ gotopostbattlescript
+
+EventScript_DoNoIntroTrainerBattle:: @ 819F878
+ applymovement VAR_LAST_TALKED, Movement_RevealTrainer
+ waitmovement 0
+ special PlayTrainerEncounterMusic
+ trainerbattlebegin
+ gotopostbattlescript
+
+EventScript_TryDoRematchBattle:: @ 819F887
+ call EventScript_RevealTrainer
+ specialvar VAR_RESULT, IsTrainerReadyForRematch
+ compare VAR_RESULT, FALSE
+ goto_if_eq EventScript_NoRematchTrainerBattle
+ special PlayTrainerEncounterMusic
+ special SetUpTrainerMovement
+ special ShowTrainerIntroSpeech
+ waitmessage
+ waitbuttonpress
+ special BattleSetup_StartRematchBattle
+ waitstate
+ releaseall
+ end
+
+EventScript_NoRematchTrainerBattle:
+ gotopostbattlescript
+
+EventScript_TryDoDoubleRematchBattle:: @ 819F8AE
+ specialvar VAR_RESULT, IsTrainerReadyForRematch
+ compare VAR_RESULT, FALSE
+ goto_if_eq EventScript_NoDoubleRematchTrainerBattle
+ special HasEnoughMonsForDoubleBattle
+ compare VAR_RESULT, PLAYER_HAS_TWO_USABLE_MONS
+ goto_if_ne EventScript_NotEnoughMonsForDoubleRematchBattle
+ special PlayTrainerEncounterMusic
+ special SetUpTrainerMovement
+ special ShowTrainerIntroSpeech
+ waitmessage
+ waitbuttonpress
+ special BattleSetup_StartRematchBattle
+ waitstate
+ releaseall
+ end
+
+EventScript_NoDoubleRematchTrainerBattle:
+ gotopostbattlescript
+
+EventScript_NotEnoughMonsForDoubleRematchBattle:
+ special ScrSpecial_ShowTrainerNonBattlingSpeech
+ waitmessage
+ waitbuttonpress
+ release
+ end
+
+EventScript_RevealTrainer:
+ applymovement VAR_LAST_TALKED, Movement_RevealTrainer
+ waitmovement 0
+ return
+
+Movement_RevealTrainer::
+ reveal_trainer
+ step_end
+
+EventScript_DoTrainerBattle:
+ special ShowTrainerIntroSpeech
+ waitmessage
+ waitbuttonpress
+ trainerbattlebegin
+ specialvar VAR_RESULT, ScrSpecial_GetTrainerBattleMode
+ compare VAR_RESULT, TRAINER_BATTLE_SINGLE
+ goto_if_eq EventScript_EndTrainerBattle
+ compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT
+ goto_if_eq EventScript_GoToBeatenScript
+ compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC
+ goto_if_eq EventScript_GoToBeatenScript
+ compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE
+ goto_if_eq EventScript_GoToBeatenScript
+ compare VAR_RESULT, TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC
+ goto_if_eq EventScript_GoToBeatenScript
+EventScript_EndTrainerBattle:
+ releaseall
+ end
+
+EventScript_GoToBeatenScript:
+ gotobeatenscript
+
+Std_MsgboxAutoclose::
+ message 0x0
+ waitmessage
+ waitbuttonpress
+ release
+ return