/query command no longer returns IP addresses
Gen 1: Implement correct Psywave damage calculation
In gen 1, it generates a random number from 0 to 255 until the number is higher than 0 and less than level + floor(level / 2) and then returns it.
Gen 1: Update readme
Gen 1: Implement burn attack dropping and its bugs properly
Attack is calculated with burn upon switch in and stored.
Attack drop is thus not restored with Rest.
Attack drop is restored with an attack debuff, removed with attack buff.
Gen 1: Floor all divisions
Gen 2: Remove unnecessary code
Gens 1 and 2: Proper stat reduction calculation
This is huge since there's a change in -1 Snorlax's speed that is relevant to Gen 2.

See:
http://www.smogon.com/forums/threads/stat-reduction-bug.3520407/
https://github.com/iimarckus/pokered/blob/master/engine/battle/core.asm#L7856
https://github.com/kanzure/pokecrystal/blob/master/battle/effect_commands.asm#L6608
Gen 1: Implement paralyse speed drop properly
Gens 1 and 2: Implement Psywave properly using less resources
Instead of doing the same as the cartridge does for Psywave damage, we hardocde the random possibility with a min and a max.
Private Room refactor - Distinguish hidden and secret rooms

Seperated /privateroom command into /privateroom and /hiddenroom. In
hidden rooms, mostly set by battle players, global staff maintain their
ranks within the room, but the rank is not kept in secret/private rooms
(only set by users who can create chat rooms).

Created command /whoare to allow global staff to see the hidden rooms a
user is in.
Add event Linoone
Gen 2: Refactor stat and damage calculation
Gen 2: Fix AfterMoveSelf events

Leech seed, etc., must be activated just after the Pokémon moves and even if asleep or FP.
Gen 2: Fix Baton Pass mons getting damaged by psn / leech seed

AfterMoveSelf does not happen if the move used was Baton Pass.
Fix travis error build from ef8f83973596a1b74612aa7ea5ef7b6042040cbb
Gen 2: Implement critical hit mechanics
Gen 2 is out of beta

The generation has no critical bugs at all.
Put Gen 2 SleepPerishTrap ban in its Standard ruling
Update Inverse Battle bans
Gen 2: Proper interaction of critical hits and burn

Normal damage is calculated with boosts, screens, and burn.
If a critical hit happens, then:
Stat level modifications are ignored if they are neutral to or favour the defender.
Reflect and Light Screen defensive boosts are only ignored if stat level modifications were also ignored as a result thereof.
If the attacker is burned, stat level modifications are always ignored.
The attack drop from the burn is only applied when attacker's attack level is higher than defender's defense level (boost).

Therefor:
A critical hit will ignore defensive and offensive buffs/debuffs if the attacker and the defender have the same boost level or the defender has higher boost.
The boosts will be ignored if the attacker is burned, but if the attacker has more boost than the defender, burn reduction still applies.
Burn reduction won't apply on the first case, buffs being the same or defender having more.