Kurt
7654ce2123
Add initial legality checks for GO->HOME transfers
...
took me less than an hour to do these changes, and i can flag bad form movesets no problemo
Expect tightening of restrictions (ball, level, shininess) later
if someone wants to curate met date restrictions, go ahead!
2020-11-10 22:10:53 -08:00
Kurt
51c872f4e1
Move more logic closer to where it's used
2020-11-02 14:46:26 -08:00
Kurt
7cb6ee0060
Move some static arrays closer to where they're used
...
Split EvolutionRestrictions to its own class
Can probably refine things further to clamp down access to these arrays
2020-11-02 13:11:51 -08:00
Kurt
6616996905
Relocate N OT logic
...
Make Legal.cs not care about encounter data :)
2020-10-06 20:09:14 -07:00
Kurt
fe7a4df17e
Clean out some gb era version flagging
2020-10-06 20:05:38 -07:00
Kurt
e125424423
Refine zygarde encounter form checking logic
...
Closes #2984
ty atrius & matt via discord
Co-Authored-By: Atrius97 <39707481+Atrius97@users.noreply.github.com>
Co-Authored-By: Matt <17801814+sora10pls@users.noreply.github.com>
2020-09-13 15:45:15 -07:00
Kurt
a62324a5a1
Refactoring some IEncounterable-type'd object initialization and original-generation evo chain ( #2974 )
2020-08-21 16:35:49 -07:00
Kurt
12d9397c8c
Split GO from "GG" gameversion
...
Make Gen7b as the combined ver for that expression
2020-08-06 18:24:20 -07:00
Kurt
2b4e2a8fa1
Update Core.cs
2020-08-05 10:57:07 -07:00
Kurt
ad6728fb5c
Minor tweaks
...
Check egg encounter for state rather than re-deriving some properties on the fly
Only check memories if memories are exposed
Remove debug assert (not always true?)
2020-08-04 22:56:55 -07:00
Kurt
e4092e64df
Relocate gen3 ereader berry logic
2020-07-18 22:51:55 -05:00
Kurt
acd97c6287
Pass evolution chain for generation memory check
...
chain details are already computed; pass them in
2020-07-18 21:57:15 -05:00
Kurt
35435b539e
Refactoring
...
move some logic around
2020-07-18 21:51:38 -05:00
Kurt
0f38478878
Fix gen2 evolution-egg test case
2020-07-18 13:06:14 -05:00
Kurt
e04b96a9b3
Fix dizzy punch egg recognition & gen2 hatch conter verification
...
Closes #2939
Fixes #2938
Inline some logic where appropriate for egg levels
2020-07-12 20:58:07 -05:00
Kurt
3138fb20c6
Refactor some method signatures
...
vs -> chain (clarity on what it is; an evolution chain, rather than e.v.o.s - vs)
Clamp origin chain for transferred where we can use the max origin level
2020-06-27 22:18:29 -05:00
Kurt
5f58250b17
Pass species param to exists-in check
...
Closes #2905
2020-06-27 14:04:28 -05:00
Kurt
16cf59c851
Add an evolved formchange case for lycanroc
...
things shouldn't be this way, but encounterstatic doesn't currently accept a SpeciesForm evolution link in the matching function, so we can't know when the form changed legally.
Encounter Slots do it fine for the most part... might need to refactor the matching API so that it behaves a little smarter
Closes #2912
2020-06-27 11:44:56 -05:00
Kurt
6fb2ebe039
Minor clean
...
add some xmldoc
2020-06-21 19:46:06 -05:00
Kurt
645db23706
Extract EvoBase and MoveList from Core
...
These are really old bloated parts of the original legality checking logic; separating for now to rewrite.
2020-06-20 19:44:05 -05:00
Kurt
c36c233e1d
Fix galarian slowbro form compare
...
Really should be doing this with evo chain compares rather than edge cases, but whatever
2020-06-20 13:38:12 -05:00
Kurt
3fcb29e68a
Remove some reliance on GenNumber
2020-05-31 12:12:48 -07:00
Kurt
0edbef8ba4
Add more HA banlist
...
definitely more
2020-04-24 08:24:12 -07:00
Kurt
913d2773bf
Pass form when form doesn't match encounter
...
This is still a horrible hack, needs to be done similar to encounter slots
handle the galar NFE formchange cases
2020-04-23 20:53:57 -07:00
Kurt
aaf6642d31
Rename Data -> BinLinker
2020-03-20 15:18:59 -07:00
Kurt
509e2f1fa3
Handle more evolution/form checks
...
Closes #2726
1. Add variant evolutions to form-match cases
2. Ban LGPE origin alolan raichu
3. Add egg form check for unavailable regional forms
4. Previous commit fixed mew (remove ribbon interface from WB7)
Co-Authored-By: Matt <sora10pls@users.noreply.github.com>
2020-02-20 22:11:48 -08:00
Kurt
75d8635580
Fix lgpe moveset restriction
...
Closes #2704
Co-Authored-By: BetaLeaf <betaleaf@gmail.com>
2020-02-12 20:25:39 -08:00
Kurt
867f62c555
Check multi lang stadium OTs
...
Closes #2671
really wish the gen1-3 event data was serialized ;)
2020-02-03 20:10:07 -08:00
Kurt
dd07126d83
Relocate level suggestions to EncounterSuggestion
2020-01-28 16:21:38 -08:00
Kurt
bd9ec72d98
Misc tweaks
...
Add more direct legality analysis constructors
evo count is >= 1
fix invalid test message
disallow gen2 moves if transferred from gen1
use ^1 instead of len-1 for netcore test project
2020-01-16 23:22:54 -08:00
Kurt
c739af4767
Extract item restrictions to separate class
...
Move similar classes to folder
2020-01-16 19:27:29 -08:00
Kurt
48fd36a9a2
Handle g4 shedinja learn case too
...
change 291/292 to Shedinja/Ninjask for easy enum reference check
2020-01-12 14:34:29 -08:00
Kurt
61ecb52347
Remove unnecessary allocation
2020-01-12 12:06:33 -08:00
Kurt
82eaf39d45
Remove method alias for init mysterygift db
2020-01-12 11:41:23 -08:00
Kurt
9ed441885a
Remove manual personal info fix
...
Change FDDC from 47 -> 41
SM is 40, as the tutor isn't possible in that game.
2020-01-12 11:39:43 -08:00
Kurt
0dd4d1fe7a
Remove unnecessary casts
2020-01-06 17:50:18 -08:00
Kurt
8493471793
Add alcremie form change case
2019-12-28 18:59:00 -08:00
Kurt
8acb336d51
Use enum for species comparisons
...
slightly easier to read with named values
2019-12-08 17:39:19 -08:00
Kurt
19b1564eb2
Split history and memory verifiers
...
Rewrite a bunch of the history verification stuff
Fix a few test cases with incorrect OT Friendship (transferred), and
missing GeoCountry
Need to rewrite memory verification next
(All test cases currently pass)
#2545
2019-12-07 18:12:31 -08:00
Kurt
861d7b6014
Remove unnecessary parameters for species fetch
...
#2567
2019-12-07 00:00:49 -08:00
Kurt
f7620908df
dummy out empty evo species
2019-12-06 17:21:38 -08:00
Kurt
eac3804c7b
Clean up dexlevel/evocriteria constructor usage
...
DexLevel was the initial abstraction, which was expanded/reused for
evolution details
I should probably merge the two classes since everything is passed as
EvoCriteria
The encounter generators do some silly form fuzzy match which can now be
more accurately checked since I've moved Form to DexLevel... maybe a
future commit can clean that up.
encounterarea2 was reusing this class, just use a throwaway readonly
struct as our temp value storage
2019-12-05 23:04:24 -08:00
Kurt
aeb3ee6cec
Fix shedinja evo chain logic
...
#2416
2019-11-24 09:49:54 -08:00
Kurt
113d16fa5d
Fix darumaka->darmanitan blizzard move
...
#2416
Looks like the only issues left are:
Shedinja
Crossover/Bleed locations
Static Encounter locations
2019-11-23 22:48:02 -08:00
Kurt
f88388cb70
Add Form (AltForm) to IEncounterable interface
...
All of the encounterable templates have Form anyway; funny that I was
consistent naming them all differently than pkm.AltForm :)
Closes #2452
2019-11-18 22:20:55 -08:00
Kurt
1df90199e3
Rework GetBaseSpecies to return EvoCriteria
...
#2452
2019-11-18 20:26:11 -08:00
Kurt
5a4c026dc7
Restrict egg related species fetch to EvoCriteria
...
#2452
2019-11-18 20:10:39 -08:00
Kurt
38abafab99
Catch some evolution edge cases
2019-11-17 22:04:41 -08:00
Kurt
cefb56a749
Sword/Shield Update
2019-11-15 17:52:08 -08:00
Kurt
c3a6fd2a64
Handle bad gennumber indexes
...
Maybe returning 0 for "bad gen" will prevent bad array indexing...
2019-10-18 20:50:38 -07:00