Esempio n. 1
0
    /**********************************************************************************************/
    // выключаем аварийный щит
    //
    /**********************************************************************************************/
    public void DisableShield()
    {
        m_animator.SetBool("shieldIsActive", false);

        if(m_shieldPower > 0)
        {
            m_shieldState = SHIELD_STATE.ACTIVE;
        }
        else
        {
            m_shieldState = SHIELD_STATE.DISABLED;
        }

        m_currentShieldTimer = 0.0f;
    }
Esempio n. 2
0
    /**********************************************************************************************/
    // увеличиваем мощность щита
    //
    /**********************************************************************************************/
    public void IncreasePower(int powerToAdd)
    {
        m_shieldPower += powerToAdd;

        // проверяем на достижения лимита мощности
        if(m_shieldPower > m_maxPower)
        {
            m_shieldPower = m_maxPower;
        }

        // активируем щит
        if(m_shieldPower > 0)
        {
            if (m_shieldState == SHIELD_STATE.DISABLED)
            {
                m_shieldState = SHIELD_STATE.ACTIVE;
            }
            m_animator.SetBool("mainShieldIsActive", true);
        }
    }
Esempio n. 3
0
    /**********************************************************************************************/
    // пробуем поглотить урон щитом
    // функция возвращает кол-во урона, которе щит не смог поглотить
    //
    /**********************************************************************************************/
    public int TakeDamage(int damage)
    {
        int diff = m_shieldPower - damage;
        if (diff > 0)
        {
            // если есть запас прочности щита - включаем анимацию повреждения щита
            m_shieldPower = diff;
            m_animator.SetTrigger("mainShieldIsDamaged");

            return 0;   // возвращаем 0, так как весь урон будет поглощён щитом
        }
        else
        {
            // если запаса прочности щита нет - выключаем его
            m_shieldPower = 0;
            m_animator.SetBool("mainShieldIsActive", false);
            m_shieldState = SHIELD_STATE.DISABLED;
            return -diff;
        }
    }
Esempio n. 4
0
 /**********************************************************************************************/
 // активируем аварийный щит и устанавливаем таймер щита
 //
 /**********************************************************************************************/
 public void ActivateEmergencyShield()
 {
     m_animator.SetBool("shieldIsActive", true);
     m_shieldState = SHIELD_STATE.EMERGENCY_ACTIVE;
     m_currentShieldTimer = m_shiledDuration;
 }