Jump to content


Photo

SimulationCraft for Paladins


  • Please log in to reply
29 replies to this topic

#1 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 04 September 2009 - 04:15 AM

A recent hard push has put the Paladin module for SimulationCraft into position for peer review:

All relevant (dps-related) talents, glyphs, set bonuses, and librams are supported with the exception of those talents dealing with blessings and auras. No "dynamic" support for these talents has been added. We must continue to simply use static override.xxx for turning them on/off.

Paladin Module: http://simulationcra.../sc_paladin.cpp

Other files of interest (if not familiar with SC class hierarchy)
Action: http://simulationcra...k/sc_action.cpp
Attack http://simulationcra...k/sc_attack.cpp
Spell: http://simulationcra...nk/sc_spell.cpp

Only a rudimentary knowledge of code is necessary to review the code. There are a number of "FIXME" comments sprinkled throughout sc_paladin.cpp noting areas where I'm a little fuzzy on the mechanics. Any answers you can provide would be greatly appreciated.

In particular, since I do not play a Paladin, comments on the section of code that builds up a default action_list_str would be very helpful. I'd like to come up with a decent priority list based upon player talents/glyphs.

Sample output when run on Ashstrike of Mal'Ganis:
./simcraft armory=us,mal\'ganis,ashstrike 
@@
SimulationCraft for World of Warcraft build 3.2.0 ( iterations=1000, max_time=300, optimal_raid=1, smooth_rng=0 )

Generating baseline... 
10... 9... 8... 7... 6... 5... 4... 3... 2... 1... 

Generating reports...

DPS Ranking:
   7724 100.0%  Raid
   7729  100.0%  Ashstrike

