Esempio n. 1
0
    private void Damaged(DamageAble.DamageData info)
    {
        anim.SetTrigger("Hit");
        state = EnemyState.Hit;

        target = info.damageOwner;
    }
Esempio n. 2
0
    private bool CheckDamage(Collider target, AttackPoint point)
    {
        DamageAble victim = target.GetComponent <DamageAble>();

        if (victim == null)
        {
            return(false);
        }

        if (victim.gameObject == wielder)
        {
            return(true);
        }

        DamageAble.DamageData data = new DamageAble.DamageData
        {
            damageAmount = damage,
            damager      = this,
            damageOwner  = wielder,
            direction    = direction,
            damageSource = wielder.transform.position
        };

        victim.ApplyDamage(data);


        if (hit_effect != null)
        {
            hit_effect.transform.position = point.attackRoot.position;
            hit_effect.time = 0;
            hit_effect.Play();
        }

        return(true);
    }
Esempio n. 3
0
    private void Damaged(DamageAble.DamageData data)
    {
        anim.SetTrigger("Hit");

        Vector3 forward = data.damageSource - transform.position;

        forward.y = 0;

        Vector3 localHurt = transform.InverseTransformDirection(forward);

        anim.SetFloat("HurtFromZ", localHurt.z);
    }
Esempio n. 4
0
    private void OnTriggerStay(Collider other)
    {
        var d = other.GetComponent <DamageAble>();

        if (d == null)
        {
            return;
        }

        var data = new DamageAble.DamageData()
        {
            damageAmount = this.damageAmount,
            damager      = this,
            direction    = Vector3.up,
        };

        d.ApplyDamage(data);
    }
Esempio n. 5
0
    public void OnReceiveMessage(MessageType type, object sender, object msg)
    {
        switch (type)
        {
        case MessageType.Damaged:

            DamageAble.DamageData damageData = (DamageAble.DamageData)msg;
            Damaged(damageData);

            break;

        case MessageType.Dead:

            Death((DamageAble.DamageData)msg);

            break;
        }
    }
Esempio n. 6
0
    private void Death(DamageAble.DamageData data)
    {
        if (anim.GetBool("Dead"))
        {
            return;
        }

        Vector3 forward = data.damageSource - transform.position;

        forward.y = 0;

        Vector3 localHurt = transform.InverseTransformDirection(forward);

        anim.SetFloat("HurtFromZ", localHurt.z);
        anim.SetBool("Dead", true);

        anim.SetTrigger("Hit");
        GameManager.instance.Gameover();
    }
Esempio n. 7
0
 private void Death(DamageAble.DamageData data)
 {
     anim.SetTrigger("Death");
 }