示例#1
0
 void MethodToRunUp()                                                                                                                        // Метод подписанный на событие переключения в режим разбегания
 {
     if (!Home)                                                                                                                              // Если призрак не находиться дома
     {
         GhostMode = GhostM.RunUp;                                                                                                           // Переключаем его в режим "Разбегания"
     }
 }
示例#2
0
 void MethodToPursuit()                                                                                                              // Метод подписанный на событие переключения в режим преследования
 {
     if (!Home)                                                                                                                      // Если призрак не находиться дома
     {
         GhostMode = GhostM.Pursuit;                                                                                                 // Переключаем его в режим "Погони"
     }
 }
示例#3
0
    void LeavingTheHouse()                                                                                      // Этот метод отвечает за то чтобы каждое приведение смогло покинуть свой дом для вступления в игру
    {
        if (transform.position != GhostStartPosition)                                                           // Если призрак ещё не на своей стартовой позиции
        {
            TheLastPosition = transform.position;                                                               // Записываем его реальную позицию как старую

            if (DestinationPoint != new Vector3(15, 0, 18))                                                     // И если призрак не стоит на прямой линии выхода из дома
            {
                DestinationPoint = new Vector3(15, 0, 18);                                                      // То ставим ему это местоположение как отправную точку
            }
            else                                                                                                // Иначе если он уже стоит на этой точке
            {
                DestinationPoint = GhostStartPosition;                                                          // Устанавливаем ему точку назначения для выхода из дома
            }
        }
        else                                                                            // Иначе если призрак оказалься на своей стартовой позиции
        {
            Home = false;                                                               // Указываем что он вышел из дома
            // И выбираем какой режим ему нужно сейчас использовать преследование, страх или разбегание
            if (GM.ActiveModeOfGhosts == GameManager.ActModOfG.Pursuit)                 // Если пекмен не опасен и общий для всех приведений режим это "Преследование"
            {
                GhostMode = GhostM.Pursuit;                                             // То режим приведения переключаем на "Преследование"
            }
            else if (GM.ActiveModeOfGhosts == GameManager.ActModOfG.Fright)             // Если общий для всех приведений режим это "Страх"
            {
                GhostMode = GhostM.fright;                                              // Включаем призраку режим страха
            }
            else if (GM.ActiveModeOfGhosts == GameManager.ActModOfG.RunUp)              // Если общий для всех приведений режим это "Разбегание"
            {
                GhostMode = GhostM.RunUp;                                               // Включаем призраку режим разбегания
            }
        }
        Turn();                                                                                                                                                                 // Вызываем метод поворота
    }
示例#4
0
 void MethodCherryWasTaken()                                                                                         // Метод вызванный событием "Вишня была взята"
 {
     if (Home == false)                                                                                              // Если данное приведение не находиться дома
     {
         GhostMode = GhostM.fright;                                                                                  // Переключаем режим этого приведения в режим испуга
     }
     gameObject.transform.GetChild(0).gameObject.GetComponent <MeshRenderer>().material = GM.GhostsMats[1];          // Делаем глаза этого призрака цветом указывающим что его можно съесть
     gameObject.transform.GetChild(1).gameObject.GetComponent <MeshRenderer>().material = GM.GhostsMats[1];          // Делаем этого призрака цветом указывающим что его можно съесть
 }
示例#5
0
 void Start()
 {
     StartPosition    = transform.position;
     DestinationPoint = transform.position;                                                          // Задаём начальные данные переменной "DestinationPoint"
     PacMan           = GameObject.FindGameObjectWithTag("PacMan");                                  // Ищем на сцене пекмена и ложим его в GameObject пекмен
     GhostRB          = gameObject.GetComponent <Rigidbody>();                                       // Ищем на призраке компонент RidgitBody и ложим его в переменую GhostRB
     GhostMode        = GhostM.Expectation;                                                          // Выставляем режим по умолчанию на ожидание
     GM = GameObject.FindGameObjectWithTag("GameManager").GetComponent <GameManager>();              // Находим скрипт гейм менеджера и ложим его в "GM"
     DirrectionRays[0] = new Ray(Pos, new Vector3(0, 0, 1));                                         // Заносим в массив направление луча вперёд
     DirrectionRays[1] = new Ray(Pos, new Vector3(1, 0, 0));                                         // Заносим в массив направление луча вправо
     DirrectionRays[2] = new Ray(Pos, new Vector3(0, 0, -1));                                        // Заносим в массив направление луча вниз
     DirrectionRays[3] = new Ray(Pos, new Vector3(-1, 0, 0));                                        // Заносим в массив направление луча влево
 }
