From 7f996a264dfd292bcb00a428025b540480826daf Mon Sep 17 00:00:00 2001 From: FelixPflaum <141590183+FelixPflaum@users.noreply.github.com> Date: Thu, 21 Nov 2024 03:26:18 +0100 Subject: [PATCH 1/5] Reset WL pet mana pooling state --- sim/warlock/dps/TestAffliction.results | 12 ++++++------ sim/warlock/pet.go | 1 + sim/warlock/tank/TestDestruction.results | 6 +++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/sim/warlock/dps/TestAffliction.results b/sim/warlock/dps/TestAffliction.results index c105652495..d84d6b5193 100644 --- a/sim/warlock/dps/TestAffliction.results +++ b/sim/warlock/dps/TestAffliction.results @@ -447,9 +447,9 @@ dps_results: { dps_results: { key: "TestAffliction-Phase4-Lvl60-AllItems-DeathmistRaiment" value: { - dps: 645.14768 - tps: 452.49557 - hps: 270.79764 + dps: 645.14697 + tps: 452.52221 + hps: 270.81193 } } dps_results: { @@ -471,9 +471,9 @@ dps_results: { dps_results: { key: "TestAffliction-Phase4-Lvl60-AllItems-IronweaveBattlesuit" value: { - dps: 628.53701 - tps: 445.18315 - hps: 271.7413 + dps: 628.53517 + tps: 445.17115 + hps: 271.72929 } } dps_results: { diff --git a/sim/warlock/pet.go b/sim/warlock/pet.go index 6cf378074a..2423178857 100644 --- a/sim/warlock/pet.go +++ b/sim/warlock/pet.go @@ -145,6 +145,7 @@ func (wp *WarlockPet) Initialize() { } func (wp *WarlockPet) Reset(_ *core.Simulation) { + wp.manaPooling = false } func (wp *WarlockPet) ExecuteCustomRotation(sim *core.Simulation) { diff --git a/sim/warlock/tank/TestDestruction.results b/sim/warlock/tank/TestDestruction.results index 31b25b4578..677874fd7e 100644 --- a/sim/warlock/tank/TestDestruction.results +++ b/sim/warlock/tank/TestDestruction.results @@ -519,9 +519,9 @@ dps_results: { dps_results: { key: "TestDestruction-Phase3-Lvl50-AllItems-DeathmistRaiment" value: { - dps: 321.19075 - tps: 199.75076 - hps: 161.55267 + dps: 321.21283 + tps: 199.73444 + hps: 161.53984 } } dps_results: { From 717adda0356754dd03748f45f80633a1d326647d Mon Sep 17 00:00:00 2001 From: Saeyon Date: Fri, 22 Nov 2024 22:11:08 -0800 Subject: [PATCH 2/5] 2pc dps rogue bugfix --- sim/rogue/items_sets_pve.go | 119 ++++++++++++++++++------------------ 1 file changed, 59 insertions(+), 60 deletions(-) diff --git a/sim/rogue/items_sets_pve.go b/sim/rogue/items_sets_pve.go index a9a090823f..7e925fce82 100644 --- a/sim/rogue/items_sets_pve.go +++ b/sim/rogue/items_sets_pve.go @@ -415,17 +415,16 @@ var ItemSetDeathdealersThrill = core.NewItemSet(core.ItemSet{ // Increases Saber Slash damage by 20% 2: func(agent core.Agent) { rogue := agent.(RogueAgent).GetRogue() - if !rogue.HasRune(proto.RogueRune_RuneSaberSlash) { - return - } rogue.RegisterAura(core.Aura{ Label: "S03 - Item - TAQ - Rogue - Damage 2P Bonus", OnInit: func(aura *core.Aura, sim *core.Simulation) { - rogue.SaberSlash.DamageMultiplier *= 1.20 - rogue.saberSlashTick.DamageMultiplier *= 1.20 + if rogue.HasRune(proto.RogueRune_RuneSaberSlash) { + rogue.SaberSlash.DamageMultiplier *= 1.20 + rogue.saberSlashTick.DamageMultiplier *= 1.20 + } rogue.SinisterStrike.DamageMultiplier *= 1.20 }, - }) + }) }, // Reduces the cooldown on Adrenaline Rush by 4 minutes. 4: func(agent core.Agent) { @@ -437,7 +436,7 @@ var ItemSetDeathdealersThrill = core.NewItemSet(core.ItemSet{ Label: "S03 - Item - TAQ - Rogue - Damage 4P Bonus", OnInit: func(aura *core.Aura, sim *core.Simulation) { rogue.AdrenalineRush.CD.Duration -= time.Second * 240 - }, + }, }) }, }, @@ -446,14 +445,14 @@ var ItemSetDeathdealersThrill = core.NewItemSet(core.ItemSet{ var ItemSetDeathdealersBattlearmor = core.NewItemSet(core.ItemSet{ Name: "Deathdealer's Battlearmor", Bonuses: map[int32]core.ApplyEffect{ - // Your Main Gauche now strikes 1 additional nearby target and also causes your Sinister Strike to strike 1 additional nearby target. + // Your Main Gauche now strikes 1 additional nearby target and also causes your Sinister Strike to strike 1 additional nearby target. // These additional strikes are not duplicated by Blade Flurry. 2: func(agent core.Agent) { rogue := agent.(RogueAgent).GetRogue() if !rogue.HasRune(proto.RogueRune_RuneMainGauche) { return } - + if rogue.Env.GetNumTargets() == 1 { return } @@ -465,15 +464,15 @@ var ItemSetDeathdealersBattlearmor = core.NewItemSet(core.ItemSet{ SpellSchool: core.SpellSchoolPhysical, ProcMask: core.ProcMaskEmpty, Flags: core.SpellFlagMeleeMetrics | core.SpellFlagNoOnCastComplete | core.SpellFlagPassiveSpell, - + DamageMultiplier: 1, ThreatMultiplier: 1, - + ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { spell.CalcAndDealDamage(sim, target, curDmg, spell.OutcomeAlwaysHit) }, - }) - + }) + cleaveAura := rogue.RegisterAura(core.Aura{ Label: "2P Cleave Buff", Duration: time.Second * 10, @@ -484,66 +483,66 @@ var ItemSetDeathdealersBattlearmor = core.NewItemSet(core.ItemSet{ cleaveHit.SpellMetrics[result.Target.UnitIndex].Casts-- } }, - }) + }) core.MakePermanent(rogue.RegisterAura(core.Aura{ - Label: "S03 - Item - TAQ - Rogue - Tank 2P Bonus", + Label: "S03 - Item - TAQ - Rogue - Tank 2P Bonus", OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { if result.Landed() && spell.SpellCode == SpellCode_RogueMainGauche { cleaveAura.Activate(sim) - curDmg = result.Damage / result.ResistanceMultiplier - cleaveHit.Cast(sim, rogue.Env.NextTargetUnit(result.Target)) - cleaveHit.SpellMetrics[result.Target.UnitIndex].Casts-- + curDmg = result.Damage / result.ResistanceMultiplier + cleaveHit.Cast(sim, rogue.Env.NextTargetUnit(result.Target)) + cleaveHit.SpellMetrics[result.Target.UnitIndex].Casts-- } }, })) }, - // While active, your Main Gauche also causes you to heal for 10% of all damage done by Sinister Strike. + // While active, your Main Gauche also causes you to heal for 10% of all damage done by Sinister Strike. // Any excess healing becomes a Blood Barrier, absorbing damage up to 20% of your maximum health. // Shield appear to not be fully implemented in SoD commenting out until fixed 4: func(agent core.Agent) { -// rogue := agent.(RogueAgent).GetRogue() -// if !rogue.HasRune(proto.RogueRune_RuneMainGauche) { -// return -// } -// shieldSpell := rogue.GetOrRegisterSpell(core.SpellConfig{ -// ActionID: core.ActionID{SpellID: 1213761}, -// SpellSchool: core.SpellSchoolPhysical, -// ProcMask: core.ProcMaskSpellHealing, -// Flags: core.SpellFlagNoOnCastComplete | core.SpellFlagPassiveSpell | core.SpellFlagHelpful, -// -// DamageMultiplier: 1, -// ThreatMultiplier: 1, -// -// Shield: core.ShieldConfig{ -// Aura: core.Aura{ -// Label: "Blood Barrier", -// Duration: time.Second * 15, -// }, -// }, -// }) -// -// activeAura := core.MakeProcTriggerAura(&rogue.Unit, core.ProcTrigger{ -// Name: "Main Gauche - Blood Barrier", -// ActionID: core.ActionID{SpellID: 1213762}, -// Callback: core.CallbackOnSpellHitDealt, -// Duration: time.Second * 15, -// Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { -// if result.Landed() && spell.SpellCode == SpellCode_RogueSinisterStrike{ -// shieldSpell.Shield(&rogue.Unit).Apply(sim, result.Damage*0.15) -// } -// }, -// }) -// -// core.MakePermanent(rogue.RegisterAura(core.Aura{ -// Label: "S03 - Item - TAQ - Rogue - Tank 4P Bonus", -// OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { -// if result.Landed() && spell.SpellCode == SpellCode_RogueMainGauche { -// activeAura.Activate(sim) -// } -// }, -// })) + // rogue := agent.(RogueAgent).GetRogue() + // if !rogue.HasRune(proto.RogueRune_RuneMainGauche) { + // return + // } + // shieldSpell := rogue.GetOrRegisterSpell(core.SpellConfig{ + // ActionID: core.ActionID{SpellID: 1213761}, + // SpellSchool: core.SpellSchoolPhysical, + // ProcMask: core.ProcMaskSpellHealing, + // Flags: core.SpellFlagNoOnCastComplete | core.SpellFlagPassiveSpell | core.SpellFlagHelpful, + // + // DamageMultiplier: 1, + // ThreatMultiplier: 1, + // + // Shield: core.ShieldConfig{ + // Aura: core.Aura{ + // Label: "Blood Barrier", + // Duration: time.Second * 15, + // }, + // }, + // }) + // + // activeAura := core.MakeProcTriggerAura(&rogue.Unit, core.ProcTrigger{ + // Name: "Main Gauche - Blood Barrier", + // ActionID: core.ActionID{SpellID: 1213762}, + // Callback: core.CallbackOnSpellHitDealt, + // Duration: time.Second * 15, + // Handler: func(sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { + // if result.Landed() && spell.SpellCode == SpellCode_RogueSinisterStrike{ + // shieldSpell.Shield(&rogue.Unit).Apply(sim, result.Damage*0.15) + // } + // }, + // }) + // + // core.MakePermanent(rogue.RegisterAura(core.Aura{ + // Label: "S03 - Item - TAQ - Rogue - Tank 4P Bonus", + // OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { + // if result.Landed() && spell.SpellCode == SpellCode_RogueMainGauche { + // activeAura.Activate(sim) + // } + // }, + // })) }, }, }) From 869c5224de02b411bd591ac9e9d09102626d5639 Mon Sep 17 00:00:00 2001 From: Saeyon Date: Fri, 22 Nov 2024 22:13:41 -0800 Subject: [PATCH 3/5] more damage mods --- sim/rogue/main_gauche.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/sim/rogue/main_gauche.go b/sim/rogue/main_gauche.go index 1e0ef5c6e6..f37db9f418 100644 --- a/sim/rogue/main_gauche.go +++ b/sim/rogue/main_gauche.go @@ -45,11 +45,13 @@ func (rogue *Rogue) registerMainGaucheSpell() { if hasPKRune { rogue.PoisonedKnife.Cost.FlatModifier -= 20 rogue.PoisonedKnife.ThreatMultiplier *= 2.0 + rogue.PoisonedKnife.DamageMultiplier *= 1.5 } if hasQDRune { rogue.QuickDraw.Cost.FlatModifier -= 20 rogue.QuickDraw.ThreatMultiplier *= 2.0 + rogue.QuickDraw.DamageMultiplier *= 1.5 } }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { @@ -61,11 +63,13 @@ func (rogue *Rogue) registerMainGaucheSpell() { if hasPKRune { rogue.PoisonedKnife.Cost.FlatModifier += 20 rogue.PoisonedKnife.ThreatMultiplier /= 2.0 + rogue.PoisonedKnife.DamageMultiplier /= 1.5 } if hasQDRune { rogue.QuickDraw.Cost.FlatModifier += 20 rogue.QuickDraw.ThreatMultiplier /= 2.0 + rogue.QuickDraw.DamageMultiplier /= 1.5 } }, }) @@ -104,7 +108,7 @@ func (rogue *Rogue) registerMainGaucheSpell() { baseDamage := spell.Unit.OHNormalizedWeaponDamage(sim, spell.MeleeAttackPower()) result := spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeMeleeSpecialHitAndCrit) - + // Auras gained regardless of landed hit. mainGaucheAura.Activate(sim) mainGaucheSSAura.Activate(sim) From 77a50a5e857d59da30a7843d291bc7ee0521d806 Mon Sep 17 00:00:00 2001 From: Saeyon Date: Sat, 23 Nov 2024 09:21:54 -0800 Subject: [PATCH 4/5] probably a better way to do this --- sim/common/sod/item_effects/phase_6.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sim/common/sod/item_effects/phase_6.go b/sim/common/sod/item_effects/phase_6.go index 3635f14565..a5dba1cf57 100644 --- a/sim/common/sod/item_effects/phase_6.go +++ b/sim/common/sod/item_effects/phase_6.go @@ -488,7 +488,7 @@ func TimewornStrikeAura(agent core.Agent) { }, }) - if !character.HasRangedWeapon() { + if character.Class != proto.Class_ClassHunter { return } From 56ef06ab3251379cbe3f2dc6594f8b30c97528ba Mon Sep 17 00:00:00 2001 From: FelixPflaum <141590183+FelixPflaum@users.noreply.github.com> Date: Sat, 23 Nov 2024 18:22:57 +0100 Subject: [PATCH 5/5] Update test result --- sim/warlock/dps/TestAffliction.results | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/sim/warlock/dps/TestAffliction.results b/sim/warlock/dps/TestAffliction.results index a616969814..b2aab4259e 100644 --- a/sim/warlock/dps/TestAffliction.results +++ b/sim/warlock/dps/TestAffliction.results @@ -447,9 +447,9 @@ dps_results: { dps_results: { key: "TestAffliction-Phase4-Lvl60-AllItems-DeathmistRaiment" value: { - dps: 646.7303 - tps: 454.0011 - hps: 270.79764 + dps: 646.72959 + tps: 454.02774 + hps: 270.81193 } } dps_results: { @@ -471,9 +471,9 @@ dps_results: { dps_results: { key: "TestAffliction-Phase4-Lvl60-AllItems-IronweaveBattlesuit" value: { - dps: 630.33445 - tps: 446.9489 - hps: 271.7413 + dps: 630.33261 + tps: 446.9369 + hps: 271.72929 } } dps_results: {