public float ManaPool(CharacterCalculationsHealadin calc) { DivinePleas = (float)Math.Ceiling((FightLength - 120f) / (120f * CalcOpts.DivinePlea)); calc.ManaBase = Stats.Mana; calc.ManaLayOnHands = Stats.Mana * ((Talents.GlyphOfDivinity ? 0.1f : 0) * loh.Casts()); calc.ManaArcaneTorrent = (Character.Race == CharacterRace.BloodElf ? Stats.Mana * .06f * (float)Math.Ceiling(FightLength / 120f - .25f) : 0); calc.ManaDivinePlea = Stats.Mana * (Talents.GlyphOfDivinePlea ? 0.18f : 0.12f) * DivinePleas; calc.ManaMp5 = FightLength * Stats.Mp5 / 5f; // this Stats.ManaRestoreFromMaxManaPerSecond is 0 is is messing up the replenishment calculation! //calc.ManaReplenishment = Stats.ManaRestoreFromMaxManaPerSecond * Stats.Mana * FightLength * CalcOpts.Replenishment; calc.ManaReplenishment = 0.001f * Stats.Mana * FightLength * CalcOpts.Replenishment; calc.ManaOther += Stats.ManaRestore; // add calc.ManaJudgements calc.ManaJudgements = HealadinConstants.basemana * 0.15f * jotp.Casts(); if (Stats.HighestStat > 0) { float greatnessMana = Stats.HighestStat * StatConversion.RATING_PER_MANA; calc.ManaReplenishment += Stats.ManaRestoreFromMaxManaPerSecond * FightLength * greatnessMana * CalcOpts.Replenishment; // Replenishment calc.ManaDivinePlea += DivinePleas * greatnessMana * .1f; // Divine Plea } // check if this is correct regen per 5 seconds.. // combat regen = 50% of spirit regen (from Meditation), plus MP5 from gear, plus 5% base mana per 5 secs. Base mana = 23422 at 85 float effective_spirit = Stats.Spirit + Stats.BonusCritChanceFrostStrike * 540 * 6 / CalcOpts.HolyShock; // add in bonus spirit from 4T11 procs float spirit_regen = StatConversion.GetSpiritRegenSec(effective_spirit, Stats.Intellect) * 5f; calc.CombatRegenRate = spirit_regen * 0.5f + Stats.Mp5 + HealadinConstants.basemana * 0.05f; calc.ManaRegenRate = spirit_regen + Stats.Mp5 + HealadinConstants.basemana * 0.05f; calc.CombatRegenTotal = calc.CombatRegenRate * FightLength / 5f; return(calc.ManaBase + calc.ManaDivinePlea + calc.CombatRegenTotal + calc.ManaOther + calc.ManaReplenishment + calc.ManaLayOnHands + calc.ManaJudgements); }