Jump to content


Photo

[Enhancement] Rawr.Enhance thread


  • Please log in to reply
425 replies to this topic

#21 Levva

Levva

    In Awe of Shocks

  • Members
  • 792 posts

Posted 23 February 2009 - 03:57 PM

It's a generic Rawr problem that issue is part of Rawr.Base not part of Rawr.Enhance. I'll post an issue on the issue tracker though.


For testing of what I have done with the actual Rawr.Enhance model to date, can testers test thing with the base model first before trying out enhancements with buffs etc. This will find things where the base model is inaccurate before we start to worry about it missing buffs etc. Its so much easier to build up from a tested solid base than to start at the top and not know if the underlying structure is built on sand and about to collapse any minute.

ie: if you are testing please clear the buffs section and see if your base stats agree. Try out the base dps calcs and see if you think the numbers look ok, or they need to be tweaked. The bulk of what is there is Toots' work which I've only tweaked to changed the multipliers for combat ratings to the new lvl 80 ones. Once we have a solid foundation to work from we can test later things, keeping in mind that a fair whack of stuff isn't implemented yet. Most notably totems and meta gems.

I'd also be particularly keen to hear feedback on the Export to EnhSim code and how that is working out for people.
Author of ShockAndAwe Enhancement Shaman max dps addon
Please use the EnhSim by Ziff & others to simulate what gear, priorities etc are the best dps. You can use ShockAndAwe to export your paperdoll stats to EnhSim.

#22 Malan

Malan

    Mike Tyson

  • Allied Members
  • 29,830 posts

Posted 23 February 2009 - 04:19 PM

Where exactly is this export code, I couldn't locate an option for it in the 2.2.01 beta.

#23 Levva

Levva

    In Awe of Shocks

  • Members
  • 792 posts

Posted 23 February 2009 - 04:35 PM

Yeah not entirely obvious. Go to the options tab, and select the EnhSim tab then click the button to copy your config to clipboard. Then just paste the data into the config as you would with ShockAndAwe.

Btw make sure you have selected the Enhance model it seems to default to Elemental on load. I'm investigating why.

Edit: Hmm seems to just select first model alphabetically. I'll post a suggestion that it defaults to the right model.
Author of ShockAndAwe Enhancement Shaman max dps addon
Please use the EnhSim by Ziff & others to simulate what gear, priorities etc are the best dps. You can use ShockAndAwe to export your paperdoll stats to EnhSim.

#24 OnosKT

OnosKT

    Piston Honda

  • Members
  • 111 posts

Posted 23 February 2009 - 07:29 PM

Looking at the weapon buffs code the yellowattackspersecond looks weird. I noticed the comment next to it, but not sure if its' yours or from the cat model.

I think the enh. model needs to consider both talents - the imp SS talent, and weapon speed for yellow attacks. I was thinking about the problem today and this is what I came up with. Not 100% sure if flametongue can proc. weapon buffs (I assume it can't).

2 points in Imp SS: (3 + 4)*chanceToHitYellow/24 (in 24 seconds you would get 3 SS and 4 lava lashes)
1 points in Imp SS: (2 + 3)*chanceToHitYellow/18 (in 18 seconds you would get 2 SS and 3 lava lashes)
0 points in Imp SS: (3 + 5)*chanceToHitYellow/30 (in 30 seconds you would get 3 SS and 5 lava lashes)

To that we need to add the WF hits per second, which I think can be approximated as:

(2*chanceToHitYellow)/(MHspeed*5)

This assumes that every 5th hit we get a windfury (which should hold true for a 20% hit chance).

Thinking about it, this should probably also consider the glyph of windfury in which case it becomes:

(2*chanceToHitYellow)/(MHspeed*100/WFProcChance) where WFProcChance is the value of the proc so 18 or 20 or 22 (not as a percentage)

#25 Pitbuller

Pitbuller

    King Hippo

  • Members
  • 626 posts

Posted 23 February 2009 - 11:02 PM

(2*chanceToHitYellow)/(MHspeed*5)
)


With 20% chance and with weapon speed 1.5-3.0s. The avarage procs is only 1 / 6 = 16.66%.
(2*chanceToHitYellow)/(MHspeed*6)

Slow, slower, shaman weapon.