Player: Ashstrike blood_elf paladin retribution 80
  DPS: 7729.3  Error=10.6  Range=537  DPR=36.1  RPS=214.2/213.7  (mana)
  Origin: http://us.wowarmory.com/character-sheet.xml?r=mal%27ganis&n=ashstrike
  Core Stats:  strength=1724(1352)  agility=363(271)  stamina=1423(1282)  intellect=122(20)  spirit=124(20)  health=20984  mana=5944
  Spell Stats:  power=1376(0)  hit=6.61%(271)  crit=25.79%(630)  penetration=0(0)  haste=11.38%(373)  mp5=0
  Attack Stats  power=4586(918)  hit=8.27%(271)  crit=31.97%(630)  expertise=15.25(125)  penetration=8.61%(106)  haste=11.38%(373)
  Defense Stats:  armor=13274(12548)  miss=7.70%/7.70%/15.00%  dodge=9.22%(0)  parry=4.70%(0)  block=4.70%(0)  blockv=862(0)  defense=400(0)
  Glyphs: judgement/lay_on_hands/sense_undead/consecration/blessing_of_might/seal_of_vengeance
  Priorities:
    flask,type=endless_rage/food,type=fish_feast/auto_attack/seal_of_vengeance/hammer_of_justice
    divine_plea/arcane_torrent/avenging_wrath/hammer_of_wrath/judgement/divine_storm/crusader_strike
    exorcism/consecration/speed_potion
  Actions:
    consecration                 Count= 25.6|11.5sec  DPE=  6937| 8%  DPET=  5102  DPR=   8.0  pDPS= 593  Miss=0.0%  TickCount=234  Tick=759
    crusader_strike              Count= 54.4| 5.5sec  DPE=  4028| 9%  DPET=  2441  DPR=  20.4  pDPS= 731  Miss=0.0%  Hit=2621  Crit= 5402| 8206|50.7%  Dodge=0.2%
    divine_storm                 Count= 27.5|11.0sec  DPE=  5068| 6%  DPET=  3073  DPR=  10.7  pDPS= 465  Miss=0.0%  Hit=3302  Crit= 6808|10464|50.5%  Dodge=0.1%
    exorcism                     Count= 17.5|16.9sec  DPE= 10033| 8%  DPET=  7413  DPR=  28.6  pDPS= 586  Miss=7.0%  Hit=8859  Crit=13718|18324|37.0%
    hammer_of_wrath              Count=  8.5| 6.4sec  DPE=  8589| 3%  DPET=  5206  DPR=  18.1  pDPS= 244  Miss=0.0%  Hit=4380  Crit= 9009|11457|90.9%
    melee                        Count=126.5| 2.4sec  DPE=  3858|21%  DPET=  1633  DPR=   0.0  pDPS=1628  Miss=0.0%  Hit=2819  Crit= 5813| 8845|40.5%  Glance=2115|23.9%  Dodge=0.2%
    righteous_vengeance          Count=  0.0| 0.0sec  DPE=   inf| 5%  DPET=   inf  DPR=   0.0  pDPS= 420  Miss=0.0%  TickCount=103  Tick=1227
    seal_of_vengeance_dot        Count=126.3| 2.4sec  DPE=  1506| 8%  DPET=   inf  DPR=   0.0  pDPS= 634  Miss=0.0%  Dodge=0.2%  TickCount=99  Tick=1928
    seal_of_vengeance_judgement  Count= 35.7| 8.5sec  DPE=  8072|12%  DPET=  4892  DPR=  41.0  pDPS= 961  Miss=0.0%  Hit=4999  Crit=10299|14418|58.0%
    seal_of_vengeance_proc       Count=200.1| 1.4sec  DPE=  2197|19%  DPET=   inf  DPR=   0.0  pDPS=1466  Miss=0.0%  Hit=1537  Crit= 3164| 4233|40.6%
  Constant Buffs: arcane_brilliance/blessing_of_kings/blessing_of_might/blessing_of_wisdom/divine_spirit/fortitude
  Constant Buffs: mark_of_the_wild/replenishment
  Dynamic Buffs:
    avenging_wrath          : start=3.0   refresh=0.0    interval=120.7|120.7  uptime=20%  benefit=20%
    berserking_mh           : start=7.1   refresh=18.2   interval= 41.5|11.1   uptime=71%  benefit=73%  trigger= 6%
    bloodlust               : start=1.0   refresh=0.0    interval=  0.0|0.0    uptime=13%  benefit=16%
    darkmoon_card_greatness : start=7.0   refresh=0.0    interval= 45.9|45.9   uptime=35%  trigger=35%
    deaths_choice           : start=7.0   refresh=0.0    interval= 45.8|45.8   uptime=35%  trigger=35%
    divine_plea             : start=5.2   refresh=0.0    interval= 60.6|60.6   uptime=25%  benefit=25%
    libram_of_valiance      : start=1.3   refresh=39.4   interval=143.6|7.3    uptime=97%  trigger=70%
    seal_of_vengeance       : start=1.0   refresh=125.0  interval=  0.0|2.4    uptime=99%  benefit=99%
    the_art_of_war          : start=17.8  refresh=33.4   interval= 16.7|5.8    uptime=71%  benefit=94%
    vengeance               : start=1.0   refresh=207.9  interval=  0.0|1.4    uptime=99%  benefit=100%
  Procs:
    869.0 |   0.74sec : judgement_of_wisdom
  Gains:
     1367.1 : arcane_torrent        
     2714.5 : blessing_of_wisdom      (overflow=58.5%)
     3420.9 : divine_plea             (overflow=65.6%)
     7849.0 : initial_mana          
    43819.6 : judgement_of_wisdom     (overflow=42.6%)
    10732.9 : judgements_of_the_wise  (overflow=72.6%)
     2007.2 : replenishment           (overflow=57.3%)

