コード例 #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);
        }