doshidak / showdex

Pokémon Showdown extension that harnesses the power of parabolic calculus to strategically extract your opponents' Elo.
GNU Affero General Public License v3.0
104 stars 18 forks source link

Integration of randbats tooltip info #117

Open ghost opened 1 year ago

ghost commented 1 year ago

Showdown provides randbats info, so the logical extension here would be to basically have a mode where that info and only that info needs to be considered. The tooltip extension does this, but obviously that info needs to be put into the calc manually, meaning there's room for better integration with that info. Currently (although correct me if I am wrong) we can sometimes see sets which the tooltip extension regards as invalid but showdex can show those moves in the calc anyway, despite there being absolutely zero chance they come into play.

ghost commented 1 year ago

Just a thought, since we know the sets ahead of time this could also probably lead to things like copying an opposing pokemon's stats to a ditto within the calc before it happens. Unless that is somehow already possible?

doshidak commented 1 year ago

Hiya!

Showdex pulls from the same data source that pre's Randbats tooltip extension pulls from. I'm assuming you're talking about Gen 9 Randoms, specifically its role system (Randoms for prior gens only have 1 possible set, but with pools).

If so, then what you're probably noticing is pre's extension auto-selecting the correct role for you based on the Pokémon's revealed info. At the moment, Showdex doesn't do that, but all possible roles are available in the Sets dropdown (note that not all Pokémon will have multiple roles).

Each role comes with probabilities (unless you turned off usage stats in the settings), so if a Pokémon has an ability/item/move without a percentage, then it's most likely the other role. You can simply switch the set to the correct role (no need to manually fill in that info yourself), as shown in the screenshot below.

showdex-gen9randoms-sets

For example, if the Dragapult Terastallizes and uses Tera Blast, then you won't see a percentage next to the move with its Fast Attacker set, indicating it cannot be that role.

showdex-gen9randoms-fast-attacker-role-moves

Switching the set to Tera Blast user will show you the correct move pool with a "100.00%" next to Tera Blast, so you'll know you've got the right role.

showdex-gen9randoms-tera-blast-user-role-moves

(Since Showdex & pre's Randbats tooltip can be used simultaneously, you can also cross reference the tooltip with Showdex to quickly determine if you should switch the set.)

We'll be adding the auto-role switcher in a future update (since there are more pressing things to fix atm), so this is the current workaround, unfortunately.

Hope that helps!


As for the Ditto, you can't manually Transform beforehand at the moment. The roles of the target Pokémon once transformed during a battle sync will be applied to the Ditto.

Unfortunately this isn't something I can do quickly for the upcoming patch without a bunch of testing. (Ditto has been the bane of my existence since we've released Showdex.) There are lots of bandaid fixes to account for the multitudes of edge cases just for Ditto (and any transforming Pokémon, for that matter), so allowing you to manually transform could break these.

Not a bad idea though, I'll add this to the list of planned features.

Thanks!

ghost commented 1 year ago

Hiya!

Showdex pulls from the same data source that pre's Randbats tooltip extension pulls from. I'm assuming you're talking about Gen 9 Randoms, specifically its role system (Randoms for prior gens only have 1 possible set, but with pools).

If so, then what you're probably noticing is pre's extension auto-selecting the correct role for you based on the Pokémon's revealed info. At the moment, Showdex doesn't do that, but all possible roles are available in the Sets dropdown (note that not all Pokémon will have multiple roles).

Each role comes with probabilities (unless you turned off usage stats in the settings), so if a Pokémon has an ability/item/move without a percentage, then it's most likely the other role. You can simply switch the set to the correct role (no need to manually fill in that info yourself), as shown in the screenshot below.

showdex-gen9randoms-sets

For example, if the Dragapult Terastallizes and uses Tera Blast, then you won't see a percentage next to the move with its Fast Attacker set, indicating it cannot be that role.

showdex-gen9randoms-fast-attacker-role-moves

Switching the set to Tera Blast user will show you the correct move pool with a "100.00%" next to Tera Blast, so you'll know you've got the right role.

showdex-gen9randoms-tera-blast-user-role-moves

(Since Showdex & pre's Randbats tooltip can be used simultaneously, you can also cross reference the tooltip with Showdex to quickly determine if you should switch the set.)

We'll be adding the auto-role switcher in a future update (since there are more pressing things to fix atm), so this is the current workaround, unfortunately.

Hope that helps!

As for the Ditto, you can't manually Transform beforehand at the moment. The roles of the target Pokémon once transformed during a battle sync will be applied to the Ditto.

Unfortunately this isn't something I can do quickly for the upcoming patch without a bunch of testing. (Ditto has been the bane of my existence since we've released Showdex.) There are lots of bandaid fixes to account for the multitudes of edge cases just for Ditto (and any transforming Pokémon, for that matter), so allowing you to manually transform could break these.

Not a bad idea though, I'll add this to the list of planned features.

Thanks!

Certain moves/abilities/items are always paired and it could probably match that when it realizes it sees one by filling in the rest. Like if you see moxie heracross and it doesn't burn itself with flame orb, you know it's not that randbats set and the extension could probably detect that

For that matter, the item could probably invalidate itself when it becomes clear it's not in play, though I understand this could be hard to code for every use case.

doshidak commented 1 year ago

Hey sorry about the late ass reply, I had no idea you replied!

We plan on doing something like that for the "Auto" sets feature in Gen 9 Randoms! (But not for other gens though, since Gen 9 is the only one with multi-role system.)

Also we plan on doing something similar for other formats like OU & Ubers, where if the item from the current set doesn't apply after a sync, we'll switch the set for you. So items like Flame Orb, Leftovers, Life Orb, etc. are fairly straightforward to detect & shouldn't cross the line into the "Calcdex playing for you so it's cheating" territory.

Don't think we'll be able to get the "Auto" sets feature out for v1.1.6, which is dropping real soon, but certainly in the version after! (We already wrote out the algorithm, so it just needs implementation & extensive testing, which we unfortunately might not have time to do the latter.)

I'll keep your issue open though until this is implemented.

Thanks!