void MethodDecelerationWasTaken() // Метод вызванный событием "Замедление было взято" { if (PacManDanger) { PursuitRunUpTimer = PursuitTime; // Ставим значение переменной RunUpTimer на 15 секунд ToPursuit(); // Вызываем событие переключения призрака в режим "Преследования" ActiveModeOfGhosts = ActModOfG.Pursuit; // Указываем общий для всех режим как "Погоня" PacManDanger = false; // Указываем переменной "CallPacManTimer" что пока что больше не надо отсчитывать время } GhostSlowFreezeTimer = SlowTime; // Выставлем таймер сколько секунд приведения будут замедленны CallSlowGhostTimer = true; // Указываем что нужно начинать отсчитывать время режима замедления приведений }
void GhostFreezingTimer() // Таймер времени которое будут находиться призраки в режиме заморозки { if (CallFreezingGhostTimer == true) // Если переменная "CallFreezingTimer" равна правда { if (GhostSlowFreezeTimer > 0) // Если время в переменной GhostSlowFreezeTime больше ноля { GhostSlowFreezeTimer -= (1 * Time.deltaTime); // Отнимаем по еденице каждую секунду } else if (GhostSlowFreezeTimer <= 0) // Иначе если время в переменной GhostSlowFreezeTime меньше или равно нулю { GhostReturnNormalSpeed(); // Вызываем событие GhostReturnNormalSpeed говорящее что призракам будет возвращенна нормальная скорость PursuitRunUpTimer = PursuitTime; // И ставим значение переменной RunUpTimer на PursuitTime ToPursuit(); // Вызываем событие переключения призрака в режим "Преследования" ActiveModeOfGhosts = ActModOfG.Pursuit; // Указываем общий для всех режим как "Погоня" CallFreezingGhostTimer = false; // Выключаем переменную "CallFreezingGhostTimer" } } }
void PacManDangerTimer() // Метод отсчитывающий время опасности пекмена { if (PacManDanger == true) // Если переменная "CallPacManTimer" равна правда { if (_PacManDangerTimer > 0) // Если время в переменной PacManDangerTime больше ноля { _PacManDangerTimer -= (1 * Time.deltaTime); // Отнимаем по еденице каждую секунду } else if (_PacManDangerTimer <= 0) // Иначе если время в переменной PacManDangerTime меньше или равно нулю { PacManNotDanger(); // Вызываем событие PacManNotDanger говорящее что пекмен больше не опасен PursuitRunUpTimer = PursuitTime; // И ставим значение переменной RunUpTimer на 15 секунд ToPursuit(); // Вызываем событие переключения призрака в режим "Преследования" ActiveModeOfGhosts = ActModOfG.Pursuit; // Указываем общий для всех режим как "Погоня" PacManDanger = false; // Указываем переменной "CallPacManTimer" что пока что больше не надо отсчитывать время и вызывать событие PacManNotDanger } } }
IEnumerator IEnumAllDotsAreCollected() // Этот метод-корутина продолжение метода "MethodAllDotsAreCollected" { if (GameLevel < 10) // Если это был не последний уровень { PlayGame = false; // Ставим на паузу режим игры float Variable = 0; // Переменная отвечающая за изменение цвета GameLevel++; // Ставим следующий уровень DotsLeft = 380; // Ставим стандартное для начала количество точек которые необходимо собрать DotsEaten = 0; // Ставим нулевое значение съеденных дотов в этом новом уровне LaunchingAllDotsAreCollected = false; // Ставим переменную "LaunchingAllDotsAreCollected" равной ложь чтобы на следующем уровне опять можно было закончить уровень GhostSlowFreezeTimer = 0; // Ставим счётчик отсчитывающий оставшееся время замедления или заморозки на 0 чтобы приведение не имело штрафов на скорость при старте нового уровня PacManNotDanger(); // Вызываем событие PacManNotDanger говорящее что пекмен больше не опасен yield return(new WaitForSeconds(2)); // Ждём NewLevelEvents(); // Вызываем метод определяющий какие события должны произойти при старте этого конкретного уровня PacDots.name = "PacDots"; // Называем эту группу как "PacDots" for (byte a = 0; RealMat.color != Mat[GameLevel].color; a++) // Проходим нужное количество циклов пока цвет не достигнет желаемого { RealMat.color = Color.Lerp(Mat[GameLevel - 1].color, Mat[GameLevel].color, Variable); // Изменяем цвет лабиринта на определённый шаг от предыдущего цвета к целевому yield return(new WaitForSeconds(0.07f)); // Ждём Variable += 0.06f; // Прибавляем к variable значение } yield return(new WaitForSeconds(3)); // Ждём PursuitRunUpTimer = PursuitTime; // И ставим значение переменной PursuitRunUpTimer на PursuitTime чтобы счётчик погони был полным ToPursuit(); // Вызываем событие переключения призрака в режим "Преследования" чтобы все приведения что не находяться дома выбрали режим погони ActiveModeOfGhosts = ActModOfG.Pursuit; // Указываем общий для всех режим как "Погоня" чтобы запустить общий для всех приведений счётчик погони PlayGame = true; // Снимаем с паузы режим игры StartLevel(); // Вызываем событие старта уровня } else // Иначе если это был последний уровень { GameLevel++; // Ставим следующий уровень (Для того чтобы прошла уцспешно проверка на конец игры и пекмен ну убралься на место в скрипте Pacmanmmove раньше чем погаснет экран) PlayGame = false; // Ставим на паузу режим игры EndGame(); // Вызываем событие конца игры } }
void MethodRunUpTimer() // Этот таймер отсчитывает время действия режима разбегания { if (ActiveModeOfGhosts == ActModOfG.Pursuit && PursuitRunUpTimer > 0) // Если общий для всех режим это режим преследования и время переменной RunUpTimer больше ноля { PursuitRunUpTimer -= (1 * Time.deltaTime); // То отнимаем по еденице в секунду if (PursuitRunUpTimer <= 0) // Если в результате уменьшения RunUpTimer стала равна нулю или меньше { PursuitRunUpTimer = RunUpTime; // И ставим значение переменной RunUpTimer на 5 секунд ToRunUp(); // То вызываем событие переключения призрака в режим "Разбегания" ActiveModeOfGhosts = ActModOfG.RunUp; // Указываем общий для всех режим как "Разбегание" } } else if (ActiveModeOfGhosts == ActModOfG.RunUp && PursuitRunUpTimer > 0) // Иначе если общий для всех режим это режим разбегания и время переменной RunUpTimer больше ноля { PursuitRunUpTimer -= (1 * Time.deltaTime); // То отнимаем по еденице в секунду if (PursuitRunUpTimer <= 0) // Если в результате уменьшения RunUpTimer стала равна нулю или меньше { PursuitRunUpTimer = PursuitTime; // И ставим значение переменной RunUpTimer на 15 секунд ToPursuit(); // То вызываем событие переключения призрака в режим "Преследования" ActiveModeOfGhosts = ActModOfG.Pursuit; // Указываем общий для всех режим как "Погоня" } } }
void MethodPacManNotDanger() // Этот метод вызываеться событием "Пекмен больше не опасен" { ActiveModeOfGhosts = ActModOfG.Pursuit; // Указываем что призрак снова может переходить в режим преследования PacManDanger = false; // Указываем что больше не нужно отсчитывать время опасности пекмена }
void MethodCherryWasTaken() // Метод вызванный событием "Вишня была взята" { _PacManDangerTimer = CherryTime; // Выставляем таймер сколько пекмен будет опасен ActiveModeOfGhosts = ActModOfG.Fright; // Указываем что пекмен опасен PacManDanger = true; // Указываем что нужно начинать отсчитывать время опасности пекмена }