public int GetDamageResistRating(CombatType?combatType = null, bool directDamage = true)
        {
            // get from base properties (monsters)?
            var damageResistRating = DamageResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.DamageResistRating);

            // equipment ratings
            // TODO: caching?
            var equipment = EquippedObjects.Values.Sum(i => i.GearDamageResist ?? 0);

            // nether DoTs as negative DRR?
            // TODO: this should be factored in as a separate nether damage rating...
            var netherDotDamageRating = directDamage ? EnchantmentManager.GetNetherDotDamageRating() : 0;

            var augBonus    = 0;
            var lumAugBonus = 0;
            var specBonus   = 0;

            if (this is Player player)
            {
                augBonus    = player.AugmentationDamageReduction * 3;
                lumAugBonus = player.LumAugDamageReductionRating;
                specBonus   = GetSpecDefenseBonus(combatType);
            }

            return(damageResistRating + equipment + enchantments - netherDotDamageRating + augBonus + lumAugBonus + specBonus);
        }
        public int GetDamageRating()
        {
            // get from base properties (monsters)?
            var damageRating = DamageRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.DamageRating);

            // equipment ratings
            // TODO: caching?
            var equipment = EquippedObjects.Values.Sum(i => i.GearDamage ?? 0);

            // weakness as negative damage rating?
            // TODO: this should be factored in as a separate weakness rating...
            var weaknessRating = EnchantmentManager.GetRating(PropertyInt.WeaknessRating);

            var augBonus    = 0;
            var lumAugBonus = 0;

            if (this is Player player)
            {
                augBonus    = player.AugmentationDamageBonus * 3;
                lumAugBonus = player.LumAugDamageRating;
            }

            // heritage / weapon type bonus factored in elsewhere?
            return(damageRating + equipment + enchantments - weaknessRating + augBonus + lumAugBonus);
        }
예제 #3
0
        public int GetDamageResistRating(CombatType?combatType = null)
        {
            // get from base properties (monsters)?
            var damageResistRating = DamageResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.DamageResistRating);

            // nether DoTs as negative DRR?
            // TODO: this should be factored in as a separate nether damage rating...
            var netherDotDamageRating = EnchantmentManager.GetNetherDotDamageRating();

            var augBonus    = 0;
            var lumAugBonus = 0;
            var specBonus   = 0;

            if (this is Player player)
            {
                augBonus    = player.AugmentationDamageReduction * 3;
                lumAugBonus = player.LumAugDamageReductionRating;
                specBonus   = GetSpecDefenseBonus(combatType);
            }

            return(damageResistRating + enchantments - netherDotDamageRating + augBonus + lumAugBonus + specBonus);
        }
예제 #4
0
        public int GetPKDamageResistRating()
        {
            var pkDamageResistRating = PKDamageResistRating ?? 0;

            // additive enchantments?
            var enchantments = EnchantmentManager.GetRating(PropertyInt.PKDamageResistRating);

            return(pkDamageResistRating + enchantments);
        }
        public int GetDotResistanceRating()
        {
            // get from base properties (monsters)?
            var dotResistRating = DotResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.DotResistRating);

            return(dotResistRating + enchantments);
        }
예제 #6
0
        public int GetHealingResistRating()
        {
            // debuff?
            var healResistRating = HealingResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.HealingResistRating);

            return(healResistRating + enchantments);
        }
예제 #7
0
        public int GetPKDamageResistRating()
        {
            var pkDamageResistRating = PKDamageResistRating ?? 0;

            // additive enchantments?
            var enchantments = EnchantmentManager.GetRating(PropertyInt.PKDamageResistRating);

            // equipment ratings
            var equipment = GetEquippedItemsRatingSum(PropertyInt.GearPKDamageResistRating);

            return(pkDamageResistRating + equipment + enchantments);
        }
예제 #8
0
        public int GetNetherResistRating()
        {
            // wiki calls this dot resistance, does this affect dirty fighting bleed attack?

            // get from base properties (monsters)?
            var netherResistRating = NetherResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.NetherResistRating);

            return(netherResistRating + enchantments);
        }
