diff --git a/sim/core/aura.go b/sim/core/aura.go index 84ae1d11a0..2fc7f54455 100644 --- a/sim/core/aura.go +++ b/sim/core/aura.go @@ -120,6 +120,9 @@ type Aura struct { metrics AuraMetrics initialized bool + + // P8 Sebacious Poison fix + IsEnabledInSettings bool } func (aura *Aura) init(sim *Simulation) { @@ -439,6 +442,13 @@ func (aura *Aura) ApplyOnPeriodicDamageDealt(newOnPeriodicDamageDealt OnPeriodic return aura } +// TODO: working on fixing p8 bonus applying to Sebacious in Settings>Debuffs +func (aura *Aura) ApplyIsEnabledInSettings() *Aura { + aura.IsEnabledInSettings = true + + return aura +} + type AuraFactory func(*Simulation) *Aura // Callback for doing something on reset. diff --git a/sim/core/debuffs.go b/sim/core/debuffs.go index f04dcdf49d..6c396df79c 100644 --- a/sim/core/debuffs.go +++ b/sim/core/debuffs.go @@ -178,6 +178,7 @@ func applyDebuffEffects(target *Unit, targetIdx int, debuffs *proto.Debuffs, lev if debuffs.SebaciousPoison != proto.TristateEffect_TristateEffectMissing { aura := SebaciousPoisonAura(target, TernaryInt32(debuffs.SebaciousPoison == proto.TristateEffect_TristateEffectRegular, 0, 2), level) + aura.ApplyIsEnabledInSettings() SchedulePeriodicDebuffApplication(aura, PeriodicActionOptions{ Period: time.Second * 0, NumTicks: 1, diff --git a/sim/rogue/item_sets_phase_8.go b/sim/rogue/item_sets_phase_8.go index 9950018a80..33f88de1a2 100644 --- a/sim/rogue/item_sets_phase_8.go +++ b/sim/rogue/item_sets_phase_8.go @@ -1,6 +1,7 @@ package rogue import ( + "fmt" "time" "github.com/wowsims/sod/sim/core" @@ -54,6 +55,7 @@ func (rogue *Rogue) applyScarletEnclaveDamage2PBonus() { Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { totalBleedsAndPoisons := rogue.PoisonsActive[rogue.CurrentTarget.UnitIndex] + rogue.BleedsActive[rogue.CurrentTarget.UnitIndex] + fmt.Println("Stack Count: ", totalBleedsAndPoisons) // Only apply the damage mod up to 3 times for the 60% bonus maximum damageMod.UpdateFloatValue(1 + 0.20*float64(min(3, totalBleedsAndPoisons))) damageMod.Activate() diff --git a/sim/rogue/poisons.go b/sim/rogue/poisons.go index 626bd4c9f2..210d8094e4 100644 --- a/sim/rogue/poisons.go +++ b/sim/rogue/poisons.go @@ -1,6 +1,7 @@ package rogue import ( + "fmt" "strconv" "time" @@ -69,11 +70,14 @@ func (rogue *Rogue) improvedPoisonsBonusProcChance() float64 { // p8 DPS tier bonus helper function func trackTotalUniquePoisons(aura *core.Aura, rogue *Rogue) { - aura.ApplyOnGain(func(aura *core.Aura, sim *core.Simulation) { - rogue.PoisonsActive[aura.Unit.UnitIndex]++ - }).ApplyOnExpire(func(aura *core.Aura, sim *core.Simulation) { - rogue.PoisonsActive[aura.Unit.UnitIndex]-- - }) + fmt.Println("AuraIsFromSettings: ", aura.IsEnabledInSettings) + if !aura.IsEnabledInSettings { + aura.ApplyOnGain(func(aura *core.Aura, sim *core.Simulation) { + rogue.PoisonsActive[aura.Unit.UnitIndex]++ + }).ApplyOnExpire(func(aura *core.Aura, sim *core.Simulation) { + rogue.PoisonsActive[aura.Unit.UnitIndex]-- + }) + } } ///////////////////////////////////////////////////////////////////////////