public void HitByZRoot(ZRoot zr, Rigidbody rb) { if (!isEnable) { return; } Vector3 dir = rb.transform.position - transform.position; switch (interactDefinition) { case InteractType.Pull: PullForce(dir.normalized, dir.magnitude * forceMultiplier); break; case InteractType.Usable: UseObject(); break; case InteractType.Grapple: GrappleForce(-dir.normalized, dir.magnitude * forceMultiplier, zr); break; default: break; } }
public void checkAimRelease() { if (!isAiming) { return; } switch (currentAmmo.type) { case GauntletType.Zroot: ZRoot zRoot = currentAmmo.ammoObject.GetComponent <ZRoot> (); if (!zRoot.isShot() && !levController.isJumping) { setLockAim(false); } break; } }
public void shoot() { if (!isAiming || !levController.isGrounded || levController.isJumping || currentAmmo == null) { return; } levController.FacingDirectionInstant = levController.facingDirection; Vector3 aimDirection = Quaternion.AngleAxis(aimAngle, levController.transform.forward) * levController.transform.right; switch (currentAmmo.type) { case GauntletType.Zroot: ZRoot zRoot = currentAmmo.ammoObject.GetComponent <ZRoot> (); if (!zRoot.isShot()) { zRoot.shootZRoot(gauntletNozzle.position, aimDirection); levController.levAnimator.SetTrigger("isShooting"); setLockAim(true); } break; } }
virtual public void GrappleForce(Vector3 direction, float forcePower, ZRoot targetZR) { targetZR.GrappleForce(direction, forcePower); }