#26 Levva

Levva

    In Awe of Shocks

  • Members
  • 792 posts

Posted 24 February 2009 - 11:30 AM

Looking at the weapon buffs code the yellowattackspersecond looks weird. I noticed the comment next to it, but not sure if its' yours or from the cat model.

I think the enh. model needs to consider both talents - the imp SS talent, and weapon speed for yellow attacks. I was thinking about the problem today and this is what I came up with. Not 100% sure if flametongue can proc. weapon buffs (I assume it can't).

2 points in Imp SS: (3 + 4)*chanceToHitYellow/24 (in 24 seconds you would get 3 SS and 4 lava lashes)
1 points in Imp SS: (2 + 3)*chanceToHitYellow/18 (in 18 seconds you would get 2 SS and 3 lava lashes)
0 points in Imp SS: (3 + 5)*chanceToHitYellow/30 (in 30 seconds you would get 3 SS and 5 lava lashes)

To that we need to add the WF hits per second, which I think can be approximated as:

(2*chanceToHitYellow)/(MHspeed*5)

This assumes that every 5th hit we get a windfury (which should hold true for a 20% hit chance).

Thinking about it, this should probably also consider the glyph of windfury in which case it becomes:

(2*chanceToHitYellow)/(MHspeed*100/WFProcChance) where WFProcChance is the value of the proc so 18 or 20 or 22 (not as a percentage)


Ok so...
                    float whiteAttacksPerSecond = (1f - chanceWhiteMiss - chanceDodge) / baseHastedMHSpeed;
                    float yellowChanceHit = (1f - chanceYellowMiss - chanceDodge);
                    float yellowAttacksPerSecond = getYellowAttacksPerSecond(character, yellowChanceHit, baseHastedMHSpeed, true);

where getYellowAttacksPerSecond is :

private float getYellowAttacksPerSecond(Character character, float yellowHitChance, float weaponSpeed, bool mainhand)
        {
            float yellowAttacksPerSecond = 0f;
            CalculationOptionsEnhance calcOpts = character.CalculationOptions as CalculationOptionsEnhance;
            switch (character.ShamanTalents.ImprovedStormstrike)
            {
                case 0:
                    // 3+5 etc is number of SS and number of LL per time interval
                    yellowAttacksPerSecond = (3 + 5) * yellowHitChance / 30;
                    break;
                case 1:
                    yellowAttacksPerSecond = (2 + 3) * yellowHitChance / 18;
                    break;
                case 2:
                    yellowAttacksPerSecond = (3 + 5) * yellowHitChance / 30;
                    break;

            }
            if (calcOpts.GlyphWF)
            {
                 // do something if WF glyph would ofc need to check if WF imbue on that weapon
           }

            yellowAttacksPerSecond += (2 * yellowHitChance) / (weaponSpeed * 6);
            return yellowAttacksPerSecond;
        }

Author of ShockAndAwe Enhancement Shaman max dps addon
Please use the EnhSim by Ziff & others to simulate what gear, priorities etc are the best dps. You can use ShockAndAwe to export your paperdoll stats to EnhSim.

#27 OnosKT

OnosKT

    Piston Honda

  • Members
  • 111 posts

Posted 24 February 2009 - 02:43 PM

That looks good, but you copy pasted case 0 in case 2 also. Of course with the change to SS base and Imp SS. for 3.1, one day after all those calculations they become irrelevant. On the bright side you no longer need that switch/case.

So that sections should become just:

(3 + 4)*chanceToHitYellow/24

Also if I could make a suggestion. I think the windfury proc should be done something like this:

(2*chanceToHitYellow) / ( MHspeed*100 / WFProcChance )

and WFProcChance should be calculated separetely. This should allow for easier code changes to include the glyph and possible other WF improvements Blizz could add via tier bonuses / glyphs / etc.

So atm. WFProcChance would start as 16.6, and in the glyph option you would add the correct value (I know it is less than 2 due to the 3 min CD but not 100% sure what the exact value is).

#28 Levva

Levva

    In Awe of Shocks

  • Members
  • 792 posts

Posted 24 February 2009 - 04:23 PM

Thanks, fixed the copy/paste error.

I'll need to work out the right formula for WF main, WF offhand and WF both. With and without glyph/set bonus, so I agree your formula is step in right direction.

            float WFProcChance = 1f / 6f;
            if (calcOpts.GlyphWF)
            {
                // need to modify WFProcChance if WF Glyph
            }
            // now add WF yellow attacks
            if (calcOpts.MainhandImbue 
"windfury" & mainhand) { if (calcOpts.OffhandImbue
"windfury") { // wf on both need to modify chances } else yellowAttacksPerSecond += (2 * yellowHitChance) / (weaponSpeed * 100 / WFProcChance); } else if (calcOpts.OffhandImbue =="windfury" & !mainhand) yellowAttacksPerSecond += (2 * yellowHitChance) / (weaponSpeed * 100 / WFProcChance);

Don't mind admitting I'm struggling to see where the proc chance relates to the weapon speed to give 20% observed proc 36% observed dual proc. This is different to how I previously understood it worked of course doing the actual maths will help, pointers to what I'm missing?
Author of ShockAndAwe Enhancement Shaman max dps addon
Please use the EnhSim by Ziff & others to simulate what gear, priorities etc are the best dps. You can use ShockAndAwe to export your paperdoll stats to EnhSim.

#29 OnosKT

OnosKT

    Piston Honda

  • Members
  • 111 posts

Posted 24 February 2009 - 05:06 PM

One small thing. If you use WFProcChance as 1f / 6f you need to remove the 100 in (weaponSpeed * 100 / WFProcChance) since it should either be

100 / 16.66 or

1 / 0.1666

#30 Malan

Malan

    Mike Tyson

  • Allied Members
  • 29,830 posts

Posted 25 February 2009 - 12:54 AM

I'm actually impressed with the latest version of the module in the 2.2.01 beta. It's identified the few upgrades remaining to me and pretty much correctly IDd my Best In Slot stuff that I already have.

Gems are totally out of whack though, the module is recommending AP gems for every slot even with 'Enforce metagem' checked, and seems to have very little regard for expertise and spell hit capping.


The enhance sim export option seems to work pretty well!

#31 Levva

Levva

    In Awe of Shocks

  • Members
  • 792 posts

Posted 25 February 2009 - 10:51 AM

The big change in the beta is the new gemming templates system. Until its clear how its meant to work its likely to be a bit weird. One of the things I haven't even started to look at yet is how to identify caps and what needs to be altered to make the recommendations fit. What I have looked at so far is getting the base stats right, and then done some tweaks on the dps calcs that were there.

Major items needing addressed :

1) Implement stats calcs for totems (relic slot) - currently these have no impact

2) Verify the logic of all the contributing factors for dps

3) Check implementation of other weird and wonderful procs and talents

