GregLyons / poke-team

TypeScript-React app for designing competitive Pokemon teams.
https://billspc.dev
4 stars 0 forks source link

Zacian-Crowned Moveset Incorrect #1

Closed sdeiley closed 2 years ago

sdeiley commented 2 years ago

In Builder->Team, if you select Zacian-Crowned, the only learned moves shown are

There’s probably some copying w/ DB data needed to ensure that Zacian-Crowned is applied all moves from Zacian. I didn’t verify with other mons that may have these kinds of edge cases, such as Zamazenta, Giratina, Kyruem, Calyrex-Shadow, etc. AF17E101-619A-44B5-A840-961159BEA735

GregLyons commented 2 years ago

Your suspicion is correct. The underlying database starts from the Smogon learnset data here and merges together some learnsets (Gen 2 and BD/SP) from the mods there to get a complete dataset. Some of the Pokemon in that set have "missing" learnsets (e.g. deoxysspeed), presumably because Pokemon Showdown has some other algorithm for adding the learnset data for Deoxys Speed.

What happened was this: I was aware of this issue, so I checked for Pokemon whose learnsets in the PS data were empty, and in that case I would add the learnsets (e.g. deoxys to deoxysspeed) when appropriate. What I didn't anticipate, however, was the case in which a Pokemon form gains a new move, like Zacian Crowned gaining Behemoth Blade. In the PS data, you'll see that the entry for zaciancrowned just has Behemoth Blade. So my check missed these cases, since it was checking for empty learnsets. The Rotom forms were also affected by this, as were some others.

For some reason, Calyrex Shadow does have full learnset data in the PS dataset, even though he gains a signature move but otherwise shares moves with Calyrex. Maybe because he also shares moves with Glastrier? I checked for learnset move counts below a certain threshold (10) and excluded obvious cases like Ditto (this is what flagged Rotom forms), so this should be fixed now. Here are some screenshots from the site now with there moves filled in:

zacian_moves rotom_moves

Given Zacian's prominence in AG, as several other Pokemon being affected, I figured it's best to update this now instead of waiting to batch it with other data errors.

Thanks for finding the bug!

GregLyons commented 2 years ago

