From 61c89cfc1e496ebaf672e4a6657d85a1c48df7c5 Mon Sep 17 00:00:00 2001 From: Joosy Date: Fri, 2 May 2025 18:54:45 -0500 Subject: [PATCH 1/4] initial ravagane fixes --- sim/common/sod/item_effects/phase_8.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/sim/common/sod/item_effects/phase_8.go b/sim/common/sod/item_effects/phase_8.go index 7ed6e78dba..a9f4443e99 100644 --- a/sim/common/sod/item_effects/phase_8.go +++ b/sim/common/sod/item_effects/phase_8.go @@ -754,7 +754,7 @@ func init() { SpellSchool: core.SpellSchoolPhysical, DefenseType: core.DefenseTypeMelee, ProcMask: core.ProcMaskMeleeMHSpecial, - Flags: core.SpellFlagNoOnCastComplete | core.SpellFlagPassiveSpell, + Flags: core.SpellFlagNoOnCastComplete | core.SpellFlagPassiveSpell | core.SpellFlagSuppressEquipProcs, DamageMultiplier: 1, ThreatMultiplier: 1, @@ -772,13 +772,12 @@ func init() { ActionID: core.ActionID{SpellID: 1231547}, SpellSchool: core.SpellSchoolPhysical, ProcMask: core.ProcMaskMeleeMHSpecial, - Flags: core.SpellFlagChanneled, Dot: core.DotConfig{ Aura: core.Aura{ Label: "Ravagane Whirlwind", }, - NumberOfTicks: 3, - TickLength: time.Second * 3, + NumberOfTicks: 6, + TickLength: time.Millisecond * 1500, IsAOE: true, OnTick: func(sim *core.Simulation, target *core.Unit, dot *core.Dot) { tickSpell.Cast(sim, target) @@ -795,7 +794,6 @@ func init() { }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { character.AutoAttacks.EnableAutoSwing(sim) - channelSpell.AOEDot().Cancel(sim) }, }) }) From f5f370cfac919434f0de869d7e977133587dad3f Mon Sep 17 00:00:00 2001 From: Joosy Date: Fri, 2 May 2025 19:40:26 -0500 Subject: [PATCH 2/4] need cancel aoe to prevent applying aoe dot on refresh --- sim/common/sod/item_effects/phase_8.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/sim/common/sod/item_effects/phase_8.go b/sim/common/sod/item_effects/phase_8.go index a9f4443e99..5749455fc1 100644 --- a/sim/common/sod/item_effects/phase_8.go +++ b/sim/common/sod/item_effects/phase_8.go @@ -768,7 +768,7 @@ func init() { }, }) - channelSpell := character.RegisterSpell(core.SpellConfig{ + whirlwindSpell := character.RegisterSpell(core.SpellConfig{ ActionID: core.ActionID{SpellID: 1231547}, SpellSchool: core.SpellSchoolPhysical, ProcMask: core.ProcMaskMeleeMHSpecial, @@ -788,12 +788,17 @@ func init() { return character.RegisterAura(core.Aura{ Label: "Ravagane Bladestorm", Duration: time.Second * 9, + Icd: &core.Cooldown{ + Timer: character.NewTimer(), + Duration: time.Second * 8, + }, OnGain: func(aura *core.Aura, sim *core.Simulation) { character.AutoAttacks.CancelAutoSwing(sim) - channelSpell.AOEDot().Apply(sim) + whirlwindSpell.AOEDot().Apply(sim) }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { character.AutoAttacks.EnableAutoSwing(sim) + whirlwindSpell.AOEDot().Cancel(sim) }, }) }) From ff2ad9b3b26eb987df1abf01a28408a5a25125cd Mon Sep 17 00:00:00 2001 From: Joosy Date: Fri, 2 May 2025 20:50:54 -0500 Subject: [PATCH 3/4] fixed icd, proc flags --- sim/common/sod/item_effects/phase_8.go | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/sim/common/sod/item_effects/phase_8.go b/sim/common/sod/item_effects/phase_8.go index 5749455fc1..6314528758 100644 --- a/sim/common/sod/item_effects/phase_8.go +++ b/sim/common/sod/item_effects/phase_8.go @@ -754,7 +754,7 @@ func init() { SpellSchool: core.SpellSchoolPhysical, DefenseType: core.DefenseTypeMelee, ProcMask: core.ProcMaskMeleeMHSpecial, - Flags: core.SpellFlagNoOnCastComplete | core.SpellFlagPassiveSpell | core.SpellFlagSuppressEquipProcs, + Flags: core.SpellFlagNoOnCastComplete | core.SpellFlagPassiveSpell, DamageMultiplier: 1, ThreatMultiplier: 1, @@ -793,6 +793,21 @@ func init() { Duration: time.Second * 8, }, OnGain: func(aura *core.Aura, sim *core.Simulation) { + if !aura.Icd.IsReady(sim) { + return + } + aura.Icd.Use(sim) + + character.AutoAttacks.CancelAutoSwing(sim) + whirlwindSpell.AOEDot().Apply(sim) + }, + OnRefresh: func(aura *core.Aura, sim *core.Simulation) { + if !aura.Icd.IsReady(sim) { + return + } + aura.Icd.Use(sim) + + whirlwindSpell.AOEDot().Cancel(sim) character.AutoAttacks.CancelAutoSwing(sim) whirlwindSpell.AOEDot().Apply(sim) }, From 33199c87e0de451751429f3557e44dd278ac2481 Mon Sep 17 00:00:00 2001 From: Joosy Date: Sat, 3 May 2025 16:11:13 -0500 Subject: [PATCH 4/4] fixed applyorreset --- sim/common/sod/item_effects/phase_8.go | 7 +++---- sim/core/dot.go | 7 +++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/sim/common/sod/item_effects/phase_8.go b/sim/common/sod/item_effects/phase_8.go index 6314528758..7c51e302ea 100644 --- a/sim/common/sod/item_effects/phase_8.go +++ b/sim/common/sod/item_effects/phase_8.go @@ -798,8 +798,8 @@ func init() { } aura.Icd.Use(sim) - character.AutoAttacks.CancelAutoSwing(sim) whirlwindSpell.AOEDot().Apply(sim) + character.AutoAttacks.CancelAutoSwing(sim) }, OnRefresh: func(aura *core.Aura, sim *core.Simulation) { if !aura.Icd.IsReady(sim) { @@ -807,13 +807,12 @@ func init() { } aura.Icd.Use(sim) - whirlwindSpell.AOEDot().Cancel(sim) + whirlwindSpell.AOEDot().ApplyOrReset(sim) character.AutoAttacks.CancelAutoSwing(sim) - whirlwindSpell.AOEDot().Apply(sim) }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { - character.AutoAttacks.EnableAutoSwing(sim) whirlwindSpell.AOEDot().Cancel(sim) + character.AutoAttacks.EnableAutoSwing(sim) }, }) }) diff --git a/sim/core/dot.go b/sim/core/dot.go index c18d79a4e8..e0704e28ad 100644 --- a/sim/core/dot.go +++ b/sim/core/dot.go @@ -160,8 +160,11 @@ func (dot *Dot) ApplyOrReset(sim *Simulation) { dot.TickCount = 0 oldTickAction := dot.tickAction - dot.tickAction = nil // prevent tickAction.CleanUp() from adding an extra tick - oldTickAction.Cancel(sim) // remove old PA ticker + dot.tickAction = nil // prevent tickAction.CleanUp() from adding an extra tick + + if oldTickAction != nil { + oldTickAction.Cancel(sim) + } // recreate with new period, resetting the next tick. periodicOptions := dot.basePeriodicOptions()