Пример #1
0
    public void LoseStructure(int amount, Weapons.DamageType type)
    {
        if (CurrentHitPoints == 0)
        {
            return;
        }

        int reduced_amount = (amount - damage_resistance > 0) ? amount - damage_resistance : 0;

        CurrentHitPoints -= DamageAfterResistance(reduced_amount, type);
        if (CurrentHitPoints <= 0)
        {
            CurrentHitPoints = 0;
        }
        UpdateStructure();
    }
Пример #2
0
    // private

    private int DamageAfterResistance(int _damage, Weapons.DamageType _type)
    {
        int damage_taken = _damage;

        switch (Resistances[_type])
        {
        case ResistanceLevels.Resistant:
            damage_taken = _damage / 2;
            break;

        case ResistanceLevels.Immune:
            damage_taken = 0;
            break;

        case ResistanceLevels.Vulnerable:
            damage_taken = _damage * 2;
            break;

        default:
            break;
        }

        return(damage_taken);
    }
Пример #3
0
 public int DamageAfterDefenses(int _damage, Weapons.DamageType _type)
 {
     return(DamageAfterResistance(_damage, _type));
 }
Пример #4
0
    // private


    private int DamageAfterResistance(int damage, Weapons.DamageType type)
    {
        return((damage <= 0 || Resistances == null) ? damage : (damage -= damage * (Resistances[type] / 100)));
    }