Gen 1: Improve status, stat, and volatiles handling
Burn attack drop is not negated the same way as speed.
It's just halving the attack stat and a boost with Swords Dance exactly negates it.
Use the same calculation as the cartridge for the probabilities for statuses and status damage:
The attack in burn is halved and floored, then if 0 put to 1.
The speed in paralyse is quartered, floored and then if 0 put to 1.
The chance to get fully paralyzed is if random 0-255 < 64.
The chance for confusion self hit is if random 0-255 >= 128.
If the Pokémon is fully paralysed or self-hits in confusion, most move volatiles are removed.
This changes also add the invulnerable bug for two-turn moves.
Gen 1: Hi Jump Kick recoil also hits your own Subtitute
Also call clampIntRange from Battle, not from BattlePokemon.
Also remove the damage message from confusion, only the message from Substitute must appear.