Esempio n. 1
0
    public override int Defend(string attackName, int incomingDamage, DamageType damageType)
    {
        if (BlockableTypes.Contains(damageType))
        {
            var damageAfterBlock = Math.Max(0, incomingDamage - Defense);
            LogBlock(attackName, incomingDamage, damageAfterBlock);

            Limb.Damage($"Blocking {attackName}", damageType, Defense / 2);
            return(damageAfterBlock);
        }
        else
        {
            var damageAfterBlock = Math.Max(0, incomingDamage - (Defense / 2));
            LogBlock(attackName, incomingDamage, damageAfterBlock);

            Limb.Owner.Log($"{Limb.Name} is damaged greatly by the {attackName}");
            Limb.Damage($"Weak blocking {attackName}", damageType, Defense * 2);

            return(damageAfterBlock);
        }
    }