Beispiel #1
0
        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);
            }
        }
Beispiel #2
0
        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;
                            }
                        }
                    }
                }
            }
        }
Beispiel #3
0
        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();
        }