Пример #1
0
    /// <summary>
    /// Recieve action eg damage fire, pierce or health
    /// </summary>
    /// <param name="action"></param>
    public EffectCore RecieveEffect(EffectCore effectCore)
    {
        EffectCore reciveEffect = new EffectCore();

        reciveEffect.damage = Mathf.Max(0, effectCore.damage - armor);

        /*effect = action.life - (int)(action.life * Resist.life);
         * effect = + action.death - (int)(action.death * Resist.death);
         * effect = + action.fire - (int)(action.fire * Resist.fire);
         * effect = + action.electricity - (int)(action.electricity * Resist.electricity);
         * effect = + action.cold - (int)(action.cold * Resist.cold);
         * effect = + action.cutting - (int)(action.cutting * Resist.cutting);
         * effect = + action.crushing - (int)(action.crushing * Resist.crushing);
         * effect = + action.piercing - (int)(action.piercing * Resist.piercing);
         */
        // healthCur -= (int)effect - (int)(effect * ResistEffect);

        healthCur -= reciveEffect.damage;

        if (healthCur < healthMin)
        {
            isDead = true;
            OnDied();
        }


        Debug.Log(slugName + " recieve " + effectCore.damage + " apply " + reciveEffect.damage + ". Health " + healthCur);

        return(reciveEffect);
    }
Пример #2
0
    public bool RecieveEffect(EffectCore core)
    {
        Debug.Log("self " + effect.m_EffectType.ToString() + " income " + core.m_EffectType.ToString());
        if (effect.m_EffectType == core.m_EffectType)
        {
            switch (effect.m_EffectType)
            {
            case EffectType.White:
                SceneController.instance.WhiteCount += 1;
                break;

            case EffectType.Red:
                SceneController.instance.RedCount += 1;
                break;

            case EffectType.Green:
                SceneController.instance.GreenCount += 1;
                break;

            case EffectType.Black:
                SceneController.instance.BlackCount += 1;
                break;
            }

            Destroy(gameObject);
        }


        return(effect.m_EffectType != core.m_EffectType);
    }
Пример #3
0
    void HitCollider(GameObject _gameobject)
    {
        var damagable = _gameobject.GetComponent <IDamagable>();

        if (damagable != null)
        {
            EffectCore effect = new EffectCore();
            effect.damage = (int)(core.GetDamage() * weaponController.m_DamageScale);

            var recievedDamage = damagable.RecieveEffect(effect);
        }
    }