public void OnPenguinDeselected(EventPenguin pEvent) { activePenguin = null; OnActivePenguinChangedEvent.Penguin = activePenguin; OnActivePenguinChangedEvent.Raise(); }
// 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); }
public void OnPenguinStop(EventPenguin pEvent) { if (pEvent.Penguin.state != PenguinController.EPenguinState.SavePoint) { activePenguin = null; SetNextPenguin(); } }
public void OnPenguinSelected(EventPenguin pEvent) { activePenguin = pEvent.Penguin; FireStart(); OnActivePenguinChangedEvent.Penguin = activePenguin; OnActivePenguinChangedEvent.Raise(); }
private void ActivatePenguin(PenguinController pPenguin) { pPenguin.transform.position = startPoint.position; pPenguin.SetPhysics(true); pPenguin.SetPenguinInPlaying(true); penguinsFront.Remove(activePenguin); OnNewPenguinOnStart.Penguin = pPenguin; OnNewPenguinOnStart.Raise(); }
// 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); }
public void SetNextPenguin() { if (penguinsFront.Count > 0) { PenguinController nextPenguin = penguinsFront[0]; penguinsFront.Remove(nextPenguin); SetPenguin(nextPenguin); } else { OnAllPenguinsFired.Raise(); } }
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(); }
// 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; }
/// <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); }