diff --git a/sim/druid/balance/TestBalance.results b/sim/druid/balance/TestBalance.results index 0c3037076a..c91b8ab9be 100644 --- a/sim/druid/balance/TestBalance.results +++ b/sim/druid/balance/TestBalance.results @@ -297,8 +297,8 @@ dps_results: { dps_results: { key: "TestBalance-AllItems-IdoloftheUnseenMoon-33510" value: { - dps: 7238.99389 - tps: 7084.28042 + dps: 7279.22564 + tps: 7127.03315 } } dps_results: { diff --git a/sim/shaman/talents.go b/sim/shaman/talents.go index 0deab8b7d0..3226ae8cbf 100644 --- a/sim/shaman/talents.go +++ b/sim/shaman/talents.go @@ -80,11 +80,26 @@ func (shaman *Shaman) applyElementalFocus() { return } + oathBonus := 1 + (0.05 * float64(shaman.Talents.ElementalOath)) shaman.ClearcastingAura = shaman.RegisterAura(core.Aura{ Label: "Clearcasting", ActionID: core.ActionID{SpellID: 16246}, Duration: time.Second * 15, MaxStacks: 2, + OnGain: func(aura *core.Aura, sim *core.Simulation) { + if oathBonus > 1 { + shaman.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexNature] *= oathBonus + shaman.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexFire] *= oathBonus + shaman.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexFrost] *= oathBonus + } + }, + OnExpire: func(aura *core.Aura, sim *core.Simulation) { + if oathBonus > 1 { + shaman.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexNature] /= oathBonus + shaman.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexFire] /= oathBonus + shaman.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexFrost] /= oathBonus + } + }, OnCastComplete: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell) { if !spell.Flags.Matches(SpellFlagShock | SpellFlagFocusable) { return