From 5eea4cb5383ca20f86d9049354a536bc96bf010a Mon Sep 17 00:00:00 2001 From: Kayla Glick <12898988+kayla-glick@users.noreply.github.com> Date: Mon, 23 Dec 2024 13:15:53 -0500 Subject: [PATCH] Update chain_lightning.go --- sim/shaman/chain_lightning.go | 42 ++++------------------------------- 1 file changed, 4 insertions(+), 38 deletions(-) diff --git a/sim/shaman/chain_lightning.go b/sim/shaman/chain_lightning.go index 48c957c12..c345bdd0c 100644 --- a/sim/shaman/chain_lightning.go +++ b/sim/shaman/chain_lightning.go @@ -17,14 +17,8 @@ var ChainLightningManaCost = [ChainLightningRanks + 1]float64{0, 280, 380, 490, var ChainLightningLevel = [ChainLightningRanks + 1]int{0, 32, 40, 48, 56} func (shaman *Shaman) registerChainLightningSpell() { - overloadRuneEquipped := shaman.HasRune(proto.ShamanRune_RuneChestOverload) - shaman.ChainLightning = make([]*core.Spell, ChainLightningRanks+1) - if overloadRuneEquipped { - shaman.ChainLightningOverload = make([]*core.Spell, ChainLightningRanks+1) - } - cdTimer := shaman.NewTimer() for rank := 1; rank <= ChainLightningRanks; rank++ { @@ -32,20 +26,11 @@ func (shaman *Shaman) registerChainLightningSpell() { if config.RequiredLevel <= int(shaman.Level) { shaman.ChainLightning[rank] = shaman.RegisterSpell(config) - - // TODO: Confirm how CL Overloads work in SoD - if overloadRuneEquipped { - shaman.ChainLightningOverload[rank] = shaman.RegisterSpell(shaman.newChainLightningSpellConfig(rank, cdTimer, true)) - } } } } -func (shaman *Shaman) newChainLightningSpellConfig(rank int, cdTimer *core.Timer, isOverload bool) core.SpellConfig { - hasOverloadRune := shaman.HasRune(proto.ShamanRune_RuneChestOverload) - hasCoherenceRune := shaman.HasRune(proto.ShamanRune_RuneCloakCoherence) - hasStormEarthAndFireRune := shaman.HasRune(proto.ShamanRune_RuneCloakStormEarthAndFire) - +func (shaman *Shaman) newChainLightningSpellConfig(rank int, cdTimer *core.Timer) core.SpellConfig { spellId := ChainLightningSpellId[rank] baseDamageLow := ChainLightningBaseDamage[rank][0] baseDamageHigh := ChainLightningBaseDamage[rank][1] @@ -54,17 +39,10 @@ func (shaman *Shaman) newChainLightningSpellConfig(rank int, cdTimer *core.Timer level := ChainLightningLevel[rank] cooldown := time.Second * 6 - if hasStormEarthAndFireRune { - cooldown /= 2 - } castTime := time.Millisecond * 2500 bounceCoef := .7 // 30% reduction per bounce targetCount := ChainLightningTargetCount - if hasCoherenceRune { - bounceCoef = .8 // 20% reduction per bounce - targetCount += 2 - } canOverload := !isOverload && hasOverloadRune overloadChance := .1667 @@ -73,19 +51,15 @@ func (shaman *Shaman) newChainLightningSpellConfig(rank int, cdTimer *core.Timer core.ActionID{SpellID: spellId}, manaCost, castTime, - isOverload, ) spell.SpellCode = SpellCode_ShamanChainLightning spell.RequiredLevel = level spell.Rank = rank spell.BonusCoefficient = spellCoeff - - if !isOverload { - spell.Cast.CD = core.Cooldown{ - Timer: cdTimer, - Duration: cooldown, - } + spell.Cast.CD = core.Cooldown{ + Timer: cdTimer, + Duration: cooldown, } results := make([]*core.SpellResult, min(targetCount, shaman.Env.GetNumTargets())) @@ -101,18 +75,10 @@ func (shaman *Shaman) newChainLightningSpellConfig(rank int, cdTimer *core.Timer for _, result := range results { spell.DealDamage(sim, result) - - if canOverload && sim.Proc(overloadChance, "CL Overload") { - shaman.ChainLightningOverload[rank].Cast(sim, result.Target) - } } spell.DamageMultiplier = origMult } - if isOverload { - shaman.applyOverloadModifiers(&spell) - } - return spell }