Kurt
71d355804a
Move enc7b sky encounter fudging to reformatter project
...
50c53d6b33
2021-03-17 21:59:00 -07:00
Kurt
1acefbcf93
Remove sigilyph from g5 breed HA banlist
...
https://projectpokemon.org/home/forums/topic/58657-sigilyph/?do=findComment&comment=265330
2021-03-17 20:20:54 -07:00
Kurt
b4f763f7ef
Move bridge-stony copy logic to pkNX
...
Also trims out empty slots (species=0), less size!
49efb96db9
2021-03-17 18:11:07 -07:00
Kurt
535f464b61
Update EncounterSlot7.cs
...
Closes #3176
2021-03-16 23:49:04 -07:00
Kurt
6bce4eea14
Minor clean
...
Annotations (nullable), some switch cases for readability
2021-03-14 16:16:55 -07:00
Kurt
ac116e0d0b
Add more xmldoc / enum clean
2021-03-14 11:28:46 -07:00
Kurt
649958ee68
Move EReader berry names from tables to settings class
2021-03-14 10:16:09 -07:00
Kurt
b7bb5a0672
Remove unused 0 pp entries at end
...
Array is length checked already
2021-03-14 10:15:45 -07:00
Kurt
7b163147ef
Add case for special headbutt slots
...
Closes #3174
Add more xmldoc for SlotType
Import revised slot-type table, as we've removed "Special" from the regular trees.
ef4b1b2894
2021-03-11 20:52:00 -08:00
Kurt
5cc3322b83
Split RNG class into simple & enhanced
...
ARNG object doesn't need the reversal caches, saves 256KB of memory allocation
Move RNG algorithms & support logic into a subfolder
2021-03-10 22:30:30 -08:00
Kurt
155e0283ce
Inline some string logic, extract magic values, xmldoc
2021-03-09 21:31:53 -08:00
Kurt
9e4f1d11cc
Show misc encounter details on hover
2021-03-07 12:35:26 -08:00
Kurt
2e10e0757a
Check gen5 egg met location rather than gen6
...
Override the base impl in encstatic, swap const refs
2021-03-03 18:35:26 -08:00
sora10pls
9ee27aaf8f
Update EncounterArea7g/8g
...
Now properly grabs forms for Unown, Arceus, Vivillon, and Silvally.
2021-03-03 17:45:18 -05:00
sora10pls
08ecac8cb3
Update upcoming Dynamax Crystal encounters
2021-03-02 11:21:56 -05:00
Kurt
eba704a46b
Add March raid data
...
Wonder if they'll fix the gmax Hattrem ;)
2021-02-28 17:19:17 -08:00
Kurt
c27697c919
Flag contest stats if sheen is present on gen5+ origin
2021-02-27 20:02:18 -08:00
Kurt
7afd2ec351
Add Pika 2/25 raids
2021-02-25 16:27:05 -08:00
Kurt
0ba029226c
Add more xmldoc
2021-02-24 18:08:03 -08:00
Kurt
89cc722cd2
Add missing met location bypass for pokewalker xfr's
2021-02-21 18:41:42 -08:00
Kurt
b159a43110
Update EncounterArea6XY.cs
2021-02-21 16:50:03 -08:00
Kurt
aaa1fd1b4f
Remove obsolete legality checks for safari
...
Hard matches for encounter slot result in these never being executable.
2021-02-21 15:22:10 -08:00
Kurt
c8b12a9ddc
Add safari slots for floette 2/3
...
Move the array into the constructor; let it get garbage collected rather than leaving it as static
2021-02-21 15:18:58 -08:00
Kurt
f308be38fd
More tweaks
2021-02-19 10:52:26 -08:00
Kurt
d61e646ca9
Minor tweaks
2021-02-18 17:26:06 -08:00
Kurt
83c61a2515
Update EncounterGenerator6.cs
2021-02-17 08:49:32 -08:00
Kurt
31245d0e37
Add mythical table, allow non-mythical legends in latest ruleset (master ribbon)
2021-02-16 21:42:36 -08:00
Kurt
0121028a6b
Furfrou Bank edge cases
...
lmao nice meme
2021-02-16 21:22:20 -08:00
Kurt
165a0f3956
Update EncounterSlot8.cs
2021-02-16 09:54:47 -08:00
Kurt
f5b47f9116
Update EncounterGenerator6.cs
...
Closes #3153
wc6 is the only one with deferred cards that matter
2021-02-16 07:35:55 -08:00
Kurt
f63654d5ae
Force curry mark for generated galar mine hidden slots
2021-02-15 15:21:10 -08:00
Kurt
6088a95421
Location specific restrictions
2021-02-15 10:31:07 -08:00
Kurt
bfe411d503
Update EncounterSlot8.cs
2021-02-15 10:19:52 -08:00
Kurt
74a5c03cd2
Clean check for overworld IVs
...
Closes #3150
Still need to remove some symbol encounter tables that are unused
2021-02-15 09:04:47 -08:00
Kurt
b82b0da7d9
Add checks for fishing mark
2021-02-14 22:25:59 -08:00
Kurt
90f7de4b27
Update Overworld8RNG.cs
2021-02-14 21:52:34 -08:00
Kurt
34bb0f1fc0
Update Overworld8RNG.cs
...
because archit wants it
2021-02-14 21:45:39 -08:00
Kurt
ebb4e2a56a
Defer curry mark static encounters, flag as invalid
...
Closes #3001 as all marks that can be checked are checked.
Promote trades above static encounters, as it's just met location.
2021-02-14 21:24:31 -08:00
Kurt
927c83d660
Show seed in output, flag correlations that shouldn't
2021-02-14 16:00:43 -08:00
Kurt
5949c3b57e
Minor clean
2021-02-14 15:14:45 -08:00
Kurt
267613270e
Generate slots/static per correlation if appropriate
...
Relocate the SetRandomEC at the tail end of the generator into the specific classes that set EC, so that our correlation generators don't have their EC overwritten at the end.
2021-02-14 12:27:14 -08:00
Kurt
884cd70d43
Minor clean
2021-02-14 10:23:53 -08:00
Kurt
1af27516e6
pid encounter type mismatch: returns
...
Keeping the cryptic message for now :)
2021-02-14 10:20:35 -08:00
Lusamine
205cf481b0
Add Gyarados/Milotic crossover & disallow marks in Motostoke Gym ( #3149 )
...
* Add a Gyarados crossover & disallow marks in Motostoke Gym
* Milotic can be lured across boundary too
2021-02-14 10:13:45 -08:00
Kurt
a65ab2accc
Flag wild slots that don't match 32bit correlation
2021-02-13 22:45:07 -08:00
Kurt
834d0d77ba
Create Overworld8RNG.cs
2021-02-13 18:18:14 -08:00
Kurt
f583cdd385
Add valentines milcery def
...
nonshiny is dupe with prior enc
2021-02-12 20:21:13 -08:00
Lusamine
c0b73575e6
Moltres-1 can be caught at Honeycalm Sea ( #3147 )
2021-02-10 21:02:29 -08:00
Kurt
2ee88ee010
Update FormVerifier.cs
2021-02-08 23:18:45 -08:00
Kurt
37cb15749e
Update FormArgument handling for gen6/7
...
Disassociate pk4/pk6 backing byte[] when converting to pk5|pk7, as we no longer make a copy of the byte[] in the pkm's constructor.
Change UpdatePKM to include isParty, as we want it optional to update FormArgument too.
Change FormArgument saving to be handled by FormConverter; kinda not really good to have it there, but nothing else is handling FormArgument values.
Expand IFormArgument to have all FormArgument values exposed. "Maximum" is furfrou only.
PK6: Max is in the "FormArgument" u32, and the remain/elapsed is in party stats (hence the reverting when boxed)
PK7: u8 remain, u8 elapsed, u8 max, u8 unused.
PK8: assumedly the same as PK7, given the disassembly hints that it's the same as past games (even though Furfrou and Hoopa are not in SWSH).
2021-02-08 20:26:53 -08:00
Kurt
3876b3b1fa
Allow traded egg while still egg
...
Closes #3144
2021-02-08 08:29:18 -08:00
Kurt
62f4499646
Clamp type
...
oops, bitflags leaking through in comparison
2021-02-07 21:40:31 -08:00
Kurt
91253b810a
Indicate duplicate home trackers in report
...
Closes #3143
Reminder: Bulk Analysis can be accessed by control-clicking the verify checksums button :P
2021-02-07 08:34:56 -08:00
Kurt
a2d5d7d769
Show preview for encounter database slots on hover
2021-02-06 22:33:13 -08:00
Kurt
30cbe117dc
Add missing invert
2021-02-05 17:25:38 -08:00
Kurt
5bb4c9e7fe
Update FormVerifier.cs
2021-02-05 17:25:13 -08:00
Kurt
a7f65554ad
Update formarg handling
2021-02-05 16:52:46 -08:00
Kurt
b3029302ea
Cache a mismatched IV encounterslotGO
...
Eggs may come before wild in the pget pickle, so just keep bad matches around until the end.
2021-02-05 14:20:43 -08:00
sora10pls
eab75b7cba
Update HOME date legality
...
Update dictionary to use proper format (yyyy-mm-dd), as well as verifier to properly check met year.
Also updated IsValidDateWC8 to clamp latest met date based on UTC, like with GO encounters.
2021-02-04 09:12:47 -05:00
Kurt
f6f81ec782
Add initial date checks for HOME gifts
2021-02-03 22:57:59 -08:00
Kurt
5745f8b44e
Update AbilityVerifier.cs
2021-02-03 22:57:23 -08:00
Kurt
51bc48a6a8
Add Cramorant raids
2021-02-03 22:44:15 -08:00
Kurt
335ba2447e
Default parsesettings tradeback to true
2021-02-03 15:39:30 -08:00
Kurt
230073876f
Add catch rate for staticencounter1
2021-02-03 15:22:48 -08:00
Kurt
5350cb4ab6
Update EncounterTradeGenerator.cs
2021-02-03 14:50:15 -08:00
Kurt
ac464e0c57
Update EncounterStatic2E.cs
2021-02-03 13:49:14 -08:00
Kurt
862403858b
Refactoring
...
no functional change
2021-02-03 11:33:09 -08:00
Kurt
9d9eb935b1
Improve partial match bleed through
...
Checks partial matches in the loop rather than outside; it'll only settle on the partial match if there's nothing else to settle on.
Gen1/2 generators can have partial matches bubble up before actual matches (gen1 fighting gen2).
2021-02-02 22:40:06 -08:00
Kurt
2b00e310ae
Handle some gen1/2 static generating easier
...
I should probably have slot1/2 and static1/2 and trade1/2 implement GetBlank so that they can flexibly return a japanese/int/(kor) from template rather than default int, but eh
2021-02-02 22:14:33 -08:00
Kurt
e33468db96
Mark (JP-BU)/(JP-GN)(EN-BU) as RB
...
BU is only Japanese
2021-02-02 22:13:24 -08:00
Kurt
33fc33a165
Add more nickname logic checks
...
Variant nicklang OT can nickname if it's the handler
2021-02-02 22:12:36 -08:00
Kurt
cd286d6923
Yield specific static encounters for rby/gsc for moveset gen
2021-02-02 20:25:59 -08:00
Kurt
fa09c6bc25
Update NicknameVerifier.cs
2021-02-02 19:21:17 -08:00
Kurt
3d99902023
Add HOME nickname verification rules
2021-02-02 19:14:38 -08:00
Kurt
630d84c8b6
Check encounter moves for gen1/2 (no relearner)
2021-02-02 15:39:56 -08:00
Kurt
78cc0098b3
Update EncounterStatic2.cs
2021-02-02 10:41:28 -08:00
Kurt
f7f8597281
Handle game-specific slot fetch for gen1/2 more explicitly
2021-02-02 10:20:30 -08:00
Kurt
8705c26adc
Bake cosplay moves into the encounter template
...
yay records `with` syntax
don't bother specifying form6's moves, they're all levelup moves.
2021-02-02 09:40:58 -08:00
Kurt
48c2c43293
Re-dump slots with revised SlotType definitions
2021-02-01 23:43:52 -08:00
Kurt
e55dae8f7b
Remove headbutt available check; already pruned
...
The Encounter dumper project already excluded all headbutt tree areas that can't be accessed. Every slot that is present in this project can be accessed.
Move the tree check to the eslot2 object
Check all gen2 slots regardless of crystal origin, since we now tag all of them with location IDs.
2021-02-01 21:22:58 -08:00
Kurt
a7afa58156
Rework partialmatch hidden check
...
Want to check if it has been evolved from the original species, and the current species is a non-changeable hidden ability
2021-02-01 20:45:48 -08:00
Kurt
5ef1850e46
Disallow marks on GO encounters
2021-02-01 20:34:04 -08:00
Kurt
4e9908a53d
Remove unnecessary logic
2021-02-01 20:17:17 -08:00
Kurt
9124a3c62b
Improve handling of multi-nicknamed mystery gifts
2021-02-01 18:35:37 -08:00
Kurt
6d41d6a17c
Fix casting issue for mystry seed fetch
...
rand32 -> int32 can yield negative, when modulo'd can be negative (bad index)
2021-02-01 10:53:40 -08:00
Kurt
8a2d115df3
Sanity check nature for Criteria parameter
2021-02-01 10:45:53 -08:00
Kurt
afbf1d997b
Try to detect vc transferred species, don't assume most evolved
2021-02-01 09:52:25 -08:00
Kurt
7833d12f95
Simplify shared egg move array get
2021-01-31 23:07:14 -08:00
Kurt
a43f6aa71a
Add february dist raids
2021-01-31 22:40:47 -08:00
Kurt
f3ef88a5e9
Respect ability from criteria
2021-01-31 21:53:11 -08:00
Kurt
2dbdd83952
Update NicknameVerifier.cs
2021-01-31 21:43:33 -08:00
Kurt
34ac8167f2
Update EncounterSlot.cs
2021-01-31 21:42:24 -08:00
Kurt
d2d20c13e0
Don't emit JP-BU as a random gameversion
2021-01-31 21:28:33 -08:00
Kurt
fa3fe0a380
Invert check, fix xmldoc descriptions
2021-01-31 20:12:46 -08:00
Kurt
1ece844f78
Partial match HA species without a HA possible
...
A captured metapod cannot have hidden ability via ability patch, but a captured caterpie evolved into metapod can, assuming it existed as caterpie.
2021-01-31 13:05:36 -08:00
Kurt
4456a9dc7a
Update nickname rules for gen8/=>gen8
...
Add a setting so that can flag deceptive species nicknames (even though it may be possible).
2021-01-31 12:37:03 -08:00
Kurt
09e5dde609
Add gen6 key item arg logic
2021-01-31 10:53:41 -08:00
Kurt
d8e75ee85a
Force Japanese language for JP-BU safe language fetch
2021-01-31 10:19:12 -08:00
Kurt
4d25214c8d
Update EncounterEgg.cs
2021-01-31 01:20:35 -08:00
Kurt
332449f53d
Fix erroneous yield counter increments
...
https://projectpokemon.org/home/forums/topic/58492-possible-legality-error-for-the-mon-from-pokemon-bank-using-ability-patch-with-the-new-update/
2021-01-31 01:12:20 -08:00
Kurt
a7f6c212f9
Permit gen2 moves on a vc1 transfer
...
feels dirty
2021-01-30 22:03:41 -08:00
Kurt
a524032f61
Add TR flags to emoveset generator
2021-01-30 21:49:45 -08:00
Kurt
6089268b53
Set valid nature for generated toxtricity
2021-01-30 19:58:05 -08:00
Kurt
09bfe5bd95
Enforce shadow locks when generating a ck3/xk3 from criteria
2021-01-30 19:42:58 -08:00
Kurt
62bf1c2755
Add stubs for verifying memories regarding items
...
Not implementing these, but at least setting up a clean area for anyone else to implement the logic
2021-01-30 19:15:39 -08:00
Kurt
3bb4553b24
Disallow encounter edge case moves when battleversion reset
2021-01-30 13:15:21 -08:00
Kurt
4f7faf9c85
Moveset generator tweaks, dexnav move logic
2021-01-30 10:15:38 -08:00
Kurt
1e86fdcea8
Fracture the encounter matching checks to allow progressive validation ( #3137 )
...
## Issue
We want to discard-but-remember any slots that aren't a perfect fit, on the off chance that a better one exists later in the search space. If there's no better match, then we gotta go with what we got.
## Example:
Wurmple exists in area `X`, and also has a more rare slot for Silcoon, with the same level for both slots.
* We have a Silcoon that we've leveled up a few times.
Was our Silcoon originally a Wurmple, or was it caught as a Silcoon?
* To be sure, we have to check the EC/PID if the Wurmple wouldn't evolve into Cascoon instead.
* We don't want to wholly reject that Wurmple slot, as maybe the Met Level isn't within Silcoon's slot range.
---
Existing implementation would store "deferred" matches in a list; we only need to keep 1 of these matches around (less allocation!). We also want to differentiate between a "good" deferral and a "bad" deferral; I don't think this is necessary but it's currently used by Mystery Gift matching (implemented for the Eeveelution mystery gifts which matter for evolution moves).
The existing logic didn't use inheritance, and instead had static methods being reused across generations. Quite kludgy. Also, the existing logic was a pain to modify the master encounter yield methods, as one generation's quirks had to not impact all other generations that used the method.
---
The new implementation splits out the encounter yielding methods to be separate for each generation / subset. Now, things don't have to check `WasLink` for Gen7 origin, because Pokémon Link wasn't a thing in Gen7.
---
## Future
Maybe refactoring yielders into "GameCores" that expose yielding behaviors / properties, rather than the static logic. As more generations and side-gamegroups get added (thanks LGPE/GO/GameCube), all this switch stuff gets annoying to maintain instead of just overriding/inheritance.
## Conclusion
This shouldn't impact any legality results negatively; if you notice any regressions, report them! This should reduce false flags where we didn't defer-discard an encounter when we should have (wild area mons being confused with raids).
2021-01-29 17:55:27 -08:00
Kurt
ff21d63d16
Update MemoryVerifier.cs
2021-01-29 14:34:45 -08:00
Kurt
697a9fc668
Permit 80-89 memories on eggs
...
nice logic ya got there, GameFreak
2021-01-29 13:47:31 -08:00
Kurt
f7b703626c
Only import gbera statics for Generation >0
...
GO requests would have Generation=-1 (no met location to differentiate 7/8).
2021-01-29 11:32:51 -08:00
Kurt
e5943e3c92
Clamp generation fetch for battleversion
2021-01-29 09:56:31 -08:00
Kurt
3a6bff11c9
Fix relearn move check for gen6+
...
Probably should rewrite some sections of the current move verifier; lots of old code with illogical paths
2021-01-28 18:08:13 -08:00
Kurt
e8fa28794c
Make PIDIV lighter weight, readonly
2021-01-27 16:52:04 -08:00
Kurt
6c1b6a269d
Pass gender when creating static entry
2021-01-27 12:29:49 -08:00
Kurt
4bbe9dec96
Update FormVerifier.cs
2021-01-26 16:23:26 -08:00
sora10pls
1be20be877
Fix GO Shiny permissions
2021-01-26 13:35:57 -05:00
Kurt
511797c1f9
Fix gen4 hm indexing
2021-01-25 20:58:56 -08:00
Kurt
68673cf671
Flag all marks, unlike prior commit
...
oops, unnecessary simplification
2021-01-22 21:17:41 -08:00
Kurt
acfbef6cfa
Disallow raids matching if has mark
...
Closes #3133
not an ideal solution, but the encounter matching API is kinda limited in deferred-invalid vs deferred-notIdeal.
probably need to unify the match logic and generators so they can cache one secondary-check invalid
2021-01-22 20:28:54 -08:00
Kurt
5f8e2b13c5
Simplify headbutt tree pivot check
...
See the EncounterSlotDumper with the memoization logic & json tree listing.
Simplifies things a lot, and improves checking speed. Unreachable trees are now treated the same as no-trees maps.
ez 1.5KB reduction in file size :P
2021-01-22 19:20:18 -08:00
Kurt
944ff107b0
Add new distribution raids
2021-01-21 16:30:07 -08:00
Kurt
fbc089e7eb
Minor tweaks
...
Remove gen3 egg location hashset; only paths that reach it are for hatched eggs or current breed-eggs. Check breed eggs with the singular met location.
Simplify some logic flow
2021-01-20 12:37:51 -08:00
Kurt
9964c91dc6
Remove static init of yancy/curtis names
...
static constructor ran after the initializer; flip it and remove the unnecessary all-set
2021-01-20 12:36:46 -08:00
Kurt
bfd948ee2b
Update pget binaries, check gender
...
yay single gender availability! (frillish/jellicent being male only)
2021-01-16 18:29:27 -08:00
Kurt
3c42978afa
Use IndexOf instead of FindIndex when possible
2021-01-16 12:47:02 -08:00
Kurt
bb1d23e112
Minor clean
...
Use some enums, save a few virtual/static fetches
2021-01-16 12:01:40 -08:00
Lusamine
15da92f9bc
Document weather for static encounters ( #3127 )
...
This only matches the weather table with the Pokemon and does not fully
account for whether a location can spawn a particular weather.
Additional minor changes:
- Adds ScriptedNoMarks to Regis and Glimwood Tangle static encounters
- Corrects a few version-specific Pokemon such as Ludicolo/Shiftry
- Removes erroneous encounters such as Milotic in East/West Lake Axewell
- Removes an unused Motostoke Stadium encounter
2021-01-16 09:31:21 -08:00
Kurt
8eb499c4d0
Update EncounterStatic5.cs
...
Use base deferral method which only checks fateful flag.
2021-01-14 22:51:01 -08:00
Kurt
3816d25f7b
Condense some expressions
...
Simplify legal held item array creation, reduce linq usage in startup
Discard unreleased item array references; no need to retain after startup
2021-01-12 22:38:18 -08:00
Kurt
c32b38a53c
Minor annotation tweaks
...
no functional change
2021-01-12 22:26:08 -08:00
Kurt
890ce9ea4e
Simplify some expressions
...
Search array for index rather than loop and check; gives early-break too -- was O(n) now is O(<~n)
2021-01-12 22:25:30 -08:00
Kurt
2d3d6b49da
Force bad vc1 (should be vc2) to be vc2 templates
2021-01-11 17:47:25 -08:00
Kurt
621e708d23
Minor clean
2021-01-10 18:15:33 -08:00
Kurt
76ae6b2b3d
Minor tweaks
...
Disallow OT handling when originated gen is 1/2
Cast the input not the const
Hide HighestGameID (Use the method instead)
2021-01-09 21:25:28 -08:00
Kurt
c83208c915
Rename CheckIdentifier.Move to CheckIdentifier.CurrentMove
2021-01-09 13:05:56 -08:00
Kurt
3e0b52195a
Minor clean
2021-01-08 13:17:59 -08:00
Kurt
4a3a8dd090
Add japanese blue encounter tables (unique to jp_blue)
...
When creating a new pk1 for the slot->pkm, get it as a pk1-japanese.
Export the gameversion when in pk1/2 format (same as VC).
2021-01-08 11:29:00 -08:00
Kurt
d2d2be899b
Critical typo fix
...
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2021-01-07 21:30:39 -08:00
Kurt
92c9e9897a
Add latest dist raid changes
...
Same as 11/20, with one swap. Only the swap is kept (because duplicate encounters don't matter).
2021-01-07 21:27:57 -08:00
Kurt
c9f222bf38
Set valid mystry mew seed on creation
...
Uses a Method specific seed regardless of template.
2021-01-07 21:27:19 -08:00
Kurt
f615814548
Add xmldoc, increase swish util flexibility
2021-01-07 15:34:26 -08:00
Kurt
5554651951
Mark scxorshift32 and xoro128p as ref structs
...
Prevents passing them as args, as intended. These are self mutating structs
2021-01-07 15:33:42 -08:00
Kurt
118e1266a6
Swap lgpe sandshrew/vulpix version restrictions
...
Closes #3122 ty @FeralFalcon !
2021-01-05 17:30:14 -08:00
Kurt
1bd60ba6f9
Check original species in the event of VC transfers
2021-01-05 16:36:16 -08:00
Kurt
9d7c9929b4
Minor tweaks
...
should be it :( :(
2021-01-05 09:58:33 -08:00
Kurt
23b5aebe05
Update IndividualValueVerifier.cs
2021-01-05 09:56:19 -08:00
Kurt
70fe1847ac
sync missing changes
2021-01-05 09:51:32 -08:00
Kurt
373aecdf7c
Merge GO IV checks, behavior is now correct
...
Rename IV1/2/3 to HP/ATK/DEF in gp1 structure
2021-01-05 09:39:50 -08:00
Kurt
6fc8779aaa
Revert "Add vc shiny female gender ratio check"
...
This reverts commit d5a1283585
.
2021-01-04 17:31:56 -08:00