Viable moves no longer use the `isViable` flag. Instead, we start by
assuming moves with 75+ base power are not useless (and others are
useless), and manually list exceptions in the relevant dexsearch
function.
In general, the move viability system has been a bit too specific. I
don't want to hardcode species because it's nearly always also
hardcoding specific metagames. It may help to think of it as "would
this move be useful in any metagame ever?" rather than "would it be
useful in the current metagame".
We instead use a significantly lower bar of "not useless", although
this hasn't been made clear until now. The word "viable" is now
banished from the codebase as well as the teambuilder's actual text,
which may also help.
Select changes:
- doubles moves now have separate viability lists
- Rock Tomb
- it's good on Groudon for reasons that don't seem Groudon-specific,
and is also good with Technician and in Doubles, so we'll default
to yes
- Belly Drum
- viable with priority, high speed, or Trick Room: too many
conditions, so we'll default to yes
- Reflect Type
- viable on Latias and Starmie for reasons that aren't specific to
them, we'll default to yes
- Transform
- required on Ditto, useful in Doubles: default to yes
- Fake Out
- no longer viable if you have Sheer Force, should hopefully make
people choose it less
- Nature's Madness, Super Fang
- viable in Doubles, has uses in Singles: default to yes
- Dragon Darts, Sparkling Aria
- mistakenly categorized as unviable; fixed
The teambuilder expects species.cosmeticFormes to be available on all
cosmetic formes. This may or may not need to be changed, but for now
this seems like the simplest approach.
This will prevent us from needing to maintain two search engines in
the future.
The new DexSearch doesn't have too much in the way of new features so
far, but it does show filtered things in categories, and list illegal
results in-filter even after sorting.
These are really minor differences, though; the main thing is just that
its architecture should make it much easier to maintain, and in
particular, to add more filters.
Replays don't load BattleAliases but they do load BattlePokedex, making
the old BattleBaseSpeciesChart unnecessary. In its place, a new chart,
specifically for cosmetic formes!
It looks like TypeScript recently updated jQuery definitions from
`HTMLElement` to `Element`. There's probably a better long-term
solution, but for now, suffice to say these assertions are safe because
we don't use any non-HTML elements.
- apply same "You are disconnected and cannot chat" message to battles upon disconnecting from a server. Just a tiny pet peeve when testing code on localhost.
Similar to styles/STYLING.html and styles/hpbartest.html, test pages
prove to be more robust and convenient for testing than the unit
tests (which are already broken).
These pages are primarily intended to help with delivering #1369,
but can be used to test improvements to sprites across the board.
There are people who didn't know Meloetta was PS's mascot! They clearly
needs to be more noticeable. And now they definitely will be.
We're now using the full Gen 5 sprite instead of the minisprite,
overlapping with the buttons, and animated on hover. This might be a
bit over-the-top, but oh well, it's only on hover.
To support running Smogtours on HTTPS, we now support non-443 ports.
We also now set SameSite=None headers for the SID cookie, so it's once
again possible to stay logged in on servers other than Main.
This is probably about as much as I'll implement for now. We'll need to
deprecate the old client before we can implement any major reforms to
the formats list design.