4) Setup Glyphs so it does a dps recommendation

Other items as suggested by the community.

[Edit]

I'm thinking that I can model totems as follows :
averagebonus = abiltityBonus * duration * spellAttacksPerSecond

eg: Totem of Dueling : SS gives +60 haste for 6 sec becomes ...

averageHasteBonus = 60 * 6 * SSAttacksPersecond.

where the SSAttacksPerSecond are already coded as

float hitsPerSMHSS = (1f - chanceYellowMiss) /stormstrikeSpeed;

stormstrikeSpeed being 10s,9s or 8s in patch 3.0.9 depending on Imp.SS talent.

Comments?
Author of ShockAndAwe Enhancement Shaman max dps addon
Please use the EnhSim by Ziff & others to simulate what gear, priorities etc are the best dps. You can use ShockAndAwe to export your paperdoll stats to EnhSim.

#32 OnosKT

OnosKT

    Piston Honda

  • Members
  • 111 posts

Posted 25 February 2009 - 03:54 PM

Yah, I think that looks good for totems which result in buff per hit. For completeness, you should probably add a multiplication with proc. chance also, for totems like stonebreaker which are not 100%. So:

averageTotemBonus = totemBonus * period * procChance * AttacksPerSecond.

And then hopefully there is a way in Rawr to define an item's properties such that we can get the above values. It might need a large switch/case though.


For the other issue of windfury, I was thinking yesterday about how the number of windfury hits could be modeled and this is what I came up with. There are a couple of points that I have not figured out entirely how to model, so this is an approximation.


