diff options
author | yenatch <yenatch@gmail.com> | 2013-11-18 21:03:31 -0500 |
---|---|---|
committer | yenatch <yenatch@gmail.com> | 2013-11-18 21:03:31 -0500 |
commit | dfc88b9ac0369632bfa93a3859bf26dc2828ae9e (patch) | |
tree | 6243ede1e0a5a0bc2a76abf8c5027e21f1a72471 /tests/bootstrapping.py | |
parent | 9d01c85d3bac2a6a7b5826dc2139f69731a901ab (diff) | |
parent | 3027746bd69db504f8d0e311d9f81593337ff236 (diff) |
Merge branch 'master' of github.com:kanzure/pokemon-reverse-engineering-tools
Diffstat (limited to 'tests/bootstrapping.py')
-rw-r--r-- | tests/bootstrapping.py | 54 |
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 |