public BeaconOfLight(Rotation rotation) : base(rotation) { Duration = 300f; Uptime = Rotation.FightLength * Rotation.CalcOpts.BoLUp; BaseCost = 0.06f * HealadinConstants.basemana * (Talents.GlyphOfBeaconOfLight ? 0f : 1f); }
public JudgementsOfThePure(Rotation rotation, float JudgementCasts) : base(rotation) { Duration = JudgementCasts; Uptime = Rotation.CalcOpts.Activity * Rotation.FightLength; BaseCost = HealadinConstants.basemana * 0.05f; }
public Cleanse(Rotation rotation) : base(rotation) { }
public Spell(Rotation rotation) { Rotation = rotation; }
public FlashOfLight(Rotation rotation) : base(rotation) { }
public EnlightenedJudgements(Rotation rotation) : base(rotation) { }
public HolyRadiance(Rotation rotation) : base(rotation) { }
public Stats GetCharacterStats(Character character, Item additionalItem, bool computeAverageStats, CharacterCalculationsHealadin calc) { PaladinTalents talents = character.PaladinTalents; CalculationOptionsHealadin calcOpts = character.CalculationOptions as CalculationOptionsHealadin; if (calcOpts == null) { calcOpts = new CalculationOptionsHealadin(); } #if (RAWR3) BossOptions bossOpts = character.BossOptions; if (bossOpts == null) { bossOpts = new BossOptions(); } #endif #if (RAWR3) float fightLength = bossOpts.BerserkTimer * 60f; #else float fightLength = calcOpts.Length * 60f; #endif Stats statsRace = BaseStats.GetBaseStats(character.Level, CharacterClass.Paladin, character.Race); Stats statsBaseGear = GetItemStats(character, additionalItem); Stats statsBuffs = GetBuffsStats(character, calcOpts); Stats stats = statsBaseGear + statsBuffs + statsRace; ConvertRatings(stats, talents, calcOpts); if (computeAverageStats) { Stats statsAverage = new Stats(); foreach (SpecialEffect effect in stats.SpecialEffects()) { float trigger = 0f; if (calc == null) { trigger = 1.5f / calcOpts.Activity / (1f + stats.SpellHaste); if (effect.Trigger == Trigger.HealingSpellCrit || effect.Trigger == Trigger.SpellCrit) { trigger *= stats.SpellCrit; } else if (effect.Trigger == Trigger.HolyShockCast) { trigger = 6f / calcOpts.HolyShock; } } else { if (effect.Trigger == Trigger.HealingSpellCast || effect.Trigger == Trigger.HealingSpellHit) { trigger = 1f / Rotation.GetHealingCastsPerSec(calc); } else if (effect.Trigger == Trigger.HealingSpellCrit || effect.Trigger == Trigger.SpellCrit) { trigger = 1f / Rotation.GetHealingCritsPerSec(calc); } else if (effect.Trigger == Trigger.SpellCast || effect.Trigger == Trigger.SpellHit) { trigger = 1f / Rotation.GetSpellCastsPerSec(calc); } else if (effect.Trigger == Trigger.DamageOrHealingDone) { trigger = 1f / Rotation.GetHealingCastsPerSec(calc); } else if (effect.Trigger == Trigger.HolyShockCast) { trigger = 6f / calcOpts.HolyShock; } else if (effect.Trigger == Trigger.Use) { trigger = 0f; foreach (SpecialEffect childEffect in effect.Stats.SpecialEffects()) { float childTrigger = 0f; if (effect.Trigger == Trigger.HealingSpellCast || effect.Trigger == Trigger.HealingSpellHit) { childTrigger = 1f / Rotation.GetHealingCastsPerSec(calc); } else if (effect.Trigger == Trigger.HealingSpellCrit || effect.Trigger == Trigger.SpellCrit) { childTrigger = 1f / Rotation.GetHealingCritsPerSec(calc); } else if (effect.Trigger == Trigger.SpellCast || effect.Trigger == Trigger.SpellHit) { childTrigger = 1f / Rotation.GetSpellCastsPerSec(calc); } statsAverage.Accumulate(childEffect.Stats, effect.GetAverageUptime(0.0f, 1.0f) * childEffect.GetAverageStackSize(childTrigger, 1f, 1.5f, effect.Duration)); } } else if (effect.Trigger == Trigger.HolyLightCast) { trigger = 1f / Rotation.GetHolyLightCastsPerSec(calc); } else { continue; } } statsAverage.Accumulate(effect.GetAverageStats(trigger, 1f, 1.5f, fightLength)); } statsAverage.ManaRestore *= fightLength; statsAverage.Healed *= fightLength; stats = statsBaseGear + statsBuffs + statsRace + statsAverage; ConvertRatings(stats, talents, calcOpts); } return(stats); }
public WordofGlory(Rotation rotation) : base(rotation) { }
public LightofDawn(Rotation rotation) : base(rotation) { }
public HolyShock(Rotation rotation) : base(rotation) { }
public DivineLight(Rotation rotation) : base(rotation) { }
public HolyLight(Rotation rotation) : base(rotation) { }
public DivineIllumination(Rotation rotation) : base(rotation) { Duration = 180f; Uptime = Rotation.FightLength; BaseCost = 0f; HL_DI = new HolyLight(rotation) { DivineIllumination = true }; }
public LayonHands(Rotation rotation) : base(rotation) { }
public DivineFavor(Rotation rotation) : base(rotation) { Duration = 120f; Uptime = Rotation.FightLength; BaseCost = 130f; HL_DF = new HolyLight(rotation) { ExtraCritChance = 1f }; }
public ProtectoroftheInnocent(Rotation rotation) : base(rotation) { }
public override CharacterCalculationsBase GetCharacterCalculations(Character character, Item additionalItem, bool referenceCalculation, bool significantChange, bool needsDisplayCalculations) { // First things first, we need to ensure that we aren't using bad data CharacterCalculationsHealadin calc = new CharacterCalculationsHealadin(); if (character == null) { return calc; } CalculationOptionsHealadin calcOpts = character.CalculationOptions as CalculationOptionsHealadin; if (calcOpts == null) { return calc; } // Stats stats; calc = null; PaladinTalents talents = character.PaladinTalents; for (int i = 0; i < 5; i++) { float oldBurst = 0; if (i > 0) oldBurst = calc.BurstPoints; stats = GetCharacterStats(character, additionalItem, true, calc); calc = new CharacterCalculationsHealadin(); Rotation rot = new Rotation(character, stats); if (i > 0) calc.BurstPoints = oldBurst; else calc.BurstPoints = rot.CalculateBurstHealing(calc); calc.FightPoints = rot.CalculateFightHealing(calc); calc.OverallPoints = calc.BurstPoints + calc.FightPoints; } calc.BasicStats = GetCharacterStats(character, additionalItem, false, null); return calc; }
public Heal(Rotation rotation) { Rotation = rotation; }