Auras and De-Buffs:
  Constant: abominations_might/battle_shout/bleeding/blood_frenzy/crypt_fever/curse_of_elements/earth_and_moon
  Constant: elemental_oath/expose_armor/faerie_fire/ferocious_inspiration/flametongue_totem/heart_of_the_crusader
  Constant: hunters_mark/improved_faerie_fire/improved_moonkin/improved_scorch/improved_shadow_bolt/insect_swarm
  Constant: judgement_of_wisdom/judgements_of_the_just/leader_of_the_pack/mana_spring_totem/mangle/master_poisoner
  Constant: misery/moonkin/poisoned/rampage/sanctified_retribution/savage_combat/strength_of_earth/sunder_armor
  Constant: swift_retribution/thunder_clap/totem_of_wrath/totem_of_wrath_debuff/trauma/trueshot/unleashed_rage
  Constant: windfury_totem/winters_chill/wrath_of_air
  Dynamic:

Waiting:
    10.9% : Ashstrike

Baseline Performance:
  TotalEvents   = 1960003
  MaxEventQueue = 19
  TargetHealth  = 2314105
  SimSeconds    = 300003
  CpuSeconds    = 2.990
  SpeedUp       = 100336


#2 frmorrison

frmorrison

    Protector

  • Allied Members
  • 11,427 posts

Posted 04 September 2009 - 09:57 PM

Seals act differently for Prot and Ret specs. SoV will trigger from
Judgement if you have Judgements of the Just also HotR will trigger SoV.

Addressing some of the Fixme comments:
2H Weapon spec only affects weapon-based attacks (CS, DS, Judgements,
Seals) but not spells (Consecration and Exorcism). Since the spells are
a small source of damage, it may be easier lessen the % of damage given
by 2H spec.
HotR is just 4x your weapon damage (shown in the screen), so things like
gaining attack power will buff HotR hits.
Attacks that are immune to parry/dodge: Judgement, Hammer of Wrath,
Avenger's Shield, and Shield of Righteousness (spells as well).
I am pretty sure Seal hits can weapon-speed adjusted AP contribution.
Holy Power doesn't affect Judgements (Judge used melee crit).
Glyph of Seal of righteousness only affects Seal hits (no Judgement
hits).
The application of the SoV DoT uses the combat roll (so can miss, dodge,
or parry). SoV Seal hit will hit if the attack that triggered it hit.

#3 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 05 September 2009 - 01:55 AM

Thanks, Ashstrike! I updated the sim sample output using your Armory.

A couple clarifications comments/questions:

(1) Regarding HotR: I am determining the "DPS" in "4xDPS" by calculating a weapon hit and then dividing by the swing time. I am currently dividing by the hasted swing time and not the base weapon swing time.

(2) Regarding the Seal hits with weapon components: Are the weapon speeds normalized?

A couple un-addressed questions for those uncomfortable perusing the code:

(A) Tier9-2pc: I understand that it is currently bugged. Do we know the expected behavior?

(B) When Righteous Vengeance procs does it behave like Deadly Poison (tick timer uninterrupted) or Ignite (tick timer rescheduled)?

© When Reckoning procs, is it still considered a melee swing capable of triggering Seals?

#4 greatrichie

greatrichie

    Von Kaiser

  • Members
  • 98 posts

Posted 05 September 2009 - 01:58 AM

