From 620976647b80ab91eb9b5ebc25b8aedee709d9de Mon Sep 17 00:00:00 2001 From: FelixPflaum <141590183+FelixPflaum@users.noreply.github.com> Date: Fri, 22 Nov 2024 18:28:43 +0100 Subject: [PATCH 1/8] Remove warlock SoD runes and spell changes --- proto/warlock.proto | 42 -- sim/warlock/apl_values.go | 5 - sim/warlock/armors.go | 28 -- sim/warlock/chaos_bolt.go | 51 --- sim/warlock/conflagrate.go | 36 +- sim/warlock/corruption.go | 30 +- sim/warlock/curses.go | 54 +-- sim/warlock/demonic_grace.go | 52 --- sim/warlock/dps/TestAffliction.results | 62 +-- sim/warlock/dps/TestDemonology.results | 44 +- sim/warlock/dps/TestDestruction.results | 46 +- sim/warlock/dps/dps_warlock_test.go | 8 +- sim/warlock/drain_life.go | 31 +- sim/warlock/drain_soul.go | 13 +- sim/warlock/felguard.go | 187 -------- sim/warlock/haunt.go | 77 ---- sim/warlock/immolate.go | 31 +- sim/warlock/immolation_aura.go | 103 ----- sim/warlock/incinerate.go | 65 --- sim/warlock/infernal_armor.go | 52 --- sim/warlock/lifetap.go | 7 - sim/warlock/metamorphosis.go | 57 --- sim/warlock/pet.go | 11 - sim/warlock/rain_of_fire.go | 15 +- sim/warlock/runes.go | 518 ----------------------- sim/warlock/searing_pain.go | 7 - sim/warlock/shadow_cleave.go | 90 ---- sim/warlock/shadowbolt.go | 15 +- sim/warlock/shadowflame.go | 101 ----- sim/warlock/siphon_life.go | 18 +- sim/warlock/soul_fire.go | 11 +- sim/warlock/summon_demon.go | 19 - sim/warlock/talents.go | 36 +- sim/warlock/tank/TestAffliction.results | 62 +-- sim/warlock/tank/TestDemonology.results | 62 +-- sim/warlock/tank/TestDestruction.results | 62 +-- sim/warlock/tank/tank_warlock_test.go | 8 +- sim/warlock/unstable_affliction.go | 92 ---- sim/warlock/warlock.go | 66 +-- 39 files changed, 226 insertions(+), 2048 deletions(-) delete mode 100644 sim/warlock/chaos_bolt.go delete mode 100644 sim/warlock/demonic_grace.go delete mode 100644 sim/warlock/felguard.go delete mode 100644 sim/warlock/haunt.go delete mode 100644 sim/warlock/immolation_aura.go delete mode 100644 sim/warlock/incinerate.go delete mode 100644 sim/warlock/infernal_armor.go delete mode 100644 sim/warlock/metamorphosis.go delete mode 100644 sim/warlock/runes.go delete mode 100644 sim/warlock/shadow_cleave.go delete mode 100644 sim/warlock/shadowflame.go delete mode 100644 sim/warlock/unstable_affliction.go diff --git a/proto/warlock.proto b/proto/warlock.proto index 2021b5120..b47cded01 100644 --- a/proto/warlock.proto +++ b/proto/warlock.proto @@ -61,46 +61,6 @@ message WarlockTalents { bool conflagrate = 50; } -enum WarlockRune { - WarlockRuneNone = 0; - - RuneHelmVengeance = 426195; - RuneHelmPandemic = 427712; - RuneHelmBackdraft = 427713; - - RuneCloakMarkOfChaos = 440892; - RuneCloakInfernalArmor = 440882; - RuneCloakSoulSiphon = 403511; - - RuneChestLakeOfFire = 403666; - RuneChestMasterChanneler = 403668; - RuneChestDemonicTactics = 412727; - - RuneBracerUnstableAffliction = 427717; - RuneBracerImmolationAura = 427726; - RuneBracerIncinerate = 412758; - RuneBracerSummonFelguard = 427733; - - RuneHandsHaunt = 403501; - RuneHandsChaosBolt = 403629; - RuneHandsShadowBoltVolley = 403628; - RuneHandsMetamorphosis = 403789; - - RuneBeltInvocation = 426243; - RuneBeltGrimoireOfSynergy = 426301; - RuneBeltShadowAndFlame = 426316; - - RuneLegsEverlastingAffliction = 412689; - RuneLegsDemonicGrace = 425463; - RuneLegsDemonicPact = 425464; - - RuneBootsDemonicKnowledge = 412732; - RuneBootsDanceOfTheWicked = 412798; - RuneBootsShadowflame = 426320; - RuneBootsDecimation = 440870; - -} - message WarlockRotation { } @@ -111,13 +71,11 @@ message WarlockOptions { Voidwalker = 2; Succubus = 3; Felhunter = 4; - Felguard = 5; } enum Armor { NoArmor = 0; DemonArmor = 1; - FelArmor = 2; } enum WeaponImbue { diff --git a/sim/warlock/apl_values.go b/sim/warlock/apl_values.go index 240c0275d..111c8fc2a 100644 --- a/sim/warlock/apl_values.go +++ b/sim/warlock/apl_values.go @@ -63,11 +63,6 @@ func (value *APLValueWarlockShouldRecastDrainSoul) GetBool(sim *core.Simulation) } hauntRefresh := 1000 * time.Second - if warlock.HauntDebuffAuras != nil { - hauntRefresh = warlock.HauntDebuffAuras.Get(warlock.CurrentTarget).RemainingDuration(sim) - - warlock.Haunt.CastTime() - - warlock.Haunt.TravelTime() - } // the amount of ticks we have left, assuming we continue channeling dsDot := warlock.ChanneledDot diff --git a/sim/warlock/armors.go b/sim/warlock/armors.go index dc06b4a02..649b6c4ec 100644 --- a/sim/warlock/armors.go +++ b/sim/warlock/armors.go @@ -1,8 +1,6 @@ package warlock import ( - "time" - "github.com/wowsims/classic/sim/core" "github.com/wowsims/classic/sim/core/stats" ) @@ -41,29 +39,3 @@ func (warlock *Warlock) applyDemonArmor() { }, }) } - -// Surrounds the caster with fel energy, increasing spell damage and healing by 1 plus additional spell damage and healing equal to 50% of your Spirit. -// In addition, you regain 2% of your maximum health every 5 sec. -func (warlock *Warlock) applyFelArmor() { - actionID := core.ActionID{SpellID: 403619} - - warlock.AddStat(stats.SpellPower, 60) - warlock.AddStatDependency(stats.Spirit, stats.SpellPower, .50) - - healthMetrics := warlock.NewHealthMetrics(actionID) - warlock.GetOrRegisterAura(core.Aura{ - Label: "Fel Armor", - ActionID: actionID, - Duration: core.NeverExpires, - OnReset: func(aura *core.Aura, sim *core.Simulation) { - aura.Activate(sim) - core.StartPeriodicAction(sim, core.PeriodicActionOptions{ - Period: time.Second * 5, - Priority: core.ActionPriorityAuto, - OnAction: func(sim *core.Simulation) { - warlock.GainHealth(sim, warlock.MaxHealth()*.02, healthMetrics) - }, - }) - }, - }) -} diff --git a/sim/warlock/chaos_bolt.go b/sim/warlock/chaos_bolt.go deleted file mode 100644 index 6c7647970..000000000 --- a/sim/warlock/chaos_bolt.go +++ /dev/null @@ -1,51 +0,0 @@ -package warlock - -import ( - "time" - - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" -) - -// TODO: Classic warlock verify chaos bolt mechanics -func (warlock *Warlock) registerChaosBoltSpell() { - if !warlock.HasRune(proto.WarlockRune_RuneHandsChaosBolt) { - return - } - - spellCoeff := 0.714 - baseLowDamage := warlock.baseRuneAbilityDamage() * 5.22 - baseHighDamage := warlock.baseRuneAbilityDamage() * 6.62 - - warlock.ChaosBolt = warlock.RegisterSpell(core.SpellConfig{ - ActionID: core.ActionID{SpellID: 403629}, - SpellSchool: core.SpellSchoolFire, - DefenseType: core.DefenseTypeMagic, - ProcMask: core.ProcMaskSpellDamage, - Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | WarlockFlagDestruction, - - ManaCost: core.ManaCostOptions{ - BaseCost: 0.07, - }, - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - CastTime: time.Millisecond * 2500, - }, - CD: core.Cooldown{ - Timer: warlock.NewTimer(), - Duration: time.Second * 12, - }, - }, - - DamageMultiplier: 1, - ThreatMultiplier: 1, - BonusCoefficient: spellCoeff, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - baseDamage := sim.Roll(baseLowDamage, baseHighDamage) - // Assuming 100% hit for all target levels, numbers could be updated for level comparison later - spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeMagicCrit) - }, - }) -} diff --git a/sim/warlock/conflagrate.go b/sim/warlock/conflagrate.go index 8602a7f52..1987e48c1 100644 --- a/sim/warlock/conflagrate.go +++ b/sim/warlock/conflagrate.go @@ -4,15 +4,11 @@ import ( "time" "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" ) const ConflagrateRanks = 4 func (warlock *Warlock) getConflagrateConfig(rank int) core.SpellConfig { - hasBackdraftRune := warlock.HasRune(proto.WarlockRune_RuneHelmBackdraft) - hasShadowflameRune := warlock.HasRune(proto.WarlockRune_RuneBootsShadowflame) - spellId := [ConflagrateRanks + 1]int32{0, 17962, 18930, 18931, 18932}[rank] baseDamageMin := [ConflagrateRanks + 1]float64{0, 249, 319, 395, 447}[rank] baseDamageMax := [ConflagrateRanks + 1]float64{0, 316, 400, 491, 557}[rank] @@ -44,7 +40,7 @@ func (warlock *Warlock) getConflagrateConfig(rank int) core.SpellConfig { }, }, ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return warlock.getActiveImmolateSpell(target) != nil || (hasShadowflameRune && warlock.Shadowflame.Dot(target).IsActive()) + return warlock.getActiveImmolateSpell(target) != nil }, DamageMultiplier: 1, @@ -54,33 +50,11 @@ func (warlock *Warlock) getConflagrateConfig(rank int) core.SpellConfig { ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { baseDamage := sim.Roll(baseDamageMin, baseDamageMax) - result := spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeMagicHitAndCrit) - - if result.Landed() && hasBackdraftRune { - warlock.BackdraftAura.Activate(sim) - } - - // Conflag now doesn't consume Immo or Shadowflame when using Backdraft - if !hasBackdraftRune { - immoTime := core.NeverExpires - shadowflameTime := core.NeverExpires - - immoSpell := warlock.getActiveImmolateSpell(target) - if immoSpell != nil { - immoDot := immoSpell.Dot(target) - immoTime = core.TernaryDuration(immoDot.IsActive(), immoDot.RemainingDuration(sim), core.NeverExpires) - } - - if hasShadowflameRune { - sfDot := warlock.Shadowflame.Dot(target) - shadowflameTime = core.TernaryDuration(sfDot.IsActive(), sfDot.RemainingDuration(sim), core.NeverExpires) - } + spell.CalcAndDealDamage(sim, target, baseDamage, spell.OutcomeMagicHitAndCrit) - if immoTime < shadowflameTime { - immoSpell.Dot(target).Deactivate(sim) - } else { - warlock.Shadowflame.Dot(target).Deactivate(sim) - } + immoSpell := warlock.getActiveImmolateSpell(target) + if immoSpell != nil { + immoSpell.Dot(target).Deactivate(sim) } }, } diff --git a/sim/warlock/corruption.go b/sim/warlock/corruption.go index 6ecb66bd3..cb6f21d06 100644 --- a/sim/warlock/corruption.go +++ b/sim/warlock/corruption.go @@ -5,7 +5,6 @@ import ( "time" "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" ) const CorruptionRanks = 7 @@ -19,8 +18,6 @@ func (warlock *Warlock) getCorruptionConfig(rank int) core.SpellConfig { level := [CorruptionRanks + 1]int{0, 4, 14, 24, 34, 44, 54, 60}[rank] castTime := time.Millisecond * (2000 - (400 * time.Duration(warlock.Talents.ImprovedCorruption))) - hasInvocationRune := warlock.HasRune(proto.WarlockRune_RuneBeltInvocation) - hasPandemicRune := warlock.HasRune(proto.WarlockRune_RuneHelmPandemic) return core.SpellConfig{ ActionID: core.ActionID{SpellID: spellId}, @@ -28,7 +25,7 @@ func (warlock *Warlock) getCorruptionConfig(rank int) core.SpellConfig { SpellCode: SpellCode_WarlockCorruption, ProcMask: core.ProcMaskSpellDamage, DefenseType: core.DefenseTypeMagic, - Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | core.SpellFlagPureDot | WarlockFlagAffliction | WarlockFlagHaunt, + Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | core.SpellFlagPureDot | WarlockFlagAffliction, Rank: rank, RequiredLevel: level, @@ -42,7 +39,7 @@ func (warlock *Warlock) getCorruptionConfig(rank int) core.SpellConfig { }, }, - CritDamageBonus: core.TernaryFloat64(hasPandemicRune, 1, 0), + CritDamageBonus: 0, DamageMultiplier: 1, ThreatMultiplier: 1, @@ -58,19 +55,9 @@ func (warlock *Warlock) getCorruptionConfig(rank int) core.SpellConfig { OnSnapshot: func(sim *core.Simulation, target *core.Unit, dot *core.Dot, isRollover bool) { dot.Snapshot(target, baseDamage, isRollover) - if !isRollover { - if warlock.zilaGularAura.IsActive() { - dot.SnapshotAttackerMultiplier *= 1.25 - warlock.zilaGularAura.Deactivate(sim) - } - } }, OnTick: func(sim *core.Simulation, target *core.Unit, dot *core.Dot) { - if hasPandemicRune { - dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeSnapshotCrit) - } else { - dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeTick) - } + dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeTick) }, }, @@ -78,11 +65,6 @@ func (warlock *Warlock) getCorruptionConfig(rank int) core.SpellConfig { result := spell.CalcOutcome(sim, target, spell.OutcomeMagicHitNoHitCounter) if result.Landed() { dot := spell.Dot(target) - - if hasInvocationRune && dot.IsActive() { - warlock.InvocationRefresh(sim, dot) - } - dot.Apply(sim) } spell.DealOutcome(sim, result) @@ -90,15 +72,9 @@ func (warlock *Warlock) getCorruptionConfig(rank int) core.SpellConfig { ExpectedTickDamage: func(sim *core.Simulation, target *core.Unit, spell *core.Spell, useSnapshot bool) *core.SpellResult { if useSnapshot { dot := spell.Dot(target) - if hasPandemicRune { - return dot.CalcSnapshotDamage(sim, target, dot.Spell.OutcomeExpectedMagicCrit) - } return dot.CalcSnapshotDamage(sim, target, dot.Spell.OutcomeExpectedMagicAlwaysHit) } else { baseDamage := baseDamage / float64(ticks) - if hasPandemicRune { - return spell.CalcPeriodicDamage(sim, target, baseDamage, spell.OutcomeExpectedMagicCrit) - } return spell.CalcPeriodicDamage(sim, target, baseDamage, spell.OutcomeExpectedMagicAlwaysHit) } }, diff --git a/sim/warlock/curses.go b/sim/warlock/curses.go index 41013d83a..cd09c3a06 100644 --- a/sim/warlock/curses.go +++ b/sim/warlock/curses.go @@ -5,7 +5,6 @@ import ( "time" "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" ) const CurseOfAgonyRanks = 6 @@ -20,10 +19,6 @@ func (warlock *Warlock) getCurseOfAgonyBaseConfig(rank int) core.SpellConfig { manaCost := [CurseOfAgonyRanks + 1]float64{0, 25, 50, 90, 130, 170, 215}[rank] level := [CurseOfAgonyRanks + 1]int{0, 8, 18, 28, 38, 48, 58}[rank] - hasInvocationRune := warlock.HasRune(proto.WarlockRune_RuneBeltInvocation) - hasPandemicRune := warlock.HasRune(proto.WarlockRune_RuneHelmPandemic) - hasMarkOfChaosRune := warlock.HasRune(proto.WarlockRune_RuneCloakMarkOfChaos) - baseDamage *= 1 + warlock.shadowMasteryBonus() snapshotBaseDmgNoBonus := 0.0 @@ -32,7 +27,7 @@ func (warlock *Warlock) getCurseOfAgonyBaseConfig(rank int) core.SpellConfig { ActionID: core.ActionID{SpellID: spellId}, SpellSchool: core.SpellSchoolShadow, DefenseType: core.DefenseTypeMagic, - Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | core.SpellFlagPureDot | WarlockFlagAffliction | WarlockFlagHaunt, + Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | core.SpellFlagPureDot | WarlockFlagAffliction, ProcMask: core.ProcMaskSpellDamage, RequiredLevel: level, Rank: rank, @@ -46,7 +41,7 @@ func (warlock *Warlock) getCurseOfAgonyBaseConfig(rank int) core.SpellConfig { }, }, - CritDamageBonus: core.TernaryFloat64(hasPandemicRune, 1, 0), + CritDamageBonus: 0, DamageMultiplierAdditive: 1, DamageMultiplier: 1, @@ -73,20 +68,9 @@ func (warlock *Warlock) getCurseOfAgonyBaseConfig(rank int) core.SpellConfig { snapshotBaseDmgNoBonus = baseDmg * 0.5 dot.Snapshot(target, snapshotBaseDmgNoBonus, isRollover) - - if !isRollover { - if warlock.zilaGularAura.IsActive() { - dot.SnapshotAttackerMultiplier *= 1.25 - warlock.zilaGularAura.Deactivate(sim) - } - } }, OnTick: func(sim *core.Simulation, target *core.Unit, dot *core.Dot) { - if hasPandemicRune { - dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeSnapshotCrit) - } else { - dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeTick) - } + dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeTick) if dot.TickCount%4 == 0 { // CoA ramp up dot.SnapshotBaseDamage += snapshotBaseDmgNoBonus } @@ -102,16 +86,8 @@ func (warlock *Warlock) getCurseOfAgonyBaseConfig(rank int) core.SpellConfig { activeCurse.Deactivate(sim) } - if hasInvocationRune && dot.IsActive() { - warlock.InvocationRefresh(sim, dot) - } - dot.Apply(sim) warlock.ActiveCurseAura[target.UnitIndex] = dot.Aura - - if hasMarkOfChaosRune { - warlock.applyMarkOfChaosDebuff(sim, target, dot.Duration) - } } spell.DealOutcome(sim, result) }, @@ -130,8 +106,6 @@ func (warlock *Warlock) registerCurseOfAgonySpell() { } func (warlock *Warlock) registerCurseOfRecklessnessSpell() { - hasMarkOfChaosRune := warlock.HasRune(proto.WarlockRune_RuneCloakMarkOfChaos) - playerLevel := warlock.Level warlock.CurseOfRecklessnessAuras = warlock.NewEnemyAuraArray(core.CurseOfRecklessnessAura) @@ -186,10 +160,6 @@ func (warlock *Warlock) registerCurseOfRecklessnessSpell() { warlock.ActiveCurseAura[target.UnitIndex] = aura warlock.ActiveCurseAura.Get(target).Activate(sim) - - if hasMarkOfChaosRune { - warlock.applyMarkOfChaosDebuff(sim, target, time.Minute*2) - } } }, @@ -354,12 +324,9 @@ func (warlock *Warlock) registerCurseOfDoomSpell() { return } - hasPandemicRune := warlock.HasRune(proto.WarlockRune_RuneHelmPandemic) - hasMarkOfChaosRune := warlock.HasRune(proto.WarlockRune_RuneCloakMarkOfChaos) - warlock.CurseOfDoom = warlock.RegisterSpell(core.SpellConfig{ SpellCode: SpellCode_WarlockCurseOfDoom, - ActionID: core.ActionID{SpellID: 449432}, // New spell created for SoD + ActionID: core.ActionID{SpellID: 603}, SpellSchool: core.SpellSchoolShadow, DefenseType: core.DefenseTypeMagic, ProcMask: core.ProcMaskSpellDamage, @@ -380,11 +347,12 @@ func (warlock *Warlock) registerCurseOfDoomSpell() { }, }, - CritDamageBonus: core.TernaryFloat64(hasPandemicRune, 1, 0), + CritDamageBonus: 0, DamageMultiplier: 1, ThreatMultiplier: 1 - 0.1*float64(warlock.Talents.ImprovedDrainSoul), FlatThreatBonus: 160, + BonusCoefficient: 1, Dot: core.DotConfig{ Aura: core.Aura{ @@ -396,11 +364,7 @@ func (warlock *Warlock) registerCurseOfDoomSpell() { dot.Snapshot(target, 3200, isRollover) }, OnTick: func(sim *core.Simulation, target *core.Unit, dot *core.Dot) { - if hasPandemicRune { - dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeSnapshotCrit) - } else { - dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeTick) - } + dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeTick) }, }, @@ -414,10 +378,6 @@ func (warlock *Warlock) registerCurseOfDoomSpell() { dot.Apply(sim) warlock.ActiveCurseAura[target.UnitIndex] = dot.Aura - - if hasMarkOfChaosRune { - warlock.applyMarkOfChaosDebuff(sim, target, dot.Duration) - } } }, }) diff --git a/sim/warlock/demonic_grace.go b/sim/warlock/demonic_grace.go deleted file mode 100644 index aa65137e4..000000000 --- a/sim/warlock/demonic_grace.go +++ /dev/null @@ -1,52 +0,0 @@ -package warlock - -import ( - "time" - - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" - "github.com/wowsims/classic/sim/core/stats" -) - -func (warlock *Warlock) registerDemonicGraceSpell() { - if !warlock.HasRune(proto.WarlockRune_RuneLegsDemonicGrace) { - return - } - - warlock.DemonicGraceAura = warlock.RegisterAura(core.Aura{ - Label: "Demonic Grace Aura", - ActionID: core.ActionID{SpellID: 425463}, - Duration: time.Second * 6, - OnGain: func(aura *core.Aura, sim *core.Simulation) { - warlock.AddStatDynamic(sim, stats.Dodge, 20*core.DodgeRatingPerDodgeChance) - warlock.AddStatDynamic(sim, stats.MeleeCrit, 20*core.CritRatingPerCritChance) - warlock.AddStatDynamic(sim, stats.SpellCrit, 20*core.SpellCritRatingPerCritChance) - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - warlock.AddStatDynamic(sim, stats.Dodge, -20*core.DodgeRatingPerDodgeChance) - warlock.AddStatDynamic(sim, stats.MeleeCrit, -20*core.CritRatingPerCritChance) - warlock.AddStatDynamic(sim, stats.SpellCrit, -20*core.SpellCritRatingPerCritChance) - }, - }) - - warlock.DemonicGrace = warlock.RegisterSpell(core.SpellConfig{ - ActionID: core.ActionID{SpellID: 425463}, - Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | WarlockFlagDemonology, - - Cast: core.CastConfig{ - CD: core.Cooldown{ - Timer: warlock.NewTimer(), - Duration: time.Second * 20, - }, - }, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - warlock.DemonicGraceAura.Activate(sim) - }, - }) - - warlock.AddMajorCooldown(core.MajorCooldown{ - Spell: warlock.DemonicGrace, - Type: core.CooldownTypeDPS, - }) -} diff --git a/sim/warlock/dps/TestAffliction.results b/sim/warlock/dps/TestAffliction.results index 0bfa0c765..4f5e4e2cf 100644 --- a/sim/warlock/dps/TestAffliction.results +++ b/sim/warlock/dps/TestAffliction.results @@ -6,7 +6,7 @@ character_stats_results: { final_stats: 437.7475 final_stats: 258.75 final_stats: 239.2 - final_stats: 564.6 + final_stats: 385 final_stats: 0 final_stats: 40 final_stats: 0 @@ -27,7 +27,7 @@ character_stats_results: { final_stats: 4974.25 final_stats: 0 final_stats: 0 - final_stats: 1353.1 + final_stats: 1923.1 final_stats: 540 final_stats: 0 final_stats: 5 @@ -40,7 +40,7 @@ character_stats_results: { final_stats: 76 final_stats: 60 final_stats: 60 - final_stats: 60 + final_stats: 75 final_stats: 384 final_stats: 0 final_stats: 35 @@ -53,9 +53,9 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.02841 + weights: 1.14811 weights: 0 - weights: 0.28413 + weights: 0.21875 weights: 0 weights: 0 weights: 0 @@ -63,8 +63,8 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 3.47155 - weights: 0.74065 + weights: 4.5296 + weights: 0.47503 weights: 0 weights: 0 weights: 0 @@ -99,64 +99,64 @@ stat_weights_results: { dps_results: { key: "TestAffliction-Phase4-Lvl60-Average-Default" value: { - dps: 503.11693 - tps: 355.02362 - hps: 207.21698 + dps: 346.59134 + tps: 257.01338 + hps: 139.86823 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-Settings-Orc-placeholder-Affliction Warlock-affliction-FullBuffs-P4-Consumes-LongMultiTarget" value: { - dps: 500.4467 - tps: 822.12009 - hps: 206.57229 + dps: 344.80401 + tps: 606.42945 + hps: 141.1422 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-Settings-Orc-placeholder-Affliction Warlock-affliction-FullBuffs-P4-Consumes-LongSingleTarget" value: { - dps: 500.4467 - tps: 352.10643 - hps: 206.57229 + dps: 344.80401 + tps: 255.50484 + hps: 141.1422 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-Settings-Orc-placeholder-Affliction Warlock-affliction-FullBuffs-P4-Consumes-ShortSingleTarget" value: { - dps: 523.21588 - tps: 376.7872 - hps: 196.21055 + dps: 458.63337 + tps: 341.12665 + hps: 150.28608 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-Settings-Orc-placeholder-Affliction Warlock-affliction-NoBuffs-P4-Consumes-LongMultiTarget" value: { - dps: 308.23238 - tps: 748.95525 - hps: 119.78727 + dps: 184.51909 + tps: 485.97035 + hps: 73.9505 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-Settings-Orc-placeholder-Affliction Warlock-affliction-NoBuffs-P4-Consumes-LongSingleTarget" value: { - dps: 308.23238 - tps: 224.64519 - hps: 119.78727 + dps: 184.51909 + tps: 156.19985 + hps: 73.9505 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-Settings-Orc-placeholder-Affliction Warlock-affliction-NoBuffs-P4-Consumes-ShortSingleTarget" value: { - dps: 334.51601 - tps: 250.15416 - hps: 112.94454 + dps: 223.17424 + tps: 170.70544 + hps: 69.12231 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-SwitchInFrontOfTarget-Default" value: { - dps: 500.4467 - tps: 352.10643 - hps: 206.57229 + dps: 344.80401 + tps: 255.50484 + hps: 141.1422 } } diff --git a/sim/warlock/dps/TestDemonology.results b/sim/warlock/dps/TestDemonology.results index 7574a8037..7b8492062 100644 --- a/sim/warlock/dps/TestDemonology.results +++ b/sim/warlock/dps/TestDemonology.results @@ -6,7 +6,7 @@ character_stats_results: { final_stats: 398.46925 final_stats: 189.75 final_stats: 158.4125 - final_stats: 524.20625 + final_stats: 385 final_stats: 0 final_stats: 40 final_stats: 0 @@ -27,7 +27,7 @@ character_stats_results: { final_stats: 3489.25 final_stats: 0 final_stats: 0 - final_stats: 986 + final_stats: 1376 final_stats: 440 final_stats: 0 final_stats: 5 @@ -40,7 +40,7 @@ character_stats_results: { final_stats: 46 final_stats: 30 final_stats: 30 - final_stats: 30 + final_stats: 39 final_stats: 263 final_stats: 0 final_stats: 35 @@ -53,9 +53,9 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.004 + weights: 0.20667 weights: 0 - weights: 0.0709 + weights: 0.13055 weights: 0 weights: 0 weights: 0 @@ -64,7 +64,7 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.13387 + weights: 0.38309 weights: 0 weights: 0 weights: 0 @@ -99,56 +99,56 @@ stat_weights_results: { dps_results: { key: "TestDemonology-Phase2-Lvl40-Average-Default" value: { - dps: 76.1651 - tps: 80.20343 + dps: 132.89667 + tps: 57.47311 } } dps_results: { key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-FullBuffs-P4-Consumes-LongMultiTarget" value: { - dps: 75.78854 - tps: 89.68818 + dps: 132.0669 + tps: 65.71809 } } dps_results: { key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-FullBuffs-P4-Consumes-LongSingleTarget" value: { - dps: 75.78854 - tps: 79.81293 + dps: 132.0669 + tps: 57.44169 } } dps_results: { key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-FullBuffs-P4-Consumes-ShortSingleTarget" value: { - dps: 81.78573 - tps: 100.98705 + dps: 138.78484 + tps: 71.24374 } } dps_results: { key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-NoBuffs-P4-Consumes-LongMultiTarget" value: { - dps: 52.79904 - tps: 54.97303 + dps: 80.78807 + tps: 40.78607 } } dps_results: { key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-NoBuffs-P4-Consumes-LongSingleTarget" value: { - dps: 52.79904 - tps: 54.97303 + dps: 80.78807 + tps: 40.78607 } } dps_results: { key: "TestDemonology-Phase2-Lvl40-Settings-Orc-placeholder-Demonology Warlock-demonology-NoBuffs-P4-Consumes-ShortSingleTarget" value: { - dps: 55.93888 - tps: 67.23421 + dps: 94.75977 + tps: 49.65673 } } dps_results: { key: "TestDemonology-Phase2-Lvl40-SwitchInFrontOfTarget-Default" value: { - dps: 75.78854 - tps: 79.81293 + dps: 132.0669 + tps: 57.44169 } } diff --git a/sim/warlock/dps/TestDestruction.results b/sim/warlock/dps/TestDestruction.results index 877530544..081a1ba80 100644 --- a/sim/warlock/dps/TestDestruction.results +++ b/sim/warlock/dps/TestDestruction.results @@ -6,7 +6,7 @@ character_stats_results: { final_stats: 503.40962 final_stats: 258.75 final_stats: 227.24 - final_stats: 558.62 + final_stats: 385 final_stats: 0 final_stats: 40 final_stats: 0 @@ -27,7 +27,7 @@ character_stats_results: { final_stats: 4974.25 final_stats: 0 final_stats: 0 - final_stats: 1353.1 + final_stats: 1923.1 final_stats: 540 final_stats: 0 final_stats: 5 @@ -40,7 +40,7 @@ character_stats_results: { final_stats: 76 final_stats: 60 final_stats: 60 - final_stats: 60 + final_stats: 75 final_stats: 384 final_stats: 0 final_stats: 35 @@ -53,9 +53,9 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.23734 + weights: 0.09146 weights: 0 - weights: 0.35633 + weights: 0.26849 weights: 0 weights: 0 weights: 0 @@ -63,8 +63,8 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 5.08727 - weights: 2.46119 + weights: 5.03769 + weights: 1.92059 weights: 0 weights: 0 weights: 0 @@ -99,56 +99,56 @@ stat_weights_results: { dps_results: { key: "TestDestruction-Phase4-Lvl60-Average-Default" value: { - dps: 662.52898 - tps: 495.4123 + dps: 485.85044 + tps: 388.40062 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-Settings-Orc-placeholder-Destruction Warlock-destruction-FullBuffs-P4-Consumes-LongMultiTarget" value: { - dps: 664.84066 - tps: 1093.96523 + dps: 479.59811 + tps: 854.10229 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-Settings-Orc-placeholder-Destruction Warlock-destruction-FullBuffs-P4-Consumes-LongSingleTarget" value: { - dps: 664.84066 - tps: 498.74818 + dps: 479.59811 + tps: 382.40479 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-Settings-Orc-placeholder-Destruction Warlock-destruction-FullBuffs-P4-Consumes-ShortSingleTarget" value: { - dps: 728.86416 - tps: 587.44758 + dps: 648.70454 + tps: 530.99716 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-Settings-Orc-placeholder-Destruction Warlock-destruction-NoBuffs-P4-Consumes-LongMultiTarget" value: { - dps: 124.33411 - tps: 892.43736 + dps: 59.8217 + tps: 881.88144 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-Settings-Orc-placeholder-Destruction Warlock-destruction-NoBuffs-P4-Consumes-LongSingleTarget" value: { - dps: 124.33411 - tps: 49.90734 + dps: 59.8217 + tps: 49.07284 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-Settings-Orc-placeholder-Destruction Warlock-destruction-NoBuffs-P4-Consumes-ShortSingleTarget" value: { - dps: 108.5207 - tps: 34.05603 + dps: 82.47031 + tps: 32.30803 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-SwitchInFrontOfTarget-Default" value: { - dps: 664.58069 - tps: 498.37335 + dps: 479.94776 + tps: 382.7782 } } diff --git a/sim/warlock/dps/dps_warlock_test.go b/sim/warlock/dps/dps_warlock_test.go index 8500de2d5..41856215b 100644 --- a/sim/warlock/dps/dps_warlock_test.go +++ b/sim/warlock/dps/dps_warlock_test.go @@ -92,7 +92,7 @@ var Phase4DestroTalents = "05002-035004-5050205102005151" var DefaultDestroWarlock = &proto.Player_Warlock{ Warlock: &proto.Warlock{ Options: &proto.WarlockOptions{ - Armor: proto.WarlockOptions_FelArmor, + Armor: proto.WarlockOptions_DemonArmor, Summon: proto.WarlockOptions_Imp, WeaponImbue: proto.WarlockOptions_NoWeaponImbue, }, @@ -102,7 +102,7 @@ var DefaultDestroWarlock = &proto.Player_Warlock{ var DefaultAfflictionWarlock = &proto.Player_Warlock{ Warlock: &proto.Warlock{ Options: &proto.WarlockOptions{ - Armor: proto.WarlockOptions_FelArmor, + Armor: proto.WarlockOptions_DemonArmor, Summon: proto.WarlockOptions_Imp, WeaponImbue: proto.WarlockOptions_NoWeaponImbue, }, @@ -112,8 +112,8 @@ var DefaultAfflictionWarlock = &proto.Player_Warlock{ var DefaultDemonologyWarlock = &proto.Player_Warlock{ Warlock: &proto.Warlock{ Options: &proto.WarlockOptions{ - Armor: proto.WarlockOptions_FelArmor, - Summon: proto.WarlockOptions_Felguard, + Armor: proto.WarlockOptions_DemonArmor, + Summon: proto.WarlockOptions_Imp, WeaponImbue: proto.WarlockOptions_NoWeaponImbue, }, }, diff --git a/sim/warlock/drain_life.go b/sim/warlock/drain_life.go index 2e1019045..30e39f154 100644 --- a/sim/warlock/drain_life.go +++ b/sim/warlock/drain_life.go @@ -5,16 +5,12 @@ import ( "time" "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" ) const DrainLifeRanks = 6 func (warlock *Warlock) getDrainLifeBaseConfig(rank int) core.SpellConfig { - hasMasterChannelerRune := warlock.HasRune(proto.WarlockRune_RuneChestMasterChanneler) - hasSoulSiphonRune := warlock.HasRune(proto.WarlockRune_RuneCloakSoulSiphon) - - numTicks := core.TernaryInt32(hasMasterChannelerRune, 15, 5) + numTicks := int32(5) spellId := [DrainLifeRanks + 1]int32{0, 689, 699, 709, 7651, 11699, 11700}[rank] spellCoeff := [DrainLifeRanks + 1]float64{0, .078, .1, .1, .1, .1, .1}[rank] @@ -22,10 +18,6 @@ func (warlock *Warlock) getDrainLifeBaseConfig(rank int) core.SpellConfig { manaCost := [DrainLifeRanks + 1]float64{0, 55, 85, 135, 185, 240, 300}[rank] level := [DrainLifeRanks + 1]int{0, 14, 22, 30, 38, 46, 54}[rank] - if hasMasterChannelerRune { - manaCost *= 2 - } - baseDamage *= 1 + warlock.shadowMasteryBonus() + 0.02*float64(warlock.Talents.ImprovedDrainLife) actionID := core.ActionID{SpellID: spellId} @@ -46,7 +38,7 @@ func (warlock *Warlock) getDrainLifeBaseConfig(rank int) core.SpellConfig { SpellCode: SpellCode_WarlockDrainLife, DefenseType: core.DefenseTypeMagic, ProcMask: core.ProcMaskSpellDamage, - Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | WarlockFlagAffliction | WarlockFlagHaunt, + Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | WarlockFlagAffliction | core.SpellFlagChanneled, RequiredLevel: level, Rank: rank, @@ -74,23 +66,13 @@ func (warlock *Warlock) getDrainLifeBaseConfig(rank int) core.SpellConfig { OnSnapshot: func(sim *core.Simulation, target *core.Unit, dot *core.Dot, isRollover bool) { dot.Snapshot(target, baseDamage, isRollover) - - if hasSoulSiphonRune { - dot.SnapshotAttackerMultiplier *= warlock.calcSoulSiphonMultiplier(target, false) - } - // Drain Life heals so it snapshots target modifiers // Update 2024-06-29: It no longer snapshots on PTR // dot.SnapshotAttackerMultiplier *= dot.Spell.TargetDamageMultiplier(dot.Spell.Unit.AttackTables[target.UnitIndex][dot.Spell.CastType], true) }, OnTick: func(sim *core.Simulation, target *core.Unit, dot *core.Dot) { result := dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeTick) - health := result.Damage - if hasMasterChannelerRune { - health *= 1.5 - } - healingSpell.CalcAndDealHealing(sim, healingSpell.Unit, health, healingSpell.OutcomeHealing) }, }, @@ -114,15 +96,6 @@ func (warlock *Warlock) getDrainLifeBaseConfig(rank int) core.SpellConfig { }, } - if hasMasterChannelerRune { - spellConfig.Cast.CD = core.Cooldown{ - Timer: warlock.NewTimer(), - Duration: 15 * time.Second, - } - } else { - spellConfig.Flags |= core.SpellFlagChanneled - } - return spellConfig } diff --git a/sim/warlock/drain_soul.go b/sim/warlock/drain_soul.go index 22916ceef..03d2ac49e 100644 --- a/sim/warlock/drain_soul.go +++ b/sim/warlock/drain_soul.go @@ -5,17 +5,14 @@ import ( "time" "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" ) const DrainSoulRanks = 4 func (warlock *Warlock) getDrainSoulBaseConfig(rank int) core.SpellConfig { - hasSoulSiphonRune := warlock.HasRune(proto.WarlockRune_RuneCloakSoulSiphon) - baseNumTicks := int32(5) - numTicks := core.TernaryInt32(hasSoulSiphonRune, 15, baseNumTicks) - tickLength := time.Second * time.Duration(core.TernaryInt32(hasSoulSiphonRune, 1, 3)) + numTicks := baseNumTicks + tickLength := time.Second * 3 spellId := [DrainSoulRanks + 1]int32{0, 1120, 8288, 8289, 11675}[rank] spellCoeff := [DrainSoulRanks + 1]float64{0, 0.063, 0.1, 0.1, 0.1}[rank] @@ -29,7 +26,7 @@ func (warlock *Warlock) getDrainSoulBaseConfig(rank int) core.SpellConfig { SpellSchool: core.SpellSchoolShadow, DefenseType: core.DefenseTypeMagic, ProcMask: core.ProcMaskSpellDamage, - Flags: core.SpellFlagAPL | core.SpellFlagChanneled | core.SpellFlagResetAttackSwing | WarlockFlagAffliction | WarlockFlagHaunt, + Flags: core.SpellFlagAPL | core.SpellFlagChanneled | core.SpellFlagResetAttackSwing | WarlockFlagAffliction, RequiredLevel: level, Rank: rank, @@ -56,10 +53,6 @@ func (warlock *Warlock) getDrainSoulBaseConfig(rank int) core.SpellConfig { OnSnapshot: func(sim *core.Simulation, target *core.Unit, dot *core.Dot, isRollover bool) { dot.Snapshot(target, baseDamage, isRollover) - - if hasSoulSiphonRune { - dot.SnapshotAttackerMultiplier *= warlock.calcSoulSiphonMultiplier(target, sim.IsExecutePhase20()) - } }, OnTick: func(sim *core.Simulation, target *core.Unit, dot *core.Dot) { dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeTick) diff --git a/sim/warlock/felguard.go b/sim/warlock/felguard.go deleted file mode 100644 index 0a4c262e3..000000000 --- a/sim/warlock/felguard.go +++ /dev/null @@ -1,187 +0,0 @@ -package warlock - -import ( - "time" - - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" - "github.com/wowsims/classic/sim/core/stats" -) - -func (warlock *Warlock) makeFelguard() *WarlockPet { - cfg := PetConfig{ - Name: "Felguard", - PowerModifier: 0.77, - } - switch warlock.Level { - case 25: - cfg.Stats = stats.Stats{ - stats.Strength: 50, - stats.Agility: 40, - stats.Stamina: 87, - stats.Intellect: 35, - stats.Spirit: 61, - stats.Mana: 653, - stats.MP5: 0, - stats.MeleeCrit: 3.2685 * core.CritRatingPerCritChance, - stats.SpellCrit: 3.3355 * core.CritRatingPerCritChance, - } - cfg.AutoAttacks = core.AutoAttackOptions{ - MainHand: core.Weapon{ - BaseDamageMin: 24, - BaseDamageMax: 40, - SwingSpeed: 2, - }, - AutoSwingMelee: true, - } - case 40: - cfg.Stats = stats.Stats{ - stats.Strength: 74, - stats.Agility: 58, - stats.Stamina: 148, - stats.Intellect: 49, - stats.Spirit: 97, - stats.Mana: 653, - stats.MP5: 0, - stats.MeleeCrit: 3.2685 * core.CritRatingPerCritChance, - stats.SpellCrit: 3.3355 * core.CritRatingPerCritChance, - } - cfg.AutoAttacks = core.AutoAttackOptions{ - MainHand: core.Weapon{ - BaseDamageMin: 24, - BaseDamageMax: 40, - SwingSpeed: 2, - }, - AutoSwingMelee: true, - } - case 50: - cfg.Stats = stats.Stats{ - stats.Strength: 107, - stats.Agility: 71, - stats.Stamina: 190, - stats.Intellect: 59, - stats.Spirit: 123, - stats.Mana: 912, - stats.MP5: 0, - stats.MeleeCrit: 3.2685 * core.CritRatingPerCritChance, - stats.SpellCrit: 3.3355 * core.CritRatingPerCritChance, - } - cfg.AutoAttacks = core.AutoAttackOptions{ - MainHand: core.Weapon{ - BaseDamageMin: 67, - BaseDamageMax: 101, - SwingSpeed: 2, - }, - AutoSwingMelee: true, - } - case 60: - cfg.Stats = stats.Stats{ - stats.Strength: 129, - stats.Agility: 85, - stats.Stamina: 290, - stats.Intellect: 70, - stats.Spirit: 150, - stats.Mana: 1066, - stats.MP5: 0, - stats.MeleeCrit: 3.2685 * core.CritRatingPerCritChance, - stats.SpellCrit: 3.3355 * core.CritRatingPerCritChance, - } - cfg.AutoAttacks = core.AutoAttackOptions{ - MainHand: core.Weapon{ - BaseDamageMin: 87, - BaseDamageMax: 128, - SwingSpeed: 2, - }, - AutoSwingMelee: true, - } - } - - pet := warlock.makePet(cfg, warlock.Options.Summon == proto.WarlockOptions_Felguard) - // Felguard was given a ~20% damage buff on July 3rd that doesn't seem accounted for in base stats - pet.PseudoStats.DamageDealtMultiplier *= 1.20 - - return pet -} - -func (wp *WarlockPet) registerFelguardCleaveSpell() { - results := make([]*core.SpellResult, min(2, wp.Env.GetNumTargets())) - - wp.primaryAbility = wp.RegisterSpell(core.SpellConfig{ - ActionID: core.ActionID{SpellID: 427744}, - SpellSchool: core.SpellSchoolPhysical, - DefenseType: core.DefenseTypeMelee, - ProcMask: core.ProcMaskMeleeMHSpecial, - Flags: core.SpellFlagMeleeMetrics, - - ManaCost: core.ManaCostOptions{ - BaseCost: 0.1, - }, - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - }, - IgnoreHaste: true, - CD: core.Cooldown{ - Timer: wp.NewTimer(), - Duration: time.Second * 6, - }, - }, - - DamageMultiplier: wp.AutoAttacks.MHConfig().DamageMultiplier, - ThreatMultiplier: 1, - BonusCoefficient: 1, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - for idx := range results { - baseDamage := 2.0 + spell.Unit.MHWeaponDamage(sim, spell.MeleeAttackPower()) - results[idx] = spell.CalcDamage(sim, target, baseDamage, spell.OutcomeMeleeSpecialHitAndCrit) - target = sim.Environment.NextTargetUnit(target) - } - for _, result := range results { - spell.DealDamage(sim, result) - } - }, - }) -} - -func (wp *WarlockPet) registerFelguardDemonicFrenzyAura() { - statDeps := make([]*stats.StatDependency, 11) // 10 stacks + zero condition - for i := 1; i < 11; i++ { - statDeps[i] = wp.NewDynamicMultiplyStat(stats.AttackPower, 1.0+.05*float64(i)) - } - - // Make a dummy copy on the Warlock for APL tracking - ownerAura := wp.owner.RegisterAura(core.Aura{ - ActionID: core.ActionID{SpellID: 460907}, - Label: "Demonic Frenzy", - Duration: time.Second * 10, - MaxStacks: 10, - }) - - demonicFrenzyAura := wp.RegisterAura(core.Aura{ - ActionID: core.ActionID{SpellID: 460907}, - Label: "Demonic Frenzy", - Duration: time.Second * 10, - MaxStacks: 10, - OnStacksChange: func(aura *core.Aura, sim *core.Simulation, oldStacks, newStacks int32) { - if oldStacks != 0 { - aura.Unit.DisableDynamicStatDep(sim, statDeps[oldStacks]) - } - if newStacks != 0 { - aura.Unit.EnableDynamicStatDep(sim, statDeps[newStacks]) - } - }, - }) - - core.MakePermanent(wp.RegisterAura(core.Aura{ - Label: "Demonic Frenzy Trigger", - OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { - if result.Landed() { - demonicFrenzyAura.Activate(sim) - demonicFrenzyAura.AddStack(sim) - ownerAura.Activate(sim) - ownerAura.AddStack(sim) - } - }, - })) -} diff --git a/sim/warlock/haunt.go b/sim/warlock/haunt.go deleted file mode 100644 index bb74d543c..000000000 --- a/sim/warlock/haunt.go +++ /dev/null @@ -1,77 +0,0 @@ -package warlock - -import ( - "time" - - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" -) - -func hauntMultiplier(spell *core.Spell, _ *core.AttackTable) float64 { - return core.TernaryFloat64(spell.Flags.Matches(WarlockFlagHaunt), 1.2, 1) -} - -func (warlock *Warlock) registerHauntSpell() { - if !warlock.HasRune(proto.WarlockRune_RuneHandsHaunt) { - return - } - - actionID := core.ActionID{SpellID: 403501} - - spellCoeff := 0.429 - baseLowDamage := warlock.baseRuneAbilityDamage() * 2.51 - baseHighDamage := warlock.baseRuneAbilityDamage() * 2.95 - - warlock.HauntDebuffAuras = warlock.NewEnemyAuraArray(func(target *core.Unit, level int32) *core.Aura { - return target.GetOrRegisterAura(core.Aura{ - Label: "Haunt-" + warlock.Label, - ActionID: actionID, - Duration: time.Second * 12, - OnGain: func(aura *core.Aura, sim *core.Simulation) { - warlock.AttackTables[aura.Unit.UnitIndex][proto.CastType_CastTypeMainHand].DamageDoneByCasterMultiplier = hauntMultiplier - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - warlock.AttackTables[aura.Unit.UnitIndex][proto.CastType_CastTypeMainHand].DamageDoneByCasterMultiplier = nil - }, - }) - }) - - warlock.Haunt = warlock.RegisterSpell(core.SpellConfig{ - SpellCode: SpellCode_WarlockHaunt, - ActionID: actionID, - SpellSchool: core.SpellSchoolShadow, - DefenseType: core.DefenseTypeMagic, - ProcMask: core.ProcMaskSpellDamage, - Flags: core.SpellFlagAPL | core.SpellFlagBinary | core.SpellFlagResetAttackSwing | WarlockFlagAffliction, - MissileSpeed: 20, - - ManaCost: core.ManaCostOptions{ - BaseCost: 0.12, - }, - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - }, - CD: core.Cooldown{ - Timer: warlock.NewTimer(), - Duration: time.Second * 12, - }, - }, - - DamageMultiplier: 1, - ThreatMultiplier: 1, - BonusCoefficient: spellCoeff, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - baseDamage := sim.Roll(baseLowDamage, baseHighDamage) - result := spell.CalcDamage(sim, target, baseDamage, spell.OutcomeMagicHitAndCrit) - spell.WaitTravelTime(sim, func(sim *core.Simulation) { - spell.DealDamage(sim, result) - if result.Landed() { - warlock.HauntDebuffAuras.Get(result.Target).Activate(sim) - } - }) - }, - RelatedAuras: []core.AuraArray{warlock.HauntDebuffAuras}, - }) -} diff --git a/sim/warlock/immolate.go b/sim/warlock/immolate.go index 361efabf1..971c22b65 100644 --- a/sim/warlock/immolate.go +++ b/sim/warlock/immolate.go @@ -5,7 +5,6 @@ import ( "time" "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" ) const ImmolateRanks = 8 @@ -20,11 +19,6 @@ func (warlock *Warlock) getImmolateConfig(rank int) core.SpellConfig { manaCost := [ImmolateRanks + 1]float64{0, 25, 45, 90, 155, 220, 295, 370, 380}[rank] level := [ImmolateRanks + 1]int{0, 1, 10, 20, 30, 40, 50, 60, 60}[rank] - hasInvocationRune := warlock.HasRune(proto.WarlockRune_RuneBeltInvocation) - hasPandemicRune := warlock.HasRune(proto.WarlockRune_RuneHelmPandemic) - hasUnstableAffliction := warlock.HasRune(proto.WarlockRune_RuneBracerUnstableAffliction) - hasShadowflameRune := warlock.HasRune(proto.WarlockRune_RuneBootsShadowflame) - return core.SpellConfig{ SpellCode: SpellCode_WarlockImmolate, ActionID: core.ActionID{SpellID: spellId}, @@ -49,9 +43,6 @@ func (warlock *Warlock) getImmolateConfig(rank int) core.SpellConfig { }, CastTime: func(spell *core.Spell) time.Duration { durationDecrease := time.Duration(0) - if warlock.shadowSparkAura.IsActive() { - durationDecrease = (spell.DefaultCast.CastTime / 2) * time.Duration(warlock.shadowSparkAura.GetStacks()) - } return spell.DefaultCast.CastTime - durationDecrease }, }, @@ -74,14 +65,7 @@ func (warlock *Warlock) getImmolateConfig(rank int) core.SpellConfig { }, OnTick: func(sim *core.Simulation, target *core.Unit, dot *core.Dot) { var result *core.SpellResult - if hasPandemicRune { - // We add the crit damage bonus and remove it after the call to not affect the initial damage portion of the spell - dot.Spell.CritDamageBonus += 1 - result = dot.CalcSnapshotDamage(sim, target, dot.OutcomeSnapshotCrit) - dot.Spell.CritDamageBonus -= 1 - } else { - result = dot.CalcSnapshotDamage(sim, target, dot.OutcomeTick) - } + result = dot.CalcSnapshotDamage(sim, target, dot.OutcomeTick) dot.Spell.DealPeriodicDamage(sim, result) }, }, @@ -94,19 +78,6 @@ func (warlock *Warlock) getImmolateConfig(rank int) core.SpellConfig { if result.Landed() { dot := spell.Dot(target) - - // UA, Immo, Shadowflame exclusivity - if hasUnstableAffliction && warlock.UnstableAffliction.Dot(target).IsActive() { - warlock.UnstableAffliction.Dot(target).Deactivate(sim) - } - if hasShadowflameRune && warlock.Shadowflame.Dot(target).IsActive() { - warlock.Shadowflame.Dot(target).Deactivate(sim) - } - - if hasInvocationRune && dot.IsActive() { - warlock.InvocationRefresh(sim, dot) - } - dot.Apply(sim) } diff --git a/sim/warlock/immolation_aura.go b/sim/warlock/immolation_aura.go deleted file mode 100644 index 270d821db..000000000 --- a/sim/warlock/immolation_aura.go +++ /dev/null @@ -1,103 +0,0 @@ -package warlock - -import ( - "time" - - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" - "github.com/wowsims/classic/sim/core/stats" -) - -// Immolation Aura now triggers from being attacked rather than as a periodic effect. This cannot occur more than once per second, and does not require the attack to hit. -// Immolation Aura now also increases fire damage by 10%. -func (warlock *Warlock) registerImmolationAuraSpell() { - if !warlock.HasRune(proto.WarlockRune_RuneBracerImmolationAura) { - return - } - - spellCoeff := 0.045 - baseDamage := warlock.baseRuneAbilityDamage() * 0.2 - - immoAuraProc := warlock.GetOrRegisterSpell(core.SpellConfig{ - ActionID: core.ActionID{SpellID: 427725}, - SpellSchool: core.SpellSchoolFire, - DefenseType: core.DefenseTypeMagic, - ProcMask: core.ProcMaskEmpty, - Flags: core.SpellFlagNoOnCastComplete | core.SpellFlagPassiveSpell, - - DamageMultiplier: 1, - ThreatMultiplier: 1, - BonusCoefficient: spellCoeff, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - for _, aoeTarget := range sim.Encounter.TargetUnits { - spell.CalcAndDealDamage(sim, aoeTarget, baseDamage, spell.OutcomeAlwaysHit) - } - }, - }) - - var pa *core.PendingAction - immoAura := warlock.RegisterAura(core.Aura{ - Label: "Immolation Aura", - ActionID: core.ActionID{SpellID: int32(proto.WarlockRune_RuneBracerImmolationAura)}, - Duration: core.NeverExpires, - OnGain: func(aura *core.Aura, sim *core.Simulation) { - pa = core.NewPeriodicAction(sim, core.PeriodicActionOptions{ - Period: time.Second * 2, - OnAction: func(s *core.Simulation) { - immoAuraProc.Cast(sim, warlock.CurrentTarget) - }, - }) - // Dont proc damage in prepull - if pa.NextActionAt < 0 { - pa.NextActionAt = 0 - } - sim.AddPendingAction(pa) - - for si := stats.SchoolIndexArcane; si < stats.SchoolLen; si++ { - warlock.PseudoStats.SchoolDamageTakenMultiplier[si] *= 0.9 - } - - warlock.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexFire] *= 1.10 - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - pa.Cancel(sim) - - for si := stats.SchoolIndexArcane; si < stats.SchoolLen; si++ { - warlock.PseudoStats.SchoolDamageTakenMultiplier[si] /= 0.9 - } - - warlock.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexFire] /= 1.10 - }, - }) - - core.MakeProcTriggerAura(&warlock.Unit, core.ProcTrigger{ - Name: "Immolation Aura Trigger", - Callback: core.CallbackOnSpellHitTaken, - ProcMask: core.ProcMaskSpellDamage, - ICD: time.Second * 1, - Handler: func(sim *core.Simulation, _ *core.Spell, _ *core.SpellResult) { - immoAura.Activate(sim) - }, - }) - - warlock.ImmolationAura = warlock.RegisterSpell(core.SpellConfig{ - ActionID: core.ActionID{SpellID: int32(proto.WarlockRune_RuneBracerImmolationAura)}, - SpellSchool: core.SpellSchoolFire, - Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | core.SpellFlagNoOnCastComplete | WarlockFlagDestruction, - - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - }, - }, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - if immoAura.IsActive() { - immoAura.Deactivate(sim) - } else { - immoAura.Activate(sim) - } - }, - }) -} diff --git a/sim/warlock/incinerate.go b/sim/warlock/incinerate.go deleted file mode 100644 index 9c00620e6..000000000 --- a/sim/warlock/incinerate.go +++ /dev/null @@ -1,65 +0,0 @@ -package warlock - -import ( - "time" - - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" - "github.com/wowsims/classic/sim/core/stats" -) - -const IncinerateCastTime = time.Millisecond * 2250 - -func (warlock *Warlock) registerIncinerateSpell() { - if !warlock.HasRune(proto.WarlockRune_RuneBracerIncinerate) { - return - } - spellCoeff := 0.714 - baseLowDamage := warlock.baseRuneAbilityDamage() * 2.22 - baseHighDamage := warlock.baseRuneAbilityDamage() * 2.58 - - warlock.IncinerateAura = warlock.RegisterAura(core.Aura{ - Label: "Incinerate Aura", - ActionID: core.ActionID{SpellID: int32(proto.WarlockRune_RuneBracerIncinerate)}, - Duration: time.Second * 15, - OnGain: func(aura *core.Aura, sim *core.Simulation) { - warlock.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexFire] *= 1.40 - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - warlock.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexFire] /= 1.40 - }, - }) - - warlock.Incinerate = warlock.RegisterSpell(core.SpellConfig{ - SpellCode: SpellCode_WarlockIncinerate, - ActionID: core.ActionID{SpellID: 412758}, - SpellSchool: core.SpellSchoolFire, - DefenseType: core.DefenseTypeMagic, - ProcMask: core.ProcMaskSpellDamage, - Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | core.SpellFlagBinary | WarlockFlagDestruction, - MissileSpeed: 24, - - ManaCost: core.ManaCostOptions{ - BaseCost: 0.14, - }, - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - CastTime: IncinerateCastTime, - }, - }, - - DamageMultiplier: 1, - ThreatMultiplier: 1, - BonusCoefficient: spellCoeff, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - var baseDamage = sim.Roll(baseLowDamage, baseHighDamage) - result := spell.CalcDamage(sim, target, baseDamage, spell.OutcomeMagicHitAndCrit) - warlock.IncinerateAura.Activate(sim) - spell.WaitTravelTime(sim, func(sim *core.Simulation) { - spell.DealDamage(sim, result) - }) - }, - }) -} diff --git a/sim/warlock/infernal_armor.go b/sim/warlock/infernal_armor.go deleted file mode 100644 index 64a076697..000000000 --- a/sim/warlock/infernal_armor.go +++ /dev/null @@ -1,52 +0,0 @@ -package warlock - -import ( - "time" - - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" -) - -func (warlock *Warlock) registerInfernalArmorCD() { - if !warlock.HasRune(proto.WarlockRune_RuneCloakInfernalArmor) { - return - } - - actionID := core.ActionID{SpellID: int32(proto.WarlockRune_RuneCloakInfernalArmor)} - - // TODO: Unsure if there's a better way to do this - physResistanceMultiplier := 1.0 - infernalArmorAura := warlock.RegisterAura(core.Aura{ - ActionID: actionID, - Label: "Infernal Armor", - Duration: time.Second * 10, - OnGain: func(aura *core.Aura, sim *core.Simulation) { - attackTable := warlock.CurrentTarget.AttackTables[warlock.UnitIndex][proto.CastType_CastTypeMainHand] - physResistanceMultiplier = 1 - attackTable.GetArmorDamageModifier() - warlock.PseudoStats.SchoolDamageTakenMultiplier.MultiplyMagicSchools(physResistanceMultiplier) - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - warlock.PseudoStats.SchoolDamageTakenMultiplier.MultiplyMagicSchools(1 / physResistanceMultiplier) - }, - }) - - spell := warlock.RegisterSpell(core.SpellConfig{ - ActionID: actionID, - SpellSchool: core.SpellSchoolShadow, - Flags: core.SpellFlagNoOnCastComplete, - Cast: core.CastConfig{ - CD: core.Cooldown{ - Timer: warlock.NewTimer(), - Duration: time.Minute * 1, - }, - }, - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - infernalArmorAura.Activate(sim) - }, - }) - - warlock.AddMajorCooldown(core.MajorCooldown{ - Spell: spell, - Type: core.CooldownTypeSurvival, - }) -} diff --git a/sim/warlock/lifetap.go b/sim/warlock/lifetap.go index b67bd3054..fc2d3a9d3 100644 --- a/sim/warlock/lifetap.go +++ b/sim/warlock/lifetap.go @@ -53,14 +53,7 @@ func (warlock *Warlock) getLifeTapBaseConfig(rank int) core.SpellConfig { spell.DealDamage(sim, result) } - if warlock.MetamorphosisAura != nil && warlock.MetamorphosisAura.IsActive() { - restore *= 2 - } - warlock.AddMana(sim, restore, manaMetrics) - if warlock.ActivePet != nil { - warlock.ActivePet.AddMana(sim, restore, warlock.ActivePet.LifeTapManaMetrics) - } }, } } diff --git a/sim/warlock/metamorphosis.go b/sim/warlock/metamorphosis.go deleted file mode 100644 index 8802d83b4..000000000 --- a/sim/warlock/metamorphosis.go +++ /dev/null @@ -1,57 +0,0 @@ -package warlock - -import ( - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" - "github.com/wowsims/classic/sim/core/stats" -) - -func (warlock *Warlock) registerMetamorphosisSpell() { - if !warlock.HasRune(proto.WarlockRune_RuneHandsMetamorphosis) { - return - } - - actionID := core.ActionID{SpellID: 403789} - warlock.MetamorphosisAura = warlock.RegisterAura(core.Aura{ - Label: "Metamorphosis Aura", - ActionID: actionID, - Duration: core.NeverExpires, - OnGain: func(aura *core.Aura, sim *core.Simulation) { - warlock.ApplyDynamicEquipScaling(sim, stats.Armor, 6) - warlock.ApplyDynamicEquipScaling(sim, stats.BonusArmor, 6) - warlock.PseudoStats.DamageDealtMultiplier *= 0.85 - warlock.PseudoStats.ReducedCritTakenChance += 6 - warlock.PseudoStats.ThreatMultiplier *= 1.77 - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - warlock.RemoveDynamicEquipScaling(sim, stats.Armor, 6) - warlock.RemoveDynamicEquipScaling(sim, stats.BonusArmor, 6) - warlock.PseudoStats.DamageDealtMultiplier /= 0.85 - warlock.PseudoStats.ReducedCritTakenChance -= 6 - warlock.PseudoStats.ThreatMultiplier /= 1.77 - }, - }) - - manaMetrics := warlock.NewManaMetrics(actionID) - - warlock.Metamorphosis = warlock.RegisterSpell(core.SpellConfig{ - ActionID: actionID, - Flags: core.SpellFlagAPL | WarlockFlagDemonology, - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - }, - }, - ManaCost: core.ManaCostOptions{ - BaseCost: 1.0, - }, - ApplyEffects: func(sim *core.Simulation, _ *core.Unit, _ *core.Spell) { - if warlock.MetamorphosisAura.IsActive() { - warlock.MetamorphosisAura.Deactivate(sim) - warlock.AddMana(sim, warlock.BaseMana, manaMetrics) - } else { - warlock.MetamorphosisAura.Activate(sim) - } - }, - }) -} diff --git a/sim/warlock/pet.go b/sim/warlock/pet.go index 967fe53e9..88723c33e 100644 --- a/sim/warlock/pet.go +++ b/sim/warlock/pet.go @@ -38,8 +38,6 @@ func (warlock *Warlock) setDefaultActivePet() { switch warlock.Options.Summon { case proto.WarlockOptions_Imp: warlock.ActivePet = warlock.Imp - case proto.WarlockOptions_Felguard: - warlock.ActivePet = warlock.Felguard case proto.WarlockOptions_Felhunter: warlock.ActivePet = warlock.Felhunter case proto.WarlockOptions_Succubus: @@ -81,11 +79,6 @@ func (warlock *Warlock) registerPets() { warlock.Voidwalker = warlock.makeVoidwalker() warlock.BasePets = []*WarlockPet{warlock.Felhunter, warlock.Imp, warlock.Succubus, warlock.Voidwalker} - - if warlock.HasRune(proto.WarlockRune_RuneBracerSummonFelguard) { - warlock.Felguard = warlock.makeFelguard() - warlock.BasePets = append(warlock.BasePets, warlock.Felguard) - } } func (warlock *Warlock) makePet(cfg PetConfig, enabledOnStart bool) *WarlockPet { @@ -129,10 +122,6 @@ func (warlock *Warlock) makePet(cfg PetConfig, enabledOnStart bool) *WarlockPet } func (warlock *Warlock) registerPetAbilities() { - if warlock.Felguard != nil { - warlock.Felguard.registerFelguardCleaveSpell() - warlock.Felguard.registerFelguardDemonicFrenzyAura() - } warlock.Imp.registerImpFireboltSpell() warlock.Succubus.registerSuccubusLashOfPainSpell() } diff --git a/sim/warlock/rain_of_fire.go b/sim/warlock/rain_of_fire.go index a876ee50f..3811af789 100644 --- a/sim/warlock/rain_of_fire.go +++ b/sim/warlock/rain_of_fire.go @@ -5,24 +5,18 @@ import ( "time" "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" ) const RainOfFireRanks = 4 func (warlock *Warlock) getRainOfFireBaseConfig(rank int) core.SpellConfig { - hasLakeOfFireRune := warlock.HasRune(proto.WarlockRune_RuneChestLakeOfFire) - spellId := [RainOfFireRanks + 1]int32{0, 5740, 6219, 11677, 11678}[rank] spellCoeff := [RainOfFireRanks + 1]float64{0, 0.083, 0.083, 0.083, 0.083}[rank] baseDamage := [RainOfFireRanks + 1]float64{0, 42, 92, 155, 226}[rank] manaCost := [RainOfFireRanks + 1]float64{0, 295, 605, 885, 1185}[rank] level := [RainOfFireRanks + 1]int{0, 20, 34, 46, 58}[rank] - flags := core.SpellFlagAPL | core.SpellFlagResetAttackSwing | WarlockFlagDestruction - if !hasLakeOfFireRune { - flags |= core.SpellFlagChanneled - } + flags := core.SpellFlagAPL | core.SpellFlagResetAttackSwing | WarlockFlagDestruction | core.SpellFlagChanneled config := core.SpellConfig{ ActionID: core.ActionID{SpellID: spellId}, @@ -69,13 +63,6 @@ func (warlock *Warlock) getRainOfFireBaseConfig(rank int) core.SpellConfig { }, } - if hasLakeOfFireRune { - config.Cast.CD = core.Cooldown{ - Timer: warlock.NewTimer(), - Duration: time.Second * 8, - } - } - return config } diff --git a/sim/warlock/runes.go b/sim/warlock/runes.go deleted file mode 100644 index 5414e36ae..000000000 --- a/sim/warlock/runes.go +++ /dev/null @@ -1,518 +0,0 @@ -package warlock - -import ( - "fmt" - "slices" - "time" - - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" - "github.com/wowsims/classic/sim/core/stats" -) - -func (warlock *Warlock) ApplyRunes() { - // Helm runes - warlock.applyVengeance() - warlock.applyBackdraft() - - // Cloak Runes - warlock.applyDecimation() - warlock.registerInfernalArmorCD() - - // Chest Runes - warlock.applyDemonicTactics() - - // Bracer Runes - warlock.registerIncinerateSpell() - warlock.registerUnstableAfflictionSpell() - warlock.registerImmolationAuraSpell() - - // Glove Runes - warlock.registerHauntSpell() - warlock.registerChaosBoltSpell() - warlock.registerMetamorphosisSpell() - warlock.registerShadowCleaveSpell() - - // Belt Runes - warlock.applyGrimoireOfSynergy() - warlock.applyShadowAndFlame() - - // Pants Runes - warlock.applyEverlastingAffliction() - warlock.applyDemonicPact() - warlock.registerDemonicGraceSpell() - - // Boots Runes - warlock.applyDemonicKnowledge() - warlock.applyDanceOfTheWicked() - warlock.registerShadowflameSpell() - warlock.applyMarkOfChaos() -} - -func (warlock *Warlock) applyVengeance() { - if !warlock.HasRune(proto.WarlockRune_RuneHelmVengeance) { - return - } - - actionID := core.ActionID{SpellID: int32(proto.WarlockRune_RuneHelmVengeance)} - healthMetrics := warlock.NewHealthMetrics(actionID) - var bonusHealth float64 - - aura := warlock.RegisterAura(core.Aura{ - Label: "Vengeance", - ActionID: actionID, - Duration: time.Second * 20, - - OnGain: func(aura *core.Aura, sim *core.Simulation) { - bonusHealth = warlock.MaxHealth() * 0.30 - warlock.AddStatsDynamic(sim, stats.Stats{stats.Health: bonusHealth}) - warlock.GainHealth(sim, bonusHealth, healthMetrics) - - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - warlock.AddStatsDynamic(sim, stats.Stats{stats.Health: -bonusHealth}) - healthDiff := warlock.CurrentHealth() - warlock.MaxHealth() - if healthDiff > 0 { - warlock.RemoveHealth(sim, healthDiff) - } - }, - }) - - spell := warlock.GetOrRegisterSpell(core.SpellConfig{ - ActionID: actionID, - Flags: core.SpellFlagNoOnCastComplete, - - Cast: core.CastConfig{ - CD: core.Cooldown{ - Timer: warlock.NewTimer(), - Duration: time.Minute * 3, - }, - }, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - aura.Activate(sim) - }, - }) - - warlock.AddMajorCooldown(core.MajorCooldown{ - Spell: spell, - Type: core.CooldownTypeSurvival, - ShouldActivate: func(sim *core.Simulation, character *core.Character) bool { - return character.CurrentHealthPercent() < 0.5 - }, - }) -} - -func (warlock *Warlock) applyBackdraft() { - if !warlock.HasRune(proto.WarlockRune_RuneHelmBackdraft) { - return - } - - warlock.BackdraftAura = warlock.RegisterAura(core.Aura{ - Label: "Backdraft", - ActionID: core.ActionID{SpellID: 427714}, - Duration: time.Second * 15, - - OnGain: func(aura *core.Aura, sim *core.Simulation) { - warlock.MultiplyCastSpeed(1.3) - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - warlock.MultiplyCastSpeed(1 / 1.3) - }, - }) -} - -func (warlock *Warlock) applyDecimation() { - if !warlock.HasRune(proto.WarlockRune_RuneBootsDecimation) { - return - } - - affectedSpellCodes := []int32{SpellCode_WarlockShadowBolt, SpellCode_WarlockShadowCleave, SpellCode_WarlockIncinerate, SpellCode_WarlockSoulFire} - - warlock.DecimationAura = warlock.RegisterAura(core.Aura{ - Label: "Decimation", - ActionID: core.ActionID{SpellID: 440873}, - Duration: time.Second * 10, - OnGain: func(aura *core.Aura, sim *core.Simulation) { - for _, spell := range warlock.SoulFire { - spell.CastTimeMultiplier *= .6 - } - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - for _, spell := range warlock.SoulFire { - spell.CastTimeMultiplier /= .6 - } - }, - }) - - // Hidden trigger aura - core.MakePermanent(warlock.RegisterAura(core.Aura{ - Label: "Decimation Trigger", - OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { - if result.Landed() && sim.IsExecutePhase35() && slices.Contains(affectedSpellCodes, spell.SpellCode) { - warlock.DecimationAura.Activate(sim) - } - }, - })) -} - -func (warlock *Warlock) applyMarkOfChaos() { - if !warlock.HasRune(proto.WarlockRune_RuneCloakMarkOfChaos) { - return - } - - // warlock.MarkOfChaosAuras = warlock.NewEnemyAuraArray(func(target *core.Unit, _ int32) *core.Aura { - // return core.MarkOfChaosDebuffAura(target) - // }) -} - -func (warlock *Warlock) applyMarkOfChaosDebuff(sim *core.Simulation, target *core.Unit, duration time.Duration) { - aura := warlock.MarkOfChaosAuras.Get(target) - // Only expire if not set as a permanent raid debuff. - if !aura.IsPermanent() { - aura.Duration = duration - aura.UpdateExpires(sim, sim.CurrentTime+duration) - } - aura.Activate(sim) -} - -func (warlock *Warlock) InvocationRefresh(sim *core.Simulation, dot *core.Dot) { - if dot.RemainingDuration(sim) < time.Second*6 { - ticksLeft := dot.NumberOfTicks - dot.TickCount - for i := int32(0); i < ticksLeft; i++ { - dot.TickOnce(sim) - } - } -} - -func (warlock *Warlock) applyEverlastingAffliction() { - if !warlock.HasRune(proto.WarlockRune_RuneLegsEverlastingAffliction) { - return - } - - affectedSpellCodes := []int32{SpellCode_WarlockDrainLife, SpellCode_WarlockDrainSoul, SpellCode_WarlockShadowBolt, SpellCode_WarlockShadowCleave, SpellCode_WarlockSearingPain, SpellCode_WarlockIncinerate, SpellCode_WarlockHaunt} - warlock.RegisterAura(core.Aura{ - Label: "Everlasting Affliction Trigger", - Duration: core.NeverExpires, - OnReset: func(aura *core.Aura, sim *core.Simulation) { - aura.Activate(sim) - }, - OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { - if result.Landed() && slices.Contains(affectedSpellCodes, spell.SpellCode) { - for _, spell := range warlock.Corruption { - if spell.Dot(result.Target).IsActive() { - spell.Dot(result.Target).Rollover(sim) - } - } - } - }, - }) -} - -func (warlock *Warlock) applyDanceOfTheWicked() { - if !warlock.HasRune(proto.WarlockRune_RuneBootsDanceOfTheWicked) { - return - } - - actionId := core.ActionID{SpellID: 412800} - dodgeModifier := warlock.NewDynamicStatDependency(stats.SpellCrit, stats.Dodge, 1) - - dotwAura := warlock.GetOrRegisterAura(core.Aura{ - Label: "Dance of the Wicked Proc", - ActionID: actionId, - Duration: 15 * time.Second, - - OnGain: func(aura *core.Aura, sim *core.Simulation) { - warlock.EnableDynamicStatDep(sim, dodgeModifier) - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - warlock.DisableDynamicStatDep(sim, dodgeModifier) - }, - }) - - manaMetric := warlock.NewManaMetrics(actionId) - for _, pet := range warlock.BasePets { - pet.DanceOfTheWickedManaMetrics = pet.NewManaMetrics(actionId) - } - - handler := func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { - if !spell.ProcMask.Matches(core.ProcMaskDirect) { - return - } - - if !result.DidCrit() { - return - } - - dotwAura.Activate(sim) - - warlock.AddMana(sim, warlock.MaxMana()*0.02, manaMetric) - if warlock.ActivePet != nil { - warlock.ActivePet.AddMana(sim, warlock.ActivePet.MaxMana()*0.02, warlock.ActivePet.DanceOfTheWickedManaMetrics) - } - } - - core.MakePermanent(warlock.GetOrRegisterAura(core.Aura{ - Label: "Dance of the Wicked", - OnSpellHitDealt: handler, - OnPeriodicDamageDealt: handler, - })) -} - -func (warlock *Warlock) applyDemonicKnowledge() { - if !warlock.HasRune(proto.WarlockRune_RuneBootsDemonicKnowledge) { - return - } - - for _, pet := range warlock.BasePets { - oldOnPetEnable := pet.OnPetEnable - pet.OnPetEnable = func(sim *core.Simulation) { - oldOnPetEnable(sim) - warlock.DemonicKnowledgeAura.Activate(sim) - } - - oldOnPetDisable := pet.OnPetDisable - pet.OnPetDisable = func(sim *core.Simulation) { - oldOnPetDisable(sim) - warlock.DemonicKnowledgeAura.Deactivate(sim) - } - } - - warlock.DemonicKnowledgeAura = warlock.GetOrRegisterAura(core.Aura{ - Label: "Demonic Knowledge", - ActionID: core.ActionID{SpellID: int32(proto.WarlockRune_RuneBootsDemonicKnowledge)}, - Duration: core.NeverExpires, - OnReset: func(aura *core.Aura, sim *core.Simulation) { - warlock.demonicKnowledgeSp = 0 - }, - OnGain: func(aura *core.Aura, sim *core.Simulation) { - warlock.demonicKnowledgeSp = (warlock.ActivePet.GetStat(stats.Stamina) + warlock.ActivePet.GetStat(stats.Intellect)) * .03 - warlock.AddStatDynamic(sim, stats.SpellPower, warlock.demonicKnowledgeSp) - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - warlock.AddStatDynamic(sim, stats.SpellPower, -warlock.demonicKnowledgeSp) - warlock.demonicKnowledgeSp = 0 - }, - }) -} - -func (warlock *Warlock) applyGrimoireOfSynergy() { - if !warlock.HasRune(proto.WarlockRune_RuneBeltGrimoireOfSynergy) { - return - } - - actionID := core.ActionID{SpellID: 426303} - dmgMod := 1.10 - procChance := 0.10 - - procAuraConfig := core.Aura{ - Label: "Grimoire of Synergy Proc", - ActionID: actionID, - Duration: time.Second * 15, - OnGain: func(aura *core.Aura, sim *core.Simulation) { - aura.Unit.PseudoStats.DamageDealtMultiplier *= dmgMod - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - aura.Unit.PseudoStats.DamageDealtMultiplier /= dmgMod - }, - } - - handlerFunc := func(procAura *core.Aura) func(*core.Aura, *core.Simulation, *core.Spell, *core.SpellResult) { - return func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { - if !spell.ProcMask.Matches(core.ProcMaskDirect) { - return - } - - if sim.RandomFloat("Grimoire of Synergy") > procChance { - return - } - - procAura.Activate(sim) - } - } - warlockProcAura := warlock.GetOrRegisterAura(procAuraConfig) - for _, pet := range warlock.BasePets { - petProcAura := pet.GetOrRegisterAura(procAuraConfig) - core.MakePermanent(warlock.GetOrRegisterAura(core.Aura{ - Label: fmt.Sprintf("Grimoire of Synergy Trigger (%s)", pet.Name), - OnSpellHitDealt: handlerFunc(petProcAura), - OnPeriodicDamageDealt: handlerFunc(petProcAura), - })) - core.MakePermanent(pet.GetOrRegisterAura(core.Aura{ - Label: "Grimoire of Synergy Trigger", - OnSpellHitDealt: handlerFunc(warlockProcAura), - OnPeriodicDamageDealt: handlerFunc(warlockProcAura), - })) - } -} - -func (warlock *Warlock) applyShadowAndFlame() { - if !warlock.HasRune(proto.WarlockRune_RuneBeltShadowAndFlame) { - return - } - - procAura := warlock.GetOrRegisterAura(core.Aura{ - Label: "Shadow and Flame proc", - ActionID: core.ActionID{SpellID: 426311}, - Duration: time.Second * 10, - - OnGain: func(aura *core.Aura, sim *core.Simulation) { - warlock.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexFire] *= 1.10 - warlock.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexShadow] *= 1.10 - }, - OnExpire: func(aura *core.Aura, sim *core.Simulation) { - warlock.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexFire] /= 1.10 - warlock.PseudoStats.SchoolDamageDealtMultiplier[stats.SchoolIndexShadow] /= 1.10 - }, - }) - - procHandler := func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { - if !spell.SpellSchool.Matches(core.SpellSchoolFire | core.SpellSchoolShadow) { - return - } - - if !result.DidCrit() { - return - } - - procAura.Activate(sim) - } - - core.MakePermanent(warlock.GetOrRegisterAura(core.Aura{ - Label: "Shadow and Flame", - OnSpellHitDealt: procHandler, - OnPeriodicDamageDealt: procHandler, - })) -} - -// https://www.wowhead.com/classic/spell=403511/soul-siphon -// Causes your Drain Soul to to deal damage 3 times faster and increases the amount drained by your Drain Life and Drain Soul spells by an additional -// 6% for each of your Warlock Shadow effects afflicting the target, up to a maximum of 18% additional effect. -// When Drain Soul is cast on a target below 20% health, it instead gains 50% per effect, up to a maximum of 150%. -const SoulSiphonDoTMultiplier = 0.06 -const SoulSiphonDoTMultiplierExecute = 1.00 -const SoulSiphonDoTMultiplierMax = 0.18 -const SoulSiphonDoTMultiplierMaxExecute = 3.00 - -func (warlock *Warlock) calcSoulSiphonMultiplier(target *core.Unit, executeBonus bool) float64 { - multiplier := 1.0 - perDoTMultiplier := core.TernaryFloat64(executeBonus, SoulSiphonDoTMultiplierExecute, SoulSiphonDoTMultiplier) - maxMultiplier := 1 + core.TernaryFloat64(executeBonus, SoulSiphonDoTMultiplierMaxExecute, SoulSiphonDoTMultiplierMax) - - for _, spell := range warlock.Corruption { - if spell.Dot(target).IsActive() { - multiplier += perDoTMultiplier - break - } - } - - for _, spell := range warlock.CurseOfAgony { - if spell.Dot(target).IsActive() { - multiplier += perDoTMultiplier - break - } - } - - if warlock.CurseOfDoom != nil && warlock.CurseOfDoom.Dot(target).IsActive() { - multiplier += perDoTMultiplier - } - - for _, spell := range warlock.SiphonLife { - if spell.Dot(target).IsActive() { - multiplier += perDoTMultiplier - break - } - } - - if warlock.UnstableAffliction != nil && warlock.UnstableAffliction.Dot(target).IsActive() { - multiplier += perDoTMultiplier - } - - if warlock.Shadowflame != nil && warlock.Shadowflame.Dot(target).IsActive() { - multiplier += perDoTMultiplier - } - - if warlock.Haunt != nil && warlock.HauntDebuffAuras.Get(target).IsActive() { - multiplier += perDoTMultiplier - } - - return min(multiplier, maxMultiplier) -} - -// Increases the melee and spell critical strike chance of you and your pet by 10%. -func (warlock *Warlock) applyDemonicTactics() { - if !warlock.HasRune(proto.WarlockRune_RuneChestDemonicTactics) { - return - } - - warlock.AddStat(stats.MeleeCrit, 10*core.CritRatingPerCritChance) - warlock.AddStat(stats.SpellCrit, 10*core.SpellCritRatingPerCritChance) -} - -func (warlock *Warlock) getHighestSP() float64 { - return warlock.GetStat(stats.SpellPower) + warlock.GetStat(stats.SpellDamage) + max(warlock.GetStat(stats.FirePower), warlock.GetStat(stats.ShadowPower)) -} - -func (warlock *Warlock) applyDemonicPact() { - if !warlock.HasRune(proto.WarlockRune_RuneLegsDemonicPact) { - return - } - - warlock.PseudoStats.SchoolDamageDealtMultiplier.MultiplyMagicSchools(1.10) - - if warlock.Options.Summon == proto.WarlockOptions_NoSummon { - return - } - - /* icd := core.Cooldown{ - Timer: warlock.NewTimer(), - Duration: 1 * time.Second, - } - - spellPower := max(warlock.getHighestSP()*0.1, float64(warlock.Level)/2.0) - demonicPactAuras := warlock.NewRaidAuraArray(func(u *core.Unit) *core.Aura { - return core.DemonicPactAura(u, spellPower, core.CharacterBuildPhaseNone) - }) - - dpTriggerConfig := core.Aura{ - Label: "Demonic Pact Trigger", - Duration: core.NeverExpires, - OnReset: func(aura *core.Aura, sim *core.Simulation) { - aura.Activate(sim) - }, - OnSpellHitDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { - if !result.DidCrit() || !icd.IsReady(sim) { - return - } - - icd.Use(sim) - - lastBonus := 0.0 - currentSP := warlock.getHighestSP() - warlockAura := demonicPactAuras.Get(&warlock.Unit) - - // Remove DP bonus from SP bonus if active - if warlockAura.IsActive() { - lastBonus = demonicPactAuras.Get(&warlock.Unit).ExclusiveEffects[0].Priority - } - newSPBonus := max(math.Round(0.10*(currentSP-lastBonus)), math.Round(float64(warlock.Level)/2)) - - if warlockAura.RemainingDuration(sim) < 10*time.Second || newSPBonus >= lastBonus { - for _, dpAura := range demonicPactAuras { - if dpAura != nil { - // Force expire/gain because of new sp bonus - dpAura.Deactivate(sim) - - dpAura.ExclusiveEffects[0].SetPriority(sim, newSPBonus) - dpAura.Activate(sim) - dpAura.SetStacks(sim, int32(newSPBonus)) - } - } - } - }, - } - - for _, pet := range warlock.BasePets { - pet.RegisterAura(dpTriggerConfig) - } */ -} diff --git a/sim/warlock/searing_pain.go b/sim/warlock/searing_pain.go index 94f304b62..e80c90926 100644 --- a/sim/warlock/searing_pain.go +++ b/sim/warlock/searing_pain.go @@ -34,13 +34,6 @@ func (warlock *Warlock) getSearingPainBaseConfig(rank int) core.SpellConfig { GCD: core.GCDDefault, CastTime: castTime, }, - ModifyCast: func(sim *core.Simulation, spell *core.Spell, cast *core.Cast) { - if warlock.MetamorphosisAura != nil && warlock.MetamorphosisAura.IsActive() { - spell.DefaultCast.CastTime = 0 - } else { - spell.DefaultCast.CastTime = castTime - } - }, }, BonusCritRating: 2.0 * float64(warlock.Talents.ImprovedSearingPain) * core.CritRatingPerCritChance, diff --git a/sim/warlock/shadow_cleave.go b/sim/warlock/shadow_cleave.go deleted file mode 100644 index b15a83fb8..000000000 --- a/sim/warlock/shadow_cleave.go +++ /dev/null @@ -1,90 +0,0 @@ -package warlock - -import ( - "time" - - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" - "github.com/wowsims/classic/sim/core/stats" -) - -func (warlock *Warlock) getShadowCleaveBaseConfig(rank int) core.SpellConfig { - spellCoeff := [11]float64{0, .047, .1, .187, .286, .286, .286, .286, .286, .286, .286}[rank] - baseDamage := [11][]float64{{0}, {3, 7}, {7, 12}, {14, 23}, {26, 39}, {42, 64}, {60, 91}, {82, 124}, {105, 158}, {128, 193}, {136, 204}}[rank] - spellId := [11]int32{0, 403835, 403839, 403840, 403841, 403842, 403843, 403844, 403848, 403851, 403852}[rank] - manaCost := [11]float64{0, 12, 20, 35, 55, 80, 105, 132, 157, 185, 190}[rank] - level := [11]int{0, 1, 6, 12, 20, 28, 36, 44, 52, 60, 60}[rank] - - results := make([]*core.SpellResult, min(10, warlock.Env.GetNumTargets())) - - return core.SpellConfig{ - ActionID: core.ActionID{SpellID: spellId}, - SpellSchool: core.SpellSchoolShadow, - SpellCode: SpellCode_WarlockShadowCleave, - DefenseType: core.DefenseTypeMagic, - ProcMask: core.ProcMaskSpellDamage, - Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | WarlockFlagDestruction, - RequiredLevel: level, - Rank: rank, - - ManaCost: core.ManaCostOptions{ - FlatCost: manaCost, - }, - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - }, - CD: core.Cooldown{ - Timer: warlock.NewTimer(), - Duration: time.Second * 6, - }, - }, - ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return warlock.MetamorphosisAura.IsActive() - }, - - DamageMultiplier: 1, - ThreatMultiplier: 2, // Undocumented 2x multiplier - BonusCoefficient: spellCoeff, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - for idx := range results { - damage := sim.Roll(baseDamage[0], baseDamage[1]) - results[idx] = spell.CalcDamage(sim, target, damage, spell.OutcomeMagicHitAndCrit) - target = sim.Environment.NextTargetUnit(target) - } - - hasHit := false - for _, result := range results { - if result.Landed() { - hasHit = true - spell.DealDamage(sim, result) - } - } - - if stacks := int32(warlock.GetStat(stats.Defense)); hasHit && stacks > 0 { - warlock.defendersResolveAura.Activate(sim) - if warlock.defendersResolveAura.GetStacks() != stacks { - warlock.defendersResolveAura.SetStacks(sim, stacks) - } - } - }, - } -} - -func (warlock *Warlock) registerShadowCleaveSpell() { - if !warlock.HasRune(proto.WarlockRune_RuneHandsMetamorphosis) { - return - } - - warlock.defendersResolveAura = core.DefendersResolveSpellDamage(warlock.GetCharacter()) - - warlock.ShadowCleave = make([]*core.Spell, 0) - for rank := 1; rank <= ShadowBoltRanks; rank++ { - config := warlock.getShadowCleaveBaseConfig(rank) - - if config.RequiredLevel <= int(warlock.Level) { - warlock.ShadowCleave = append(warlock.ShadowCleave, warlock.GetOrRegisterSpell(config)) - } - } -} diff --git a/sim/warlock/shadowbolt.go b/sim/warlock/shadowbolt.go index 5cd62ad70..c8f6d2cb8 100644 --- a/sim/warlock/shadowbolt.go +++ b/sim/warlock/shadowbolt.go @@ -4,14 +4,11 @@ import ( "time" "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" ) const ShadowBoltRanks = 10 func (warlock *Warlock) getShadowBoltBaseConfig(rank int) core.SpellConfig { - hasMarkOfChaosRune := warlock.HasRune(proto.WarlockRune_RuneCloakMarkOfChaos) - spellCoeff := [ShadowBoltRanks + 1]float64{0, .14, .299, .56, .857, .857, .857, .857, .857, .857, .857}[rank] baseDamage := [ShadowBoltRanks + 1][]float64{{0}, {13, 18}, {26, 32}, {52, 61}, {92, 104}, {150, 170}, {213, 240}, {292, 327}, {373, 415}, {455, 507}, {482, 538}}[rank] spellId := [ShadowBoltRanks + 1]int32{0, 686, 695, 705, 1088, 1106, 7641, 11659, 11660, 11661, 25307}[rank] @@ -19,10 +16,9 @@ func (warlock *Warlock) getShadowBoltBaseConfig(rank int) core.SpellConfig { level := [ShadowBoltRanks + 1]int{0, 1, 6, 12, 20, 28, 36, 44, 52, 60, 60}[rank] castTime := [ShadowBoltRanks + 1]int32{0, 1700, 2200, 2800, 3000, 3000, 3000, 3000, 3000, 3000, 3000}[rank] - shadowboltVolley := warlock.HasRune(proto.WarlockRune_RuneHandsShadowBoltVolley) - damageMulti := core.TernaryFloat64(shadowboltVolley, 0.95, 1.0) + damageMulti := 1.0 - results := make([]*core.SpellResult, min(core.TernaryInt32(shadowboltVolley, 5, 1), warlock.Env.GetNumTargets())) + results := make([]*core.SpellResult, 1, warlock.Env.GetNumTargets()) return core.SpellConfig{ SpellCode: SpellCode_WarlockShadowBolt, @@ -43,9 +39,6 @@ func (warlock *Warlock) getShadowBoltBaseConfig(rank int) core.SpellConfig { CastTime: time.Millisecond * time.Duration(castTime), }, }, - ExtraCastCondition: func(sim *core.Simulation, target *core.Unit) bool { - return warlock.MetamorphosisAura == nil || !warlock.MetamorphosisAura.IsActive() - }, DamageMultiplier: damageMulti, ThreatMultiplier: 1, @@ -68,10 +61,6 @@ func (warlock *Warlock) getShadowBoltBaseConfig(rank int) core.SpellConfig { } } - if hasMarkOfChaosRune && warlock.MarkOfChaosAuras.Get(warlock.CurrentTarget).IsActive() { - activeEffectMultiplier += warlock.shadowBoltActiveEffectMultiplierPer - } - activeEffectMultiplier = min(warlock.shadowBoltActiveEffectMultiplierMax, activeEffectMultiplier) } diff --git a/sim/warlock/shadowflame.go b/sim/warlock/shadowflame.go deleted file mode 100644 index 575979b32..000000000 --- a/sim/warlock/shadowflame.go +++ /dev/null @@ -1,101 +0,0 @@ -package warlock - -import ( - "time" - - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" -) - -const ShadowflameCastTime = time.Second * 2 - -func (warlock *Warlock) registerShadowflameSpell() { - if !warlock.HasRune(proto.WarlockRune_RuneBootsShadowflame) { - return - } - - hasInvocationRune := warlock.HasRune(proto.WarlockRune_RuneBeltInvocation) - hasPandemicRune := warlock.HasRune(proto.WarlockRune_RuneHelmPandemic) - - baseSpellCoeff := 0.20 - dotSpellCoeff := 0.13 - baseDamage := warlock.baseRuneAbilityDamage() * 2.26 - dotDamage := warlock.baseRuneAbilityDamage() * 0.61 - - numTicks := int32(5) - tickLength := time.Second * 3 - - warlock.Shadowflame = warlock.RegisterSpell(core.SpellConfig{ - SpellCode: SpellCode_WarlockShadowflame, - ActionID: core.ActionID{SpellID: 426320}, - SpellSchool: core.SpellSchoolFire | core.SpellSchoolShadow, - DefenseType: core.DefenseTypeMagic, - ProcMask: core.ProcMaskSpellDamage, - Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | WarlockFlagAffliction | WarlockFlagDestruction | WarlockFlagHaunt, - - ManaCost: core.ManaCostOptions{ - BaseCost: 0.27, - }, - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - CastTime: time.Second * 2, - }, - }, - - Dot: core.DotConfig{ - Aura: core.Aura{ - Label: "Shadowflame" + warlock.Label, - }, - - NumberOfTicks: numTicks, - TickLength: tickLength, - BonusCoefficient: dotSpellCoeff, - - OnSnapshot: func(sim *core.Simulation, target *core.Unit, dot *core.Dot, isRollover bool) { - dot.Snapshot(target, dotDamage, isRollover) - }, - OnTick: func(sim *core.Simulation, target *core.Unit, dot *core.Dot) { - var result *core.SpellResult - if hasPandemicRune { - // We add the crit damage bonus and remove it after the call to not affect the initial damage portion of the spell - dot.Spell.CritDamageBonus += 1 - result = dot.CalcSnapshotDamage(sim, target, dot.OutcomeSnapshotCrit) - dot.Spell.CritDamageBonus -= 1 - } else { - result = dot.CalcSnapshotDamage(sim, target, dot.OutcomeTick) - } - dot.Spell.DealPeriodicDamage(sim, result) - }, - }, - - DamageMultiplier: 1, - ThreatMultiplier: 1, - BonusCoefficient: baseSpellCoeff, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - oldMultiplier := spell.DamageMultiplier - spell.DamageMultiplier *= 1 + warlock.improvedImmolateBonus() - result := spell.CalcDamage(sim, target, baseDamage, spell.OutcomeMagicHitAndCrit) - spell.DamageMultiplier = oldMultiplier - - if result.Landed() { - dot := spell.Dot(target) - - // Shadowflame and Immolate are exclusive - immoDot := warlock.getActiveImmolateSpell(target) - if immoDot != nil { - immoDot.Dot(target).Deactivate(sim) - } - - if hasInvocationRune && dot.IsActive() { - warlock.InvocationRefresh(sim, dot) - } - - dot.Apply(sim) - } - - spell.DealDamage(sim, result) - }, - }) -} diff --git a/sim/warlock/siphon_life.go b/sim/warlock/siphon_life.go index 58ba9ab6c..3bad95577 100644 --- a/sim/warlock/siphon_life.go +++ b/sim/warlock/siphon_life.go @@ -5,7 +5,6 @@ import ( "time" "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" ) const SiphonLifeRanks = 4 @@ -22,15 +21,12 @@ func (warlock *Warlock) getSiphonLifeBaseConfig(rank int) core.SpellConfig { baseDamage *= 1 + warlock.shadowMasteryBonus() - hasInvocationRune := warlock.HasRune(proto.WarlockRune_RuneBeltInvocation) - hasPandemicRune := warlock.HasRune(proto.WarlockRune_RuneHelmPandemic) - return core.SpellConfig{ ActionID: actionID, SpellSchool: core.SpellSchoolShadow, DefenseType: core.DefenseTypeMagic, ProcMask: core.ProcMaskSpellDamage, - Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | core.SpellFlagBinary | WarlockFlagAffliction | WarlockFlagHaunt, + Flags: core.SpellFlagAPL | core.SpellFlagResetAttackSwing | core.SpellFlagBinary | WarlockFlagAffliction, RequiredLevel: level, Rank: rank, @@ -43,7 +39,7 @@ func (warlock *Warlock) getSiphonLifeBaseConfig(rank int) core.SpellConfig { }, }, - CritDamageBonus: core.TernaryFloat64(hasPandemicRune, 1, 0), + CritDamageBonus: 0, DamageMultiplierAdditive: 1, DamageMultiplier: 1, @@ -72,11 +68,7 @@ func (warlock *Warlock) getSiphonLifeBaseConfig(rank int) core.SpellConfig { dot.Spell.Flags |= core.SpellFlagIgnoreTargetModifiers var result *core.SpellResult - if hasPandemicRune { - result = dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeSnapshotCrit) - } else { - result = dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeTick) - } + result = dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeTick) // revert flag changes dot.Spell.Flags ^= core.SpellFlagIgnoreTargetModifiers @@ -90,10 +82,6 @@ func (warlock *Warlock) getSiphonLifeBaseConfig(rank int) core.SpellConfig { result := spell.CalcOutcome(sim, target, spell.OutcomeMagicHitNoHitCounter) if result.Landed() { dot := spell.Dot(target) - if hasInvocationRune && dot.IsActive() { - warlock.InvocationRefresh(sim, dot) - } - dot.Apply(sim) } }, diff --git a/sim/warlock/soul_fire.go b/sim/warlock/soul_fire.go index d66c3f579..97c553ecc 100644 --- a/sim/warlock/soul_fire.go +++ b/sim/warlock/soul_fire.go @@ -4,15 +4,12 @@ import ( "time" "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" ) const SoulFireRanks = 2 const SoulFireCastTime = time.Millisecond * 6000 func (warlock *Warlock) getSoulFireBaseConfig(rank int) core.SpellConfig { - hasDecimationRune := warlock.HasRune(proto.WarlockRune_RuneBootsDecimation) - spellId := [SoulFireRanks + 1]int32{0, 6353, 17924}[rank] baseDamage := [SoulFireRanks + 1][]float64{{0, 0}, {628, 789}, {715, 894}}[rank] manaCost := [SoulFireRanks + 1]float64{0, 305, 335}[rank] @@ -53,11 +50,9 @@ func (warlock *Warlock) getSoulFireBaseConfig(rank int) core.SpellConfig { }, } - if !hasDecimationRune { - config.Cast.CD = core.Cooldown{ - Timer: warlock.NewTimer(), - Duration: time.Minute, - } + config.Cast.CD = core.Cooldown{ + Timer: warlock.NewTimer(), + Duration: time.Minute, } return config diff --git a/sim/warlock/summon_demon.go b/sim/warlock/summon_demon.go index fa8b10720..7d8e32aed 100644 --- a/sim/warlock/summon_demon.go +++ b/sim/warlock/summon_demon.go @@ -22,25 +22,6 @@ func (warlock *Warlock) registerSummonDemon() { }, } - // Felguard - if warlock.Felguard != nil { - warlock.SummonDemonSpells = append(warlock.SummonDemonSpells, warlock.RegisterSpell(core.SpellConfig{ - ActionID: core.ActionID{SpellID: 427733}, - SpellSchool: core.SpellSchoolShadow, - ProcMask: core.ProcMaskEmpty, - Flags: core.SpellFlagAPL, - - ManaCost: core.ManaCostOptions{ - FlatCost: warlock.BaseMana * 0.80 * (1 - .20*float64(warlock.Talents.MasterSummoner)), - }, - Cast: cast, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - warlock.changeActivePet(sim, warlock.Felguard, false) - }, - })) - } - // Felhunter warlock.SummonDemonSpells = append(warlock.SummonDemonSpells, warlock.RegisterSpell(core.SpellConfig{ ActionID: core.ActionID{SpellID: 691}, diff --git a/sim/warlock/talents.go b/sim/warlock/talents.go index 3a3ba14d8..44f01820f 100644 --- a/sim/warlock/talents.go +++ b/sim/warlock/talents.go @@ -156,22 +156,15 @@ func (warlock *Warlock) applyNightfall() { for _, spell := range warlock.ShadowBolt { spell.CastTimeMultiplier -= 1 } - for _, spell := range warlock.ShadowCleave { - spell.CD.Reset() - spell.DamageMultiplier *= 2 - } }, OnExpire: func(aura *core.Aura, sim *core.Simulation) { for _, spell := range warlock.ShadowBolt { spell.CastTimeMultiplier += 1 } - for _, spell := range warlock.ShadowCleave { - spell.DamageMultiplier /= 2 - } }, OnCastComplete: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell) { // Check if the shadowbolt was instant cast and not a normal one - if (spell.SpellCode == SpellCode_WarlockShadowBolt && spell.CurCast.CastTime == 0) || spell.SpellCode == SpellCode_WarlockShadowCleave { + if spell.SpellCode == SpellCode_WarlockShadowBolt && spell.CurCast.CastTime == 0 { aura.Deactivate(sim) } }, @@ -183,12 +176,10 @@ func (warlock *Warlock) applyNightfall() { warlock.nightfallProcChance = 0.02 * float64(warlock.Talents.Nightfall) - hasSoulSiphonRune := warlock.HasRune(proto.WarlockRune_RuneCloakSoulSiphon) - core.MakePermanent(warlock.RegisterAura(core.Aura{ Label: "Nightfall Hidden Aura", OnPeriodicDamageDealt: func(aura *core.Aura, sim *core.Simulation, spell *core.Spell, result *core.SpellResult) { - if (spell.SpellCode == SpellCode_WarlockCorruption || spell.SpellCode == SpellCode_WarlockDrainLife || (hasSoulSiphonRune && spell.SpellCode == SpellCode_WarlockDrainSoul)) && sim.Proc(warlock.nightfallProcChance, "Nightfall") { + if (spell.SpellCode == SpellCode_WarlockCorruption || spell.SpellCode == SpellCode_WarlockDrainLife) && sim.Proc(warlock.nightfallProcChance, "Nightfall") { warlock.ShadowTranceAura.Activate(sim) } }, @@ -289,13 +280,11 @@ func (warlock *Warlock) applyMasterDemonologist() { warlock.disableMasterDemonologistOnSacrifice = true - hasMetaRune := warlock.HasRune(proto.WarlockRune_RuneHandsMetamorphosis) - points := float64(warlock.Talents.MasterDemonologist) bonusMultiplier := 1 + warlock.masterDemonologistBonus damageDealtMultiplier := 1 + (0.02 * points * bonusMultiplier) damageTakenMultiplier := 1 - (0.02 * points * bonusMultiplier) - threatMultiplier := 1 + (core.TernaryFloat64(hasMetaRune, 0.04*points, -0.04*points) * bonusMultiplier) + threatMultiplier := 1 + -0.04*points*bonusMultiplier bonusResistance := 2 * points * bonusMultiplier masterDemonologistConfig := core.Aura{ @@ -308,11 +297,6 @@ func (warlock *Warlock) applyMasterDemonologist() { } switch warlock.ActivePet { - case warlock.Felguard: - aura.Unit.PseudoStats.DamageDealtMultiplier *= damageDealtMultiplier - aura.Unit.PseudoStats.DamageTakenMultiplier *= damageTakenMultiplier - aura.Unit.PseudoStats.ThreatMultiplier *= threatMultiplier - aura.Unit.AddResistancesDynamic(sim, bonusResistance) case warlock.Felhunter: aura.Unit.AddResistancesDynamic(sim, bonusResistance) case warlock.Imp: @@ -329,11 +313,6 @@ func (warlock *Warlock) applyMasterDemonologist() { } switch warlock.ActivePet { - case warlock.Felguard: - aura.Unit.PseudoStats.DamageDealtMultiplier /= damageDealtMultiplier - aura.Unit.PseudoStats.DamageTakenMultiplier /= damageTakenMultiplier - aura.Unit.PseudoStats.ThreatMultiplier /= threatMultiplier - aura.Unit.AddResistancesDynamic(sim, -bonusResistance) case warlock.Felhunter: aura.Unit.AddResistancesDynamic(sim, -bonusResistance) case warlock.Imp: @@ -516,11 +495,6 @@ func (warlock *Warlock) applyDemonicSacrifice() { ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { switch warlock.ActivePet { - case warlock.Felguard: - felhunterAura.Activate(sim) - impAura.Activate(sim) - succubusAura.Activate(sim) - voidwalkerAura.Activate(sim) case warlock.Felhunter: felhunterAura.Activate(sim) case warlock.Imp: @@ -550,7 +524,7 @@ func (warlock *Warlock) applyImprovedShadowBolt() { return core.ImprovedShadowBoltAura(unit, warlock.Talents.ImprovedShadowBolt, stackCount) }) - affectedSpellCodes := []int32{SpellCode_WarlockShadowBolt, SpellCode_WarlockShadowCleave, SpellCode_WarlockShadowflame} + affectedSpellCodes := []int32{SpellCode_WarlockShadowBolt} core.MakePermanent(warlock.RegisterAura(core.Aura{ Label: "ISB Trigger", OnInit: func(aura *core.Aura, sim *core.Simulation) { @@ -588,7 +562,7 @@ func (warlock *Warlock) applyBane() { points := time.Duration(warlock.Talents.Bane) warlock.OnSpellRegistered(func(spell *core.Spell) { - if spell.SpellCode == SpellCode_WarlockShadowBolt || spell.SpellCode == SpellCode_WarlockImmolate || spell.SpellCode == SpellCode_WarlockShadowflame { + if spell.SpellCode == SpellCode_WarlockShadowBolt || spell.SpellCode == SpellCode_WarlockImmolate { spell.DefaultCast.CastTime -= time.Millisecond * 100 * points } else if spell.SpellCode == SpellCode_WarlockSoulFire { spell.DefaultCast.CastTime -= time.Millisecond * 400 * points diff --git a/sim/warlock/tank/TestAffliction.results b/sim/warlock/tank/TestAffliction.results index 6402954b9..06e0440c7 100644 --- a/sim/warlock/tank/TestAffliction.results +++ b/sim/warlock/tank/TestAffliction.results @@ -6,7 +6,7 @@ character_stats_results: { final_stats: 309.465 final_stats: 194.35 final_stats: 231.15 - final_stats: 325.575 + final_stats: 150 final_stats: 0 final_stats: 40 final_stats: 0 @@ -27,7 +27,7 @@ character_stats_results: { final_stats: 4008.25 final_stats: 0 final_stats: 0 - final_stats: 765.8 + final_stats: 1335.8 final_stats: 540 final_stats: 0 final_stats: 5 @@ -40,7 +40,7 @@ character_stats_results: { final_stats: 60 final_stats: 60 final_stats: 60 - final_stats: 60 + final_stats: 75 final_stats: 384 final_stats: 0 final_stats: 35 @@ -53,9 +53,9 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: -0.24219 + weights: 0.03775 weights: 0 - weights: 0.07296 + weights: 0.24245 weights: 0 weights: 0 weights: 0 @@ -63,8 +63,8 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 3.66598 - weights: 1.00627 + weights: 2.84259 + weights: 0.69073 weights: 0 weights: 0 weights: 0 @@ -99,64 +99,64 @@ stat_weights_results: { dps_results: { key: "TestAffliction-Phase4-Lvl60-Average-Default" value: { - dps: 395.84375 - tps: 281.87701 - hps: 143.33867 + dps: 303.06111 + tps: 233.95111 + hps: 117.81222 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-LongMultiTarget" value: { - dps: 395.57517 - tps: 703.08928 - hps: 142.8239 + dps: 299.94156 + tps: 673.394 + hps: 116.94022 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-LongSingleTarget" value: { - dps: 395.57517 - tps: 283.01063 - hps: 142.8239 + dps: 299.94156 + tps: 230.86622 + hps: 116.94022 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-ShortSingleTarget" value: { - dps: 452.30043 - tps: 318.40647 - hps: 145.6732 + dps: 370.17396 + tps: 275.1174 + hps: 115.57341 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-LongMultiTarget" value: { - dps: 223.03096 - tps: 698.11297 - hps: 82.49614 + dps: 160.53539 + tps: 612.02306 + hps: 67.39116 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-LongSingleTarget" value: { - dps: 223.03096 - tps: 179.23118 - hps: 82.49614 + dps: 160.53539 + tps: 147.96797 + hps: 67.39116 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-ShortSingleTarget" value: { - dps: 245.33588 - tps: 198.82781 - hps: 87.92117 + dps: 205.51436 + tps: 165.71039 + hps: 71.43825 } } dps_results: { key: "TestAffliction-Phase4-Lvl60-SwitchInFrontOfTarget-Default" value: { - dps: 390.74659 - tps: 276.99213 - hps: 143.19304 + dps: 301.51662 + tps: 234.51652 + hps: 118.68617 } } diff --git a/sim/warlock/tank/TestDemonology.results b/sim/warlock/tank/TestDemonology.results index 726842093..2f9b71906 100644 --- a/sim/warlock/tank/TestDemonology.results +++ b/sim/warlock/tank/TestDemonology.results @@ -6,7 +6,7 @@ character_stats_results: { final_stats: 355.88475 final_stats: 194.35 final_stats: 219.5925 - final_stats: 319.79625 + final_stats: 150 final_stats: 0 final_stats: 61 final_stats: 0 @@ -27,7 +27,7 @@ character_stats_results: { final_stats: 4008.25 final_stats: 0 final_stats: 0 - final_stats: 765.8 + final_stats: 1335.8 final_stats: 540 final_stats: 0 final_stats: 5 @@ -40,7 +40,7 @@ character_stats_results: { final_stats: 60 final_stats: 60 final_stats: 60 - final_stats: 60 + final_stats: 75 final_stats: 384 final_stats: 0 final_stats: 35 @@ -53,9 +53,9 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 + weights: 0.20536 weights: 0 - weights: 0 - weights: 0.02972 + weights: 0.09752 weights: 0 weights: 0 weights: 0 @@ -63,8 +63,8 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.51017 - weights: 0.29947 + weights: 2.40139 + weights: 0.59115 weights: 0 weights: 0 weights: 0 @@ -99,64 +99,64 @@ stat_weights_results: { dps_results: { key: "TestDemonology-Phase4-Lvl60-Average-Default" value: { - dps: 47.54011 - tps: 54.8855 - hps: 2.70296 + dps: 262.65857 + tps: 195.71166 + hps: 94.40832 } } dps_results: { key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-FullBuffs-P4-Consumes-LongMultiTarget" value: { - dps: 35.20133 - tps: 97.83623 - hps: 2.65522 + dps: 261.46722 + tps: 566.86787 + hps: 93.65551 } } dps_results: { key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-FullBuffs-P4-Consumes-LongSingleTarget" value: { - dps: 35.20133 - tps: 42.64598 - hps: 2.65522 + dps: 261.46722 + tps: 195.73345 + hps: 93.65551 } } dps_results: { key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-FullBuffs-P4-Consumes-ShortSingleTarget" value: { - dps: 57.07716 - tps: 79.38914 - hps: 13.78919 + dps: 271.74825 + tps: 182.39602 + hps: 110.79571 } } dps_results: { key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-NoBuffs-P4-Consumes-LongMultiTarget" value: { - dps: 20.24215 - tps: 78.72015 - hps: 1.57632 + dps: 145.25484 + tps: 537.20167 + hps: 55.21175 } } dps_results: { key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-NoBuffs-P4-Consumes-LongSingleTarget" value: { - dps: 20.24215 - tps: 25.67848 - hps: 1.57632 + dps: 145.25484 + tps: 120.79855 + hps: 55.21175 } } dps_results: { key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-NoBuffs-P4-Consumes-ShortSingleTarget" value: { - dps: 33.98654 - tps: 48.23407 - hps: 8.38795 + dps: 159.5103 + tps: 128.4425 + hps: 57.42458 } } dps_results: { key: "TestDemonology-Phase4-Lvl60-SwitchInFrontOfTarget-Default" value: { - dps: 41.88046 - tps: 49.34478 - hps: 2.65522 + dps: 262.23806 + tps: 194.95442 + hps: 93.96758 } } diff --git a/sim/warlock/tank/TestDestruction.results b/sim/warlock/tank/TestDestruction.results index e8ddeebe6..9e6c93a70 100644 --- a/sim/warlock/tank/TestDestruction.results +++ b/sim/warlock/tank/TestDestruction.results @@ -6,7 +6,7 @@ character_stats_results: { final_stats: 309.465 final_stats: 194.35 final_stats: 231.15 - final_stats: 325.575 + final_stats: 150 final_stats: 0 final_stats: 40 final_stats: 0 @@ -27,7 +27,7 @@ character_stats_results: { final_stats: 4008.25 final_stats: 0 final_stats: 0 - final_stats: 765.8 + final_stats: 1335.8 final_stats: 540 final_stats: 0 final_stats: 5 @@ -40,7 +40,7 @@ character_stats_results: { final_stats: 60 final_stats: 60 final_stats: 60 - final_stats: 60 + final_stats: 75 final_stats: 384 final_stats: 0 final_stats: 35 @@ -53,9 +53,9 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 0.91009 + weights: 0.05808 weights: 0 - weights: 0.11006 + weights: 0.26765 weights: 0 weights: 0 weights: 0 @@ -63,8 +63,8 @@ stat_weights_results: { weights: 0 weights: 0 weights: 0 - weights: 3.92216 - weights: 1.09794 + weights: 3.03381 + weights: 0.63193 weights: 0 weights: 0 weights: 0 @@ -99,64 +99,64 @@ stat_weights_results: { dps_results: { key: "TestDestruction-Phase4-Lvl60-Average-Default" value: { - dps: 389.2209 - tps: 277.26564 - hps: 136.1828 + dps: 293.64902 + tps: 225.22566 + hps: 111.92924 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-LongMultiTarget" value: { - dps: 388.3852 - tps: 702.12766 - hps: 133.92194 + dps: 291.40163 + tps: 674.63793 + hps: 110.57154 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-LongSingleTarget" value: { - dps: 388.3852 - tps: 276.76072 - hps: 133.92194 + dps: 291.40163 + tps: 224.90416 + hps: 110.57154 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-ShortSingleTarget" value: { - dps: 437.42061 - tps: 307.31494 - hps: 140.78957 + dps: 359.82204 + tps: 264.88475 + hps: 110.73058 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-LongMultiTarget" value: { - dps: 217.59792 - tps: 687.37145 - hps: 79.34399 + dps: 155.99084 + tps: 618.37375 + hps: 63.70662 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-LongSingleTarget" value: { - dps: 217.59792 - tps: 175.07065 - hps: 79.34399 + dps: 155.99084 + tps: 144.48493 + hps: 63.70662 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-ShortSingleTarget" value: { - dps: 238.92422 - tps: 192.95731 - hps: 84.6674 + dps: 197.65123 + tps: 157.50066 + hps: 68.97142 } } dps_results: { key: "TestDestruction-Phase4-Lvl60-SwitchInFrontOfTarget-Default" value: { - dps: 387.76787 - tps: 277.39069 - hps: 136.72322 + dps: 289.9607 + tps: 222.7156 + hps: 112.15944 } } diff --git a/sim/warlock/tank/tank_warlock_test.go b/sim/warlock/tank/tank_warlock_test.go index e3fff1248..8d20643c8 100644 --- a/sim/warlock/tank/tank_warlock_test.go +++ b/sim/warlock/tank/tank_warlock_test.go @@ -93,7 +93,7 @@ var Phase4DestroTalents = "45002400102-03-505020510050115" var DefaultDestroWarlock = &proto.Player_TankWarlock{ TankWarlock: &proto.TankWarlock{ Options: &proto.WarlockOptions{ - Armor: proto.WarlockOptions_FelArmor, + Armor: proto.WarlockOptions_DemonArmor, Summon: proto.WarlockOptions_Imp, WeaponImbue: proto.WarlockOptions_NoWeaponImbue, }, @@ -103,7 +103,7 @@ var DefaultDestroWarlock = &proto.Player_TankWarlock{ var DefaultAfflictionWarlock = &proto.Player_TankWarlock{ TankWarlock: &proto.TankWarlock{ Options: &proto.WarlockOptions{ - Armor: proto.WarlockOptions_FelArmor, + Armor: proto.WarlockOptions_DemonArmor, Summon: proto.WarlockOptions_Imp, WeaponImbue: proto.WarlockOptions_NoWeaponImbue, }, @@ -113,8 +113,8 @@ var DefaultAfflictionWarlock = &proto.Player_TankWarlock{ var DefaultDemonologyWarlock = &proto.Player_TankWarlock{ TankWarlock: &proto.TankWarlock{ Options: &proto.WarlockOptions{ - Armor: proto.WarlockOptions_FelArmor, - Summon: proto.WarlockOptions_Felguard, + Armor: proto.WarlockOptions_DemonArmor, + Summon: proto.WarlockOptions_Imp, WeaponImbue: proto.WarlockOptions_Firestone, }, }, diff --git a/sim/warlock/unstable_affliction.go b/sim/warlock/unstable_affliction.go deleted file mode 100644 index 186d9c71c..000000000 --- a/sim/warlock/unstable_affliction.go +++ /dev/null @@ -1,92 +0,0 @@ -package warlock - -import ( - "time" - - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" -) - -func (warlock *Warlock) registerUnstableAfflictionSpell() { - if !warlock.HasRune(proto.WarlockRune_RuneBracerUnstableAffliction) { - return - } - - hasInvocationRune := warlock.HasRune(proto.WarlockRune_RuneBeltInvocation) - hasPandemicRune := warlock.HasRune(proto.WarlockRune_RuneHelmPandemic) - - baseDamage := warlock.baseRuneAbilityDamage() * 1.1 - - warlock.UnstableAffliction = warlock.GetOrRegisterSpell(core.SpellConfig{ - SpellCode: SpellCode_WarlockUnstableAffliction, - ActionID: core.ActionID{SpellID: int32(proto.WarlockRune_RuneBracerUnstableAffliction)}, - SpellSchool: core.SpellSchoolShadow, - ProcMask: core.ProcMaskSpellDamage, - DefenseType: core.DefenseTypeMagic, - Flags: core.SpellFlagAPL | WarlockFlagHaunt | core.SpellFlagBinary | core.SpellFlagResetAttackSwing | core.SpellFlagPureDot | WarlockFlagAffliction, - - ManaCost: core.ManaCostOptions{ - BaseCost: 0.15, - }, - Cast: core.CastConfig{ - DefaultCast: core.Cast{ - GCD: core.GCDDefault, - CastTime: time.Millisecond * 1500, - }, - }, - - CritDamageBonus: core.TernaryFloat64(hasPandemicRune, 1, 0), - - DamageMultiplier: 1, - ThreatMultiplier: 1, - - Dot: core.DotConfig{ - Aura: core.Aura{ - Label: "UnstableAffliction-" + warlock.Label, - }, - - NumberOfTicks: 6, - TickLength: time.Second * 3, - BonusCoefficient: 0.2, - - OnSnapshot: func(sim *core.Simulation, target *core.Unit, dot *core.Dot, isRollover bool) { - dot.Snapshot(target, baseDamage, isRollover) - }, - OnTick: func(sim *core.Simulation, target *core.Unit, dot *core.Dot) { - if hasPandemicRune { - dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeSnapshotCrit) - } else { - dot.CalcAndDealPeriodicSnapshotDamage(sim, target, dot.OutcomeTick) - } - }, - }, - - ApplyEffects: func(sim *core.Simulation, target *core.Unit, spell *core.Spell) { - result := spell.CalcOutcome(sim, target, spell.OutcomeMagicHitNoHitCounter) - if result.Landed() { - dot := spell.Dot(target) - - // UA is mutually exclusive with Immolate - immoDot := warlock.getActiveImmolateSpell(target) - if immoDot != nil { - immoDot.Dot(target).Deactivate(sim) - } - - if hasInvocationRune && dot.IsActive() { - warlock.InvocationRefresh(sim, dot) - } - - dot.Apply(sim) - } - spell.DealOutcome(sim, result) - }, - ExpectedTickDamage: func(sim *core.Simulation, target *core.Unit, spell *core.Spell, useSnapshot bool) *core.SpellResult { - if useSnapshot { - dot := spell.Dot(target) - return dot.CalcSnapshotDamage(sim, target, dot.Spell.OutcomeExpectedMagicAlwaysHit) - } else { - return spell.CalcPeriodicDamage(sim, target, baseDamage, spell.OutcomeExpectedMagicAlwaysHit) - } - }, - }) -} diff --git a/sim/warlock/warlock.go b/sim/warlock/warlock.go index 23eac536c..376b40622 100644 --- a/sim/warlock/warlock.go +++ b/sim/warlock/warlock.go @@ -13,7 +13,6 @@ const ( WarlockFlagAffliction = core.SpellFlagAgentReserved1 WarlockFlagDemonology = core.SpellFlagAgentReserved2 WarlockFlagDestruction = core.SpellFlagAgentReserved3 - WarlockFlagHaunt = core.SpellFlagAgentReserved4 SpellFlagWarlock = WarlockFlagAffliction | WarlockFlagDemonology | WarlockFlagDestruction ) @@ -29,17 +28,12 @@ const ( SpellCode_WarlockDemonicSacrifice SpellCode_WarlockDrainLife SpellCode_WarlockDrainSoul - SpellCode_WarlockHaunt SpellCode_WarlockImmolate - SpellCode_WarlockIncinerate SpellCode_WarlockLifeTap SpellCode_WarlockSearingPain - SpellCode_WarlockShadowflame - SpellCode_WarlockShadowCleave SpellCode_WarlockShadowBolt SpellCode_WarlockShadowburn SpellCode_WarlockSoulFire - SpellCode_WarlockUnstableAffliction ) type Warlock struct { @@ -50,7 +44,6 @@ type Warlock struct { BasePets []*WarlockPet ActivePet *WarlockPet Felhunter *WarlockPet - Felguard *WarlockPet Imp *WarlockPet Succubus *WarlockPet Voidwalker *WarlockPet @@ -58,27 +51,20 @@ type Warlock struct { // Doomguard *DoomguardPet // Infernal *InfernalPet - ChaosBolt *core.Spell - Conflagrate []*core.Spell - Corruption []*core.Spell - DarkPact *core.Spell - DrainSoul []*core.Spell - Haunt *core.Spell - Immolate []*core.Spell - Incinerate *core.Spell - LifeTap []*core.Spell - SearingPain []*core.Spell - ShadowBolt []*core.Spell - ShadowCleave []*core.Spell - Shadowburn []*core.Spell - SoulFire []*core.Spell - DemonicGrace *core.Spell - DrainLife []*core.Spell - RainOfFire []*core.Spell - SiphonLife []*core.Spell - DeathCoil []*core.Spell - Shadowflame *core.Spell - UnstableAffliction *core.Spell + Conflagrate []*core.Spell + Corruption []*core.Spell + DarkPact *core.Spell + DrainSoul []*core.Spell + Immolate []*core.Spell + LifeTap []*core.Spell + SearingPain []*core.Spell + ShadowBolt []*core.Spell + Shadowburn []*core.Spell + SoulFire []*core.Spell + DrainLife []*core.Spell + RainOfFire []*core.Spell + SiphonLife []*core.Spell + DeathCoil []*core.Spell ActiveCurseAura core.AuraArray CurseOfElements *core.Spell @@ -100,31 +86,17 @@ type Warlock struct { DebuffSpells []*core.Spell SummonDemonSpells []*core.Spell - DemonicKnowledgeAura *core.Aura - HauntDebuffAuras core.AuraArray ImmolationAura *core.Spell - IncinerateAura *core.Aura - Metamorphosis *core.Spell - MetamorphosisAura *core.Aura ShadowTranceAura *core.Aura - PyroclasmAura *core.Aura - DemonicGraceAura *core.Aura AmplifyCurseAura *core.Aura - BackdraftAura *core.Aura ImprovedShadowBoltAuras core.AuraArray - MarkOfChaosAuras core.AuraArray SoulLinkAura *core.Aura - DecimationAura *core.Aura MasterDemonologistAura *core.Aura - zilaGularAura *core.Aura - shadowSparkAura *core.Aura - defendersResolveAura *core.Aura // The sum total of demonic pact spell power * seconds. DPSPAggregate float64 // Extra state and logic variables - demonicKnowledgeSp float64 masterDemonologistBonus float64 // Bonus multiplier applied to the Master Demonologist talent disableMasterDemonologistOnSacrifice bool // Whether to disable the Master Demonologist buff after Sacrificing a pet. Used by TAQ 4pc nightfallProcChance float64 @@ -217,8 +189,6 @@ func NewWarlock(character *core.Character, options *proto.Player, warlockOptions switch warlock.Options.Armor { case proto.WarlockOptions_DemonArmor: warlock.applyDemonArmor() - case proto.WarlockOptions_FelArmor: - warlock.applyFelArmor() } warlock.registerPets() @@ -229,14 +199,6 @@ func NewWarlock(character *core.Character, options *proto.Player, warlockOptions return warlock } -func (warlock *Warlock) HasRune(rune proto.WarlockRune) bool { - return false // warlock.HasRuneById(int32(rune)) -} - -func (warlock *Warlock) baseRuneAbilityDamage() float64 { - return 6.568597 + 0.672028*float64(warlock.Level) + 0.031721*float64(warlock.Level*warlock.Level) -} - func (warlock *Warlock) OnGCDReady(_ *core.Simulation) { } From fab0b198979411c03078c9a0aa236aa91019ba9c Mon Sep 17 00:00:00 2001 From: FelixPflaum <141590183+FelixPflaum@users.noreply.github.com> Date: Fri, 22 Nov 2024 18:40:00 +0100 Subject: [PATCH 2/8] Remove SoD only pet field --- sim/warlock/pet.go | 1 - 1 file changed, 1 deletion(-) diff --git a/sim/warlock/pet.go b/sim/warlock/pet.go index 88723c33e..dc0148c2a 100644 --- a/sim/warlock/pet.go +++ b/sim/warlock/pet.go @@ -22,7 +22,6 @@ type WarlockPet struct { DanceOfTheWickedManaMetrics *core.ResourceMetrics LifeTapManaMetrics *core.ResourceMetrics - T1Tank4PManaMetrics *core.ResourceMetrics // https://www.wowhead.com/classic/spell=457572/s03-item-t1-warlock-tank-4p-bonus manaPooling bool } From 5bb41b232400cbe92c38f2fdc14fbaa94958c5e3 Mon Sep 17 00:00:00 2001 From: FelixPflaum <141590183+FelixPflaum@users.noreply.github.com> Date: Fri, 22 Nov 2024 19:36:54 +0100 Subject: [PATCH 3/8] Remove tank WL --- assets/img/tank_warlock_background.jpg | Bin 342115 -> 0 bytes makefile | 1 - proto/api.proto | 5 +- proto/common.proto | 5 +- sim/register_all.go | 2 - sim/warlock/tank/TestAffliction.results | 162 ------------ sim/warlock/tank/TestDemonology.results | 162 ------------ sim/warlock/tank/TestDestruction.results | 162 ------------ sim/warlock/tank/tank_warlock.go | 61 ----- sim/warlock/tank/tank_warlock_test.go | 155 ----------- tools/database/gen_db/main.go | 5 - .../individual_sim_ui/settings_tab.ts | 3 +- ui/core/components/inputs/warlock_inputs.ts | 3 +- ui/core/components/sim_title_dropdown.tsx | 1 - ui/core/launched_sims.ts | 4 - ui/core/proto_utils/utils.ts | 47 +--- ui/index.html | 46 +--- ui/raid/presets.ts | 2 - ui/scss/sims/index.scss | 1 - ui/scss/sims/tank_warlock/_sim.scss | 8 - ui/scss/sims/tank_warlock/index.scss | 2 - ui/tank_warlock/apls/p1.affi.tank.apl.json | 17 -- ui/tank_warlock/apls/p1.destro.tank.apl.json | 14 - ui/tank_warlock/apls/p2.demo.tank.apl.json | 16 -- ui/tank_warlock/apls/p2.destro.tank.apl.json | 15 -- ui/tank_warlock/apls/p3.destro.tank.apl.json | 18 -- ui/tank_warlock/apls/p4_demo_tank.apl.json | 21 -- .../apls/p4_destro_aff_tank.apl.json | 33 --- ui/tank_warlock/gear_sets/blank.gear.json | 1 - ui/tank_warlock/index.ts | 12 - ui/tank_warlock/inputs.ts | 1 - ui/tank_warlock/presets.ts | 250 ------------------ ui/tank_warlock/sim.ts | 248 ----------------- ui/warlock/presets.ts | 2 +- ui/warlock/sim.ts | 1 - 35 files changed, 17 insertions(+), 1469 deletions(-) delete mode 100644 assets/img/tank_warlock_background.jpg delete mode 100644 sim/warlock/tank/TestAffliction.results delete mode 100644 sim/warlock/tank/TestDemonology.results delete mode 100644 sim/warlock/tank/TestDestruction.results delete mode 100644 sim/warlock/tank/tank_warlock.go delete mode 100644 sim/warlock/tank/tank_warlock_test.go delete mode 100644 ui/scss/sims/tank_warlock/_sim.scss delete mode 100644 ui/scss/sims/tank_warlock/index.scss delete mode 100644 ui/tank_warlock/apls/p1.affi.tank.apl.json delete mode 100644 ui/tank_warlock/apls/p1.destro.tank.apl.json delete mode 100644 ui/tank_warlock/apls/p2.demo.tank.apl.json delete mode 100644 ui/tank_warlock/apls/p2.destro.tank.apl.json delete mode 100644 ui/tank_warlock/apls/p3.destro.tank.apl.json delete mode 100644 ui/tank_warlock/apls/p4_demo_tank.apl.json delete mode 100644 ui/tank_warlock/apls/p4_destro_aff_tank.apl.json delete mode 100644 ui/tank_warlock/gear_sets/blank.gear.json delete mode 100644 ui/tank_warlock/index.ts delete mode 100644 ui/tank_warlock/inputs.ts delete mode 100644 ui/tank_warlock/presets.ts delete mode 100644 ui/tank_warlock/sim.ts diff --git a/assets/img/tank_warlock_background.jpg b/assets/img/tank_warlock_background.jpg deleted file mode 100644 index e07233e64f085e0cd57431f89cf81cd0c74a2373..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 342115 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�EIbk#{757_dU;N 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

