private void Restart() { _inputSystem.OnRestart -= OnRestart; _inputSystem.Reset(); _scoreCounter.ResetScore(); _playerController.Reset(); _enemyController.Reset(); _uiController.Reset(); Initialize(); Time.timeScale = 1; }
async private void KillEnemy(IEnemyController controllerToKill) { if (controllerToKill.GetEnemyType() == EnemyType.DOGS) { starService.DogsKilled(); } await controllerToKill.PlayAnimation(EnemyStates.DEATH); enemyList.Remove(controllerToKill); controllerToKill.Reset(); signalBus.TryFire(new EnemyDeathSignal() { nodeID = controllerToKill.GetCurrentNodeID() }); }
async public void EnemyDead(EnemyKillSignal _killSignal) { var tempList = enemyList; for (int i = 0; i < tempList.Count; i++) { IEnemyController enemyController = tempList[i]; if (enemyController.GetCurrentNodeID() == _killSignal.nodeID) { if (CheckForKillableEnemy(enemyController, _killSignal.killMode)) { enemyList.Remove(enemyController); await enemyController.PlayAnimation(EnemyStates.DEATH); enemyController.Reset(); } } } bool allDogsKilled = true; foreach (IEnemyController enemyController in enemyList) { if (enemyController.GetEnemyType() == EnemyType.DOGS) { allDogsKilled = false; } } if (allDogsKilled) { starService.AllDogsKilled(); } if (enemyList.Count == 0) { starService.AllDogsKilled(); gameService.ChangeToPlayerState(); } await new WaitForEndOfFrame(); }