public virtual int GetNewAosDamage(int bonus, int dice, int sides, bool playerVsPlayer, double scalar) { int damage = Utility.Dice(dice, sides, bonus) * 100; int damageBonus = 0; #region Inscription Bonus int inscribeSkill = GetInscribeFixed(Caster); int inscribeBonus = (inscribeSkill + (1000 * (inscribeSkill / 1000))) / 200; damageBonus += inscribeBonus; #endregion #region Intelligence Bonus int intBonus = Caster.Int / 10; damageBonus += intBonus; #endregion #region SDI Bonus damageBonus += SpellHelper.GetSpellDamage(Caster, playerVsPlayer); #endregion #region EvalInt Bonus int evalSkill = GetDamageFixed(Caster); int evalScale = 30 + ((9 * evalSkill) / 100); #endregion damage = AOS.Scale(damage, 100 + damageBonus); damage = AOS.Scale(damage, evalScale); damage = AOS.Scale(damage, (int)(scalar * 100)); return(damage / 100); }