Ejemplo n.º 1
0
 private bool CheckForEnemyPresence(IEnemyController enemyController, int nodeID)
 {
     if (nodeID == -1)
     {
         return(false);
     }
     if (enemyList.Count == 0)
     {
         return(false);
     }
     return(enemyController.GetCurrentNodeID() == nodeID);
 }
Ejemplo n.º 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()
            });
        }
Ejemplo n.º 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();
        }