PKHeX/PKHeX.Core/Resources/byte
Lusamine ab33df2fc9
Enforce weather legality for SWSH (#3221)
* Add weather types by location

Creates a dictionary of possible weather types for each SWSH location.
Unlisted locations may only have Normal weather or do not have any
encounter slots.

* Prune unused weather from static encounters

Some encounters were too permissive with weather, e.g. Sandstorm in
Fields of Honor and Challenge Beach; Snowstorm at Dyna Tree Hill.

A few crossover areas that would have limited the possible weathers were
marked with a "(c)". An example is Nidorina from Giant's Bed crossing
to Frostpoint Field, where Raining and Thunderstorm do not occur.

This additionally organizes encounters by location.

* Move location-weather dictionary to EncounterArea8

* Verify weather marks on encounterslot/static encounters

* Adds some static encounters available through weather bleed

Weathers aren't normally available, but these static encounters are
close enough to the boundary that the weather in an adjacent area can be
used to spawn them.

- Frostpoint Field Snorlax with Raining/Thunderstorm from Giant's Bed
- Snowslide Slope Amaura with Raining/Thunderstorm from Giant's Bed
- Frigid Sea Carracosta with Intense_Sun from Three-Point Pass
- Frigid Sea Magmortar with Intense_Sun from Three-Point Pass
- Ballimere Lake Corviknight with Snowstorm from Giant's Bed
- Ballimere Lake Cryogonal with Snowstorm from Giant's Bed
- Ballimere Lake Tyrunt with all weather from Giant's Bed
- Lakeside Cave Ferrothorn with all weather from Ballimere Lake
- Tunnel to the Top Golbat with all weather from Path to the Peak

* Defer weather marks if incompatible, enforce encounterslot weather

This uses the area weather to check fishing slots and tentatively adds
some tables for weather bleed encounterslots.

* Warm-Up Tunnel gets weather bleed from Training Lowlands

* Update for base PKHeX

* Handle weather bleed for SWSH encounter slots

Co-authored-by: Skadiv <62726360+Skadiv@users.noreply.github.com>

* Minor clean

Having duplicate weather marks is illegal, so just auto-partial match them instead of checking the other marks.

* Rearrange slot weather check logic

* Claim reserved byte in SWSH pkl

* No need for two variable names now

* Valid weather marks on tree/fishing should return with main weather

* Fix tree/fishing deferral and add another surf slot weather bleed

* Disallow tree/fishing encounters from using bleed tables

None are currently known at this time, and only hidden grass encounters
have a weather bleed table

* Condense bleed expression, combine tree/fish flag check

* Move weather-bleed check into EncounterArea8

Makes the dictionaries private instead of internal.

Co-authored-by: Skadiv <62726360+Skadiv@users.noreply.github.com>
2021-07-26 14:28:05 -07:00
..
eggmove_ao.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
eggmove_bw.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
eggmove_c.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
eggmove_dppt.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
eggmove_gs.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
eggmove_hgss.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
eggmove_rs.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
eggmove_sm.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
eggmove_swsh.pkl Update Legality Binaries for Crown Tundra 2020-10-24 10:54:19 -07:00
eggmove_uu.pkl PKHeX.Core Nullable cleanup (#2401) 2019-10-16 18:47:31 -07:00
eggmove_xy.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
encounter_a.pkl Offload EncounterSlot loading logic to reduce complexity (#2980) 2020-08-30 10:23:22 -07:00
encounter_b.pkl Re-dump slots with revised SlotType definitions 2021-02-01 23:43:52 -08:00
encounter_b2.pkl Re-dump slots with revised SlotType definitions 2021-02-01 23:43:52 -08:00
encounter_blue.pkl Offload EncounterSlot loading logic to reduce complexity (#2980) 2020-08-30 10:23:22 -07:00
encounter_blue_jp.pkl Add japanese blue encounter tables (unique to jp_blue) 2021-01-08 11:29:00 -08:00
encounter_blue_jp_f.pkl Re-dump slots with revised SlotType definitions 2021-02-01 23:43:52 -08:00
encounter_crystal.pkl Add Gen2 rock smash encounters 2021-04-08 20:45:14 -07:00
encounter_d.pkl Offload EncounterSlot loading logic to reduce complexity (#2980) 2020-08-30 10:23:22 -07:00
encounter_e.pkl Re-dump slots with revised SlotType definitions 2021-02-01 23:43:52 -08:00
encounter_fr.pkl Remove altering cave event tables 2021-03-10 10:10:54 -08:00
encounter_ge.pkl Move enc7b sky encounter fudging to reformatter project 2021-03-17 21:59:00 -07:00
encounter_go_home.pkl Update 21.05.21 2021-05-20 09:37:15 -07:00
encounter_go_lgpe.pkl Update 21.05.19 2021-05-18 17:49:54 -07:00
encounter_gold.pkl Add Gen2 rock smash encounters 2021-04-08 20:45:14 -07:00
encounter_gp.pkl Move enc7b sky encounter fudging to reformatter project 2021-03-17 21:59:00 -07:00
encounter_hg.pkl Add case for special headbutt slots 2021-03-11 20:52:00 -08:00
encounter_lg.pkl Remove altering cave event tables 2021-03-10 10:10:54 -08:00
encounter_mn.pkl Update gen7 slot pickles, removes inaccessible areas 2020-12-30 19:08:53 -08:00
encounter_o.pkl Offload EncounterSlot loading logic to reduce complexity (#2980) 2020-08-30 10:23:22 -07:00
encounter_p.pkl Offload EncounterSlot loading logic to reduce complexity (#2980) 2020-08-30 10:23:22 -07:00
encounter_pt.pkl Offload EncounterSlot loading logic to reduce complexity (#2980) 2020-08-30 10:23:22 -07:00
encounter_r.pkl Re-dump slots with revised SlotType definitions 2021-02-01 23:43:52 -08:00
encounter_red.pkl Offload EncounterSlot loading logic to reduce complexity (#2980) 2020-08-30 10:23:22 -07:00
encounter_rse_swarm.pkl Re-dump slots with revised SlotType definitions 2021-02-01 23:43:52 -08:00
encounter_s.pkl Re-dump slots with revised SlotType definitions 2021-02-01 23:43:52 -08:00
encounter_sh_hidden.pkl Enforce weather legality for SWSH (#3221) 2021-07-26 14:28:05 -07:00
encounter_sh_symbol.pkl Enforce weather legality for SWSH (#3221) 2021-07-26 14:28:05 -07:00
encounter_silver.pkl Add Gen2 rock smash encounters 2021-04-08 20:45:14 -07:00
encounter_sn.pkl Update gen7 slot pickles, removes inaccessible areas 2020-12-30 19:08:53 -08:00
encounter_ss.pkl Add case for special headbutt slots 2021-03-11 20:52:00 -08:00
encounter_sw_hidden.pkl Enforce weather legality for SWSH (#3221) 2021-07-26 14:28:05 -07:00
encounter_sw_symbol.pkl Enforce weather legality for SWSH (#3221) 2021-07-26 14:28:05 -07:00
encounter_um.pkl Update gen7 slot pickles, removes inaccessible areas 2020-12-30 19:08:53 -08:00
encounter_us.pkl Update gen7 slot pickles, removes inaccessible areas 2020-12-30 19:08:53 -08:00
encounter_w.pkl Re-dump slots with revised SlotType definitions 2021-02-01 23:43:52 -08:00
encounter_w2.pkl Re-dump slots with revised SlotType definitions 2021-02-01 23:43:52 -08:00
encounter_x.pkl Offload EncounterSlot loading logic to reduce complexity (#2980) 2020-08-30 10:23:22 -07:00
encounter_y.pkl Offload EncounterSlot loading logic to reduce complexity (#2980) 2020-08-30 10:23:22 -07:00
encounter_yellow.pkl Offload EncounterSlot loading logic to reduce complexity (#2980) 2020-08-30 10:23:22 -07:00
evos_ao.pkl Handle level20 transferred feebas edge case 2019-09-27 20:22:54 -07:00
evos_g3.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
evos_g4.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
evos_g5.pkl Handle level20 transferred feebas edge case 2019-09-27 20:22:54 -07:00
evos_gg.pkl Handle level20 transferred feebas edge case 2019-09-27 20:22:54 -07:00
evos_gsc.pkl Consolidate duplicate logic 2019-03-23 10:05:33 -07:00
evos_rby.pkl Consolidate duplicate logic 2019-03-23 10:05:33 -07:00
evos_ss.pkl Re-add unavailable split evolution cases 2020-10-24 21:32:48 -07:00
evos_uu.pkl Handle level20 transferred feebas edge case 2019-09-27 20:22:54 -07:00
hmtm_g3.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_ao.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_b2w2.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_bw.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_c.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_dp.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_e.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_fr.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_gg.pkl Scrub unused data 2018-11-12 18:58:02 -08:00
lvlmove_gs.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_hgss.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_lg.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_pt.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_rb.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_rs.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_sm.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_swsh.pkl Update Legality Binaries for Crown Tundra 2020-10-24 10:54:19 -07:00
lvlmove_uu.pkl add lvl/egg move tables for usum 2017-11-08 19:31:07 -08:00
lvlmove_xy.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
lvlmove_y.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
personal_ao Add formcount for scatterbug/spewpa 2020-01-04 22:31:46 -08:00
personal_b2w2 Fill empty ability values with ability1 2018-06-15 23:41:07 -07:00
personal_bw Propagate ability1 to empty ability slots 2020-09-19 07:53:25 -07:00
personal_c Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
personal_dp Downshift types to remove curse type from g4 personal vals 2020-11-12 15:46:12 -08:00
personal_e Update e/fr/lg stats for deoxys formes 2018-07-28 09:02:41 -07:00
personal_fr Update e/fr/lg stats for deoxys formes 2018-07-28 09:02:41 -07:00
personal_gg Scrub unused data 2018-11-12 18:58:02 -08:00
personal_gs Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
personal_hgss Downshift types to remove curse type from g4 personal vals 2020-11-12 15:46:12 -08:00
personal_lg Update e/fr/lg stats for deoxys formes 2018-07-28 09:02:41 -07:00
personal_pt Downshift types to remove curse type from g4 personal vals 2020-11-12 15:46:12 -08:00
personal_rb Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
personal_rs Fill empty ability values with ability1 2018-06-15 23:41:07 -07:00
personal_sm Add formcount for scatterbug/spewpa 2020-01-04 22:31:46 -08:00
personal_swsh Update Legality Binaries for Crown Tundra 2020-10-24 10:54:19 -07:00
personal_uu Remove manual personal info fix 2020-01-12 11:39:43 -08:00
personal_xy Add formcount for scatterbug/spewpa 2020-01-04 22:31:46 -08:00
personal_y Fix g1 yellow personal table in binary rather than while running 2020-09-19 07:52:35 -07:00
pgf.pkl Update 20.08.07 2020-08-06 19:15:16 -07:00
trees_h_c.pkl Fix Tree Area list from Whirl Islands (0x1F) to Route 42 (0x22) 2021-01-21 22:21:13 -08:00
tutors_g3.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
tutors_g4.pkl Converted PKHeX.Core to .Net Standard 2017-05-11 23:34:18 -05:00
wb7full.pkl Update 20.10.10 2020-10-10 00:30:21 -07:00
wc4.pkl Update 20.10.10 2020-10-10 00:30:21 -07:00
wc6.pkl Update 20.08.07 2020-08-06 19:15:16 -07:00
wc6full.pkl Update 21.04.01 2021-03-31 21:52:15 -07:00
wc7.pkl Update 19.04.02 2019-04-01 18:35:01 -07:00
wc7full.pkl Update 21.04.01 2021-03-31 21:52:15 -07:00
wc8.pkl Update wc8.pkl 2021-07-15 20:40:00 -07:00