diff --git a/sim/rogue/item_sets_phase_8.go b/sim/rogue/item_sets_phase_8.go index 8668cefbc7..9950018a80 100644 --- a/sim/rogue/item_sets_phase_8.go +++ b/sim/rogue/item_sets_phase_8.go @@ -137,13 +137,14 @@ func (rogue *Rogue) applyScarletEnclaveTank2PBonus() { if rogue.HasAura(label) { return } + rogue.rollingWithThePunchesDamageMultiplier += 0.01 rogue.RegisterAura(core.Aura{ Label: label, OnInit: func(aura *core.Aura, sim *core.Simulation) { rogue.RollingWithThePunchesProcAura.ApplyOnStacksChange(func(aura *core.Aura, sim *core.Simulation, oldStacks int32, newStacks int32) { - rogue.PseudoStats.DamageDealtMultiplier /= 1 + 0.01*float64(oldStacks) - rogue.PseudoStats.DamageDealtMultiplier *= 1 + 0.01*float64(newStacks) + rogue.PseudoStats.DamageDealtMultiplier /= 1 + rogue.rollingWithThePunchesDamageMultiplier*float64(oldStacks) + rogue.PseudoStats.DamageDealtMultiplier *= 1 + rogue.rollingWithThePunchesDamageMultiplier*float64(newStacks) }) }, }) @@ -177,7 +178,7 @@ func (rogue *Rogue) applyScarletEnclaveTank4PBonus() { })) } -// Your Rolling with the Punches can now stack up to 10 times, but grants 2% less health per stack. At 10 stacks, each time you Dodge you will gain 15 Energy. +// Your Rolling with the Punches now grants 2% more health and 1% more damage per stack. At 5 stacks, each time you Dodge or Parry you will gain 10 Energy. func (rogue *Rogue) applyScarletEnclaveTank6PBonus() { if !rogue.HasRune(proto.RogueRune_RuneRollingWithThePunches) { @@ -190,8 +191,8 @@ func (rogue *Rogue) applyScarletEnclaveTank6PBonus() { return } - rogue.rollingWithThePunchesBonusHealthStackMultiplier -= 0.02 - rogue.rollingWithThePunchesMaxStacks += 5 + rogue.rollingWithThePunchesBonusHealthStackMultiplier += 0.02 + rogue.rollingWithThePunchesDamageMultiplier += 0.01 metrics := rogue.NewEnergyMetrics(core.ActionID{SpellID: 1226957}) @@ -218,9 +219,9 @@ func (rogue *Rogue) applyScarletEnclaveTank6PBonus() { Label: label, OnInit: func(aura *core.Aura, sim *core.Simulation) { rogue.RollingWithThePunchesProcAura.ApplyOnStacksChange(func(aura *core.Aura, sim *core.Simulation, oldStacks int32, newStacks int32) { - if newStacks == 10 { + if newStacks == 5 { energyAura.Activate(sim) - } else if newStacks < 10 && oldStacks == 10 { + } else if oldStacks == 5 { energyAura.Deactivate(sim) } }) diff --git a/sim/rogue/main_gauche.go b/sim/rogue/main_gauche.go index c1bfc417f8..fd07a830fb 100644 --- a/sim/rogue/main_gauche.go +++ b/sim/rogue/main_gauche.go @@ -18,7 +18,7 @@ func (rogue *Rogue) registerMainGaucheSpell() { mainGaucheAura := rogue.RegisterAura(core.Aura{ Label: "Main Gauche Buff", ActionID: core.ActionID{SpellID: int32(proto.RogueRune_RuneMainGauche)}, - Duration: time.Second * 10, + Duration: time.Second * 5, OnSpellHitTaken: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if spell.ProcMask.Matches(core.ProcMaskMelee|core.ProcMaskRanged) && result.DidParry() { aura.Deactivate(sim) @@ -29,7 +29,7 @@ func (rogue *Rogue) registerMainGaucheSpell() { mainGaucheSSAura := rogue.RegisterAura(core.Aura{ Label: "Main Gauche Sinister Strike Discount", ActionID: core.ActionID{SpellID: 462752}, - Duration: time.Second * 30, + Duration: time.Second * 20, OnGain: func(aura *core.Aura, sim *core.Simulation) { rogue.SinisterStrike.Cost.FlatModifier -= 20 rogue.SinisterStrike.ThreatMultiplier *= 1.5 @@ -66,6 +66,12 @@ func (rogue *Rogue) registerMainGaucheSpell() { rogue.QuickDraw.ApplyMultiplicativeDamageBonus(1 / 1.5) } }, + OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, spellResult *core.SpellResult) { + if spell.ProcMask.Matches(rogue.SinisterStrike.ProcMask) && spellResult.Landed() { + rogue.RollingWithThePunchesProcAura.Activate(sim) + rogue.RollingWithThePunchesProcAura.AddStack(sim) + } + }, }) rogue.MainGauche = rogue.RegisterSpell(core.SpellConfig{ diff --git a/sim/rogue/rogue.go b/sim/rogue/rogue.go index ff13672399..40f78f5995 100644 --- a/sim/rogue/rogue.go +++ b/sim/rogue/rogue.go @@ -136,6 +136,7 @@ type Rogue struct { cutthroatBonusChance float64 rollingWithThePunchesBonusHealthStackMultiplier float64 rollingWithThePunchesMaxStacks int + rollingWithThePunchesDamageMultiplier float64 bladeFlurryAttackSpeedBonus float64 bladeFlurryTargetCount int32 diff --git a/sim/rogue/runes.go b/sim/rogue/runes.go index 192eb713f7..f78298d49a 100644 --- a/sim/rogue/runes.go +++ b/sim/rogue/runes.go @@ -361,7 +361,7 @@ func (rogue *Rogue) applyRollingWithThePunches() { return } - rogue.rollingWithThePunchesBonusHealthStackMultiplier += 0.06 + rogue.rollingWithThePunchesBonusHealthStackMultiplier += 0.05 rogue.rollingWithThePunchesMaxStacks += 5 statDeps := make([]*stats.StatDependency, rogue.rollingWithThePunchesMaxStacks+1) // amount of possible stacks + zero condition for i := 1; i < rogue.rollingWithThePunchesMaxStacks+1; i++ {