//Function : Damage
    //~~~~~~~~~~~~~~~~~~~~~~~~
    //int _incomingdamage | Damage value of Player's attack
    //ELEM _elem | Element of Player's attack
    //~~~~~~~~~~~~~~~~~~~~~~~~
    //Call this function to attack this Enemy. Minimum damage will always be 1.
    public void Damage(int _incomingdamage, ELEM _elem)
    {
        m_hpCurrent -= (int)Mathf.Clamp((float)_incomingdamage * elementChecker.CompareElement((int)data.Elem, (int)_elem) - (data.DEF + m_defBoost), 1, 99999);

        if (m_hpCurrent <= 0)
        {
            m_hpCurrent = 0;

            //Enemy dies
        }

        HPGaugeReference.SetWaitGauge((float)m_hpCurrent / (float)data.HP);
    }
Пример #2
0
    public float CompareElement(int _defensive, int _offensive)
    {
        ELEM defensive = (ELEM)_defensive;
        ELEM offensive = (ELEM)_offensive;

        switch (offensive)
        {
        case ELEM.FIRE:
        {
            if (defensive == ELEM.WIND)
            {
                return(m_multiplierSuperEffective);
            }
            else if (defensive == ELEM.WATER)
            {
                return(m_multiplierNotEffective);
            }
        }
        break;

        case ELEM.WIND:
        {
            if (defensive == ELEM.VOID)
            {
                return(m_multiplierSuperEffective);
            }
            else if (defensive == ELEM.FIRE)
            {
                return(m_multiplierNotEffective);
            }
        }
        break;

        case ELEM.VOID:
        {
            if (defensive == ELEM.EARTH)
            {
                return(m_multiplierSuperEffective);
            }
            else if (defensive == ELEM.WIND)
            {
                return(m_multiplierNotEffective);
            }
        }
        break;

        case ELEM.EARTH:
        {
            if (defensive == ELEM.WATER)
            {
                return(m_multiplierSuperEffective);
            }
            else if (defensive == ELEM.VOID)
            {
                return(m_multiplierNotEffective);
            }
        }
        break;

        case ELEM.WATER:
        {
            if (defensive == ELEM.FIRE)
            {
                return(m_multiplierSuperEffective);
            }
            else if (defensive == ELEM.EARTH)
            {
                return(m_multiplierNotEffective);
            }
        }
        break;

        default:
            break;
        }


        return(1);
    }