Jo;R430N$rcR{Va~Ga1*qr9Dq(Z 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


O=3$<;I{=Q9l;xRh7>Fl5KgpSd&r{|&CyA95b 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

i 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 bv?*&uzr~SvF<2WNEA)|Iaxc^9KgIt6yU1CF diff --git a/makefile b/makefile index 6516a8005..9d6f460a5 100644 --- a/makefile +++ b/makefile @@ -25,7 +25,6 @@ HTML_INDECIES := ui/balance_druid/index.html \ ui/healing_priest/index.html \ ui/shadow_priest/index.html \ ui/warlock/index.html \ - ui/tank_warlock/index.html \ ui/warrior/index.html \ ui/tank_warrior/index.html \ ui/raid/index.html \ diff --git a/proto/api.proto b/proto/api.proto index 6d06c6e0a..280e83d25 100644 --- a/proto/api.proto +++ b/proto/api.proto @@ -15,7 +15,7 @@ import "shaman.proto"; import "warlock.proto"; import "warrior.proto"; -// NextIndex: 49 +// NextIndex: 47 message Player { // Label used for logging. string name = 1; @@ -76,9 +76,8 @@ message Player { ElementalShaman elemental_shaman = 33; EnhancementShaman enhancement_shaman = 34; RestorationShaman restoration_shaman = 35; - WardenShaman warden_shaman = 47; + WardenShaman warden_shaman = 39; Warlock warlock = 36; - TankWarlock tank_warlock = 39; Warrior warrior = 37; TankWarrior tank_warrior = 38; } diff --git a/proto/common.proto b/proto/common.proto index a2d0679b0..febbcb396 100644 --- a/proto/common.proto +++ b/proto/common.proto @@ -3,7 +3,7 @@ package proto; option go_package = "./proto"; -// NextIndex: 24 +// NextIndex: 23 enum Spec { SpecBalanceDruid = 0; SpecFeralDruid = 12; @@ -12,7 +12,7 @@ enum Spec { SpecElementalShaman = 1; SpecEnhancementShaman = 9; SpecRestorationShaman = 19; - SpecWardenShaman = 23; + SpecWardenShaman = 21; SpecHunter = 8; SpecMage = 2; SpecHolyPaladin = 20; @@ -23,7 +23,6 @@ enum Spec { SpecHealingPriest = 17; SpecShadowPriest = 4; SpecWarlock = 5; - SpecTankWarlock = 21; SpecWarrior = 6; SpecTankWarrior = 11; } diff --git a/sim/register_all.go b/sim/register_all.go index d8882b131..aa23374f7 100644 --- a/sim/register_all.go +++ b/sim/register_all.go @@ -25,7 +25,6 @@ import ( // restoShaman "github.com/wowsims/classic/sim/shaman/restoration" dpsWarlock "github.com/wowsims/classic/sim/warlock/dps" - tankWarlock "github.com/wowsims/classic/sim/warlock/tank" dpsWarrior "github.com/wowsims/classic/sim/warrior/dps_warrior" tankWarrior "github.com/wowsims/classic/sim/warrior/tank_warrior" ) @@ -58,5 +57,4 @@ func RegisterAll() { protection.RegisterProtectionPaladin() retribution.RegisterRetributionPaladin() dpsWarlock.RegisterDpsWarlock() - tankWarlock.RegisterTankWarlock() } diff --git a/sim/warlock/tank/TestAffliction.results b/sim/warlock/tank/TestAffliction.results deleted file mode 100644 index 06e0440c7..000000000 --- a/sim/warlock/tank/TestAffliction.results +++ /dev/null @@ -1,162 +0,0 @@ -character_stats_results: { - key: "TestAffliction-Phase4-Lvl60-CharacterStats-Default" - value: { - final_stats: 192.05 - final_stats: 190.9 - final_stats: 309.465 - final_stats: 194.35 - final_stats: 231.15 - final_stats: 150 - final_stats: 0 - final_stats: 40 - final_stats: 0 - final_stats: 0 - final_stats: 0 - final_stats: 40 - final_stats: 41.25 - final_stats: 0 - final_stats: 25.90678 - final_stats: 0 - final_stats: 0 - final_stats: 812.05 - final_stats: 0 - final_stats: 24.545 - final_stats: 0 - final_stats: 0 - final_stats: 0 - final_stats: 4008.25 - final_stats: 0 - final_stats: 0 - final_stats: 1335.8 - final_stats: 540 - final_stats: 0 - final_stats: 5 - final_stats: 0 - final_stats: 11.545 - final_stats: 5 - final_stats: 0 - final_stats: 4628.65 - final_stats: 27 - final_stats: 60 - final_stats: 60 - final_stats: 60 - final_stats: 75 - final_stats: 384 - final_stats: 0 - final_stats: 35 - final_stats: 0 - } -} -stat_weights_results: { - key: "TestAffliction-Phase4-Lvl60-StatWeights-Default" - value: { - weights: 0 - weights: 0 - weights: 0 - weights: 0.03775 - weights: 0 - weights: 0.24245 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 2.84259 - weights: 0.69073 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - } -} -dps_results: { - key: "TestAffliction-Phase4-Lvl60-Average-Default" - value: { - dps: 303.06111 - tps: 233.95111 - hps: 117.81222 - } -} -dps_results: { - key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-LongMultiTarget" - value: { - dps: 299.94156 - tps: 673.394 - hps: 116.94022 - } -} -dps_results: { - key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-LongSingleTarget" - value: { - dps: 299.94156 - tps: 230.86622 - hps: 116.94022 - } -} -dps_results: { - key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-ShortSingleTarget" - value: { - dps: 370.17396 - tps: 275.1174 - hps: 115.57341 - } -} -dps_results: { - key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-LongMultiTarget" - value: { - dps: 160.53539 - tps: 612.02306 - hps: 67.39116 - } -} -dps_results: { - key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-LongSingleTarget" - value: { - dps: 160.53539 - tps: 147.96797 - hps: 67.39116 - } -} -dps_results: { - key: "TestAffliction-Phase4-Lvl60-Settings-Orc-blank-Affliction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-ShortSingleTarget" - value: { - dps: 205.51436 - tps: 165.71039 - hps: 71.43825 - } -} -dps_results: { - key: "TestAffliction-Phase4-Lvl60-SwitchInFrontOfTarget-Default" - value: { - dps: 301.51662 - tps: 234.51652 - hps: 118.68617 - } -} diff --git a/sim/warlock/tank/TestDemonology.results b/sim/warlock/tank/TestDemonology.results deleted file mode 100644 index 2f9b71906..000000000 --- a/sim/warlock/tank/TestDemonology.results +++ /dev/null @@ -1,162 +0,0 @@ -character_stats_results: { - key: "TestDemonology-Phase4-Lvl60-CharacterStats-Default" - value: { - final_stats: 192.05 - final_stats: 190.9 - final_stats: 355.88475 - final_stats: 194.35 - final_stats: 219.5925 - final_stats: 150 - final_stats: 0 - final_stats: 61 - final_stats: 0 - final_stats: 0 - final_stats: 0 - final_stats: 40 - final_stats: 41.25 - final_stats: 0 - final_stats: 25.90678 - final_stats: 0 - final_stats: 0 - final_stats: 812.05 - final_stats: 0 - final_stats: 24.545 - final_stats: 0 - final_stats: 0 - final_stats: 0 - final_stats: 4008.25 - final_stats: 0 - final_stats: 0 - final_stats: 1335.8 - final_stats: 540 - final_stats: 0 - final_stats: 5 - final_stats: 0 - final_stats: 11.545 - final_stats: 5 - final_stats: 0 - final_stats: 5092.8475 - final_stats: 27 - final_stats: 60 - final_stats: 60 - final_stats: 60 - final_stats: 75 - final_stats: 384 - final_stats: 0 - final_stats: 35 - final_stats: 0 - } -} -stat_weights_results: { - key: "TestDemonology-Phase4-Lvl60-StatWeights-Default" - value: { - weights: 0 - weights: 0 - weights: 0 - weights: 0.20536 - weights: 0 - weights: 0.09752 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 2.40139 - weights: 0.59115 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - } -} -dps_results: { - key: "TestDemonology-Phase4-Lvl60-Average-Default" - value: { - dps: 262.65857 - tps: 195.71166 - hps: 94.40832 - } -} -dps_results: { - key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-FullBuffs-P4-Consumes-LongMultiTarget" - value: { - dps: 261.46722 - tps: 566.86787 - hps: 93.65551 - } -} -dps_results: { - key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-FullBuffs-P4-Consumes-LongSingleTarget" - value: { - dps: 261.46722 - tps: 195.73345 - hps: 93.65551 - } -} -dps_results: { - key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-FullBuffs-P4-Consumes-ShortSingleTarget" - value: { - dps: 271.74825 - tps: 182.39602 - hps: 110.79571 - } -} -dps_results: { - key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-NoBuffs-P4-Consumes-LongMultiTarget" - value: { - dps: 145.25484 - tps: 537.20167 - hps: 55.21175 - } -} -dps_results: { - key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-NoBuffs-P4-Consumes-LongSingleTarget" - value: { - dps: 145.25484 - tps: 120.79855 - hps: 55.21175 - } -} -dps_results: { - key: "TestDemonology-Phase4-Lvl60-Settings-Orc-blank-Demonology Warlock-p4_demo_tank-NoBuffs-P4-Consumes-ShortSingleTarget" - value: { - dps: 159.5103 - tps: 128.4425 - hps: 57.42458 - } -} -dps_results: { - key: "TestDemonology-Phase4-Lvl60-SwitchInFrontOfTarget-Default" - value: { - dps: 262.23806 - tps: 194.95442 - hps: 93.96758 - } -} diff --git a/sim/warlock/tank/TestDestruction.results b/sim/warlock/tank/TestDestruction.results deleted file mode 100644 index 9e6c93a70..000000000 --- a/sim/warlock/tank/TestDestruction.results +++ /dev/null @@ -1,162 +0,0 @@ -character_stats_results: { - key: "TestDestruction-Phase4-Lvl60-CharacterStats-Default" - value: { - final_stats: 192.05 - final_stats: 190.9 - final_stats: 309.465 - final_stats: 194.35 - final_stats: 231.15 - final_stats: 150 - final_stats: 0 - final_stats: 40 - final_stats: 0 - final_stats: 0 - final_stats: 0 - final_stats: 40 - final_stats: 41.25 - final_stats: 0 - final_stats: 25.90678 - final_stats: 0 - final_stats: 0 - final_stats: 812.05 - final_stats: 0 - final_stats: 24.545 - final_stats: 0 - final_stats: 0 - final_stats: 0 - final_stats: 4008.25 - final_stats: 0 - final_stats: 0 - final_stats: 1335.8 - final_stats: 540 - final_stats: 0 - final_stats: 5 - final_stats: 0 - final_stats: 11.545 - final_stats: 5 - final_stats: 0 - final_stats: 4628.65 - final_stats: 27 - final_stats: 60 - final_stats: 60 - final_stats: 60 - final_stats: 75 - final_stats: 384 - final_stats: 0 - final_stats: 35 - final_stats: 0 - } -} -stat_weights_results: { - key: "TestDestruction-Phase4-Lvl60-StatWeights-Default" - value: { - weights: 0 - weights: 0 - weights: 0 - weights: 0.05808 - weights: 0 - weights: 0.26765 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 3.03381 - weights: 0.63193 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - weights: 0 - } -} -dps_results: { - key: "TestDestruction-Phase4-Lvl60-Average-Default" - value: { - dps: 293.64902 - tps: 225.22566 - hps: 111.92924 - } -} -dps_results: { - key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-LongMultiTarget" - value: { - dps: 291.40163 - tps: 674.63793 - hps: 110.57154 - } -} -dps_results: { - key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-LongSingleTarget" - value: { - dps: 291.40163 - tps: 224.90416 - hps: 110.57154 - } -} -dps_results: { - key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-FullBuffs-P4-Consumes-ShortSingleTarget" - value: { - dps: 359.82204 - tps: 264.88475 - hps: 110.73058 - } -} -dps_results: { - key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-LongMultiTarget" - value: { - dps: 155.99084 - tps: 618.37375 - hps: 63.70662 - } -} -dps_results: { - key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-LongSingleTarget" - value: { - dps: 155.99084 - tps: 144.48493 - hps: 63.70662 - } -} -dps_results: { - key: "TestDestruction-Phase4-Lvl60-Settings-Orc-blank-Destruction Warlock-p4_destro_aff_tank-NoBuffs-P4-Consumes-ShortSingleTarget" - value: { - dps: 197.65123 - tps: 157.50066 - hps: 68.97142 - } -} -dps_results: { - key: "TestDestruction-Phase4-Lvl60-SwitchInFrontOfTarget-Default" - value: { - dps: 289.9607 - tps: 222.7156 - hps: 112.15944 - } -} diff --git a/sim/warlock/tank/tank_warlock.go b/sim/warlock/tank/tank_warlock.go deleted file mode 100644 index cf8870368..000000000 --- a/sim/warlock/tank/tank_warlock.go +++ /dev/null @@ -1,61 +0,0 @@ -package tank - -import ( - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" - "github.com/wowsims/classic/sim/warlock" -) - -func RegisterTankWarlock() { - core.RegisterAgentFactory( - proto.Player_TankWarlock{}, - proto.Spec_SpecTankWarlock, - func(character *core.Character, options *proto.Player) core.Agent { - return NewTankWarlock(character, options) - }, - func(player *proto.Player, spec interface{}) { - playerSpec, ok := spec.(*proto.Player_TankWarlock) - if !ok { - panic("Invalid spec value for Warrior!") - } - player.Spec = playerSpec - }, - ) -} - -type TankWarlock struct { - *warlock.Warlock -} - -func NewTankWarlock(character *core.Character, options *proto.Player) *TankWarlock { - warlock := &TankWarlock{ - Warlock: warlock.NewWarlock(character, options, options.GetTankWarlock().Options), - } - - warlock.PseudoStats.CanParry = false - warlock.PseudoStats.CanBlock = false - - warlock.EnableAutoAttacks(warlock, core.AutoAttackOptions{ - MainHand: warlock.WeaponFromMainHand(), - OffHand: warlock.WeaponFromOffHand(), - AutoSwingMelee: true, - }) - - return warlock -} - -func (warlock *TankWarlock) OnGCDReady(sim *core.Simulation) { - return -} - -func (warlock *TankWarlock) GetWarlock() *warlock.Warlock { - return warlock.Warlock -} - -func (warlock *TankWarlock) Initialize() { - warlock.Warlock.Initialize() -} - -func (warlock *TankWarlock) Reset(sim *core.Simulation) { - warlock.Warlock.Reset(sim) -} diff --git a/sim/warlock/tank/tank_warlock_test.go b/sim/warlock/tank/tank_warlock_test.go deleted file mode 100644 index 8d20643c8..000000000 --- a/sim/warlock/tank/tank_warlock_test.go +++ /dev/null @@ -1,155 +0,0 @@ -package tank - -import ( - "testing" - - _ "github.com/wowsims/classic/sim/common" - "github.com/wowsims/classic/sim/core" - "github.com/wowsims/classic/sim/core/proto" -) - -func init() { - RegisterTankWarlock() -} - -func TestAffliction(t *testing.T) { - core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator([]core.CharacterSuiteConfig{ - { - Class: proto.Class_ClassWarlock, - Phase: 4, - Level: 60, - Race: proto.Race_RaceOrc, - - Talents: Phase4AffTalents, - GearSet: core.GetGearSet("../../../ui/tank_warlock/gear_sets", "blank"), - Rotation: core.GetAplRotation("../../../ui/tank_warlock/apls", "p4_destro_aff_tank"), - Buffs: core.FullBuffs, - Consumes: Phase4Consumes, - SpecOptions: core.SpecOptionsCombo{Label: "Affliction Warlock", SpecOptions: DefaultAfflictionWarlock}, - - ItemFilter: ItemFilters, - EPReferenceStat: proto.Stat_StatSpellPower, - StatsToWeigh: Stats, - }, - })) -} - -func TestDemonology(t *testing.T) { - core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator([]core.CharacterSuiteConfig{ - { - Class: proto.Class_ClassWarlock, - Phase: 4, - Level: 60, - Race: proto.Race_RaceOrc, - - Talents: Phase4DemoTalents, - GearSet: core.GetGearSet("../../../ui/tank_warlock/gear_sets", "blank"), - Rotation: core.GetAplRotation("../../../ui/tank_warlock/apls", "p4_demo_tank"), - Buffs: core.FullBuffs, - Consumes: Phase4Consumes, - SpecOptions: core.SpecOptionsCombo{Label: "Demonology Warlock", SpecOptions: DefaultDemonologyWarlock}, - - ItemFilter: ItemFilters, - EPReferenceStat: proto.Stat_StatSpellPower, - StatsToWeigh: Stats, - }, - })) -} - -func TestDestruction(t *testing.T) { - core.RunTestSuite(t, t.Name(), core.FullCharacterTestSuiteGenerator([]core.CharacterSuiteConfig{ - { - Class: proto.Class_ClassWarlock, - Phase: 4, - Level: 60, - Race: proto.Race_RaceOrc, - - Talents: Phase4DestroTalents, - GearSet: core.GetGearSet("../../../ui/tank_warlock/gear_sets", "blank"), - Rotation: core.GetAplRotation("../../../ui/tank_warlock/apls", "p4_destro_aff_tank"), - Buffs: core.FullBuffs, - Consumes: Phase4Consumes, - SpecOptions: core.SpecOptionsCombo{Label: "Destruction Warlock", SpecOptions: DefaultDestroWarlock}, - - ItemFilter: ItemFilters, - EPReferenceStat: proto.Stat_StatSpellPower, - StatsToWeigh: Stats, - }, - })) -} - -var Phase1AfflictionTalents = "05002-005" -var Phase1DestructionTalents = "-03-0550201" - -var Phase2DemonologyTalents = "-2050033112501251" -var Phase2DestructionTalents = "-035-05500050025001" - -var Phase3DestructionTalents = "05-03-505020500050515" - -var Phase4AffTalents = "5500253011201002-03-50502051002001" -var Phase4DemoTalents = "-205004015250105-50500050005001" -var Phase4DestroTalents = "45002400102-03-505020510050115" - -var DefaultDestroWarlock = &proto.Player_TankWarlock{ - TankWarlock: &proto.TankWarlock{ - Options: &proto.WarlockOptions{ - Armor: proto.WarlockOptions_DemonArmor, - Summon: proto.WarlockOptions_Imp, - WeaponImbue: proto.WarlockOptions_NoWeaponImbue, - }, - }, -} - -var DefaultAfflictionWarlock = &proto.Player_TankWarlock{ - TankWarlock: &proto.TankWarlock{ - Options: &proto.WarlockOptions{ - Armor: proto.WarlockOptions_DemonArmor, - Summon: proto.WarlockOptions_Imp, - WeaponImbue: proto.WarlockOptions_NoWeaponImbue, - }, - }, -} - -var DefaultDemonologyWarlock = &proto.Player_TankWarlock{ - TankWarlock: &proto.TankWarlock{ - Options: &proto.WarlockOptions{ - Armor: proto.WarlockOptions_DemonArmor, - Summon: proto.WarlockOptions_Imp, - WeaponImbue: proto.WarlockOptions_Firestone, - }, - }, -} - -var Phase4Consumes = core.ConsumesCombo{ - Label: "P4-Consumes", - Consumes: &proto.Consumes{ - DefaultPotion: proto.Potions_MajorManaPotion, - Flask: proto.Flask_FlaskOfSupremePower, - FirePowerBuff: proto.FirePowerBuff_ElixirOfGreaterFirepower, - ShadowPowerBuff: proto.ShadowPowerBuff_ElixirOfShadowPower, - Food: proto.Food_FoodTenderWolfSteak, - MainHandImbue: proto.WeaponImbue_WizardOil, - SpellPowerBuff: proto.SpellPowerBuff_GreaterArcaneElixir, - }, -} - -var ItemFilters = core.ItemFilter{ - WeaponTypes: []proto.WeaponType{ - proto.WeaponType_WeaponTypeSword, - proto.WeaponType_WeaponTypeDagger, - }, - HandTypes: []proto.HandType{ - proto.HandType_HandTypeOffHand, - }, - ArmorType: proto.ArmorType_ArmorTypeCloth, - RangedWeaponTypes: []proto.RangedWeaponType{ - proto.RangedWeaponType_RangedWeaponTypeWand, - }, -} - -var Stats = []proto.Stat{ - proto.Stat_StatIntellect, - proto.Stat_StatSpellPower, - proto.Stat_StatSpellHit, - proto.Stat_StatSpellCrit, -} diff --git a/tools/database/gen_db/main.go b/tools/database/gen_db/main.go index 748756101..ef0816c73 100644 --- a/tools/database/gen_db/main.go +++ b/tools/database/gen_db/main.go @@ -488,11 +488,6 @@ func GetAllRotationSpellIds() map[string][]int32 { Level: 60, Equipment: &proto.EquipmentSpec{}, }, &proto.Player_Warlock{Warlock: &proto.Warlock{Options: &proto.WarlockOptions{}}}), nil, nil, nil)}, - {Name: "tank warlock", Raid: core.SinglePlayerRaidProto(core.WithSpec(&proto.Player{ - Class: proto.Class_ClassWarlock, - Level: 60, - Equipment: &proto.EquipmentSpec{}, - }, &proto.Player_TankWarlock{TankWarlock: &proto.TankWarlock{Options: &proto.WarlockOptions{}}}), nil, nil, nil)}, } ret_db := make(map[string][]int32, 0) diff --git a/ui/core/components/individual_sim_ui/settings_tab.ts b/ui/core/components/individual_sim_ui/settings_tab.ts index 328fdacaa..82db9c62a 100644 --- a/ui/core/components/individual_sim_ui/settings_tab.ts +++ b/ui/core/components/individual_sim_ui/settings_tab.ts @@ -227,9 +227,8 @@ export class SettingsTab extends SimTab { TypedEvent.onAny([this.simUI.player.talentsChangeEmitter, this.simUI.player.getRaid()!.debuffsChangeEmitter]).on(() => { const isWlAndIsb = (this.simUI.player as Player)?.getTalents().improvedShadowBolt > 0; - const isTankWlAndIsb = (this.simUI.player as Player)?.getTalents().improvedShadowBolt > 0; const externalIsb = this.simUI.player.getRaid()?.getDebuffs()?.improvedShadowBolt == true; - if (externalIsb || isWlAndIsb || isTankWlAndIsb) { + if (externalIsb || isWlAndIsb) { contentBlock.rootElem.classList.remove('hide'); } else { contentBlock.rootElem.classList.add('hide'); diff --git a/ui/core/components/inputs/warlock_inputs.ts b/ui/core/components/inputs/warlock_inputs.ts index dd2e7d5a8..ecdb41eeb 100644 --- a/ui/core/components/inputs/warlock_inputs.ts +++ b/ui/core/components/inputs/warlock_inputs.ts @@ -5,7 +5,6 @@ import { WarlockOptions_MaxFireboltRank as MaxFireboltRank, WarlockOptions_Summon as Summon, WarlockOptions_WeaponImbue as WeaponImbue, - WarlockRune, } from '../../proto/warlock.js'; import { ActionId } from '../../proto_utils/action_id.js'; import { WarlockSpecs } from '../../proto_utils/utils.js'; @@ -28,7 +27,7 @@ export const ArmorInput = () => }, { actionId: () => ActionId.fromSpellId(403619), - value: Armor.FelArmor, + value: Armor.DemonArmor, }, ], }); diff --git a/ui/core/components/sim_title_dropdown.tsx b/ui/core/components/sim_title_dropdown.tsx index 4029ae56b..5212a298d 100644 --- a/ui/core/components/sim_title_dropdown.tsx +++ b/ui/core/components/sim_title_dropdown.tsx @@ -59,7 +59,6 @@ export class SimTitleDropdown extends Component { [Spec.SpecHealingPriest]: 'Healing', [Spec.SpecShadowPriest]: 'Shadow', [Spec.SpecWarlock]: 'DPS', - [Spec.SpecTankWarlock]: 'Tank', [Spec.SpecWarrior]: 'DPS', [Spec.SpecTankWarrior]: 'Tank', }; diff --git a/ui/core/launched_sims.ts b/ui/core/launched_sims.ts index e2ec4479d..1a4c9ce27 100644 --- a/ui/core/launched_sims.ts +++ b/ui/core/launched_sims.ts @@ -96,10 +96,6 @@ export const simLaunchStatuses: Record = { phase: Phase.Phase5, status: LaunchStatus.Alpha, }, - [Spec.SpecTankWarlock]: { - phase: Phase.Phase4, - status: LaunchStatus.Alpha, - }, [Spec.SpecWarrior]: { phase: Phase.Phase5, status: LaunchStatus.Alpha, diff --git a/ui/core/proto_utils/utils.ts b/ui/core/proto_utils/utils.ts index e02435ef2..32303255d 100644 --- a/ui/core/proto_utils/utils.ts +++ b/ui/core/proto_utils/utils.ts @@ -91,7 +91,7 @@ export type PaladinSpecs = Spec.SpecHolyPaladin | Spec.SpecRetributionPaladin | export type PriestSpecs = Spec.SpecHealingPriest | Spec.SpecShadowPriest; export type RogueSpecs = Spec.SpecRogue | Spec.SpecTankRogue; export type ShamanSpecs = Spec.SpecElementalShaman | Spec.SpecEnhancementShaman | Spec.SpecRestorationShaman | Spec.SpecWardenShaman; -export type WarlockSpecs = Spec.SpecWarlock | Spec.SpecTankWarlock; +export type WarlockSpecs = Spec.SpecWarlock; export type WarriorSpecs = Spec.SpecWarrior | Spec.SpecTankWarrior; export type ClassSpecs = T extends Class.ClassDruid @@ -137,7 +137,6 @@ export const naturalSpecOrder: Array = [ Spec.SpecRestorationShaman, Spec.SpecWardenShaman, Spec.SpecWarlock, - Spec.SpecTankWarlock, Spec.SpecWarrior, Spec.SpecTankWarrior, ]; @@ -173,7 +172,6 @@ export const specNames: Record = { [Spec.SpecHealingPriest]: 'Priest', [Spec.SpecShadowPriest]: 'Shadow Priest', [Spec.SpecWarlock]: 'DPS Warlock', - [Spec.SpecTankWarlock]: 'Tank Warlock', [Spec.SpecWarrior]: 'DPS Warrior', [Spec.SpecTankWarrior]: 'Tank Warrior', }; @@ -257,7 +255,6 @@ export const titleIcons: Record = { [Spec.SpecHealingPriest]: 'https://wow.zamimg.com/images/wow/icons/large/spell_holy_guardianspirit.jpg', [Spec.SpecShadowPriest]: 'https://wow.zamimg.com/images/wow/icons/large/class_priest.jpg', [Spec.SpecWarlock]: 'https://wow.zamimg.com/images/wow/icons/large/class_warlock.jpg', - [Spec.SpecTankWarlock]: 'https://wow.zamimg.com/images/wow/icons/large/spell_shadow_demonform.jpg', [Spec.SpecWarrior]: 'https://wow.zamimg.com/images/wow/icons/large/class_warrior.jpg', [Spec.SpecTankWarrior]: 'https://wow.zamimg.com/images/wow/icons/large/ability_warrior_defensivestance.jpg', }; @@ -385,8 +382,6 @@ export type SpecRotation = T extends Spec.SpecBalanceDruid ? ShadowPriestRotation : T extends Spec.SpecWarlock ? WarlockRotation - : T extends Spec.SpecTankWarlock - ? WarlockRotation : T extends Spec.SpecWarrior ? WarriorRotation : T extends Spec.SpecTankWarrior @@ -439,8 +434,6 @@ export type SpecTalents = T extends Spec.SpecBalanceDruid ? PriestTalents : T extends Spec.SpecWarlock ? WarlockTalents - : T extends Spec.SpecTankWarlock - ? WarlockTalents : T extends Spec.SpecWarrior ? WarriorTalents : T extends Spec.SpecTankWarrior @@ -502,8 +495,6 @@ export type SpecOptions = T extends Spec.SpecBalanceDruid ? ShadowPriestOptions : T extends Spec.SpecWarlock ? WarlockOptions - : T extends Spec.SpecTankWarlock - ? WarlockOptions : T extends Spec.SpecWarrior ? WarriorOptions : T extends Spec.SpecTankWarrior @@ -568,8 +559,6 @@ export type SpecProto = T extends Spec.SpecBalanceDruid ? ShadowPriest : T extends Spec.SpecWarlock ? Warlock - : T extends Spec.SpecTankWarlock - ? Warlock : T extends Spec.SpecWarrior ? Warrior : T extends Spec.SpecTankWarrior @@ -984,27 +973,6 @@ export const specTypeFunctions: Record> = { optionsFromJson: obj => WarlockOptions.fromJson(obj), optionsFromPlayer: player => (player.spec.oneofKind == 'warlock' ? player.spec.warlock.options || WarlockOptions.create() : WarlockOptions.create()), }, - [Spec.SpecTankWarlock]: { - rotationCreate: () => WarlockRotation.create(), - rotationEquals: (a, b) => WarlockRotation.equals(a as WarlockRotation, b as WarlockRotation), - rotationCopy: a => WarlockRotation.clone(a as WarlockRotation), - rotationToJson: a => WarlockRotation.toJson(a as WarlockRotation), - rotationFromJson: obj => WarlockRotation.fromJson(obj), - - talentsCreate: () => WarlockTalents.create(), - talentsEquals: (a, b) => WarlockTalents.equals(a as WarlockTalents, b as WarlockTalents), - talentsCopy: a => WarlockTalents.clone(a as WarlockTalents), - talentsToJson: a => WarlockTalents.toJson(a as WarlockTalents), - talentsFromJson: obj => WarlockTalents.fromJson(obj), - - optionsCreate: () => WarlockOptions.create(), - optionsEquals: (a, b) => WarlockOptions.equals(a as WarlockOptions, b as WarlockOptions), - optionsCopy: a => WarlockOptions.clone(a as WarlockOptions), - optionsToJson: a => WarlockOptions.toJson(a as WarlockOptions), - optionsFromJson: obj => WarlockOptions.fromJson(obj), - optionsFromPlayer: player => - player.spec.oneofKind == 'tankWarlock' ? player.spec.tankWarlock.options || WarlockOptions.create() : WarlockOptions.create(), - }, [Spec.SpecWarrior]: { rotationCreate: () => WarriorRotation.create(), rotationEquals: (a, b) => WarriorRotation.equals(a as WarriorRotation, b as WarriorRotation), @@ -1089,7 +1057,6 @@ export const specToClass: Record = { [Spec.SpecRestorationShaman]: Class.ClassShaman, [Spec.SpecWardenShaman]: Class.ClassShaman, [Spec.SpecWarlock]: Class.ClassWarlock, - [Spec.SpecTankWarlock]: Class.ClassWarlock, [Spec.SpecWarrior]: Class.ClassWarrior, [Spec.SpecTankWarrior]: Class.ClassWarrior, }; @@ -1123,7 +1090,6 @@ export const specToEligibleRaces: Record> = { [Spec.SpecHealingPriest]: priestRaces, [Spec.SpecShadowPriest]: priestRaces, [Spec.SpecWarlock]: warlockRaces, - [Spec.SpecTankWarlock]: warlockRaces, [Spec.SpecWarrior]: warriorRaces, [Spec.SpecTankWarrior]: warriorRaces, }; @@ -1140,7 +1106,6 @@ const tankSpecs: Array = [ Spec.SpecFeralTankDruid, Spec.SpecProtectionPaladin, Spec.SpecTankWarrior, - Spec.SpecTankWarlock, Spec.SpecTankRogue, Spec.SpecWardenShaman, ]; @@ -1182,7 +1147,6 @@ export const specToLocalStorageKey: Record = { [Spec.SpecHealingPriest]: '__classic_healing_priest', [Spec.SpecShadowPriest]: '__classic_shadow_priest', [Spec.SpecWarlock]: '__classic_warlock', - [Spec.SpecTankWarlock]: '__classic_tank_warlock', [Spec.SpecWarrior]: '__classic_warrior', [Spec.SpecTankWarrior]: '__classic_tank_warrior', }; @@ -1336,14 +1300,6 @@ export function withSpecProto(spec: Spec, player: PlayerP }), }; return copy; - case Spec.SpecTankWarlock: - copy.spec = { - oneofKind: 'tankWarlock', - tankWarlock: TankWarlock.create({ - options: specOptions as WarlockOptions, - }), - }; - return copy; case Spec.SpecWarrior: copy.spec = { oneofKind: 'warrior', @@ -1759,7 +1715,6 @@ export function makeDefaultBlessings(numPaladins: number): BlessingsAssignments { spec: Spec.SpecRestorationShaman, blessings: [] }, { spec: Spec.SpecWardenShaman, blessings: [] }, { spec: Spec.SpecWarlock, blessings: [Blessings.BlessingOfWisdom, Blessings.BlessingOfKings] }, - { spec: Spec.SpecTankWarlock, blessings: [Blessings.BlessingOfWisdom, Blessings.BlessingOfMight, Blessings.BlessingOfKings] }, { spec: Spec.SpecWarrior, blessings: [Blessings.BlessingOfKings, Blessings.BlessingOfMight] }, { spec: Spec.SpecTankWarrior, blessings: [Blessings.BlessingOfKings, Blessings.BlessingOfMight, Blessings.BlessingOfSanctuary] }, ]); diff --git a/ui/index.html b/ui/index.html index c9d558e0c..0c98ecb09 100644 --- a/ui/index.html +++ b/ui/index.html @@ -255,44 +255,16 @@

Classic

-