public float CalcAttackPower() { return(BaseAttackPower + Stats.Strength * 2f + Mommy.CalcSpellPower() * (Mommy.CalcOpts.PlayerLevel / 80)); }
public float GetPactProcBenefit() { float pact = .02f * Mommy.Talents.DemonicPact; if (pact == 0) { return(0f); } float buff = StatUtils.GetBuffEffect( Mommy.Character.ActiveBuffs, Mommy.CalcSpellPower() * pact, "Spell Power", s => s.SpellPower); if (buff == 0) { return(0f); } SpecialEffect pactEffect = new SpecialEffect(0, null, 45f, 20f); float meleeRate; if (BaseMeleeDamage == 0) { meleeRate = 0f; } else { meleeRate = 1 / CalcMeleeSpeed(); } float spellRate; if (SpecialDamagePerSpellPower == 0) { spellRate = 0f; float specialSpeed = GetSpecialSpeed(); if (specialSpeed > 0) { meleeRate += 1 / GetSpecialSpeed(); } } else { spellRate = 1 / GetSpecialSpeed(); } float triggerRate = 1 / (meleeRate + spellRate); float uprate = pactEffect.GetAverageUptime( triggerRate, Utilities.GetWeightedSum( Mommy.HitChance * CalcSpellCrit(), spellRate, CalcMeleeCrit(), meleeRate), triggerRate, Mommy.Options.Duration); return(uprate * buff); }
public float CalcSpellPower() { return(Mommy.CalcSpellPower() * (Mommy.CalcOpts.PlayerLevel / 80) * 0.5f); }
public void CalcStats2() { Stats.SpellPower += SpellPowerCoef * Mommy.CalcSpellPower(); Stats.AttackPower += AttackPowerCoef * Mommy.CalcSpellPower(); }