Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 10 additions & 9 deletions sim/common/mop/trinkets_phase_3_52.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,15 +144,16 @@ func init() {
statValue := core.GetItemEffectScalingStatValue(itemID, 0.44999998808, state)

statBuffAura, aura := character.NewTemporaryStatBuffWithStacks(core.TemporaryStatBuffWithStacksConfig{
AuraLabel: fmt.Sprintf("Wushoolay's Lightning (%s)", versionLabel),
ActionID: core.ActionID{SpellID: 138790},
Duration: time.Second * 10,
MaxStacks: 10,
TimePerStack: time.Second * 1,
BonusPerStack: stats.Stats{stats.Intellect: statValue},
StackingAuraActionID: core.ActionID{SpellID: 138786},
StackingAuraLabel: fmt.Sprintf("Item - Proc Stacking Intellect (%s)", versionLabel),
TickImmediately: true,
AuraLabel: fmt.Sprintf("Wushoolay's Lightning (%s)", versionLabel),
ActionID: core.ActionID{SpellID: 138790},
Duration: time.Second * 10,
MaxStacks: 10,
TimePerStack: time.Second * 1,
BonusPerStack: stats.Stats{stats.Intellect: statValue},
StackingAuraActionID: core.ActionID{SpellID: 138786},
StackingAuraLabel: fmt.Sprintf("Item - Proc Stacking Intellect (%s)", versionLabel),
TickImmediately: true,
BuggedAlterTimeRestore: true,
})

triggerAura := character.MakeProcTriggerAura(core.ProcTrigger{
Expand Down
8 changes: 6 additions & 2 deletions sim/core/aura_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,10 @@ type TemporaryStatBuffWithStacksConfig struct {
Duration time.Duration
TickImmediately bool
DecrementStacks bool // Set to true if the aura should start at MaxStacks and decrement by 1 each tick
// BuggedAlterTimeRestore mirrors a live-game bug where, if the aura expired during Alter Time,
// it is restored for exactly one tick period then removed entirely instead of resuming normally.
// Only enable this for trinkets where the bug has been confirmed in game (e.g. Wushoolay's Final Choice).
BuggedAlterTimeRestore bool
}

func (character *Character) NewTemporaryStatBuffWithStacks(config TemporaryStatBuffWithStacksConfig) (*StatBuffAura, *Aura) {
Expand Down Expand Up @@ -380,10 +384,10 @@ func (character *Character) NewTemporaryStatBuffWithStacks(config TemporaryStatB
}
},
OnRestore: func(aura *Aura, sim *Simulation, state AuraState, wasActive bool) {
// BUGGED BEHAVIOR (matches live game as of phase 3):
// BUGGED BEHAVIOR (matches live game for specific trinkets, e.g. Wushoolay's Final Choice):
// If the aura expired during Alter Time (wasActive == false), the restore is broken.
// The stacks are restored for exactly 1 tick duration, then the buff is removed entirely.
if !wasActive {
if config.BuggedAlterTimeRestore && !wasActive {
// Schedule removal after one tick period
StartPeriodicAction(sim, PeriodicActionOptions{
Period: config.TimePerStack,
Expand Down
4 changes: 2 additions & 2 deletions sim/mage/arcane/TestArcane.results
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,8 @@ dps_results: {
dps_results: {
key: "TestArcane-AllItems-BlackBloodofY'Shaarj-105648"
value: {
dps: 280467.15009
tps: 268887.58167
dps: 282499.50753
tps: 270496.55259
}
}
dps_results: {
Expand Down
4 changes: 2 additions & 2 deletions sim/mage/fire/TestFire.results
Original file line number Diff line number Diff line change
Expand Up @@ -89,8 +89,8 @@ dps_results: {
dps_results: {
key: "TestFire-AllItems-BlackBloodofY'Shaarj-105648"
value: {
dps: 154542.63691
tps: 150017.03765
dps: 155509.59505
tps: 150849.83417
}
}
dps_results: {
Expand Down
Loading
Loading