public void TriggerInfection() { if (!gameObject.CompareTag(GetTag(PersonTags.Healthy))) { return; } gameObject.tag = GetTag(PersonTags.Infected); GameProgressManager.UpdateProgress(); gameObject.GetComponent <PersonMovementController>().TriggerChasingMode(); UpdatePersonModel(); var notificationObj = Instantiate(personCashNotificationObject, transform.position, transform.rotation); notificationObj.GetComponent <PersonCashNotification>().SetCashAmount(_personCash); Destroy(notificationObj, 0.5f); CashManager.AddOrRemoveCash(_personCash); // this starts the death timer, after which the person dies due to the infection deathBar.barLifeTime = infectionToDeathDuration; deathBar.Start(); StartCoroutine(TriggerDeathTimer()); }
void Start() { if (instance == null) { instance = this; } }
void Awake() { if (instance == null) { instance = this; } }
void OnDestroy() { Clear(); if (instance == this) { instance = null; } }
private void Reset() { Cannon.Reset(); PersonSpawner.Reset(); GameProgressManager.Reset(); PowerUp.Reset(); _notifiedAllMonstersEffected = false; }
public void IncrementLevel() { currentLevel++; SetLevelToPref(); GameProgressManager.UpdateProgressPerCash(); Person.UpdatePersonCash(); UpdateUi(); }
private void CheckGameEnding() { if (GameState != GameState.Playing) { return; } var numberOfDeadPersons = GameObject.FindGameObjectsWithTag(Person.GetTag(PersonTags.Dead)).Length; var numberOfInfectedPersons = GameObject.FindGameObjectsWithTag(Person.GetTag(PersonTags.Infected)).Length; if (numberOfDeadPersons == PersonSpawner.GetPersonCount()) { GameWon(); return; } if (numberOfDeadPersons + numberOfInfectedPersons == PersonSpawner.GetPersonCount() && !_notifiedAllMonstersEffected) { NotificationManager.Notify(NotificationType.AllMonstersInfected); _notifiedAllMonstersEffected = true; } if (Cannon.CannonBallsRemaining() != 0) { return; } var cannonBallsInAir = GameObject.FindGameObjectsWithTag("CannonBall"); if (cannonBallsInAir.Length != 0) { return; } // counting all the infected and contagious persons var remainingInfectedPersonsCount = GameObject.FindGameObjectsWithTag(Person.GetTag(PersonTags.Infected)).Length; if (remainingInfectedPersonsCount != 0) { return; } if (GameProgressManager.GetCurrentProgressState() == GameProgressState.Complete) { GameWon(); } else { GameOver(); } }
void Awake() { if (_gameProgressManager == null) { _gameProgressManager = this; DontDestroyOnLoad(this); } else if (_gameProgressManager != this) { DestroyImmediate(gameObject); } }
void Awake() { instance = this; }
public void Start() { _notifiedProgressMax = false; _gameProgressManager = this; GetProgressPerCashFromPref(); }