From b097eeed3dae03bfcb4c201e4c69b6d45fd5b5e4 Mon Sep 17 00:00:00 2001 From: Kayla Glick Date: Sun, 17 Nov 2024 19:02:39 -0500 Subject: [PATCH 1/3] update druid sidereal wrath idol --- sim/druid/items.go | 1 + 1 file changed, 1 insertion(+) diff --git a/sim/druid/items.go b/sim/druid/items.go index f99cc09369..49f3c88230 100644 --- a/sim/druid/items.go +++ b/sim/druid/items.go @@ -257,6 +257,7 @@ func init() { [][]*DruidSpell{ druid.Wrath, druid.Moonfire, + {druid.Sunfire, druid.Starsurge, druid.StarfallSplash, druid.StarfallTick}, }, ), func(spell *DruidSpell) bool { return spell != nil }, From 609f12810f6c527e3af8736ba86d369ffc9b510b Mon Sep 17 00:00:00 2001 From: Kayla Glick Date: Sun, 17 Nov 2024 19:32:03 -0500 Subject: [PATCH 2/3] allow starfall and mind sear to inherit periodic damage modifiers --- sim/druid/starfall.go | 13 +++++++++++++ sim/priest/mind_sear.go | 7 +++++++ 2 files changed, 20 insertions(+) diff --git a/sim/druid/starfall.go b/sim/druid/starfall.go index f753e56c66..fa0283cb51 100644 --- a/sim/druid/starfall.go +++ b/sim/druid/starfall.go @@ -37,9 +37,14 @@ func (druid *Druid) registerStarfallCD() { BonusCoefficient: spellCoefSplash, ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { + // Apply the base spell's multipliers to pick up on effects that only affect spells with DoTs + spell.DamageMultiplierAdditive += druid.Starfall.PeriodicDamageMultiplierAdditive - 1 + for _, aoeTarget := range sim.Encounter.TargetUnits { spell.CalcAndDealDamage(sim, aoeTarget, baseDamageSplash, spell.OutcomeMagicHitAndCrit) } + + spell.DamageMultiplierAdditive -= druid.Starfall.PeriodicDamageMultiplierAdditive - 1 }, }) @@ -57,7 +62,12 @@ func (druid *Druid) registerStarfallCD() { ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { baseDamage := sim.Roll(baseDamageLow, baseDamageHigh) + + // Apply the base spell's multipliers to pick up on effects that only affect spells with DoTs + spell.DamageMultiplierAdditive += druid.Starfall.PeriodicDamageMultiplierAdditive - 1 spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeMagicHitAndCrit) + spell.DamageMultiplierAdditive -= druid.Starfall.PeriodicDamageMultiplierAdditive - 1 + druid.StarfallSplash.Cast(sim, target) }, }) @@ -94,6 +104,9 @@ func (druid *Druid) registerStarfallCD() { }, }, + DamageMultiplier: 1, + ThreatMultiplier: 1, + ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { spell.Dot(target).Apply(sim) }, diff --git a/sim/priest/mind_sear.go b/sim/priest/mind_sear.go index 2635672b58..2f34ff3883 100644 --- a/sim/priest/mind_sear.go +++ b/sim/priest/mind_sear.go @@ -68,6 +68,9 @@ func (priest *Priest) newMindSearSpellConfig(tickIdx int32) core.SpellConfig { }, }, + DamageMultiplier: 1, + ThreatMultiplier: 1, + ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { result := spell.CalcOutcome(sim, target, spell.OutcomeMagicHit) priest.MindSearTicks[tickIdx].SpellMetrics[target.UnitIndex].Casts += 1 @@ -99,7 +102,11 @@ func (priest *Priest) newMindSearTickSpell(numTicks int32) *core.Spell { ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { damage := sim.Roll(baseDamageLow, baseDamageHigh) + + // Apply the base spell's multipliers to pick up on effects that only affect spells with DoTs + spell.DamageMultiplierAdditive += priest.MindSear[numTicks].PeriodicDamageMultiplierAdditive - 1 result := spell.CalcAndDealDamage(sim, target, damage, spell.OutcomeMagicHitAndCrit) + spell.DamageMultiplierAdditive -= priest.MindSear[numTicks].PeriodicDamageMultiplierAdditive - 1 if result.Landed() { priest.AddShadowWeavingStack(sim, target) From 3b198d6b4795fd2a49a37d86438b2574250403c0 Mon Sep 17 00:00:00 2001 From: Kayla Glick Date: Sun, 17 Nov 2024 19:39:03 -0500 Subject: [PATCH 3/3] add eye of moam --- sim/common/vanilla/item_effects.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sim/common/vanilla/item_effects.go b/sim/common/vanilla/item_effects.go index 2478ee6db4..6d0cf6f65b 100644 --- a/sim/common/vanilla/item_effects.go +++ b/sim/common/vanilla/item_effects.go @@ -135,6 +135,7 @@ const ( NeretzekBloodDrinker = 233647 Speedstone = 233990 ManslayerOfTheQiraji = 234067 + EyeOfMoam = 234080 // 21473 DarkmoonCardHeroism = 234176 // 19287 DarkmoonCardBlueDragon = 234177 // 19288 DarkmoonCardMaelstrom = 234178 // 19289 @@ -2372,7 +2373,6 @@ func init() { // https://www.wowhead.com/classic/item=234462/earthstrike // Use: Increases your melee and ranged attack power by 328. Effect lasts for 20 sec. (2 Min Cooldown) - core.NewSimpleStatOffensiveTrinketEffect(Earthstrike, stats.Stats{stats.AttackPower: 328, stats.RangedAttackPower: 328}, time.Second*20, time.Second*120) // https://www.wowhead.com/classic/item=228293/essence-of-the-pure-flame @@ -2406,6 +2406,10 @@ func init() { }) }) + // https://www.wowhead.com/classic/item=234080/eye-of-moam + // Use: Increases damage done by magical spells and effects by up to 150, and decreases the magical resistances of your spell targets by 100 for 30 sec. (3 Min Cooldown) + core.NewSimpleStatOffensiveTrinketEffect(EyeOfMoam, stats.Stats{stats.SpellDamage: 150, stats.SpellPenetration: 100}, time.Second*30, time.Minute*3) + // https://www.wowhead.com/classic/item=227990/hand-of-injustice // Equip: 2% chance on ranged hit to gain 1 extra attack. (Proc chance: 2%, 2s cooldown) core.NewItemEffect(HandOfInjustice, func(agent core.Agent) {