예제 #1
0
        public void OnPenguinDeselected(EventPenguin pEvent)
        {
            activePenguin = null;

            OnActivePenguinChangedEvent.Penguin = activePenguin;
            OnActivePenguinChangedEvent.Raise();
        }
예제 #2
0
 // deaktivuje penguina a postaví jen na konkrétní místo
 private void DeactivatePenguin(PenguinController pPenguin, Vector3 pPosition)
 {
     pPenguin.SetPhysics(false);
     pPenguin.SetPenguinInPlaying(false);
     pPenguin.transform.position = pPosition;
     penguinsFront.Add(pPenguin);
 }
예제 #3
0
 public void OnPenguinStop(EventPenguin pEvent)
 {
     if (pEvent.Penguin.state != PenguinController.EPenguinState.SavePoint)
     {
         activePenguin = null;
         SetNextPenguin();
     }
 }
예제 #4
0
        public void OnPenguinSelected(EventPenguin pEvent)
        {
            activePenguin = pEvent.Penguin;
            FireStart();

            OnActivePenguinChangedEvent.Penguin = activePenguin;
            OnActivePenguinChangedEvent.Raise();
        }
예제 #5
0
 private void ActivatePenguin(PenguinController pPenguin)
 {
     pPenguin.transform.position = startPoint.position;
     pPenguin.SetPhysics(true);
     pPenguin.SetPenguinInPlaying(true);
     penguinsFront.Remove(activePenguin);
     OnNewPenguinOnStart.Penguin = pPenguin;
     OnNewPenguinOnStart.Raise();
 }
예제 #6
0
        // deaktivuje penguina a postaví jej na nějaké místo u startu (spawn areas)
        private void DeactivatePenguin(PenguinController pPenguin)
        {
            // vypočítám pozici kam penguina postavit
            Vector3 position;
            Area    area   = spawnAreas[Random.Range(0, spawnAreas.Count)];
            Vector3 random = Random.insideUnitCircle * area.Radius;

            position = area.transform.position + random;

            // deaktivuji daného penguina a stavím ho na požadovanou pozici
            DeactivatePenguin(pPenguin, position);
        }
예제 #7
0
 public void SetNextPenguin()
 {
     if (penguinsFront.Count > 0)
     {
         PenguinController nextPenguin = penguinsFront[0];
         penguinsFront.Remove(nextPenguin);
         SetPenguin(nextPenguin);
     }
     else
     {
         OnAllPenguinsFired.Raise();
     }
 }
예제 #8
0
 private void SpawnPenguins(List <PenguinData> pPenguins)
 {
     foreach (PenguinData data in pPenguins)
     {
         // instancuji penguina dle požadovaných dat
         PenguinController newPenguin = Instantiate(penguinPrefab);
         newPenguin.Init(data);
         penguinsInLevel.Add(newPenguin);
         // deaktivuji penguina a postavím ho do fronty před startem
         DeactivatePenguin(newPenguin);
     }
     // aktivuji prvního penguina
     SetNextPenguin();
 }
예제 #9
0
        // provede prijetí penguina na savepoint
        public void OnPenguinInSavePoint(PenguinController pPenguin)
        {
            if (pPenguin == currentPenguin)
            {
                return;
            }

            pPenguin.MovingStoped(isFinish
                                ? PenguinController.EPenguinState.Survived
                                : PenguinController.EPenguinState.SavePoint);

            pPenguin.SetPhysics(false);
            MovePenguinOnSaveArea(pPenguin.gameObject.transform);
            currentPenguin = pPenguin;
        }
예제 #10
0
        /// <summary>
        /// Nastaví daného penguina jako aktivního - postaví jej na start pro vysřelení
        /// </summary>
        /// <param name="pPenguin"></param>
        public void SetPenguin(PenguinController pPenguin)
        {
            // pokud nedostávám korektní parametr, nic nedělám
            if (pPenguin == null)
            {
                Debug.LogError("FireController.SetActivePenguin() - nedostávám korektně penguina k aktivaci. Nic nenastavuji.");
                return;
            }

            // pokud je už nastaven nějaký aktivní penguin, musím jej deaktivovat - odložit do frony před start
            if (activePenguin != null)
            {
                DeactivatePenguin(activePenguin, pPenguin.transform.position);
            }

            // aktivovat penguina
            ActivatePenguin(pPenguin);
        }