public void SwitchRail(SwipeDirection direction) { if (NextRails.Count == 0) { return; } NextRails = NextRails.OrderBy(rail => rail.OutputId).ToList(); var currentWayIndex = NextRails.FindIndex(way => way == NextActiveRail); if (direction == SwipeDirection.Left) { currentWayIndex--; } if (direction == SwipeDirection.Right) { currentWayIndex++; } if (currentWayIndex >= NextRails.Count) { currentWayIndex = NextRails.Count - 1; } if (currentWayIndex < 0) { currentWayIndex = 0; } NextActiveRail = NextRails[currentWayIndex]; UpdateRailSprite(); if (_uiService.IsFirstTime) { NextActiveRail.SwitchRail(); } else { NextActiveRail.SwitchRail(direction); } }
private void Update() { if (!_uiService.IsInGame) { return; } var touch = Input.touchCount != 0 && Input.GetTouch(0).phase == TouchPhase.Began; if ((Input.GetKeyDown(KeyCode.Mouse0) || touch) && !LockControlls) { TargetRail.SwitchRail(); _audioService.Play(AudioClipType.Swipe); if (IsFirstTime) { Row nextTutorRow = MapGenerator.Instance.TutorialRows.FirstOrDefault(); if (_uiService.IsInTutorial && nextTutorRow != null) { if (!nextTutorRow.Outputs.First(o => o.Key == TargetRail.NextActiveRail.OutputId).Value.HasObject) { _uiService.ShowTutorial(false); MapGenerator.Instance.TutorialRows.Remove(nextTutorRow); if (MapGenerator.Instance.TutorialRows.Count != 0) { LockControlls = true; } else { _uiService.IsFirstTime = false; IsFirstTime = false; } } } } } }
public void SwitchRail() { if (NextRails.Count == 0) { return; } NextRails = NextRails.OrderBy(rail => rail.OutputId).ToList(); var currentWayIndex = NextRails.FindIndex(way => way == NextActiveRail); currentWayIndex++; if (currentWayIndex >= NextRails.Count) { currentWayIndex = 0; } NextActiveRail = NextRails[currentWayIndex]; UpdateRailSprite(); NextActiveRail.SwitchRail(); }