Most Up To Date Pokémon Simulator

Pokémon Online is the most accurate and complete Pokémon battle simulator out there. Open source, it's currently available in 11 languages, on your computer, on your Android device or in your browser. 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!

v 2.6.2
Play Now

  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Damage Formula

Discussion in 'Development General' started by Kaphotics, May 2, 2012.

  1. Kaphotics

    Kaphotics New Member

    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 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

    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

    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