Exemplo n.º 1
0
    /**********************************************************************************/
    // функция получения урона юнитом
    //
    /**********************************************************************************/
    override public void ApplyDamage(DamageData damage)
    {
        if (m_state == UNIT_STATE.ACTIVE)
        {
            // объект получает урон
            m_armor.TakeDamage(damage);

            // накладываем визуальный эффект
            EffectDescriptor dE = new EffectDescriptor();
            if (damage.DamageType == DamageData.DAMAGE_TYPE.ACID)
            {
                dE.Type = UnitEffect.EFFECT_TYPE.DAMAGE_ACID;
            }
            else
            {
                dE.Type = UnitEffect.EFFECT_TYPE.DAMAGE;
            }
            dE.Responsibility = EffectDescriptor.EffectResponsibility.REQUIRED;
            ApplyEffect(dE);

            // если есть возможность нанести ответный урон - делаем это
            if (damage.ExpectResponce == DamageData.RESPONSE.EXPECTED)
            {
                m_weaponMaster.UseCloseWeapon(damage.Damager, true);
            }
        }
    }