Пример #1
0
        public override State Run(VirusManager virusMan, EnemySpawner enSpawn, Transform player)
        {
            // If player have gatherd more then 10 data since this state started
            // Return the HighRisk State

            int numberOfEnemiesAlive = enSpawn.GetNubmerOfEnemies();

            if (numberOfEnemiesAlive < 3)
            {
                //Select a enemy
                int enemyIndexToSpawn = 0;
                //Get a spawnOption
                List <int> spawnOptions        = enSpawn.GetListOfValideSpawnLocations(player, 10, true);
                int        selectedSpawnOption = spawnOptions[Random.Range(0, spawnOptions.Count)];
                enSpawn.SpawnEnemy(enemyIndexToSpawn, selectedSpawnOption);
            }

            int numberOfActiveViruses = virusMan.GetNumberOfActiveViruses();

            if (numberOfActiveViruses < 4)
            {
                virusMan.ActivateANode();
            }

            if (dataGatherdThisState > dataToGather && minTimer < 0 && (Statistics.INSTANCE.BoughtUpgrades > 0 || maxTimer < 0))
            {
                Debug.Log("gameAIOverlord change state to HighRisk");
                return(new HighRisk());
            }
            minTimer -= Time.deltaTime;
            maxTimer -= Time.deltaTime;
            return(this);
        }
Пример #2
0
        public override State Run(VirusManager virusMan, EnemySpawner enSpawn, Transform player)
        {
            //If Player have killed over 50 enemies we can go to lowRisk

            int numberOfEnemiesAlive = enSpawn.GetNubmerOfEnemies();

            if (numberOfEnemiesAlive < alwaysThisAmount && numberOfEnemiesAlive < MaxNumberOfEnemiesSpawn)
            {
                //Select a enemy
                int enemyIndexToSpawn = 0;
                //Get a spawnOption
                List <int> spawnOptions        = enSpawn.GetListOfValideSpawnLocations(player, 10, true);
                int        selectedSpawnOption = spawnOptions[Random.Range(0, spawnOptions.Count)];
                enSpawn.SpawnEnemy(enemyIndexToSpawn, selectedSpawnOption);
                numberOfEnemiesSpawned++;
            }
            else if (timeSpawner <= 0 && numberOfEnemiesSpawned < MaxNumberOfEnemiesSpawn)
            {
                int enemyIndexToSpawn = 0;
                //Get a spawnOption
                List <int> spawnOptions        = enSpawn.GetListOfValideSpawnLocations(player, 10, true);
                int        selectedSpawnOption = spawnOptions[Random.Range(0, spawnOptions.Count)];
                enSpawn.SpawnEnemy(enemyIndexToSpawn, selectedSpawnOption);
                numberOfEnemiesSpawned++;
                timeSpawner = timeBetweenSpawns;
            }
            else
            {
                timeSpawner -= Time.deltaTime;
            }

            int numberOfActiveViruses = virusMan.GetNumberOfActiveViruses();

            if (numberOfActiveViruses < 3)
            {
                virusMan.ActivateANode();
            }

            if (numberOfKillsThisState > 50)
            {
                Debug.Log("gameAIOverlord change state to LowRisk");
                return(new LowRisk());
            }
            return(this);
        }
Пример #3
0
        public override State Run(VirusManager virusMan, EnemySpawner enSpawn, Transform player)
        {
            if (Input.GetKey(KeyCode.Tab))
            {
                state = TutorialStates.Done;
            }
            int numberOfEnemiesAlive = enSpawn.GetNubmerOfEnemies();

            switch (state)
            {
            case TutorialStates.Movement:
                text.text = "Movement: \nW: Forward \nA: Left \nS: Backwards \nD: Right";
                if (player.position != lastPos)
                {
                    lastPos = player.position;
                    timer  -= Time.deltaTime;
                }
                if (timer <= 0)
                {
                    state = TutorialStates.Shooting;
                }

                break;

            case TutorialStates.Shooting:
                text.text = "Shooting: \nMouse = Aim \nLeft Click = Shoot \n\nKilling Enemey gives you Data \nKill 2 Enemies";

                if (numberOfEnemiesAlive < 3)
                {
                    //Select a enemy
                    int enemyIndexToSpawn = 0;
                    //Get a spawnOption
                    List <int> spawnOptions        = enSpawn.GetListOfValideSpawnLocations(player, 10, true);
                    int        selectedSpawnOption = spawnOptions[Random.Range(0, spawnOptions.Count)];
                    enSpawn.SpawnEnemy(enemyIndexToSpawn, selectedSpawnOption);
                }

                if (Statistics.INSTANCE.Kills >= 2)
                {
                    state = TutorialStates.Drone;
                }
                break;

            case TutorialStates.Drone:
                text.text = "Command Drone: \n1 = Follow me \n2 = Harvest Mode \n\nIn Harvest mode it will harvest Data from nodes.\nCollect 50 Data";

                if (virusMan.GetNumberOfActiveViruses() < 5)
                {
                    virusMan.ActivateANode();
                }
                if (numberOfEnemiesAlive < 2)
                {
                    //Select a enemy
                    int enemyIndexToSpawn = 0;
                    //Get a spawnOption
                    List <int> spawnOptions        = enSpawn.GetListOfValideSpawnLocations(player, 10, true);
                    int        selectedSpawnOption = spawnOptions[Random.Range(0, spawnOptions.Count)];
                    enSpawn.SpawnEnemy(enemyIndexToSpawn, selectedSpawnOption);
                }

                if (Statistics.INSTANCE.TotalOfDataGatherd >= 50)
                {
                    state = TutorialStates.Upgrade;
                }
                break;

            case TutorialStates.Upgrade:
                text.text = "Upgrades: \nT = Open Upgrade Page \n\n Buy 1 Upgrade";
                if (Statistics.INSTANCE.BoughtUpgrades >= 1)
                {
                    state = TutorialStates.Done;
                    timer = 2;
                }
                break;

            case TutorialStates.Done:
                text.text = "Tutorial Done";
                if (timer <= 0)
                {
                    text.text = string.Empty;
                    return(new LowRisk());
                }
                timer -= Time.deltaTime;
                break;

            default:
                break;
            }
            return(this);
        }