Want to host it on your fan or guild website? Download it here:
http://www.wowinterface.com/downloads/info10154-PHPPaladinTankSimulator.html
Intro
This tanking simulator lets you choose a tanking class, and then input:
- Avoidance %
Passive Block % (Warrior and Paladin only)
Holy Shield Charges (4, 6, 8, or 10) (Paladin only)
Holy Shield Duration (8 or 10 seconds) (Paladin only)
Libram of Repentance Equipped (Paladin only)
Points in Redoubt (0-5) (Paladin only)
Shield Block Style: TBC or WotLK (Warrior only)
Points in Critical Block (0, 1, 2, or 3) (WotLK Warrior only)
Crushing Blows (On or Off)
Show Rolls (See the random numbers generated to ensure it is working properly)
Show Time (Show at what time, in seconds, the mob attacks)
Mobs
Average Attack Speed
Swings per Mob
How It Works
It's fairly simple, really. Any halfway experienced Prot Paladin can tell you how the attack table works. All I really had to do was explain it to the computer.[list]1. It takes the avoidance levels you gave it, then generates a roll table, like this:
- Miss: 0-5.
Dodge:5.01-15.
Parry: 15.01-30.
Block: 30.01-50.
Hit: 50.01-100.
3. After that, it picks a random number between 1 and 10000, then multiplies it by 0.01 to make it set between 0.01 and 100.
4. It goes down the list, and wherever that random number lies is the outcome that is reached. Using the above roll table, a 17.38 would be a parry, and a 0.85 would be a miss.
For a Paladin -
5. If the result is a miss, dodge, or parry, the hit simulation ends. If it is a block, hit, or crushing blow, a number between 1 and 10 is generated. If the number is 1 (a 10% chance), the simulator says Redoubt has proc'd and sets the variable to modify the attack table for the next five blocks or 10 seconds.
For a Warrior -
5. If the shield block style is TBC, it works almost exactly like Holy Shield with different charges and duration. If it's like WotLK, though, it has no charges. However, it also increases block value by 100%. Since a block during Shield Block blocks for more than one without, another counter keeps track of it. Yet another task is to deal with Critical Blocks. Depending on how many talent points are entered, there is a 0%, 10%, 20%, or 30% chance that a block will be "critical" and count for double. So two more counters are added, one being for a critical passive block, and another being for a critical block during Shield Block. All the stats are reported at the end.
For a Druid or Death Knight -
5. Irrelevant stats are automatically entered as zeroes (neither can block, Druids can't parry), and that's about it. Druids don't have any avoidance or block-related tools like Holy Shield or Shield Block, and I don't know enough about Death Knights to add in theirs (if any exist).
And it's about as simple as that! It actually does a little more in respect to time (it keeps track, and removes buffs as they expire). It also keeps a running total of the outcomes, and returns them at the end (and their percentages of the total).
Why Use It
Using this, you can find out how much effective block % Holy Shield and Redoubt are worth in different instances of mobs, avoidance, and passive block. As a warrior, you can find out how many blocks either style of Shield Block is worth in different situations, and how many blocks can be expected to be "critical." The original idea was to find out how effective Redoubt is at Sunwell avoidance levels versus a single mob, but feeling diligent, I went ahead and made it work for as many mobs as you'd like, at any average attack speed. Some questions this simulator can answer:
- How much effective % block is Redoubt worth when not at 100% avoidance and block versus single mobs?
How much effective % block is Holy Shield worth when AoE tanking 15 Ghouls in Hyjal?
At what levels of avoidance, block, and number of mobs is Redoubt most effective?
The WotLK style of a Warrior's Shield Block has no charges. How does that affect his mitigation?
Also, now in Version 1.3, a link is provided after each simulation that can be given to others to repeat it.
Version 1.5 added the capability of simulating with classes other than just Paladins, as well as some nice scriptaculous and images to make it look a little more professional.
Comments
It has a total swing limit of 5000 to make sure nothing crazy happens. I haven't yet done all the data validation, so if you type in something silly (like 100% miss, 1% dodge, 1% parry, and 1% block), it will still simulate it right, but the printed roll table might look a little weird (or try to divide by zero, etc.). I'll get to this in a future update. The source code will hopefully be available on WoWInterface soon.
If you want to see the rolls, check the "See Rolls" box before simulating, and it will show you every random number generated throughout the simulation, as well as the charges remaining on Holy Shield and Redoubt until they expire on each block. Using this, you can easily find any bugs (hopefully none) or odd happenings.
FAQ
Q: I can only simulate 5000 total swings at a time. Why?
A: PHP is a server-side language, so simulating a ton of swings would bog down my server. It's my personal website and I don't purchase additional bandwidth, so I don't want my bandwidth eaten too quickly (or my PHP server bugged). There is a way to disable the limit, though, PM me if you really want to do so.
Q: I saw something odd happen in the simulator. What should I do?
A: If it's not because you put something weird in the simulator (negative values, letters, etc.), post it up here and I'll take a look into it.
_________________
PLEASE HELP ME TEST THIS: PHP WoW Tanking Simulator