I've re-opened this issue because I re-read what you said more closely. I was so focused on fixing the issue with the missing moves that I glossed over the part where it's impossible for Zacian/Zamazenta and their crowned forms to learn/use max moves. I wasn't even aware of this, as I haven't played Sword/Shield yet (and I only watch battles nowadays; I haven't played Gen 8 PokemonShowdown) so I've never used them before/heard anyone bring it up until now. The logic I was using for Max Moves was that if a Pokemon learned a base move of the given type, then they could learn the corresponding Max Move (taking into account G-Max moves and the fact that the base moves need to be damaging to not just be Max Guard). So this would be why the two legendary dogs/wolves have the Max moves by mistake.

It seems that Zacian, Zamazenta, and Eternatus can't Dynamax, but Eternatus can still use Max Moves, so only Zacian and Zamazenta should be affected by this. I'll need a bit more time to investigate further, fix the issue, and re-apply the update, but I should be able to have it by tonight or tomorrow.

In the meantime, you should be able to add whatever moves you need to Crowned Zacian/Crowned Zamazenta, so I hope this suffices in the meantime. Sorry for misreading your Issue the first go-around.

sdeiley commented 2 years ago

Actually the Eternatus max moves are not usable in game, they're only programmed in for a boss battle :) definitely makes sense you didn't know this w/o playing the game tho!


From: GregLyons @.> Sent: Monday, April 11, 2022 8:14:55 AM To: GregLyons/poke-team @.> Cc: Shane Deiley @.>; Author @.> Subject: Re: [GregLyons/poke-team] Zacian-Crowned Moveset Incorrect (Issue #1)

I've re-opened this issue because I re-read what you said more closely. I was so focused on fixing the issue with the missing moves that I glossed over the part where it's impossible for Zacian/Zamazenta and their crowned forms to learn/use max moves. I wasn't even aware of this, as I haven't played Sword/Shield yet (and I only watch battles nowadays; I haven't played Gen 8 PokemonShowdown) so I've never used them before/heard anyone bring it up until now. The logic I was using for Max Moves was that if a Pokemon learned a base move of the given type, then they could learn the corresponding Max Move (taking into account G-Max moves and the fact that the base moves need to be damaging to not just be Max Guard). So this would be why the two legendary dogs/wolves have the Max moves by mistake.

It seems that Zacian, Zamazenta, and Eternatus can't Dynamax, but Eternatus can still use Max Moves, so only Zacian and Zamazenta should be affected by this. I'll need a bit more time to investigate further, fix the issue, and re-apply the update, but I should be able to have it by tonight or tomorrow.

In the meantime, you should be able to add whatever moves you need to Crowned Zacian/Crowned Zamazenta, so I hope this suffices in the meantime. Sorry for misreading your Issue the first go-around.

— Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FGregLyons%2Fpoke-team%2Fissues%2F1%23issuecomment-1095181052&data=04%7C01%7C%7C6dbd70ac8b804e2aebe908da1bce09b0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637852868999884278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=5hZQsu3XPhK%2Fs%2FbKZI7CdWMkfapR%2BKv2gxwJ%2B%2BUldmI%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABQBFRSOXSNXJ7SFYW7KBMDVEQ6W7ANCNFSM5TBPVG4A&data=04%7C01%7C%7C6dbd70ac8b804e2aebe908da1bce09b0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637852868999884278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=UI%2F61HkxRMAG2HX%2FDfygJpaQyPReOefDt1p4yI0OOZE%3D&reserved=0. You are receiving this because you authored the thread.Message ID: @.***>

sdeiley commented 2 years ago

Another thing to note: VGC may not be super popular in Smogon but it has a massive player base on PS. Bigger thing DOU for sure. In VGC, we often play restricted formats so Zacian is actually the #1 most used mon in Pokémons official competitive video game metagame. It might be worth adding (but also more work because the series change often) to the format filter, but even if not that would motivate the relevance of otherwise low usage PS mons


From: Shane Deiley @.> Sent: Monday, April 11, 2022 8:24:13 AM To: GregLyons/poke-team @.>; GregLyons/poke-team @.> Cc: Author @.> Subject: Re: [GregLyons/poke-team] Zacian-Crowned Moveset Incorrect (Issue #1)

Actually the Eternatus max moves are not usable in game, they're only programmed in for a boss battle :) definitely makes sense you didn't know this w/o playing the game tho!


From: GregLyons @.> Sent: Monday, April 11, 2022 8:14:55 AM To: GregLyons/poke-team @.> Cc: Shane Deiley @.>; Author @.> Subject: Re: [GregLyons/poke-team] Zacian-Crowned Moveset Incorrect (Issue #1)

I've re-opened this issue because I re-read what you said more closely. I was so focused on fixing the issue with the missing moves that I glossed over the part where it's impossible for Zacian/Zamazenta and their crowned forms to learn/use max moves. I wasn't even aware of this, as I haven't played Sword/Shield yet (and I only watch battles nowadays; I haven't played Gen 8 PokemonShowdown) so I've never used them before/heard anyone bring it up until now. The logic I was using for Max Moves was that if a Pokemon learned a base move of the given type, then they could learn the corresponding Max Move (taking into account G-Max moves and the fact that the base moves need to be damaging to not just be Max Guard). So this would be why the two legendary dogs/wolves have the Max moves by mistake.

It seems that Zacian, Zamazenta, and Eternatus can't Dynamax, but Eternatus can still use Max Moves, so only Zacian and Zamazenta should be affected by this. I'll need a bit more time to investigate further, fix the issue, and re-apply the update, but I should be able to have it by tonight or tomorrow.

In the meantime, you should be able to add whatever moves you need to Crowned Zacian/Crowned Zamazenta, so I hope this suffices in the meantime. Sorry for misreading your Issue the first go-around.

— Reply to this email directly, view it on GitHubhttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FGregLyons%2Fpoke-team%2Fissues%2F1%23issuecomment-1095181052&data=04%7C01%7C%7C6dbd70ac8b804e2aebe908da1bce09b0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637852868999884278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=5hZQsu3XPhK%2Fs%2FbKZI7CdWMkfapR%2BKv2gxwJ%2B%2BUldmI%3D&reserved=0, or unsubscribehttps://nam12.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FABQBFRSOXSNXJ7SFYW7KBMDVEQ6W7ANCNFSM5TBPVG4A&data=04%7C01%7C%7C6dbd70ac8b804e2aebe908da1bce09b0%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C637852868999884278%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000&sdata=UI%2F61HkxRMAG2HX%2FDfygJpaQyPReOefDt1p4yI0OOZE%3D&reserved=0. You are receiving this because you authored the thread.Message ID: @.***>

GregLyons commented 2 years ago

Hahaha this is why I need users who play/keep up with the games and PS regularly to weigh in 😉

I'm testing the website now and it looks like Both Zacian/Zamazenta forms, as well as Eternatus, have had their max moves removed (example with Zacian Crowned below).

no_max

I think now it's safe to close this issue.

As for the VGC suggestion, I moved any potential discussion for that that to a Discussion thread (#2 ), as I just learned about that GitHub feature. I do believe both the points you bring up about VGC are good ones. Currently I think that's a bit too complicated for me to implement/maintain at this time, but I gave my thoughts on why that is/how one could go about implementing it in that thread.