The automatic server detection just loops through all registered
servers and tries each of them to find the correct one. This process
will hang if any registered server isn't responding to DNS queries,
which at the number we currently have, makes all servers not sending
serverid fail.
We now hard-require the Config.serverid setting, to prevent this
problem.
PS officially doesn't use this, but some bots used to read this
directly from GitHub, and building it is nontrivial, so this lets
bots read it from our webserver instead.
It's available at:
https://play.pokemonshowdown.com/data/formats.js
(And as usual, feel free to use HTTP if your language's HTTPS
implementation is hard to use.)
Quoting CSS tricks:
https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/
> Note that while we’re repeating code here, that’s necessary as you
> can’t comma-separate these type of selectors. Browsers will drop the
> entire selector if it doesn’t understand a part of it.
I really don't want to repeat my CSS three times, and Firefox's default
sliders don't look ugly, so we're just going to let Firefox use its
default sliders.
I'm annoyed that Firefox just takes `-webkit-appearance` without
also taking `-webkit-slider-thumb` etc, though. :/
(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.
SockJS-client _still_ isn't compatible with NW.js, leading to the
workaround we're currently using. The workaround breaks the
source-map, so there's been the source-map error unnecessarily
cluttering our consoles this entire time.
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