示例#6
0
 void MethodAllDotsAreCollected()                                                                            // Этот метод запускает корутину завершения уровня
 {
     GhostMode        = GhostM.Expectation;                                                                  // Включаем режим ожидания
     DestinationPoint = transform.position;                                                                  // Ставим точку назначения призрака на тоже место где он стоит
     if (GhostName != GhostN.Hunter)                                                                         // Если имя этого призрака не охотник
     {
         DelayTimer = Delay;                                                                                 // Ставим задержку до выхода из дома установленную для этого приведения
         Home       = true;                                                                                  // И указываем ему что он находиться дома
     }
     if (GM.GameLevel < 10)                                                                                  // Если это был не последний уровень
     {
         StartCoroutine(IEnumAllDotsAreCollected());                                                         // Вызываем Метод способный отсчитывать время
     }
 }
示例#7
0
 void Expectation()                                                                          // Этот метод отвечает за режим ожидания
 {
     if (GM.DotsEaten >= NomberDotsForActivation)                                            // Если количество дотов которое нужно для активации это приведения больше или равно
     {
         if (Home)                                                                           // Если призрак дома
         {
             GhostMode = GhostM.LeavingTheHouse;                                             // То включаем режим покинуть дом
         }
         else                                                                                // Иначе если призрак уже покинул дом
         {
             if (GM.ActiveModeOfGhosts != GameManager.ActModOfG.Fright)                      // Если пекмен в данный момент не опасен
             {
                 GhostMode = GhostM.Pursuit;                                                 // То переключаем режим приведения на погоню
             }
             else                                                                            // Иначе если он опасен
             {
                 GhostMode = GhostM.fright;                                                  // Включаем режим страха
             }
         }
     }
 }
示例#8
0
    IEnumerator DelayGhostRevitalizing()                                                // Эта корутина занимаеться уничтожением и оживлением приведения
    {
        GetComponent <CapsuleCollider>().enabled = false;                               // Выключаем коллайдер призрака
        transform.GetChild(0).GetComponent <MeshRenderer>().enabled = false;            // Выключаем отображение меша глаз приведения
        transform.GetChild(1).GetComponent <MeshRenderer>().enabled = false;            // Выключаем отображение меша приведения
        GhostMode          = GhostM.Expectation;                                        // Ставим приведение в режим ожидания
        transform.position = StartPosition;                                             // Телепортируем его в дом на его начальную позицию
        DestinationPoint   = StartPosition;                                             // Ставим стартовую позицию как точку назначения
        transform.rotation = Quaternion.Euler(Vector3.zero);                            // Поворачиваем его лицом вперёд
        if (GhostName != GhostN.Hunter)                                                 // Если это не призрак охотник
        {
            Home       = true;                                                          // Указываем что он дома
            DelayTimer = 8;                                                             // То ставим ему задержку для остальных приведений
        }
        else
        {
            DelayTimer = 4;                                                             // Иначе если это охотник ставим задержку для охотника
        }
        yield return(new WaitForSeconds(3f));                                           // Ждём

        GetComponent <CapsuleCollider>().enabled = true;                                // Включаем коллайдер призрака
        transform.GetChild(0).GetComponent <MeshRenderer>().enabled = true;             // Включаем отображение меша глаз приведения
        transform.GetChild(1).GetComponent <MeshRenderer>().enabled = true;             // Выключаем отображение меша приведения
    }
示例#9
0
 void MethodKillPacMan()                                                                                             // Метод вызванный событием "Убить пекмена"
 {
     GhostMode        = GhostMove.GhostM.Expectation;                                                                // Ставим всем приведениям режим ожидания
     DestinationPoint = transform.position;                                                                          // Ставим точку назначения призраку на тоже место где он стоит
     StartCoroutine(IEnumKillPacMan());                                                                              // Вызываем корутину "IEnumKillPacMan"
 }
示例#10
0
 void MethodPacManNotDanger()                                                                                        // Этот метод вызываеться событием "Пекмен больше не опасен"
 {
     GhostMode = GhostM.Expectation;                                                                                 // Ставим приведениям режим ожидания
     gameObject.transform.GetChild(0).gameObject.GetComponent <MeshRenderer>().material = GM.GhostsMats[0];          // Делаем глаза этого призрака цветом указывающим что его можно съесть
     gameObject.transform.GetChild(1).gameObject.GetComponent <MeshRenderer>().material = Original;                  // Делаем этого призрака цветом указывающим что его можно съесть
 }