Example #1
0
    private void Restart()
    {
        _inputSystem.OnRestart -= OnRestart;

        _inputSystem.Reset();
        _scoreCounter.ResetScore();
        _playerController.Reset();
        _enemyController.Reset();
        _uiController.Reset();

        Initialize();

        Time.timeScale = 1;
    }
Example #2
0
        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()
            });
        }
Example #3
0
        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();
        }