Пример #1
0
 void OnTriggerStay2D(Collider2D col)
 {
     if (col.tag == "Player" && t > cooldown)
     {
         IDamage d = (IDamage)col.gameObject.GetComponent(typeof(IDamage));
         d.Hit(model.damage);
         t = 0;
     }
 }
Пример #2
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);
     }
 }
Пример #3
0
    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);
    }