Ideally we'll have more support for custom ranks on side servers,
but for now you'll have to deal with & and ~ having the same label,
if you still use ~.
(Hover over the turn marker.)
Megas made hazards difficult to see, and gigantamaxes are making
weather difficult to see. This has been a constant problem which can
be fixed through careful changing of the graphics, but we'd probably
need something like this sooner or later anyway.
This also refactors the tooltip placement code, which was previously
a bit messy.
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.
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.
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.
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.