// Token: 0x06002966 RID: 10598 RVA: 0x000AE378 File Offset: 0x000AC578 private void UpdateVisualizers(AimThrowableBase.TrajectoryInfo trajectoryInfo) { if (this.arcVisualizerLineRenderer && this.calculateArcPointsJobHandle.IsCompleted) { this.calculateArcPointsJob.SetParameters(trajectoryInfo.finalRay.origin, trajectoryInfo.finalRay.direction * trajectoryInfo.speedOverride, trajectoryInfo.travelTime, this.arcVisualizerLineRenderer.positionCount, this.useGravity ? Physics.gravity.y : 0f); this.calculateArcPointsJobHandle = this.calculateArcPointsJob.Schedule(this.calculateArcPointsJob.outputPositions.Length, 32, default(JobHandle)); } if (this.endpointVisualizerTransform) { this.endpointVisualizerTransform.SetPositionAndRotation(trajectoryInfo.hitPoint, Util.QuaternionSafeLookRotation(trajectoryInfo.hitNormal)); if (!this.endpointVisualizerRadiusScale.Equals(0f)) { this.endpointVisualizerTransform.localScale = new Vector3(this.endpointVisualizerRadiusScale, this.endpointVisualizerRadiusScale, this.endpointVisualizerRadiusScale); } } }
// Token: 0x06002964 RID: 10596 RVA: 0x000AE168 File Offset: 0x000AC368 protected virtual void UpdateTrajectoryInfo(out AimThrowableBase.TrajectoryInfo dest) { dest = default(AimThrowableBase.TrajectoryInfo); Ray aimRay = base.GetAimRay(); RaycastHit raycastHit = default(RaycastHit); bool flag = false; if (this.rayRadius > 0f && Util.CharacterSpherecast(base.gameObject, aimRay, this.rayRadius, out raycastHit, this.maxDistance, LayerIndex.CommonMasks.bullet, QueryTriggerInteraction.UseGlobal) && raycastHit.collider.GetComponent <HurtBox>()) { flag = true; } if (!flag) { flag = Util.CharacterRaycast(base.gameObject, aimRay, out raycastHit, this.maxDistance, LayerIndex.CommonMasks.bullet, QueryTriggerInteraction.UseGlobal); } if (flag) { dest.hitPoint = raycastHit.point; dest.hitNormal = raycastHit.normal; } else { dest.hitPoint = aimRay.GetPoint(this.maxDistance); dest.hitNormal = -aimRay.direction; } Vector3 vector = dest.hitPoint - aimRay.origin; if (this.useGravity) { float num = this.projectileBaseSpeed; Vector2 vector2 = new Vector2(vector.x, vector.z); float magnitude = vector2.magnitude; float y = Trajectory.CalculateInitialYSpeed(magnitude / num, vector.y); Vector3 a = new Vector3(vector2.x / magnitude * num, y, vector2.y / magnitude * num); dest.speedOverride = a.magnitude; dest.finalRay = new Ray(aimRay.origin, a / dest.speedOverride); dest.travelTime = Trajectory.CalculateGroundTravelTime(num, magnitude); return; } dest.speedOverride = this.projectileBaseSpeed; dest.finalRay = aimRay; dest.travelTime = this.projectileBaseSpeed / vector.magnitude; }