예제 #9
0
        public int GetCritResistRating()
        {
            // crit resist chance

            // get from base properties (monsters)?
            var critResistRating = CritResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.CritResistRating);

            // no augs / lum augs?
            return(critResistRating + enchantments);
        }
        public int GetNetherResistRating()
        {
            // there is a property defined for this,
            // but does anything use this?

            // get from base properties (monsters)?
            var netherResistRating = NetherResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.NetherResistRating);

            return(netherResistRating + enchantments);
        }
        public int GetLifeResistRating()
        {
            // only affects health drain?
            // only cast by Sigil of Perserverance (Aetheria)?

            // get from base properties (monsters)?
            var lifeResistRating = LifeResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.LifeResistRating);

            return(lifeResistRating + enchantments);
        }
예제 #12
0
        public int GetLifeResistRating()
        {
            // drain resistance?

            // Drain Resistances - allows one to partially resist drain health/stamina/mana and harm attacks (not including other life transfer spells).

            // get from base properties (monsters)?
            var lifeResistRating = LifeResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.LifeResistRating);

            return(lifeResistRating + enchantments);
        }
예제 #13
0
        public int GetCritResistRating()
        {
            // crit resist chance

            // get from base properties (monsters)?
            var critResistRating = CritResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.CritResistRating);

            // equipment ratings
            var equipment = GetEquippedItemsRatingSum(PropertyInt.GearCritResist);

            // no augs / lum augs?
            return(critResistRating + equipment + enchantments);
        }
예제 #14
0
        public int GetHealingBoostRating()
        {
            // get from base properties (monsters)?
            var healBoostRating = HealingBoostRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.HealingBoostRating);

            var lumAugBonus = 0;

            if (this is Player player)
            {
                lumAugBonus = player.LumAugHealingRating;
            }

            return(healBoostRating + enchantments + lumAugBonus);
        }
예제 #15
0
        public int GetCritDamageResistRating()
        {
            // get from base properties (monsters)?
            var critDamageResistRating = CritDamageResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.CritDamageResistRating);

            var lumAugBonus = 0;

            if (this is Player player)
            {
                lumAugBonus = player.LumAugCritReductionRating;
            }

            return(critDamageResistRating + enchantments + lumAugBonus);
        }
        public int GetCritResistRating()
        {
            // crit resist chance

            // get from base properties (monsters)?
            var critResistRating = CritResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.CritResistRating);

            // equipment ratings
            // TODO: caching?
            var equipment = EquippedObjects.Values.Sum(i => i.GearCritResist ?? 0);

            // no augs / lum augs?
            return(critResistRating + equipment + enchantments);
        }
예제 #17
0
        public int GetCritDamageRating()
        {
            // get from base properties (monsters)?
            var critDamageRating = CritDamageRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.CritDamageRating);

            // augmentations
            var augBonus    = 0;
            var lumAugBonus = 0;

            if (this is Player player)
            {
                augBonus    = player.AugmentationCriticalPower * 3;
                lumAugBonus = player.LumAugCritDamageRating;
            }

            return(critDamageRating + enchantments + augBonus + lumAugBonus);
        }
예제 #18
0
        public int GetCritRating()
        {
            // crit chance

            // get from base properties (monsters)?
            var critChanceRating = CritRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.CritRating);

            // augmentations
            var augBonus = 0;

            if (this is Player player)
            {
                augBonus = player.AugmentationCriticalExpertise;
            }

            return(critChanceRating + enchantments + augBonus);
        }
        public int GetCritDamageResistRating()
        {
            // get from base properties (monsters)?
            var critDamageResistRating = CritDamageResistRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.CritDamageResistRating);

            // equipment ratings
            // TODO: caching?
            var equipment = EquippedObjects.Values.Sum(i => i.GearCritDamageResist ?? 0);

            var lumAugBonus = 0;

            if (this is Player player)
            {
                lumAugBonus = player.LumAugCritReductionRating;
            }

            return(critDamageResistRating + equipment + enchantments + lumAugBonus);
        }
        public int GetCritRating()
        {
            // crit chance

            // get from base properties (monsters)?
            var critChanceRating = CritRating ?? 0;

            // additive enchantments
            var enchantments = EnchantmentManager.GetRating(PropertyInt.CritRating);

            // equipment ratings
            // TODO: caching?
            var equipment = EquippedObjects.Values.Sum(i => i.GearCrit ?? 0);

            // augmentations
            var augBonus = 0;

            if (this is Player player)
            {
                augBonus = player.AugmentationCriticalExpertise;
            }

            return(critChanceRating + equipment + enchantments + augBonus);
        }