private void ShowTrainingStep(int step) { switch (step) { case 0: if (IsTrainingFinished()) { gameObject.SetActive(false); return; } _benches = GameObject.Find("benches"); _benches.SetActive(false); _isBonusDropEnabled = false; _doorsTimer.SetActive(false); _ticketsCounter.SetActive(false); _haresCounter.SetActive(false); _killedCounter.SetActive(false); _lifes.SetActive(false); _bonusSelectWindow.SetActive(false); _isPassengerClickAllowed = false; _centralWayout.SetActive(false); _centralWayoutSprite.SetActive(false); _bonusesUI.SetActive(false); _megabonusUI.SetActive(false); _bonusButton.SetVisible(false); Time.timeScale = 0; _doorsTimerController.SetMoveAndStopDuration(3, 1); _doorsTimerController.SetMovementLocked(true); _fullConductorWindow.DisplayText(StringResources.GetLocalizedString("Training1"), false); break; case 1: _fullConductorWindow.DisplayTextWithImage(StringResources.GetLocalizedString("Training2"), Resources.Load <Sprite>("Sprites/training/training1"), false); break; case 2: _fullConductorWindow.DisplayText(StringResources.GetLocalizedString("Training3"), true); break; case 3: Time.timeScale = 1; SpawnPassengerFromRandomDoor("gnome", Spawner.TicketAdditionMode.WithTicket); StartCoroutine(WaitAndMoveNext(2)); break; case 4: Time.timeScale = 0; _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training4"), true); GameObject gnomeObject = GameObject.Find("gnome(Clone)"); _gnomePassenger = gnomeObject.GetComponent <Gnome>(); _gnomePassenger.SetAttackEnabled(false); _gnomePassenger.SetFlyAwayDenied(true); _gnomePassenger.SetDragDenied(true); DisplayArrowForPassenger(_gnomePassenger); _isPassengerClickAllowed = true; break; case 5: Time.timeScale = 1; _ticketsCounter.SetActive(true); break; case 6: Time.timeScale = 0; Destroy(_activeArrow); _doorsTimer.SetActive(true); _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training5"), true); break; case 7: Time.timeScale = 1; _doorsTimerController.SetMovementLocked(false); StartCoroutine(WaitAndMoveNext(2)); break; case 8: SpawnPassengerFromRandomDoor("bird", Spawner.TicketAdditionMode.WithoutTicket); GameObject bird = GameObject.Find("bird(Clone)"); _birdPassenger = bird.GetComponent <Bird>(); _birdPassenger.SetFlyAwayDenied(true); _birdPassenger.SetAttackEnabled(false); _birdPassenger.SetRunawayDenied(true); DisplayArrowForPassenger(_birdPassenger); _doorsTimerController.SetMovementLocked(true); break; case 9: Time.timeScale = 0; Destroy(_activeArrow); _doorsTimer.SetActive(true); _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training6"), true); break; case 10: _centralWayout.SetActive(true); _centralWayoutSprite.SetActive(true); DisplayArrow(_centralWayout); Time.timeScale = 1; _floor.AddDragCenterListner(_birdPassenger.name); break; case 11: Time.timeScale = 0; Destroy(_activeArrow); _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training7"), true); break; case 12: Time.timeScale = 1; _birdPassenger.SetRunawayDenied(false); _birdPassenger.SetFlyAwayDenied(false); _birdPassenger.ActivateFlyAwayListener(); _haresCounter.SetActive(true); break; case 13: Time.timeScale = 0; _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training8"), true); break; case 14: _doorsTimerController.SetMoveAndStopDuration(3, 5); Time.timeScale = 1; _doorsTimerController.SetMovementLocked(false); _goAwayDoorIndex = Randomizer.GetInRange(0, _doors.Length); _gnomePassenger.SetAlwaysStickForTraining(); _gnomePassenger.StartGoAway(); StartCoroutine(WaitAndMoveNext(2.9f)); break; case 15: _doors[(_goAwayDoorIndex)].Open(false); break; case 16: Time.timeScale = 0; _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training9"), true); break; case 17: Time.timeScale = 1; break; case 18: Time.timeScale = 0; _shortConductorWindow.DisplayText(StringResources.GetLocalizedString(_isGnomeSurvived ? "Training10" : "Training11"), true); break; case 19: Time.timeScale = 1; _doors[(_goAwayDoorIndex)].Close(); _doorsTimerController.Unstick(); StartCoroutine(WaitAndMoveNext(_doorsTimerController.GetCurrentRemainingTime() + 3)); break; case 20: _goAwayDoorIndex = Randomizer.GetInRange(0, _doors.Length); _doorsTimerController.OpenDoors(); int index = Randomizer.GetInRange(0, _doors.Length); _doors[index].OpenAndSpawnByName("granny", Spawner.TicketAdditionMode.WithTicket); index = Randomizer.GetInRange(0, _doors.Length); _doors[index].OpenAndSpawnByName("cat", Spawner.TicketAdditionMode.WithoutTicket); StartCoroutine(WaitAndMoveNext(0.1f)); break; case 21: _doorsTimerController.SetMovementLocked(true); GameObject grannyObject = GameObject.Find("granny(Clone)"); _grannyPassenger = grannyObject.GetComponent <Granny>(); GameObject catObject = GameObject.Find("cat(Clone)"); _catPassenger = catObject.GetComponent <Cat>(); _catPassenger.SetMaximumAttackProbabilityForTraining(); _grannyPassenger.SetMaximumAttackProbabilityForTraining(); _grannyPassenger.SetConductorAttackDenied(true); _catPassenger.SetConductorAttackDenied(true); _catPassenger.SetFlyAwayDenied(true); _grannyPassenger.SetFlyAwayDenied(true); _catPassenger.SetHalfImmortal(true); _grannyPassenger.SetHalfImmortal(true); _hero = GameObject.Find("hero").GetComponent <ConductorSM>(); _hero.SetHalfImmortal(true); break; case 22: _grannyPassenger.DisableAttackListener(); _catPassenger.DisableAttackListener(); if (_attackedPassenger != null) { DisplayArrowForPassenger((PassengerSM)_attackedPassenger); } break; case 23: Time.timeScale = 0; Destroy(_activeArrow); _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training12"), false); break; case 24: _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training13"), false); break; case 25: _grannyPassenger.SetDragListenerEnabled(true); _catPassenger.SetDragListenerEnabled(true); _killedCounter.SetActive(true); _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training14"), true); break; case 26: Time.timeScale = 1; _catPassenger.AttackTarget = _grannyPassenger; break; case 27: _grannyPassenger.SetDragListenerEnabled(false); _grannyPassenger.SetCounterAttackProbability(0); _catPassenger.SetDragListenerEnabled(false); _catPassenger.SetConductorAttackDenied(false); _catPassenger.SetPassengerAttackDenied(true); _hero.SetAttackListenerActivated(); _catPassenger.AttackTarget = _hero; break; case 28: StartCoroutine(WaitAndMoveNext(1)); break; case 29: Time.timeScale = 0; _lifes.SetActive(true); _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training15"), true); _catPassenger.SetFlyAwayDenied(false); _isBonusDropEnabled = true; _catPassenger.IncreaseBonusProbability(); break; case 30: DisplayArrowForPassenger(_catPassenger); Time.timeScale = 1; break; case 31: Destroy(_activeArrow); _bonusTimer.ActivateDropListener(); break; case 32: StartCoroutine(WaitAndMoveNext(1)); break; case 33: Time.timeScale = 0; _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training16"), true); break; case 34: Time.timeScale = 1; _bonusTimer.ActivateDropListener(); break; case 35: Time.timeScale = 0; _bonusesUI.SetActive(true); _megabonusUI.SetActive(true); _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training17"), false); break; case 36: _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training18"), true); break; case 37: Time.timeScale = 1; _doorsTimerController.SetMoveAndStopDuration(3, 7); _doorsTimerController.OpenDoors(); _doorsTimerController.SetMovementLocked(false); _grannyPassenger.SetStickProbability(0); _grannyPassenger.StartGoAway(); _grannyPassenger.IncreaseGoAwayVelocity(); _grannyPassenger.SetDragDenied(true); _goAwayDoorIndex = Randomizer.GetInRange(0, _doors.Length); _doors[(_goAwayDoorIndex)].Open(false); _grannyPassenger.IncrementStationCount(); StartCoroutine(WaitAndMoveNext(_doorsTimerController.GetCurrentRemainingTime() + 3)); break; case 38: _doorsTimerController.OpenDoors(); SpawnPassengerFromRandomDoor("alien", Spawner.TicketAdditionMode.WithTicket); SpawnPassengerFromRandomDoor("alien", Spawner.TicketAdditionMode.WithTicket); StartCoroutine(WaitAndMoveNext(1)); break; case 39: _doorsTimerController.SetMovementLocked(true); Time.timeScale = 0; _benches.SetActive(true); DisplayArrow(_benches); _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training19"), true); break; case 40: Destroy(_activeArrow); Time.timeScale = 1; _benchArray = FindObjectsOfType <Bench>(); foreach (var bench in _benchArray) { bench.SetCheckState(false); } _aliens = FindObjectsOfType <Alien>(); foreach (var alien in _aliens) { alien.SetFlyAwayDenied(true); alien.SetSitListenerActivated(true); } break; case 41: foreach (var alien in _aliens) { alien.SetSitListenerActivated(false); } _hero.SetHalfImmortal(false); Time.timeScale = 0; _shortConductorWindow.DisplayText(StringResources.GetLocalizedString("Training20"), true); foreach (var bench in _benchArray) { bench.SetCheckState(true); } break; case 42: Time.timeScale = 1; _doorsTimerController.SetStationCountListener(3); _doorsTimerController.SetMovementLocked(false); _doorsTimerController.DisableTrainingMode(); break; case 43: PassengerSM[] passengers = FindObjectsOfType <PassengerSM>(); foreach (var passengerSm in passengers) { passengerSm.StartGoAway(); passengerSm.IncreaseGoAwayVelocity(); } _doorsTimerController.DisableSpawn(); _doorsTimerController.SetStationCountListener(2); break; case 44: _shortConductorWindow.ForceHide(); Time.timeScale = 0; _fullConductorWindow.DisplayTextWithImage(StringResources.GetLocalizedString("Training21"), Resources.Load <Sprite>("Sprites/training/training2"), false, true); break; case 45: PlayerPrefs.SetString(TrainingKey, TrainingKey); SceneManager.LoadSceneAsync("MainMenu"); break; } _isRefreshInProgress = false; }
void Update() { int remainTime = _timer.GetCurrentRemainingTime(); int zeroCount = FullZeroCount - remainTime.ToString().Length; string result = string.Empty; for (int i = 0; i < zeroCount; i++) { result += "0"; } result += remainTime; // result = result.Insert(2, ":"); _text.text = result; if (_time != int.Parse(result)) { _time = int.Parse(result); _bar_left = true; _bar_left_middle = true; _bar_right_middle = true; _bar_right = true; } int xxxx = Mathf.FloorToInt(_time / 1000); int xxx = Mathf.FloorToInt((_time - (xxxx * 1000)) / 100); int xx = Mathf.FloorToInt((_time - (xxxx * 1000) - (xxx * 100)) / 10); int x = _time - (xxxx * 1000) - (xxx * 100) - (xx * 10); if (!_bar_left && !_bar_left_middle && !_bar_right_middle && !_bar_right) { _time_old = _time; } else { if (_bar_left) { if (Num_Left.transform.localPosition.y > (_num_posY - (_baraban_y * xxxx))) { Num_Left.transform.Translate(0, Time.deltaTime * -_baraban_speed, 0); } else { Num_Left.transform.localPosition = new Vector3(Num_Left.transform.localPosition.x, _num_posY - (_baraban_y * xxxx), Num_Left.transform.localPosition.z); _bar_left = false; } } if (_bar_left_middle) { if (_time < _time_old) { if (xxx < 9) { if (Num_Left_Middle.transform.localPosition.y < (_num_posY - (_baraban_y * xxx))) { Num_Left_Middle.transform.Translate(0, 0.1f * _baraban_speed * (_time_old - _time), 0); } else { Num_Left_Middle.transform.localPosition = new Vector3(Num_Left_Middle.transform.localPosition.x, _num_posY - (_baraban_y * xxx), Num_Left_Middle.transform.localPosition.z); _bar_left_middle = false; } } else { if (Num_Left_Middle.transform.localPosition.y > (_num_posY - (_baraban_y * 9))) { Num_Left_Middle.transform.Translate(0, -0.2f * _baraban_speed, 0); } else { Num_Left_Middle.transform.localPosition = new Vector3(Num_Left_Middle.transform.localPosition.x, _num_posY - (_baraban_y * 9), Num_Left_Middle.transform.localPosition.z); _bar_left_middle = false; } } } else { if (xxx > 0) { if (Num_Left_Middle.transform.localPosition.y > (_num_posY - (_baraban_y * xxx))) { Num_Left_Middle.transform.Translate(0, 0.1f * _baraban_speed * (_time_old - _time), 0); } else { Num_Left_Middle.transform.localPosition = new Vector3(Num_Left_Middle.transform.localPosition.x, _num_posY - (_baraban_y * xxx), Num_Left_Middle.transform.localPosition.z); _bar_left_middle = false; } } else { if (Num_Left_Middle.transform.localPosition.y < _num_posY) { Num_Left_Middle.transform.Translate(0, 0.45f * _baraban_speed, 0); } else { Num_Left_Middle.transform.localPosition = new Vector3(Num_Left_Middle.transform.localPosition.x, _num_posY, Num_Left_Middle.transform.localPosition.z); _bar_left_middle = false; } } } } if (_bar_right_middle) { if (_time < _time_old) { if (xx < 5) { if (Num_Right_Middle.transform.localPosition.y < (_num_posY - (_baraban_y * xx))) { Num_Right_Middle.transform.Translate(0, 0.1f * _baraban_speed * (_time_old - _time), 0); } else { Num_Right_Middle.transform.localPosition = new Vector3(Num_Right_Middle.transform.localPosition.x, _num_posY - (_baraban_y * xx), Num_Right_Middle.transform.localPosition.z); _bar_right_middle = false; } } else { if (Num_Right_Middle.transform.localPosition.y > (_num_posY - (_baraban_y * 5))) { Num_Right_Middle.transform.Translate(0, -0.1f * _baraban_speed, 0); } else { Num_Right_Middle.transform.localPosition = new Vector3(Num_Right_Middle.transform.localPosition.x, _num_posY - (_baraban_y * 5), Num_Right_Middle.transform.localPosition.z); _bar_right_middle = false; } } } else { if (xx > 0) { if (Num_Right_Middle.transform.localPosition.y > (_num_posY - (_baraban_y * xx))) { Num_Right_Middle.transform.Translate(0, 0.1f * _baraban_speed * (_time_old - _time), 0); } else { Num_Right_Middle.transform.localPosition = new Vector3(Num_Right_Middle.transform.localPosition.x, _num_posY - (_baraban_y * xx), Num_Right_Middle.transform.localPosition.z); _bar_right_middle = false; } } else { if (Num_Right_Middle.transform.localPosition.y < _num_posY) { Num_Right_Middle.transform.Translate(0, 0.45f * _baraban_speed, 0); } else { Num_Right_Middle.transform.localPosition = new Vector3(Num_Right_Middle.transform.localPosition.x, _num_posY, Num_Right_Middle.transform.localPosition.z); _bar_right_middle = false; } } } } if (_time < _time_old) { if (x < 9) { if (Num_Right.transform.localPosition.y < (_num_posY - (_baraban_y * x))) { Num_Right.transform.Translate(0, 0.1f * _baraban_speed * (_time_old - _time), 0); } else { Num_Right.transform.localPosition = new Vector3(Num_Right.transform.localPosition.x, _num_posY - (_baraban_y * x), Num_Right.transform.localPosition.z); _bar_right = false; } } else { if (Num_Right.transform.localPosition.y > (_num_posY - (_baraban_y * 9))) { Num_Right.transform.Translate(0, -0.2f * _baraban_speed, 0); } else { Num_Right.transform.localPosition = new Vector3(Num_Right.transform.localPosition.x, _num_posY - (_baraban_y * 9), Num_Right.transform.localPosition.z); _bar_right = false; } } } else { if (x > 0) { if (Num_Right.transform.localPosition.y > (_num_posY - (_baraban_y * x))) { Num_Right.transform.Translate(0, 0.1f * _baraban_speed * (_time_old - _time), 0); } else { Num_Right.transform.localPosition = new Vector3(Num_Right.transform.localPosition.x, _num_posY - (_baraban_y * x), Num_Right.transform.localPosition.z); _bar_right = false; } } else { if (Num_Right.transform.localPosition.y < _num_posY) { Num_Right.transform.Translate(0, 0.45f * _baraban_speed, 0); } else { Num_Right.transform.localPosition = new Vector3(Num_Right.transform.localPosition.x, _num_posY, Num_Right.transform.localPosition.z); _bar_right = false; } } } } }