Ejemplo n.º 1
0
 public void OnNotification(object sender, Message msg, params object[] args)
 {
     if ((Object)sender == this.sender)
     {
         if (msg == message)
         {
             if (delay > 0f)
             {
                 ActionHelper.Delay(delay, () => evt.Invoke());
             }
             else
             {
                 evt.Invoke();
             }
         }
     }
 }
Ejemplo n.º 2
0
    public void OnNotification(object sender, Message msg, params object[] args)
    {
        if ((sender as MonoBehaviour).gameObject != this.sender)
        {
            return;
        }

        if (msg == message)
        {
            if (targets.Length > 0)
            {
                targets[index].SetActive(true);
                index = (index + 1 >= 0 && index + 1 < targets.Length) ? index + 1 : 0;
                ActionHelper.Delay(1f, () => { targets[index].SetActive(false); });
            }
        }
    }
Ejemplo n.º 3
0
    // Public methods ============================================ //

    public void OnGetHit(Attack attack)
    {
        if (IsInAnyState(States.Dead))
        {
            return;
        }

        MeleeAttack meleeAtk;

        if (attack is MeleeAttack)
        {
            meleeAtk = (MeleeAttack)attack;
            var damage = Random.Range(meleeAtk.minDamage, meleeAtk.maxDamage);
            this.Health -= damage;
            if (Health > 0f)
            {
                GetComponent <StaggerBehaviour>().StaggerHealth -= meleeAtk.staggerDamage;
            }
            meleeAtk.Source.Notify(Message.Combat_HitEnemy, this);
            this.Notify(Message.Combat_GotHit);
            Time.timeScale = 0.2f;
            ActionHelper.Delay(0.06f, () => { Time.timeScale = 1f; });
        }
    }
Ejemplo n.º 4
0
 private void Start()
 {
     sprite = GetComponent <SpriteRenderer>();
     ActionHelper.Delay(1.0f, () => sprite.DOFade(0f, 1f));
     ActionHelper.Delay(2.5f, () => Destroy(gameObject));
 }