private void Damaged(DamageAble.DamageData info) { anim.SetTrigger("Hit"); state = EnemyState.Hit; target = info.damageOwner; }
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); }
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); }
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); }
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; } }
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(); }
private void Death(DamageAble.DamageData data) { anim.SetTrigger("Death"); }