Пример #1
0
    private void OnTriggerExit2D(Collider2D collision)
    {
        AttackCtrl a = collision.GetComponent <AttackCtrl>();

        if (collision.tag == "Shootable" && a.GetAttackType() == 8)
        {
            _isChained = false;
        }
    }
Пример #2
0
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == "Shootable")
        {
            AttackCtrl a = collision.GetComponent <AttackCtrl>();
            switch (a.GetAttackType())
            {
            case 1:
                DamagedEnemy(a.GetAttackEnergy());
                Destroy(collision.gameObject);
                break;

            case 2:
                DamagedEnemy(a.GetAttackEnergy());
                _poisoningDamage = Convert.ToInt64(a.GetAttackEnergy() * 0.2);
                if (IsInvoking("PoisoningDamaged"))
                {
                    _poisoningDamage      = Convert.ToInt64(((10 - _poisoningAttackCount) * _newPoisoningDamage) * 0.1) + _poisoningDamage;
                    _poisoningAttackCount = 0;
                    CancelInvoke("PoisoningDamaged");
                }
                InvokeRepeating("PoisoningDamaged", 0.5f, 0.5f);
                Destroy(collision.gameObject);
                break;

            case 4:
                HumanAttributeAttack(a.GetAttackEnergy());
                Destroy(collision.gameObject);
                break;

            case 5:
                GhostAttributeAttack(a.GetAttackEnergy());
                Destroy(collision.gameObject);
                break;

            case 7:
                if (!_isFiring)
                {
                    DamagedEnemy(a.GetAttackEnergy());
                    InvokeRepeating("FiringDamaged", 0.5f, 0.5f);
                    _firingDamage = Convert.ToInt64(a.GetAttackEnergy() * 0.15);
                    _isFiring     = true;
                }
                break;

            case 8:
                if (!_isChained)
                {
                    DamagedEnemy(a.GetAttackEnergy());
                    if (a.GetChainCount() <= 4)
                    {
                        _isChained = true;
                    }
                    a.ChainArrived();
                }
                break;

            case 9:
                DamagedEnemy(a.GetAttackEnergy());
                Destroy(collision.gameObject);
                break;

            default:
                break;
            }
            //Debug.Log(collision.GetComponent<AttackCtrl>().GetAttackEnergy());
        }
    }