public virtual void HitObject() { healthControllerHit = hit.transform.GetComponentInParent <HealthController>(); HealthControllerProp propHealthController = healthControllerHit as HealthControllerProp; if (healthControllerHit != null && propHealthController == null) //Hit a Player Or AI, WIll not execute any other logic outside of here { hittableObjectController = hit.collider.GetComponent <HittableObjectController>(); hittableObjectController.ObjectHit(hit.point, originalFiredPosition); SubHitboxController hitboxController = hit.collider.GetComponent <SubHitboxController>(); healthControllerHit.TakeDamage(damage, hitboxController.hitboxType); DestroyProjectile(); return; } if (propHealthController != null) { healthControllerHit.TakeDamage(damage, HitboxType.PROP); DestroyProjectile(); } hittableObjectController = hit.transform.GetComponent <HittableObjectController>(); if (hittableObjectController != null) { // Debug.Log(3); hittableObjectController.ObjectHit(hit.point, -hit.normal); } AIManager.singleton.SendNotificationToAi(weaponItem.gunshotSoundNotificationDistance, transform.position); DestroyProjectile(); }
public override void HitObject() { healthControllerHit = hit.transform.GetComponentInParent<HealthController>(); if (healthControllerHit != null) //Hit a Player Or AI, WIll not execute any other logic outside of here { hittableObjectController = healthControllerHit.GetComponent<HittableObjectController>(); hittableObjectController.ObjectHit(hit.point, originalFiredPosition); HitboxColliderHandler colliderHandler = hit.transform.GetComponent<HitboxColliderHandler>(); colliderHandler.parentHandler.parentRigidbody.AddForce(colliderHandler.transform.forward * 1000f, ForceMode.Impulse); if (Physics.Raycast(rayCastPoint.position, transform.TransformDirection(Vector3.forward), out hit, 1.3f, layerMask)) //Cast a second ray to get the body part to attach too { transform.position = hit.point + (transform.forward * weaponItem.arrowBodyHitOffset); transform.SetParent(hit.transform); } SubHitboxController hitboxController = hit.collider.GetComponent<SubHitboxController>(); healthControllerHit.TakeDamage(damage, hitboxController.hitboxType); DestroyProjectile(); return; } hittableObjectController = hit.transform.GetComponent<HittableObjectController>(); if (hittableObjectController != null) { // Debug.Log(3); hittableObjectController.ObjectHit(hit.point, -hit.normal); transform.position = hit.point; } DestroyProjectile(); }
public void OnTriggerEnter(Collider other) { if (other.GetComponentInParent <HealthController>() != null) { SubHitboxController hitboxController = other.GetComponent <SubHitboxController>(); //Debug.Log(hitboxController); other.GetComponentInParent <HealthController>().TakeDamage(meleeItem.weaponItemData.attackDamage, hitboxController.hitboxType); } }