summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBryan Bishop <kanzure@gmail.com>2013-11-11 21:27:28 -0600
committerBryan Bishop <kanzure@gmail.com>2013-11-11 21:27:28 -0600
commit18449eea21096cf8b90e21ee7bcdc6da5e047df4 (patch)
tree78aeb36943d131b6572f08c58831ffecbe9b218e
parent4c6a904db191c182c3b9cecdcbc0d5ea3b5c2173 (diff)
function to check if it's the yes/no prompt
This is the prompt that appears during battles for whether or not to switch pokemon when the other trainer is sending something else out.
-rw-r--r--pokemontools/vba/battle.py7
-rw-r--r--pokemontools/vba/vba.py17
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.