For one weapon with WF (this is the easy case):

The problem is that when WF procs, if your weapon speed is bellow the WF cooldown (assuming 3 seconds) then you lose one or more hits that can not proc WF. So I hit and WF procs, 2.5s later I hit again - this can not proc WF, 5s later I hit again and I can proc WF.

So the formula should be something like:

(normal hits * WFProcRate) / (normal hits * (1 + WFProcRate))

where WFProcRate is 0.2 for base or 0.22 for glyphed.

This assumes that the weapon speed (hasted) is between 1.5 and 3.0. If it's lower than 1.5 but above 1.0 you lose 2 hits, so we get:

(normal hits * WFProcRate) / (normal hits * (1 + 2*WFProcRate))

So I guess even that part could be computed as:

(normal hits * WFProcRate) / (normal hits * (1 + FLOOR[3.0 / weapon speed] * WFProcRate))


Now the dual wield with WFs is tricky especially if weapons are not matched. Assuming matched weapons, we have 20% chance per weapon. So say in 100 hits with each weapon, we'd get 40 WF hits. However each of those results in 2 hits where we can not proc WF (weapon between 1.5 and 3.0). But in half of those cases, when the MH weapon procs, the OH can not proc (assuming MH gets priority). So what we have is: 40 / (200 - 2*40 - (20 / 2)) which is the 36.36% we see for hits which can proc. WF.

Modeling this would result in something like:

(normalHitsMH * WFProcRate) / (normalHitsMH * (1 + (FLOOR[3.0 / weaponSpeedMH] + FLOOR[3.0 / weaponSpeedOH] + 1)*WFProcRate))

For main hand we lose 1 or more MH hits, 1 or more OH hits plus one OH hit since MH proced. For Oh we get:

(normalHitsOH * WFProcRate) / (normalHitsOH * (1 + (FLOOR[3.0 / weaponSpeedMH] + FLOOR[3.0 / weaponSpeedOH])*WFProcRate))

For OH we do not lose that extra hit, since the MH's chance to proc WF already passed.


When we have off synced weapons, we need to calculate normalHitsOH and normalHitsMH such that we have a common base. I think this can be done as:

normalHitsMH = offHandSpeed and normalHitsOH = mainHandSpeed. But then the model needs to be divided by:

offHandSpeed * mainHandSpeed to get a common 1s base.


Where this model fails:

1. For unsynced weapons there will be cases where you lose 2 OH or 2 MH hits while WF is on CD due to the other weapon's proc.

2. Haste effects like bloodlust, furry, etc. can result in times when a 1WF loss results in a 2WF loss, if your weapon speed passes that threshold.

#33 Levva

Levva

    In Awe of Shocks

  • Members
  • 792 posts

Posted 25 February 2009 - 04:22 PM

Yah, I think that looks good for totems which result in buff per hit. For completeness, you should probably add a multiplication with proc. chance also, for totems like stonebreaker which are not 100%. So:

averageTotemBonus = totemBonus * period * procChance * AttacksPerSecond.

And then hopefully there is a way in Rawr to define an item's properties such that we can get the above values. It might need a large switch/case though.


Leaving WF to one side for now - its the major cause of headaches and typically why a sim is requried :)

I'd forgotten about the proc chance. Typically thats implemented as effect * duration /45 so...

            else if (line == "Your Shock spells have a chance to grant 110 attack power for 10 sec.")
            {
                stats.TotemShockAttackPower += 110f * 10f / 45f;
            }

There is already a massive bit of if then else if code that has stuff similar to above to track the many and varied types of procs. Most of the totems are missing as they haven't been required for any other spec.
Author of ShockAndAwe Enhancement Shaman max dps addon
Please use the EnhSim by Ziff & others to simulate what gear, priorities etc are the best dps. You can use ShockAndAwe to export your paperdoll stats to EnhSim.

#34 Mindrila

Mindrila

    Von Kaiser

  • Members
  • 65 posts

Posted 25 February 2009 - 09:47 PM

else if (line == "Your Shock spells have a chance to grant 110 attack power for 10 sec.")
            {
                stats.TotemShockAttackPower += 110f * 10f / 45f;
            }

Are you sure this is correct? As far as I remember (checked the Wowhead comments also) the Stonebreaker's totem has only a 10 seconds internal cooldown and a procchance of 50%.

