private void OnTriggerExit2D(Collider2D collision) { AttackCtrl a = collision.GetComponent <AttackCtrl>(); if (collision.tag == "Shootable" && a.GetAttackType() == 8) { _isChained = false; } }
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()); } }