public AbilityModel(Character character, Stats stats, Ability ability, CalculationOptionsProtPaladin calcOpts) { #endif Character = character; Stats = stats; Ability = ability; CalcOpts = calcOpts; #if (RAWR3) BossOpts = bossOpts; #endif Talents = Character.PaladinTalents; #if (RAWR3) AttackTable = new AttackTable(character, stats, ability, CalcOpts, BossOpts); #else AttackTable = new AttackTable(character, stats, ability, CalcOpts); #endif if (!Lookup.IsSpell(Ability)) #if (RAWR3) { ArmorReduction = Lookup.EffectiveTargetArmorReduction(Character, Stats, BossOpts.Armor, BossOpts.Level); } #else { ArmorReduction = Lookup.EffectiveTargetArmorReduction(Character, Stats, CalcOpts.TargetArmor, CalcOpts.TargetLevel); } #endif Name = Lookup.Name(Ability); DamageMultiplier = Lookup.StanceDamageMultipler(Character, Stats); DamageMultiplier *= Lookup.CreatureTypeDamageMultiplier(Character, CalcOpts.TargetType); CalculateDamage(); CalculateThreat(); }