So somehow it's not quite easy, but assuming one can shock every 6 seconds, you have every 12 seconds the 50% chance of proccing the 110 Attackpower for 10 seconds.

So I would think the bonus AP should be more something like:

else if (line == "Your Shock spells have a chance to grant 110 attack power for 10 sec.")
            {
                stats.TotemShockAttackPower += 110f * 10f / 12f * 0.5;
            }


#35 craigoary

craigoary

    Glass Joe

  • Members
  • 2 posts

Posted 01 March 2009 - 01:46 AM

is there any Mac equivalent for Rawr? Or maybe a website?

#36 Malan

Malan

    Mike Tyson

  • Allied Members
  • 29,830 posts

Posted 01 March 2009 - 02:17 AM

It requires the .net framework so the only way you're going to be running it on a mac is through emulation (wine) or boot camp into a windows partition.

#37 Levva

Levva

    In Awe of Shocks

  • Members
  • 792 posts

Posted 02 March 2009 - 04:12 PM

Beta 3 is now out Rawr - Home

New in the Rawr.Enhance module :

Major Fixes -
Hit Rating & Expertise rating were being calculated and used for miss percentages but the miss percentage wasn't actually being applied to base dps, thus all calculations of hit & expertise relative stats values was wrong.
Armour Penetration was being inverted twice, so that the more armour penetration rating you had the HIGHER the bosses armour was considered to be, and thus the less dmg you did, naturally this reduced the value of Armour penetration somewhat :)

Minor Fixes
Lots of updates to the display panel, including showing uptimes of UR, Flurry & ED, showing percentage dps contributions of every ability (on tooltip when you hover over the dps calc).
Author of ShockAndAwe Enhancement Shaman max dps addon
Please use the EnhSim by Ziff & others to simulate what gear, priorities etc are the best dps. You can use ShockAndAwe to export your paperdoll stats to EnhSim.

#38 PhyerFly

PhyerFly

    Glass Joe

  • Members
  • 16 posts

Posted 02 March 2009 - 11:16 PM

Using 2.20b3 I'm having an issue where the rawr reports a dps INCREASE of ~60 dps when I uncheck my Glyph of Stormstrike (having only Glyph of Flametongue and Glyph of WF enabled). Not really a priority issue, but odd to say the least. I can share my char profile if it would help debug.

#39 Malan

Malan

    Mike Tyson

  • Allied Members
  • 29,830 posts

Posted 03 March 2009 - 03:48 AM

2.20b3 - maybe I'm missing something but I don't see a buff/debuff option for spell hit.

Weapons are all showing a full bar and saying they're all equivalent DPS I think, it seems to think every weapon is a max upgrade.
[e] Check that - the weapons were fooked until I set my glyphs, after that they were fine.

#40 Santorayo

Santorayo

    Glass Joe

  • Members
  • 11 posts

Posted 03 March 2009 - 10:07 AM

I've tried the newest version (2.2.0.3) from the beta and I'm scared. The relative stat values are so far off from my enhSim EP that I'm afraid that I'm using enhSim wrong all the time ^^ Especially haste is valued much lower in Rawr.

Rawr.Enhance:
Exp - 2.97
Hit - 2.62
Agi - 1.65
Crit - 1.52
SP - 1.28
APen - 1.12
Str - 1.05
AP - 1
Haste - 0.58

enhSim EP:
ap - 1.00
crit rating - 1.77
hit rating - 2.10
expertise rating - 2.42
haste rating - 1.56
armor penetration rating - 0.85
spellpower - 1.19
strength - 1.10
agility - 1.73
intelligence - 1.40

simulation_time                 2500
simulation_time_combatlog       300
combat_length                   5
report_count                    80
threads                         2
min_lag                         0
max_lag                         0
simulate_mana                   0

ep_precision                    2
ep_base_stat                    ap
ep_ap                           200
ep_crit_rating                  30
ep_hit_rating                   30
ep_expertise                    4
ep_haste_rating                 30
ep_armor_penetration_rating     30
ep_spellpower                   150
ep_dps                          7.5
ep_mana                         250
ep_spirit                       150
ep_mp5                          20

