diff --git a/sim/common/wotlk/capacitors.go b/sim/common/wotlk/capacitors.go index dc462210ec..d8c45c5b72 100644 --- a/sim/common/wotlk/capacitors.go +++ b/sim/common/wotlk/capacitors.go @@ -87,7 +87,7 @@ func init() { MaxStacks: 4, Trigger: core.ProcTrigger{ Callback: core.CallbackOnSpellHitDealt, - ProcMask: core.ProcMaskSpellDamage, + ProcMask: core.ProcMaskSpellDamage | core.ProcMaskCanProcFromProc, Outcome: core.OutcomeCrit, ICD: time.Millisecond * 2500, ActionID: core.ActionID{ItemID: 38072}, @@ -102,7 +102,7 @@ func init() { MaxStacks: 3, Trigger: core.ProcTrigger{ Callback: core.CallbackOnSpellHitDealt, - ProcMask: core.ProcMaskSpellDamage, + ProcMask: core.ProcMaskSpellDamage | core.ProcMaskCanProcFromProc, Outcome: core.OutcomeCrit, ICD: time.Millisecond * 2000, ActionID: core.ActionID{ItemID: 47182}, @@ -117,7 +117,7 @@ func init() { MaxStacks: 3, Trigger: core.ProcTrigger{ Callback: core.CallbackOnSpellHitDealt, - ProcMask: core.ProcMaskSpellDamage, + ProcMask: core.ProcMaskSpellDamage | core.ProcMaskCanProcFromProc, Outcome: core.OutcomeCrit, ICD: time.Millisecond * 2000, ActionID: core.ActionID{ItemID: 47188}, @@ -135,7 +135,7 @@ func init() { MaxStacks: 3, Trigger: core.ProcTrigger{ Callback: core.CallbackOnSpellHitDealt, - ProcMask: core.ProcMaskSpellDamage, + ProcMask: core.ProcMaskSpellDamage | core.ProcMaskCanProcFromProc, Outcome: core.OutcomeCrit, ICD: time.Millisecond * 2000, ActionID: core.ActionID{ItemID: 47316}, @@ -150,7 +150,7 @@ func init() { MaxStacks: 3, Trigger: core.ProcTrigger{ Callback: core.CallbackOnSpellHitDealt, - ProcMask: core.ProcMaskSpellDamage, + ProcMask: core.ProcMaskSpellDamage | core.ProcMaskCanProcFromProc, Outcome: core.OutcomeCrit, ICD: time.Millisecond * 2000, ActionID: core.ActionID{ItemID: 47477}, diff --git a/sim/core/debuffs.go b/sim/core/debuffs.go index 5381cf72d1..93c31eaa55 100644 --- a/sim/core/debuffs.go +++ b/sim/core/debuffs.go @@ -223,7 +223,7 @@ func JudgementOfWisdomAura(target *Unit) *Aura { return } - if spell.ProcMask.Matches(ProcMaskEmpty) { + if spell.ProcMask.Matches(ProcMaskEmpty) || spell.ProcMask.Matches(ProcMaskCanProcFromProc) { return // Phantom spells (Romulo's, Lightning Capacitor, etc) don't proc JoW. } diff --git a/sim/core/flags.go b/sim/core/flags.go index 8749c4c2ba..b733bf1ee6 100644 --- a/sim/core/flags.go +++ b/sim/core/flags.go @@ -56,6 +56,9 @@ const ( ProcMaskRangedSpecial ProcMaskSpellDamage ProcMaskSpellHealing + + // Special case where a Proc Can trigger a Proc + ProcMaskCanProcFromProc ) const ( diff --git a/sim/shaman/enhancement/TestEnhancement.results b/sim/shaman/enhancement/TestEnhancement.results index 68ebc5c9ed..954efc4f48 100644 --- a/sim/shaman/enhancement/TestEnhancement.results +++ b/sim/shaman/enhancement/TestEnhancement.results @@ -511,8 +511,8 @@ dps_results: { dps_results: { key: "TestEnhancement-AllItems-InsightfulEarthsiegeDiamond" value: { - dps: 7096.6981 - tps: 4019.59834 + dps: 7095.07269 + tps: 4015.89689 } } dps_results: { @@ -603,15 +603,15 @@ dps_results: { dps_results: { key: "TestEnhancement-AllItems-ReignoftheDead-47316" value: { - dps: 7310.44865 - tps: 4173.41128 + dps: 7439.3566 + tps: 4264.42042 } } dps_results: { key: "TestEnhancement-AllItems-ReignoftheDead-47477" value: { - dps: 7340.91522 - tps: 4193.66483 + dps: 7489.77367 + tps: 4298.63581 } } dps_results: { @@ -729,8 +729,8 @@ dps_results: { dps_results: { key: "TestEnhancement-AllItems-SparkofLife-37657" value: { - dps: 7141.10933 - tps: 4039.55922 + dps: 7140.99674 + tps: 4039.70467 } } dps_results: { diff --git a/sim/shaman/weapon_imbues.go b/sim/shaman/weapon_imbues.go index 4375730e3d..1983926c60 100644 --- a/sim/shaman/weapon_imbues.go +++ b/sim/shaman/weapon_imbues.go @@ -134,7 +134,8 @@ func (shaman *Shaman) newFlametongueImbueSpell(isMH bool) *core.Spell { return shaman.RegisterSpell(core.SpellConfig{ ActionID: core.ActionID{SpellID: 58790}, SpellSchool: core.SpellSchoolFire, - ProcMask: core.ProcMaskEmpty, + ProcMask: core.ProcMaskCanProcFromProc, + Flags: core.SpellFlagNoOnCastComplete, BonusHitRating: float64(shaman.Talents.ElementalPrecision) * core.SpellHitRatingPerHitChance, DamageMultiplier: 1, @@ -231,7 +232,8 @@ func (shaman *Shaman) newFlametongueDownrankImbueSpell(isMH bool) *core.Spell { return shaman.RegisterSpell(core.SpellConfig{ ActionID: core.ActionID{SpellID: 58789}, SpellSchool: core.SpellSchoolFire, - ProcMask: core.ProcMaskEmpty, + ProcMask: core.ProcMaskCanProcFromProc, + Flags: core.SpellFlagNoOnCastComplete, BonusHitRating: float64(shaman.Talents.ElementalPrecision) * core.SpellHitRatingPerHitChance, DamageMultiplier: 1,