From 84a4d8e9c6480f634adab870c92239b63c2ddbda Mon Sep 17 00:00:00 2001 From: Kayla Glick Date: Tue, 14 Jan 2025 01:49:12 -0500 Subject: [PATCH] add rockbiter weapon threat --- sim/shaman/rockbiter_weapon.go | 17 ++++++++++++++--- sim/shaman/warden/TestWardenShaman.results | 4 ++-- sim/shaman/warden/warden_test.go | 2 +- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/sim/shaman/rockbiter_weapon.go b/sim/shaman/rockbiter_weapon.go index 27396b45e..65cdf07e9 100644 --- a/sim/shaman/rockbiter_weapon.go +++ b/sim/shaman/rockbiter_weapon.go @@ -11,6 +11,7 @@ const RockbiterWeaponRanks = 7 var RockbiterWeaponEnchantId = [RockbiterWeaponRanks + 1]int32{0, 29, 6, 1, 503, 1663, 683, 1664} var RockbiterWeaponBonusAP = [RockbiterWeaponRanks + 1]float64{0, 50, 79, 118, 138, 319, 490, 653} +var RockbiterWeaponBonusTPS = [RockbiterWeaponRanks + 1]float64{0, 6, 10, 16, 27, 41, 55, 72} var RockbiterWeaponLevel = [RockbiterWeaponRanks + 1]int32{0, 1, 8, 16, 24, 34, 44, 54} var RockbiterWeaponRankByLevel = map[int32]int32{ @@ -27,17 +28,27 @@ func (shaman *Shaman) RegisterRockbiterImbue(procMask core.ProcMask) { rank := RockbiterWeaponRankByLevel[shaman.Level] enchantId := RockbiterWeaponEnchantId[rank] + bonusThreat := RockbiterWeaponBonusTPS[rank] duration := time.Minute * 5 - if procMask.Matches(core.ProcMaskMeleeMH) { + hasMHImbue := procMask.Matches(core.ProcMaskMeleeMH) + hasOHImbue := procMask.Matches(core.ProcMaskMeleeOH) + + if hasMHImbue { shaman.MainHand().TempEnchant = enchantId + shaman.AutoAttacks.MHConfig().FlatThreatBonus += bonusThreat * shaman.AutoAttacks.MH().SwingSpeed } - if procMask.Matches(core.ProcMaskMeleeOH) { + if hasOHImbue { shaman.OffHand().TempEnchant = enchantId + shaman.AutoAttacks.MHConfig().FlatThreatBonus += bonusThreat * shaman.AutoAttacks.OH().SwingSpeed } - // TODO: Rockbiter +threat + shaman.OnSpellRegistered(func(spell *core.Spell) { + if spell.ProcMask.Matches(procMask) { + spell.FlatThreatBonus += bonusThreat + } + }) aura := shaman.RegisterAura(core.Aura{ Label: "Rockbiter Imbue", diff --git a/sim/shaman/warden/TestWardenShaman.results b/sim/shaman/warden/TestWardenShaman.results index 28d3c9b32..6ff124cb0 100644 --- a/sim/shaman/warden/TestWardenShaman.results +++ b/sim/shaman/warden/TestWardenShaman.results @@ -113,8 +113,8 @@ dps_results: { dps_results: { key: "TestWardenShaman-Phase1-AllItems-GiftoftheGatheringStorm" value: { - dps: 518.93599 - tps: 617.98044 + dps: 490.77606 + tps: 701.91482 } } dps_results: { diff --git a/sim/shaman/warden/warden_test.go b/sim/shaman/warden/warden_test.go index d98586f41..0e0676a7f 100644 --- a/sim/shaman/warden/warden_test.go +++ b/sim/shaman/warden/warden_test.go @@ -52,7 +52,7 @@ var Phase1Consumes = core.ConsumesCombo{ FirePowerBuff: proto.FirePowerBuff_ElixirOfGreaterFirepower, Flask: proto.Flask_FlaskOfTheTitans, Food: proto.Food_FoodBlessSunfruit, - MainHandImbue: proto.WeaponImbue_WindfuryWeapon, + MainHandImbue: proto.WeaponImbue_RockbiterWeapon, SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir, StrengthBuff: proto.StrengthBuff_JujuPower, },