diff --git a/sim/common/tbc/enchant_effects.go b/sim/common/tbc/enchant_effects.go index 341b80da7a..9c87895b7a 100644 --- a/sim/common/tbc/enchant_effects.go +++ b/sim/common/tbc/enchant_effects.go @@ -14,9 +14,9 @@ func init() { // TODO: Crusader, Mongoose, and Executioner could also be modelled as AddWeaponEffect instead core.AddWeaponEffect(1897, func(agent core.Agent, slot proto.ItemSlot) { - w := &agent.GetCharacter().AutoAttacks.MH + w := agent.GetCharacter().AutoAttacks.MH() if slot == proto.ItemSlot_ItemSlotOffHand { - w = &agent.GetCharacter().AutoAttacks.OH + w = agent.GetCharacter().AutoAttacks.OH() } w.BaseDamageMin += 5 w.BaseDamageMax += 5 @@ -47,9 +47,9 @@ func init() { }) core.AddWeaponEffect(963, func(agent core.Agent, slot proto.ItemSlot) { - w := &agent.GetCharacter().AutoAttacks.MH + w := agent.GetCharacter().AutoAttacks.MH() if slot == proto.ItemSlot_ItemSlotOffHand { - w = &agent.GetCharacter().AutoAttacks.OH + w = agent.GetCharacter().AutoAttacks.OH() } w.BaseDamageMin += 7 w.BaseDamageMax += 7 @@ -134,7 +134,7 @@ func init() { }) core.AddWeaponEffect(2723, func(agent core.Agent, _ proto.ItemSlot) { - w := &agent.GetCharacter().AutoAttacks.Ranged + w := agent.GetCharacter().AutoAttacks.Ranged() w.BaseDamageMin += 12 w.BaseDamageMax += 12 }) diff --git a/sim/common/tbc/melee_trinkets.go b/sim/common/tbc/melee_trinkets.go index d4a5ca83d2..556aa0c80e 100644 --- a/sim/common/tbc/melee_trinkets.go +++ b/sim/common/tbc/melee_trinkets.go @@ -25,7 +25,7 @@ func init() { core.NewItemEffect(11815, func(agent core.Agent) { character := agent.GetCharacter() - if !character.AutoAttacks.AutoSwingMelee { + if !character.AutoAttacks.AutoSwingMelee() { return } @@ -40,17 +40,9 @@ func init() { Label: "Hand of Justice", Duration: core.NeverExpires, OnInit: func(aura *core.Aura, sim *core.Simulation) { - handOfJusticeSpell = character.GetOrRegisterSpell(core.SpellConfig{ - ActionID: core.ActionID{ItemID: 11815}, - SpellSchool: core.SpellSchoolPhysical, - ProcMask: core.ProcMaskMeleeMHAuto, - Flags: core.SpellFlagMeleeMetrics | core.SpellFlagIncludeTargetBonusDamage | core.SpellFlagNoOnCastComplete, - ApplyEffects: character.AutoAttacks.MHConfig.ApplyEffects, - - DamageMultiplier: 1, - CritMultiplier: character.DefaultMeleeCritMultiplier(), - ThreatMultiplier: 1, - }) + config := character.AutoAttacks.MHConfig + config.ActionID = core.ActionID{ItemID: 11815} + handOfJusticeSpell = character.GetOrRegisterSpell(config) }, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) diff --git a/sim/common/wotlk/capacitors.go b/sim/common/wotlk/capacitors.go index e06b25df58..3b6a80bc70 100644 --- a/sim/common/wotlk/capacitors.go +++ b/sim/common/wotlk/capacitors.go @@ -172,7 +172,7 @@ func init() { core.NewItemEffect(itemID, func(agent core.Agent) { character := agent.GetCharacter() - if !character.AutoAttacks.AutoSwingMelee { + if !character.AutoAttacks.AutoSwingMelee() { return } @@ -193,7 +193,7 @@ func init() { }, }) - if character.AutoAttacks.IsDualWielding { + if character.AutoAttacks.IsDualWielding() { ohSpell = character.GetOrRegisterSpell(core.SpellConfig{ ActionID: core.ActionID{SpellID: 71434}, // "Manifest Anger" SpellSchool: core.SpellSchoolPhysical, diff --git a/sim/common/wotlk/enchant_effects.go b/sim/common/wotlk/enchant_effects.go index f93d6fcad7..ba349525be 100644 --- a/sim/common/wotlk/enchant_effects.go +++ b/sim/common/wotlk/enchant_effects.go @@ -263,7 +263,7 @@ func init() { }) core.AddWeaponEffect(3843, func(agent core.Agent, _ proto.ItemSlot) { - w := &agent.GetCharacter().AutoAttacks.Ranged + w := agent.GetCharacter().AutoAttacks.Ranged() w.BaseDamageMin += 15 w.BaseDamageMax += 15 }) diff --git a/sim/core/attack.go b/sim/core/attack.go index 36adbc600f..780f7f9ce1 100644 --- a/sim/core/attack.go +++ b/sim/core/attack.go @@ -131,21 +131,21 @@ func (weapon *Weapon) CalculateNormalizedWeaponDamage(sim *Simulation, attackPow } func (unit *Unit) MHWeaponDamage(sim *Simulation, attackPower float64) float64 { - return unit.AutoAttacks.MH.CalculateWeaponDamage(sim, attackPower) + return unit.AutoAttacks.mh.CalculateWeaponDamage(sim, attackPower) } func (unit *Unit) MHNormalizedWeaponDamage(sim *Simulation, attackPower float64) float64 { - return unit.AutoAttacks.MH.CalculateNormalizedWeaponDamage(sim, attackPower) + return unit.AutoAttacks.mh.CalculateNormalizedWeaponDamage(sim, attackPower) } func (unit *Unit) OHWeaponDamage(sim *Simulation, attackPower float64) float64 { - return 0.5 * unit.AutoAttacks.OH.CalculateWeaponDamage(sim, attackPower) + return 0.5 * unit.AutoAttacks.oh.CalculateWeaponDamage(sim, attackPower) } func (unit *Unit) OHNormalizedWeaponDamage(sim *Simulation, attackPower float64) float64 { - return 0.5 * unit.AutoAttacks.OH.CalculateNormalizedWeaponDamage(sim, attackPower) + return 0.5 * unit.AutoAttacks.oh.CalculateNormalizedWeaponDamage(sim, attackPower) } func (unit *Unit) RangedWeaponDamage(sim *Simulation, attackPower float64) float64 { - return unit.AutoAttacks.Ranged.CalculateWeaponDamage(sim, attackPower) + return unit.AutoAttacks.ranged.CalculateWeaponDamage(sim, attackPower) } type MeleeDamageCalculator func(attackPower float64, bonusWeaponDamage float64) float64 @@ -165,34 +165,98 @@ func (spell *Spell) IsMelee() bool { return spell.ProcMask.Matches(ProcMaskMelee) } +func (aa *AutoAttacks) IsDualWielding() bool { + return aa.isDualWielding +} + +func (aa *AutoAttacks) MH() *Weapon { + return &aa.mh +} + +func (aa *AutoAttacks) SetMH(weapon Weapon) { + aa.mh = weapon + aa.mhAuto.CritMultiplier = weapon.CritMultiplier + aa.curMHSwingDuration = DurationFromSeconds(aa.mh.SwingSpeed / aa.curMeleeSpeed) +} + +func (aa *AutoAttacks) OH() *Weapon { + return &aa.oh +} + +func (aa *AutoAttacks) SetOH(weapon Weapon) { + aa.oh = weapon + aa.ohAuto.CritMultiplier = weapon.CritMultiplier + aa.curOHSwingDuration = DurationFromSeconds(aa.oh.SwingSpeed / aa.curMeleeSpeed) +} + +func (aa *AutoAttacks) Ranged() *Weapon { + return &aa.ranged +} + +func (aa *AutoAttacks) SetRanged(weapon Weapon) { + aa.ranged = weapon + aa.rangedAuto.CritMultiplier = weapon.CritMultiplier + aa.curRangedSwingDuration = DurationFromSeconds(aa.ranged.SwingSpeed / aa.curRangedSpeed) +} + +func (aa *AutoAttacks) AutoSwingMelee() bool { + return aa.autoSwingMelee +} + +func (aa *AutoAttacks) AutoSwingRanged() bool { + return aa.autoSwingRanged +} + +func (aa *AutoAttacks) MHAuto() *Spell { + return aa.mhAuto +} + +func (aa *AutoAttacks) OHAuto() *Spell { + return aa.ohAuto +} + +func (aa *AutoAttacks) RangedAuto() *Spell { + return aa.rangedAuto +} + +func (aa *AutoAttacks) OffhandSwingAt() time.Duration { + return aa.offhandSwingAt +} + +func (aa *AutoAttacks) SetOffhandSwingAt(offhandSwingAt time.Duration) { + aa.offhandSwingAt = offhandSwingAt +} + type AutoAttacks struct { - agent Agent - unit *Unit - MH Weapon - OH Weapon - Ranged Weapon + agent Agent + unit *Unit - IsDualWielding bool + mh Weapon + oh Weapon + ranged Weapon + + isDualWielding bool // If true, core engine will handle calling SwingMelee(). Set to false to manually manage // swings, for example for hunter melee weaving. - AutoSwingMelee bool + autoSwingMelee bool // If true, core engine will handle calling SwingRanged(). Unless you're a hunter, don't // use this. - AutoSwingRanged bool + autoSwingRanged bool - MainhandSwingAt time.Duration - OffhandSwingAt time.Duration - RangedSwingAt time.Duration + mainhandSwingAt time.Duration + offhandSwingAt time.Duration + rangedSwingAt time.Duration + // These are created in EnableAutoAttacks, and can be safely altered before finalize(), where the related spells are created MHConfig SpellConfig OHConfig SpellConfig RangedConfig SpellConfig - MHAuto *Spell - OHAuto *Spell - RangedAuto *Spell + mhAuto *Spell + ohAuto *Spell + rangedAuto *Spell ReplaceMHSwing ReplaceMHSwing @@ -215,7 +279,7 @@ type AutoAttackOptions struct { OffHand Weapon Ranged Weapon AutoSwingMelee bool // If true, core engine will handle calling SwingMelee() for you. - AutoSwingRanged bool // If true, core engine will handle calling SwingMelee() for you. + AutoSwingRanged bool // If true, core engine will handle calling SwingRanged() for you. SyncType int32 ReplaceMHSwing ReplaceMHSwing } @@ -230,18 +294,18 @@ func (unit *Unit) EnableAutoAttacks(agent Agent, options AutoAttackOptions) { unit.AutoAttacks = AutoAttacks{ agent: agent, unit: unit, - MH: options.MainHand, - OH: options.OffHand, - Ranged: options.Ranged, - AutoSwingMelee: options.AutoSwingMelee, - AutoSwingRanged: options.AutoSwingRanged, + mh: options.MainHand, + oh: options.OffHand, + ranged: options.Ranged, + autoSwingMelee: options.AutoSwingMelee, + autoSwingRanged: options.AutoSwingRanged, ReplaceMHSwing: options.ReplaceMHSwing, - IsDualWielding: options.MainHand.SwingSpeed != 0 && options.OffHand.SwingSpeed != 0, + isDualWielding: options.MainHand.SwingSpeed != 0 && options.OffHand.SwingSpeed != 0, } unit.AutoAttacks.MHConfig = SpellConfig{ ActionID: ActionID{OtherID: proto.OtherAction_OtherActionAttack, Tag: 1}, - SpellSchool: unit.AutoAttacks.MH.GetSpellSchool(), + SpellSchool: unit.AutoAttacks.mh.GetSpellSchool(), ProcMask: ProcMaskMeleeMHAuto, Flags: SpellFlagMeleeMetrics | SpellFlagIncludeTargetBonusDamage | SpellFlagNoOnCastComplete, @@ -259,7 +323,7 @@ func (unit *Unit) EnableAutoAttacks(agent Agent, options AutoAttackOptions) { unit.AutoAttacks.OHConfig = SpellConfig{ ActionID: ActionID{OtherID: proto.OtherAction_OtherActionAttack, Tag: 2}, - SpellSchool: unit.AutoAttacks.OH.GetSpellSchool(), + SpellSchool: unit.AutoAttacks.oh.GetSpellSchool(), ProcMask: ProcMaskMeleeOHAuto, Flags: SpellFlagMeleeMetrics | SpellFlagIncludeTargetBonusDamage | SpellFlagNoOnCastComplete, @@ -295,13 +359,13 @@ func (unit *Unit) EnableAutoAttacks(agent Agent, options AutoAttackOptions) { if unit.Type == EnemyUnit { unit.AutoAttacks.MHConfig.ApplyEffects = func(sim *Simulation, target *Unit, spell *Spell) { ap := max(0, spell.Unit.stats[stats.AttackPower]) - baseDamage := spell.Unit.AutoAttacks.MH.EnemyWeaponDamage(sim, ap, spell.Unit.PseudoStats.DamageSpread) + baseDamage := spell.Unit.AutoAttacks.mh.EnemyWeaponDamage(sim, ap, spell.Unit.PseudoStats.DamageSpread) spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeEnemyMeleeWhite) } unit.AutoAttacks.OHConfig.ApplyEffects = func(sim *Simulation, target *Unit, spell *Spell) { ap := max(0, spell.Unit.stats[stats.AttackPower]) - baseDamage := spell.Unit.AutoAttacks.MH.EnemyWeaponDamage(sim, ap, spell.Unit.PseudoStats.DamageSpread) * 0.5 + baseDamage := spell.Unit.AutoAttacks.mh.EnemyWeaponDamage(sim, ap, spell.Unit.PseudoStats.DamageSpread) * 0.5 spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeEnemyMeleeWhite) } @@ -316,47 +380,47 @@ func (unit *Unit) EnableAutoAttacks(agent Agent, options AutoAttackOptions) { func (unit *Unit) OnAutoAttack(_ *Simulation, _ *Spell) {} func (aa *AutoAttacks) finalize() { - if aa.AutoSwingMelee { - aa.MHAuto = aa.unit.GetOrRegisterSpell(aa.MHConfig) - aa.OHAuto = aa.unit.GetOrRegisterSpell(aa.OHConfig) + if aa.autoSwingMelee { + aa.mhAuto = aa.unit.GetOrRegisterSpell(aa.MHConfig) + aa.ohAuto = aa.unit.GetOrRegisterSpell(aa.OHConfig) } - if aa.AutoSwingRanged { - aa.RangedAuto = aa.unit.GetOrRegisterSpell(aa.RangedConfig) + if aa.autoSwingRanged { + aa.rangedAuto = aa.unit.GetOrRegisterSpell(aa.RangedConfig) } } func (aa *AutoAttacks) reset(sim *Simulation) { - if !aa.AutoSwingMelee && !aa.AutoSwingRanged { + if !aa.autoSwingMelee && !aa.autoSwingRanged { return } - if aa.AutoSwingMelee { + if aa.autoSwingMelee { aa.curMeleeSpeed = aa.unit.SwingSpeed() - aa.UpdateMeleeDurations() + aa.updateMeleeDurations() - aa.MainhandSwingAt = 0 - aa.OffhandSwingAt = 0 + aa.mainhandSwingAt = 0 + aa.offhandSwingAt = 0 // Apply random delay of 0 - 50% swing time, to one of the weapons if dual wielding - if aa.IsDualWielding { + if aa.isDualWielding { if aa.unit.Type == EnemyUnit { - aa.OffhandSwingAt = DurationFromSeconds(aa.MH.SwingSpeed / 2) + aa.offhandSwingAt = DurationFromSeconds(aa.mh.SwingSpeed / 2) } else { if sim.RandomFloat("SwingResetWeapon") < 0.5 { - aa.MainhandSwingAt = DurationFromSeconds(sim.RandomFloat("SwingResetDelay") * aa.MH.SwingSpeed / 2) + aa.mainhandSwingAt = DurationFromSeconds(sim.RandomFloat("SwingResetDelay") * aa.mh.SwingSpeed / 2) } else { - aa.OffhandSwingAt = DurationFromSeconds(sim.RandomFloat("SwingResetDelay") * aa.MH.SwingSpeed / 2) + aa.offhandSwingAt = DurationFromSeconds(sim.RandomFloat("SwingResetDelay") * aa.mh.SwingSpeed / 2) } } } } - if aa.AutoSwingRanged { + if aa.autoSwingRanged { aa.curRangedSpeed = aa.unit.RangedSwingSpeed() aa.UpdateRangedDuration() - aa.RangedSwingAt = 0 + aa.rangedSwingAt = 0 } aa.autoSwingAction = nil @@ -368,11 +432,11 @@ func (aa *AutoAttacks) startPull(sim *Simulation) { return } - if aa.AutoSwingMelee { + if aa.autoSwingMelee { aa.rescheduleMelee(sim) } - if aa.AutoSwingRanged { + if aa.autoSwingRanged { aa.rescheduleRanged(sim) } } @@ -389,11 +453,11 @@ func (aa *AutoAttacks) rescheduleRanged(sim *Simulation) { var pa *PendingAction pa = &PendingAction{ - NextActionAt: aa.RangedSwingAt, + NextActionAt: aa.rangedSwingAt, Priority: ActionPriorityAuto, OnAction: func(sim *Simulation) { aa.SwingRanged(sim, aa.unit.CurrentTarget) - pa.NextActionAt = aa.RangedSwingAt + pa.NextActionAt = aa.rangedSwingAt // Cancelled means we made a new one because of a swing speed change. if !pa.cancelled { @@ -450,20 +514,20 @@ func (aa *AutoAttacks) EnableAutoSwing(sim *Simulation) { aa.autoSwingCancelled = false - if aa.AutoSwingMelee { - if aa.MainhandSwingAt < sim.CurrentTime { - aa.MainhandSwingAt = sim.CurrentTime + if aa.autoSwingMelee { + if aa.mainhandSwingAt < sim.CurrentTime { + aa.mainhandSwingAt = sim.CurrentTime } - if aa.OffhandSwingAt < sim.CurrentTime { - aa.OffhandSwingAt = sim.CurrentTime + if aa.offhandSwingAt < sim.CurrentTime { + aa.offhandSwingAt = sim.CurrentTime } aa.rescheduleMelee(sim) } - if aa.AutoSwingRanged { - if aa.RangedSwingAt < sim.CurrentTime { - aa.RangedSwingAt = sim.CurrentTime + if aa.autoSwingRanged { + if aa.rangedSwingAt < sim.CurrentTime { + aa.rangedSwingAt = sim.CurrentTime } aa.rescheduleRanged(sim) @@ -497,20 +561,24 @@ func (aa *AutoAttacks) SwingRanged(sim *Simulation, target *Unit) { // Performs an auto attack using the main hand weapon, if the MH CD is ready. func (aa *AutoAttacks) TrySwingMH(sim *Simulation, target *Unit) { - if aa.MainhandSwingAt > sim.CurrentTime { + if aa.mainhandSwingAt > sim.CurrentTime { return } - if aa.unit.IsUsingAPL { - // Need to check APL here to allow last-moment HS queue casts. - aa.unit.Rotation.DoNextAction(sim) - } + attackSpell := aa.mhAuto - attackSpell := aa.MaybeReplaceMHSwing(sim, aa.MHAuto) + if aa.ReplaceMHSwing != nil { + if aa.unit.IsUsingAPL { + // Need to check APL here to allow last-moment HS queue casts. + aa.unit.Rotation.DoNextAction(sim) + } + // Allow MH swing to be overridden for abilities like Heroic Strike. + attackSpell = aa.ReplaceMHSwing(sim, aa.mhAuto) + } // Update swing timer BEFORE the cast, so that APL checks for TimeToNextAuto behave correctly // if the attack causes APL evaluations (e.g. from rage gain). - aa.MainhandSwingAt = sim.CurrentTime + aa.curMHSwingDuration + aa.mainhandSwingAt = sim.CurrentTime + aa.curMHSwingDuration attackSpell.Cast(sim, target) if !sim.Options.Interactive { @@ -535,78 +603,77 @@ func (aa *AutoAttacks) MaybeReplaceMHSwing(sim *Simulation, mhSwingSpell *Spell) // Performs an auto attack using the main hand weapon, if the OH CD is ready. func (aa *AutoAttacks) TrySwingOH(sim *Simulation, target *Unit) { - if !aa.IsDualWielding || aa.OffhandSwingAt > sim.CurrentTime { + if !aa.isDualWielding || aa.offhandSwingAt > sim.CurrentTime { return } // Update swing timer BEFORE the cast, so that APL checks for TimeToNextAuto behave correctly // if the attack causes APL evaluations (e.g. from rage gain). - aa.OffhandSwingAt = sim.CurrentTime + aa.curOHSwingDuration - aa.OHAuto.Cast(sim, target) + aa.offhandSwingAt = sim.CurrentTime + aa.curOHSwingDuration + aa.ohAuto.Cast(sim, target) if !sim.Options.Interactive { if aa.unit.IsUsingAPL { aa.unit.Rotation.DoNextAction(sim) } else { - aa.agent.OnAutoAttack(sim, aa.OHAuto) + aa.agent.OnAutoAttack(sim, aa.ohAuto) } } } // Performs an auto attack using the ranged weapon, if the Ranged CD is ready. func (aa *AutoAttacks) TrySwingRanged(sim *Simulation, target *Unit) { - if aa.RangedSwingAt > sim.CurrentTime { + if aa.rangedSwingAt > sim.CurrentTime { return } // Update swing timer BEFORE the cast, so that APL checks for TimeToNextAuto behave correctly // if the attack causes APL evaluations. - aa.RangedSwingAt = sim.CurrentTime + aa.RangedSwingSpeed() - aa.RangedAuto.Cast(sim, target) + aa.rangedSwingAt = sim.CurrentTime + aa.RangedSwingSpeed() + aa.rangedAuto.Cast(sim, target) if !sim.Options.Interactive { if aa.unit.IsUsingAPL { aa.unit.Rotation.DoNextAction(sim) } else { - aa.agent.OnAutoAttack(sim, aa.RangedAuto) + aa.agent.OnAutoAttack(sim, aa.rangedAuto) } } } -// This is used internally, and for druid shifts (where a weapon changes without resetting the swing timer). -func (aa *AutoAttacks) UpdateMeleeDurations() { - aa.curMHSwingDuration = DurationFromSeconds(aa.MH.SwingSpeed / aa.curMeleeSpeed) - if aa.IsDualWielding { - aa.curOHSwingDuration = DurationFromSeconds(aa.OH.SwingSpeed / aa.curMeleeSpeed) +func (aa *AutoAttacks) updateMeleeDurations() { + aa.curMHSwingDuration = DurationFromSeconds(aa.mh.SwingSpeed / aa.curMeleeSpeed) + if aa.isDualWielding { + aa.curOHSwingDuration = DurationFromSeconds(aa.oh.SwingSpeed / aa.curMeleeSpeed) } } func (aa *AutoAttacks) UpdateRangedDuration() { - aa.curRangedSwingDuration = DurationFromSeconds(aa.Ranged.SwingSpeed / aa.curRangedSpeed) + aa.curRangedSwingDuration = DurationFromSeconds(aa.ranged.SwingSpeed / aa.curRangedSpeed) } func (aa *AutoAttacks) UpdateSwingTimers(sim *Simulation) { - if aa.AutoSwingRanged { + if aa.autoSwingRanged { aa.curRangedSpeed = aa.unit.RangedSwingSpeed() aa.UpdateRangedDuration() // ranged attack speed changes aren't applied mid-"swing" } - if aa.AutoSwingMelee { + if aa.autoSwingMelee { oldSwingSpeed := aa.curMeleeSpeed aa.curMeleeSpeed = aa.unit.SwingSpeed() - aa.UpdateMeleeDurations() + aa.updateMeleeDurations() f := oldSwingSpeed / aa.curMeleeSpeed - if remainingSwingTime := aa.MainhandSwingAt - sim.CurrentTime; remainingSwingTime > 0 { - aa.MainhandSwingAt = sim.CurrentTime + time.Duration(float64(remainingSwingTime)*f) + if remainingSwingTime := aa.mainhandSwingAt - sim.CurrentTime; remainingSwingTime > 0 { + aa.mainhandSwingAt = sim.CurrentTime + time.Duration(float64(remainingSwingTime)*f) } - if aa.IsDualWielding { - if remainingSwingTime := aa.OffhandSwingAt - sim.CurrentTime; remainingSwingTime > 0 { - aa.OffhandSwingAt = sim.CurrentTime + time.Duration(float64(remainingSwingTime)*f) + if aa.isDualWielding { + if remainingSwingTime := aa.offhandSwingAt - sim.CurrentTime; remainingSwingTime > 0 { + aa.offhandSwingAt = sim.CurrentTime + time.Duration(float64(remainingSwingTime)*f) } } @@ -625,7 +692,7 @@ func (aa *AutoAttacks) UpdateSwingTimers(sim *Simulation) { // StopMeleeUntil should be used whenever a non-melee spell is cast. It stops melee, then restarts it // at end of cast, but with a reset swing timer (as if swings had just landed). func (aa *AutoAttacks) StopMeleeUntil(sim *Simulation, readyAt time.Duration, desyncOH bool) { - if !aa.AutoSwingMelee { // if not auto swinging, don't auto restart. + if !aa.autoSwingMelee { // if not auto swinging, don't auto restart. return } @@ -648,12 +715,12 @@ func (aa *AutoAttacks) restartMelee(sim *Simulation, desyncOH bool) { aa.autoSwingCancelled = false - aa.MainhandSwingAt = sim.CurrentTime + aa.curMHSwingDuration - if aa.IsDualWielding { - aa.OffhandSwingAt = sim.CurrentTime + aa.curOHSwingDuration + aa.mainhandSwingAt = sim.CurrentTime + aa.curMHSwingDuration + if aa.isDualWielding { + aa.offhandSwingAt = sim.CurrentTime + aa.curOHSwingDuration if desyncOH { // Used by warrior to desync offhand after unglyphed Shattering Throw. - aa.OffhandSwingAt += aa.curOHSwingDuration / 2 + aa.offhandSwingAt += aa.curOHSwingDuration / 2 } } @@ -666,30 +733,30 @@ func (aa *AutoAttacks) DelayMeleeBy(sim *Simulation, delay time.Duration) { return } - aa.MainhandSwingAt += delay - if aa.IsDualWielding { - aa.OffhandSwingAt += delay + aa.mainhandSwingAt += delay + if aa.isDualWielding { + aa.offhandSwingAt += delay } aa.rescheduleMelee(sim) } func (aa *AutoAttacks) DelayRangedUntil(sim *Simulation, readyAt time.Duration) { - if readyAt <= aa.RangedSwingAt { + if readyAt <= aa.rangedSwingAt { return } - aa.RangedSwingAt = readyAt + aa.rangedSwingAt = readyAt aa.rescheduleRanged(sim) } // Returns the time at which the next attack will occur. func (aa *AutoAttacks) NextAttackAt() time.Duration { - if aa.IsDualWielding && aa.OffhandSwingAt < aa.MainhandSwingAt { - return aa.OffhandSwingAt + if aa.isDualWielding && aa.offhandSwingAt < aa.mainhandSwingAt { + return aa.offhandSwingAt } else { - return aa.MainhandSwingAt + return aa.mainhandSwingAt } } @@ -718,7 +785,7 @@ func (ppmm *PPMManager) Chance(procMask ProcMask) float64 { } func (aa *AutoAttacks) NewPPMManager(ppm float64, procMask ProcMask) PPMManager { - if !aa.AutoSwingMelee && !aa.AutoSwingRanged { + if !aa.autoSwingMelee && !aa.autoSwingRanged { return PPMManager{} } @@ -738,9 +805,9 @@ func (aa *AutoAttacks) NewPPMManager(ppm float64, procMask ProcMask) PPMManager ppmm.procChances = append(ppmm.procChances, speed) } - mergeOrAppend(aa.MH.SwingSpeed, procMask&^ProcMaskRanged&^ProcMaskMeleeOH) // "everything else", even if not explicitly flagged MH - mergeOrAppend(aa.OH.SwingSpeed, procMask&ProcMaskMeleeOH) - mergeOrAppend(aa.Ranged.SwingSpeed, procMask&ProcMaskRanged) + mergeOrAppend(aa.mh.SwingSpeed, procMask&^ProcMaskRanged&^ProcMaskMeleeOH) // "everything else", even if not explicitly flagged MH + mergeOrAppend(aa.oh.SwingSpeed, procMask&ProcMaskMeleeOH) + mergeOrAppend(aa.ranged.SwingSpeed, procMask&ProcMaskRanged) for i := range ppmm.procChances { ppmm.procChances[i] *= ppm / 60 @@ -753,23 +820,23 @@ func (aa *AutoAttacks) NewPPMManager(ppm float64, procMask ProcMask) PPMManager // Using NewPPMManager() is preferred; this function should only be used when // the attacker is not known at initialization time. func (aa *AutoAttacks) PPMProc(sim *Simulation, ppm float64, procMask ProcMask, label string, spell *Spell) bool { - if !aa.AutoSwingMelee && !aa.AutoSwingRanged { + if !aa.autoSwingMelee && !aa.autoSwingRanged { return false } switch { case spell.ProcMask.Matches(procMask &^ ProcMaskMeleeOH &^ ProcMaskRanged): - return sim.RandomFloat(label) < ppm*aa.MH.SwingSpeed/60.0 + return sim.RandomFloat(label) < ppm*aa.mh.SwingSpeed/60.0 case spell.ProcMask.Matches(procMask & ProcMaskMeleeOH): - return sim.RandomFloat(label) < ppm*aa.OH.SwingSpeed/60.0 + return sim.RandomFloat(label) < ppm*aa.oh.SwingSpeed/60.0 case spell.ProcMask.Matches(procMask & ProcMaskRanged): - return sim.RandomFloat(label) < ppm*aa.Ranged.SwingSpeed/60.0 + return sim.RandomFloat(label) < ppm*aa.ranged.SwingSpeed/60.0 } return false } func (unit *Unit) applyParryHaste() { - if !unit.PseudoStats.ParryHaste || !unit.AutoAttacks.AutoSwingMelee { + if !unit.PseudoStats.ParryHaste || !unit.AutoAttacks.autoSwingMelee { return } @@ -784,7 +851,7 @@ func (unit *Unit) applyParryHaste() { return } - remainingTime := aura.Unit.AutoAttacks.MainhandSwingAt - sim.CurrentTime + remainingTime := aura.Unit.AutoAttacks.mainhandSwingAt - sim.CurrentTime swingSpeed := aura.Unit.AutoAttacks.curMHSwingDuration minRemainingTime := time.Duration(float64(swingSpeed) * 0.2) // 20% of Swing Speed defaultReduction := minRemainingTime * 2 // 40% of Swing Speed @@ -794,12 +861,12 @@ func (unit *Unit) applyParryHaste() { } parryHasteReduction := min(defaultReduction, remainingTime-minRemainingTime) - newReadyAt := aura.Unit.AutoAttacks.MainhandSwingAt - parryHasteReduction + newReadyAt := aura.Unit.AutoAttacks.mainhandSwingAt - parryHasteReduction if sim.Log != nil { aura.Unit.Log(sim, "MH Swing reduced by %s due to parry haste, will now occur at %s", parryHasteReduction, newReadyAt) } - aura.Unit.AutoAttacks.MainhandSwingAt = newReadyAt + aura.Unit.AutoAttacks.mainhandSwingAt = newReadyAt aura.Unit.AutoAttacks.rescheduleMelee(sim) }, }) diff --git a/sim/core/attack_test.go b/sim/core/attack_test.go deleted file mode 100644 index 874d77fd99..0000000000 --- a/sim/core/attack_test.go +++ /dev/null @@ -1,137 +0,0 @@ -package core - -import ( - //"math/rand" - //"testing" - - //"github.com/wowsims/wotlk/sim/core" - "github.com/wowsims/wotlk/sim/core/proto" -) - -// These tests are currently broken, seems like target PseudoStats are somehow not being set. -//func TestAutoSwing(t *testing.T) { -// a := &FakeAgent{} -// c := &Character{ -// Metrics: NewCharacterMetrics(), -// Equip: core.Equipment{ -// proto.ItemSlot_ItemSlotMainHand: core.ByID[32262], -// proto.ItemSlot_ItemSlotOffHand: core.ByID[32262], -// }, -// } -// sim := &Simulation{ -// rand: rand.New(rand.NewSource(1)), -// Options: proto.SimOptions{}, -// encounter: Encounter{ -// Targets: []*Target{NewTarget(proto.Target{}, 0)}, -// }, -// isTest: true, -// testRands: make(map[string]*rand.Rand), -// emptyAuras: make([]Aura, numAuraIDs), -// pendingActionPool: newPAPool(), -// } -// -// c.EnableAutoAttacks(a, AutoAttackOptions{ -// MainHand: c.WeaponFromMainHand(c.DefaultMeleeCritMultiplier()), -// OffHand: c.WeaponFromOffHand(c.DefaultMeleeCritMultiplier()), -// }) -// c.AutoAttacks.TrySwingMH(sim, sim.GetPrimaryTarget()) -// c.AutoAttacks.TrySwingOH(sim, sim.GetPrimaryTarget()) -// -// metricTests := []struct { -// key ActionKey -// value float64 -// }{ -// {key: NewActionKey(ActionID{OtherID: proto.OtherAction_OtherActionAttack, Tag: 1}), value: 323.355012}, -// {key: NewActionKey(ActionID{OtherID: proto.OtherAction_OtherActionAttack, Tag: 2}), value: 126.601614}, -// } -// tolerance := 0.0001 -// for _, mt := range metricTests { -// if c.Metrics.actions[mt.key].Damage < mt.value-tolerance || c.Metrics.actions[mt.key].Damage > mt.value+tolerance { -// t.Fatalf("Failed... Expected: %f, Actual: %f", mt.value, c.Metrics.actions[mt.key].Damage) -// } -// } -//} -// -//func TestRangedAutoSwing(t *testing.T) { -// a := &FakeAgent{} -// c := &Character{ -// Metrics: NewCharacterMetrics(), -// Equip: core.Equipment{ -// proto.ItemSlot_ItemSlotRanged: core.ByID[28772], // sunfury bow phoenix -// proto.ItemSlot_ItemSlotMainHand: core.ByID[28435], // mooncleaver -// }, -// } -// sim := &Simulation{ -// rand: rand.New(rand.NewSource(1)), -// Options: proto.SimOptions{}, -// encounter: Encounter{ -// Targets: []*Target{{}}, -// }, -// isTest: true, -// testRands: make(map[string]*rand.Rand), -// emptyAuras: make([]Aura, numAuraIDs), -// pendingActionPool: newPAPool(), -// } -// -// c.EnableAutoAttacks(a, AutoAttackOptions{ -// MainHand: c.WeaponFromMainHand(c.DefaultMeleeCritMultiplier()), -// Ranged: c.WeaponFromRanged(0), -// }) -// c.AutoAttacks.TrySwingMH(sim, sim.GetPrimaryTarget()) -// c.AutoAttacks.Ranged.CritMultiplier = 2.0 // technically hunters actually calculate this. -// c.AutoAttacks.RangedAuto.CritMultiplier = 2.0 -// // Ranged autos require a windup, so we just skip that here. -// ama := c.AutoAttacks.RangedAuto -// ama.Effect.Target = sim.GetPrimaryTarget() -// ama.Cast(sim) -// -// metricTests := []struct { -// name string -// key ActionKey -// value float64 -// }{ -// {name: "main hand attack", key: NewActionKey(ActionID{OtherID: proto.OtherAction_OtherActionAttack, Tag: 1}), value: 483.630072}, -// {name: "ranged attack", key: NewActionKey(ActionID{OtherID: proto.OtherAction_OtherActionShoot}), value: 218.079693}, -// } -// tolerance := 0.0001 -// -// for _, mt := range metricTests { -// if c.Metrics.actions[mt.key].Damage < mt.value-tolerance || c.Metrics.actions[mt.key].Damage > mt.value+tolerance { -// t.Fatalf("Failed (%s) Expected: %f, Actual: %f", mt.name, mt.value, c.Metrics.actions[mt.key].Damage) -// } -// } -//} - -func (fa *FakeAgent) GetCharacter() *Character { - return &fa.Character -} -func (fa *FakeAgent) Initialize() { - if fa.Init != nil { - fa.Init() - } -} -func (fa *FakeAgent) AddRaidBuffs(raidBuffs *proto.RaidBuffs) { - -} -func (fa *FakeAgent) AddPartyBuffs(partyBuffs *proto.PartyBuffs) { - -} -func (fa *FakeAgent) ApplyTalents() { - -} -func (fa *FakeAgent) Reset(sim *Simulation) { - -} -func (fa *FakeAgent) OnGCDReady(sim *Simulation) { - -} -func (fa *FakeAgent) OnAutoAttack(sim *Simulation, spell *Spell) { - -} - -type FakeAgent struct { - Spell *Spell - Dot *Dot - Character - Init func() -} diff --git a/sim/core/character.go b/sim/core/character.go index b60b834d84..20bd013479 100644 --- a/sim/core/character.go +++ b/sim/core/character.go @@ -313,7 +313,6 @@ func (character *Character) applyItemEffects(agent Agent) { } } - // TODO: should we use eq.Enchant.EffectID because some enchants use a spellID instead of itemID? if applyEnchantEffect, ok := enchantEffects[eq.Enchant.EffectID]; ok { applyEnchantEffect(agent) } @@ -353,6 +352,7 @@ func (character *Character) GetBaseStats() stats.Stats { // Returns the crit multiplier for a spell. // https://web.archive.org/web/20081014064638/http://elitistjerks.com/f31/t12595-relentless_earthstorm_diamond_-_melee_only/p4/ // https://github.com/TheGroxEmpire/TBC_DPS_Warrior_Sim/issues/30 +// TODO "primaryModifiers" could be modelled as a PseudoStat, since they're unit-specific. "secondaryModifiers" apply to a specific set of spells. func (character *Character) calculateCritMultiplier(normalCritDamage float64, primaryModifiers float64, secondaryModifiers float64) float64 { if character.HasMetaGemEquipped(34220) || character.HasMetaGemEquipped(32409) || @@ -625,9 +625,9 @@ func (character *Character) doneIteration(sim *Simulation) { func (character *Character) GetPseudoStatsProto() []float64 { vals := make([]float64, stats.PseudoStatsLen) - vals[proto.PseudoStat_PseudoStatMainHandDps] = character.AutoAttacks.MH.DPS() - vals[proto.PseudoStat_PseudoStatOffHandDps] = character.AutoAttacks.OH.DPS() - vals[proto.PseudoStat_PseudoStatRangedDps] = character.AutoAttacks.Ranged.DPS() + vals[proto.PseudoStat_PseudoStatMainHandDps] = character.AutoAttacks.MH().DPS() + vals[proto.PseudoStat_PseudoStatOffHandDps] = character.AutoAttacks.OH().DPS() + vals[proto.PseudoStat_PseudoStatRangedDps] = character.AutoAttacks.Ranged().DPS() vals[proto.PseudoStat_PseudoStatBlockValueMultiplier] = character.PseudoStats.BlockValueMultiplier // Base values are modified by Enemy attackTables, but we display for LVL 80 enemy as paperdoll default vals[proto.PseudoStat_PseudoStatDodge] = character.PseudoStats.BaseDodge + character.GetDiminishedDodgeChance() diff --git a/sim/core/dot_test.go b/sim/core/dot_test.go index b3cfe23e40..1da5e272ee 100644 --- a/sim/core/dot_test.go +++ b/sim/core/dot_test.go @@ -23,7 +23,28 @@ func init() { ) } -func NewFakeElementalShaman(char *Character, options *proto.Player) Agent { +type FakeAgent struct { + Spell *Spell + Dot *Dot + Character + Init func() +} + +func (fa *FakeAgent) GetCharacter() *Character { + return &fa.Character +} + +func (fa *FakeAgent) Initialize() { + if fa.Init != nil { + fa.Init() + } +} + +func (fa *FakeAgent) ApplyTalents() {} +func (fa *FakeAgent) Reset(_ *Simulation) {} +func (fa *FakeAgent) OnGCDReady(_ *Simulation) {} + +func NewFakeElementalShaman(char *Character, _ *proto.Player) Agent { fa := &FakeAgent{ Character: *char, } diff --git a/sim/core/item_swaps.go b/sim/core/item_swaps.go index 4327fce764..1c247f2c04 100644 --- a/sim/core/item_swaps.go +++ b/sim/core/item_swaps.go @@ -142,7 +142,7 @@ func (swap *ItemSwap) SwapItems(sim *Simulation, slots []proto.ItemSlot, useGCD onSwap(sim) } - if character.AutoAttacks.AutoSwingMelee && meleeWeaponSwapped && sim.CurrentTime > 0 { + if character.AutoAttacks.AutoSwingMelee() && meleeWeaponSwapped && sim.CurrentTime > 0 { character.AutoAttacks.CancelAutoSwing(sim) character.AutoAttacks.restartMelee(sim, false) } @@ -191,23 +191,22 @@ func (swap *ItemSwap) getItemStats(item Item) stats.Stats { func (swap *ItemSwap) swapWeapon(slot proto.ItemSlot) { character := swap.character - if !character.AutoAttacks.AutoSwingMelee && !character.AutoAttacks.AutoSwingRanged { + if !character.AutoAttacks.AutoSwingMelee() && !character.AutoAttacks.AutoSwingRanged() { return } switch slot { case proto.ItemSlot_ItemSlotMainHand: - character.AutoAttacks.MH = character.WeaponFromMainHand(swap.mhCritMultiplier) + character.AutoAttacks.SetMH(character.WeaponFromMainHand(swap.mhCritMultiplier)) case proto.ItemSlot_ItemSlotOffHand: - character.AutoAttacks.OH = character.WeaponFromOffHand(swap.ohCritMultiplier) + character.AutoAttacks.SetOH(character.WeaponFromOffHand(swap.ohCritMultiplier)) //Special case for when the OHAuto Spell was set up with a non weapon and does not have a crit multiplier. - character.AutoAttacks.OHAuto.CritMultiplier = swap.ohCritMultiplier character.PseudoStats.CanBlock = character.OffHand().WeaponType == proto.WeaponType_WeaponTypeShield case proto.ItemSlot_ItemSlotRanged: - character.AutoAttacks.Ranged = character.WeaponFromRanged(swap.rangedCritMultiplier) + character.AutoAttacks.SetRanged(character.WeaponFromRanged(swap.rangedCritMultiplier)) } - character.AutoAttacks.IsDualWielding = character.MainHand().SwingSpeed != 0 && character.OffHand().SwingSpeed != 0 + character.AutoAttacks.isDualWielding = character.MainHand().SwingSpeed != 0 && character.OffHand().SwingSpeed != 0 } func (swap *ItemSwap) finalize() { diff --git a/sim/core/spell_outcome.go b/sim/core/spell_outcome.go index dc91175b15..64581450c3 100644 --- a/sim/core/spell_outcome.go +++ b/sim/core/spell_outcome.go @@ -21,11 +21,11 @@ func (spell *Spell) OutcomeAlwaysMiss(_ *Simulation, result *SpellResult, _ *Att } // A tick always hits, but we don't count them as hits in the metrics. -func (dot *Dot) OutcomeTick(sim *Simulation, result *SpellResult, attackTable *AttackTable) { +func (dot *Dot) OutcomeTick(_ *Simulation, result *SpellResult, _ *AttackTable) { result.Outcome = OutcomeHit } -func (dot *Dot) OutcomeTickCounted(sim *Simulation, result *SpellResult, attackTable *AttackTable) { +func (dot *Dot) OutcomeTickCounted(_ *Simulation, result *SpellResult, _ *AttackTable) { result.Outcome = OutcomeHit dot.Spell.SpellMetrics[result.Target.UnitIndex].Hits++ } @@ -39,7 +39,7 @@ func (dot *Dot) OutcomeTickPhysicalCrit(sim *Simulation, result *SpellResult, at } } -func (dot *Dot) OutcomeSnapshotCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable) { +func (dot *Dot) OutcomeSnapshotCrit(sim *Simulation, result *SpellResult, _ *AttackTable) { if dot.Spell.CritMultiplier == 0 { panic("Spell " + dot.Spell.ActionID.String() + " missing CritMultiplier") } @@ -93,7 +93,7 @@ func (spell *Spell) OutcomeMagicHitAndCrit(sim *Simulation, result *SpellResult, } } -func (spell *Spell) OutcomeMagicCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable) { +func (spell *Spell) OutcomeMagicCrit(sim *Simulation, result *SpellResult, _ *AttackTable) { if spell.CritMultiplier == 0 { panic("Spell " + spell.ActionID.String() + " missing CritMultiplier") } @@ -107,12 +107,12 @@ func (spell *Spell) OutcomeMagicCrit(sim *Simulation, result *SpellResult, attac } } -func (spell *Spell) OutcomeHealing(sim *Simulation, result *SpellResult, attackTable *AttackTable) { +func (spell *Spell) OutcomeHealing(_ *Simulation, result *SpellResult, _ *AttackTable) { result.Outcome = OutcomeHit spell.SpellMetrics[result.Target.UnitIndex].Hits++ } -func (spell *Spell) OutcomeHealingCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable) { +func (spell *Spell) OutcomeHealingCrit(sim *Simulation, result *SpellResult, _ *AttackTable) { if spell.CritMultiplier == 0 { panic("Spell " + spell.ActionID.String() + " missing CritMultiplier") } @@ -378,7 +378,7 @@ func (spell *Spell) fixedCritCheck(sim *Simulation, critChance float64) bool { func (result *SpellResult) applyAttackTableMiss(spell *Spell, attackTable *AttackTable, roll float64, chance *float64) bool { missChance := attackTable.BaseMissChance - spell.PhysicalHitChance(attackTable) - if spell.Unit.AutoAttacks.IsDualWielding && !spell.Unit.PseudoStats.DisableDWMissPenalty { + if spell.Unit.AutoAttacks.IsDualWielding() && !spell.Unit.PseudoStats.DisableDWMissPenalty { missChance += 0.19 } *chance = max(0, missChance) @@ -505,7 +505,7 @@ func (result *SpellResult) applyAttackTableHit(spell *Spell) { func (result *SpellResult) applyEnemyAttackTableMiss(spell *Spell, attackTable *AttackTable, roll float64, chance *float64) bool { missChance := attackTable.BaseMissChance + spell.Unit.PseudoStats.IncreasedMissChance + result.Target.GetDiminishedMissChance() + result.Target.PseudoStats.ReducedPhysicalHitTakenChance - if spell.Unit.AutoAttacks.IsDualWielding && !spell.Unit.PseudoStats.DisableDWMissPenalty { + if spell.Unit.AutoAttacks.IsDualWielding() && !spell.Unit.PseudoStats.DisableDWMissPenalty { missChance += 0.19 } *chance = max(0, missChance) @@ -597,20 +597,20 @@ func (result *SpellResult) applyEnemyAttackTableCrit(spell *Spell, _ *AttackTabl return false } -func (spell *Spell) OutcomeExpectedTick(sim *Simulation, result *SpellResult, attackTable *AttackTable) { +func (spell *Spell) OutcomeExpectedTick(_ *Simulation, _ *SpellResult, _ *AttackTable) { // result.Damage *= 1 } -func (spell *Spell) OutcomeExpectedMagicAlwaysHit(sim *Simulation, result *SpellResult, attackTable *AttackTable) { +func (spell *Spell) OutcomeExpectedMagicAlwaysHit(_ *Simulation, _ *SpellResult, _ *AttackTable) { // result.Damage *= 1 } -func (spell *Spell) OutcomeExpectedMagicHit(sim *Simulation, result *SpellResult, attackTable *AttackTable) { +func (spell *Spell) OutcomeExpectedMagicHit(_ *Simulation, result *SpellResult, attackTable *AttackTable) { averageMultiplier := 1.0 averageMultiplier -= spell.SpellChanceToMiss(attackTable) result.Damage *= averageMultiplier } -func (spell *Spell) OutcomeExpectedMagicCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable) { +func (spell *Spell) OutcomeExpectedMagicCrit(_ *Simulation, result *SpellResult, _ *AttackTable) { if spell.CritMultiplier == 0 { panic("Spell " + spell.ActionID.String() + " missing CritMultiplier") } @@ -621,7 +621,7 @@ func (spell *Spell) OutcomeExpectedMagicCrit(sim *Simulation, result *SpellResul result.Damage *= averageMultiplier } -func (spell *Spell) OutcomeExpectedMagicHitAndCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable) { +func (spell *Spell) OutcomeExpectedMagicHitAndCrit(_ *Simulation, result *SpellResult, attackTable *AttackTable) { if spell.CritMultiplier == 0 { panic("Spell " + spell.ActionID.String() + " missing CritMultiplier") } @@ -633,7 +633,7 @@ func (spell *Spell) OutcomeExpectedMagicHitAndCrit(sim *Simulation, result *Spel result.Damage *= averageMultiplier } -func (dot *Dot) OutcomeExpectedMagicSnapshotCrit(sim *Simulation, result *SpellResult, attackTable *AttackTable) { +func (dot *Dot) OutcomeExpectedMagicSnapshotCrit(_ *Simulation, result *SpellResult, _ *AttackTable) { if dot.Spell.CritMultiplier == 0 { panic("Spell " + dot.Spell.ActionID.String() + " missing CritMultiplier") } diff --git a/sim/deathknight/dancing_rune_weapon.go b/sim/deathknight/dancing_rune_weapon.go index b4fd02ae2b..7b50682563 100644 --- a/sim/deathknight/dancing_rune_weapon.go +++ b/sim/deathknight/dancing_rune_weapon.go @@ -162,23 +162,24 @@ func (dk *Deathknight) NewRuneWeapon() *RuneWeaponPet { runeWeapon.OnPetDisable = runeWeapon.disable mhWeapon := dk.WeaponFromMainHand(dk.DefaultMeleeCritMultiplier()) + + if dk.Inputs.NewDrw { + baseDamage := mhWeapon.AverageDamage() / mhWeapon.SwingSpeed * 3.5 + mhWeapon.BaseDamageMin = baseDamage - 150 + mhWeapon.BaseDamageMax = baseDamage + 150 + } + + mhWeapon.SwingSpeed = 3.5 + mhWeapon.NormalizedSwingSpeed = 3.3 + runeWeapon.EnableAutoAttacks(runeWeapon, core.AutoAttackOptions{ MainHand: mhWeapon, AutoSwingMelee: true, }) - runeWeapon.AutoAttacks.MH.SwingSpeed = 3.5 - runeWeapon.AutoAttacks.MH.NormalizedSwingSpeed = 3.3 runeWeapon.PseudoStats.DamageTakenMultiplier = 0 runeWeapon.PseudoStats.MeleeHasteRatingPerHastePercent = dk.PseudoStats.MeleeHasteRatingPerHastePercent - if dk.Inputs.NewDrw { - baseDamage := (mhWeapon.BaseDamageMin + mhWeapon.BaseDamageMax) / 2 - baseDamage = (baseDamage / mhWeapon.SwingSpeed) * 3.5 - runeWeapon.AutoAttacks.MH.BaseDamageMin = baseDamage - 150 - runeWeapon.AutoAttacks.MH.BaseDamageMax = baseDamage + 150 - } - dk.AddPet(runeWeapon) return runeWeapon diff --git a/sim/deathknight/dps/TestBlood.results b/sim/deathknight/dps/TestBlood.results index 81937bcafe..2fe368f482 100644 --- a/sim/deathknight/dps/TestBlood.results +++ b/sim/deathknight/dps/TestBlood.results @@ -869,85 +869,85 @@ dps_results: { dps_results: { key: "TestBlood-Settings-Human-p3_blood-Basic-blood_pesti-FullBuffs-LongMultiTarget" value: { - dps: 29291.51406 - tps: 15917.42173 + dps: 29291.75448 + tps: 15917.56598 } } dps_results: { key: "TestBlood-Settings-Human-p3_blood-Basic-blood_pesti-FullBuffs-LongSingleTarget" value: { - dps: 10271.10585 - tps: 5435.88706 + dps: 10271.35316 + tps: 5436.03545 } } dps_results: { key: "TestBlood-Settings-Human-p3_blood-Basic-blood_pesti-FullBuffs-ShortSingleTarget" value: { - dps: 13932.05604 - tps: 6349.02436 + dps: 13933.2926 + tps: 6349.76629 } } dps_results: { key: "TestBlood-Settings-Human-p3_blood-Basic-blood_pesti-NoBuffs-LongMultiTarget" value: { - dps: 15778.53929 - tps: 8589.98191 + dps: 15778.49815 + tps: 8589.95723 } } dps_results: { key: "TestBlood-Settings-Human-p3_blood-Basic-blood_pesti-NoBuffs-LongSingleTarget" value: { - dps: 5874.85718 - tps: 3130.85122 + dps: 5874.81045 + tps: 3130.82318 } } dps_results: { key: "TestBlood-Settings-Human-p3_blood-Basic-blood_pesti-NoBuffs-ShortSingleTarget" value: { - dps: 7411.43144 - tps: 3365.08449 + dps: 7411.19778 + tps: 3364.94429 } } dps_results: { key: "TestBlood-Settings-Human-p3_blood-Basic-blood_pesti_dd-FullBuffs-LongMultiTarget" value: { - dps: 27092.35964 - tps: 15401.78963 + dps: 27092.01493 + tps: 15401.58281 } } dps_results: { key: "TestBlood-Settings-Human-p3_blood-Basic-blood_pesti_dd-FullBuffs-LongSingleTarget" value: { - dps: 10240.96431 - tps: 5409.32327 + dps: 10240.61961 + tps: 5409.11645 } } dps_results: { key: "TestBlood-Settings-Human-p3_blood-Basic-blood_pesti_dd-FullBuffs-ShortSingleTarget" value: { - dps: 13790.4056 - tps: 6221.11338 + dps: 13788.6821 + tps: 6220.07927 } } dps_results: { key: "TestBlood-Settings-Human-p3_blood-Basic-blood_pesti_dd-NoBuffs-LongMultiTarget" value: { - dps: 14599.62289 - tps: 8270.48869 + dps: 14599.23302 + tps: 8270.25477 } } dps_results: { key: "TestBlood-Settings-Human-p3_blood-Basic-blood_pesti_dd-NoBuffs-LongSingleTarget" value: { - dps: 5871.38506 - tps: 3116.06829 + dps: 5870.99519 + tps: 3115.83437 } } dps_results: { key: "TestBlood-Settings-Human-p3_blood-Basic-blood_pesti_dd-NoBuffs-ShortSingleTarget" value: { - dps: 7290.95617 - tps: 3278.26982 + dps: 7289.00682 + tps: 3277.10021 } } dps_results: { @@ -995,85 +995,85 @@ dps_results: { dps_results: { key: "TestBlood-Settings-Orc-p3_blood-Basic-blood_pesti-FullBuffs-LongMultiTarget" value: { - dps: 29536.39786 - tps: 15949.94861 + dps: 29536.63816 + tps: 15950.09279 } } dps_results: { key: "TestBlood-Settings-Orc-p3_blood-Basic-blood_pesti-FullBuffs-LongSingleTarget" value: { - dps: 10371.90406 - tps: 5456.549 + dps: 10372.15126 + tps: 5456.69732 } } dps_results: { key: "TestBlood-Settings-Orc-p3_blood-Basic-blood_pesti-FullBuffs-ShortSingleTarget" value: { - dps: 14175.01307 - tps: 6395.14431 + dps: 14176.24909 + tps: 6395.88592 } } dps_results: { key: "TestBlood-Settings-Orc-p3_blood-Basic-blood_pesti-NoBuffs-LongMultiTarget" value: { - dps: 15916.92182 - tps: 8610.12897 + dps: 15916.88055 + tps: 8610.10421 } } dps_results: { key: "TestBlood-Settings-Orc-p3_blood-Basic-blood_pesti-NoBuffs-LongSingleTarget" value: { - dps: 5933.05525 - tps: 3144.38657 + dps: 5933.00839 + tps: 3144.35845 } } dps_results: { key: "TestBlood-Settings-Orc-p3_blood-Basic-blood_pesti-NoBuffs-ShortSingleTarget" value: { - dps: 7539.39627 - tps: 3390.57861 + dps: 7539.16195 + tps: 3390.43801 } } dps_results: { key: "TestBlood-Settings-Orc-p3_blood-Basic-blood_pesti_dd-FullBuffs-LongMultiTarget" value: { - dps: 27241.96747 - tps: 15442.86663 + dps: 27241.62253 + tps: 15442.65966 } } dps_results: { key: "TestBlood-Settings-Orc-p3_blood-Basic-blood_pesti_dd-FullBuffs-LongSingleTarget" value: { - dps: 10339.57425 - tps: 5427.90869 + dps: 10339.2293 + tps: 5427.70172 } } dps_results: { key: "TestBlood-Settings-Orc-p3_blood-Basic-blood_pesti_dd-FullBuffs-ShortSingleTarget" value: { - dps: 14035.69015 - tps: 6265.54996 + dps: 14033.96542 + tps: 6264.51512 } } dps_results: { key: "TestBlood-Settings-Orc-p3_blood-Basic-blood_pesti_dd-NoBuffs-LongMultiTarget" value: { - dps: 14676.07609 - tps: 8287.57197 + dps: 14675.68601 + tps: 8287.33792 } } dps_results: { key: "TestBlood-Settings-Orc-p3_blood-Basic-blood_pesti_dd-NoBuffs-LongSingleTarget" value: { - dps: 5914.84441 - tps: 3119.60919 + dps: 5914.45433 + tps: 3119.37515 } } dps_results: { key: "TestBlood-Settings-Orc-p3_blood-Basic-blood_pesti_dd-NoBuffs-ShortSingleTarget" value: { - dps: 7423.99643 - tps: 3305.70524 + dps: 7422.04604 + tps: 3304.53501 } } dps_results: { diff --git a/sim/deathknight/dps/TestFrost.results b/sim/deathknight/dps/TestFrost.results index ce897da3aa..4c5801a446 100644 --- a/sim/deathknight/dps/TestFrost.results +++ b/sim/deathknight/dps/TestFrost.results @@ -960,85 +960,85 @@ dps_results: { dps_results: { key: "TestFrost-Settings-Human-p3_frost-Basic-frost_bl_pesti-FullBuffs-LongMultiTarget" value: { - dps: 26382.40733 - tps: 15576.13782 + dps: 26382.59844 + tps: 15576.25249 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Basic-frost_bl_pesti-FullBuffs-LongSingleTarget" value: { - dps: 11305.77331 - tps: 6528.38335 + dps: 11305.96442 + tps: 6528.49802 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Basic-frost_bl_pesti-FullBuffs-ShortSingleTarget" value: { - dps: 13448.22074 - tps: 7203.56125 + dps: 13449.17629 + tps: 7204.13458 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Basic-frost_bl_pesti-NoBuffs-LongMultiTarget" value: { - dps: 13805.88142 - tps: 8110.9423 + dps: 13805.77752 + tps: 8110.87996 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Basic-frost_bl_pesti-NoBuffs-LongSingleTarget" value: { - dps: 6881.30953 - tps: 3957.10784 + dps: 6881.20563 + tps: 3957.0455 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Basic-frost_bl_pesti-NoBuffs-ShortSingleTarget" value: { - dps: 7882.0273 - tps: 4155.80166 + dps: 7881.5078 + tps: 4155.48996 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Basic-frost_uh_pesti-FullBuffs-LongMultiTarget" value: { - dps: 29805.16845 - tps: 17627.34 + dps: 29806.22775 + tps: 17627.97558 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Basic-frost_uh_pesti-FullBuffs-LongSingleTarget" value: { - dps: 11220.63247 - tps: 6476.85356 + dps: 11221.69504 + tps: 6477.49111 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Basic-frost_uh_pesti-FullBuffs-ShortSingleTarget" value: { - dps: 13210.05137 - tps: 7058.4029 + dps: 13215.36425 + tps: 7061.59063 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Basic-frost_uh_pesti-NoBuffs-LongMultiTarget" value: { - dps: 15717.76817 - tps: 9257.5108 + dps: 15718.01438 + tps: 9257.65853 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Basic-frost_uh_pesti-NoBuffs-LongSingleTarget" value: { - dps: 6832.81392 - tps: 3927.1576 + dps: 6833.06169 + tps: 3927.30626 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Basic-frost_uh_pesti-NoBuffs-ShortSingleTarget" value: { - dps: 7797.25748 - tps: 4104.18438 + dps: 7798.49632 + tps: 4104.92769 } } dps_results: { @@ -1086,85 +1086,85 @@ dps_results: { dps_results: { key: "TestFrost-Settings-Human-p3_frost-Desync-frost_bl_pesti-FullBuffs-LongMultiTarget" value: { - dps: 26382.40733 - tps: 15576.13782 + dps: 26382.59844 + tps: 15576.25249 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Desync-frost_bl_pesti-FullBuffs-LongSingleTarget" value: { - dps: 11305.77331 - tps: 6528.38335 + dps: 11305.96442 + tps: 6528.49802 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Desync-frost_bl_pesti-FullBuffs-ShortSingleTarget" value: { - dps: 13448.22074 - tps: 7203.56125 + dps: 13449.17629 + tps: 7204.13458 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Desync-frost_bl_pesti-NoBuffs-LongMultiTarget" value: { - dps: 13805.88142 - tps: 8110.9423 + dps: 13805.77752 + tps: 8110.87996 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Desync-frost_bl_pesti-NoBuffs-LongSingleTarget" value: { - dps: 6881.30953 - tps: 3957.10784 + dps: 6881.20563 + tps: 3957.0455 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Desync-frost_bl_pesti-NoBuffs-ShortSingleTarget" value: { - dps: 7882.0273 - tps: 4155.80166 + dps: 7881.5078 + tps: 4155.48996 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Desync-frost_uh_pesti-FullBuffs-LongMultiTarget" value: { - dps: 29805.16845 - tps: 17627.34 + dps: 29806.22775 + tps: 17627.97558 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Desync-frost_uh_pesti-FullBuffs-LongSingleTarget" value: { - dps: 11220.63247 - tps: 6476.85356 + dps: 11221.69504 + tps: 6477.49111 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Desync-frost_uh_pesti-FullBuffs-ShortSingleTarget" value: { - dps: 13210.05137 - tps: 7058.4029 + dps: 13215.36425 + tps: 7061.59063 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Desync-frost_uh_pesti-NoBuffs-LongMultiTarget" value: { - dps: 15717.76817 - tps: 9257.5108 + dps: 15718.01438 + tps: 9257.65853 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Desync-frost_uh_pesti-NoBuffs-LongSingleTarget" value: { - dps: 6832.81392 - tps: 3927.1576 + dps: 6833.06169 + tps: 3927.30626 } } dps_results: { key: "TestFrost-Settings-Human-p3_frost-Desync-frost_uh_pesti-NoBuffs-ShortSingleTarget" value: { - dps: 7797.25748 - tps: 4104.18438 + dps: 7798.49632 + tps: 4104.92769 } } dps_results: { @@ -1212,85 +1212,85 @@ dps_results: { dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Basic-frost_bl_pesti-FullBuffs-LongMultiTarget" value: { - dps: 26411.49082 - tps: 15584.7103 + dps: 26411.65424 + tps: 15584.80835 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Basic-frost_bl_pesti-FullBuffs-LongSingleTarget" value: { - dps: 11342.91916 - tps: 6543.91209 + dps: 11343.08258 + tps: 6544.01014 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Basic-frost_bl_pesti-FullBuffs-ShortSingleTarget" value: { - dps: 13504.40312 - tps: 7218.29138 + dps: 13505.22019 + tps: 7218.78162 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Basic-frost_bl_pesti-NoBuffs-LongMultiTarget" value: { - dps: 13902.33974 - tps: 8164.34462 + dps: 13902.22306 + tps: 8164.27461 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Basic-frost_bl_pesti-NoBuffs-LongSingleTarget" value: { - dps: 6923.30525 - tps: 3977.32285 + dps: 6923.18858 + tps: 3977.25285 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Basic-frost_bl_pesti-NoBuffs-ShortSingleTarget" value: { - dps: 7895.73429 - tps: 4154.60691 + dps: 7895.15091 + tps: 4154.25688 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Basic-frost_uh_pesti-FullBuffs-LongMultiTarget" value: { - dps: 30013.19564 - tps: 17744.80984 + dps: 30014.16499 + tps: 17745.39145 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Basic-frost_uh_pesti-FullBuffs-LongSingleTarget" value: { - dps: 11277.49626 - tps: 6503.82716 + dps: 11278.46889 + tps: 6504.41073 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Basic-frost_uh_pesti-FullBuffs-ShortSingleTarget" value: { - dps: 13297.14434 - tps: 7092.55515 + dps: 13302.00749 + tps: 7095.47304 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Basic-frost_uh_pesti-NoBuffs-LongMultiTarget" value: { - dps: 15728.79029 - tps: 9258.96512 + dps: 15729.00816 + tps: 9259.09585 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Basic-frost_uh_pesti-NoBuffs-LongSingleTarget" value: { - dps: 6864.77208 - tps: 3941.24976 + dps: 6864.99151 + tps: 3941.38142 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Basic-frost_uh_pesti-NoBuffs-ShortSingleTarget" value: { - dps: 7771.47183 - tps: 4079.43227 + dps: 7772.56899 + tps: 4080.09057 } } dps_results: { @@ -1338,85 +1338,85 @@ dps_results: { dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Desync-frost_bl_pesti-FullBuffs-LongMultiTarget" value: { - dps: 26411.49082 - tps: 15584.7103 + dps: 26411.65424 + tps: 15584.80835 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Desync-frost_bl_pesti-FullBuffs-LongSingleTarget" value: { - dps: 11342.91916 - tps: 6543.91209 + dps: 11343.08258 + tps: 6544.01014 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Desync-frost_bl_pesti-FullBuffs-ShortSingleTarget" value: { - dps: 13504.40312 - tps: 7218.29138 + dps: 13505.22019 + tps: 7218.78162 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Desync-frost_bl_pesti-NoBuffs-LongMultiTarget" value: { - dps: 13902.33974 - tps: 8164.34462 + dps: 13902.22306 + tps: 8164.27461 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Desync-frost_bl_pesti-NoBuffs-LongSingleTarget" value: { - dps: 6923.30525 - tps: 3977.32285 + dps: 6923.18858 + tps: 3977.25285 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Desync-frost_bl_pesti-NoBuffs-ShortSingleTarget" value: { - dps: 7895.73429 - tps: 4154.60691 + dps: 7895.15091 + tps: 4154.25688 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Desync-frost_uh_pesti-FullBuffs-LongMultiTarget" value: { - dps: 30013.19564 - tps: 17744.80984 + dps: 30014.16499 + tps: 17745.39145 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Desync-frost_uh_pesti-FullBuffs-LongSingleTarget" value: { - dps: 11277.49626 - tps: 6503.82716 + dps: 11278.46889 + tps: 6504.41073 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Desync-frost_uh_pesti-FullBuffs-ShortSingleTarget" value: { - dps: 13297.14434 - tps: 7092.55515 + dps: 13302.00749 + tps: 7095.47304 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Desync-frost_uh_pesti-NoBuffs-LongMultiTarget" value: { - dps: 15728.79029 - tps: 9258.96512 + dps: 15729.00816 + tps: 9259.09585 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Desync-frost_uh_pesti-NoBuffs-LongSingleTarget" value: { - dps: 6864.77208 - tps: 3941.24976 + dps: 6864.99151 + tps: 3941.38142 } } dps_results: { key: "TestFrost-Settings-Orc-p3_frost-Desync-frost_uh_pesti-NoBuffs-ShortSingleTarget" value: { - dps: 7771.47183 - tps: 4079.43227 + dps: 7772.56899 + tps: 4080.09057 } } dps_results: { diff --git a/sim/deathknight/dps/TestFrostUH.results b/sim/deathknight/dps/TestFrostUH.results index 456033c14d..5c6e152ae1 100644 --- a/sim/deathknight/dps/TestFrostUH.results +++ b/sim/deathknight/dps/TestFrostUH.results @@ -960,43 +960,43 @@ dps_results: { dps_results: { key: "TestFrostUH-Settings-Human-p3_frost-Basic-frost_uh_pesti-FullBuffs-LongMultiTarget" value: { - dps: 29197.76241 - tps: 21099.16636 + dps: 29197.79659 + tps: 21099.19152 } } dps_results: { key: "TestFrostUH-Settings-Human-p3_frost-Basic-frost_uh_pesti-FullBuffs-LongSingleTarget" value: { - dps: 11470.02696 - tps: 8055.47808 + dps: 11470.05795 + tps: 8055.50089 } } dps_results: { key: "TestFrostUH-Settings-Human-p3_frost-Basic-frost_uh_pesti-FullBuffs-ShortSingleTarget" value: { - dps: 14202.58889 - tps: 9217.96254 + dps: 14202.74384 + tps: 9218.07658 } } dps_results: { key: "TestFrostUH-Settings-Human-p3_frost-Basic-frost_uh_pesti-NoBuffs-LongMultiTarget" value: { - dps: 15309.62496 - tps: 11011.2568 + dps: 15309.00253 + tps: 11010.7987 } } dps_results: { key: "TestFrostUH-Settings-Human-p3_frost-Basic-frost_uh_pesti-NoBuffs-LongSingleTarget" value: { - dps: 6872.01326 - tps: 4799.72226 + dps: 6871.39387 + tps: 4799.26639 } } dps_results: { key: "TestFrostUH-Settings-Human-p3_frost-Basic-frost_uh_pesti-NoBuffs-ShortSingleTarget" value: { - dps: 8150.27941 - tps: 5204.92642 + dps: 8147.18245 + tps: 5202.64706 } } dps_results: { @@ -1044,43 +1044,43 @@ dps_results: { dps_results: { key: "TestFrostUH-Settings-Orc-p3_frost-Basic-frost_uh_pesti-FullBuffs-LongMultiTarget" value: { - dps: 29200.40135 - tps: 21089.44089 + dps: 29200.393 + tps: 21089.43474 } } dps_results: { key: "TestFrostUH-Settings-Orc-p3_frost-Basic-frost_uh_pesti-FullBuffs-LongSingleTarget" value: { - dps: 11542.70057 - tps: 8093.61636 + dps: 11542.6986 + tps: 8093.61491 } } dps_results: { key: "TestFrostUH-Settings-Orc-p3_frost-Basic-frost_uh_pesti-FullBuffs-ShortSingleTarget" value: { - dps: 14288.39887 - tps: 9250.39424 + dps: 14288.38902 + tps: 9250.38699 } } dps_results: { key: "TestFrostUH-Settings-Orc-p3_frost-Basic-frost_uh_pesti-NoBuffs-LongMultiTarget" value: { - dps: 15510.99199 - tps: 11151.67666 + dps: 15510.3298 + tps: 11151.18928 } } dps_results: { key: "TestFrostUH-Settings-Orc-p3_frost-Basic-frost_uh_pesti-NoBuffs-LongSingleTarget" value: { - dps: 6867.83973 - tps: 4788.28029 + dps: 6867.18209 + tps: 4787.79626 } } dps_results: { key: "TestFrostUH-Settings-Orc-p3_frost-Basic-frost_uh_pesti-NoBuffs-ShortSingleTarget" value: { - dps: 8191.99646 - tps: 5219.03579 + dps: 8188.70823 + tps: 5216.61566 } } dps_results: { diff --git a/sim/deathknight/dps/TestUnholy.results b/sim/deathknight/dps/TestUnholy.results index 5e22584c9e..2dd0a67431 100644 --- a/sim/deathknight/dps/TestUnholy.results +++ b/sim/deathknight/dps/TestUnholy.results @@ -1078,144 +1078,144 @@ dps_results: { dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-uh_2h_ss-FullBuffs-LongMultiTarget" value: { - dps: 14171.81359 - tps: 9315.6099 + dps: 14181.46465 + tps: 9333.90514 hps: 42.10858 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-uh_2h_ss-FullBuffs-LongSingleTarget" value: { - dps: 10204.76198 - tps: 5989.79057 + dps: 10215.06667 + tps: 6007.27891 hps: 42.10858 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-uh_2h_ss-FullBuffs-ShortSingleTarget" value: { - dps: 15144.22525 - tps: 7130.19381 + dps: 15206.83126 + tps: 7210.30987 hps: 210.54288 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-uh_2h_ss-NoBuffs-LongMultiTarget" value: { - dps: 6743.82059 - tps: 4598.37345 + dps: 6744.47555 + tps: 4599.3294 hps: 27.712 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-uh_2h_ss-NoBuffs-LongSingleTarget" value: { - dps: 5050.32924 - tps: 3182.51151 + dps: 5050.67637 + tps: 3183.10003 hps: 27.712 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-uh_2h_ss-NoBuffs-ShortSingleTarget" value: { - dps: 6551.95741 - tps: 3453.99666 + dps: 6556.39489 + tps: 3459.7399 hps: 138.56 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-uh_dnd_aoe-FullBuffs-LongMultiTarget" value: { - dps: 58938.46063 - tps: 61019.5608 + dps: 58949.69297 + tps: 61031.00093 hps: 235.80803 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-uh_dnd_aoe-FullBuffs-LongSingleTarget" value: { - dps: 11189.08658 - tps: 7470.8285 + dps: 11190.75601 + tps: 7472.67948 hps: 235.80803 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-uh_dnd_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 16173.2311 - tps: 8705.38137 + dps: 16181.30366 + tps: 8714.78227 hps: 336.86861 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-uh_dnd_aoe-NoBuffs-LongMultiTarget" value: { - dps: 35012.50964 - tps: 37376.15234 + dps: 35019.29747 + tps: 37382.94017 hps: 155.46432 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-uh_dnd_aoe-NoBuffs-LongSingleTarget" value: { - dps: 5685.03067 - tps: 4166.67677 + dps: 5685.89398 + tps: 4167.70895 hps: 155.1872 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-uh_dnd_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 7147.65993 - tps: 4449.42693 + dps: 7152.264 + tps: 4454.44231 hps: 221.696 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-unholy_dw_ss-FullBuffs-LongMultiTarget" value: { - dps: 36084.8586 - tps: 43099.08062 + dps: 36088.5325 + tps: 43100.6337 hps: 235.80803 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-unholy_dw_ss-FullBuffs-LongSingleTarget" value: { - dps: 11357.46628 - tps: 7617.39141 + dps: 11359.45498 + tps: 7620.03291 hps: 235.80803 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-unholy_dw_ss-FullBuffs-ShortSingleTarget" value: { - dps: 16217.70315 - tps: 8817.84103 + dps: 16218.3081 + tps: 8814.19738 hps: 336.86861 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-unholy_dw_ss-NoBuffs-LongMultiTarget" value: { - dps: 18582.1225 - tps: 22791.11731 + dps: 18603.20315 + tps: 22811.81423 hps: 155.74144 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-unholy_dw_ss-NoBuffs-LongSingleTarget" value: { - dps: 5818.66913 - tps: 4274.89229 + dps: 5820.70447 + tps: 4279.11813 hps: 155.1872 } } dps_results: { key: "TestUnholy-Settings-Human-p3_uh_dw-Basic-unholy_dw_ss-NoBuffs-ShortSingleTarget" value: { - dps: 7192.24919 - tps: 4475.21952 + dps: 7197.72454 + tps: 4484.46897 hps: 221.696 } } @@ -1270,144 +1270,144 @@ dps_results: { dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-uh_2h_ss-FullBuffs-LongMultiTarget" value: { - dps: 14361.72256 - tps: 9347.7827 + dps: 14369.52983 + tps: 9375.57834 hps: 42.12697 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-uh_2h_ss-FullBuffs-LongSingleTarget" value: { - dps: 10307.72289 - tps: 5959.91534 + dps: 10323.33954 + tps: 5987.19739 hps: 42.12697 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-uh_2h_ss-FullBuffs-ShortSingleTarget" value: { - dps: 15438.65506 - tps: 7140.89152 + dps: 15534.54782 + tps: 7272.84066 hps: 210.63484 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-uh_2h_ss-NoBuffs-LongMultiTarget" value: { - dps: 6759.86294 - tps: 4567.77972 + dps: 6762.99424 + tps: 4572.1468 hps: 27.7272 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-uh_2h_ss-NoBuffs-LongSingleTarget" value: { - dps: 5072.14851 - tps: 3157.79959 + dps: 5081.03941 + tps: 3166.71627 hps: 27.7272 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-uh_2h_ss-NoBuffs-ShortSingleTarget" value: { - dps: 6695.71397 - tps: 3482.36224 + dps: 6680.20063 + tps: 3473.00166 hps: 138.636 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-uh_dnd_aoe-FullBuffs-LongMultiTarget" value: { - dps: 59430.75253 - tps: 61422.02759 + dps: 59442.00202 + tps: 61433.49956 hps: 235.91102 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-uh_dnd_aoe-FullBuffs-LongSingleTarget" value: { - dps: 11330.09451 - tps: 7467.49018 + dps: 11332.02593 + tps: 7469.48119 hps: 235.91102 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-uh_dnd_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 16504.74064 - tps: 8743.43236 + dps: 16513.70887 + tps: 8753.75467 hps: 337.01574 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-uh_dnd_aoe-NoBuffs-LongMultiTarget" value: { - dps: 35086.647 - tps: 37424.67146 + dps: 35093.37165 + tps: 37431.50102 hps: 155.27232 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-uh_dnd_aoe-NoBuffs-LongSingleTarget" value: { - dps: 5766.8226 - tps: 4187.5575 + dps: 5767.76688 + tps: 4188.56855 hps: 155.27232 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-uh_dnd_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 7265.06011 - tps: 4456.96325 + dps: 7269.64826 + tps: 4462.08681 hps: 221.8176 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-unholy_dw_ss-FullBuffs-LongMultiTarget" value: { - dps: 36253.01452 - tps: 43213.32047 + dps: 36249.6482 + tps: 43202.37394 hps: 235.91102 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-unholy_dw_ss-FullBuffs-LongSingleTarget" value: { - dps: 11466.62442 - tps: 7599.78995 + dps: 11462.59341 + tps: 7597.7334 hps: 235.91102 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-unholy_dw_ss-FullBuffs-ShortSingleTarget" value: { - dps: 16551.90406 - tps: 8853.65311 + dps: 16564.27241 + tps: 8858.64817 hps: 337.01574 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-unholy_dw_ss-NoBuffs-LongMultiTarget" value: { - dps: 18700.32613 - tps: 22904.67597 + dps: 18705.89107 + tps: 22909.77328 hps: 155.82686 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-unholy_dw_ss-NoBuffs-LongSingleTarget" value: { - dps: 5863.86417 - tps: 4268.09163 + dps: 5880.45476 + tps: 4286.01048 hps: 155.27232 } } dps_results: { key: "TestUnholy-Settings-Orc-p3_uh_dw-Basic-unholy_dw_ss-NoBuffs-ShortSingleTarget" value: { - dps: 7334.38265 - tps: 4509.45414 + dps: 7333.66985 + tps: 4515.01867 hps: 221.8176 } } diff --git a/sim/deathknight/rotation.go b/sim/deathknight/rotation.go index cdac052f81..7937106d56 100644 --- a/sim/deathknight/rotation.go +++ b/sim/deathknight/rotation.go @@ -244,11 +244,7 @@ func (dk *Deathknight) Wait(sim *core.Simulation) { if !dk.Inputs.IsDps { target := dk.CurrentTarget if dk.IsMainTank() { - targetSwingAt := target.AutoAttacks.MainhandSwingAt - if target.AutoAttacks.OffhandSwingAt > sim.CurrentTime { - targetSwingAt = min(targetSwingAt, target.AutoAttacks.OffhandSwingAt) - } - if targetSwingAt > sim.CurrentTime { + if targetSwingAt := target.AutoAttacks.NextAttackAt(); targetSwingAt > sim.CurrentTime { waitUntil = min(waitUntil, targetSwingAt) } } diff --git a/sim/druid/feral/rotation.go b/sim/druid/feral/rotation.go index 8eba30220a..897d6b7133 100644 --- a/sim/druid/feral/rotation.go +++ b/sim/druid/feral/rotation.go @@ -596,6 +596,8 @@ func (cat *FeralDruid) doRotation(sim *core.Simulation) (bool, time.Duration) { shiftNow = timeToDump >= simTimeRemain } + nextSwing := cat.AutoAttacks.NextAttackAt() + if emergencyLacerate && cat.Lacerate.CanCast(sim, cat.CurrentTarget) { cat.Lacerate.Cast(sim, cat.CurrentTarget) return false, 0 @@ -604,13 +606,13 @@ func (cat *FeralDruid) doRotation(sim *core.Simulation) (bool, time.Duration) { // duplicate weapon swap, then do an additional check here to // see whether we can delay the shift until the next bear swing // goes out in order to maximize the gains from the reset. - projectedDelay := cat.AutoAttacks.MainhandSwingAt + 2*cat.latency - sim.CurrentTime + projectedDelay := nextSwing + 2*cat.latency - sim.CurrentTime ripConflict := cat.ripRefreshPending && (ripDot.ExpiresAt() < sim.CurrentTime+projectedDelay+(1500*time.Millisecond)) nextCatSwing := sim.CurrentTime + cat.latency + time.Duration(float64(cat.AutoAttacks.MainhandSwingSpeed())/float64(2500*time.Millisecond)) - canDelayShift := !ripConflict && cat.Rotation.SnekWeave && (curEnergy+10*projectedDelay.Seconds() <= furorCap) && (cat.AutoAttacks.MainhandSwingAt < nextCatSwing) + canDelayShift := !ripConflict && cat.Rotation.SnekWeave && (curEnergy+10*projectedDelay.Seconds() <= furorCap) && (nextSwing < nextCatSwing) if canDelayShift { - timeToNextAction = cat.AutoAttacks.MainhandSwingAt - sim.CurrentTime + timeToNextAction = nextSwing - sim.CurrentTime } else { cat.readyToShift = true } @@ -626,7 +628,7 @@ func (cat *FeralDruid) doRotation(sim *core.Simulation) (bool, time.Duration) { cat.Lacerate.Cast(sim, cat.CurrentTarget) return false, 0 } else { - timeToNextAction = cat.AutoAttacks.MainhandSwingAt - sim.CurrentTime + timeToNextAction = nextSwing - sim.CurrentTime } } else if emergencyBearweave { cat.readyToShift = true diff --git a/sim/druid/forms.go b/sim/druid/forms.go index 04ab3c27cf..71d00bf944 100644 --- a/sim/druid/forms.go +++ b/sim/druid/forms.go @@ -134,8 +134,7 @@ func (druid *Druid) registerCatFormSpell() { druid.form = Cat druid.SetCurrentPowerBar(core.EnergyBar) - druid.AutoAttacks.MH = clawWeapon - druid.AutoAttacks.UpdateMeleeDurations() + druid.AutoAttacks.SetMH(clawWeapon) druid.PseudoStats.ThreatMultiplier *= 0.71 druid.PseudoStats.SpiritRegenMultiplier *= AnimalSpiritRegenSuppression @@ -168,8 +167,7 @@ func (druid *Druid) registerCatFormSpell() { OnExpire: func(aura *core.Aura, sim *core.Simulation) { druid.form = Humanoid - druid.AutoAttacks.MH = druid.WeaponFromMainHand(druid.MeleeCritMultiplier(Humanoid)) - druid.AutoAttacks.UpdateMeleeDurations() + druid.AutoAttacks.SetMH(druid.WeaponFromMainHand(druid.MeleeCritMultiplier(Humanoid))) druid.PseudoStats.ThreatMultiplier /= 0.71 druid.PseudoStats.SpiritRegenMultiplier /= AnimalSpiritRegenSuppression @@ -269,8 +267,7 @@ func (druid *Druid) registerBearFormSpell() { druid.form = Bear druid.SetCurrentPowerBar(core.RageBar) - druid.AutoAttacks.MH = clawWeapon - druid.AutoAttacks.UpdateMeleeDurations() + druid.AutoAttacks.SetMH(clawWeapon) druid.PseudoStats.ThreatMultiplier *= 2.1021 druid.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexPhysical] *= 1.0 + 0.02*float64(druid.Talents.MasterShapeshifter) @@ -304,8 +301,7 @@ func (druid *Druid) registerBearFormSpell() { }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { druid.form = Humanoid - druid.AutoAttacks.MH = druid.WeaponFromMainHand(druid.MeleeCritMultiplier(Humanoid)) - druid.AutoAttacks.UpdateMeleeDurations() + druid.AutoAttacks.SetMH(druid.WeaponFromMainHand(druid.MeleeCritMultiplier(Humanoid))) druid.PseudoStats.ThreatMultiplier /= 2.1021 druid.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexPhysical] /= 1.0 + 0.02*float64(druid.Talents.MasterShapeshifter) diff --git a/sim/druid/shred.go b/sim/druid/shred.go index dd21f5a370..041054bac3 100644 --- a/sim/druid/shred.go +++ b/sim/druid/shred.go @@ -72,7 +72,7 @@ func (druid *Druid) registerShredSpell() { } }, ExpectedInitialDamage: func(sim *core.Simulation, target *core.Unit, spell *core.Spell, _ bool) *core.SpellResult { - baseDamage := flatDamageBonus + spell.Unit.AutoAttacks.MH.CalculateAverageWeaponDamage(spell.MeleeAttackPower()) + spell.BonusWeaponDamage() + baseDamage := flatDamageBonus + spell.Unit.AutoAttacks.MH().CalculateAverageWeaponDamage(spell.MeleeAttackPower()) + spell.BonusWeaponDamage() modifier := 1.0 if druid.BleedCategories.Get(target).AnyActive() { diff --git a/sim/druid/tank/tank.go b/sim/druid/tank/tank.go index 4224412452..0c3f2c5bf2 100644 --- a/sim/druid/tank/tank.go +++ b/sim/druid/tank/tank.go @@ -57,9 +57,7 @@ func NewFeralTankDruid(character *core.Character, options *proto.Player) *FeralT // Base paw weapon. MainHand: bear.GetBearWeapon(), AutoSwingMelee: true, - ReplaceMHSwing: func(sim *core.Simulation, mhSwingSpell *core.Spell) *core.Spell { - return bear.TryMaul(sim, mhSwingSpell) - }, + ReplaceMHSwing: bear.TryMaul, }) bear.ReplaceBearMHFunc = bear.TryMaul diff --git a/sim/encounters/icc/lichking25h_ai.go b/sim/encounters/icc/lichking25h_ai.go index f71874e91e..59e10ebb41 100644 --- a/sim/encounters/icc/lichking25h_ai.go +++ b/sim/encounters/icc/lichking25h_ai.go @@ -55,7 +55,7 @@ func NewLichKing25HAI() core.AIFactory { } } -func (ai *LichKing25HAI) Initialize(target *core.Target, config *proto.Target) { +func (ai *LichKing25HAI) Initialize(target *core.Target, _ *proto.Target) { ai.Target = target ai.registerSoulReaperSpell(target) } @@ -120,7 +120,7 @@ func (ai *LichKing25HAI) registerSoulReaperSpell(target *core.Target) { ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { // 50% weapon damage - baseDamage := 0.5 * spell.Unit.AutoAttacks.MH.EnemyWeaponDamage(sim, spell.MeleeAttackPower(), 0.1557) + baseDamage := 0.5 * spell.Unit.AutoAttacks.MH().EnemyWeaponDamage(sim, spell.MeleeAttackPower(), 0.1557) spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeAlwaysHit) dot := spell.Dot(target) diff --git a/sim/encounters/toc/anub25h_ai.go b/sim/encounters/toc/anub25h_ai.go index 7a90a9b072..d5ab00337d 100644 --- a/sim/encounters/toc/anub25h_ai.go +++ b/sim/encounters/toc/anub25h_ai.go @@ -57,7 +57,7 @@ func NewAnub25HAI() core.AIFactory { } } -func (ai *Anub25HAI) Initialize(target *core.Target, config *proto.Target) { +func (ai *Anub25HAI) Initialize(target *core.Target, _ *proto.Target) { ai.Target = target ai.registerFreezingSlashSpell(target) ai.registerLeechingSwarmSpell(target) @@ -107,7 +107,7 @@ func (ai *Anub25HAI) registerFreezingSlashSpell(target *core.Target) { ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { // 25% weapon damage - baseDamage := 0.25 * spell.Unit.AutoAttacks.MH.EnemyWeaponDamage(sim, spell.MeleeAttackPower(), 0.45) + baseDamage := 0.25 * spell.Unit.AutoAttacks.MH().EnemyWeaponDamage(sim, spell.MeleeAttackPower(), 0.45) spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeAlwaysHit) dot := spell.Dot(target) diff --git a/sim/encounters/toc/gormok25h_ai.go b/sim/encounters/toc/gormok25h_ai.go index 577135e254..02ba6d8860 100644 --- a/sim/encounters/toc/gormok25h_ai.go +++ b/sim/encounters/toc/gormok25h_ai.go @@ -136,7 +136,7 @@ func (ai *Gormok25HAI) registerImpaleSpell(target *core.Target) { ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { // 150% weapon damage - baseDamage := 1.50 * spell.Unit.AutoAttacks.MH.EnemyWeaponDamage(sim, spell.MeleeAttackPower(), 0.3333) + baseDamage := 1.50 * spell.Unit.AutoAttacks.MH().EnemyWeaponDamage(sim, spell.MeleeAttackPower(), 0.3333) spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeAlwaysHit) dot := spell.Dot(target) diff --git a/sim/encounters/ulduar/hodir_ai.go b/sim/encounters/ulduar/hodir_ai.go index 74570ade47..05cf72ceef 100644 --- a/sim/encounters/ulduar/hodir_ai.go +++ b/sim/encounters/ulduar/hodir_ai.go @@ -340,9 +340,8 @@ func (ai *HodirAI) registerFrozenBlowSpell(target *core.Target) { ai.Target.Unit.AutoAttacks.ReplaceMHSwing = func(sim *core.Simulation, mhSwingSpell *core.Spell) *core.Spell { if ai.FrozenBlowsAura.IsActive() { return ai.FrozenBlowsAuto - } else { - return ai.Target.Unit.AutoAttacks.MHAuto } + return mhSwingSpell } ai.FrozenBlowsAuto = target.GetOrRegisterSpell(core.SpellConfig{ @@ -352,7 +351,7 @@ func (ai *HodirAI) registerFrozenBlowSpell(target *core.Target) { Flags: core.SpellFlagMeleeMetrics, DamageMultiplier: 1, - CritMultiplier: ai.Target.AutoAttacks.MH.CritMultiplier, + CritMultiplier: ai.Target.AutoAttacks.MH().CritMultiplier, ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { baseDamage := spell.Unit.MHWeaponDamage(sim, spell.MeleeAttackPower()) + diff --git a/sim/hunter/aimed_shot.go b/sim/hunter/aimed_shot.go index 72f6f2f451..d62ddf7244 100644 --- a/sim/hunter/aimed_shot.go +++ b/sim/hunter/aimed_shot.go @@ -47,7 +47,7 @@ func (hunter *Hunter) registerAimedShotSpell(timer *core.Timer) { ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { baseDamage := 0.2*spell.RangedAttackPower(target) + - hunter.AutoAttacks.Ranged.BaseDamage(sim) + + hunter.AutoAttacks.Ranged().BaseDamage(sim) + hunter.AmmoDamageBonus + spell.BonusWeaponDamage() + 408 diff --git a/sim/hunter/aspects.go b/sim/hunter/aspects.go index ea44433ec6..05a49840c7 100644 --- a/sim/hunter/aspects.go +++ b/sim/hunter/aspects.go @@ -49,7 +49,7 @@ func (hunter *Hunter) registerAspectOfTheDragonhawkSpell() { } aura.OnSpellHitDealt = func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { - if spell != hunter.AutoAttacks.RangedAuto { + if spell != hunter.AutoAttacks.RangedAuto() { return } @@ -78,9 +78,9 @@ func (hunter *Hunter) registerAspectOfTheViperSpell() { baseManaRegenMultiplier := 0.01 * core.TernaryFloat64(hunter.HasMajorGlyph(proto.HunterMajorGlyph_GlyphOfAspectOfTheViper), 1.1, 1) * core.TernaryFloat64(hunter.HasSetBonus(ItemSetGronnstalker, 2), 1.25, 1) - manaPerRangedHitMultiplier := baseManaRegenMultiplier * hunter.AutoAttacks.Ranged.SwingSpeed - manaPerMHHitMultiplier := baseManaRegenMultiplier * hunter.AutoAttacks.MH.SwingSpeed - manaPerOHHitMultiplier := baseManaRegenMultiplier * hunter.AutoAttacks.OH.SwingSpeed + manaPerRangedHitMultiplier := baseManaRegenMultiplier * hunter.AutoAttacks.Ranged().SwingSpeed + manaPerMHHitMultiplier := baseManaRegenMultiplier * hunter.AutoAttacks.MH().SwingSpeed + manaPerOHHitMultiplier := baseManaRegenMultiplier * hunter.AutoAttacks.OH().SwingSpeed var tickPA *core.PendingAction hasCryptstalker4pc := hunter.HasSetBonus(ItemSetCryptstalkerBattlegear, 4) diff --git a/sim/hunter/chimera_shot.go b/sim/hunter/chimera_shot.go index 7d1dfb9a3f..9a86a4d79b 100644 --- a/sim/hunter/chimera_shot.go +++ b/sim/hunter/chimera_shot.go @@ -43,7 +43,7 @@ func (hunter *Hunter) registerChimeraShotSpell() { ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { baseDamage := 0.2*spell.RangedAttackPower(target) + - hunter.AutoAttacks.Ranged.BaseDamage(sim) + + hunter.AutoAttacks.Ranged().BaseDamage(sim) + hunter.AmmoDamageBonus + spell.BonusWeaponDamage() baseDamage *= 1.25 diff --git a/sim/hunter/hunter.go b/sim/hunter/hunter.go index 4bc6d67256..6c06127761 100644 --- a/sim/hunter/hunter.go +++ b/sim/hunter/hunter.go @@ -216,12 +216,10 @@ func NewHunter(character *core.Character, options *proto.Player) *Hunter { hunter.EnableAutoAttacks(hunter, core.AutoAttackOptions{ // We don't know crit multiplier until later when we see the target so just // use 0 for now. - MainHand: hunter.WeaponFromMainHand(0), - OffHand: hunter.WeaponFromOffHand(0), - Ranged: rangedWeapon, - ReplaceMHSwing: func(sim *core.Simulation, mhSwingSpell *core.Spell) *core.Spell { - return hunter.TryRaptorStrike(sim, mhSwingSpell) - }, + MainHand: hunter.WeaponFromMainHand(0), + OffHand: hunter.WeaponFromOffHand(0), + Ranged: rangedWeapon, + ReplaceMHSwing: hunter.TryRaptorStrike, AutoSwingRanged: true, }) hunter.AutoAttacks.RangedConfig.ApplyEffects = func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { diff --git a/sim/hunter/kill_shot.go b/sim/hunter/kill_shot.go index 453a60e2f3..1f3ef9a4db 100644 --- a/sim/hunter/kill_shot.go +++ b/sim/hunter/kill_shot.go @@ -42,7 +42,7 @@ func (hunter *Hunter) registerKillShotSpell() { ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { // 0.2 rap from normalized weapon (2.8/14) and 0.2 from bonus ratio baseDamage := 0.4*spell.RangedAttackPower(target) + - hunter.AutoAttacks.Ranged.BaseDamage(sim) + + hunter.AutoAttacks.Ranged().BaseDamage(sim) + hunter.AmmoDamageBonus + spell.BonusWeaponDamage() + 325 diff --git a/sim/hunter/multi_shot.go b/sim/hunter/multi_shot.go index e0115c6668..9a816627ed 100644 --- a/sim/hunter/multi_shot.go +++ b/sim/hunter/multi_shot.go @@ -48,7 +48,7 @@ func (hunter *Hunter) registerMultiShotSpell(timer *core.Timer) { ThreatMultiplier: 1, ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - sharedDmg := hunter.AutoAttacks.Ranged.BaseDamage(sim) + + sharedDmg := hunter.AutoAttacks.Ranged().BaseDamage(sim) + hunter.AmmoDamageBonus + spell.BonusWeaponDamage() + 408 diff --git a/sim/hunter/steady_shot.go b/sim/hunter/steady_shot.go index abcaf4a188..f2fe5a311a 100644 --- a/sim/hunter/steady_shot.go +++ b/sim/hunter/steady_shot.go @@ -84,7 +84,7 @@ func (hunter *Hunter) registerSteadyShotSpell() { ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { baseDamage := 0.1*spell.RangedAttackPower(target) + - hunter.AutoAttacks.Ranged.BaseDamage(sim)*2.8/hunter.AutoAttacks.Ranged.SwingSpeed + + hunter.AutoAttacks.Ranged().BaseDamage(sim)*2.8/hunter.AutoAttacks.Ranged().SwingSpeed + hunter.NormalizedAmmoDamageBonus + 252 diff --git a/sim/hunter/talents.go b/sim/hunter/talents.go index e99df61acc..030ff53ae5 100644 --- a/sim/hunter/talents.go +++ b/sim/hunter/talents.go @@ -343,7 +343,7 @@ func (hunter *Hunter) applyWildQuiver() { aura.Activate(sim) }, OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { - if spell != hunter.AutoAttacks.RangedAuto { + if spell != hunter.AutoAttacks.RangedAuto() { return } diff --git a/sim/hunter/wotlk_items.go b/sim/hunter/wotlk_items.go index 7964849a95..58fe7b6d45 100644 --- a/sim/hunter/wotlk_items.go +++ b/sim/hunter/wotlk_items.go @@ -158,7 +158,7 @@ var ItemSetAhnKaharBloodHuntersBattlegear = core.NewItemSet(core.ItemSet{ aura.Activate(sim) }, OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { - if spell == hunter.AutoAttacks.RangedAuto && sim.RandomFloat("AhnKahar 2pc") < procChance { + if spell == hunter.AutoAttacks.RangedAuto() && sim.RandomFloat("AhnKahar 2pc") < procChance { procAura.Activate(sim) } }, diff --git a/sim/paladin/hammer_of_the_righteous.go b/sim/paladin/hammer_of_the_righteous.go index c6ec636f2d..a53e79f956 100644 --- a/sim/paladin/hammer_of_the_righteous.go +++ b/sim/paladin/hammer_of_the_righteous.go @@ -40,8 +40,8 @@ func (paladin *Paladin) registerHammerOfTheRighteousSpell() { ThreatMultiplier: 1, ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - avgWeaponDamage := spell.Unit.AutoAttacks.MH.CalculateAverageWeaponDamage(spell.MeleeAttackPower()) - speed := spell.Unit.AutoAttacks.MH.SwingSpeed + avgWeaponDamage := spell.Unit.AutoAttacks.MH().CalculateAverageWeaponDamage(spell.MeleeAttackPower()) + speed := spell.Unit.AutoAttacks.MH().SwingSpeed baseDamage := (avgWeaponDamage / speed) * 4 curTarget := target diff --git a/sim/paladin/protection/TestProtection.results b/sim/paladin/protection/TestProtection.results index c26088d21b..623802bfb5 100644 --- a/sim/paladin/protection/TestProtection.results +++ b/sim/paladin/protection/TestProtection.results @@ -46,1126 +46,1126 @@ character_stats_results: { dps_results: { key: "TestProtection-AllItems-AegisBattlegear" value: { - dps: 3443.10998 - tps: 8207.12233 + dps: 3441.23371 + tps: 8204.10335 } } dps_results: { key: "TestProtection-AllItems-AegisPlate" value: { - dps: 3236.10437 - tps: 7785.3407 + dps: 3240.8299 + tps: 7795.96771 } } dps_results: { key: "TestProtection-AllItems-Althor'sAbacus-50359" value: { - dps: 3182.98119 - tps: 7645.6588 + dps: 3180.31697 + tps: 7640.71653 } } dps_results: { key: "TestProtection-AllItems-Althor'sAbacus-50366" value: { - dps: 3185.49175 - tps: 7652.12097 + dps: 3182.84456 + tps: 7647.22253 } } dps_results: { key: "TestProtection-AllItems-AshtongueTalismanofZeal-32489" value: { - dps: 3196.70926 - tps: 7680.99483 + dps: 3194.21122 + tps: 7676.48032 } } dps_results: { key: "TestProtection-AllItems-AustereEarthsiegeDiamond" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-Bandit'sInsignia-40371" value: { - dps: 3292.66806 - tps: 7850.73049 + dps: 3290.32664 + tps: 7846.51553 } } dps_results: { key: "TestProtection-AllItems-BaubleofTrueBlood-50354" value: { - dps: 3162.61266 - tps: 7593.23019 + dps: 3159.73757 + tps: 7587.74514 hps: 87.90158 } } dps_results: { key: "TestProtection-AllItems-BaubleofTrueBlood-50726" value: { - dps: 3162.61266 - tps: 7593.23019 + dps: 3159.73757 + tps: 7587.74514 hps: 87.90158 } } dps_results: { key: "TestProtection-AllItems-BeamingEarthsiegeDiamond" value: { - dps: 3192.89515 - tps: 7670.52086 + dps: 3195.51909 + tps: 7677.76231 } } dps_results: { key: "TestProtection-AllItems-Beast-tamer'sShoulders-30892" value: { - dps: 3128.74555 - tps: 7511.99246 + dps: 3126.82073 + tps: 7508.71588 } } dps_results: { key: "TestProtection-AllItems-BlessedBattlegearofUndeadSlaying" value: { - dps: 2826.6939 - tps: 6769.99272 + dps: 2822.82134 + tps: 6763.98569 } } dps_results: { key: "TestProtection-AllItems-BlessedGarboftheUndeadSlayer" value: { - dps: 2865.6918 - tps: 6895.49245 + dps: 2870.62159 + tps: 6908.77259 } } dps_results: { key: "TestProtection-AllItems-BlessedRegaliaofUndeadCleansing" value: { - dps: 2767.86382 - tps: 6672.97979 + dps: 2766.82369 + tps: 6670.8268 } } dps_results: { key: "TestProtection-AllItems-BracingEarthsiegeDiamond" value: { - dps: 3165.40731 - tps: 7450.19949 + dps: 3162.6239 + tps: 7445.0554 } } dps_results: { key: "TestProtection-AllItems-ChaoticSkyflareDiamond" value: { - dps: 3200.4054 - tps: 7680.68667 + dps: 3198.3293 + tps: 7677.17336 } } dps_results: { key: "TestProtection-AllItems-CorpseTongueCoin-50349" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-CorpseTongueCoin-50352" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-CorrodedSkeletonKey-50356" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 hps: 64 } } dps_results: { key: "TestProtection-AllItems-DarkmoonCard:Berserker!-42989" value: { - dps: 3202.88252 - tps: 7683.81465 + dps: 3200.76985 + tps: 7680.07915 } } dps_results: { key: "TestProtection-AllItems-DarkmoonCard:Death-42990" value: { - dps: 3262.36116 - tps: 7767.80705 + dps: 3261.92912 + tps: 7768.51925 } } dps_results: { key: "TestProtection-AllItems-DarkmoonCard:Greatness-44255" value: { - dps: 3388.35675 - tps: 8159.81193 + dps: 3392.41631 + tps: 8170.33071 } } dps_results: { key: "TestProtection-AllItems-DeadlyGladiator'sLibramofFortitude-42852" value: { - dps: 3093.63666 - tps: 7415.68597 + dps: 3090.8266 + tps: 7410.3683 } } dps_results: { key: "TestProtection-AllItems-Death'sChoice-47464" value: { - dps: 3479.11734 - tps: 8333.05877 + dps: 3475.92274 + tps: 8327.36987 } } dps_results: { key: "TestProtection-AllItems-DeathKnight'sAnguish-38212" value: { - dps: 3193.13462 - tps: 7664.09508 + dps: 3191.14916 + tps: 7660.87184 } } dps_results: { key: "TestProtection-AllItems-Deathbringer'sWill-50362" value: { - dps: 3323.19302 - tps: 7947.63322 + dps: 3318.32789 + tps: 7935.48405 } } dps_results: { key: "TestProtection-AllItems-Deathbringer'sWill-50363" value: { - dps: 3328.74603 - tps: 7948.94463 + dps: 3327.04692 + tps: 7946.2969 } } dps_results: { key: "TestProtection-AllItems-Defender'sCode-40257" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-DestructiveSkyflareDiamond" value: { - dps: 3172.35292 - tps: 7615.96701 + dps: 3170.35539 + tps: 7612.52787 } } dps_results: { key: "TestProtection-AllItems-DislodgedForeignObject-50348" value: { - dps: 3275.23232 - tps: 7844.02844 + dps: 3286.49864 + tps: 7874.14491 } } dps_results: { key: "TestProtection-AllItems-DislodgedForeignObject-50353" value: { - dps: 3254.05007 - tps: 7794.59884 + dps: 3264.58805 + tps: 7822.09747 } } dps_results: { key: "TestProtection-AllItems-EffulgentSkyflareDiamond" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-EmberSkyflareDiamond" value: { - dps: 3178.28417 - tps: 7632.83973 + dps: 3180.92821 + tps: 7639.24343 } } dps_results: { key: "TestProtection-AllItems-EnigmaticSkyflareDiamond" value: { - dps: 3171.25819 - tps: 7613.32321 + dps: 3169.23498 + tps: 7609.84734 } } dps_results: { key: "TestProtection-AllItems-EnigmaticStarflareDiamond" value: { - dps: 3169.95422 - tps: 7610.36495 + dps: 3167.46989 + tps: 7605.88572 } } dps_results: { key: "TestProtection-AllItems-EphemeralSnowflake-50260" value: { - dps: 3195.09384 - tps: 7663.90444 + dps: 3190.32097 + tps: 7652.40884 } } dps_results: { key: "TestProtection-AllItems-EternalEarthsiegeDiamond" value: { - dps: 3174.70496 - tps: 7624.35578 + dps: 3171.85713 + tps: 7618.94088 } } dps_results: { key: "TestProtection-AllItems-ExtractofNecromanticPower-40373" value: { - dps: 3254.88136 - tps: 7760.41411 + dps: 3252.00486 + tps: 7754.6226 } } dps_results: { key: "TestProtection-AllItems-EyeoftheBroodmother-45308" value: { - dps: 3213.79975 - tps: 7713.58177 + dps: 3212.15465 + tps: 7711.04977 } } dps_results: { key: "TestProtection-AllItems-Figurine-SapphireOwl-42413" value: { - dps: 3254.57385 - tps: 7840.10401 + dps: 3256.03023 + tps: 7844.15884 } } dps_results: { key: "TestProtection-AllItems-ForethoughtTalisman-40258" value: { - dps: 3175.2213 - tps: 7625.68483 + dps: 3172.50445 + tps: 7620.60709 } } dps_results: { key: "TestProtection-AllItems-ForgeEmber-37660" value: { - dps: 3193.44466 - tps: 7663.91484 + dps: 3191.29103 + tps: 7660.07389 } } dps_results: { key: "TestProtection-AllItems-ForlornSkyflareDiamond" value: { - dps: 3165.40731 - tps: 7600.42362 + dps: 3162.6239 + tps: 7595.17455 } } dps_results: { key: "TestProtection-AllItems-ForlornStarflareDiamond" value: { - dps: 3164.83673 - tps: 7598.95495 + dps: 3162.04945 + tps: 7593.69592 } } dps_results: { key: "TestProtection-AllItems-FuriousGladiator'sLibramofFortitude-42853" value: { - dps: 3093.63666 - tps: 7415.68597 + dps: 3090.8266 + tps: 7410.3683 } } dps_results: { key: "TestProtection-AllItems-FuryoftheFiveFlights-40431" value: { - dps: 3283.10094 - tps: 7872.15719 + dps: 3280.28558 + tps: 7866.93557 } } dps_results: { key: "TestProtection-AllItems-FuturesightRune-38763" value: { - dps: 3169.62961 - tps: 7611.29182 + dps: 3166.87483 + tps: 7606.11646 } } dps_results: { key: "TestProtection-AllItems-Gladiator'sVindication" value: { - dps: 3565.90394 - tps: 8497.58208 + dps: 3572.39035 + tps: 8516.38688 } } dps_results: { key: "TestProtection-AllItems-GlowingTwilightScale-54573" value: { - dps: 3184.23647 - tps: 7648.88989 + dps: 3181.58077 + tps: 7643.96953 } } dps_results: { key: "TestProtection-AllItems-GlowingTwilightScale-54589" value: { - dps: 3187.08937 - tps: 7656.23326 + dps: 3184.45302 + tps: 7651.36271 } } dps_results: { key: "TestProtection-AllItems-GnomishLightningGenerator-41121" value: { - dps: 3242.23487 - tps: 7743.51059 + dps: 3239.40785 + tps: 7739.0935 } } dps_results: { key: "TestProtection-AllItems-HatefulGladiator'sLibramofFortitude-42851" value: { - dps: 3093.63666 - tps: 7415.68597 + dps: 3090.8266 + tps: 7410.3683 } } dps_results: { key: "TestProtection-AllItems-IllustrationoftheDragonSoul-40432" value: { - dps: 3173.92293 - tps: 7622.34284 + dps: 3171.21818 + tps: 7617.29623 } } dps_results: { key: "TestProtection-AllItems-ImpassiveSkyflareDiamond" value: { - dps: 3171.25819 - tps: 7613.32321 + dps: 3169.23498 + tps: 7609.84734 } } dps_results: { key: "TestProtection-AllItems-ImpassiveStarflareDiamond" value: { - dps: 3169.95422 - tps: 7610.36495 + dps: 3167.46989 + tps: 7605.88572 } } dps_results: { key: "TestProtection-AllItems-IncisorFragment-37723" value: { - dps: 3229.20852 - tps: 7739.3634 + dps: 3226.12267 + tps: 7733.68005 } } dps_results: { key: "TestProtection-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 3237.05669 - tps: 7795.62636 + dps: 3238.48084 + tps: 7799.13275 } } dps_results: { key: "TestProtection-AllItems-InvigoratingEarthsiegeDiamond" value: { - dps: 3178.93843 - tps: 7630.97323 + dps: 3176.13 + tps: 7625.67202 hps: 15.99508 } } dps_results: { key: "TestProtection-AllItems-LastWord-50179" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-LastWord-50708" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-Lavanthor'sTalisman-37872" value: { - dps: 3184.8101 - tps: 7650.36642 + dps: 3181.69129 + tps: 7644.25403 } } dps_results: { key: "TestProtection-AllItems-LibramofFuriousBlows-37574" value: { - dps: 3104.52752 - tps: 7439.42814 + dps: 3102.81178 + tps: 7436.73608 } } dps_results: { key: "TestProtection-AllItems-LibramofReciprocation-40706" value: { - dps: 3093.63666 - tps: 7415.68597 + dps: 3090.8266 + tps: 7410.3683 } } dps_results: { key: "TestProtection-AllItems-LibramofThreeTruths-50455" value: { - dps: 3093.63666 - tps: 7415.68597 + dps: 3090.8266 + tps: 7410.3683 } } dps_results: { key: "TestProtection-AllItems-LibramofValiance-47661" value: { - dps: 3338.09759 - tps: 7995.038 + dps: 3335.10473 + tps: 7989.39295 } } dps_results: { key: "TestProtection-AllItems-LibramoftheSacredShield-45145" value: { - dps: 3093.63666 - tps: 7415.68597 + dps: 3090.8266 + tps: 7410.3683 } } dps_results: { key: "TestProtection-AllItems-LightbringerBattlegear" value: { - dps: 2884.33528 - tps: 6926.68441 + dps: 2889.7945 + tps: 6940.98305 } } dps_results: { key: "TestProtection-AllItems-LightswornBattlegear" value: { - dps: 4233.13748 - tps: 10048.82838 + dps: 4229.66023 + tps: 10042.50987 } } dps_results: { key: "TestProtection-AllItems-LightswornPlate" value: { - dps: 3555.27557 - tps: 8516.12963 + dps: 3553.14883 + tps: 8512.8919 } } dps_results: { key: "TestProtection-AllItems-MajesticDragonFigurine-40430" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-MeteoriteWhetstone-37390" value: { - dps: 3203.11496 - tps: 7681.29868 + dps: 3210.24871 + tps: 7697.39102 } } dps_results: { key: "TestProtection-AllItems-NevermeltingIceCrystal-50259" value: { - dps: 3201.46897 - tps: 7684.70377 + dps: 3197.60907 + tps: 7677.61758 } } dps_results: { key: "TestProtection-AllItems-OfferingofSacrifice-37638" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-PersistentEarthshatterDiamond" value: { - dps: 3175.81767 - tps: 7623.75552 + dps: 3173.01031 + tps: 7618.45475 } } dps_results: { key: "TestProtection-AllItems-PersistentEarthsiegeDiamond" value: { - dps: 3178.93843 - tps: 7630.97323 + dps: 3176.13 + tps: 7625.67202 } } dps_results: { key: "TestProtection-AllItems-PetrifiedScarab-21685" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-PetrifiedTwilightScale-54571" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-PetrifiedTwilightScale-54591" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-PowerfulEarthshatterDiamond" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-PowerfulEarthsiegeDiamond" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-PurifiedShardoftheGods" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-RedemptionBattlegear" value: { - dps: 3207.54428 - tps: 7633.76705 + dps: 3213.28735 + tps: 7646.86908 } } dps_results: { key: "TestProtection-AllItems-RedemptionPlate" value: { - dps: 3103.43589 - tps: 7464.33957 + dps: 3100.31775 + tps: 7455.60567 } } dps_results: { key: "TestProtection-AllItems-ReignoftheDead-47316" value: { - dps: 3307.53853 - tps: 7825.10755 + dps: 3301.46342 + tps: 7812.84437 } } dps_results: { key: "TestProtection-AllItems-ReignoftheDead-47477" value: { - dps: 3325.00561 - tps: 7852.44287 + dps: 3318.77964 + tps: 7839.97301 } } dps_results: { key: "TestProtection-AllItems-RelentlessEarthsiegeDiamond" value: { - dps: 3199.89854 - tps: 7679.382 + dps: 3197.34448 + tps: 7674.83314 } } dps_results: { key: "TestProtection-AllItems-RelentlessGladiator'sLibramofFortitude-42854" value: { - dps: 3093.63666 - tps: 7415.68597 + dps: 3090.8266 + tps: 7410.3683 } } dps_results: { key: "TestProtection-AllItems-RevitalizingSkyflareDiamond" value: { - dps: 3182.64482 - tps: 7644.72229 + dps: 3180.08363 + tps: 7638.60489 } } dps_results: { key: "TestProtection-AllItems-RuneofRepulsion-40372" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-SavageGladiator'sLibramofFortitude-42611" value: { - dps: 3093.63666 - tps: 7415.68597 + dps: 3090.8266 + tps: 7410.3683 } } dps_results: { key: "TestProtection-AllItems-SealofthePantheon-36993" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-ShinyShardoftheGods" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-Sindragosa'sFlawlessFang-50361" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-SliverofPureIce-50339" value: { - dps: 3212.88105 - tps: 7728.30252 + dps: 3210.72394 + tps: 7721.60065 } } dps_results: { key: "TestProtection-AllItems-SliverofPureIce-50346" value: { - dps: 3230.04395 - tps: 7777.69293 + dps: 3241.98282 + tps: 7804.79047 } } dps_results: { key: "TestProtection-AllItems-SoulPreserver-37111" value: { - dps: 3171.11312 - tps: 7615.11037 + dps: 3168.3684 + tps: 7609.96091 } } dps_results: { key: "TestProtection-AllItems-SouloftheDead-40382" value: { - dps: 3200.04053 - tps: 7677.80319 + dps: 3198.30055 + tps: 7675.02698 } } dps_results: { key: "TestProtection-AllItems-SparkofLife-37657" value: { - dps: 3279.91065 - tps: 7876.88538 + dps: 3269.57426 + tps: 7849.53695 } } dps_results: { key: "TestProtection-AllItems-SphereofRedDragon'sBlood-37166" value: { - dps: 3271.18489 - tps: 7848.2282 + dps: 3273.13227 + tps: 7853.88364 } } dps_results: { key: "TestProtection-AllItems-StormshroudArmor" value: { - dps: 2644.94599 - tps: 6361.12949 + dps: 2641.93469 + tps: 6357.70955 } } dps_results: { key: "TestProtection-AllItems-SwiftSkyflareDiamond" value: { - dps: 3178.93843 - tps: 7630.97323 + dps: 3176.13 + tps: 7625.67202 } } dps_results: { key: "TestProtection-AllItems-SwiftStarflareDiamond" value: { - dps: 3175.81767 - tps: 7623.75552 + dps: 3173.01031 + tps: 7618.45475 } } dps_results: { key: "TestProtection-AllItems-SwiftWindfireDiamond" value: { - dps: 3170.35632 - tps: 7611.12453 + dps: 3167.55086 + tps: 7605.82454 } } dps_results: { key: "TestProtection-AllItems-TalismanofTrollDivinity-37734" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-TearsoftheVanquished-47215" value: { - dps: 3264.10316 - tps: 7866.0622 + dps: 3268.52779 + tps: 7876.96555 } } dps_results: { key: "TestProtection-AllItems-TheGeneral'sHeart-45507" value: { - dps: 3162.55441 - tps: 7593.08025 + dps: 3159.75164 + tps: 7587.78137 } } dps_results: { key: "TestProtection-AllItems-TheTwinBladesofAzzinoth" value: { - dps: 2983.79231 - tps: 7176.72029 + dps: 2988.44286 + tps: 7190.09062 } } dps_results: { key: "TestProtection-AllItems-ThunderingSkyflareDiamond" value: { - dps: 3187.59974 - tps: 7659.92453 + dps: 3188.01353 + tps: 7659.25697 } } dps_results: { key: "TestProtection-AllItems-TinyAbominationinaJar-50351" value: { - dps: 3447.51786 - tps: 8208.5201 + dps: 3453.2411 + tps: 8223.88957 } } dps_results: { key: "TestProtection-AllItems-TinyAbominationinaJar-50706" value: { - dps: 3506.60873 - tps: 8333.96987 + dps: 3512.75303 + tps: 8348.74968 } } dps_results: { key: "TestProtection-AllItems-TirelessSkyflareDiamond" value: { - dps: 3165.40731 - tps: 7600.42362 + dps: 3162.6239 + tps: 7595.17455 } } dps_results: { key: "TestProtection-AllItems-TirelessStarflareDiamond" value: { - dps: 3164.83673 - tps: 7598.95495 + dps: 3162.04945 + tps: 7593.69592 } } dps_results: { key: "TestProtection-AllItems-TomeofArcanePhenomena-36972" value: { - dps: 3197.31931 - tps: 7680.12746 + dps: 3193.26195 + tps: 7668.68831 } } dps_results: { key: "TestProtection-AllItems-TomeoftheLightbringer-32368" value: { - dps: 3139.49623 - tps: 7533.7285 + dps: 3136.69102 + tps: 7528.42333 } } dps_results: { key: "TestProtection-AllItems-TrenchantEarthshatterDiamond" value: { - dps: 3164.83673 - tps: 7598.95495 + dps: 3162.04945 + tps: 7593.69592 } } dps_results: { key: "TestProtection-AllItems-TrenchantEarthsiegeDiamond" value: { - dps: 3165.40731 - tps: 7600.42362 + dps: 3162.6239 + tps: 7595.17455 } } dps_results: { key: "TestProtection-AllItems-Turalyon'sBattlegear" value: { - dps: 3450.95693 - tps: 8223.8947 + dps: 3450.62619 + tps: 8224.86339 } } dps_results: { key: "TestProtection-AllItems-Turalyon'sPlate" value: { - dps: 3292.60872 - tps: 7906.52437 + dps: 3298.48926 + tps: 7919.96113 } } dps_results: { key: "TestProtection-AllItems-UndeadSlayer'sBlessedArmor" value: { - dps: 2822.67693 - tps: 6762.00869 + dps: 2811.81386 + tps: 6736.0458 } } dps_results: { key: "TestProtection-AllItems-Val'anyr,HammerofAncientKings-46017" value: { - dps: 3123.72602 - tps: 7552.97963 + dps: 3126.28963 + tps: 7559.27292 } } dps_results: { key: "TestProtection-AllItems-WingedTalisman-37844" value: { - dps: 3171.39064 - tps: 7615.82472 + dps: 3168.64102 + tps: 7610.66263 } } dps_results: { key: "TestProtection-AllItems-WrathfulGladiator'sLibramofFortitude-51478" value: { - dps: 3093.63666 - tps: 7415.68597 + dps: 3090.8266 + tps: 7410.3683 } } dps_results: { key: "TestProtection-Average-Default" value: { - dps: 3641.59174 - tps: 8729.73512 + dps: 3642.06745 + tps: 8730.61599 dtps: 5.17687 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOC-default-FullBuffs-LongMultiTarget" value: { - dps: 10375.07714 - tps: 27835.71812 + dps: 10378.95047 + tps: 27845.66742 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOC-default-FullBuffs-LongSingleTarget" value: { - dps: 2946.48266 - tps: 7005.01894 + dps: 2950.18961 + tps: 7014.39486 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOC-default-FullBuffs-ShortSingleTarget" value: { - dps: 3181.85593 - tps: 7528.0141 + dps: 3182.24142 + tps: 7531.91915 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOC-default-NoBuffs-LongMultiTarget" value: { - dps: 3005.78006 - tps: 8743.75503 + dps: 3004.41091 + tps: 8735.91907 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOC-default-NoBuffs-LongSingleTarget" value: { - dps: 1412.45675 - tps: 3421.27435 + dps: 1419.46854 + tps: 3439.34037 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOC-default-NoBuffs-ShortSingleTarget" value: { - dps: 1595.15114 - tps: 3882.79459 + dps: 1587.77947 + tps: 3863.11684 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOR-default-FullBuffs-LongMultiTarget" value: { - dps: 9291.2557 - tps: 25044.54325 + dps: 9291.15098 + tps: 25044.06601 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOR-default-FullBuffs-LongSingleTarget" value: { - dps: 2974.38828 - tps: 7081.47024 + dps: 2974.55602 + tps: 7082.18487 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOR-default-FullBuffs-ShortSingleTarget" value: { - dps: 3181.02628 - tps: 7530.50826 + dps: 3183.44612 + tps: 7537.37244 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOR-default-NoBuffs-LongMultiTarget" value: { - dps: 2496.96317 - tps: 7431.6853 + dps: 2470.59039 + tps: 7363.9415 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOR-default-NoBuffs-LongSingleTarget" value: { - dps: 1373.04785 - tps: 3318.6302 + dps: 1373.94918 + tps: 3325.34143 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOR-default-NoBuffs-ShortSingleTarget" value: { - dps: 1560.42529 - tps: 3788.26189 + dps: 1569.04391 + tps: 3811.85929 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOV-default-FullBuffs-LongMultiTarget" value: { - dps: 10233.63769 - tps: 27462.61742 + dps: 10235.54902 + tps: 27467.94625 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOV-default-FullBuffs-LongSingleTarget" value: { - dps: 3276.6828 - tps: 7856.39816 + dps: 3280.1691 + tps: 7865.90931 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOV-default-FullBuffs-ShortSingleTarget" value: { - dps: 3412.25885 - tps: 8136.77248 + dps: 3411.95239 + tps: 8139.0071 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOV-default-NoBuffs-LongMultiTarget" value: { - dps: 2953.89002 - tps: 8609.31036 + dps: 2945.60772 + tps: 8588.83328 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOV-default-NoBuffs-LongSingleTarget" value: { - dps: 1553.86753 - tps: 3785.55397 + dps: 1555.01575 + tps: 3789.22493 } } dps_results: { key: "TestProtection-Settings-BloodElf-p1-Protection Paladin SOV-default-NoBuffs-ShortSingleTarget" value: { - dps: 1718.87059 - tps: 4201.87948 + dps: 1726.69904 + tps: 4225.16939 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOC-default-FullBuffs-LongMultiTarget" value: { - dps: 10095.13958 - tps: 27075.19978 + dps: 10076.87837 + tps: 27030.45335 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOC-default-FullBuffs-LongSingleTarget" value: { - dps: 2923.26782 - tps: 6942.83459 + dps: 2929.04579 + tps: 6956.31088 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOC-default-FullBuffs-ShortSingleTarget" value: { - dps: 3185.20366 - tps: 7535.54302 + dps: 3185.58649 + tps: 7539.48189 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOC-default-NoBuffs-LongMultiTarget" value: { - dps: 2949.55916 - tps: 8550.73924 + dps: 2999.32622 + tps: 8679.43636 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOC-default-NoBuffs-LongSingleTarget" value: { - dps: 1408.01728 - tps: 3406.22256 + dps: 1395.37574 + tps: 3374.98453 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOC-default-NoBuffs-ShortSingleTarget" value: { - dps: 1553.95261 - tps: 3770.02763 + dps: 1582.2127 + tps: 3841.8844 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOR-default-FullBuffs-LongMultiTarget" value: { - dps: 9098.94879 - tps: 24507.58607 + dps: 9067.54407 + tps: 24426.26188 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOR-default-FullBuffs-LongSingleTarget" value: { - dps: 2941.4957 - tps: 6995.17776 + dps: 2947.87991 + tps: 7013.43133 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOR-default-FullBuffs-ShortSingleTarget" value: { - dps: 3184.67078 - tps: 7538.71366 + dps: 3187.09254 + tps: 7545.58388 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOR-default-NoBuffs-LongMultiTarget" value: { - dps: 2436.38027 - tps: 7237.77757 + dps: 2460.4117 + tps: 7295.9721 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOR-default-NoBuffs-LongSingleTarget" value: { - dps: 1360.69881 - tps: 3286.92397 + dps: 1364.89179 + tps: 3300.98772 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOR-default-NoBuffs-ShortSingleTarget" value: { - dps: 1537.46619 - tps: 3728.30209 + dps: 1536.2802 + tps: 3726.015 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOV-default-FullBuffs-LongMultiTarget" value: { - dps: 9942.66221 - tps: 26670.75909 + dps: 9955.63946 + tps: 26697.83985 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOV-default-FullBuffs-LongSingleTarget" value: { - dps: 3262.95316 - tps: 7817.60742 + dps: 3269.17793 + tps: 7833.41678 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOV-default-FullBuffs-ShortSingleTarget" value: { - dps: 3416.12151 - tps: 8145.54042 + dps: 3415.81591 + tps: 8147.8302 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOV-default-NoBuffs-LongMultiTarget" value: { - dps: 2904.01714 - tps: 8432.84218 + dps: 2925.04123 + tps: 8490.85749 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOV-default-NoBuffs-LongSingleTarget" value: { - dps: 1539.91246 - tps: 3745.85622 + dps: 1556.197 + tps: 3790.12454 } } dps_results: { key: "TestProtection-Settings-Human-p1-Protection Paladin SOV-default-NoBuffs-ShortSingleTarget" value: { - dps: 1671.15076 - tps: 4074.9337 + dps: 1701.08947 + tps: 4156.60067 } } dps_results: { key: "TestProtection-SwitchInFrontOfTarget-Default" value: { - dps: 3776.43498 - tps: 9053.09572 + dps: 3776.71597 + tps: 9054.09126 dtps: 6.83554 } } diff --git a/sim/paladin/retribution/TestRetribution.results b/sim/paladin/retribution/TestRetribution.results index 606ac5d4a9..1f01275a53 100644 --- a/sim/paladin/retribution/TestRetribution.results +++ b/sim/paladin/retribution/TestRetribution.results @@ -46,64 +46,64 @@ character_stats_results: { dps_results: { key: "TestRetribution-AllItems-AegisBattlegear" value: { - dps: 6265.52074 - tps: 6350.98025 + dps: 6267.63967 + tps: 6353.09919 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-AegisPlate" value: { - dps: 5609.93096 - tps: 5690.23536 + dps: 5624.28488 + tps: 5704.54716 dtps: 8.90286 } } dps_results: { key: "TestRetribution-AllItems-Althor'sAbacus-50359" value: { - dps: 6463.03497 - tps: 6548.51939 + dps: 6465.838 + tps: 6551.32242 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Althor'sAbacus-50366" value: { - dps: 6468.58297 - tps: 6554.06739 + dps: 6471.39255 + tps: 6556.87697 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-AshtongueTalismanofZeal-32489" value: { - dps: 6466.79241 - tps: 6552.2733 + dps: 6469.56575 + tps: 6555.04664 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-AustereEarthsiegeDiamond" value: { - dps: 6527.67731 - tps: 6613.16173 + dps: 6530.22786 + tps: 6615.71228 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Bandit'sInsignia-40371" value: { - dps: 6626.40876 - tps: 6711.75048 - dtps: 9.92959 + dps: 6628.68063 + tps: 6714.02235 + dtps: 10.03858 } } dps_results: { key: "TestRetribution-AllItems-BaubleofTrueBlood-50354" value: { - dps: 6418.32371 - tps: 6503.80813 + dps: 6420.38177 + tps: 6505.86619 dtps: 9.48456 hps: 94.7032 } @@ -111,8 +111,8 @@ dps_results: { dps_results: { key: "TestRetribution-AllItems-BaubleofTrueBlood-50726" value: { - dps: 6418.32371 - tps: 6503.80813 + dps: 6420.38177 + tps: 6505.86619 dtps: 9.48456 hps: 94.7032 } @@ -120,96 +120,96 @@ dps_results: { dps_results: { key: "TestRetribution-AllItems-BeamingEarthsiegeDiamond" value: { - dps: 6542.49196 - tps: 6627.91649 + dps: 6545.17508 + tps: 6630.59961 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Beast-tamer'sShoulders-30892" value: { - dps: 6396.37365 - tps: 6481.57182 + dps: 6399.27432 + tps: 6484.47157 dtps: 9.23882 } } dps_results: { key: "TestRetribution-AllItems-BlessedBattlegearofUndeadSlaying" value: { - dps: 5402.5796 - tps: 5485.76247 + dps: 5408.6806 + tps: 5491.92688 dtps: 9.23882 } } dps_results: { key: "TestRetribution-AllItems-BlessedGarboftheUndeadSlayer" value: { - dps: 5355.40033 - tps: 5438.5861 + dps: 5352.74783 + tps: 5436.05037 dtps: 9.23882 } } dps_results: { key: "TestRetribution-AllItems-BlessedRegaliaofUndeadCleansing" value: { - dps: 5189.92899 - tps: 5272.94196 + dps: 5184.92032 + tps: 5268.14279 dtps: 9.23882 } } dps_results: { key: "TestRetribution-AllItems-BracingEarthsiegeDiamond" value: { - dps: 6533.87064 - tps: 6488.67764 + dps: 6536.42822 + tps: 6491.18407 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Bryntroll,theBoneArbiter-50415" value: { - dps: 6996.83432 - tps: 7082.31873 + dps: 6999.75956 + tps: 7085.24398 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Bryntroll,theBoneArbiter-50709" value: { - dps: 7028.63355 - tps: 7114.11797 + dps: 7031.57228 + tps: 7117.0567 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-ChaoticSkyflareDiamond" value: { - dps: 6660.95491 - tps: 6746.43932 + dps: 6663.73767 + tps: 6749.22209 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-CorpseTongueCoin-50349" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-CorpseTongueCoin-50352" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-CorrodedSkeletonKey-50356" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 hps: 64 } @@ -217,1569 +217,1569 @@ dps_results: { dps_results: { key: "TestRetribution-AllItems-DarkmoonCard:Berserker!-42989" value: { - dps: 6516.19359 - tps: 6601.67801 + dps: 6518.54487 + tps: 6604.02929 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-DarkmoonCard:Death-42990" value: { - dps: 6566.54899 - tps: 6651.90078 - dtps: 9.73062 + dps: 6568.6909 + tps: 6654.04269 + dtps: 9.77043 } } dps_results: { key: "TestRetribution-AllItems-DarkmoonCard:Greatness-44255" value: { - dps: 6417.89443 - tps: 6502.85553 + dps: 6420.64412 + tps: 6505.60522 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Death'sChoice-47464" value: { - dps: 6998.07468 - tps: 7083.55909 + dps: 7001.70251 + tps: 7087.18693 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-DeathKnight'sAnguish-38212" value: { - dps: 6482.32586 - tps: 6567.81028 + dps: 6484.37184 + tps: 6569.85626 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Deathbringer'sWill-50362" value: { - dps: 6752.82175 - tps: 6838.47382 + dps: 6755.39831 + tps: 6841.05039 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Deathbringer'sWill-50363" value: { - dps: 6797.37538 - tps: 6882.9999 - dtps: 9.92959 + dps: 6800.16236 + tps: 6885.78687 + dtps: 10.29273 } } dps_results: { key: "TestRetribution-AllItems-Defender'sCode-40257" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-DestructiveSkyflareDiamond" value: { - dps: 6545.42091 - tps: 6630.90533 + dps: 6548.10403 + tps: 6633.58845 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-DislodgedForeignObject-50348" value: { - dps: 6638.60666 - tps: 6724.80229 + dps: 6641.24137 + tps: 6727.437 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-DislodgedForeignObject-50353" value: { - dps: 6606.51859 - tps: 6692.33287 + dps: 6609.15362 + tps: 6694.9679 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-EffulgentSkyflareDiamond" value: { - dps: 6527.67731 - tps: 6613.16173 + dps: 6530.22786 + tps: 6615.71228 dtps: 9.731 } } dps_results: { key: "TestRetribution-AllItems-EmberSkyflareDiamond" value: { - dps: 6533.87064 - tps: 6619.32555 + dps: 6536.42822 + tps: 6621.88313 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-EnigmaticSkyflareDiamond" value: { - dps: 6542.49196 - tps: 6627.97637 + dps: 6545.17508 + tps: 6630.65949 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-EnigmaticStarflareDiamond" value: { - dps: 6539.07972 - tps: 6624.56414 + dps: 6541.7627 + tps: 6627.24712 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-EphemeralSnowflake-50260" value: { - dps: 6537.64918 - tps: 6623.6646 + dps: 6540.28153 + tps: 6626.29696 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-EssenceofGossamer-37220" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-EternalEarthsiegeDiamond" value: { - dps: 6527.67731 - tps: 6613.16173 + dps: 6530.22786 + tps: 6615.71228 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-ExtractofNecromanticPower-40373" value: { - dps: 6575.70469 - tps: 6661.20881 + dps: 6577.74959 + tps: 6663.25371 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-EyeoftheBroodmother-45308" value: { - dps: 6538.97715 - tps: 6624.46157 + dps: 6541.19513 + tps: 6626.67955 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Figurine-SapphireOwl-42413" value: { - dps: 6417.89443 - tps: 6503.24308 + dps: 6420.64412 + tps: 6505.99277 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-ForethoughtTalisman-40258" value: { - dps: 6445.88661 - tps: 6531.37103 + dps: 6448.66937 + tps: 6534.15379 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-ForgeEmber-37660" value: { - dps: 6498.43543 - tps: 6583.91985 + dps: 6500.48141 + tps: 6585.96583 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-ForlornSkyflareDiamond" value: { - dps: 6533.87064 - tps: 6619.35506 + dps: 6536.42822 + tps: 6621.91263 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-ForlornStarflareDiamond" value: { - dps: 6532.63197 - tps: 6618.11639 + dps: 6535.18815 + tps: 6620.67256 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-FuriousGladiator'sLibramofFortitude-42853" value: { - dps: 6679.6954 - tps: 6765.17981 + dps: 6682.47833 + tps: 6767.96275 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-FuturesightRune-38763" value: { - dps: 6433.5297 - tps: 6519.01412 + dps: 6436.29786 + tps: 6521.78228 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Gladiator'sVindication" value: { - dps: 6352.54027 - tps: 6439.95797 + dps: 6358.13746 + tps: 6445.51667 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-GlowingTwilightScale-54573" value: { - dps: 6465.80897 - tps: 6551.29339 + dps: 6468.61528 + tps: 6554.09969 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-GlowingTwilightScale-54589" value: { - dps: 6472.11351 - tps: 6557.59793 + dps: 6474.92727 + tps: 6560.41169 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-GnomishLightningGenerator-41121" value: { - dps: 6539.53326 - tps: 6624.84618 + dps: 6541.49124 + tps: 6626.80415 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-HatefulGladiator'sLibramofFortitude-42851" value: { - dps: 6649.19136 - tps: 6734.67577 + dps: 6651.97402 + tps: 6737.45844 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-IllustrationoftheDragonSoul-40432" value: { - dps: 6428.78608 - tps: 6514.2705 + dps: 6431.53577 + tps: 6517.02018 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-ImpassiveSkyflareDiamond" value: { - dps: 6542.49196 - tps: 6627.97637 + dps: 6545.17508 + tps: 6630.65949 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-ImpassiveStarflareDiamond" value: { - dps: 6539.07972 - tps: 6624.56414 + dps: 6541.7627 + tps: 6627.24712 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-IncisorFragment-37723" value: { - dps: 6582.69425 - tps: 6668.17867 + dps: 6584.89722 + tps: 6670.38164 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 6527.67731 - tps: 6614.76571 + dps: 6530.22786 + tps: 6617.31626 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-InvigoratingEarthsiegeDiamond" value: { - dps: 6559.98213 - tps: 6645.46655 + dps: 6562.52264 + tps: 6648.00706 dtps: 9.92959 - hps: 12.02963 + hps: 12.10749 } } dps_results: { key: "TestRetribution-AllItems-LastWord-50179" value: { - dps: 6859.23253 - tps: 6944.71695 + dps: 6862.21684 + tps: 6947.70125 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-LastWord-50708" value: { - dps: 6888.84379 - tps: 6974.32821 + dps: 6891.83304 + tps: 6977.31746 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Lavanthor'sTalisman-37872" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-LibramofFuriousBlows-37574" value: { - dps: 6592.30773 - tps: 6677.79215 + dps: 6594.38418 + tps: 6679.8686 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-LibramofObstruction-40707" value: { - dps: 6567.25245 - tps: 6652.73687 + dps: 6570.03438 + tps: 6655.5188 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-LibramofReciprocation-40706" value: { - dps: 6567.25245 - tps: 6652.73687 + dps: 6570.03438 + tps: 6655.5188 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-LibramofThreeTruths-50455" value: { - dps: 6986.45066 - tps: 7071.93507 + dps: 6989.23336 + tps: 7074.71778 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-LibramofValiance-47661" value: { - dps: 6953.66188 - tps: 7039.1463 + dps: 6956.44703 + tps: 7041.93145 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-LibramoftheSacredShield-45145" value: { - dps: 6567.25245 - tps: 6652.73687 + dps: 6570.03438 + tps: 6655.5188 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-LightbringerBattlegear" value: { - dps: 4807.44211 - tps: 4888.66531 + dps: 4826.60507 + tps: 4907.79979 dtps: 9.23882 } } dps_results: { key: "TestRetribution-AllItems-LightswornBattlegear" value: { - dps: 7651.62614 - tps: 7739.21381 + dps: 7652.50369 + tps: 7740.0136 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-LightswornPlate" value: { - dps: 6079.41895 - tps: 6161.75245 + dps: 6084.50477 + tps: 6166.71472 dtps: 8.90286 } } dps_results: { key: "TestRetribution-AllItems-MajesticDragonFigurine-40430" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-MeteoriteWhetstone-37390" value: { - dps: 6552.19182 - tps: 6638.06272 + dps: 6554.17536 + tps: 6640.04626 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-NevermeltingIceCrystal-50259" value: { - dps: 6478.3902 - tps: 6563.87462 + dps: 6479.52108 + tps: 6565.0055 dtps: 10.29273 } } dps_results: { key: "TestRetribution-AllItems-OfferingofSacrifice-37638" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-PersistentEarthshatterDiamond" value: { - dps: 6553.86774 - tps: 6639.35216 + dps: 6556.42894 + tps: 6641.91336 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-PersistentEarthsiegeDiamond" value: { - dps: 6560.0302 - tps: 6645.51462 + dps: 6562.5939 + tps: 6648.07832 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-PetrifiedScarab-21685" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 8.19524 } } dps_results: { key: "TestRetribution-AllItems-PetrifiedTwilightScale-54571" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-PetrifiedTwilightScale-54591" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-PowerfulEarthshatterDiamond" value: { - dps: 6527.67731 - tps: 6613.16173 + dps: 6530.22786 + tps: 6615.71228 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-PowerfulEarthsiegeDiamond" value: { - dps: 6527.67731 - tps: 6613.16173 + dps: 6530.22786 + tps: 6615.71228 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-PurifiedShardoftheGods" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-RedemptionBattlegear" value: { - dps: 5845.43638 - tps: 5934.7164 + dps: 5848.02627 + tps: 5937.34542 dtps: 9.23882 } } dps_results: { key: "TestRetribution-AllItems-RedemptionPlate" value: { - dps: 5356.78457 - tps: 5438.32075 + dps: 5361.48123 + tps: 5443.07301 dtps: 8.90286 } } dps_results: { key: "TestRetribution-AllItems-ReignoftheDead-47316" value: { - dps: 6679.65375 - tps: 6765.17013 + dps: 6682.44817 + tps: 6767.96455 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-ReignoftheDead-47477" value: { - dps: 6712.79217 - tps: 6798.30855 + dps: 6715.59195 + tps: 6801.10833 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-RelentlessEarthsiegeDiamond" value: { - dps: 6660.95491 - tps: 6746.43932 + dps: 6663.73767 + tps: 6749.22209 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-RelentlessGladiator'sLibramofFortitude-42854" value: { - dps: 6701.5593 - tps: 6787.04372 + dps: 6704.34243 + tps: 6789.82685 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-RevitalizingSkyflareDiamond" value: { - dps: 6527.67731 - tps: 6612.60085 + dps: 6530.22786 + tps: 6615.1514 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-RuneofRepulsion-40372" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-SavageGladiator'sLibramofFortitude-42611" value: { - dps: 6639.91525 - tps: 6725.39967 + dps: 6642.69784 + tps: 6728.18226 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-SealofthePantheon-36993" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Shadowmourne-49623" value: { - dps: 7901.76282 - tps: 7987.08825 + dps: 7904.14539 + tps: 7989.47082 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-ShinyShardoftheGods" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Sindragosa'sFlawlessFang-50361" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 6.55074 } } dps_results: { key: "TestRetribution-AllItems-SliverofPureIce-50339" value: { - dps: 6457.73915 - tps: 6543.78579 + dps: 6460.53592 + tps: 6546.58256 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-SliverofPureIce-50346" value: { - dps: 6462.78279 - tps: 6548.82943 + dps: 6465.58552 + tps: 6551.63215 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-SoulPreserver-37111" value: { - dps: 6436.80806 - tps: 6522.29248 + dps: 6439.5801 + tps: 6525.06452 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-SouloftheDead-40382" value: { - dps: 6509.54517 - tps: 6596.74113 + dps: 6511.59115 + tps: 6598.78712 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-SparkofLife-37657" value: { - dps: 6503.25204 - tps: 6585.41666 + dps: 6505.88684 + tps: 6588.05146 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-SphereofRedDragon'sBlood-37166" value: { - dps: 6558.20579 - tps: 6643.59818 + dps: 6560.5516 + tps: 6645.94398 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-StormshroudArmor" value: { - dps: 5065.63082 - tps: 5146.76547 + dps: 5066.09756 + tps: 5147.33665 dtps: 9.23882 } } dps_results: { key: "TestRetribution-AllItems-SwiftSkyflareDiamond" value: { - dps: 6560.0302 - tps: 6645.51462 + dps: 6562.5939 + tps: 6648.07832 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-SwiftStarflareDiamond" value: { - dps: 6553.86774 - tps: 6639.35216 + dps: 6556.42894 + tps: 6641.91336 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-SwiftWindfireDiamond" value: { - dps: 6543.08345 - tps: 6628.56787 + dps: 6545.64026 + tps: 6631.12468 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-TalismanofTrollDivinity-37734" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-TearsoftheVanquished-47215" value: { - dps: 6417.89443 - tps: 6502.91006 + dps: 6420.64412 + tps: 6505.65975 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-TheGeneral'sHeart-45507" value: { - dps: 6417.89443 - tps: 6503.37885 + dps: 6420.64412 + tps: 6506.12854 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-TheTwinBladesofAzzinoth" value: { - dps: 5384.0119 - tps: 5469.36328 + dps: 5386.43187 + tps: 5471.78324 dtps: 9.23882 } } dps_results: { key: "TestRetribution-AllItems-ThunderingSkyflareDiamond" value: { - dps: 6576.90206 - tps: 6662.5394 + dps: 6579.44593 + tps: 6665.08327 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-TinyAbominationinaJar-50351" value: { - dps: 7022.0005 - tps: 7108.23815 + dps: 7024.75055 + tps: 7110.9882 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-TinyAbominationinaJar-50706" value: { - dps: 7120.7343 - tps: 7207.02324 + dps: 7123.46994 + tps: 7209.75888 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-TirelessSkyflareDiamond" value: { - dps: 6533.87064 - tps: 6619.35506 + dps: 6536.42822 + tps: 6621.91263 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-TirelessStarflareDiamond" value: { - dps: 6532.63197 - tps: 6618.11639 + dps: 6535.18815 + tps: 6620.67256 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-TomeofArcanePhenomena-36972" value: { - dps: 6534.25497 - tps: 6619.90392 + dps: 6536.90876 + tps: 6622.55771 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-TomeoftheLightbringer-32368" value: { - dps: 6567.25245 - tps: 6652.73687 + dps: 6570.03438 + tps: 6655.5188 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-TrenchantEarthshatterDiamond" value: { - dps: 6532.63197 - tps: 6618.11639 + dps: 6535.18815 + tps: 6620.67256 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-TrenchantEarthsiegeDiamond" value: { - dps: 6533.87064 - tps: 6619.35506 + dps: 6536.42822 + tps: 6621.91263 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Turalyon'sBattlegear" value: { - dps: 6296.58951 - tps: 6381.405 + dps: 6301.04402 + tps: 6385.85246 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-Turalyon'sPlate" value: { - dps: 5624.48591 - tps: 5706.60983 + dps: 5625.99866 + tps: 5708.05762 dtps: 8.90286 } } dps_results: { key: "TestRetribution-AllItems-UndeadSlayer'sBlessedArmor" value: { - dps: 5403.74942 - tps: 5487.16559 + dps: 5397.50839 + tps: 5481.06036 dtps: 9.23882 } } dps_results: { key: "TestRetribution-AllItems-Val'anyr,HammerofAncientKings-46017" value: { - dps: 5143.08461 - tps: 5227.94953 + dps: 5145.68317 + tps: 5230.54809 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-WingedTalisman-37844" value: { - dps: 6437.27712 - tps: 6522.76154 + dps: 6440.12991 + tps: 6525.61433 dtps: 9.92959 } } dps_results: { key: "TestRetribution-AllItems-WrathfulGladiator'sLibramofFortitude-51478" value: { - dps: 6726.54662 - tps: 6812.03104 + dps: 6729.32997 + tps: 6814.81439 dtps: 9.92959 } } dps_results: { key: "TestRetribution-Average-Default" value: { - dps: 6667.16091 - tps: 6751.76652 - dtps: 13.59596 + dps: 6668.82111 + tps: 6753.42361 + dtps: 13.59845 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOC-default-FullBuffs-LongMultiTarget" value: { - dps: 18971.11574 - tps: 20683.21538 - dtps: 10.56726 + dps: 18965.87628 + tps: 20677.97592 + dtps: 10.57482 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOC-default-FullBuffs-LongSingleTarget" value: { - dps: 5489.1527 - tps: 5574.62494 - dtps: 11.91551 + dps: 5477.77449 + tps: 5563.41103 + dtps: 11.82069 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOC-default-FullBuffs-ShortSingleTarget" value: { - dps: 6210.29551 - tps: 6301.47989 - dtps: 59.57753 + dps: 6191.71827 + tps: 6282.42821 + dtps: 59.10347 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOC-default-NoBuffs-LongMultiTarget" value: { - dps: 9637.17268 - tps: 11227.77451 + dps: 9690.23656 + tps: 11291.37575 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOC-default-NoBuffs-LongSingleTarget" value: { - dps: 2840.7199 - tps: 2920.93472 + dps: 2822.00122 + tps: 2901.33317 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOC-default-NoBuffs-ShortSingleTarget" value: { - dps: 3117.48943 - tps: 3201.81555 + dps: 3119.28186 + tps: 3203.75239 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOR-default-FullBuffs-LongMultiTarget" value: { - dps: 16959.3136 - tps: 18671.09917 - dtps: 10.56726 + dps: 16956.74719 + tps: 18668.53276 + dtps: 10.33353 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOR-default-FullBuffs-LongSingleTarget" value: { - dps: 5850.91138 - tps: 5936.46432 - dtps: 11.91551 + dps: 5849.36725 + tps: 5934.9202 + dtps: 11.82069 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOR-default-FullBuffs-ShortSingleTarget" value: { - dps: 6639.8539 - tps: 6730.42194 - dtps: 59.57753 + dps: 6635.73718 + tps: 6726.30523 + dtps: 59.10347 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOR-default-NoBuffs-LongMultiTarget" value: { - dps: 8452.39789 - tps: 10054.05795 + dps: 8456.35199 + tps: 10057.93058 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOR-default-NoBuffs-LongSingleTarget" value: { - dps: 2909.45187 - tps: 2989.09547 + dps: 2919.30418 + tps: 2999.65041 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOR-default-NoBuffs-ShortSingleTarget" value: { - dps: 3200.22801 - tps: 3284.0232 + dps: 3192.12478 + tps: 3276.43053 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongMultiTarget" value: { - dps: 18990.20013 - tps: 20698.36129 + dps: 18992.40325 + tps: 20700.56441 dtps: 8.80605 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongSingleTarget" value: { - dps: 6660.95491 - tps: 6746.43932 + dps: 6663.73767 + tps: 6749.22209 dtps: 9.92959 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-ShortSingleTarget" value: { - dps: 7368.71073 - tps: 7459.48078 + dps: 7382.6245 + tps: 7473.39455 dtps: 49.64794 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongMultiTarget" value: { - dps: 9473.00918 - tps: 11060.68167 + dps: 9533.20083 + tps: 11124.81968 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongSingleTarget" value: { - dps: 3419.68819 - tps: 3498.9876 + dps: 3415.52184 + tps: 3494.50593 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-ShortSingleTarget" value: { - dps: 3662.89865 - tps: 3744.33205 + dps: 3662.68519 + tps: 3743.76868 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOV-default-FullBuffs-LongMultiTarget" value: { - dps: 18990.20013 - tps: 20698.36129 + dps: 18992.40325 + tps: 20700.56441 dtps: 8.80605 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOV-default-FullBuffs-LongSingleTarget" value: { - dps: 6660.95491 - tps: 6746.43932 + dps: 6663.73767 + tps: 6749.22209 dtps: 9.92959 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOV-default-FullBuffs-ShortSingleTarget" value: { - dps: 7368.71073 - tps: 7459.48078 + dps: 7382.6245 + tps: 7473.39455 dtps: 49.64794 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOV-default-NoBuffs-LongMultiTarget" value: { - dps: 9473.00918 - tps: 11060.68167 + dps: 9533.20083 + tps: 11124.81968 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOV-default-NoBuffs-LongSingleTarget" value: { - dps: 3419.68819 - tps: 3498.9876 + dps: 3415.52184 + tps: 3494.50593 } } dps_results: { key: "TestRetribution-Settings-BloodElf-p1-Retribution Paladin SOV-default-NoBuffs-ShortSingleTarget" value: { - dps: 3662.89865 - tps: 3744.33205 + dps: 3662.68519 + tps: 3743.76868 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOC-default-FullBuffs-LongMultiTarget" value: { - dps: 19094.51277 - tps: 20786.21603 - dtps: 10.18635 + dps: 19088.69151 + tps: 20780.39477 + dtps: 10.14629 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOC-default-FullBuffs-LongSingleTarget" value: { - dps: 5499.58746 - tps: 5584.09355 - dtps: 11.91551 + dps: 5488.47312 + tps: 5573.1081 + dtps: 11.82069 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOC-default-FullBuffs-ShortSingleTarget" value: { - dps: 6214.23027 - tps: 6305.4116 - dtps: 59.57753 + dps: 6195.69496 + tps: 6286.42559 + dtps: 59.10347 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOC-default-NoBuffs-LongMultiTarget" value: { - dps: 9424.10193 - tps: 10971.88085 + dps: 9509.93182 + tps: 11074.83976 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOC-default-NoBuffs-LongSingleTarget" value: { - dps: 2790.79043 - tps: 2868.8458 + dps: 2794.1243 + tps: 2872.4173 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOC-default-NoBuffs-ShortSingleTarget" value: { - dps: 3125.9593 - tps: 3210.43205 + dps: 3127.75807 + tps: 3212.3754 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOR-default-FullBuffs-LongMultiTarget" value: { - dps: 17082.97172 - tps: 18775.69464 - dtps: 10.18635 + dps: 17080.52512 + tps: 18773.24803 + dtps: 9.95262 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOR-default-FullBuffs-LongSingleTarget" value: { - dps: 5865.04094 - tps: 5949.58524 - dtps: 11.91551 + dps: 5863.49367 + tps: 5948.03796 + dtps: 11.82069 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOR-default-FullBuffs-ShortSingleTarget" value: { - dps: 6652.43061 - tps: 6743.01944 - dtps: 59.57753 + dps: 6648.29988 + tps: 6738.88871 + dtps: 59.10347 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOR-default-NoBuffs-LongMultiTarget" value: { - dps: 8337.63798 - tps: 9899.84386 + dps: 8316.34275 + tps: 9871.51066 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOR-default-NoBuffs-LongSingleTarget" value: { - dps: 2890.17689 - tps: 2968.59111 + dps: 2875.60125 + tps: 2953.55372 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOR-default-NoBuffs-ShortSingleTarget" value: { - dps: 3214.61551 - tps: 3298.85025 + dps: 3206.12405 + tps: 3289.99073 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongMultiTarget" value: { - dps: 19116.6762 - tps: 20802.06273 + dps: 19118.88191 + tps: 20804.26844 dtps: 8.48862 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongSingleTarget" value: { - dps: 6674.2038 - tps: 6758.63756 + dps: 6676.98979 + tps: 6761.42355 dtps: 9.92959 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-ShortSingleTarget" value: { - dps: 7378.0797 - tps: 7468.87098 + dps: 7392.00961 + tps: 7482.8009 dtps: 49.64794 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongMultiTarget" value: { - dps: 9342.19849 - tps: 10893.93201 + dps: 9313.91613 + tps: 10864.54357 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongSingleTarget" value: { - dps: 3391.68596 - tps: 3469.06026 + dps: 3397.77221 + tps: 3475.63313 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-ShortSingleTarget" value: { - dps: 3673.13865 - tps: 3754.49899 + dps: 3672.86715 + tps: 3754.20728 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOV-default-FullBuffs-LongMultiTarget" value: { - dps: 19116.6762 - tps: 20802.06273 + dps: 19118.88191 + tps: 20804.26844 dtps: 8.48862 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOV-default-FullBuffs-LongSingleTarget" value: { - dps: 6674.2038 - tps: 6758.63756 + dps: 6676.98979 + tps: 6761.42355 dtps: 9.92959 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOV-default-FullBuffs-ShortSingleTarget" value: { - dps: 7378.0797 - tps: 7468.87098 + dps: 7392.00961 + tps: 7482.8009 dtps: 49.64794 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOV-default-NoBuffs-LongMultiTarget" value: { - dps: 9342.19849 - tps: 10893.93201 + dps: 9313.91613 + tps: 10864.54357 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOV-default-NoBuffs-LongSingleTarget" value: { - dps: 3391.68596 - tps: 3469.06026 + dps: 3397.77221 + tps: 3475.63313 } } dps_results: { key: "TestRetribution-Settings-Draenei-p1-Retribution Paladin SOV-default-NoBuffs-ShortSingleTarget" value: { - dps: 3673.13865 - tps: 3754.49899 + dps: 3672.86715 + tps: 3754.20728 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOC-default-FullBuffs-LongMultiTarget" value: { - dps: 19007.05325 - tps: 20699.64856 - dtps: 10.18635 + dps: 19001.03306 + tps: 20693.62838 + dtps: 10.14629 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOC-default-FullBuffs-LongSingleTarget" value: { - dps: 5494.87026 - tps: 5579.40444 - dtps: 11.91551 + dps: 5483.46432 + tps: 5568.15784 + dtps: 11.82069 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOC-default-FullBuffs-ShortSingleTarget" value: { - dps: 6210.46818 - tps: 6301.68511 - dtps: 59.57753 + dps: 6191.83467 + tps: 6282.57219 + dtps: 59.10347 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOC-default-NoBuffs-LongMultiTarget" value: { - dps: 9411.67633 - tps: 10974.90771 + dps: 9468.88996 + tps: 11026.10884 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOC-default-NoBuffs-LongSingleTarget" value: { - dps: 2802.29988 - tps: 2881.0583 + dps: 2775.25964 + tps: 2853.17917 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOC-default-NoBuffs-ShortSingleTarget" value: { - dps: 3120.24146 - tps: 3204.5678 + dps: 3122.04657 + tps: 3206.51754 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOR-default-FullBuffs-LongMultiTarget" value: { - dps: 16991.85853 - tps: 18683.85693 - dtps: 10.18635 + dps: 16989.27978 + tps: 18681.27817 + dtps: 9.95262 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOR-default-FullBuffs-LongSingleTarget" value: { - dps: 5861.92664 - tps: 5946.50542 - dtps: 11.91551 + dps: 5860.37621 + tps: 5944.95499 + dtps: 11.82069 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOR-default-FullBuffs-ShortSingleTarget" value: { - dps: 6648.52672 - tps: 6739.12247 - dtps: 59.57753 + dps: 6644.38197 + tps: 6734.97772 + dtps: 59.10347 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOR-default-NoBuffs-LongMultiTarget" value: { - dps: 8245.79635 - tps: 9813.64143 + dps: 8286.08682 + tps: 9859.27057 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOR-default-NoBuffs-LongSingleTarget" value: { - dps: 2864.82239 - tps: 2942.63976 + dps: 2881.73446 + tps: 2960.04579 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOR-default-NoBuffs-ShortSingleTarget" value: { - dps: 3209.75742 - tps: 3293.55282 + dps: 3201.62004 + tps: 3285.92623 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongMultiTarget" value: { - dps: 19032.13072 - tps: 20717.20345 + dps: 19034.33903 + tps: 20719.41176 dtps: 8.48862 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongSingleTarget" value: { - dps: 6672.46181 - tps: 6756.8892 + dps: 6675.25118 + tps: 6759.67856 dtps: 9.92959 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-ShortSingleTarget" value: { - dps: 7376.56743 - tps: 7467.36579 + dps: 7390.5142 + tps: 7481.31256 dtps: 49.64794 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongMultiTarget" value: { - dps: 9275.42904 - tps: 10834.63258 + dps: 9346.98762 + tps: 10915.4112 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongSingleTarget" value: { - dps: 3391.62729 - tps: 3469.40805 + dps: 3383.77041 + tps: 3460.92466 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-ShortSingleTarget" value: { - dps: 3669.21489 - tps: 3750.64852 + dps: 3669.0081 + tps: 3750.09203 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOV-default-FullBuffs-LongMultiTarget" value: { - dps: 19032.13072 - tps: 20717.20345 + dps: 19034.33903 + tps: 20719.41176 dtps: 8.48862 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOV-default-FullBuffs-LongSingleTarget" value: { - dps: 6672.46181 - tps: 6756.8892 + dps: 6675.25118 + tps: 6759.67856 dtps: 9.92959 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOV-default-FullBuffs-ShortSingleTarget" value: { - dps: 7376.56743 - tps: 7467.36579 + dps: 7390.5142 + tps: 7481.31256 dtps: 49.64794 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOV-default-NoBuffs-LongMultiTarget" value: { - dps: 9275.42904 - tps: 10834.63258 + dps: 9346.98762 + tps: 10915.4112 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOV-default-NoBuffs-LongSingleTarget" value: { - dps: 3391.62729 - tps: 3469.40805 + dps: 3383.77041 + tps: 3460.92466 } } dps_results: { key: "TestRetribution-Settings-Dwarf-p1-Retribution Paladin SOV-default-NoBuffs-ShortSingleTarget" value: { - dps: 3669.21489 - tps: 3750.64852 + dps: 3669.0081 + tps: 3750.09203 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOC-default-FullBuffs-LongMultiTarget" value: { - dps: 18985.06088 - tps: 20677.49648 - dtps: 10.18635 + dps: 18979.77143 + tps: 20672.20702 + dtps: 10.14629 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOC-default-FullBuffs-LongSingleTarget" value: { - dps: 5491.40167 - tps: 5575.92765 - dtps: 11.91551 + dps: 5480.01308 + tps: 5564.69882 + dtps: 11.82069 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOC-default-FullBuffs-ShortSingleTarget" value: { - dps: 6209.29437 - tps: 6300.50316 - dtps: 59.57753 + dps: 6190.69614 + tps: 6281.42677 + dtps: 59.10347 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOC-default-NoBuffs-LongMultiTarget" value: { - dps: 9412.80036 - tps: 10973.17542 + dps: 9450.37573 + tps: 11016.16247 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOC-default-NoBuffs-LongSingleTarget" value: { - dps: 2792.76182 - tps: 2870.95267 + dps: 2793.89253 + tps: 2872.22581 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOC-default-NoBuffs-ShortSingleTarget" value: { - dps: 3116.88825 - tps: 3201.21454 + dps: 3118.68544 + tps: 3203.1563 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOR-default-FullBuffs-LongMultiTarget" value: { - dps: 16972.62629 - tps: 18664.47041 - dtps: 10.18635 + dps: 16970.05523 + tps: 18661.89934 + dtps: 9.95262 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOR-default-FullBuffs-LongSingleTarget" value: { - dps: 5855.17061 - tps: 5939.7422 - dtps: 11.91551 + dps: 5853.62412 + tps: 5938.19571 + dtps: 11.82069 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOR-default-FullBuffs-ShortSingleTarget" value: { - dps: 6642.34837 - tps: 6732.93719 - dtps: 59.57753 + dps: 6638.22114 + tps: 6728.80997 + dtps: 59.10347 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOR-default-NoBuffs-LongMultiTarget" value: { - dps: 8240.84027 - tps: 9802.46029 + dps: 8244.12895 + tps: 9805.08229 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOR-default-NoBuffs-LongSingleTarget" value: { - dps: 2869.0432 - tps: 2947.12054 + dps: 2872.52606 + tps: 2950.58837 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOR-default-NoBuffs-ShortSingleTarget" value: { - dps: 3203.80154 - tps: 3287.59689 + dps: 3195.6855 + tps: 3279.99159 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongMultiTarget" value: { - dps: 19005.65797 - tps: 20690.6051 + dps: 19007.86304 + tps: 20692.81017 dtps: 8.48862 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-LongSingleTarget" value: { - dps: 6664.20207 - tps: 6748.62327 + dps: 6666.98722 + tps: 6751.40842 dtps: 9.92959 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOV 2 Target Swapping-default-FullBuffs-ShortSingleTarget" value: { - dps: 7370.40693 - tps: 7461.19821 + dps: 7384.33262 + tps: 7475.12391 dtps: 49.64794 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongMultiTarget" value: { - dps: 9283.36282 - tps: 10831.5079 + dps: 9294.76651 + tps: 10849.93442 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-LongSingleTarget" value: { - dps: 3382.3599 - tps: 3459.75617 + dps: 3387.01961 + tps: 3464.6535 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOV 2 Target Swapping-default-NoBuffs-ShortSingleTarget" value: { - dps: 3662.94515 - tps: 3744.37872 + dps: 3662.73419 + tps: 3743.81801 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOV-default-FullBuffs-LongMultiTarget" value: { - dps: 19005.65797 - tps: 20690.6051 + dps: 19007.86304 + tps: 20692.81017 dtps: 8.48862 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOV-default-FullBuffs-LongSingleTarget" value: { - dps: 6664.20207 - tps: 6748.62327 + dps: 6666.98722 + tps: 6751.40842 dtps: 9.92959 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOV-default-FullBuffs-ShortSingleTarget" value: { - dps: 7370.40693 - tps: 7461.19821 + dps: 7384.33262 + tps: 7475.12391 dtps: 49.64794 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOV-default-NoBuffs-LongMultiTarget" value: { - dps: 9283.36282 - tps: 10831.5079 + dps: 9294.76651 + tps: 10849.93442 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOV-default-NoBuffs-LongSingleTarget" value: { - dps: 3382.3599 - tps: 3459.75617 + dps: 3387.01961 + tps: 3464.6535 } } dps_results: { key: "TestRetribution-Settings-Human-p1-Retribution Paladin SOV-default-NoBuffs-ShortSingleTarget" value: { - dps: 3662.94515 - tps: 3744.37872 + dps: 3662.73419 + tps: 3743.81801 } } dps_results: { key: "TestRetribution-SwitchInFrontOfTarget-Default" value: { - dps: 6303.5126 - tps: 6388.9406 + dps: 6317.37562 + tps: 6402.75195 dtps: 9.92959 } } diff --git a/sim/paladin/retribution/rotation.go b/sim/paladin/retribution/rotation.go index f78d1f7ecd..287010865d 100644 --- a/sim/paladin/retribution/rotation.go +++ b/sim/paladin/retribution/rotation.go @@ -31,7 +31,7 @@ func (ret *RetributionPaladin) OnAutoAttack(sim *core.Simulation, _ *core.Spell) } } - if minVengeanceDotDuration < core.DurationFromSeconds(ret.AutoAttacks.MH.SwingSpeed*2) { + if minVengeanceDotDuration < core.DurationFromSeconds(ret.AutoAttacks.MH().SwingSpeed*2) { ret.CurrentTarget = minVengeanceDotDurationTarget } else if ret.SovDotSpell.Dot(ret.CurrentTarget).GetStacks() == 5 && minVengeanceDotStacks < 5 { ret.CurrentTarget = minVengeanceDotStacksTarget diff --git a/sim/paladin/talents.go b/sim/paladin/talents.go index 9108713d36..9a80ab0fe7 100644 --- a/sim/paladin/talents.go +++ b/sim/paladin/talents.go @@ -187,19 +187,12 @@ func (paladin *Paladin) applyReckoning() { Duration: time.Second * 8, MaxStacks: 4, OnInit: func(aura *core.Aura, sim *core.Simulation) { - reckoningSpell = paladin.GetOrRegisterSpell(core.SpellConfig{ - ActionID: actionID, - SpellSchool: core.SpellSchoolPhysical, - ProcMask: core.ProcMaskMeleeMH, - Flags: core.SpellFlagMeleeMetrics, - CritMultiplier: paladin.MeleeCritMultiplier(), - ThreatMultiplier: 1, - DamageMultiplier: 1, - ApplyEffects: paladin.AutoAttacks.MHConfig.ApplyEffects, - }) + config := paladin.AutoAttacks.MHConfig + config.ActionID = actionID + reckoningSpell = paladin.GetOrRegisterSpell(config) }, OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { - if spell == paladin.AutoAttacks.MHAuto { + if spell == paladin.AutoAttacks.MHAuto() { reckoningSpell.Cast(sim, result.Target) } }, diff --git a/sim/rogue/TestAssassination.results b/sim/rogue/TestAssassination.results index e29905f24a..efed973d0e 100644 --- a/sim/rogue/TestAssassination.results +++ b/sim/rogue/TestAssassination.results @@ -46,2097 +46,2097 @@ character_stats_results: { dps_results: { key: "TestAssassination-AllItems-Althor'sAbacus-50359" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-Althor'sAbacus-50366" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-AshtongueTalismanofLethality-32492" value: { - dps: 6555.8596 - tps: 4654.66031 + dps: 6558.21784 + tps: 4656.33467 } } dps_results: { key: "TestAssassination-AllItems-AustereEarthsiegeDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-Bandit'sInsignia-40371" value: { - dps: 6710.37433 - tps: 4764.36578 + dps: 6708.91251 + tps: 4763.32788 } } dps_results: { key: "TestAssassination-AllItems-BaubleofTrueBlood-50354" value: { - dps: 6503.69744 - tps: 4617.62518 - hps: 88.58137 + dps: 6502.35885 + tps: 4616.67478 + hps: 88.74318 } } dps_results: { key: "TestAssassination-AllItems-BaubleofTrueBlood-50726" value: { - dps: 6503.69744 - tps: 4617.62518 - hps: 88.58137 + dps: 6502.35885 + tps: 4616.67478 + hps: 88.74318 } } dps_results: { key: "TestAssassination-AllItems-BeamingEarthsiegeDiamond" value: { - dps: 6689.53459 - tps: 4749.56956 + dps: 6690.40018 + tps: 4750.18412 } } dps_results: { key: "TestAssassination-AllItems-BlackBruise-50035" value: { - dps: 6515.97591 - tps: 4626.3429 + dps: 6515.7935 + tps: 4626.21338 } } dps_results: { key: "TestAssassination-AllItems-BlackBruise-50692" value: { - dps: 6593.32531 - tps: 4681.26097 + dps: 6593.95132 + tps: 4681.70544 } } dps_results: { key: "TestAssassination-AllItems-BlessedRegaliaofUndeadCleansing" value: { - dps: 5013.98006 - tps: 3559.92584 + dps: 5011.83493 + tps: 3558.4028 } } dps_results: { key: "TestAssassination-AllItems-BonescytheBattlegear" value: { - dps: 6163.03458 - tps: 4375.75455 + dps: 6163.15862 + tps: 4375.84262 } } dps_results: { key: "TestAssassination-AllItems-BracingEarthsiegeDiamond" value: { - dps: 6695.17397 - tps: 4658.50205 + dps: 6696.02812 + tps: 4659.09636 } } dps_results: { key: "TestAssassination-AllItems-ChaoticSkyflareDiamond" value: { - dps: 6797.07905 - tps: 4825.92613 + dps: 6797.97485 + tps: 4826.56215 } } dps_results: { key: "TestAssassination-AllItems-CorpseTongueCoin-50349" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-CorpseTongueCoin-50352" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-CorrodedSkeletonKey-50356" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 hps: 64 } } dps_results: { key: "TestAssassination-AllItems-DarkmoonCard:Berserker!-42989" value: { - dps: 6709.99367 - tps: 4764.09551 + dps: 6711.23015 + tps: 4764.97341 } } dps_results: { key: "TestAssassination-AllItems-DarkmoonCard:Death-42990" value: { - dps: 6668.50515 - tps: 4734.63866 + dps: 6668.60802 + tps: 4734.71169 } } dps_results: { key: "TestAssassination-AllItems-DarkmoonCard:Greatness-44255" value: { - dps: 6717.46334 - tps: 4769.39897 + dps: 6718.79386 + tps: 4770.34364 } } dps_results: { key: "TestAssassination-AllItems-Death'sChoice-47464" value: { - dps: 7012.96878 - tps: 4979.20783 + dps: 7014.87917 + tps: 4980.56421 } } dps_results: { key: "TestAssassination-AllItems-DeathKnight'sAnguish-38212" value: { - dps: 6643.78674 - tps: 4717.08858 + dps: 6643.91222 + tps: 4717.17767 } } dps_results: { key: "TestAssassination-AllItems-Deathbringer'sWill-50362" value: { - dps: 6913.69395 - tps: 4908.7227 + dps: 6916.6062 + tps: 4910.7904 } } dps_results: { key: "TestAssassination-AllItems-Deathbringer'sWill-50363" value: { - dps: 7004.68194 - tps: 4973.32418 + dps: 7005.21488 + tps: 4973.70257 } } dps_results: { key: "TestAssassination-AllItems-Defender'sCode-40257" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-DestructiveSkyflareDiamond" value: { - dps: 6700.39182 - tps: 4757.27819 + dps: 6700.82398 + tps: 4757.58503 } } dps_results: { key: "TestAssassination-AllItems-DislodgedForeignObject-50348" value: { - dps: 6697.64991 - tps: 4755.33143 + dps: 6698.89069 + tps: 4756.21239 } } dps_results: { key: "TestAssassination-AllItems-DislodgedForeignObject-50353" value: { - dps: 6666.3364 - tps: 4733.09885 + dps: 6666.60001 + tps: 4733.28601 } } dps_results: { key: "TestAssassination-AllItems-EffulgentSkyflareDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-EmberSkyflareDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-EnigmaticSkyflareDiamond" value: { - dps: 6689.53459 - tps: 4749.56956 + dps: 6690.40018 + tps: 4750.18412 } } dps_results: { key: "TestAssassination-AllItems-EnigmaticStarflareDiamond" value: { - dps: 6676.60309 - tps: 4740.38819 + dps: 6678.29809 + tps: 4741.59165 } } dps_results: { key: "TestAssassination-AllItems-EphemeralSnowflake-50260" value: { - dps: 6615.34256 - tps: 4696.89321 + dps: 6615.54819 + tps: 4697.03922 } } dps_results: { key: "TestAssassination-AllItems-EssenceofGossamer-37220" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-EternalEarthsiegeDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-ExtractofNecromanticPower-40373" value: { - dps: 6702.62698 - tps: 4758.86516 + dps: 6704.10429 + tps: 4759.91404 } } dps_results: { key: "TestAssassination-AllItems-EyeoftheBroodmother-45308" value: { - dps: 6634.70251 - tps: 4710.63878 + dps: 6636.10422 + tps: 4711.634 } } dps_results: { key: "TestAssassination-AllItems-Figurine-SapphireOwl-42413" value: { - dps: 6493.1164 - tps: 4610.11265 + dps: 6491.80164 + tps: 4609.17916 } } dps_results: { key: "TestAssassination-AllItems-ForethoughtTalisman-40258" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-ForgeEmber-37660" value: { - dps: 6579.58995 - tps: 4671.50887 + dps: 6580.01548 + tps: 4671.81099 } } dps_results: { key: "TestAssassination-AllItems-ForlornSkyflareDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-ForlornStarflareDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-FuryoftheFiveFlights-40431" value: { - dps: 6748.16496 - tps: 4791.19712 + dps: 6746.8225 + tps: 4790.24397 } } dps_results: { key: "TestAssassination-AllItems-FuturesightRune-38763" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-Gladiator'sVestments" value: { - dps: 6572.89318 - tps: 4666.75416 + dps: 6583.82547 + tps: 4674.51608 } } dps_results: { key: "TestAssassination-AllItems-GlowingTwilightScale-54573" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-GlowingTwilightScale-54589" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-GnomishLightningGenerator-41121" value: { - dps: 6642.21971 - tps: 4715.976 + dps: 6643.10118 + tps: 4716.60184 } } dps_results: { key: "TestAssassination-AllItems-Heartpierce-49982" value: { - dps: 6804.87464 - tps: 4831.46099 + dps: 6806.60513 + tps: 4832.68964 } } dps_results: { key: "TestAssassination-AllItems-Heartpierce-50641" value: { - dps: 6804.87464 - tps: 4831.46099 + dps: 6806.60513 + tps: 4832.68964 } } dps_results: { key: "TestAssassination-AllItems-IllustrationoftheDragonSoul-40432" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-ImpassiveSkyflareDiamond" value: { - dps: 6689.53459 - tps: 4749.56956 + dps: 6690.40018 + tps: 4750.18412 } } dps_results: { key: "TestAssassination-AllItems-ImpassiveStarflareDiamond" value: { - dps: 6676.60309 - tps: 4740.38819 + dps: 6678.29809 + tps: 4741.59165 } } dps_results: { key: "TestAssassination-AllItems-IncisorFragment-37723" value: { - dps: 6670.47249 - tps: 4736.03547 + dps: 6669.13313 + tps: 4735.08452 } } dps_results: { key: "TestAssassination-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-InvigoratingEarthsiegeDiamond" value: { - dps: 6728.76399 - tps: 4777.42244 + dps: 6730.07261 + tps: 4778.35155 hps: 11.11293 } } dps_results: { key: "TestAssassination-AllItems-Lavanthor'sTalisman-37872" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-MajesticDragonFigurine-40430" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-MeteoriteWhetstone-37390" value: { - dps: 6775.66464 - tps: 4810.72189 + dps: 6775.56892 + tps: 4810.65394 } } dps_results: { key: "TestAssassination-AllItems-NevermeltingIceCrystal-50259" value: { - dps: 6583.88452 - tps: 4674.55801 + dps: 6581.05789 + tps: 4672.5511 } } dps_results: { key: "TestAssassination-AllItems-OfferingofSacrifice-37638" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-PersistentEarthshatterDiamond" value: { - dps: 6721.52448 - tps: 4772.28238 + dps: 6722.38592 + tps: 4772.894 } } dps_results: { key: "TestAssassination-AllItems-PersistentEarthsiegeDiamond" value: { - dps: 6727.7246 - tps: 4776.68447 + dps: 6728.58776 + tps: 4777.29731 } } dps_results: { key: "TestAssassination-AllItems-PetrifiedScarab-21685" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-PetrifiedTwilightScale-54571" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-PetrifiedTwilightScale-54591" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-PowerfulEarthshatterDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-PowerfulEarthsiegeDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-PurifiedShardoftheGods" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-ReignoftheDead-47316" value: { - dps: 6679.37722 - tps: 4742.35783 + dps: 6677.91702 + tps: 4741.32109 } } dps_results: { key: "TestAssassination-AllItems-ReignoftheDead-47477" value: { - dps: 6701.34096 - tps: 4757.95208 + dps: 6699.78555 + tps: 4756.84774 } } dps_results: { key: "TestAssassination-AllItems-RelentlessEarthsiegeDiamond" value: { - dps: 6804.87464 - tps: 4831.46099 + dps: 6806.60513 + tps: 4832.68964 } } dps_results: { key: "TestAssassination-AllItems-RevitalizingSkyflareDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-RuneofRepulsion-40372" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-SealofthePantheon-36993" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-Shadowblade'sBattlegear" value: { - dps: 8099.60908 - tps: 5750.72245 + dps: 8106.16435 + tps: 5755.37669 } } dps_results: { key: "TestAssassination-AllItems-ShinyShardoftheGods" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-Sindragosa'sFlawlessFang-50361" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-Slayer'sArmor" value: { - dps: 4928.82245 - tps: 3499.46394 + dps: 4927.37403 + tps: 3498.43556 } } dps_results: { key: "TestAssassination-AllItems-SliverofPureIce-50339" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-SliverofPureIce-50346" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-SoulPreserver-37111" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-SouloftheDead-40382" value: { - dps: 6659.10134 - tps: 4727.96195 + dps: 6660.49939 + tps: 4728.95457 } } dps_results: { key: "TestAssassination-AllItems-SparkofLife-37657" value: { - dps: 6622.95324 - tps: 4702.2968 + dps: 6619.82858 + tps: 4700.07829 } } dps_results: { key: "TestAssassination-AllItems-SphereofRedDragon'sBlood-37166" value: { - dps: 6664.22675 - tps: 4731.60099 + dps: 6661.49499 + tps: 4729.66144 } } dps_results: { key: "TestAssassination-AllItems-StormshroudArmor" value: { - dps: 5350.86884 - tps: 3799.11688 + dps: 5358.90696 + tps: 3804.82394 } } dps_results: { key: "TestAssassination-AllItems-SwiftSkyflareDiamond" value: { - dps: 6727.7246 - tps: 4776.68447 + dps: 6728.58776 + tps: 4777.29731 } } dps_results: { key: "TestAssassination-AllItems-SwiftStarflareDiamond" value: { - dps: 6721.52448 - tps: 4772.28238 + dps: 6722.38592 + tps: 4772.894 } } dps_results: { key: "TestAssassination-AllItems-SwiftWindfireDiamond" value: { - dps: 6710.67427 - tps: 4764.57873 + dps: 6711.53271 + tps: 4765.18822 } } dps_results: { key: "TestAssassination-AllItems-TalismanofTrollDivinity-37734" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-TearsoftheVanquished-47215" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-TerrorbladeBattlegear" value: { - dps: 6586.82228 - tps: 4676.64382 + dps: 6585.85586 + tps: 4675.95766 } } dps_results: { key: "TestAssassination-AllItems-TheFistsofFury" value: { - dps: 5748.36859 - tps: 4081.3417 + dps: 5747.47568 + tps: 4080.70774 } } dps_results: { key: "TestAssassination-AllItems-TheGeneral'sHeart-45507" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-AllItems-ThunderingSkyflareDiamond" value: { - dps: 6752.96191 - tps: 4794.60296 + dps: 6752.47249 + tps: 4794.25546 } } dps_results: { key: "TestAssassination-AllItems-TinyAbominationinaJar-50351" value: { - dps: 6900.38415 - tps: 4899.27275 + dps: 6887.06801 + tps: 4889.81829 } } dps_results: { key: "TestAssassination-AllItems-TinyAbominationinaJar-50706" value: { - dps: 6947.79165 - tps: 4932.93207 + dps: 6953.55382 + tps: 4937.02321 } } dps_results: { key: "TestAssassination-AllItems-TirelessSkyflareDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-TirelessStarflareDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-TomeofArcanePhenomena-36972" value: { - dps: 6562.16399 - tps: 4659.13643 + dps: 6561.63511 + tps: 4658.76093 } } dps_results: { key: "TestAssassination-AllItems-TrenchantEarthshatterDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-TrenchantEarthsiegeDiamond" value: { - dps: 6695.17397 - tps: 4753.57352 + dps: 6696.02812 + tps: 4754.17996 } } dps_results: { key: "TestAssassination-AllItems-UndeadSlayer'sBlessedArmor" value: { - dps: 5297.35258 - tps: 3761.12033 + dps: 5295.70241 + tps: 3759.94871 } } dps_results: { key: "TestAssassination-AllItems-VanCleef'sBattlegear" value: { - dps: 6371.57482 - tps: 4523.81812 + dps: 6373.32473 + tps: 4525.06056 } } dps_results: { key: "TestAssassination-AllItems-WingedTalisman-37844" value: { - dps: 6503.57243 - tps: 4617.53643 + dps: 6502.25767 + tps: 4616.60295 } } dps_results: { key: "TestAssassination-Average-Default" value: { - dps: 6825.9524 - tps: 4846.42621 + dps: 6826.77905 + tps: 4847.01313 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-mutilate-FullBuffs-LongMultiTarget" value: { - dps: 7559.07138 - tps: 5366.94068 + dps: 7558.5795 + tps: 5366.59144 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-mutilate-FullBuffs-LongSingleTarget" value: { - dps: 7559.07138 - tps: 5366.94068 + dps: 7558.5795 + tps: 5366.59144 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 8815.93704 - tps: 6259.3153 + dps: 8811.65024 + tps: 6256.27167 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-mutilate-NoBuffs-LongMultiTarget" value: { - dps: 3881.66689 - tps: 2755.98349 + dps: 3881.34167 + tps: 2755.75259 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-mutilate-NoBuffs-LongSingleTarget" value: { - dps: 3881.66689 - tps: 2755.98349 + dps: 3881.34167 + tps: 2755.75259 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 4076.77595 - tps: 2894.51093 + dps: 4077.2175 + tps: 2894.82442 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 7165.49406 - tps: 5087.50078 + dps: 7169.13093 + tps: 5090.08296 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 7165.49406 - tps: 5087.50078 + dps: 7169.13093 + tps: 5090.08296 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 8361.26454 - tps: 5936.49782 + dps: 8361.42675 + tps: 5936.61299 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 3756.23937 - tps: 2666.92995 + dps: 3757.72287 + tps: 2667.98324 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 3756.23937 - tps: 2666.92995 + dps: 3757.72287 + tps: 2667.98324 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3864.61298 - tps: 2743.87521 + dps: 3867.28542 + tps: 2745.77265 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-rupture_mutilate-FullBuffs-LongMultiTarget" value: { - dps: 7430.90513 - tps: 5275.94264 + dps: 7430.86182 + tps: 5275.91189 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-rupture_mutilate-FullBuffs-LongSingleTarget" value: { - dps: 7430.90513 - tps: 5275.94264 + dps: 7430.86182 + tps: 5275.91189 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-rupture_mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 8772.34475 - tps: 6228.36477 + dps: 8768.49754 + tps: 6225.63325 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-rupture_mutilate-NoBuffs-LongMultiTarget" value: { - dps: 3790.40939 - tps: 2691.19067 + dps: 3789.24911 + tps: 2690.36687 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-rupture_mutilate-NoBuffs-LongSingleTarget" value: { - dps: 3790.40939 - tps: 2691.19067 + dps: 3789.24911 + tps: 2690.36687 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-rupture_mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 3935.0143 - tps: 2793.86016 + dps: 3935.55873 + tps: 2794.2467 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 6804.87464 - tps: 4831.46099 + dps: 6806.60513 + tps: 4832.68964 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-rupture_mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 6804.87464 - tps: 4831.46099 + dps: 6806.60513 + tps: 4832.68964 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 8158.62868 - tps: 5792.62636 + dps: 8163.57059 + tps: 5796.13512 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-rupture_mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 3527.47075 - tps: 2504.50423 + dps: 3526.89629 + tps: 2504.09636 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-rupture_mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 3527.47075 - tps: 2504.50423 + dps: 3526.89629 + tps: 2504.09636 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-Assassination-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3680.29345 - tps: 2613.00835 + dps: 3679.37655 + tps: 2612.35735 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-mutilate-FullBuffs-LongMultiTarget" value: { - dps: 4947.85548 - tps: 3512.97739 + dps: 4946.79598 + tps: 3512.22514 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-mutilate-FullBuffs-LongSingleTarget" value: { - dps: 4947.85548 - tps: 3512.97739 + dps: 4946.79598 + tps: 3512.22514 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 5795.22147 - tps: 4114.60725 + dps: 5794.21863 + tps: 4113.89523 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-mutilate-NoBuffs-LongMultiTarget" value: { - dps: 2563.52006 - tps: 1820.09924 + dps: 2563.20686 + tps: 1819.87687 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-mutilate-NoBuffs-LongSingleTarget" value: { - dps: 2563.52006 - tps: 1820.09924 + dps: 2563.20686 + tps: 1819.87687 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 2766.33679 - tps: 1964.09912 + dps: 2766.58258 + tps: 1964.27363 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 4669.89467 - tps: 3315.62522 + dps: 4671.42217 + tps: 3316.70974 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 4669.89467 - tps: 3315.62522 + dps: 4671.42217 + tps: 3316.70974 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 5447.12977 - tps: 3867.46214 + dps: 5447.70925 + tps: 3867.87357 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 2508.43402 - tps: 1780.98815 + dps: 2509.27638 + tps: 1781.58623 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 2508.43402 - tps: 1780.98815 + dps: 2509.27638 + tps: 1781.58623 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2655.09097 - tps: 1885.11459 + dps: 2656.43309 + tps: 1886.06749 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-rupture_mutilate-FullBuffs-LongMultiTarget" value: { - dps: 5014.37987 - tps: 3560.20971 + dps: 5014.23705 + tps: 3560.1083 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-rupture_mutilate-FullBuffs-LongSingleTarget" value: { - dps: 5014.37987 - tps: 3560.20971 + dps: 5014.23705 + tps: 3560.1083 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-rupture_mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 5896.39204 - tps: 4186.43835 + dps: 5895.21587 + tps: 4185.60327 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-rupture_mutilate-NoBuffs-LongMultiTarget" value: { - dps: 2573.22728 - tps: 1826.99137 + dps: 2572.63364 + tps: 1826.56988 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-rupture_mutilate-NoBuffs-LongSingleTarget" value: { - dps: 2573.22728 - tps: 1826.99137 + dps: 2572.63364 + tps: 1826.56988 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-rupture_mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 2727.82758 - tps: 1936.75758 + dps: 2728.08532 + tps: 1936.94058 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 4587.38514 - tps: 3257.04345 + dps: 4588.31738 + tps: 3257.70534 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-rupture_mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 4587.38514 - tps: 3257.04345 + dps: 4588.31738 + tps: 3257.70534 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 5487.57143 - tps: 3896.17571 + dps: 5488.77038 + tps: 3897.02697 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-rupture_mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 2426.07966 - tps: 1722.51656 + dps: 2426.06105 + tps: 1722.50334 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-rupture_mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 2426.07966 - tps: 1722.51656 + dps: 2426.06105 + tps: 1722.50334 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Deadly OH Deadly-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2585.42708 - tps: 1835.65322 + dps: 2586.18354 + tps: 1836.19031 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-mutilate-FullBuffs-LongMultiTarget" value: { - dps: 7147.11828 - tps: 5074.45398 + dps: 7144.18771 + tps: 5072.37327 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-mutilate-FullBuffs-LongSingleTarget" value: { - dps: 7147.11828 - tps: 5074.45398 + dps: 7144.18771 + tps: 5072.37327 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 8292.4361 - tps: 5887.62963 + dps: 8286.51753 + tps: 5883.42745 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-mutilate-NoBuffs-LongMultiTarget" value: { - dps: 3682.0906 - tps: 2614.28433 + dps: 3681.2766 + tps: 2613.70639 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-mutilate-NoBuffs-LongSingleTarget" value: { - dps: 3682.0906 - tps: 2614.28433 + dps: 3681.2766 + tps: 2613.70639 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 3828.16856 - tps: 2717.99968 + dps: 3828.13609 + tps: 2717.97662 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 6756.71653 - tps: 4797.26874 + dps: 6757.6016 + tps: 4797.89714 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 6756.71653 - tps: 4797.26874 + dps: 6757.6016 + tps: 4797.89714 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 7838.11231 - tps: 5565.05974 + dps: 7834.50509 + tps: 5562.49862 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 3543.71161 - tps: 2516.03524 + dps: 3544.99809 + tps: 2516.94864 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 3543.71161 - tps: 2516.03524 + dps: 3544.99809 + tps: 2516.94864 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3615.78652 - tps: 2567.20843 + dps: 3618.11683 + tps: 2568.86295 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-rupture_mutilate-FullBuffs-LongMultiTarget" value: { - dps: 7022.62513 - tps: 4986.06384 + dps: 7022.313 + tps: 4985.84223 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-rupture_mutilate-FullBuffs-LongSingleTarget" value: { - dps: 7022.62513 - tps: 4986.06384 + dps: 7022.313 + tps: 4985.84223 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-rupture_mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 8238.95505 - tps: 5849.65809 + dps: 8236.93185 + tps: 5848.22162 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-rupture_mutilate-NoBuffs-LongMultiTarget" value: { - dps: 3594.03524 - tps: 2551.76502 + dps: 3592.44495 + tps: 2550.63591 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-rupture_mutilate-NoBuffs-LongSingleTarget" value: { - dps: 3594.03524 - tps: 2551.76502 + dps: 3592.44495 + tps: 2550.63591 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-rupture_mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 3715.05648 - tps: 2637.6901 + dps: 3715.03267 + tps: 2637.67319 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 6443.38882 - tps: 4574.80606 + dps: 6444.42677 + tps: 4575.54301 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-rupture_mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 6443.38882 - tps: 4574.80606 + dps: 6444.42677 + tps: 4575.54301 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 7699.53362 - tps: 5466.66887 + dps: 7701.31792 + tps: 5467.93573 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-rupture_mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 3348.51318 - tps: 2377.44436 + dps: 3348.40359 + tps: 2377.36655 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-rupture_mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 3348.51318 - tps: 2377.44436 + dps: 3348.40359 + tps: 2377.36655 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Deadly-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3477.24194 - tps: 2468.84178 + dps: 3476.89877 + tps: 2468.59813 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-mutilate-FullBuffs-LongMultiTarget" value: { - dps: 3565.381 - tps: 2531.42051 + dps: 3562.43177 + tps: 2529.32656 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-mutilate-FullBuffs-LongSingleTarget" value: { - dps: 3565.381 - tps: 2531.42051 + dps: 3562.43177 + tps: 2529.32656 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 3609.73062 - tps: 2562.90874 + dps: 3605.90204 + tps: 2560.19045 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-mutilate-NoBuffs-LongMultiTarget" value: { - dps: 1704.26815 - tps: 1210.03039 + dps: 1704.6621 + tps: 1210.31009 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-mutilate-NoBuffs-LongSingleTarget" value: { - dps: 1704.26815 - tps: 1210.03039 + dps: 1704.6621 + tps: 1210.31009 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 1580.6145 - tps: 1122.23629 + dps: 1577.09131 + tps: 1119.73483 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 4015.30782 - tps: 2850.86855 + dps: 4014.18104 + tps: 2850.06854 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 4015.30782 - tps: 2850.86855 + dps: 4014.18104 + tps: 2850.06854 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 4694.23813 - tps: 3332.90907 + dps: 4690.64002 + tps: 3330.35441 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 2081.85232 - tps: 1478.11515 + dps: 2082.03574 + tps: 1478.24537 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 2081.85232 - tps: 1478.11515 + dps: 2082.03574 + tps: 1478.24537 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2123.04348 - tps: 1507.36087 + dps: 2119.45894 + tps: 1504.81585 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-rupture_mutilate-FullBuffs-LongMultiTarget" value: { - dps: 4842.07689 - tps: 3437.87459 + dps: 4842.91247 + tps: 3438.46785 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-rupture_mutilate-FullBuffs-LongSingleTarget" value: { - dps: 4842.07689 - tps: 3437.87459 + dps: 4842.91247 + tps: 3438.46785 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-rupture_mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 5594.63051 - tps: 3972.18766 + dps: 5592.22269 + tps: 3970.47811 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-rupture_mutilate-NoBuffs-LongMultiTarget" value: { - dps: 2414.06333 - tps: 1713.98496 + dps: 2414.39186 + tps: 1714.21822 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-rupture_mutilate-NoBuffs-LongSingleTarget" value: { - dps: 2414.06333 - tps: 1713.98496 + dps: 2414.39186 + tps: 1714.21822 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-rupture_mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 2461.12575 - tps: 1747.39928 + dps: 2463.49574 + tps: 1749.08198 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 5050.81125 - tps: 3586.07599 + dps: 5050.98053 + tps: 3586.19618 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-rupture_mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 5050.81125 - tps: 3586.07599 + dps: 5050.98053 + tps: 3586.19618 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 5800.30414 - tps: 4118.21594 + dps: 5797.66095 + tps: 4116.33928 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-rupture_mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 2535.62591 - tps: 1800.2944 + dps: 2535.13794 + tps: 1799.94794 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-rupture_mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 2535.62591 - tps: 1800.2944 + dps: 2535.13794 + tps: 1799.94794 } } dps_results: { key: "TestAssassination-Settings-Human-p1_assassination-MH Instant OH Instant-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2671.03824 - tps: 1896.43715 + dps: 2670.39361 + tps: 1895.97946 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-mutilate-FullBuffs-LongMultiTarget" value: { - dps: 7611.49935 - tps: 5404.16454 + dps: 7611.00376 + tps: 5403.81267 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-mutilate-FullBuffs-LongSingleTarget" value: { - dps: 7611.49935 - tps: 5404.16454 + dps: 7611.00376 + tps: 5403.81267 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 8904.13701 - tps: 6321.93728 + dps: 8899.76841 + tps: 6318.83557 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-mutilate-NoBuffs-LongMultiTarget" value: { - dps: 3904.53796 - tps: 2772.22195 + dps: 3904.19668 + tps: 2771.97965 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-mutilate-NoBuffs-LongSingleTarget" value: { - dps: 3904.53796 - tps: 2772.22195 + dps: 3904.19668 + tps: 2771.97965 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 4118.67793 - tps: 2924.26133 + dps: 4119.03922 + tps: 2924.51785 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 7196.77543 - tps: 5109.71056 + dps: 7200.40639 + tps: 5112.28854 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 7196.77543 - tps: 5109.71056 + dps: 7200.40639 + tps: 5112.28854 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 8437.08055 - tps: 5990.32719 + dps: 8437.14024 + tps: 5990.36957 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 3782.25333 - tps: 2685.39986 + dps: 3783.69685 + tps: 2686.42476 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 3782.25333 - tps: 2685.39986 + dps: 3783.69685 + tps: 2686.42476 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3906.68431 - tps: 2773.74586 + dps: 3909.2756 + tps: 2775.58567 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-rupture_mutilate-FullBuffs-LongMultiTarget" value: { - dps: 7490.59357 - tps: 5318.32143 + dps: 7490.83125 + tps: 5318.49018 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-rupture_mutilate-FullBuffs-LongSingleTarget" value: { - dps: 7490.59357 - tps: 5318.32143 + dps: 7490.83125 + tps: 5318.49018 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-rupture_mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 8850.86555 - tps: 6284.11454 + dps: 8847.68823 + tps: 6281.85864 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-rupture_mutilate-NoBuffs-LongMultiTarget" value: { - dps: 3812.49911 - tps: 2706.87437 + dps: 3811.31481 + tps: 2706.03351 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-rupture_mutilate-NoBuffs-LongSingleTarget" value: { - dps: 3812.49911 - tps: 2706.87437 + dps: 3811.31481 + tps: 2706.03351 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-rupture_mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 3978.19709 - tps: 2824.51994 + dps: 3978.66127 + tps: 2824.8495 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 6846.90504 - tps: 4861.30258 + dps: 6848.43572 + tps: 4862.38936 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-rupture_mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 6846.90504 - tps: 4861.30258 + dps: 6848.43572 + tps: 4862.38936 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 8246.38661 - tps: 5854.93449 + dps: 8251.32984 + tps: 5858.44419 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-rupture_mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 3546.856 - tps: 2518.26776 + dps: 3546.27051 + tps: 2517.85206 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-rupture_mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 3546.856 - tps: 2518.26776 + dps: 3546.27051 + tps: 2517.85206 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-Assassination-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3725.13565 - tps: 2644.84631 + dps: 3724.17015 + tps: 2644.16081 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-mutilate-FullBuffs-LongMultiTarget" value: { - dps: 4983.17405 - tps: 3538.05357 + dps: 4982.10401 + tps: 3537.29385 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-mutilate-FullBuffs-LongSingleTarget" value: { - dps: 4983.17405 - tps: 3538.05357 + dps: 4982.10401 + tps: 3537.29385 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 5857.4047 - tps: 4158.75734 + dps: 5856.3492 + tps: 4158.00793 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-mutilate-NoBuffs-LongMultiTarget" value: { - dps: 2581.88668 - tps: 1833.13954 + dps: 2581.56414 + tps: 1832.91054 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-mutilate-NoBuffs-LongSingleTarget" value: { - dps: 2581.88668 - tps: 1833.13954 + dps: 2581.56414 + tps: 1832.91054 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 2803.89704 - tps: 1990.7669 + dps: 2804.09614 + tps: 1990.90826 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 4689.18059 - tps: 3329.31822 + dps: 4690.69756 + tps: 3330.39527 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 4689.18059 - tps: 3329.31822 + dps: 4690.69756 + tps: 3330.39527 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 5501.51015 - tps: 3906.07221 + dps: 5502.03697 + tps: 3906.44625 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 2528.58729 - tps: 1795.29697 + dps: 2529.42103 + tps: 1795.88893 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 2528.58729 - tps: 1795.29697 + dps: 2529.42103 + tps: 1795.88893 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2685.90829 - tps: 1906.99488 + dps: 2687.20733 + tps: 1907.91721 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-rupture_mutilate-FullBuffs-LongMultiTarget" value: { - dps: 5055.89019 - tps: 3589.68204 + dps: 5055.95045 + tps: 3589.72482 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-rupture_mutilate-FullBuffs-LongSingleTarget" value: { - dps: 5055.89019 - tps: 3589.68204 + dps: 5055.95045 + tps: 3589.72482 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-rupture_mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 5954.2573 - tps: 4227.52269 + dps: 5953.52252 + tps: 4227.00099 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-rupture_mutilate-NoBuffs-LongMultiTarget" value: { - dps: 2588.3363 - tps: 1837.71877 + dps: 2587.73332 + tps: 1837.29065 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-rupture_mutilate-NoBuffs-LongSingleTarget" value: { - dps: 2588.3363 - tps: 1837.71877 + dps: 2587.73332 + tps: 1837.29065 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-rupture_mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 2762.11097 - tps: 1961.09879 + dps: 2762.32201 + tps: 1961.24863 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 4615.69045 - tps: 3277.14022 + dps: 4616.59555 + tps: 3277.78284 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-rupture_mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 4615.69045 - tps: 3277.14022 + dps: 4616.59555 + tps: 3277.78284 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 5549.43064 - tps: 3940.09575 + dps: 5550.57693 + tps: 3940.90962 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-rupture_mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 2439.16415 - tps: 1731.80655 + dps: 2439.13693 + tps: 1731.78722 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-rupture_mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 2439.16415 - tps: 1731.80655 + dps: 2439.13693 + tps: 1731.78722 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Deadly OH Deadly-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2618.33763 - tps: 1859.01972 + dps: 2619.05101 + tps: 1859.52622 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-mutilate-FullBuffs-LongMultiTarget" value: { - dps: 7194.87634 - tps: 5108.3622 + dps: 7191.91534 + tps: 5106.25989 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-mutilate-FullBuffs-LongSingleTarget" value: { - dps: 7194.87634 - tps: 5108.3622 + dps: 7191.91534 + tps: 5106.25989 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 8378.65994 - tps: 5948.84856 + dps: 8372.61051 + tps: 5944.55346 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-mutilate-NoBuffs-LongMultiTarget" value: { - dps: 3707.23165 - tps: 2632.13447 + dps: 3706.39714 + tps: 2631.54197 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-mutilate-NoBuffs-LongSingleTarget" value: { - dps: 3707.23165 - tps: 2632.13447 + dps: 3706.39714 + tps: 2631.54197 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 3872.29644 - tps: 2749.33048 + dps: 3872.17217 + tps: 2749.24224 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 6785.43029 - tps: 4817.6555 + dps: 6786.26765 + tps: 4818.25003 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 6785.43029 - tps: 4817.6555 + dps: 6786.26765 + tps: 4818.25003 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 7908.82751 - tps: 5615.26753 + dps: 7904.96135 + tps: 5612.52256 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 3571.25268 - tps: 2535.58941 + dps: 3572.50465 + tps: 2536.4783 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 3571.25268 - tps: 2535.58941 + dps: 3572.50465 + tps: 2536.4783 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3655.27309 - tps: 2595.24389 + dps: 3657.48257 + tps: 2596.81263 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-rupture_mutilate-FullBuffs-LongMultiTarget" value: { - dps: 7080.99729 - tps: 5027.50807 + dps: 7080.82485 + tps: 5027.38564 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-rupture_mutilate-FullBuffs-LongSingleTarget" value: { - dps: 7080.99729 - tps: 5027.50807 + dps: 7080.82485 + tps: 5027.38564 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-rupture_mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 8318.79322 - tps: 5906.34319 + dps: 8317.00993 + tps: 5905.07705 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-rupture_mutilate-NoBuffs-LongMultiTarget" value: { - dps: 3615.42017 - tps: 2566.94832 + dps: 3613.82079 + tps: 2565.81276 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-rupture_mutilate-NoBuffs-LongSingleTarget" value: { - dps: 3615.42017 - tps: 2566.94832 + dps: 3613.82079 + tps: 2565.81276 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-rupture_mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 3757.43464 - tps: 2667.7786 + dps: 3757.31577 + tps: 2667.6942 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 6485.97383 - tps: 4605.04142 + dps: 6487.07733 + tps: 4605.8249 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-rupture_mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 6485.97383 - tps: 4605.04142 + dps: 6487.07733 + tps: 4605.8249 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 7782.42447 - tps: 5525.52137 + dps: 7784.05227 + tps: 5526.67711 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-rupture_mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 3364.65418 - tps: 2388.90447 + dps: 3364.50167 + tps: 2388.79619 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-rupture_mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 3364.65418 - tps: 2388.90447 + dps: 3364.50167 + tps: 2388.79619 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Deadly-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3514.16995 - tps: 2495.06066 + dps: 3513.70596 + tps: 2494.73123 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-mutilate-FullBuffs-LongMultiTarget" value: { - dps: 3590.75619 - tps: 2549.4369 + dps: 3587.72635 + tps: 2547.28571 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-mutilate-FullBuffs-LongSingleTarget" value: { - dps: 3590.75619 - tps: 2549.4369 + dps: 3587.72635 + tps: 2547.28571 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 3662.91779 - tps: 2600.67163 + dps: 3658.89749 + tps: 2597.81722 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-mutilate-NoBuffs-LongMultiTarget" value: { - dps: 1718.25549 - tps: 1219.96139 + dps: 1718.6128 + tps: 1220.21509 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-mutilate-NoBuffs-LongSingleTarget" value: { - dps: 1718.25549 - tps: 1219.96139 + dps: 1718.6128 + tps: 1220.21509 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 1606.25471 - tps: 1140.44085 + dps: 1602.59359 + tps: 1137.84145 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 4041.72885 - tps: 2869.62748 + dps: 4040.5501 + tps: 2868.79057 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 4041.72885 - tps: 2869.62748 + dps: 4040.5501 + tps: 2868.79057 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 4745.75082 - tps: 3369.48308 + dps: 4741.99709 + tps: 3366.81793 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 2097.21968 - tps: 1489.02598 + dps: 2097.37542 + tps: 1489.13655 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 2097.21968 - tps: 1489.02598 + dps: 2097.37542 + tps: 1489.13655 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2151.00063 - tps: 1527.21044 + dps: 2147.24512 + tps: 1524.54404 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-rupture_mutilate-FullBuffs-LongMultiTarget" value: { - dps: 4872.03949 - tps: 3459.14804 + dps: 4872.83467 + tps: 3459.71262 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-rupture_mutilate-FullBuffs-LongSingleTarget" value: { - dps: 4872.03949 - tps: 3459.14804 + dps: 4872.83467 + tps: 3459.71262 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-rupture_mutilate-FullBuffs-ShortSingleTarget" value: { - dps: 5655.22536 - tps: 4015.21 + dps: 5652.7425 + tps: 4013.44717 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-rupture_mutilate-NoBuffs-LongMultiTarget" value: { - dps: 2430.68305 - tps: 1725.78496 + dps: 2430.98831 + tps: 1726.0017 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-rupture_mutilate-NoBuffs-LongSingleTarget" value: { - dps: 2430.68305 - tps: 1725.78496 + dps: 2430.98831 + tps: 1726.0017 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-rupture_mutilate-NoBuffs-ShortSingleTarget" value: { - dps: 2492.34944 - tps: 1769.5681 + dps: 2494.5815 + tps: 1771.15286 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-rupture_mutilate_expose-FullBuffs-LongMultiTarget" value: { - dps: 5085.05511 - tps: 3610.38912 + dps: 5085.17907 + tps: 3610.47714 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-rupture_mutilate_expose-FullBuffs-LongSingleTarget" value: { - dps: 5085.05511 - tps: 3610.38912 + dps: 5085.17907 + tps: 3610.47714 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-rupture_mutilate_expose-FullBuffs-ShortSingleTarget" value: { - dps: 5860.51025 - tps: 4160.96228 + dps: 5857.78646 + tps: 4159.02838 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-rupture_mutilate_expose-NoBuffs-LongMultiTarget" value: { - dps: 2557.7696 - tps: 1816.01642 + dps: 2557.26199 + tps: 1815.65601 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-rupture_mutilate_expose-NoBuffs-LongSingleTarget" value: { - dps: 2557.7696 - tps: 1816.01642 + dps: 2557.26199 + tps: 1815.65601 } } dps_results: { key: "TestAssassination-Settings-Orc-p1_assassination-MH Instant OH Instant-rupture_mutilate_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2702.45891 - tps: 1918.74583 + dps: 2701.62673 + tps: 1918.15498 } } dps_results: { key: "TestAssassination-SwitchInFrontOfTarget-Default" value: { - dps: 6382.78658 - tps: 4531.77847 + dps: 6384.49191 + tps: 4532.98926 } } diff --git a/sim/rogue/TestCombat.results b/sim/rogue/TestCombat.results index 51c0d19251..7da136f8b3 100644 --- a/sim/rogue/TestCombat.results +++ b/sim/rogue/TestCombat.results @@ -46,2160 +46,2160 @@ character_stats_results: { dps_results: { key: "TestCombat-AllItems-Althor'sAbacus-50359" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-Althor'sAbacus-50366" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-AshtongueTalismanofLethality-32492" value: { - dps: 6266.22913 - tps: 4449.02269 + dps: 6264.8177 + tps: 4448.02056 } } dps_results: { key: "TestCombat-AllItems-AustereEarthsiegeDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-Bandit'sInsignia-40371" value: { - dps: 6439.62349 - tps: 4572.13268 + dps: 6438.16294 + tps: 4571.09569 } } dps_results: { key: "TestCombat-AllItems-BaubleofTrueBlood-50354" value: { - dps: 6246.64449 - tps: 4435.11759 - hps: 89.08506 + dps: 6244.9937 + tps: 4433.94552 + hps: 88.93771 } } dps_results: { key: "TestCombat-AllItems-BaubleofTrueBlood-50726" value: { - dps: 6246.64449 - tps: 4435.11759 - hps: 89.08506 + dps: 6244.9937 + tps: 4433.94552 + hps: 88.93771 } } dps_results: { key: "TestCombat-AllItems-BeamingEarthsiegeDiamond" value: { - dps: 6393.80786 - tps: 4539.60358 + dps: 6392.3617 + tps: 4538.57681 } } dps_results: { key: "TestCombat-AllItems-BlackBruise-50035" value: { - dps: 6641.57844 - tps: 4715.52069 + dps: 6641.82946 + tps: 4715.69892 } } dps_results: { key: "TestCombat-AllItems-BlackBruise-50692" value: { - dps: 6755.1068 - tps: 4796.12583 + dps: 6755.49373 + tps: 4796.40055 } } dps_results: { key: "TestCombat-AllItems-BlessedRegaliaofUndeadCleansing" value: { - dps: 4823.49853 - tps: 3424.68395 + dps: 4820.89766 + tps: 3422.83734 } } dps_results: { key: "TestCombat-AllItems-BonescytheBattlegear" value: { - dps: 5841.63537 - tps: 4147.56111 + dps: 5839.84198 + tps: 4146.2878 } } dps_results: { key: "TestCombat-AllItems-BracingEarthsiegeDiamond" value: { - dps: 6373.78715 - tps: 4434.8811 + dps: 6372.20031 + tps: 4433.77698 } } dps_results: { key: "TestCombat-AllItems-Bryntroll,theBoneArbiter-50415" value: { - dps: 6519.94382 - tps: 4629.16011 + dps: 6518.4425 + tps: 4628.09417 } } dps_results: { key: "TestCombat-AllItems-Bryntroll,theBoneArbiter-50709" value: { - dps: 6519.94382 - tps: 4629.16011 + dps: 6518.4425 + tps: 4628.09417 } } dps_results: { key: "TestCombat-AllItems-ChaoticSkyflareDiamond" value: { - dps: 6514.26682 - tps: 4625.12944 + dps: 6512.81223 + tps: 4624.09668 } } dps_results: { key: "TestCombat-AllItems-CorpseTongueCoin-50349" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-CorpseTongueCoin-50352" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-CorrodedSkeletonKey-50356" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 hps: 64 } } dps_results: { key: "TestCombat-AllItems-DarkmoonCard:Berserker!-42989" value: { - dps: 6367.41521 - tps: 4520.8648 + dps: 6366.16949 + tps: 4519.98034 } } dps_results: { key: "TestCombat-AllItems-DarkmoonCard:Death-42990" value: { - dps: 6399.34934 - tps: 4543.53803 + dps: 6398.49693 + tps: 4542.93282 } } dps_results: { key: "TestCombat-AllItems-DarkmoonCard:Greatness-44255" value: { - dps: 6395.22823 - tps: 4540.61204 + dps: 6393.3212 + tps: 4539.25805 } } dps_results: { key: "TestCombat-AllItems-Death'sChoice-47464" value: { - dps: 6720.36271 - tps: 4771.45752 + dps: 6718.34597 + tps: 4770.02564 } } dps_results: { key: "TestCombat-AllItems-DeathKnight'sAnguish-38212" value: { - dps: 6348.06969 - tps: 4507.12948 + dps: 6346.15715 + tps: 4505.77158 } } dps_results: { key: "TestCombat-AllItems-Deathbringer'sWill-50362" value: { - dps: 6682.23574 - tps: 4744.38738 + dps: 6682.56425 + tps: 4744.62062 } } dps_results: { key: "TestCombat-AllItems-Deathbringer'sWill-50363" value: { - dps: 6751.91854 - tps: 4793.86216 + dps: 6751.23587 + tps: 4793.37747 } } dps_results: { key: "TestCombat-AllItems-Defender'sCode-40257" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-DestructiveSkyflareDiamond" value: { - dps: 6398.0584 - tps: 4542.62147 + dps: 6396.58868 + tps: 4541.57796 } } dps_results: { key: "TestCombat-AllItems-DislodgedForeignObject-50348" value: { - dps: 6424.09265 - tps: 4561.10578 + dps: 6429.84165 + tps: 4565.18757 } } dps_results: { key: "TestCombat-AllItems-DislodgedForeignObject-50353" value: { - dps: 6434.1675 - tps: 4568.25892 + dps: 6433.02212 + tps: 4567.44571 } } dps_results: { key: "TestCombat-AllItems-EffulgentSkyflareDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-EmberSkyflareDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-EnigmaticSkyflareDiamond" value: { - dps: 6393.80786 - tps: 4539.60358 + dps: 6392.3617 + tps: 4538.57681 } } dps_results: { key: "TestCombat-AllItems-EnigmaticStarflareDiamond" value: { - dps: 6389.84583 - tps: 4536.79054 + dps: 6388.39967 + tps: 4535.76377 } } dps_results: { key: "TestCombat-AllItems-EphemeralSnowflake-50260" value: { - dps: 6348.26925 - tps: 4507.27117 + dps: 6348.55855 + tps: 4507.47657 } } dps_results: { key: "TestCombat-AllItems-EssenceofGossamer-37220" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-EternalEarthsiegeDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-ExtractofNecromanticPower-40373" value: { - dps: 6393.79726 - tps: 4539.59605 + dps: 6392.49817 + tps: 4538.6737 } } dps_results: { key: "TestCombat-AllItems-EyeoftheBroodmother-45308" value: { - dps: 6351.72926 - tps: 4509.72777 + dps: 6350.10585 + tps: 4508.57515 } } dps_results: { key: "TestCombat-AllItems-Figurine-SapphireOwl-42413" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-ForethoughtTalisman-40258" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-ForgeEmber-37660" value: { - dps: 6330.54546 - tps: 4494.68728 + dps: 6329.1422 + tps: 4493.69096 } } dps_results: { key: "TestCombat-AllItems-ForlornSkyflareDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-ForlornStarflareDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-FuryoftheFiveFlights-40431" value: { - dps: 6480.44987 - tps: 4601.11941 + dps: 6478.64514 + tps: 4599.83805 } } dps_results: { key: "TestCombat-AllItems-FuturesightRune-38763" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-Gladiator'sVestments" value: { - dps: 6140.64163 - tps: 4359.85555 + dps: 6135.13069 + tps: 4355.94279 } } dps_results: { key: "TestCombat-AllItems-GlowingTwilightScale-54573" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-GlowingTwilightScale-54589" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-GnomishLightningGenerator-41121" value: { - dps: 6377.51693 - tps: 4528.03702 + dps: 6376.57346 + tps: 4527.36716 } } dps_results: { key: "TestCombat-AllItems-Heartpierce-49982" value: { - dps: 6519.94382 - tps: 4629.16011 + dps: 6518.4425 + tps: 4628.09417 } } dps_results: { key: "TestCombat-AllItems-Heartpierce-50641" value: { - dps: 6519.94382 - tps: 4629.16011 + dps: 6518.4425 + tps: 4628.09417 } } dps_results: { key: "TestCombat-AllItems-IllustrationoftheDragonSoul-40432" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-ImpassiveSkyflareDiamond" value: { - dps: 6393.80786 - tps: 4539.60358 + dps: 6392.3617 + tps: 4538.57681 } } dps_results: { key: "TestCombat-AllItems-ImpassiveStarflareDiamond" value: { - dps: 6389.84583 - tps: 4536.79054 + dps: 6388.39967 + tps: 4535.76377 } } dps_results: { key: "TestCombat-AllItems-IncisorFragment-37723" value: { - dps: 6429.95656 - tps: 4565.26916 + dps: 6428.21152 + tps: 4564.03018 } } dps_results: { key: "TestCombat-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-InvigoratingEarthsiegeDiamond" value: { - dps: 6404.15163 - tps: 4546.94766 + dps: 6402.50323 + tps: 4545.7773 hps: 11.25035 } } dps_results: { key: "TestCombat-AllItems-LastWord-50179" value: { - dps: 6519.94382 - tps: 4629.16011 + dps: 6518.4425 + tps: 4628.09417 } } dps_results: { key: "TestCombat-AllItems-LastWord-50708" value: { - dps: 6519.94382 - tps: 4629.16011 + dps: 6518.4425 + tps: 4628.09417 } } dps_results: { key: "TestCombat-AllItems-Lavanthor'sTalisman-37872" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-MajesticDragonFigurine-40430" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-MeteoriteWhetstone-37390" value: { - dps: 6421.01589 - tps: 4558.92128 + dps: 6416.96448 + tps: 4556.04478 } } dps_results: { key: "TestCombat-AllItems-NevermeltingIceCrystal-50259" value: { - dps: 6314.855 - tps: 4483.54705 + dps: 6311.51686 + tps: 4481.17697 } } dps_results: { key: "TestCombat-AllItems-Nibelung-49992" value: { - dps: 6519.94382 - tps: 4629.16011 + dps: 6518.4425 + tps: 4628.09417 } } dps_results: { key: "TestCombat-AllItems-Nibelung-50648" value: { - dps: 6519.94382 - tps: 4629.16011 + dps: 6518.4425 + tps: 4628.09417 } } dps_results: { key: "TestCombat-AllItems-OfferingofSacrifice-37638" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-PersistentEarthshatterDiamond" value: { - dps: 6398.87419 - tps: 4543.20067 + dps: 6397.27541 + tps: 4542.06554 } } dps_results: { key: "TestCombat-AllItems-PersistentEarthsiegeDiamond" value: { - dps: 6404.77702 - tps: 4547.39168 + dps: 6403.17543 + tps: 4546.25456 } } dps_results: { key: "TestCombat-AllItems-PetrifiedScarab-21685" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-PetrifiedTwilightScale-54571" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-PetrifiedTwilightScale-54591" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-PowerfulEarthshatterDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-PowerfulEarthsiegeDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-PurifiedShardoftheGods" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-ReignoftheDead-47316" value: { - dps: 6366.03224 - tps: 4519.88289 + dps: 6364.42355 + tps: 4518.74072 } } dps_results: { key: "TestCombat-AllItems-ReignoftheDead-47477" value: { - dps: 6381.24335 - tps: 4530.68278 + dps: 6379.58578 + tps: 4529.50591 } } dps_results: { key: "TestCombat-AllItems-RelentlessEarthsiegeDiamond" value: { - dps: 6519.94382 - tps: 4629.16011 + dps: 6518.4425 + tps: 4628.09417 } } dps_results: { key: "TestCombat-AllItems-RevitalizingSkyflareDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-RuneofRepulsion-40372" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-SealofthePantheon-36993" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-Shadowblade'sBattlegear" value: { - dps: 7240.9915 - tps: 5141.10396 + dps: 7240.2157 + tps: 5140.55314 } } dps_results: { key: "TestCombat-AllItems-Shadowmourne-49623" value: { - dps: 6519.94382 - tps: 4629.16011 + dps: 6518.4425 + tps: 4628.09417 } } dps_results: { key: "TestCombat-AllItems-ShinyShardoftheGods" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-Sindragosa'sFlawlessFang-50361" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-Slayer'sArmor" value: { - dps: 4808.48556 - tps: 3414.02475 + dps: 4808.9943 + tps: 3414.38595 } } dps_results: { key: "TestCombat-AllItems-SliverofPureIce-50339" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-SliverofPureIce-50346" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-SoulPreserver-37111" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-SouloftheDead-40382" value: { - dps: 6354.63416 - tps: 4511.79025 + dps: 6353.01678 + tps: 4510.64191 } } dps_results: { key: "TestCombat-AllItems-SparkofLife-37657" value: { - dps: 6326.98432 - tps: 4492.15887 + dps: 6327.35994 + tps: 4492.42556 } } dps_results: { key: "TestCombat-AllItems-SphereofRedDragon'sBlood-37166" value: { - dps: 6413.04103 - tps: 4553.25913 + dps: 6416.30545 + tps: 4555.57687 } } dps_results: { key: "TestCombat-AllItems-StormshroudArmor" value: { - dps: 4967.13538 - tps: 3526.66612 + dps: 4971.45357 + tps: 3529.73203 } } dps_results: { key: "TestCombat-AllItems-SwiftSkyflareDiamond" value: { - dps: 6404.77702 - tps: 4547.39168 + dps: 6403.17543 + tps: 4546.25456 } } dps_results: { key: "TestCombat-AllItems-SwiftStarflareDiamond" value: { - dps: 6398.87419 - tps: 4543.20067 + dps: 6397.27541 + tps: 4542.06554 } } dps_results: { key: "TestCombat-AllItems-SwiftWindfireDiamond" value: { - dps: 6388.54423 - tps: 4535.8664 + dps: 6386.95037 + tps: 4534.73476 } } dps_results: { key: "TestCombat-AllItems-TalismanofTrollDivinity-37734" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-TearsoftheVanquished-47215" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-TerrorbladeBattlegear" value: { - dps: 6216.71916 - tps: 4413.8706 + dps: 6213.39609 + tps: 4411.51122 } } dps_results: { key: "TestCombat-AllItems-TheFistsofFury" value: { - dps: 5565.72522 - tps: 3951.66491 + dps: 5566.12859 + tps: 3951.9513 } } dps_results: { key: "TestCombat-AllItems-TheGeneral'sHeart-45507" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-AllItems-TheTwinBladesofAzzinoth" value: { - dps: 5717.91574 - tps: 4059.72018 + dps: 5717.42798 + tps: 4059.37386 } } dps_results: { key: "TestCombat-AllItems-ThunderingSkyflareDiamond" value: { - dps: 6447.77895 - tps: 4577.92305 + dps: 6447.04531 + tps: 4577.40217 } } dps_results: { key: "TestCombat-AllItems-TinyAbominationinaJar-50351" value: { - dps: 6553.50902 - tps: 4652.99141 + dps: 6552.31616 + tps: 4652.14447 } } dps_results: { key: "TestCombat-AllItems-TinyAbominationinaJar-50706" value: { - dps: 6578.64838 - tps: 4670.84035 + dps: 6577.50039 + tps: 4670.02528 } } dps_results: { key: "TestCombat-AllItems-TirelessSkyflareDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-TirelessStarflareDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-TomeofArcanePhenomena-36972" value: { - dps: 6299.57418 - tps: 4472.69767 + dps: 6302.56072 + tps: 4474.81811 } } dps_results: { key: "TestCombat-AllItems-TrenchantEarthshatterDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-TrenchantEarthsiegeDiamond" value: { - dps: 6373.78715 - tps: 4525.38887 + dps: 6372.20031 + tps: 4524.26222 } } dps_results: { key: "TestCombat-AllItems-UndeadSlayer'sBlessedArmor" value: { - dps: 5130.87465 - tps: 3642.921 + dps: 5127.09997 + tps: 3640.24098 } } dps_results: { key: "TestCombat-AllItems-Val'anyr,HammerofAncientKings-46017" value: { - dps: 6054.79234 - tps: 4298.90256 + dps: 6055.83848 + tps: 4299.64532 } } dps_results: { key: "TestCombat-AllItems-VanCleef'sBattlegear" value: { - dps: 6068.885 - tps: 4308.90835 + dps: 6069.24861 + tps: 4309.16651 } } dps_results: { key: "TestCombat-AllItems-WingedTalisman-37844" value: { - dps: 6246.04329 - tps: 4434.69074 + dps: 6244.37804 + tps: 4433.50841 } } dps_results: { key: "TestCombat-Average-Default" value: { - dps: 6517.39889 - tps: 4627.35321 + dps: 6518.52126 + tps: 4628.1501 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_cleave_snd-FullBuffs-LongMultiTarget" value: { - dps: 20232.92766 - tps: 14365.37864 + dps: 20234.76193 + tps: 14366.68097 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_cleave_snd-FullBuffs-LongSingleTarget" value: { - dps: 4352.08495 - tps: 3089.98031 + dps: 4350.67869 + tps: 3088.98187 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_cleave_snd-FullBuffs-ShortSingleTarget" value: { - dps: 5301.80823 - tps: 3764.28384 + dps: 5303.32537 + tps: 3765.36101 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_cleave_snd-NoBuffs-LongMultiTarget" value: { - dps: 11963.20071 - tps: 8493.8725 + dps: 11972.19488 + tps: 8500.25836 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_cleave_snd-NoBuffs-LongSingleTarget" value: { - dps: 2140.60753 - tps: 1519.83135 + dps: 2142.24422 + tps: 1520.99339 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_cleave_snd-NoBuffs-ShortSingleTarget" value: { - dps: 2262.4695 - tps: 1606.35334 + dps: 2267.96351 + tps: 1610.25409 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { - dps: 12494.10567 - tps: 8870.81503 + dps: 12490.75844 + tps: 8868.4385 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { - dps: 4185.65266 - tps: 2971.81339 + dps: 4183.02677 + tps: 2969.949 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { - dps: 5093.04861 - tps: 3616.06451 + dps: 5095.31414 + tps: 3617.67304 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { - dps: 6619.43455 - tps: 4699.79853 + dps: 6618.63876 + tps: 4699.23352 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { - dps: 2201.63042 - tps: 1563.1576 + dps: 2202.0621 + tps: 1563.46409 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2353.11771 - tps: 1670.71358 + dps: 2353.96596 + tps: 1671.31583 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_expose-FullBuffs-LongMultiTarget" value: { - dps: 6036.43959 - tps: 4285.87211 + dps: 6037.86502 + tps: 4286.88416 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_expose-FullBuffs-LongSingleTarget" value: { - dps: 5200.09137 - tps: 3692.06487 + dps: 5200.29406 + tps: 3692.20879 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_expose-FullBuffs-ShortSingleTarget" value: { - dps: 6167.05458 - tps: 4378.60875 + dps: 6173.4077 + tps: 4383.11947 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_expose-NoBuffs-LongMultiTarget" value: { - dps: 3054.65868 - tps: 2168.80766 + dps: 3054.53426 + tps: 2168.71932 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_expose-NoBuffs-LongSingleTarget" value: { - dps: 2667.14491 - tps: 1893.67289 + dps: 2666.6879 + tps: 1893.34841 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-combat_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2806.60334 - tps: 1992.68837 + dps: 2809.27254 + tps: 1994.5835 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 21434.41322 - tps: 15218.43339 + dps: 21435.0837 + tps: 15218.90942 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 3539.28394 - tps: 2512.89159 + dps: 3539.18067 + tps: 2512.81828 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 4297.31287 - tps: 3051.09214 + dps: 4297.78322 + tps: 3051.42609 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 13206.57635 - tps: 9376.66921 + dps: 13206.06312 + tps: 9376.30481 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 1785.58076 - tps: 1267.76234 + dps: 1785.96568 + tps: 1268.03563 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Deadly-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 1896.73775 - tps: 1346.6838 + dps: 1898.48085 + tps: 1347.9214 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_cleave_snd-FullBuffs-LongMultiTarget" value: { - dps: 20786.98349 - tps: 14758.75828 + dps: 20796.13445 + tps: 14765.25546 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_cleave_snd-FullBuffs-LongSingleTarget" value: { - dps: 5706.89497 - tps: 4051.89543 + dps: 5704.77578 + tps: 4050.3908 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_cleave_snd-FullBuffs-ShortSingleTarget" value: { - dps: 6879.10769 - tps: 4884.16646 + dps: 6879.98214 + tps: 4884.78732 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_cleave_snd-NoBuffs-LongMultiTarget" value: { - dps: 11634.37463 - tps: 8260.40599 + dps: 11638.58237 + tps: 8263.39348 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_cleave_snd-NoBuffs-LongSingleTarget" value: { - dps: 2792.01431 - tps: 1982.33016 + dps: 2794.37743 + tps: 1984.00797 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_cleave_snd-NoBuffs-ShortSingleTarget" value: { - dps: 2905.03658 - tps: 2062.57597 + dps: 2910.22216 + tps: 2066.25774 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { - dps: 12585.83401 - tps: 8935.94215 + dps: 12593.6931 + tps: 8941.5221 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { - dps: 5518.61358 - tps: 3918.21564 + dps: 5521.00073 + tps: 3919.91052 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { - dps: 6622.46751 - tps: 4701.95193 + dps: 6628.44461 + tps: 4706.19568 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { - dps: 6511.29081 - tps: 4623.01648 + dps: 6512.574 + tps: 4623.92754 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { - dps: 2854.23691 - tps: 2026.50821 + dps: 2854.87556 + tps: 2026.96164 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2978.98606 - tps: 2115.0801 + dps: 2979.69451 + tps: 2115.5831 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_expose-FullBuffs-LongMultiTarget" value: { - dps: 7255.70173 - tps: 5151.54823 + dps: 7256.43998 + tps: 5152.07239 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_expose-FullBuffs-LongSingleTarget" value: { - dps: 6519.94382 - tps: 4629.16011 + dps: 6518.4425 + tps: 4628.09417 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_expose-FullBuffs-ShortSingleTarget" value: { - dps: 7693.38673 - tps: 5462.30458 + dps: 7700.49323 + tps: 5467.35019 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_expose-NoBuffs-LongMultiTarget" value: { - dps: 3636.81509 - tps: 2582.13872 + dps: 3635.8965 + tps: 2581.48652 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_expose-NoBuffs-LongSingleTarget" value: { - dps: 3302.85173 - tps: 2345.02473 + dps: 3302.91759 + tps: 2345.07149 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-combat_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3402.53132 - tps: 2415.79724 + dps: 3405.31611 + tps: 2417.77443 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 23041.6227 - tps: 16359.55212 + dps: 23026.52179 + tps: 16348.83047 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 4633.93779 - tps: 3290.09583 + dps: 4633.60152 + tps: 3289.85708 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 5539.47133 - tps: 3933.02464 + dps: 5540.7941 + tps: 3933.96381 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 13452.61517 - tps: 9551.35677 + dps: 13454.08262 + tps: 9552.39866 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 2311.67667 - tps: 1641.29044 + dps: 2312.07404 + tps: 1641.57257 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Deadly OH Instant-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 2391.83647 - tps: 1698.20389 + dps: 2393.64181 + tps: 1699.48569 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_cleave_snd-FullBuffs-LongMultiTarget" value: { - dps: 23056.08564 - tps: 16369.8208 + dps: 23060.58549 + tps: 16373.0157 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_cleave_snd-FullBuffs-LongSingleTarget" value: { - dps: 6219.94654 - tps: 4416.16204 + dps: 6217.40679 + tps: 4414.35882 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_cleave_snd-FullBuffs-ShortSingleTarget" value: { - dps: 7507.15739 - tps: 5330.08175 + dps: 7506.79086 + tps: 5329.82151 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_cleave_snd-NoBuffs-LongMultiTarget" value: { - dps: 12895.10364 - tps: 9155.52358 + dps: 12897.69181 + tps: 9157.36119 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_cleave_snd-NoBuffs-LongSingleTarget" value: { - dps: 3041.60457 - tps: 2159.53924 + dps: 3043.6482 + tps: 2160.99022 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_cleave_snd-NoBuffs-ShortSingleTarget" value: { - dps: 3151.22866 - tps: 2237.37235 + dps: 3156.49984 + tps: 2241.11489 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { - dps: 13908.69278 - tps: 9875.17187 + dps: 13912.58983 + tps: 9877.93878 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { - dps: 6008.26905 - tps: 4265.87102 + dps: 6006.29062 + tps: 4264.46634 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { - dps: 7246.96601 - tps: 5145.34587 + dps: 7250.60441 + tps: 5147.92913 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { - dps: 7198.14652 - tps: 5110.68403 + dps: 7196.4786 + tps: 5109.49981 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { - dps: 3087.42598 - tps: 2192.07245 + dps: 3088.566 + tps: 2192.88186 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3222.80504 - tps: 2288.19157 + dps: 3221.66893 + tps: 2287.38494 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_expose-FullBuffs-LongMultiTarget" value: { - dps: 7720.57737 - tps: 5481.60994 + dps: 7722.34983 + tps: 5482.86838 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_expose-FullBuffs-LongSingleTarget" value: { - dps: 6972.25054 - tps: 4950.29788 + dps: 6973.08742 + tps: 4950.89207 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_expose-FullBuffs-ShortSingleTarget" value: { - dps: 8266.50821 - tps: 5869.22083 + dps: 8270.93629 + tps: 5872.36477 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_expose-NoBuffs-LongMultiTarget" value: { - dps: 3856.7679 - tps: 2738.30521 + dps: 3856.20329 + tps: 2737.90434 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_expose-NoBuffs-LongSingleTarget" value: { - dps: 3520.1542 - tps: 2499.30948 + dps: 3519.0204 + tps: 2498.50449 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-combat_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3630.17073 - tps: 2577.42122 + dps: 3632.15346 + tps: 2578.82895 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 25577.22336 - tps: 18159.82858 + dps: 25576.26808 + tps: 18159.15034 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 5051.65474 - tps: 3586.67487 + dps: 5051.40172 + tps: 3586.49522 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 6090.54672 - tps: 4324.28817 + dps: 6092.64625 + tps: 4325.77884 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 15006.10337 - tps: 10654.33339 + dps: 15002.54589 + tps: 10651.80759 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 2529.54294 - tps: 1795.97549 + dps: 2529.97284 + tps: 1796.28072 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Deadly-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 2642.89647 - tps: 1876.45649 + dps: 2644.86445 + tps: 1877.85376 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_cleave_snd-FullBuffs-LongMultiTarget" value: { - dps: 18027.9185 - tps: 12799.82214 + dps: 18028.7812 + tps: 12800.43465 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_cleave_snd-FullBuffs-LongSingleTarget" value: { - dps: 5305.27331 - tps: 3766.74405 + dps: 5302.45173 + tps: 3764.74073 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_cleave_snd-FullBuffs-ShortSingleTarget" value: { - dps: 6599.7649 - tps: 4685.83308 + dps: 6600.91258 + tps: 4686.64793 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_cleave_snd-NoBuffs-LongMultiTarget" value: { - dps: 9922.65757 - tps: 7045.08688 + dps: 9924.55966 + tps: 7046.43736 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_cleave_snd-NoBuffs-LongSingleTarget" value: { - dps: 2452.0055 - tps: 1740.9239 + dps: 2453.10627 + tps: 1741.70545 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_cleave_snd-NoBuffs-ShortSingleTarget" value: { - dps: 2628.60609 - tps: 1866.31033 + dps: 2627.59652 + tps: 1865.59353 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { - dps: 11936.95884 - tps: 8475.24078 + dps: 11942.70779 + tps: 8479.32253 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { - dps: 5096.65886 - tps: 3618.62779 + dps: 5102.60898 + tps: 3622.85238 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { - dps: 6310.59055 - tps: 4480.51929 + dps: 6318.69001 + tps: 4486.26991 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { - dps: 6032.40594 - tps: 4283.00822 + dps: 6033.76847 + tps: 4283.97562 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { - dps: 2515.36184 - tps: 1785.90691 + dps: 2514.32595 + tps: 1785.17142 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2732.20617 - tps: 1939.86638 + dps: 2724.64954 + tps: 1934.50118 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_expose-FullBuffs-LongMultiTarget" value: { - dps: 6857.35031 - tps: 4868.71872 + dps: 6852.48517 + tps: 4865.26447 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_expose-FullBuffs-LongSingleTarget" value: { - dps: 6102.35911 - tps: 4332.67497 + dps: 6097.33089 + tps: 4329.10493 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_expose-FullBuffs-ShortSingleTarget" value: { - dps: 7404.44678 - tps: 5257.15721 + dps: 7397.60135 + tps: 5252.29696 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_expose-NoBuffs-LongMultiTarget" value: { - dps: 3286.00737 - tps: 2333.06523 + dps: 3284.44081 + tps: 2331.95298 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_expose-NoBuffs-LongSingleTarget" value: { - dps: 2956.12596 - tps: 2098.84943 + dps: 2954.25141 + tps: 2097.5185 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-combat_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3133.94942 - tps: 2225.10409 + dps: 3137.61614 + tps: 2227.70746 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 19106.2191 - tps: 13565.41556 + dps: 19109.15274 + tps: 13567.49844 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 4221.11866 - tps: 2996.99425 + dps: 4217.62593 + tps: 2994.51441 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 5275.85455 - tps: 3745.85673 + dps: 5275.20299 + tps: 3745.39412 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 11024.41766 - tps: 7827.33654 + dps: 11025.5797 + tps: 7828.16159 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 1993.37475 - tps: 1415.29608 + dps: 1993.74101 + tps: 1415.55612 } } dps_results: { key: "TestCombat-Settings-Human-p1_combat-MH Instant OH Instant-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 2154.67542 - tps: 1529.81955 + dps: 2156.33219 + tps: 1530.99585 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_cleave_snd-FullBuffs-LongMultiTarget" value: { - dps: 20415.68239 - tps: 14495.1345 + dps: 20420.28057 + tps: 14498.39921 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_cleave_snd-FullBuffs-LongSingleTarget" value: { - dps: 4390.73584 - tps: 3117.42244 + dps: 4389.29043 + tps: 3116.39621 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_cleave_snd-FullBuffs-ShortSingleTarget" value: { - dps: 5382.83792 - tps: 3821.81492 + dps: 5384.28224 + tps: 3822.84039 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_cleave_snd-NoBuffs-LongMultiTarget" value: { - dps: 12060.94926 - tps: 8563.27398 + dps: 12058.2273 + tps: 8561.34138 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_cleave_snd-NoBuffs-LongSingleTarget" value: { - dps: 2163.27177 - tps: 1535.92296 + dps: 2164.91591 + tps: 1537.0903 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_cleave_snd-NoBuffs-ShortSingleTarget" value: { - dps: 2307.66027 - tps: 1638.43879 + dps: 2312.99094 + tps: 1642.22356 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { - dps: 12603.15505 - tps: 8948.24008 + dps: 12600.27739 + tps: 8946.19695 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { - dps: 4213.50574 - tps: 2991.58908 + dps: 4210.85136 + tps: 2989.70446 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { - dps: 5181.41443 - tps: 3678.80425 + dps: 5183.44961 + tps: 3680.24922 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { - dps: 6701.72018 - tps: 4758.22132 + dps: 6695.48377 + tps: 4753.79348 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { - dps: 2219.59274 - tps: 1575.91084 + dps: 2219.99673 + tps: 1576.19768 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2391.54882 - tps: 1697.99966 + dps: 2392.28024 + tps: 1698.51897 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_expose-FullBuffs-LongMultiTarget" value: { - dps: 6095.96905 - tps: 4328.13803 + dps: 6097.29038 + tps: 4329.07617 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_expose-FullBuffs-LongSingleTarget" value: { - dps: 5242.81629 - tps: 3722.39956 + dps: 5242.53134 + tps: 3722.19725 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_expose-FullBuffs-ShortSingleTarget" value: { - dps: 6244.73798 - tps: 4433.76396 + dps: 6250.92622 + tps: 4438.15761 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_expose-NoBuffs-LongMultiTarget" value: { - dps: 3084.42471 - tps: 2189.94154 + dps: 3084.8708 + tps: 2190.25827 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_expose-NoBuffs-LongSingleTarget" value: { - dps: 2687.30839 - tps: 1907.98895 + dps: 2686.88105 + tps: 1907.68554 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-combat_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2847.51658 - tps: 2021.73677 + dps: 2850.1627 + tps: 2023.61551 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 21602.25983 - tps: 15337.60448 + dps: 21615.96589 + tps: 15347.33578 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 3565.31765 - tps: 2531.37553 + dps: 3565.33705 + tps: 2531.3893 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 4362.56442 - tps: 3097.42074 + dps: 4362.68672 + tps: 3097.50757 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 13327.71462 - tps: 9462.67738 + dps: 13327.72899 + tps: 9462.68758 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 1801.12195 - tps: 1278.79658 + dps: 1801.49013 + tps: 1279.05799 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Deadly-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 1931.94247 - tps: 1371.67916 + dps: 1933.6019 + tps: 1372.85735 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_cleave_snd-FullBuffs-LongMultiTarget" value: { - dps: 20917.34424 - tps: 14851.31441 + dps: 20922.56115 + tps: 14855.01842 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_cleave_snd-FullBuffs-LongSingleTarget" value: { - dps: 5755.01589 - tps: 4086.06129 + dps: 5752.9394 + tps: 4084.58698 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_cleave_snd-FullBuffs-ShortSingleTarget" value: { - dps: 6977.56677 - tps: 4954.0724 + dps: 6978.62965 + tps: 4954.82705 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_cleave_snd-NoBuffs-LongMultiTarget" value: { - dps: 11745.8977 - tps: 8339.58737 + dps: 11751.19424 + tps: 8343.34791 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_cleave_snd-NoBuffs-LongSingleTarget" value: { - dps: 2819.27876 - tps: 2001.68792 + dps: 2821.57259 + tps: 2003.31654 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_cleave_snd-NoBuffs-ShortSingleTarget" value: { - dps: 2958.20917 - tps: 2100.32851 + dps: 2963.18727 + tps: 2103.86296 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { - dps: 12702.97565 - tps: 9019.11271 + dps: 12705.38445 + tps: 9020.82296 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { - dps: 5554.79296 - tps: 3943.903 + dps: 5557.13921 + tps: 3945.56884 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { - dps: 6731.48105 - tps: 4779.35155 + dps: 6737.22596 + tps: 4783.43043 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { - dps: 6570.42716 - tps: 4665.00328 + dps: 6570.21821 + tps: 4664.85493 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { - dps: 2877.07864 - tps: 2042.72584 + dps: 2877.69565 + tps: 2043.16391 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3025.27929 - tps: 2147.94829 + dps: 3025.85724 + tps: 2148.35864 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_expose-FullBuffs-LongMultiTarget" value: { - dps: 7331.48056 - tps: 5205.3512 + dps: 7331.13714 + tps: 5205.10737 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_expose-FullBuffs-LongSingleTarget" value: { - dps: 6572.74902 - tps: 4666.65181 + dps: 6570.27818 + tps: 4664.89751 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_expose-FullBuffs-ShortSingleTarget" value: { - dps: 7789.73212 - tps: 5530.7098 + dps: 7796.6532 + tps: 5535.62377 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_expose-NoBuffs-LongMultiTarget" value: { - dps: 3670.87356 - tps: 2606.32023 + dps: 3669.8199 + tps: 2605.57213 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_expose-NoBuffs-LongSingleTarget" value: { - dps: 3327.6089 - tps: 2362.60232 + dps: 3327.61222 + tps: 2362.60468 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-combat_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3450.03208 - tps: 2449.52278 + dps: 3452.79805 + tps: 2451.48662 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 23219.85961 - tps: 16486.10032 + dps: 23204.40112 + tps: 16475.1248 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 4667.63477 - tps: 3314.02069 + dps: 4667.48282 + tps: 3313.9128 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 5622.1731 - tps: 3991.7429 + dps: 5623.03843 + tps: 3992.35729 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 13581.74601 - tps: 9643.03967 + dps: 13586.68098 + tps: 9646.54349 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 2331.63373 - tps: 1655.45995 + dps: 2332.01436 + tps: 1655.7302 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Deadly OH Instant-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 2433.5633 - tps: 1727.82994 + dps: 2435.28497 + tps: 1729.05233 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_cleave_snd-FullBuffs-LongMultiTarget" value: { - dps: 23247.44311 - tps: 16505.68461 + dps: 23245.43168 + tps: 16504.25649 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_cleave_snd-FullBuffs-LongSingleTarget" value: { - dps: 6272.71559 - tps: 4453.62807 + dps: 6270.09515 + tps: 4451.76755 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_cleave_snd-FullBuffs-ShortSingleTarget" value: { - dps: 7614.01841 - tps: 5405.95307 + dps: 7613.41501 + tps: 5405.52466 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_cleave_snd-NoBuffs-LongMultiTarget" value: { - dps: 12997.94128 - tps: 9228.53831 + dps: 13001.82841 + tps: 9231.29817 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_cleave_snd-NoBuffs-LongSingleTarget" value: { - dps: 3069.97186 - tps: 2179.68002 + dps: 3071.974 + tps: 2181.10154 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_cleave_snd-NoBuffs-ShortSingleTarget" value: { - dps: 3209.17247 - tps: 2278.51245 + dps: 3214.18984 + tps: 2282.07479 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { - dps: 14011.73182 - tps: 9948.32959 + dps: 14013.78934 + tps: 9949.79043 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { - dps: 6051.5132 - tps: 4296.57437 + dps: 6049.43439 + tps: 4295.09842 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { - dps: 7364.51067 - tps: 5228.80258 + dps: 7367.71885 + tps: 5231.08038 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { - dps: 7278.19602 - tps: 5167.51917 + dps: 7277.12394 + tps: 5166.758 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { - dps: 3110.04339 - tps: 2208.13081 + dps: 3110.3369 + tps: 2208.3392 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3272.31965 - tps: 2323.34695 + dps: 3270.99909 + tps: 2322.40936 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_expose-FullBuffs-LongMultiTarget" value: { - dps: 7796.98672 - tps: 5535.86057 + dps: 7798.25178 + tps: 5536.75876 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_expose-FullBuffs-LongSingleTarget" value: { - dps: 7024.9646 - tps: 4987.72486 + dps: 7025.00934 + tps: 4987.75663 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_expose-FullBuffs-ShortSingleTarget" value: { - dps: 8373.39727 - tps: 5945.11206 + dps: 8377.47887 + tps: 5948.01 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_expose-NoBuffs-LongMultiTarget" value: { - dps: 3894.11067 - tps: 2764.81858 + dps: 3893.63395 + tps: 2764.4801 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_expose-NoBuffs-LongSingleTarget" value: { - dps: 3547.02518 - tps: 2518.38788 + dps: 3546.0517 + tps: 2517.6967 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-combat_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3680.68935 - tps: 2613.28944 + dps: 3682.60996 + tps: 2614.65307 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 25773.52526 - tps: 18299.20293 + dps: 25775.54774 + tps: 18300.6389 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 5087.58463 - tps: 3612.18509 + dps: 5087.74227 + tps: 3612.29701 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 6177.58913 - tps: 4386.08828 + dps: 6179.2453 + tps: 4387.26416 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 15145.72974 - tps: 10753.46811 + dps: 15142.98192 + tps: 10751.51716 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 2550.58596 - tps: 1810.91603 + dps: 2550.98882 + tps: 1811.20206 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Deadly-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 2687.73193 - tps: 1908.28967 + dps: 2689.5647 + tps: 1909.59093 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_cleave_snd-FullBuffs-LongMultiTarget" value: { - dps: 18199.41529 - tps: 12921.58485 + dps: 18199.4527 + tps: 12921.61141 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_cleave_snd-FullBuffs-LongSingleTarget" value: { - dps: 5357.42259 - tps: 3803.77004 + dps: 5354.37411 + tps: 3801.60562 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_cleave_snd-FullBuffs-ShortSingleTarget" value: { - dps: 6693.77196 - tps: 4752.57809 + dps: 6694.79771 + tps: 4753.30638 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_cleave_snd-NoBuffs-LongMultiTarget" value: { - dps: 10000.7439 - tps: 7100.52817 + dps: 10001.36654 + tps: 7100.97024 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_cleave_snd-NoBuffs-LongSingleTarget" value: { - dps: 2475.2972 - tps: 1757.46101 + dps: 2476.31724 + tps: 1758.18524 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_cleave_snd-NoBuffs-ShortSingleTarget" value: { - dps: 2679.74802 - tps: 1902.62109 + dps: 2678.41202 + tps: 1901.67253 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_cleave_snd_expose-FullBuffs-LongMultiTarget" value: { - dps: 12042.75914 - tps: 8550.35899 + dps: 12039.79609 + tps: 8548.25523 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_cleave_snd_expose-FullBuffs-LongSingleTarget" value: { - dps: 5129.98414 - tps: 3642.28874 + dps: 5135.99472 + tps: 3646.55625 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_cleave_snd_expose-FullBuffs-ShortSingleTarget" value: { - dps: 6419.13785 - tps: 4557.58787 + dps: 6427.32418 + tps: 4563.40017 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_cleave_snd_expose-NoBuffs-LongMultiTarget" value: { - dps: 6097.51125 - tps: 4329.23299 + dps: 6097.34925 + tps: 4329.11797 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_cleave_snd_expose-NoBuffs-LongSingleTarget" value: { - dps: 2535.69986 - tps: 1800.3469 + dps: 2534.66792 + tps: 1799.61422 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_cleave_snd_expose-NoBuffs-ShortSingleTarget" value: { - dps: 2778.3456 - tps: 1972.62538 + dps: 2770.65215 + tps: 1967.16302 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_expose-FullBuffs-LongMultiTarget" value: { - dps: 6935.02148 - tps: 4923.86525 + dps: 6927.17546 + tps: 4918.29458 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_expose-FullBuffs-LongSingleTarget" value: { - dps: 6154.22392 - tps: 4369.49898 + dps: 6146.41128 + tps: 4363.95201 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_expose-FullBuffs-ShortSingleTarget" value: { - dps: 7498.95217 - tps: 5324.25604 + dps: 7491.68813 + tps: 5319.09857 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_expose-NoBuffs-LongMultiTarget" value: { - dps: 3322.79569 - tps: 2359.18494 + dps: 3320.35762 + tps: 2357.45391 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_expose-NoBuffs-LongSingleTarget" value: { - dps: 2983.36458 - tps: 2118.18885 + dps: 2980.70963 + tps: 2116.30384 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-combat_expose-NoBuffs-ShortSingleTarget" value: { - dps: 3185.33772 - tps: 2261.58978 + dps: 3188.92577 + tps: 2264.13729 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-fan_aoe-FullBuffs-LongMultiTarget" value: { - dps: 19276.14588 - tps: 13686.06357 + dps: 19281.77115 + tps: 13690.05752 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-fan_aoe-FullBuffs-LongSingleTarget" value: { - dps: 4256.58341 - tps: 3022.17422 + dps: 4255.43319 + tps: 3021.35757 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-fan_aoe-FullBuffs-ShortSingleTarget" value: { - dps: 5354.20562 - tps: 3801.48599 + dps: 5353.10704 + tps: 3800.706 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-fan_aoe-NoBuffs-LongMultiTarget" value: { - dps: 11147.33881 - tps: 7914.61056 + dps: 11144.86205 + tps: 7912.85206 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-fan_aoe-NoBuffs-LongSingleTarget" value: { - dps: 2007.61638 - tps: 1425.40763 + dps: 2007.95517 + tps: 1425.64817 } } dps_results: { key: "TestCombat-Settings-Orc-p1_combat-MH Instant OH Instant-fan_aoe-NoBuffs-ShortSingleTarget" value: { - dps: 2195.23546 - tps: 1558.61717 + dps: 2196.75486 + tps: 1559.69595 } } dps_results: { key: "TestCombat-SwitchInFrontOfTarget-Default" value: { - dps: 6158.64303 - tps: 4372.63655 + dps: 6153.89141 + tps: 4369.2629 } } diff --git a/sim/rogue/hack_and_slash.go b/sim/rogue/hack_and_slash.go index 39e9d3e455..5c4477652e 100644 --- a/sim/rogue/hack_and_slash.go +++ b/sim/rogue/hack_and_slash.go @@ -19,18 +19,9 @@ func (rogue *Rogue) registerHackAndSlash(mask core.ProcMask) { Label: "Hack and Slash", Duration: core.NeverExpires, OnInit: func(aura *core.Aura, sim *core.Simulation) { - hackAndSlashSpell = rogue.GetOrRegisterSpell(core.SpellConfig{ - ActionID: core.ActionID{SpellID: 13964}, - SpellSchool: core.SpellSchoolPhysical, - ProcMask: core.ProcMaskMeleeMHAuto, - Flags: core.SpellFlagMeleeMetrics | core.SpellFlagIncludeTargetBonusDamage, - - DamageMultiplier: rogue.AutoAttacks.MHConfig.DamageMultiplier, - CritMultiplier: rogue.MeleeCritMultiplier(false), - ThreatMultiplier: rogue.AutoAttacks.MHConfig.ThreatMultiplier, - - ApplyEffects: rogue.AutoAttacks.MHConfig.ApplyEffects, - }) + config := rogue.AutoAttacks.MHConfig + config.ActionID = core.ActionID{SpellID: 13964} + hackAndSlashSpell = rogue.GetOrRegisterSpell(config) }, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) diff --git a/sim/rogue/rotation_assassination.go b/sim/rogue/rotation_assassination.go index 238177be84..a4a98bc23d 100644 --- a/sim/rogue/rotation_assassination.go +++ b/sim/rogue/rotation_assassination.go @@ -46,8 +46,8 @@ func (x *rotation_assassination) setup(sim *core.Simulation, rogue *Rogue) { return critChance } - critsPerSecond := getCritChance(rogue.AutoAttacks.MHAuto)/rogue.AutoAttacks.MainhandSwingSpeed().Seconds() + - getCritChance(rogue.AutoAttacks.OHAuto)/rogue.AutoAttacks.OffhandSwingSpeed().Seconds() + critsPerSecond := getCritChance(rogue.AutoAttacks.MHAuto())/rogue.AutoAttacks.MainhandSwingSpeed().Seconds() + + getCritChance(rogue.AutoAttacks.OHAuto())/rogue.AutoAttacks.OffhandSwingSpeed().Seconds() procChance := []float64{0, 0.33, 0.66, 1}[rogue.Talents.FocusedAttacks] return 10*rogue.EnergyTickMultiplier + critsPerSecond*procChance*2 diff --git a/sim/rogue/rotation_combat.go b/sim/rogue/rotation_combat.go index 735294eabf..a38113ba66 100644 --- a/sim/rogue/rotation_combat.go +++ b/sim/rogue/rotation_combat.go @@ -42,7 +42,7 @@ func (x *rotation_combat) setup(_ *core.Simulation, rogue *Rogue) { return 10 * rogue.EnergyTickMultiplier } - spell := rogue.AutoAttacks.OHAuto + spell := rogue.AutoAttacks.OHAuto() at := rogue.AttackTables[rogue.CurrentTarget.UnitIndex] landChance := 1.0 diff --git a/sim/rogue/rotation_generic.go b/sim/rogue/rotation_generic.go index a8d6d56b3d..a3ad5da4f7 100644 --- a/sim/rogue/rotation_generic.go +++ b/sim/rogue/rotation_generic.go @@ -43,7 +43,7 @@ func (x *rotation_generic) setup(_ *core.Simulation, rogue *Rogue) { energyPerSecond := func() float64 { var eps float64 if rogue.Talents.CombatPotency > 0 { - spell := rogue.AutoAttacks.OHAuto + spell := rogue.AutoAttacks.OHAuto() at := rogue.AttackTables[rogue.CurrentTarget.UnitIndex] landChance := 1.0 @@ -77,8 +77,8 @@ func (x *rotation_generic) setup(_ *core.Simulation, rogue *Rogue) { return critChance } - critsPerSecond := getCritChance(rogue.AutoAttacks.MHAuto)/rogue.AutoAttacks.MainhandSwingSpeed().Seconds() + - getCritChance(rogue.AutoAttacks.OHAuto)/rogue.AutoAttacks.OffhandSwingSpeed().Seconds() + critsPerSecond := getCritChance(rogue.AutoAttacks.MHAuto())/rogue.AutoAttacks.MainhandSwingSpeed().Seconds() + + getCritChance(rogue.AutoAttacks.OHAuto())/rogue.AutoAttacks.OffhandSwingSpeed().Seconds() procChance := []float64{0, 0.33, 0.66, 1}[rogue.Talents.FocusedAttacks] eps += critsPerSecond * procChance * 2 diff --git a/sim/rogue/rotation_multi.go b/sim/rogue/rotation_multi.go index d26207c64e..b9000428f8 100644 --- a/sim/rogue/rotation_multi.go +++ b/sim/rogue/rotation_multi.go @@ -316,7 +316,7 @@ func (x *rotation_multi) shouldCastNextRotationItem(sim *core.Simulation, rogue func (x *rotation_multi) getExpectedEnergyPerSecond(rogue *Rogue) float64 { const finishersPerSecond = 1.0 / 6 const averageComboPointsSpendOnFinisher = 4.0 - bonusEnergyPerSecond := float64(rogue.Talents.CombatPotency) * 3 * 0.2 * 1.0 / (rogue.AutoAttacks.OH.SwingSpeed / 1.4) + bonusEnergyPerSecond := float64(rogue.Talents.CombatPotency) * 3 * 0.2 * 1.0 / (rogue.AutoAttacks.OH().SwingSpeed / 1.4) bonusEnergyPerSecond += float64(rogue.Talents.FocusedAttacks) bonusEnergyPerSecond += float64(rogue.Talents.RelentlessStrikes) * 0.04 * 25 * finishersPerSecond * averageComboPointsSpendOnFinisher return (core.EnergyPerTick*rogue.EnergyTickMultiplier)/core.EnergyTickDuration.Seconds() + bonusEnergyPerSecond diff --git a/sim/shaman/enhancement/TestEnhancement.results b/sim/shaman/enhancement/TestEnhancement.results index d4da0624a2..8495d1163d 100644 --- a/sim/shaman/enhancement/TestEnhancement.results +++ b/sim/shaman/enhancement/TestEnhancement.results @@ -820,8 +820,8 @@ dps_results: { dps_results: { key: "TestEnhancement-AllItems-TheFistsofFury" value: { - dps: 6557.16598 - tps: 3559.75061 + dps: 6562.61385 + tps: 3561.08212 } } dps_results: { @@ -946,8 +946,8 @@ dps_results: { dps_results: { key: "TestEnhancement-AllItems-Val'anyr,HammerofAncientKings-46017" value: { - dps: 7786.91977 - tps: 4274.92524 + dps: 7798.82481 + tps: 4282.85217 } } dps_results: { diff --git a/sim/shaman/enhancement/enhancement.go b/sim/shaman/enhancement/enhancement.go index 6d443c6301..cf7278ad45 100644 --- a/sim/shaman/enhancement/enhancement.go +++ b/sim/shaman/enhancement/enhancement.go @@ -161,18 +161,18 @@ func (enh *EnhancementShaman) ApplySyncType(syncType proto.ShamanSyncType) { switch syncType { case proto.ShamanSyncType_SyncMainhandOffhandSwings: enh.AutoAttacks.ReplaceMHSwing = func(sim *core.Simulation, mhSwingSpell *core.Spell) *core.Spell { - if aa := &enh.AutoAttacks; aa.OffhandSwingAt-sim.CurrentTime > FlurryICD { - if nextMHSwingAt := sim.CurrentTime + aa.MainhandSwingSpeed(); nextMHSwingAt > aa.OffhandSwingAt { - aa.OffhandSwingAt = nextMHSwingAt + if aa := &enh.AutoAttacks; aa.OffhandSwingAt()-sim.CurrentTime > FlurryICD { + if nextMHSwingAt := sim.CurrentTime + aa.MainhandSwingSpeed(); nextMHSwingAt > aa.OffhandSwingAt() { + aa.SetOffhandSwingAt(nextMHSwingAt) } } return mhSwingSpell } case proto.ShamanSyncType_DelayOffhandSwings: enh.AutoAttacks.ReplaceMHSwing = func(sim *core.Simulation, mhSwingSpell *core.Spell) *core.Spell { - if aa := &enh.AutoAttacks; aa.OffhandSwingAt-sim.CurrentTime > FlurryICD { - if nextMHSwingAt := sim.CurrentTime + aa.MainhandSwingSpeed() + 100*time.Millisecond; nextMHSwingAt > aa.OffhandSwingAt { - aa.OffhandSwingAt = nextMHSwingAt + if aa := &enh.AutoAttacks; aa.OffhandSwingAt()-sim.CurrentTime > FlurryICD { + if nextMHSwingAt := sim.CurrentTime + aa.MainhandSwingSpeed() + 100*time.Millisecond; nextMHSwingAt > aa.OffhandSwingAt() { + aa.SetOffhandSwingAt(nextMHSwingAt) } } return mhSwingSpell diff --git a/sim/shaman/enhancement/priority_rotation.go b/sim/shaman/enhancement/priority_rotation.go index 9a5fd9986f..61b5990e45 100644 --- a/sim/shaman/enhancement/priority_rotation.go +++ b/sim/shaman/enhancement/priority_rotation.go @@ -202,7 +202,7 @@ func (rotation *PriorityRotation) buildPriorityRotation(enh *EnhancementShaman) lavaLash := Spell{ condition: func(sim *core.Simulation, target *core.Unit) bool { //Checking if we learned the spell, ie untalented - return enh.LavaLash != nil && enh.AutoAttacks.IsDualWielding + return enh.LavaLash != nil && enh.AutoAttacks.IsDualWielding() }, cast: func(sim *core.Simulation, target *core.Unit) bool { //TODO add in LL delay so we don't lose flametongues, if Last attack = current time @@ -406,6 +406,6 @@ func (rotation *PriorityRotation) DoAction(enh *EnhancementShaman, sim *core.Sim } } -func (rotation *PriorityRotation) Reset(enh *EnhancementShaman, sim *core.Simulation) { +func (rotation *PriorityRotation) Reset(_ *EnhancementShaman, _ *core.Simulation) { } diff --git a/sim/shaman/stormstrike.go b/sim/shaman/stormstrike.go index 8e476b3c10..d027d66425 100644 --- a/sim/shaman/stormstrike.go +++ b/sim/shaman/stormstrike.go @@ -134,7 +134,7 @@ func (shaman *Shaman) registerStormstrikeSpell() { mhHit(sim, target, spell) - if shaman.AutoAttacks.IsDualWielding { + if shaman.AutoAttacks.IsDualWielding() { ohHit(sim, target, spell) } diff --git a/sim/shaman/talents.go b/sim/shaman/talents.go index 1341a54d74..46e875c517 100644 --- a/sim/shaman/talents.go +++ b/sim/shaman/talents.go @@ -47,7 +47,7 @@ func (shaman *Shaman) ApplyTalents() { if shaman.Talents.SpiritWeapons { shaman.PseudoStats.CanParry = true - shaman.AutoAttacks.MHConfig.ThreatMultiplier *= 0.7 + shaman.AutoAttacks.MHConfig.ThreatMultiplier *= 0.7 // TODO this looks fishy shaman.AutoAttacks.OHConfig.ThreatMultiplier *= 0.7 } diff --git a/sim/warrior/deep_wounds.go b/sim/warrior/deep_wounds.go index e543007a3a..08c8948430 100644 --- a/sim/warrior/deep_wounds.go +++ b/sim/warrior/deep_wounds.go @@ -64,13 +64,13 @@ func (warrior *Warrior) procDeepWounds(sim *core.Simulation, target *core.Unit, attackTable := warrior.AttackTables[target.UnitIndex] var awd float64 if isMh { - adm := warrior.AutoAttacks.MHAuto.AttackerDamageMultiplier(attackTable) - tdm := warrior.AutoAttacks.MHAuto.TargetDamageMultiplier(attackTable, false) - awd = (warrior.AutoAttacks.MH.CalculateAverageWeaponDamage(dot.Spell.MeleeAttackPower()) + dot.Spell.BonusWeaponDamage()) * adm * tdm + adm := warrior.AutoAttacks.MHAuto().AttackerDamageMultiplier(attackTable) + tdm := warrior.AutoAttacks.MHAuto().TargetDamageMultiplier(attackTable, false) + awd = (warrior.AutoAttacks.MH().CalculateAverageWeaponDamage(dot.Spell.MeleeAttackPower()) + dot.Spell.BonusWeaponDamage()) * adm * tdm } else { - adm := warrior.AutoAttacks.OHAuto.AttackerDamageMultiplier(attackTable) - tdm := warrior.AutoAttacks.OHAuto.TargetDamageMultiplier(attackTable, false) - awd = ((warrior.AutoAttacks.OH.CalculateAverageWeaponDamage(dot.Spell.MeleeAttackPower()) * 0.5) + dot.Spell.BonusWeaponDamage()) * adm * tdm + adm := warrior.AutoAttacks.OHAuto().AttackerDamageMultiplier(attackTable) + tdm := warrior.AutoAttacks.OHAuto().TargetDamageMultiplier(attackTable, false) + awd = ((warrior.AutoAttacks.OH().CalculateAverageWeaponDamage(dot.Spell.MeleeAttackPower()) * 0.5) + dot.Spell.BonusWeaponDamage()) * adm * tdm } newDamage := awd * 0.16 * float64(warrior.Talents.DeepWounds) diff --git a/sim/warrior/dps/dps_warrior.go b/sim/warrior/dps/dps_warrior.go index 92b9136b7b..cfbbc96319 100644 --- a/sim/warrior/dps/dps_warrior.go +++ b/sim/warrior/dps/dps_warrior.go @@ -90,9 +90,7 @@ func NewDpsWarrior(character *core.Character, options *proto.Player) *DpsWarrior MainHand: war.WeaponFromMainHand(war.DefaultMeleeCritMultiplier()), OffHand: war.WeaponFromOffHand(war.DefaultMeleeCritMultiplier()), AutoSwingMelee: true, - ReplaceMHSwing: func(sim *core.Simulation, mhSwingSpell *core.Spell) *core.Spell { - return war.TryHSOrCleave(sim, mhSwingSpell) - }, + ReplaceMHSwing: war.TryHSOrCleave, }) return war diff --git a/sim/warrior/heroic_throw.go b/sim/warrior/heroic_throw.go index bf5d12cc01..6a81515526 100644 --- a/sim/warrior/heroic_throw.go +++ b/sim/warrior/heroic_throw.go @@ -22,7 +22,7 @@ func (warrior *Warrior) RegisterHeroicThrow() { Duration: time.Minute * 1, }, ModifyCast: func(sim *core.Simulation, spell *core.Spell, cast *core.Cast) { - if warrior.AutoAttacks.MH.SwingSpeed == warrior.AutoAttacks.OH.SwingSpeed { + if warrior.AutoAttacks.MH().SwingSpeed == warrior.AutoAttacks.OH().SwingSpeed { warrior.AutoAttacks.StopMeleeUntil(sim, sim.CurrentTime+cast.CastTime, true) } else { warrior.AutoAttacks.StopMeleeUntil(sim, sim.CurrentTime+cast.CastTime, false) diff --git a/sim/warrior/protection/protection_warrior.go b/sim/warrior/protection/protection_warrior.go index 2c70c418db..760dd16f2b 100644 --- a/sim/warrior/protection/protection_warrior.go +++ b/sim/warrior/protection/protection_warrior.go @@ -67,9 +67,7 @@ func NewProtectionWarrior(character *core.Character, options *proto.Player) *Pro MainHand: war.WeaponFromMainHand(war.DefaultMeleeCritMultiplier()), OffHand: war.WeaponFromOffHand(war.DefaultMeleeCritMultiplier()), AutoSwingMelee: true, - ReplaceMHSwing: func(sim *core.Simulation, mhSwingSpell *core.Spell) *core.Spell { - return war.TryHSOrCleave(sim, mhSwingSpell) - }, + ReplaceMHSwing: war.TryHSOrCleave, }) healingModel := options.HealingModel diff --git a/sim/warrior/rend.go b/sim/warrior/rend.go index 4a761d5724..06df46ca63 100644 --- a/sim/warrior/rend.go +++ b/sim/warrior/rend.go @@ -48,7 +48,7 @@ func (warrior *Warrior) RegisterRendSpell(rageThreshold float64, healthThreshold NumberOfTicks: dotTicks, TickLength: time.Second * 3, OnSnapshot: func(sim *core.Simulation, target *core.Unit, dot *core.Dot, _ bool) { - dot.SnapshotBaseDamage = (380 + warrior.AutoAttacks.MH.CalculateAverageWeaponDamage(dot.Spell.MeleeAttackPower())) / 5 + dot.SnapshotBaseDamage = (380 + warrior.AutoAttacks.MH().CalculateAverageWeaponDamage(dot.Spell.MeleeAttackPower())) / 5 // 135% damage multiplier is applied at the beginning of the fight and removed when target is at 75% health if sim.GetRemainingDurationPercent() > 0.75 { dot.SnapshotBaseDamage *= 1.35 diff --git a/sim/warrior/shattering_throw.go b/sim/warrior/shattering_throw.go index b2750a58f7..d298d5d85f 100644 --- a/sim/warrior/shattering_throw.go +++ b/sim/warrior/shattering_throw.go @@ -30,7 +30,7 @@ func (warrior *Warrior) RegisterShatteringThrowCD() { Duration: time.Minute * 5, }, ModifyCast: func(sim *core.Simulation, spell *core.Spell, cast *core.Cast) { - if warrior.AutoAttacks.MH.SwingSpeed == warrior.AutoAttacks.OH.SwingSpeed { + if warrior.AutoAttacks.MH().SwingSpeed == warrior.AutoAttacks.OH().SwingSpeed { warrior.AutoAttacks.StopMeleeUntil(sim, sim.CurrentTime+cast.CastTime, true) } else { warrior.AutoAttacks.StopMeleeUntil(sim, sim.CurrentTime+cast.CastTime, false) diff --git a/sim/warrior/talents.go b/sim/warrior/talents.go index 798ff9658c..2b606a382f 100644 --- a/sim/warrior/talents.go +++ b/sim/warrior/talents.go @@ -353,7 +353,7 @@ func (warrior *Warrior) applyTitansGrip() { if !warrior.Talents.TitansGrip { return } - if !warrior.AutoAttacks.IsDualWielding { + if !warrior.AutoAttacks.IsDualWielding() { return } if warrior.MainHand().HandType != proto.HandType_HandTypeTwoHand && warrior.OffHand().HandType != proto.HandType_HandTypeTwoHand { @@ -432,18 +432,9 @@ func (warrior *Warrior) registerSwordSpecialization(procMask core.ProcMask) { Label: "Sword Specialization", Duration: core.NeverExpires, OnInit: func(aura *core.Aura, sim *core.Simulation) { - swordSpecializationSpell = warrior.GetOrRegisterSpell(core.SpellConfig{ - ActionID: core.ActionID{SpellID: 12281}, - SpellSchool: core.SpellSchoolPhysical, - ProcMask: core.ProcMaskMeleeMHAuto, - Flags: core.SpellFlagMeleeMetrics | core.SpellFlagIncludeTargetBonusDamage | core.SpellFlagNoOnCastComplete, - - DamageMultiplier: 1, - CritMultiplier: warrior.critMultiplier(mh), - ThreatMultiplier: 1, - - ApplyEffects: warrior.AutoAttacks.MHConfig.ApplyEffects, - }) + config := warrior.AutoAttacks.MHConfig + config.ActionID = core.ActionID{SpellID: 12281} + swordSpecializationSpell = warrior.GetOrRegisterSpell(config) }, OnReset: func(aura *core.Aura, sim *core.Simulation) { aura.Activate(sim) @@ -797,7 +788,7 @@ func (warrior *Warrior) RegisterBladestormCD() { numHits := min(4, warrior.Env.GetNumTargets()) results := make([]*core.SpellResult, numHits) - if warrior.AutoAttacks.IsDualWielding { + if warrior.AutoAttacks.IsDualWielding() { warrior.BladestormOH = warrior.RegisterSpell(core.SpellConfig{ ActionID: actionID, SpellSchool: core.SpellSchoolPhysical, diff --git a/sim/warrior/whirlwind.go b/sim/warrior/whirlwind.go index 2b1e0f8fce..3fa17b494c 100644 --- a/sim/warrior/whirlwind.go +++ b/sim/warrior/whirlwind.go @@ -12,7 +12,7 @@ func (warrior *Warrior) registerWhirlwindSpell() { numHits := min(4, warrior.Env.GetNumTargets()) results := make([]*core.SpellResult, numHits) - if warrior.AutoAttacks.IsDualWielding && warrior.GetOHWeapon().WeaponType != proto.WeaponType_WeaponTypeStaff && + if warrior.AutoAttacks.IsDualWielding() && warrior.GetOHWeapon().WeaponType != proto.WeaponType_WeaponTypeStaff && warrior.GetOHWeapon().WeaponType != proto.WeaponType_WeaponTypePolearm { warrior.WhirlwindOH = warrior.RegisterSpell(core.SpellConfig{ ActionID: actionID.WithTag(1),