arbitrary access for RNG frame results, only generating frames when the
frame is unavailable. all calculated frames are cached.
to be used in RNG searching where caching seeds is necessary (repeat
checks)
dynamic level -> calc level
no sweet scent -> proc available (rock smash/fish)
change frame checking in encountergenerator to save which frame it was
found on (unused but possibly later can capture this for output)
Turns out there was no documentation anywhere on encounterslot numbers
for the individual forms; some sites had overall rates.
Assuming a human filled out the encounter slots, forms would repeat left
to right until a new form takes over. Below slot numbers match the rates
when summed up.
https://pastebin.com/raw/bQt3ZMbq
since there's 300 calls to rand to shuffle, I wouldn't be surprised if
there are vblanks messing up the frames
judging from my data 6 years ago (wow, still wrong, just look at the
frame offsets)
http://www.smogon.com/forums/threads/past-gen-rng-research.61090/page-35#post-4021415
looks like it happens quite erratically. may have to just override this
to return true for all gen3 safari mons as it's entirely unpredictable.
via pret/pokeemerald (and pokeruby); rate is set at 50%
swarm pokemon have the ability to have 4 fixed moves, so derive from
EncounterSlot to have moves, and remove special handling from
VerifyCurrentMoves (now picked up by IMoveset pattern
allows hgss safari mons regardless of frame call (table is currently all
Slot=0).
may need separate handling down the road:
* switch slot number to an enum for slot codes (>0 = slot number, less
than -> do something else).
not something im interested in right now