예제 #1
0
        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();
        }