Commit graph

168 commits

Author SHA1 Message Date
Kurt
721d489402 Fix TM indexes (oops)
I guess none of us really tested TMs to notice

Closes #3293
2021-11-19 23:31:02 -08:00
Kurt
723514e89c
Update 21.11.19 - Brilliant Diamond & Shining Pearl (#3289)
Big thanks to @SciresM @sora10pls @Lusamine @architdate @ReignOfComputer for testing and contributing code / test cases. Can't add co-authors from the PR menu :(

Builds will fail because azure pipelines not yet updated with net6.
2021-11-19 18:23:49 -08:00
Kurt
2ed8056ea4 Trailing commas 2021-10-08 12:42:32 -07:00
sora10pls
ffdd950a71 Disallow all Dynamax Crystals as held items
They cannot be given to a Pokémon to hold in-game. Also label new Pikachu/Eevee Dynamax Crystals.

Co-Authored-By: Lusamine <30205550+Lusamine@users.noreply.github.com>
2021-09-16 20:15:22 -04:00
Kurt
c3051b3002 Fix special beam move order
Differs from gen4 which has frenzy plant last
2021-09-16 12:50:55 -07:00
Kurt
2874f6fc69 Revise pichu volt tackle egg handling
Clean up ParseMovesWasEggPreRelearn as only EncounterEgg call into it, and no EncounterEgg has a special moves interface implemented.
2021-09-15 18:43:18 -07:00
Kurt
80d1712b72 Mark stuff with enums, remove unused arrays
Fix shuffled comments for FormInfo
Remove unnecessary Reset on ctor, all fields are already the default
2021-09-07 20:57:19 -07:00
Kurt
adb7466a22 More memory legality additions
probably worthwhile to move the checks into the context, and return an enum -> switch to generate checkresult
2021-08-29 15:56:09 -07:00
Kurt
c65fda5e7d Allow HM moves in gen2-4 eggs
Yay silly inheritance
ty atrius
2021-08-28 13:54:58 -07:00
Kurt
bedc52943e Trailing commas
No functional change
2021-08-20 13:49:20 -07:00
Kurt
9f249ef4d6 Add bounds check for API purposes
chris doing things funkily, might as well range check ourselves before blindly accessing the array

Use a const value for vivillon max wild form value
2021-08-19 18:59:24 -07:00
Kurt
24e77e7382 Handle form changing for move memories
Doesn't invalidate any of the statements made today.

ty @Lusamine for identifying these cases.
2021-08-14 20:20:13 -07:00
Kurt
edcf3a9bd6 Remove duplicate no-item for gen6 held item list 2021-08-05 18:54:08 -07:00
Kurt
7c697a519e Make EncounterArea parent reference protected, expose properties 2021-07-30 14:05:23 -07:00
Kurt
c9640f8561 Comments: forme->form 2021-07-26 14:14:39 -07:00
Kurt
3e7775fc44
Track a PKM's Box,Slot,StorageFlags,Identifier metadata separately (#3222)
* Track a PKM's Box,Slot,StorageFlags,Identifier metadata separately

Don't store within the object, track the slot origin data separately.

Batch editing now pre-filters if using Box/Slot/Identifier logic; split up mods/filters as they're starting to get pretty hefty.

- Requesting a Box Data report now shows all slots in the save file (party, misc)
- Can now exclude backup saves from database search via toggle (separate from settings preventing load entirely)
- Replace some linq usages with direct code

* Remove WasLink virtual in PKM

Inline any logic, since we now have encounter objects to indicate matching, rather than the proto-legality logic checking properties of a PKM.

* Use Fateful to directly check gen5 mysterygift origins

No other encounter types in gen5 apply Fateful

* Simplify double ball comparison

Used to be separate for deferral cases, now no longer needed to be separate.

* Grab move/relearn reference and update locally

Fix relearn move identifier

* Inline defog HM transfer preference check

HasMove is faster than getting moves & checking contains. Skips allocation by setting values directly.

* Extract more met location metadata checks: WasBredEgg

* Replace Console.Write* with Debug.Write*

There's no console output UI, so don't include them in release builds.

* Inline WasGiftEgg, WasEvent, and WasEventEgg logic

Adios legality tags that aren't entirely correct for the specific format. Just put the computations in EncounterFinder.
2021-06-22 20:23:48 -07:00
Kurt
87ac1cbcc9 Unban Sgr7348 encounter 2021-06-18 22:07:27 -07:00
Kurt
a07549f013 Extract sketch valid check
GetCanKnowMove should be checking for Smeargle knowing thousand arrows/waves.
GetNeededMoves should also return 1ka/1kw for needed moves, and then no encounters.

All uses of InvalidSketch are behind that method, so any future Smeargle modifications (like sketching a dummied move) will be checked (yay BDSP considerations).
2021-06-06 23:36:59 -07:00
Kurt
138501da2f Minor clean
Condense some expressions
Use less linq
Rename some fields
2021-05-29 15:31:47 -07:00
Kurt
07584a8774 Add chateau score, seaside cycle score
Update some other areas too
looks like this fixes the sube pkx fetch method for extraslots, yay.
2021-05-13 23:12:53 -07:00
Kurt
f35a3ce03c Add overload for Totem check, simplify some flow 2021-04-17 13:24:57 -07:00
Kurt
b289c12918 Update Locations.cs 2021-04-12 15:43:21 -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
sora10pls
08ecac8cb3 Update upcoming Dynamax Crystal encounters 2021-03-02 11:21:56 -05: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
31245d0e37 Add mythical table, allow non-mythical legends in latest ruleset (master ribbon) 2021-02-16 21:42:36 -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
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
511797c1f9 Fix gen4 hm indexing 2021-01-25 20:58:56 -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
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
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
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
1f3d3112d3 Move some future-evolution tables to separate class 2021-01-02 19:11:46 -08:00
Kurt
c432a15a20 Relocate some tables to a location closer to where they're used 2021-01-02 00:46:09 -08:00
Kurt
09089da14e Use more expression return style
Reduces indentation & bracketing, a bit more concise
2021-01-01 17:08:49 -08:00
Kurt
04f8efec4f Move more breeding logic to Breeding
Simplify some method signatures, reduce checks for MoveEgg.GetEggMoves

ran legality checks for 100,000 pkm, no more exceptions (Internal Error) -- added a "CanGameGenerateEggs" which filters out unused gameIDs
2021-01-01 15:01:22 -08:00
Kurt
ef51f53e9a Flag battle-only minior forms 2020-12-30 15:03:55 -08:00
Kurt
c119f18af3 spec->species 2020-12-28 22:22:52 -08:00
Kurt
ee5349ff98 moar is or 2020-12-25 12:30:26 -08:00
Kurt
98be0f6739 Target type'd new 2020-12-21 17:17:56 -08:00
Kurt
62018cce1a Unify concepts with different names
AltForm & Form & Forme => Form
GenNumber & Generation => Generation

Extract out SpeciesForm interface, and re-add IGeneration

For those using PKHeX as a dependency, this should be a pretty straightforward manual replacement... GenNumber and AltForm should be quick find-replace`s.
2020-12-10 20:42:30 -08:00
Kurt
ebc1cec3da Extract breeding info to separate class
Remove splitbreed check in encounteregg2 generator; gen is always 2, never >=3, so the splitbreed check is never executed
2020-12-07 20:54:55 -08:00
Kurt
9b178fefe2 Xmldoc, minor tweaks
Move form-info logic from FormConverter to AltFormInfo; now FormConverter is entirely form=>string[]
Add a bunch of xmldoc
Make pogo no-end-date cmp agaisnt UTCnow rather than local now.
2020-11-27 11:51:02 -08:00
Kurt
0af0c05bac Update go slot list yield and move fetch 2020-11-18 21:34:40 -08:00
Kurt
01c597cba7 GO checks round 2 2020-11-12 20:41:01 -08:00
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