Most Up To Date Pokémon Simulator

Pokémon Online is the most popular, accurate, and complete Pokémon battle simulator out there. Open source, it's currently available in 11 languages, on your computer or your Android device. It hosts more than a million battles per month. Download the latest version and enjoy competitive battles across all six generations in real time against trainers from around the world!

Download
v 2.4.1


Damage Formula

Discussion in 'Developer's Den' started by Kaphotics, May 2, 2012.

  1. Kaphotics

    Kaphotics New Member

    Messages:
    2
    Hey guys, just posting here to let you know that the B/W Damage Formula article has been posted at Smogon. The whole thread submission phase took less than a day so not many people got wind of it before it was uploaded.

    Here's the article.

    The Pokecheck.org team is working on an upcoming feature relating to battling, and we discovered (through debugging) that the D/P methodology of calculating damage wasn't matching up with predictions based on the Battle RNG. We then had the entire "damage" portion of the battle code debugged and then made it into a very technical but still readable article for Smogon. We've included the multiplication factors for each special case, as simple 1.x decimal multipliers are not how the game does it.

    If you have questions about the damage formula / article feel free to ask, either here or at #smogonwifi @ synirc.
  2. Lamperi

    Lamperi I see what you did there Super Moderator

    Messages:
    2,646
    Looking at the article, at least some moves are using wrong methods, at least Pledges and Present.

    Revamping the modifier and multiplication system would be a tough thing to do, especially since the errors are very small (There's is no 1.1 or 1.3 in floating point either, there's another source for error).
  3. Kaphotics

    Kaphotics New Member

    Messages:
    2
    Present is weird. It's got 2 rand() calls if it deals damage, one to see if it heals or damages, then how much Base Power. [rand(100) and then rand(80)] -- the article didn't mention this but that's how the game does it.

Share This Page