Пример #1
0
        public void Populate(IStatsVariables stats, IReadOnlyCollection <Effect> activeEffects, IReadOnlyCollection <IVariables> relatedVars)
        {
            var iceDefense      = ComputeIceDefense(stats, activeEffects);
            var fireDefense     = ComputeFireDefense(stats, activeEffects);
            var windDefense     = ComputeWindDefense(stats, activeEffects);
            var earthDefense    = ComputeEarthDefense(stats, activeEffects);
            var lightDefense    = ComputeLightDefense(stats, activeEffects);
            var darkDefense     = ComputeDarkDefense(stats, activeEffects);
            var slashingDefense = ComputeSlashingDefense(stats, activeEffects);
            var bluntDefense    = ComputeBluntDefense(stats, activeEffects);
            var piercingDefense = ComputePiercingDefense(stats, activeEffects);
            var unarmedDefense  = ComputeUnarmedDefense(stats, activeEffects);
            var pureDefense     = ComputePureDefense(stats, activeEffects);

            stats.IceDefense(iceDefense);
            stats.FireDefense(fireDefense);
            stats.WindDefense(windDefense);
            stats.EarthDefense(earthDefense);
            stats.LightDefense(lightDefense);
            stats.DarkDefense(darkDefense);
            stats.SlashingDefense(slashingDefense);
            stats.BluntDefense(bluntDefense);
            stats.PiercingDefense(piercingDefense);
            stats.UnarmedDefense(unarmedDefense);
            stats.Defense(pureDefense);
        }
Пример #2
0
 public static float GetDefenseFromDamageType(this IStatsVariables stats, int damageType)
 {
     if (damageType == DamageTypes.PiercingDamage)
     {
         return(stats.PiercingDefense());
     }
     if (damageType == DamageTypes.SlashingDamage)
     {
         return(stats.SlashingDefense());
     }
     if (damageType == DamageTypes.BluntDamage)
     {
         return(stats.BluntDefense());
     }
     if (damageType == DamageTypes.UnarmedDamage)
     {
         return(stats.UnarmedDefense());
     }
     if (damageType == DamageTypes.FireDamage)
     {
         return(stats.FireDefense());
     }
     if (damageType == DamageTypes.IceDamage)
     {
         return(stats.IceDefense());
     }
     if (damageType == DamageTypes.WindDamage)
     {
         return(stats.WindDefense());
     }
     if (damageType == DamageTypes.EarthDamage)
     {
         return(stats.EarthDefense());
     }
     if (damageType == DamageTypes.LightDamage)
     {
         return(stats.LightDefense());
     }
     if (damageType == DamageTypes.DarkDamage)
     {
         return(stats.DarkDefense());
     }
     if (damageType == DamageTypes.Damage)
     {
         return(stats.Defense());
     }
     return(0);
 }
Пример #3
0
 public static ICollection <StatReference> GetDefenseReferences(this IStatsVariables stats)
 {
     return(new[]
     {
         new StatReference(DamageTypes.IceDamage, stats.IceDefense()),
         new StatReference(DamageTypes.FireDamage, stats.FireDefense()),
         new StatReference(DamageTypes.WindDamage, stats.WindDefense()),
         new StatReference(DamageTypes.EarthDamage, stats.EarthDefense()),
         new StatReference(DamageTypes.LightDamage, stats.LightDefense()),
         new StatReference(DamageTypes.DarkDamage, stats.DarkDefense()),
         new StatReference(DamageTypes.SlashingDamage, stats.SlashingDefense()),
         new StatReference(DamageTypes.BluntDamage, stats.BluntDefense()),
         new StatReference(DamageTypes.PiercingDamage, stats.PiercingDefense()),
         new StatReference(DamageTypes.UnarmedDamage, stats.UnarmedDefense()),
         new StatReference(DamageTypes.Damage, stats.Defense())
     });
 }
Пример #4
0
        public static float GetDefenseFor(this IStatsVariables stats, int effectType)
        {
            if (effectType == EffectTypes.PiercingBonusAmount)
            {
                return(stats.PiercingDefense());
            }
            if (effectType == EffectTypes.SlashingBonusAmount)
            {
                return(stats.SlashingDefense());
            }
            if (effectType == EffectTypes.BluntBonusAmount)
            {
                return(stats.BluntDefense());
            }
            if (effectType == EffectTypes.UnarmedBonusAmount)
            {
                return(stats.UnarmedDefense());
            }
            if (effectType == EffectTypes.FireBonusAmount)
            {
                return(stats.FireDefense());
            }
            if (effectType == EffectTypes.IceBonusAmount)
            {
                return(stats.IceDefense());
            }
            if (effectType == EffectTypes.WindBonusAmount)
            {
                return(stats.WindDefense());
            }
            if (effectType == EffectTypes.EarthBonusAmount)
            {
                return(stats.EarthDefense());
            }
            if (effectType == EffectTypes.LightBonusAmount)
            {
                return(stats.LightDefense());
            }
            if (effectType == EffectTypes.DarkBonusAmount)
            {
                return(stats.DarkDefense());
            }

            if (effectType == EffectTypes.AllElementDamageBonusAmount)
            {
                return(stats.FireDefense() + stats.IceDefense() + stats.WindDefense() +
                       stats.EarthDefense() + stats.LightDefense() + stats.DarkDefense());
            }

            if (effectType == EffectTypes.AllMeleeDefenseBonusAmount)
            {
                return(stats.PiercingDefense() + stats.SlashingDefense() +
                       stats.BluntDefense() + stats.UnarmedDefense());
            }

            if (effectType == EffectTypes.DamageBonusAmount)
            {
                return(stats.Defense());
            }

            return(0);
        }