mh_auto_attack                  1
oh_auto_attack                  1
wait_ss_with_wf_cd              0.00
cast_ll_only_if_wf_on_cd        0
bloodlust_casters               1
sync_bloodlust_with_trinkets    0
cast_lvb_only_if_ed_left        15.0
cast_lvb_only_if_fsdots_left    4
cast_lvb_only_if_fs_active      1
cast_fs_only_if_dots_left       0
cast_ls_only_if_charges_left    0
cast_sr_only_if_mana_left       700
use_mana_potion_if_mana_left    3000

rotation_priority_count         8
rotation_priority1              SR
rotation_priority2              MW5_LB
rotation_priority3              ES_SS
rotation_priority4              SS
rotation_priority5              ES
rotation_priority6              MT
rotation_priority7              LS
rotation_priority8              LL

miss                            8.00
dodge                           6.50
glancing                        25.00
armor                           13083
spell_miss                      17.00
nature_resistance               0
fire_resistance                 0
frost_resistance                0
arcane_resistance               0
shadow_resistance               0

armor_debuff_major              3925/3925
armor_debuff_minor              1260/1260
physical_vulnerability_debuff   0/2.0
melee_haste_buff                20.0/20.0
melee_crit_chance_buff          5.0/5.0
attack_power_buff_flat          688/688
attack_power_buff_multiplier    0/99.7
spell_haste_buff                0/5.0
spell_crit_chance_buff          0/5.0
spell_crit_chance_debuff        0/10.0
spell_damage_debuff             13.0/13.0
spellpower_buff                 0/280
spell_hit_chance_debuff         0/3.0
haste_buff                      0/3.0
percentage_damage_increase      0/3.0
crit_chance_debuff              0/3.0
stat_multiplier                 10.0/10.0
stat_add_buff                   52/52
agi_and_strength_buff           178/178
intellect_buff                  60/60

replenishment                   1
water_shield                    0
mana_spring_totem               0
blessing_of_wisdom              1
judgement_of_wisdom             0

flask_elixir                    flask_of_endless_rage
guardian_elixir                 -
potion                          -
food                            -
misc_item                       -

###############################################################################
### Everything in the section below can be replaced by information obtained ###
### from your paper doll stats or exported by the ShockAndAwe addon         ###
###############################################################################

race                            draenei
mh_speed                        2.6
oh_speed                        1.60
mh_dps                          171.3
oh_dps                          156.6
mh_crit                         30.36
oh_crit                         30.36
mh_hit                          12.47
oh_hit                          12.47
mh_expertise_rating             145.00
oh_expertise_rating             145.00
ap                              3370
haste                           5.18
armor_penetration               1.82
str                             121
agi                             808
int                             546
spi                             187
spellpower                      1200
spell_crit                      27.22
spell_hit                       15.59
max_mana                        12306
mp5                             0

mh_imbue                        windfury
oh_imbue                        flametongue

mh_enchant                      -
oh_enchant                      -

mh_weapon                       -
oh_weapon                       -

trinket1                        meteorite_whetstone
trinket2                        mirror_of_truth

totem                           totem_of_splintering

set_bonus                       naxx_melee_2

metagem                         relentless_earthsiege_diamond

glyph_major1                    stormstrike
glyph_major2                    flametongue_weapon
glyph_major3                    lava_lash

glyph_minor1                    -
glyph_minor2                    -
glyph_minor3                    -

ancestral_knowledge             3/5
improved_shields                0/3
mental_dexterity                3/3
shamanistic_focus               1/1
flurry                          5/5
elemental_weapons               3/3
unleashed_rage                  5/5
weapon_mastery                  3/3
dual_wield_specialization       3/3
mental_quickness                3/3
improved_stormstrike            2/2
static_shock                    3/3
maelstrom_weapon                5/5

convection                      0/5
concussion                      5/5
call_of_flame                   2/3
elemental_devastation           3/3
reverberation                   0/5
elemental_focus                 1/1
elemental_fury                  5/5
call_of_thunder                 0/1
unrelenting_storm               0/3
elemental_precision             0/3
lightning_mastery               0/5
elemental_oath                  0/2
lightning_overload              0/5
lava_flows                      0/3
storm_earth_and_fire            0/3
shamanism                       0/5





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users