summaryrefslogtreecommitdiff
path: root/tests/bootstrapping.py
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2013-11-18 21:03:31 -0500
committeryenatch <yenatch@gmail.com>2013-11-18 21:03:31 -0500
commitdfc88b9ac0369632bfa93a3859bf26dc2828ae9e (patch)
tree6243ede1e0a5a0bc2a76abf8c5027e21f1a72471 /tests/bootstrapping.py
parent9d01c85d3bac2a6a7b5826dc2139f69731a901ab (diff)
parent3027746bd69db504f8d0e311d9f81593337ff236 (diff)
Merge branch 'master' of github.com:kanzure/pokemon-reverse-engineering-tools
Diffstat (limited to 'tests/bootstrapping.py')
-rw-r--r--tests/bootstrapping.py54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/bootstrapping.py b/tests/bootstrapping.py
new file mode 100644
index 0000000..b71c19a
--- /dev/null
+++ b/tests/bootstrapping.py
@@ -0,0 +1,54 @@
+"""
+Functions to bootstrap the emulator state
+"""
+
+from setup_vba import (
+ vba,
+ autoplayer,
+)
+
+def bootstrap():
+ """
+ Every test needs to be run against a certain minimum context. That context
+ is constructed by this function.
+ """
+
+ cry = vba.crystal(config=None)
+ runner = autoplayer.SpeedRunner(cry=cry)
+
+ # skip=False means run the skip_intro function instead of just skipping to
+ # a saved state.
+ runner.skip_intro(skip=True)
+
+ state = cry.vba.state
+
+ # clean everything up again
+ cry.vba.shutdown()
+
+ return state
+
+def bootstrap_trainer_battle():
+ """
+ Start a trainer battle.
+ """
+ # setup
+ cry = vba.crystal(config=None)
+ runner = autoplayer.SpeedRunner(cry=cry)
+
+ runner.skip_intro(skip=True)
+ runner.handle_mom(skip=True)
+ runner.walk_into_new_bark_town(skip=True)
+ runner.handle_elm("totodile", skip=True)
+
+ # levelgrind a pokemon
+ # TODO: make new_bark_level_grind able to figure out how to construct its
+ # initial state if none is provided.
+ runner.new_bark_level_grind(17, skip=True)
+
+ cry.givepoke(64, 31, "kAdAbRa")
+ cry.givepoke(224, 60, "OcTiLlErY")
+ cry.givepoke(126, 87, "magmar")
+
+ cry.start_trainer_battle()
+
+ return runner.cry.vba.state