private void OnDamageTaken(IDamagable source, DamageArgs args) { HitReceiver receiver = (HitReceiver)source; float angle = Vector3.Angle(args.Dealer.transform.position, receiver.transform.position); var inverseRotation = Quaternion.Euler(0, 0, angle - 180); PositionedArgs effectArgs = new PositionedArgs(receiver.transform.position, inverseRotation); PlayEffects(effectArgs); }
private void OnForceApplied(IForceable source, ForceArgs args) { HitReceiver receiver = (HitReceiver)source; HitboxID hitboxId = receiver.HitboxID; Vector3 totalForce = args.Force * hitboxMapper[hitboxId].ForceMultiplier; var bone = receiver.GetComponent <RagdollBone>(); bone.ApplyForce(new ForceArgs(args.Origin, args.Dealer, totalForce)); }
void OnCollisionEnter(Collision other) { //Debug.Log("Collider " + name + " hit other " + other.gameObject.name); HitReceiver hr = other.gameObject.GetComponent <HitReceiver>(); if (hr != null) { hr.receiveHit(this); } }
void OnCollisionEnter(Collision collision) { if (collision.gameObject.CompareTag(TagToHit)) { Destroy(gameObject); HitReceiver hitReceiver = collision.gameObject.GetComponent <HitReceiver> (); if (hitReceiver) { hitReceiver.ReceiveHit(gameObject); } else { Destroy(collision.gameObject); } } }
void OnCollisionEnter(Collision collision) { if (collision.gameObject.CompareTag(TagToHit)) { Debug.Log(collision.gameObject); if (!gameObject.name.Equals("Shield")) { Destroy(gameObject); } HitReceiver hitReceiver = collision.gameObject.GetComponent <HitReceiver> (); if (hitReceiver) { hitReceiver.ReceiveHit(gameObject); } else { Destroy(collision.gameObject); } } }
public void OnTriggerEnter2D(Collider2D coll) { if (!_isActive) { return; } HitReceiver target = coll.transform.GetComponent <HitReceiver>(); if (target != null && target.actor != _shooter && target.actor.isAlive) { // we have a hit target.actor.ApplyDamage(_weapon.amount); _isActive = false; // disarm bullet if (hitImage != null) { _renderer.sprite = hitImage; } StartCoroutine(RemainAndVanish()); } }