- tone down on pixels - it's really getting out of hand now; 4% leftovers recovery & 7% life orb recoil, etc. One of my teammates just lost a match, because the opponent's Pokemon didn't die from LO recoil when it only had 8% left.
I noticed this in a few matches today!!! And had no idea what was going on. A Yanmega I was against didn't properly take LO recoil and one of my many Lefties holders had the 4% healing. Really weird...
The point is that it emulates cartridge mechanics. If you're playing on random Wi-Fi, in a VGC regional or whatever on an actual DS and game cart, all you see is the animated HP bar (which I guess is 48 pixels wide). You don't know the exact percentage health an opponent has, only a good approximation. "8%" health isn't really 8% health, it's an estimate displayed for your convenience. It's actually 4/48 pixels, were you playing on a cartridge, which could be anywhere from 8.33~% to 10.4-ish% health and you're taking a risk assuming that Life Orb recoil will kill, since you don't actually know the exact health its user has remaining (possibly 1 more HP than the recoil). Leftovers is always healing the same amount but rounding error can make the estimate lowball it on occasion.
Perhaps the implementation can be improved but IIRC everyone got pissed off when the mechanic was first implemented accurately and percentages were (briefly) not displayed at all, which is true authenticy since on a cart you'd have to manually eye the HP bars to estimate the opponent's health, so that won't work. Instead I might suggest the percentages display the upper boundary rather than lower, that way people can plan worst case scenario rather than end up getting fooled. It's like how people EV to guarantee the KO with, or survival against, particular attacks. Making a move one thinks is guaranteed when it isn't, whether it's
"my opponent will die to LO recoil without me needing to attack" or
"I only EVed my Gastrodon to survive a Dragon Gem Draco Meteor 80% of the time," can easily lose you a game when your opponent survives with 1 HP to get another attack or your Gastrodon dies to a max damage roll.
The thing with the former case is that it isn't player error that causes a poor decision to be made, it's the simulator giving misleading information. Err on the side of caution with the displayed percentages; I expect my 8% opponent to die to LO recoil. A 10% opponent is another matter, that could be something like 31/309 HP and I can make my move taking into account that possibility. Technically a high display can also be misleading, perhaps I don't pursue a possible KO because I think it impossible for example, but that's generally played around more easily than the low display. Better false positives that causes more cautious play than false negatives that cause game-losing moves to be made.
On a similar note, maybe do away with the debug messages on the accuracy checks? ;[ I shouldn't be able to know my opponent has auto-boosted evasion (Sand Veil, Snow Cloak, Brightpowder/Lax Incense) the first time I throw an attack at them unless it causes me to miss a 100% accurate attack.