diff options
-rw-r--r-- | pokemontools/vba/battle.py | 7 | ||||
-rw-r--r-- | pokemontools/vba/vba.py | 17 |
2 files changed, 24 insertions, 0 deletions
diff --git a/pokemontools/vba/battle.py b/pokemontools/vba/battle.py index 87cd7b1..17c0d5d 100644 --- a/pokemontools/vba/battle.py +++ b/pokemontools/vba/battle.py @@ -55,6 +55,13 @@ class Battle(EmulatorController): """ return self.is_fight_pack_run_menu() + def is_switch_prompt(self): + """ + Detects if the battle is waiting for the player to choose whether or + not to switch pokemon. + """ + return self.emulator.is_battle_switch_prompt() + def is_mandatory_switch(self): """ Detects if the battle is waiting for the player to choose a next diff --git a/pokemontools/vba/vba.py b/pokemontools/vba/vba.py index 47cadd7..79eb77e 100644 --- a/pokemontools/vba/vba.py +++ b/pokemontools/vba/vba.py @@ -599,6 +599,23 @@ class crystal(object): def is_in_link_battle(self): return self.vba.read_memory_at(0xc2dc) != 0 + def is_battle_switch_prompt(self): + """ + Checks if the game is currently displaying the yes/no prompt for + whether or not to switch pokemon. + """ + # get on-screen text + text = self.get_text() + + requirements = [ + "YES", + "NO", + "Will ", + "change POKMON?", + ] + + return all([requirement in text for requirement in requirements]) + def unlock_flypoints(self): """ Unlocks different destinations for flying. |