I think the T9 2 pc is supposed to be based on our crit + ~4-5% (the crit we're seeing now). Hopefully they fix it soon, so we'll know for sure.

#5 frmorrison

frmorrison

    Protector

  • Allied Members
  • 11,427 posts

Posted 05 September 2009 - 02:39 AM

Thanks, Ashstrike! I updated the sim sample output using your Armory.

A couple clarifications comments/questions:

(1) Regarding HotR: I am determining the "DPS" in "4xDPS" by calculating a weapon hit and then dividing by the swing time. I am currently dividing by the hasted swing time and not the base weapon swing time.

(2) Regarding the Seal hits with weapon components: Are the weapon speeds normalized?

A couple un-addressed questions for those uncomfortable perusing the code:

(A) Tier9-2pc: I understand that it is currently bugged. Do we know the expected behavior?

(B) When Righteous Vengeance procs does it behave like Deadly Poison (tick timer uninterrupted) or Ignite (tick timer rescheduled)?

© When Reckoning procs, is it still considered a melee swing capable of triggering Seals?


1. HotR's damage is just 4x weapon dps.
2. Seal hits are not normalized.
A. The behavior is based on your melee crit, however melee crit has a 4.8 crit suppression on a boss.
B. Like Ignite, the damaging debuff rolls.
C. Reckoning is an extra melee swing (if you get damaged) that will proc Seals, assuming it wasn't dodge/parried.

#6 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 05 September 2009 - 03:21 AM

B. Like Ignite, the damaging debuff rolls. RV tics every 2 seconds and if you crit between tics, it just adds to the next tic of RV..


My understanding of Deadly Poison and Ignite is that they both "roll" the damage into the next tick. The difference between them is that Ignite will defer ticks. When Ignite procs from a crit, the current ticking Ignite is canceled with its damage rolled into the new Ignite which will occur at proc+2sec.

I read from your description of RV that ticks happen methodically every 2sec regardless of refresh.

#7 Starfox

Starfox

    King Hippo

  • Members
  • 578 posts

Posted 05 September 2009 - 04:32 AM

My understanding of Deadly Poison and Ignite is that they both "roll" the damage into the next tick. The difference between them is that Ignite will defer ticks. When Ignite procs from a crit, the current ticking Ignite is canceled with its damage rolled into the new Ignite which will occur at proc+2sec.

I read from your description of RV that ticks happen methodically every 2sec regardless of refresh.


06:28:10> [Peppu's] Crusader Strike hits [Expert's Training Dummy] for 1 Physical.(1720 Overkill) *
06:28:11> [Expert's Training Dummy] is afflicted by [Peppu's] Righteous Vengeance.
06:28:12> [Peppu's] Judgement of Corruption hits [Expert's Training Dummy] for 1 Holy.(2115 Overkill) *
06:28:13> [Peppu's] Righteous Vengeance is refreshed on [Expert's Training Dummy].
06:28:15> [Expert's Training Dummy] suffers 1 Holy damage from [Peppu's] Righteous Vengeance.(287 Overkill)
06:28:17> [Expert's Training Dummy] suffers 1 Holy damage from [Peppu's] Righteous Vengeance.(287 Overkill)
Got my twink to a dummy and tried until I got chain crits, it behaves like Ignore/Deep Wounds, else there would have been a tick at 06:28:13
Hello.
Light the fuse.
For all my homies.
Do not run, we are your friends.
SimulationCraft Druid Guy

#8 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 08 September 2009 - 03:17 AM

I've finished implementing support for defense-related stats (including diminishing returns) which in turn enabled support for boss auto-attack combat table. I can now model Reckoning, Redoubt, Holy Shield Discharge, etc.....

At this point it is decent enough to put out a release.

#9 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 09 September 2009 - 02:51 AM

SimulationCraft r3248 available for download...... Paladins officially supported.

#10 brykasch

brykasch

    Glass Joe

  • Members
  • 1 posts

Posted 15 September 2009 - 08:53 AM

Why when i drag the t9 paladin module it keeps giving me priest results?

#11 aylen86

aylen86

    Piston Honda

  • Members
  • 196 posts

Posted 15 September 2009 - 09:47 AM

Well, the paladins are now officially supported.
But there are no other paladin simcraft files than 'Paladin_T9.simcraft'. There is nothing to calculate and Paladin_T9.simcraft is linked with the Priest tierset.

#12 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 15 September 2009 - 11:11 AM

Well, the paladins are now officially supported.
But there are no other paladin simcraft files than 'Paladin_T9.simcraft'. There is nothing to calculate and Paladin_T9.simcraft is linked with the Priest tierset.


Argh. I need to look-up the word "official". It seems.

I see lots of T9 BiS floating around, but what about T8 BiS? Point me in the right direction and I'll get these profiles filled out.

EDIT: Of course, one can always just download your profile from the Armory:

simcraft.exe armory=us,llane,caropally html=caropally.html

Or you can create a custom profile on wowhead that you can fiddle with:

simcraft.exe wowhead=123456789 html=test.html (use the wowhead profile ID number obviously)

#13 frmorrison

frmorrison

    Protector

  • Allied Members
  • 11,427 posts

Posted 15 September 2009 - 06:28 PM

I see lots of T9 BiS floating around, but what about T8 BiS? Point me in the right direction and I'll get these profiles filled out.


For Ret, I made a 3.1 BiS thread (using T8). It may have fallen off the page, but just search for past threads from the last 75 days.

I would use the Plate Priority list (most guilds limit leather items to Ferals/Rogues).

#14 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 15 September 2009 - 06:36 PM

For Ret, I made a 3.1 BiS thread (using T8). It may have fallen off the page, but just search for past threads from the last 75 days.

I would use the Plate Priority list (most guilds limit leather items to Ferals/Rogues).


Awesome! I'll put the profiles together and and add them to Raid_T8 and Raid_T9 so that they show up on the SampleOutput wiki pages in addition to being part of the Win/OSX downloads.

#15 frmorrison

frmorrison

    Protector

  • Allied Members
  • 11,427 posts

Posted 17 September 2009 - 05:29 PM

I realized I made an error when I answered earlier to the question on with 2T9's behavior:

Here is the correct answer:
A. The crit % is based on your melee crit (so is affected by the boss melee crit suppression and all raid melee crit buffs). It does double damage (also the crit damge is affected by the meta gem crit damage bonus).

#16 dedmonwakeen

dedmonwakeen

    Bald Bull

  • Members
  • 1,302 posts

Posted 17 September 2009 - 08:15 PM

I realized I made an error when I answered earlier to the question on with 2T9's behavior:

Here is the correct answer:
A. The crit % is based on your melee crit (so is affected by the boss melee crit suppression and all raid melee crit buffs). It does double damage (also the crit damge is affected by the meta gem crit damage bonus).


Thanks for the follow-up! This has been addressed in r3342.

FYI: I also just fixed reported bugs in Art of War and Reckoning.

Need to rebuild that wiki and get out a new release.

#17 Theck

Theck

    Don Flamenco

  • Members
  • 300 posts

Posted 18 September 2009 - 01:12 PM

1. HotR's damage is just 4x weapon dps.

Do you know if this has been empirically tested? I use hasted DPS in my MATLAB simulations as well, as I was under the impression that the spell uses character screen DPS to determine damage.

#18 frmorrison

frmorrison

    Protector

  • Allied Members
  • 11,427 posts

Posted 18 September 2009 - 01:20 PM

Do you know if this has been empirically tested? I use hasted DPS in my MATLAB simulations as well, as I was under the impression that the spell uses character screen DPS to determine damage.


Yes, it is 4x the paper doll's dps number. I might have worded it incorrectly, but I don't know if this model is going to simulation tanking dps anyway.

#19 Chicken

Chicken

     

  • Moderators
  • 3,639 posts

Posted 18 September 2009 - 01:30 PM

Do you know if this has been empirically tested? I use hasted DPS in my MATLAB simulations as well, as I was under the impression that the spell uses character screen DPS to determine damage.

You can easily check it just by browsing combat logs actually. You'll notice the damage Hammer of the Righteous deals doesn't go up when Bloodlust is cast, while it should go up if it were affected by haste. I can probably get a shaman to help me try this out using Windfury totem for better testing as well if desired, but I'm certain it's based on your DPS before haste.

#20 Theck

Theck

    Don Flamenco

  • Members
  • 300 posts

Posted 18 September 2009 - 01:55 PM

Nevermind, I just looked at my code carefully and realized that I don't, in fact, use hasted DPS for HotR after all. I'm using weapon_base_dps+AP/14.

I must have made that correction a while ago and forgotten about it. Or else my memory's failing.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users