public void Initialize(ISpellArgs args, float fs) { manaCost *= 1f - .02f * args.Talents.Convection; totalCoef += .01f * args.Talents.Concussion; totalCoef += .02f * args.Talents.CallOfFlame; totalCoef += args.Stats.BonusLavaBurstDamageMultiplier; // t9 4 piece castTime -= .1f * args.Talents.LightningMastery; spCoef += .05f * args.Talents.Shamanism; critModifier += new float[] { 0f, 0.06f, 0.12f, 0.24f }[args.Talents.LavaFlows]; critModifier += args.Stats.BonusLavaBurstCritDamage / 100f; // t7 4 piece baseMinDamage += args.Stats.LavaBurstBonus; // Totem (relic) baseMaxDamage += args.Stats.LavaBurstBonus; // Totem (relic) spellPower += args.Stats.SpellFireDamageRating; if (args.Talents.GlyphofLava) { spCoef += .1f; } totalCoef *= 1 + args.Stats.BonusFireDamageMultiplier; if (args.Stats.Elemental4T10 > 0) { elementalT10 = true; } base.Initialize(args); this.fs = fs; crit = (1 - fs) * crit + fs; }
public override void Initialize(ISpellArgs args) { castTime -= .5f; spCoef += .32f; loCoef += .2f; loChance = LOChance(args.Stats.MasteryRating); manaCost *= 1f - (0.05f * args.Talents.Convection); manaCost -= (args.Stats.Mana * (.01f * args.Talents.RollingThunder)) * .6f; manaCost -= args.Stats.NatureSpellsManaCostReduction; totalCoef += .02f * args.Talents.Concussion; spCoef += .2f; loCoef += .2f; crit += .01f * args.Talents.Acuity; totalCoef += .01f * args.Talents.ElementalPrecision; spellPower += args.Stats.SpellNatureDamageRating; // Nature SP if (args.Talents.GlyphofLightningBolt) { totalCoef += .04f; } totalCoef *= 1 + args.Stats.BonusNatureDamageMultiplier; base.Initialize(args); }
public override void Initialize(ISpellArgs args) { //for reference //dotTick = totalCoef * (periodicTick * dotBaseCoef + spellPower * dotSpCoef) * (1 + dotCanCrit * critModifier * CritChance) totalCoef += .01f * args.Talents.Concussion; manaCost *= 1 - .02f * args.Talents.Convection; manaCost -= args.Stats.NatureSpellsManaCostReduction; cooldown -= .2f * args.Talents.Reverberation; spellPower += args.Stats.SpellFireDamageRating; totalCoef *= 1 + args.Stats.BonusFireDamageMultiplier; if (args.Talents.GlyphofFlameShock) { periodicTicks = (Single)(periodicTicks * .5); } if (args.Talents.GlyphofShocking) { gcd -= .5f; } baseDuration = periodicTicks * periodicTickTime; dotCanCrit = 1; ApplyDotHaste(args); base.Initialize(args); }
public override void Initialize(ISpellArgs args) { additionalTargets = args.AdditionalTargets; if(additionalTargets < 0) additionalTargets = 0; else if(additionalTargets > 9) additionalTargets = 9; if (args.Talents.GlyphofFireElementalTotem) cooldown = 300; ap = args.Stats.AttackPower; sp = args.Stats.SpellPower; petMeleeMissRate = args.Stats.HitRating; petMeleeMultipliers = args.Stats.BonusPetDamageMultiplier; petSpellMissRate = args.Stats.SpellHit; petSpellMultipliers = args.Stats.BonusPetDamageMultiplier; PeriodicTicks *= args.Talents.TotemicFocus; meleeTotalDps = 0f; novaTotalDps = 0f; blastTotalDps = 0f; shieldTotalDps = 0f; totalDps = 0f; totalMana = 4000 + (15 * (0.3f * args.Stats.Intellect)); CalculateUses(); CalculateDamage(); periodicTick = totalDps; }
public override void Initialize(ISpellArgs args) { manaCost *= 1 - (.05f * args.Talents.TotemicFocus); totalCoef *= 1 + (.05f * args.Talents.CallOfFlame); base.Initialize(args); }
public override void Initialize(ISpellArgs args) { additionalTargets = args.AdditionalTargets; // jumps if (additionalTargets < 0) additionalTargets = 0; spellPower += args.Stats.SpellNatureDamageRating; totalCoef *= 1 + args.Stats.BonusNatureDamageMultiplier; if (additionalTargets > 4) additionalTargets = 4; if (!args.Talents.GlyphofChainLightning && additionalTargets > 2) additionalTargets = 2; totalCoef *= new float[] { 1f, 1.7f, 2.19f, 2.533f, 2.7731f }[additionalTargets]; loChance = LOChance(args.Stats.MasteryRating); cooldown = 3f; manaCost *= 1f - (0.05f * args.Talents.Convection); manaCost -= ((args.Stats.Mana * (.01f * args.Talents.RollingThunder)) * .6f) * (additionalTargets + 1); manaCost -= args.Stats.NatureSpellsManaCostReduction; totalCoef += .02f * args.Talents.Concussion; spCoef += .32f; loCoef += .2f; crit += .01f * args.Talents.Acuity; totalCoef += .01f * args.Talents.ElementalPrecision; shortName = "CL" + (1 + additionalTargets); base.Initialize(args); }
public override void Initialize(ISpellArgs args) { additionalTargets = args.AdditionalTargets; if (additionalTargets < 0) { additionalTargets = 0; } if (additionalTargets > 9) { additionalTargets = 9; } totalCoef *= 1f + additionalTargets; shortName = "FN" + (1 + additionalTargets); spCoef += .1f * args.Talents.ImprovedFireNova; cooldown -= 2 * args.Talents.ImprovedFireNova; if (args.Talents.GlyphofFireNova) { cooldown -= 3; } base.Initialize(args); }
public override void Initialize(ISpellArgs args) { additionalTargets = args.AdditionalTargets; if (additionalTargets < 0) { additionalTargets = 0; } if (additionalTargets > 9) { additionalTargets = 9; } totalCoef *= 1f + additionalTargets; manaCost -= args.Stats.NatureSpellsManaCostReduction; shortName = "FN" + (1 + additionalTargets); spCoef += .1f * args.Talents.CallOfFlame; if (args.Talents.GlyphofFireNova) { cooldown -= 3; } base.Initialize(args); }
public override void Initialize(ISpellArgs args) { additionalTargets = args.AdditionalTargets; if (additionalTargets < 0) { additionalTargets = 0; } else if (additionalTargets > 9) { additionalTargets = 9; } if (args.Talents.GlyphofFireElementalTotem) { cooldown = 300; } ap = args.Stats.AttackPower; sp = args.Stats.SpellPower; petMeleeMissRate = args.Stats.HitRating; petMeleeMultipliers = args.Stats.BonusPetDamageMultiplier; petSpellMissRate = args.Stats.SpellHit; petSpellMultipliers = args.Stats.BonusPetDamageMultiplier; meleeTotalDps = 0f; novaTotalDps = 0f; blastTotalDps = 0f; shieldTotalDps = 0f; totalDps = 0f; totalMana = 4000 + (15 * (0.3f * args.Stats.Intellect)); CalculateUses(); CalculateDamage(); periodicTick = totalDps; }
public override void Initialize(ISpellArgs args) { additionalTargets = args.AdditionalTargets; // jumps if (additionalTargets < 0) { additionalTargets = 0; } if (additionalTargets > 3) { additionalTargets = 3; } shortName = "CL" + (1 + additionalTargets); if (!args.Talents.GlyphofChainLightning && additionalTargets > 2) { additionalTargets = 2; } totalCoef *= new float[] { 1f, 1.7f, 2.19f, 2.533f, 2.7731f }[additionalTargets]; manaCost *= 1f - .02f * args.Talents.Convection; totalCoef += .01f * args.Talents.Concussion; crit += .05f * args.Talents.CallOfThunder; spCoef += .04f * args.Talents.Shamanism; loCoef += .04f * args.Talents.Shamanism; castTime -= .1f * args.Talents.LightningMastery; cooldown -= new float[] { 0, .75f, 1.5f, 2.5f }[args.Talents.StormEarthAndFire]; crit += .01f * args.Talents.TidalMastery; spellPower += args.Stats.SpellNatureDamageRating; lightningSpellpower += args.Stats.LightningSpellPower; totalCoef *= 1 + args.Stats.BonusNatureDamageMultiplier; lightningOverload = args.Talents.LightningOverload; base.Initialize(args); }
public virtual void Initialize(ISpellArgs args) { float Speed = (1f + args.Stats.SpellHaste) * (1f + StatConversion.GetSpellHasteFromRating(args.Stats.HasteRating)); gcd = (float)Math.Round(gcd / Speed, 4); castTime = (float)Math.Round(castTime / Speed, 4); latencyGcd = args.LatencyGCD; latencyCast = args.LatencyCast; critModifier += .2f * args.Talents.ElementalFury; critModifier *= (float)Math.Round(1.5f * (1f + args.Stats.BonusSpellCritMultiplier) - 1f, 6); dotCritModifier += .2f * args.Talents.ElementalFury; dotCritModifier *= (float)Math.Round(1.5f * (1f + args.Stats.BonusSpellCritMultiplier) - 1f, 6); //critModifier += 1f; spellPower += args.Stats.SpellPower; crit += args.Stats.SpellCrit; missChance -= args.Stats.SpellHit; totalCoef *= 1 + args.Stats.BonusDamageMultiplier; //ret + bm buff if (missChance < 0) { missChance = 0; } manaCost = (float)Math.Floor(manaCost); //base resistance by level totalCoef *= 1f - StatConversion.GetAverageResistance(80, 83, 0, 0); }
public override void Initialize(ISpellArgs args) { //for reference //dotTick = totalCoef * (periodicTick * dotBaseCoef + spellPower * dotSpCoef) * (1 + dotCanCrit * critModifier * CritChance) totalCoef += .01f * args.Talents.Concussion; directCoefBonus += .1f * args.Talents.BoomingEchoes; manaCost *= 1 - .02f * args.Talents.Convection; dotBaseCoef *= 1 + .2f * args.Talents.StormEarthAndFire; dotSpCoef *= 1 + .2f * args.Talents.StormEarthAndFire; dotBaseCoef *= 1 + args.Stats.BonusFlameShockDoTDamage; dotSpCoef *= 1 + args.Stats.BonusFlameShockDoTDamage; manaCost *= 1 - .45f * args.Talents.ShamanisticFocus; cooldown -= .2f * args.Talents.Reverberation; cooldown -= 1f * args.Talents.BoomingEchoes; spellPower += args.Stats.SpellFireDamageRating; totalCoef *= 1 + args.Stats.BonusFireDamageMultiplier; periodicTicks += args.Stats.BonusFlameShockDuration / periodicTickTime; // t9 2 piece if (args.Talents.GlyphofFlameShock) { dotCritModifier += .6f; } if (args.Talents.GlyphofShocking) { gcd -= .5f; } dotCanCrit = 1; ApplyDotHaste(args); base.Initialize(args); }
public override void Initialize(ISpellArgs args) { //totalCoef += .01f * args.Talents.TwinDisciplines; cooldown -= .5f * args.Talents.ImprovedMindBlast; //totalCoef += .01f + args.Talents.Shadowform; base.Initialize(args); }
public void Update(ISpellArgs args) { foreach (Spell s in spells) { if (s != null) s.Update(args); } }
public override void Initialize(ISpellArgs args) { if (args.Talents.GlyphofElementalMastery) { cooldown -= 30f; } base.Initialize(args); }
public void Update(ISpellArgs args) { foreach (Spell s in spells) { if (s != null) s.Update(args); } EMapplied = false; }
public override void Initialize(ISpellArgs args) { //for reference //dotTick = totalCoef * (periodicTick * dotBaseCoef + spellPower * dotSpCoef) * (1 + critModifier * CritChance) manaCost *= 1 - .2f * args.Talents.MentalAgility; base.Initialize(args); }
public void Update(ISpellArgs args) { foreach (Spell s in spells) { if (s != null) { s.Update(args); } } }
public override void Initialize(ISpellArgs args) { totalCoef *= 1 + (.1f * args.Talents.CallOfFlame); manaCost -= args.Stats.NatureSpellsManaCostReduction; periodicTicks *= 1 + (.2f * args.Talents.TotemicFocus); base.Initialize(args); }
public void ApplyDotHaste(ISpellArgs args) { float Speed = (1f + args.Stats.SpellHaste) * (1f + StatConversion.GetSpellHasteFromRating(args.Stats.HasteRating)); periodicTickTime = (float)Math.Round(periodicTickTime / Speed, 4); // Enough haste adds more ticks. while (((periodicTicks + 1) * periodicTickTime) <= (baseDuration)) { periodicTicks++; } }
public void Update(ISpellArgs args) { foreach (Spell s in spells) { if (s != null) { s.Update(args); } } EMapplied = false; }
public override void Initialize(ISpellArgs args) { crit += .01f * args.Talents.Acuity; totalCoef += .01f * args.Talents.Concussion; spellPower += args.Stats.SpellNatureDamageRating; totalCoef *= 1 + args.Stats.BonusNatureDamageMultiplier; if (args.Talents.GlyphofThunder) cooldown -= 10f; base.Initialize(args); }
public SpellBox(ISpellArgs args) { spells = new Spell[10]; spells[(int)SpellIndex.DevouringPlauge] = new DevouringPlauge(args); spells[(int)SpellIndex.MindBlast] = new MindBlast(args); spells[(int)SpellIndex.MindFlay] = new MindFlay(args); spells[(int)SpellIndex.ShadowFiend] = new ShadowFiend(args); spells[(int)SpellIndex.ShadowWordDeath] = new ShadowWordDeath(args); spells[(int)SpellIndex.ShadowWordPain] = new ShadowWordPain(args); spells[(int)SpellIndex.VampiricTouch] = new VampiricTouch(args); spells[(int)SpellIndex.PowerWordShield] = new PowerWordShield(args); spells[(int)SpellIndex.MindSpike] = new MindSpike(args); }
public override void Initialize(ISpellArgs args) { //for reference //dotTick = totalCoef * (periodicTick * dotBaseCoef + spellPower * dotSpCoef) * (1 + critModifier * CritChance) //totalCoef += .01f + args.Talents.TwinDisciplines; //totalCoef += .01f + args.Talents.Evangelism; //totalCoef += .01f + args.Talents.Shadowform; //if (args.Talents.GlyphofMindFlay) //periodicTick *= 1.1f; //Add 10% periodic damage base.Initialize(args); }
public override void Initialize(ISpellArgs args) { crit += .01f * args.Talents.Acuity; totalCoef += .01f * args.Talents.Concussion; spellPower += args.Stats.SpellNatureDamageRating; totalCoef *= 1 + args.Stats.BonusNatureDamageMultiplier; if (args.Talents.GlyphofThunder) { cooldown -= 10f; } base.Initialize(args); }
public override void Initialize(ISpellArgs args) { totalCoef += .01f * args.Talents.ElementalPrecision; totalCoef += .02f * args.Talents.Concussion; manaCost *= 1 - .05f * args.Talents.Convection; manaCost -= args.Stats.NatureSpellsManaCostReduction; cooldown -= .5f * args.Talents.Reverberation; crit += .01f * args.Talents.Acuity; spellPower += args.Stats.SpellFrostDamageRating; totalCoef *= 1 + args.Stats.BonusFrostDamageMultiplier; if (args.Talents.GlyphofShocking) gcd -= .5f; base.Initialize(args); }
public override void Initialize(ISpellArgs args) { totalCoef += .01f * args.Talents.Concussion; manaCost *= 1 - .02f * args.Talents.Convection; manaCost *= 1 - .45f * args.Talents.ShamanisticFocus; cooldown -= .2f * args.Talents.Reverberation; spellPower += args.Stats.SpellNatureDamageRating; totalCoef *= 1 + args.Stats.BonusNatureDamageMultiplier; if (args.Talents.GlyphofShocking) { gcd -= .5f; } base.Initialize(args); }
public SpellBox(ISpellArgs args) { spells = new Spell[12]; spells[(int)SpellIndex.LightningBolt] = new LightningBolt(args); spells[(int)SpellIndex.ChainLightning] = new ChainLightning(args); spells[(int)SpellIndex.LavaBurst] = new LavaBurst(args, 0); spells[(int)SpellIndex.LavaBurstFS] = new LavaBurst(args, 1); spells[(int)SpellIndex.FlameShock] = new FlameShock(args); spells[(int)SpellIndex.EarthShock] = new EarthShock(args); spells[(int)SpellIndex.FrostShock] = new FrostShock(args); spells[(int)SpellIndex.Thunderstorm] = new Thunderstorm(args); spells[(int)SpellIndex.FireNova] = new FireNova(args); spells[(int)SpellIndex.SearingTotem] = new SearingTotem(args); spells[(int)SpellIndex.MagmaTotem] = new MagmaTotem(args); spells[(int)SpellIndex.FireElemental] = new FireElemental(args); }
public override void Initialize(ISpellArgs args) { base.Initialize(args); float hasteRating = StatConversion.GetHasteFromRating(args.Stats.HasteRating, CharacterClass.Priest); if (tickHasteCoEf != 0f) { tickExtra = hasteRating / tickHasteCoEf; } float remander = (float)Math.IEEERemainder(tickExtra, 1); tickPeriod = tickPeriodBase / (1 + hasteRating); debuffDuration = debuffDurationBase / (1 + hasteRating); }
public override void Initialize(ISpellArgs args) { totalCoef += .01f * args.Talents.ElementalPrecision; totalCoef += .02f * args.Talents.Concussion; manaCost *= 1 - .05f * args.Talents.Convection; manaCost -= args.Stats.NatureSpellsManaCostReduction; cooldown -= .5f * args.Talents.Reverberation; crit += .01f * args.Talents.Acuity; spellPower += args.Stats.SpellFrostDamageRating; totalCoef *= 1 + args.Stats.BonusFrostDamageMultiplier; if (args.Talents.GlyphofShocking) { gcd -= .5f; } base.Initialize(args); }
public override void Initialize(ISpellArgs args) { additionalTargets = args.AdditionalTargets; if (additionalTargets < 0) additionalTargets = 0; else if (additionalTargets > 9) additionalTargets = 9; manaCost -= args.Stats.NatureSpellsManaCostReduction; totalCoef *= 1 + (.1f * args.Talents.CallOfFlame); totalCoef *= (1 + additionalTargets); shortName = "MT" + (1 + additionalTargets); periodicTicks *= 1 + (.2f * args.Talents.TotemicFocus); base.Initialize(args); }
public override void Initialize(ISpellArgs args) { additionalTargets = args.AdditionalTargets; if (additionalTargets < 0) { additionalTargets = 0; } else if (additionalTargets > 9) { additionalTargets = 9; } totalCoef *= 1 + (.05f * args.Talents.CallOfFlame); manaCost *= 1 - (.05f * args.Talents.TotemicFocus); totalCoef *= (1 + additionalTargets); shortName = "MT" + (1 + additionalTargets); base.Initialize(args); }
public override void Initialize(ISpellArgs args) { additionalTargets = args.AdditionalTargets; if (additionalTargets < 0) additionalTargets = 0; if (additionalTargets > 9) additionalTargets = 9; totalCoef *= 1f + additionalTargets; manaCost -= args.Stats.NatureSpellsManaCostReduction; shortName = "FN" + (1 + additionalTargets); spCoef += .1f * args.Talents.CallOfFlame; if (args.Talents.GlyphofFireNova) cooldown -= 3; base.Initialize(args); }
public override void Initialize(ISpellArgs args) { castTime -= .5f; spCoef += .32f; loCoef += .2f; loChance = LOChance(args.Stats.MasteryRating); manaCost *= 1f - (0.05f * args.Talents.Convection); manaCost -= (args.Stats.Mana * (.01f * args.Talents.RollingThunder)) * .6f; manaCost -= args.Stats.NatureSpellsManaCostReduction; totalCoef += .02f * args.Talents.Concussion; spCoef += .2f; loCoef += .2f; crit += .01f * args.Talents.Acuity; totalCoef += .01f * args.Talents.ElementalPrecision; spellPower += args.Stats.SpellNatureDamageRating; // Nature SP if (args.Talents.GlyphofLightningBolt) totalCoef += .04f; totalCoef *= 1 + args.Stats.BonusNatureDamageMultiplier; base.Initialize(args); }
public void Initialize(ISpellArgs args, float fs) { castTime -= .5f; spCoef += .32f; crit += args.Talents.Acuity; manaCost *= 1f - .05f * args.Talents.Convection; manaCost -= args.Stats.NatureSpellsManaCostReduction; totalCoef += .02f * args.Talents.Concussion; totalCoef += .01f * args.Talents.ElementalPrecision; totalCoef += .05f * args.Talents.CallOfFlame; totalCoef += args.Stats.BonusDamageMultiplierLavaBurst; // t9 4 piece critModifier += new float[] { 0f, 0.06f, 0.12f, 0.24f }[args.Talents.LavaFlows]; spellPower += args.Stats.SpellFireDamageRating; if (args.Talents.GlyphofLavaBurst) spCoef += .1f; totalCoef *= 1 + args.Stats.BonusFireDamageMultiplier; base.Initialize(args); this.fs = fs; crit = (1 - fs) * crit + fs; }
/// <summary> /// Initialize Spell based on ISpellArgs /// </summary> /// <param name="args"></param> public virtual void Initialize(ISpellArgs args) { float Speed = (1f + args.Stats.SpellHaste) * (1f + StatConversion.GetSpellHasteFromRating(args.Stats.HasteRating)); gcd = (float)Math.Round(gcd / Speed, 4); castTimeBase = (float)Math.Round(castTimeBase / Speed, 4); latencyGcd = args.LatencyGCD; latencyCast = args.LatencyCast; critModifier *= (float)Math.Round(1.5f + args.Stats.BonusSpellCritDamageMultiplier, 6); //critModifier += 1f; spellPower += args.Stats.SpellPower; crit += args.Stats.SpellCrit; missChance -= args.Stats.SpellHit; //totalCoef *= 1 + args.Stats.BonusDamageMultiplier; //ret + bm + arcane buff if (missChance < 0) { missChance = 0; } manaCost = (float)Math.Floor(manaCost); //TODO: base resistance by level depending on what bossis being battled //totalCoef *= 1f - StatConversion.GetAverageResistance(85, 87, 0, 0); }
public override void Initialize(ISpellArgs args) { additionalTargets = args.AdditionalTargets; if (additionalTargets < 0) { additionalTargets = 0; } else if (additionalTargets > 9) { additionalTargets = 9; } manaCost -= args.Stats.NatureSpellsManaCostReduction; totalCoef *= 1 + (.1f * args.Talents.CallOfFlame); totalCoef *= (1 + additionalTargets); shortName = "MT" + (1 + additionalTargets); periodicTicks *= 1 + (.2f * args.Talents.TotemicFocus); base.Initialize(args); }
public override void Initialize(ISpellArgs args) { additionalTargets = args.AdditionalTargets; // jumps if (additionalTargets < 0) { additionalTargets = 0; } spellPower += args.Stats.SpellNatureDamageRating; totalCoef *= 1 + args.Stats.BonusNatureDamageMultiplier; if (additionalTargets > 4) { additionalTargets = 4; } if (!args.Talents.GlyphofChainLightning && additionalTargets > 2) { additionalTargets = 2; } totalCoef *= new float[] { 1f, 1.7f, 2.19f, 2.533f, 2.7731f }[additionalTargets]; loChance = LOChance(args.Stats.MasteryRating); cooldown = 3f; manaCost *= 1f - (0.05f * args.Talents.Convection); manaCost -= ((args.Stats.Mana * (.01f * args.Talents.RollingThunder)) * .6f) * (additionalTargets + 1); manaCost -= args.Stats.NatureSpellsManaCostReduction; totalCoef += .02f * args.Talents.Concussion; spCoef += .32f; loCoef += .2f; crit += .01f * args.Talents.Acuity; totalCoef += .01f * args.Talents.ElementalPrecision; shortName = "CL" + (1 + additionalTargets); base.Initialize(args); }
public override void Initialize(ISpellArgs args) { //for reference //dotTick = totalCoef * (periodicTick * dotBaseCoef + spellPower * dotSpCoef) * (1 + dotCanCrit * critModifier * CritChance) totalCoef += .01f * args.Talents.Concussion; manaCost *= 1 - .02f * args.Talents.Convection; manaCost -= args.Stats.NatureSpellsManaCostReduction; cooldown -= .2f * args.Talents.Reverberation; spellPower += args.Stats.SpellFireDamageRating; totalCoef *= 1 + args.Stats.BonusFireDamageMultiplier; if (args.Talents.GlyphofFlameShock) periodicTicks = (Single)(periodicTicks * .5); if (args.Talents.GlyphofShocking) gcd -= .5f; baseDuration = periodicTicks * periodicTickTime; dotCanCrit = 1; ApplyDotHaste(args); base.Initialize(args); }
public override void Initialize(ISpellArgs args) { castTime -= .1f * args.Talents.LightningMastery; manaCost *= 1f - .02f * args.Talents.Convection; totalCoef += .01f * args.Talents.Concussion; crit += .05f * args.Talents.CallOfThunder; spCoef += .04f * args.Talents.Shamanism; loCoef += .04f * args.Talents.Shamanism; crit += .05f * args.Talents.TidalMastery; manaCost *= 1 - args.Stats.LightningBoltCostReduction / 100f; // T7 2 piece spellPower += args.Stats.SpellNatureDamageRating; // Nature SP lightningSpellpower += args.Stats.LightningSpellPower; // Totem (relic) is not affected by shamanism if (args.Talents.GlyphofLightningBolt) { totalCoef += .04f; } totalCoef *= 1 + args.Stats.BonusNatureDamageMultiplier; totalCoef *= 1 + args.Stats.LightningBoltDamageModifier / 100f; // T6 4 piece lightningOverload = args.Talents.LightningOverload; base.Initialize(args); critModifier *= 1 + args.Stats.LightningBoltCritDamageModifier; // T8 4 piece }
public void Initialize(ISpellArgs args, float fs) { castTime -= .5f; spCoef += .32f; crit += args.Talents.Acuity; manaCost *= 1f - .05f * args.Talents.Convection; manaCost -= args.Stats.NatureSpellsManaCostReduction; totalCoef += .02f * args.Talents.Concussion; totalCoef += .01f * args.Talents.ElementalPrecision; totalCoef += .05f * args.Talents.CallOfFlame; totalCoef += args.Stats.BonusDamageMultiplierLavaBurst; // t9 4 piece critModifier += new float[] { 0f, 0.06f, 0.12f, 0.24f }[args.Talents.LavaFlows]; spellPower += args.Stats.SpellFireDamageRating; if (args.Talents.GlyphofLavaBurst) { spCoef += .1f; } totalCoef *= 1 + args.Stats.BonusFireDamageMultiplier; base.Initialize(args); this.fs = fs; crit = (1 - fs) * crit + fs; }
public MindSpike(ISpellArgs args) : this() { Initialize(args); }
public FlameShock(ISpellArgs args) : this() { Initialize(args); }
public ChainLightning(ISpellArgs args) : this() { Initialize(args); }
public PowerWordShield(ISpellArgs args) : this() { Initialize(args); }
public VampiricTouch(ISpellArgs args) : this() { Initialize(args); }
public override void Initialize(ISpellArgs args) { base.Initialize(args); float hasteRating = StatConversion.GetHasteFromRating(args.Stats.HasteRating, CharacterClass.Priest); if (tickHasteCoEf != 0f) tickExtra = hasteRating / tickHasteCoEf; float remander = (float)Math.IEEERemainder(tickExtra, 1); tickPeriod = tickPeriodBase / (1 + hasteRating); debuffDuration = debuffDurationBase / (1 + hasteRating); }
public ElementalMastery(ISpellArgs args) : this() { Initialize(args); }
public FireElemental(ISpellArgs args) : base() { Initialize(args); }
public override void Initialize(ISpellArgs args) { base.Initialize(args); }
public MindFlay(ISpellArgs args) : this() { Initialize(args); }
public void Update(ISpellArgs args) { SetBaseValues(); Initialize(args); }
public MindBlast(ISpellArgs args) : this() { Initialize(args); }