If `loglobby` is enabled in the config file, lobby logs are written
to logs/lobby/yyyy-mm/yyyy-mm-dd.txt. Lobby logs are kept in their own
subdirectory of the 'logs' directory in order to avoid a namespace
clash with a format named 'logs', and also because there are many
reasons why one might want to copy the battle logs without copying
the lobby logs.
This was previously done in its own block, presumably because the
`formatListText` and `curSection` variables are not used outside
of the block. However, a block does not introduce a new variable
scope in JavaScript, so it makes more sense to use a function.
- A previous change to Illusion + Mold Breaker interaction broke some UI
for tracking Illusion status.
- This changes Illusion again, to have its clearing be hardcoded... which
isn't a big deal, because most of the rest is hardcoded anyway.
- This also fixes a minor animation bug so Illusion clears before taking
damage, not after
- We introduce a new source type: C
- C sources aren't valid direct sources for moves, but they're valid when
looking for breeding targets
- basically, they're a workaround to avoid a complicated chainbreeding
algorithm
- instead of a free pass, level-up moves from a level higher than the
current level is checked as an egg move
(other ways of learning a level-up move are still available)
- pokemon can only learn level-up moves before their current level
if they can breed
- gen 3 pomeg glitch implemented
- gen 3 pomeg glitch (and any other gen 3 trick) disallowed for gen 4
abilities on pokemon that haven't evolved
As of Zarel/Pokemon-Showdown-Client@5950a2dbbd, the client will no
longer run arbitrary JavaScript or `style` tags received from the
server. This commit makes various changes in response to this:
- Various chat commands now send `class` attributes rather than
`style` attributes.
- The /redirect command is removed.
- The /banredirect command is removed.
The call to setuid() was previously after the simulator and verifier
processes were spawned, so both those processes always ran as the user
who started the process (which would have been `root` if the setuid
feature was being used), rather than the setuid user. In particular,
this meant that the >>> battle dev console could be used to execute
arbitrary code as root (if the server was started as root).
This commit makes the setuid() feature work as advertised, but it
still should not be used for the reasons given in config-example.js.
Instead of using setuid, start the server as an unprivileged user and
use port forwarding (e.g. iptables ) to use the port(s) you prefer.
With the advent of challenge-response authentication, the `tokenhosts`
feature is no longer necessary. It can still be used for slightly
increased security, but since it makes it harder for users to get
the server up and running, it is now disabled by default.
- Drain Punch is restored
- Focus Blast is nerfed for everyone except Infernape (use HP Fighting)
- Shadow Ball is buffed to compensate
- Also Mismagius and Gengar get Cursed Body
- Which now works like Aftermath but with Curse instead of damage
- Also Dizzy Punch gets a buff