private IEnumerator AimPhase(IPushable pushable, AimLogic aimLogic) { _visuals.Indicator.enabled = true; while (!pushable.IsPushed()) { AimState state = aimLogic.GetCurrentAimState(Time.time); _visuals.Indicator.UpdateState(state); yield return(null); } pushable.IsPushed(); yield return(null); }
private IEnumerator ShowScorePhase(AimState state) { _visuals.Camera.GoToScorePoint(); if (state.Score > 1) { yield return(StartCoroutine(_visuals.Scores.ShowScore(state.Score))); } else { yield return(StartCoroutine(_visuals.Scores.YouMissed())); } _visuals.MainButton.enabled = true; }
private Func <float, Vector3> GetTrajectory(AimLogic logic, AimState state) { Func <float, Vector3> trajectory; bool hitted = !state.Missed; if (hitted) { Vector3 init = logic.GetHitPoint(state.ZoneIndex); Vector3 start = _visuals.AimTarget.Arrow.position; Vector3 end = _visuals.AimTarget.RelativePoint(init); trajectory = logic.KinematicTraject(start, end); // trajectory = logic.DirectTraject(start, end); } else { Vector3 start = _visuals.AimTarget.Arrow.position; Vector3 end = _visuals.AimTarget.RandomMissPoint(); Debug.DrawLine(start, end); trajectory = logic.KinematicTraject(start, end); } return(trajectory); }