void OnTriggerStay2D(Collider2D col) { if (col.tag == "Player" && t > cooldown) { IDamage d = (IDamage)col.gameObject.GetComponent(typeof(IDamage)); d.Hit(model.damage); t = 0; } }
void OnTriggerEnter2D(Collider2D col) { if (col.tag == "Enemy") { IDamage d = (IDamage)col.gameObject.GetComponent(typeof(IDamage)); d.Hit(damage); gameObject.SetActive(false); Destroy(gameObject); } }
public bool DealDamage(AttackData attackData, GameObject target, params PlayerActions[] actionToTrigger) { // Get IDamage IDamage iDamage = target.GetComponent <IDamage>(); if (iDamage == null) { return(false); } // Check Ignore Hit (피해 무시) if (target.GetComponent <StatusEffect_IgnoreHit>() != null) { return(false); } // Store Damage DamageToDeal = attackData.damage.Value; // Store Attack Data CurAttackData = attackData; // Store Damaged Mob DamagedMob = target.GetComponent <Mob_Base>(); // Trigger Item Effect PlayerActionEventManager.Trigger(PlayerActions.DamageDealt); for (int i = 0; i < actionToTrigger.Length; i++) { PlayerActionEventManager.Trigger(actionToTrigger[i]); } attackData.damage = new FloatStat(DamageToDeal); if (iDamage.CheckDeath(attackData)) { KilledMob = target.GetComponent <Mob_Base>(); PlayerActionEventManager.Trigger(PlayerActions.Kill); } // Damage Mob iDamage.Hit(attackData); // Reset Attack Data CurAttackData = null; // Reset Damaged Mob DamagedMob = null; return(true); }