Add all Champions v1.0 learnsets#1532
Conversation
| @@ -1,4 +1,5 @@ | |||
| id,identifier | |||
| 0,null | |||
There was a problem hiding this comment.
I would say this is more of a move tutor situation. Plus, I don't think the API can handle IDs below 1. Making a local version of the database shows it assigns them to zygarde-cube instead.
There was a problem hiding this comment.
Yeah, I'd go with a new ID as well. Something like champions-swap, I don't know the best way to sum up this honestly.
There was a problem hiding this comment.
Ah, I see, the API is hardcoded to assume the IDs in pokemon_move_methods.csv directly correspond to a 1-indexed list. So adding a method of ID 0 actually causes every learn method to be offset by 1 (with index 0 wrapping around to the end of the list due to how Python handles index -1 of a list).
That seems like a bug to me. It would also break if any entry were to be deleted from pokemon_move_methods.csv while leaving the subsequent IDs unmodified (e.g. if 9,xd-purification was deleted so that it could be merged with 7,colosseum-purification). The same applies for version_groups.csv (but only those two, it seems). Unfortunately, I'm not familiar enough with the codebase to fix it.
However, I agree that in this case it makes the most sense to just add a new entry to the bottom of the list. Any change to that assumption would belong in a separate PR.
There was a problem hiding this comment.
Good catch, that's dangerous code. A separate PR is needed
There was a problem hiding this comment.
I've moved the Champions method to the end of the list (12).
I've called this new method "Train", reflecting that the corresponding menu in-game is called "Pokémon Training" (under the "Train" option from the main menu) or "Train Pokémon" (from the Box).
Do you mean that Mega Meowstic has a different learnset depending on if it's male or female? If so, we should make a pokemon resource for each of them and add the relevant move data to each. Otherwise, we should add the move data to the single Mega Meowstic. |
2dea40e to
58a7af4
Compare
Yes. Like all Mega-Evolved Pokémon, Mega Meowstic has the exact same learnset as its base form. But male and female Meowstic have different learnsets, so male and female Mega Meowstic also have different learnsets. Splitting Mega MeowsticI've updated In the documentation for Pokémon forms,
The documentation does actually note "Multiple forms may have equal order, in which case they should fall back on sorting by name", so theoretically it may actually not be necessary to insert a new distinct |
jemarq04
left a comment
There was a problem hiding this comment.
Thanks for the changes. As far as the comments you made, as long as it is in-line with what was done in the past that is good for now. We can always re-evaluate things down the line.
| 867,runerigus,,867,20,1,0,0,1,1254 | ||
| 868,milcery,,868,20,1,0,0,1,1255 | ||
| 869,alcremie-vanilla-cream-strawberry-sweet,vanilla-cream-strawberry-sweet,869,20,1,0,0,1,1256 | ||
| 870,falinks,,870,20,1,0,0,1,1319 |
There was a problem hiding this comment.
I really like your idea for the ordering a lot (maybe a new PR if you're up for it!), but for this PR we should choose one of two options:
- Set
meowstic-female-mega's order to the same asmeowstic-male-mega, as the documentation allows that. When I added these new megas I had missed that part of the documentation and that would've made my life much easier lol - Keep things as a single increment – throughout this file's changes it's a bit inconsistent. Here you can see it was changed from 1264 -> 1319.
There was a problem hiding this comment.
I'd go with number 2 compacting the IDs
There was a problem hiding this comment.
What I had done was open the CSV as a spreadsheet in LibreOffice Calc, sort by the order column, then filled down.
It looks like currently the Alcremie forms have distinct values for each Cream, but the same cream shares the same order value across Sweets. So alcremie-vanilla-cream-berry-sweet is 1255 and alcremie-ruby-cream-berry-sweet is 1256, but alcremie-vanilla-cream-love-sweet is also 1255.
Not really sure what the best option here is. My current change normalizes everything to be increments of 1 (although I hadn't actually noticed that wasn't already the case). Alternatively, I could keep the equivalence across Sweets for Alcremie forms, and just increment them all by 1 (so all of the Vanilla Creams would become 1256, all of the Ruby Creams would become 1257, etc.).
There was a problem hiding this comment.
Yes I think for this PR maybe we keep the existing ordering as-is and just increment existing values by 1. I think a re-do of these orderings is probably a good idea at some point, but that’s out of scope for this PR.
There was a problem hiding this comment.
While Alcremie was the main culprit, it looks like there are a bunch of other duplicated order values near the bottom of the list too. eternatus-eternamax and venusaur-gmax are both 1291, kubfu and charizard-gmax are both 1292, etc.
For this PR, I'll just increment each of those by 1 as well. Although those seem more broken than the Alcremie duplications.
Co-authored-by: Justin Marquez <37006684+jemarq04@users.noreply.github.com>
Co-authored-by: Justin Marquez <37006684+jemarq04@users.noreply.github.com>
|
@SnorlaxMonster Could you pull in the changes and change the |
|
Note that since I created this PR, Champions received the v1.1 update, which adds a bunch of new data to the game, including new Pokémon. I think it probably makes sense to keep this PR as just a v1.0 update, and I can do a v1.1 update in a subsequent PR after this is merged. |
|
Yes, that’s a great idea |
Change description
Add all Pokémon Champions learnsets (as of v1.0). Data from https://github.com/projectpokemon/champout/blob/main/masterdata/waza_learn.json
Champions is just a battle sim where you can freely swap moves around, so it doesn't really have a concept of "methods" for learning moves. My solution was to define the new
pokemon_move_method"null" at index 0. If it would be preferable to make this a new positive index number, or something else entirely, let me know and I can swap it over.Notes:
pokemon_idvalues for these forms, so I've had to condense these into single entries per Pokémon, but that doesn't make any functional difference.pokemon_idfor Mega Meowstic. Since there's no good way to mark this, I've simply not included any moves for Mega Meowstic at all.AI coding assistance disclosure
No AI was used in the creation of this PR.
Contributor check list