po-devs/pokemon-online — pull request #1178 by Fuzzysqurl (2014-06-21 05:29:47+00:00)
Title: Beat up Fixes

Fixes the damage issue. I had to hand calculate Beat Up's damage, but I got it working. This fixes that one really old GSC Beat Up bug that Crystal_ brought up.
GSC Beat Up also ends when it breaks a Sub, so I added that in too.

Also fixes another issue with beat up (Saving the merge conflict for ya)

From https://github.com/po-devs/pokemon-online/pull/1174
~~~~
I'm not exactly sure why this works, but it does. It was like my 70th attempt at fixing this, spent almost an hour working on it before I realized there were 2 different status checks.

The bug was as follows:
At first glance: Beat Up hits X times, where X is the number of Pokemon you have in your party that aren't afflicted with a status. However, the user of Beat Up always contributes, regardless of status. So Beat Up is essentially 1 + Y (where Y = X -1, and it represents the same thing X did). The User of Beat Up ignores the status check.

Jargon from UPC: number of pokemons except user itself in your team that does not have a non-volatile status + 1

I tested in Singles, Doubles, and Triples, and it always produced the correct amount of hits.