diff --git a/sim/core/base_stats.go b/sim/core/base_stats.go index 5af4741169..5d5b1be474 100644 --- a/sim/core/base_stats.go +++ b/sim/core/base_stats.go @@ -130,6 +130,18 @@ var ClassBaseCrit = map[proto.Class]stats.Stats{ }, } +var APPerStrength = map[proto.Class]float64{ + proto.Class_ClassWarrior: 2, + proto.Class_ClassPaladin: 2, + proto.Class_ClassHunter: 1, + proto.Class_ClassRogue: 1, + proto.Class_ClassPriest: 1, + proto.Class_ClassShaman: 2, + proto.Class_ClassMage: 1, + proto.Class_ClassWarlock: 1, + proto.Class_ClassDruid: 2, +} + // Melee/Ranged crit agi scaling var CritPerAgiAtLevel = map[proto.Class]map[int]float64{ proto.Class_ClassUnknown: {25: 0.0, 40: 0.0, 50: 0.0, 60: 0.0}, diff --git a/sim/core/racials.go b/sim/core/racials.go index 9727f79150..71ba141aa7 100644 --- a/sim/core/racials.go +++ b/sim/core/racials.go @@ -78,7 +78,7 @@ func applyRaceEffects(agent Agent) { Duration: time.Second * 15, // Tooltip is misleading; ap bonus is base AP plus AP from current strength, does not include +attackpower on items/buffs OnGain: func(aura *Aura, sim *Simulation) { - bloodFuryAP = (character.GetBaseStats()[stats.AttackPower] + (character.GetStat(stats.Strength) * 2)) * 0.25 + bloodFuryAP = (character.GetBaseStats()[stats.AttackPower] + (character.GetStat(stats.Strength) * APPerStrength[character.Class])) * 0.25 character.AddStatDynamic(sim, stats.AttackPower, bloodFuryAP) }, diff --git a/sim/druid/druid.go b/sim/druid/druid.go index 30d983ea15..9901eeec83 100644 --- a/sim/druid/druid.go +++ b/sim/druid/druid.go @@ -256,7 +256,7 @@ func New(character *core.Character, form DruidForm, selfBuffs SelfBuffs, talents druid.EnableManaBar() // TODO: Class druid physical stats - druid.AddStatDependency(stats.Strength, stats.AttackPower, 2) + druid.AddStatDependency(stats.Strength, stats.AttackPower, core.APPerStrength[character.Class]) druid.AddStatDependency(stats.BonusArmor, stats.Armor, 1) druid.AddStatDependency(stats.Agility, stats.MeleeCrit, core.CritPerAgiAtLevel[character.Class][int(druid.Level)]*core.CritRatingPerCritChance) druid.AddStatDependency(stats.Intellect, stats.SpellCrit, core.CritPerIntAtLevel[character.Class][int(druid.Level)]*core.SpellCritRatingPerCritChance) diff --git a/sim/hunter/TestBM.results b/sim/hunter/TestBM.results index ef0f2c9e75..09972fe65e 100644 --- a/sim/hunter/TestBM.results +++ b/sim/hunter/TestBM.results @@ -149,7 +149,7 @@ stat_weights_results: { key: "TestBM-Lvl40-StatWeights-Default" value: { weights: 0 - weights: 0.8085 + weights: 0.8079 weights: 0 weights: 0 weights: 0 @@ -166,8 +166,8 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0.31124 - weights: 8.46821 - weights: 7.64026 + weights: 8.44271 + weights: 7.62158 weights: 0 weights: 0 weights: 0 @@ -302,22 +302,22 @@ dps_results: { dps_results: { key: "TestBM-Lvl40-AllItems-BeastmasterArmor" value: { - dps: 527.83604 - tps: 239.75095 + dps: 527.06296 + tps: 238.97786 } } dps_results: { key: "TestBM-Lvl40-AllItems-SignetofBeasts-209823" value: { - dps: 838.59889 - tps: 321.29786 + dps: 836.59954 + tps: 320.1109 } } dps_results: { key: "TestBM-Lvl40-Average-Default" value: { - dps: 849.12016 - tps: 328.13556 + dps: 847.09336 + tps: 326.90583 } } dps_results: { @@ -491,43 +491,43 @@ dps_results: { dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 1635.24911 - tps: 992.4943 + dps: 1630.77885 + tps: 990.55107 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 745.63236 - tps: 236.04306 + dps: 744.69965 + tps: 235.90031 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 788.82445 - tps: 249.1845 + dps: 787.53742 + tps: 249.04312 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 865.15225 - tps: 634.09869 + dps: 863.26146 + tps: 633.2562 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 373.97251 - tps: 129.19582 + dps: 373.62562 + tps: 129.14291 } } dps_results: { key: "TestBM-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 407.26555 - tps: 135.24739 + dps: 406.77043 + tps: 135.17851 } } dps_results: { @@ -659,7 +659,7 @@ dps_results: { dps_results: { key: "TestBM-Lvl40-SwitchInFrontOfTarget-Default" value: { - dps: 805.77815 - tps: 300.9746 + dps: 803.96822 + tps: 299.90694 } } diff --git a/sim/hunter/TestSV.results b/sim/hunter/TestSV.results index 2d4f79c0b5..edf36daac8 100644 --- a/sim/hunter/TestSV.results +++ b/sim/hunter/TestSV.results @@ -166,8 +166,8 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0.35631 - weights: 0.43666 - weights: 6.71901 + weights: 0.36455 + weights: 6.70309 weights: 0 weights: 0 weights: 0 @@ -302,22 +302,22 @@ dps_results: { dps_results: { key: "TestSV-Lvl40-AllItems-BeastmasterArmor" value: { - dps: 435.22146 - tps: 272.1554 + dps: 434.39369 + tps: 271.32762 } } dps_results: { key: "TestSV-Lvl40-AllItems-SignetofBeasts-209823" value: { - dps: 792.67024 - tps: 356.36949 + dps: 790.46674 + tps: 355.09957 } } dps_results: { key: "TestSV-Lvl40-Average-Default" value: { - dps: 801.81039 - tps: 362.65002 + dps: 799.53008 + tps: 361.30319 } } dps_results: { @@ -365,49 +365,49 @@ dps_results: { dps_results: { key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 1622.39123 - tps: 1026.15453 + dps: 1617.31294 + tps: 1023.9301 } } dps_results: { key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 663.99075 - tps: 245.00558 + dps: 662.87964 + tps: 244.83736 } } dps_results: { key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-FullBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 682.32512 - tps: 258.2862 + dps: 680.75712 + tps: 258.06929 } } dps_results: { key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 859.13143 - tps: 636.55664 + dps: 856.99433 + tps: 635.62351 } } dps_results: { key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 338.27763 - tps: 134.99062 + dps: 337.85046 + tps: 134.93215 } } dps_results: { key: "TestSV-Lvl40-Settings-Orc-p2_melee-Basic-p2_melee-NoBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 360.65389 - tps: 138.63798 + dps: 359.98879 + tps: 138.54583 } } dps_results: { key: "TestSV-Lvl40-SwitchInFrontOfTarget-Default" value: { - dps: 758.75605 - tps: 337.89003 + dps: 756.63543 + tps: 336.64431 } } diff --git a/sim/hunter/hunter.go b/sim/hunter/hunter.go index d2ca3178f6..bbd5681e5a 100644 --- a/sim/hunter/hunter.go +++ b/sim/hunter/hunter.go @@ -260,7 +260,7 @@ func NewHunter(character *core.Character, options *proto.Player) *Hunter { hunter.pet = hunter.NewHunterPet() - hunter.AddStatDependency(stats.Strength, stats.AttackPower, 1) + hunter.AddStatDependency(stats.Strength, stats.AttackPower, core.APPerStrength[character.Class]) hunter.AddStatDependency(stats.Agility, stats.AttackPower, 1) hunter.AddStatDependency(stats.Agility, stats.RangedAttackPower, 2) hunter.AddStatDependency(stats.Agility, stats.MeleeCrit, core.CritPerAgiAtLevel[character.Class][int(character.Level)]*core.CritRatingPerCritChance) diff --git a/sim/mage/TestArcane.results b/sim/mage/TestArcane.results index 667e6624ac..789f70a46c 100644 --- a/sim/mage/TestArcane.results +++ b/sim/mage/TestArcane.results @@ -18,7 +18,7 @@ character_stats_results: { final_stats: 30.39344 final_stats: 0 final_stats: 0 - final_stats: 328 + final_stats: 406.4 final_stats: 2 final_stats: 8.2 final_stats: 0 @@ -67,7 +67,7 @@ character_stats_results: { final_stats: 50.2224 final_stats: 0 final_stats: 0 - final_stats: 1042 + final_stats: 1201.5 final_stats: 2 final_stats: 18.2 final_stats: 0 diff --git a/sim/mage/TestFire.results b/sim/mage/TestFire.results index a66e6be9dd..9c4db658cd 100644 --- a/sim/mage/TestFire.results +++ b/sim/mage/TestFire.results @@ -18,7 +18,7 @@ character_stats_results: { final_stats: 30.39344 final_stats: 0 final_stats: 0 - final_stats: 328 + final_stats: 406.4 final_stats: 2 final_stats: 8.2 final_stats: 0 @@ -67,7 +67,7 @@ character_stats_results: { final_stats: 42.9179 final_stats: 0 final_stats: 0 - final_stats: 460 + final_stats: 572.28 final_stats: 0 final_stats: 19.2 final_stats: 0 @@ -116,7 +116,7 @@ character_stats_results: { final_stats: 50.25936 final_stats: 0 final_stats: 0 - final_stats: 1042 + final_stats: 1201.5 final_stats: 2 final_stats: 18.2 final_stats: 0 diff --git a/sim/mage/TestFrost.results b/sim/mage/TestFrost.results index 67b5b883ae..11099a4cf6 100644 --- a/sim/mage/TestFrost.results +++ b/sim/mage/TestFrost.results @@ -18,7 +18,7 @@ character_stats_results: { final_stats: 23.04324 final_stats: 0 final_stats: 0 - final_stats: 460 + final_stats: 572.28 final_stats: 0 final_stats: 19.2 final_stats: 0 @@ -67,7 +67,7 @@ character_stats_results: { final_stats: 13.1808 final_stats: 0 final_stats: 0 - final_stats: -10 + final_stats: 24 final_stats: 2 final_stats: 5.2 final_stats: 0 diff --git a/sim/mage/mage.go b/sim/mage/mage.go index 72f07b19d5..bee5ca23d4 100644 --- a/sim/mage/mage.go +++ b/sim/mage/mage.go @@ -153,6 +153,7 @@ func NewMage(character *core.Character, options *proto.Player) *Mage { mage.EnableManaBar() + mage.AddStatDependency(stats.Strength, stats.AttackPower, core.APPerStrength[character.Class]) mage.AddStatDependency(stats.Intellect, stats.SpellCrit, core.CritPerIntAtLevel[mage.Class][int(mage.Level)]*core.SpellCritRatingPerCritChance) switch mage.Options.Armor { diff --git a/sim/paladin/paladin.go b/sim/paladin/paladin.go index 761dd46cd1..0f491b85e6 100644 --- a/sim/paladin/paladin.go +++ b/sim/paladin/paladin.go @@ -91,7 +91,7 @@ func NewPaladin(character *core.Character, talentsStr string) *Paladin { paladin.PseudoStats.CanParry = true paladin.EnableManaBar() - paladin.AddStatDependency(stats.Strength, stats.AttackPower, 2.0) + paladin.AddStatDependency(stats.Strength, stats.AttackPower, core.APPerStrength[character.Class]) paladin.AddStatDependency(stats.Agility, stats.MeleeCrit, core.CritPerAgiAtLevel[character.Class][int(paladin.Level)]*core.CritRatingPerCritChance) paladin.AddStatDependency(stats.Intellect, stats.SpellCrit, core.CritPerIntAtLevel[character.Class][int(paladin.Level)]*core.SpellCritRatingPerCritChance) diff --git a/sim/priest/priest.go b/sim/priest/priest.go index 89d373eb1f..288bb7f6e0 100644 --- a/sim/priest/priest.go +++ b/sim/priest/priest.go @@ -133,6 +133,7 @@ func New(character *core.Character, talents string) *Priest { priest.EnableManaBar() + priest.AddStatDependency(stats.Strength, stats.AttackPower, core.APPerStrength[character.Class]) priest.AddStatDependency(stats.Intellect, stats.SpellCrit, core.CritPerIntAtLevel[priest.Class][int(priest.Level)]*core.SpellCritRatingPerCritChance) // Set mana regen to 12.5 + Spirit/4 each 2s tick diff --git a/sim/priest/shadow/TestShadow.results b/sim/priest/shadow/TestShadow.results index d0c6c17e02..2c55b25efa 100644 --- a/sim/priest/shadow/TestShadow.results +++ b/sim/priest/shadow/TestShadow.results @@ -18,7 +18,7 @@ character_stats_results: { final_stats: 6.93294 final_stats: 0 final_stats: 10 - final_stats: 207 + final_stats: 265.2 final_stats: 1 final_stats: 5 final_stats: 0 @@ -67,7 +67,7 @@ character_stats_results: { final_stats: 13.48128 final_stats: 0 final_stats: 0 - final_stats: 328 + final_stats: 415.2 final_stats: 2 final_stats: 6 final_stats: 0 @@ -116,7 +116,7 @@ character_stats_results: { final_stats: 20.9776 final_stats: 0 final_stats: 0 - final_stats: 460 + final_stats: 577.032 final_stats: 3 final_stats: 17 final_stats: 0 @@ -165,7 +165,7 @@ character_stats_results: { final_stats: 28.04832 final_stats: 0 final_stats: 0 - final_stats: 1042 + final_stats: 1207 final_stats: 3 final_stats: 17 final_stats: 0 diff --git a/sim/rogue/dps_rogue/TestAssassination.results b/sim/rogue/dps_rogue/TestAssassination.results index a370eb12c6..025f9e8781 100644 --- a/sim/rogue/dps_rogue/TestAssassination.results +++ b/sim/rogue/dps_rogue/TestAssassination.results @@ -253,43 +253,43 @@ dps_results: { dps_results: { key: "TestAssassination-Lvl25-Settings-Orc-p1_daggers-No Poisons-mutilate-FullBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 131.7088 - tps: 93.51325 + dps: 131.16598 + tps: 93.12785 } } dps_results: { key: "TestAssassination-Lvl25-Settings-Orc-p1_daggers-No Poisons-mutilate-FullBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 131.7088 - tps: 93.51325 + dps: 131.16598 + tps: 93.12785 } } dps_results: { key: "TestAssassination-Lvl25-Settings-Orc-p1_daggers-No Poisons-mutilate-FullBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 141.28421 - tps: 100.31179 + dps: 140.20728 + tps: 99.54717 } } dps_results: { key: "TestAssassination-Lvl25-Settings-Orc-p1_daggers-No Poisons-mutilate-NoBuffs-Phase 1 Consumes-LongMultiTarget" value: { - dps: 61.54616 - tps: 43.69777 + dps: 61.31141 + tps: 43.5311 } } dps_results: { key: "TestAssassination-Lvl25-Settings-Orc-p1_daggers-No Poisons-mutilate-NoBuffs-Phase 1 Consumes-LongSingleTarget" value: { - dps: 61.54616 - tps: 43.69777 + dps: 61.31141 + tps: 43.5311 } } dps_results: { key: "TestAssassination-Lvl25-Settings-Orc-p1_daggers-No Poisons-mutilate-NoBuffs-Phase 1 Consumes-ShortSingleTarget" value: { - dps: 65.37916 - tps: 46.4192 + dps: 64.90476 + tps: 46.08238 } } dps_results: { @@ -358,43 +358,43 @@ dps_results: { dps_results: { key: "TestAssassination-Lvl40-Settings-Orc-p2_daggers-No Poisons-mutilate-FullBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 295.77694 - tps: 210.00163 + dps: 294.21124 + tps: 208.88998 } } dps_results: { key: "TestAssassination-Lvl40-Settings-Orc-p2_daggers-No Poisons-mutilate-FullBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 295.77694 - tps: 210.00163 + dps: 294.21124 + tps: 208.88998 } } dps_results: { key: "TestAssassination-Lvl40-Settings-Orc-p2_daggers-No Poisons-mutilate-FullBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 320.56003 - tps: 227.59762 + dps: 317.15897 + tps: 225.18287 } } dps_results: { key: "TestAssassination-Lvl40-Settings-Orc-p2_daggers-No Poisons-mutilate-NoBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 156.66349 - tps: 111.23108 + dps: 155.90753 + tps: 110.69434 } } dps_results: { key: "TestAssassination-Lvl40-Settings-Orc-p2_daggers-No Poisons-mutilate-NoBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 156.66349 - tps: 111.23108 + dps: 155.90753 + tps: 110.69434 } } dps_results: { key: "TestAssassination-Lvl40-Settings-Orc-p2_daggers-No Poisons-mutilate-NoBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 168.06366 - tps: 119.3252 + dps: 166.41612 + tps: 118.15545 } } dps_results: { diff --git a/sim/rogue/dps_rogue/TestCombat.results b/sim/rogue/dps_rogue/TestCombat.results index 60ef643541..b5f8269208 100644 --- a/sim/rogue/dps_rogue/TestCombat.results +++ b/sim/rogue/dps_rogue/TestCombat.results @@ -358,43 +358,43 @@ dps_results: { dps_results: { key: "TestCombat-Lvl40-Settings-Orc-p2_daggers-No Poisons-mutilate-FullBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 223.44004 - tps: 158.64243 + dps: 221.66081 + tps: 157.37918 } } dps_results: { key: "TestCombat-Lvl40-Settings-Orc-p2_daggers-No Poisons-mutilate-FullBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 193.33138 - tps: 137.26528 + dps: 192.32796 + tps: 136.55285 } } dps_results: { key: "TestCombat-Lvl40-Settings-Orc-p2_daggers-No Poisons-mutilate-FullBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 255.18255 - tps: 181.17961 + dps: 252.34822 + tps: 179.16724 } } dps_results: { key: "TestCombat-Lvl40-Settings-Orc-p2_daggers-No Poisons-mutilate-NoBuffs-Phase 2 Consumes-LongMultiTarget" value: { - dps: 117.49761 - tps: 83.4233 + dps: 116.66216 + tps: 82.83013 } } dps_results: { key: "TestCombat-Lvl40-Settings-Orc-p2_daggers-No Poisons-mutilate-NoBuffs-Phase 2 Consumes-LongSingleTarget" value: { - dps: 102.13979 - tps: 72.51925 + dps: 101.66278 + tps: 72.18058 } } dps_results: { key: "TestCombat-Lvl40-Settings-Orc-p2_daggers-No Poisons-mutilate-NoBuffs-Phase 2 Consumes-ShortSingleTarget" value: { - dps: 134.24229 - tps: 95.31203 + dps: 132.8841 + tps: 94.34771 } } dps_results: { diff --git a/sim/rogue/rogue.go b/sim/rogue/rogue.go index 872ad7898d..3966b0c9c9 100644 --- a/sim/rogue/rogue.go +++ b/sim/rogue/rogue.go @@ -170,7 +170,7 @@ func NewRogue(character *core.Character, options *proto.Player, rogueOptions *pr }) rogue.applyPoisons() - rogue.AddStatDependency(stats.Strength, stats.AttackPower, 1) + rogue.AddStatDependency(stats.Strength, stats.AttackPower, core.APPerStrength[character.Class]) rogue.AddStatDependency(stats.Agility, stats.AttackPower, 1) rogue.AddStatDependency(stats.Agility, stats.RangedAttackPower, 1) rogue.AddStatDependency(stats.Agility, stats.MeleeCrit, core.CritPerAgiAtLevel[character.Class][int(rogue.Level)]*core.CritRatingPerCritChance) diff --git a/sim/shaman/shaman.go b/sim/shaman/shaman.go index 1ae1a7961e..69c4706588 100644 --- a/sim/shaman/shaman.go +++ b/sim/shaman/shaman.go @@ -28,7 +28,7 @@ func NewShaman(character *core.Character, talents string) *Shaman { shaman.EnableManaBar() // Add Shaman stat dependencies - shaman.AddStatDependency(stats.Strength, stats.AttackPower, 2) + shaman.AddStatDependency(stats.Strength, stats.AttackPower, core.APPerStrength[character.Class]) shaman.AddStatDependency(stats.Agility, stats.MeleeCrit, core.CritPerAgiAtLevel[character.Class][int(shaman.Level)]*core.CritRatingPerCritChance) shaman.AddStatDependency(stats.Intellect, stats.SpellCrit, core.CritPerIntAtLevel[character.Class][int(shaman.Level)]*core.SpellCritRatingPerCritChance) shaman.AddStatDependency(stats.BonusArmor, stats.Armor, 1) diff --git a/sim/warlock/tank/TestDemonology.results b/sim/warlock/tank/TestDemonology.results index 13270634d0..6e6c080d1e 100644 --- a/sim/warlock/tank/TestDemonology.results +++ b/sim/warlock/tank/TestDemonology.results @@ -53,9 +53,9 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.23519 + weights: 0.23486 weights: 0 - weights: 0.72341 + weights: 0.72345 weights: 0 weights: 0 weights: 0 @@ -63,7 +63,7 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 5.96036 + weights: 5.95994 weights: 1.47474 weights: 0 weights: 0 @@ -99,15 +99,15 @@ stat_weights_results: { dps_results: { key: "TestDemonology-Lvl40-AllItems-DeathmistRaiment" value: { - dps: 257.32939 - tps: 146.08926 + dps: 257.18706 + tps: 145.94692 } } dps_results: { key: "TestDemonology-Lvl40-Average-Default" value: { - dps: 545.64793 - tps: 986.91034 + dps: 545.54 + tps: 986.74844 } } dps_results: { @@ -155,7 +155,7 @@ dps_results: { dps_results: { key: "TestDemonology-Lvl40-SwitchInFrontOfTarget-Default" value: { - dps: 539.17506 - tps: 976.57408 + dps: 539.0973 + tps: 976.45744 } } diff --git a/sim/warlock/tank/TestDestruction.results b/sim/warlock/tank/TestDestruction.results index a1a26358e8..3d4ce29f3d 100644 --- a/sim/warlock/tank/TestDestruction.results +++ b/sim/warlock/tank/TestDestruction.results @@ -200,7 +200,7 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: -0.24876 + weights: -0.24874 weights: 0 weights: 0.63064 weights: 0 @@ -210,7 +210,7 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 5.76186 + weights: 5.76182 weights: 2.61946 weights: 0 weights: 0 @@ -249,9 +249,9 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: -0.75862 + weights: -0.76078 weights: 0 - weights: 2.1923 + weights: 2.19305 weights: 0 weights: 0 weights: 0 @@ -358,15 +358,15 @@ dps_results: { dps_results: { key: "TestDestruction-Lvl40-AllItems-DeathmistRaiment" value: { - dps: 128.8589 - tps: 86.32779 + dps: 128.73751 + tps: 86.2064 } } dps_results: { key: "TestDestruction-Lvl40-Average-Default" value: { - dps: 411.30694 - tps: 963.92204 + dps: 411.22147 + tps: 963.79384 } } dps_results: { @@ -414,23 +414,23 @@ dps_results: { dps_results: { key: "TestDestruction-Lvl40-SwitchInFrontOfTarget-Default" value: { - dps: 404.67862 - tps: 953.12491 + dps: 404.61652 + tps: 953.03176 } } dps_results: { key: "TestDestruction-Lvl50-AllItems-DeathmistRaiment" value: { - dps: 303.64877 - tps: 211.60178 + dps: 303.50094 + tps: 211.45395 hps: 9.8368 } } dps_results: { key: "TestDestruction-Lvl50-Average-Default" value: { - dps: 1176.57707 - tps: 2032.13683 + dps: 1176.36583 + tps: 2031.81997 hps: 18.3079 } } @@ -485,8 +485,8 @@ dps_results: { dps_results: { key: "TestDestruction-Lvl50-SwitchInFrontOfTarget-Default" value: { - dps: 1149.32382 - tps: 1985.98969 + dps: 1149.17696 + tps: 1985.7694 hps: 18.35945 } } diff --git a/sim/warlock/warlock.go b/sim/warlock/warlock.go index 94ab788658..1dce68ea9d 100644 --- a/sim/warlock/warlock.go +++ b/sim/warlock/warlock.go @@ -180,9 +180,8 @@ func NewWarlock(character *core.Character, options *proto.Player, warlockOptions core.FillTalentsProto(warlock.Talents.ProtoReflect(), options.TalentsString, TalentTreeSizes) warlock.EnableManaBar() - warlock.AddStatDependency(stats.Strength, stats.AttackPower, 1) + warlock.AddStatDependency(stats.Strength, stats.AttackPower, core.APPerStrength[character.Class]) warlock.AddStatDependency(stats.BonusArmor, stats.Armor, 1) - warlock.AddStatDependency(stats.Intellect, stats.SpellCrit, core.CritPerIntAtLevel[warlock.Class][int(warlock.Level)]*core.SpellCritRatingPerCritChance) warlock.AddStatDependency(stats.Agility, stats.MeleeCrit, core.CritPerAgiAtLevel[warlock.Class][int(warlock.Level)]*core.CritRatingPerCritChance) diff --git a/sim/warrior/warrior.go b/sim/warrior/warrior.go index b31568c81f..1173a68dd7 100644 --- a/sim/warrior/warrior.go +++ b/sim/warrior/warrior.go @@ -157,10 +157,10 @@ func NewWarrior(character *core.Character, talents string, inputs WarriorInputs) warrior.PseudoStats.CanParry = true + warrior.AddStatDependency(stats.Strength, stats.AttackPower, core.APPerStrength[character.Class]) + warrior.AddStatDependency(stats.Strength, stats.BlockValue, .05) // 20 str = 1 block warrior.AddStatDependency(stats.Agility, stats.MeleeCrit, core.CritPerAgiAtLevel[character.Class][int(warrior.Level)]*core.CritRatingPerCritChance) warrior.AddStatDependency(stats.Agility, stats.Dodge, core.DodgePerAgiAtLevel[character.Class][int(warrior.Level)]) - warrior.AddStatDependency(stats.Strength, stats.AttackPower, 2) - warrior.AddStatDependency(stats.Strength, stats.BlockValue, .05) // 20 str = 1 block warrior.AddStatDependency(stats.BonusArmor, stats.Armor, 1) guardians.ConstructGuardians(&warrior.Character)