protected override bool TickCore(realm.RealmTime time)
        {
            object obj;
            SpawnState state = null;
            if (!Host.StateStorage.TryGetValue(Key, out obj) ||
                (state = (SpawnState)obj).remainingTick <= 0)
            {
                Entity[] originalChildren = null;
                if (state != null)
                    originalChildren = state.children;
                state = new SpawnState()
                {
                    remainingTick = 10000,
                    children = new Entity[5]
                };

                double angleInc = (2 * Math.PI) / 5;
                for (int i = 0; i < 5; i++)
                {
                    Entity entity = Entity.Resolve(0x0951);
                    entity.Move(
                        Host.Self.X + (float)Math.Cos(angleInc * i) * 4,
                        Host.Self.Y + (float)Math.Sin(angleInc * i) * 4);
                    state.children[i] = entity;
                    Host.Self.Owner.BroadcastPacket(new ShowEffectPacket()
                    {
                        EffectType = EffectType.Throw,
                        Color = new ARGB(0xffffbf00),
                        TargetId = Host.Self.Id,
                        PosA = new Position()
                        {
                            X = entity.X,
                            Y = entity.Y
                        }
                    }, null);
                }
                Host.StateStorage[Key] = state;
                Host.Self.Owner.Timers.Add(new WorldTimer(1500, (world, t) =>
                {
                    if (originalChildren != null)
                        foreach (var i in originalChildren)
                        {
                            if (i.Owner != null)
                                i.Owner.LeaveWorld(i);
                        }
                    foreach (var i in state.children)
                        world.EnterWorld(i);
                }));
                return false;
            }
            else
            {
                state.remainingTick -= time.thisTickTimes;
                if (state.remainingTick <= 0 ||
                    (state.remainingTick < 8000 && state.children.Sum(_ => _.Owner == null ? 0 : 1) < 3))
                    state.remainingTick = 0;
            }
            return false;
        }
 private IEnumerator SpawnWave(Wave _wave)
 {
     state = SpawnState.Spawning;
     for (int i = 0; i < _wave.count; i++)
     {
         SpawnEnemy(_wave.enemy);
         yield return new WaitForSeconds(1f / _wave.rate);
     }
     state = SpawnState.Waiting;
     yield break;
 }
 IEnumerator SpawnWave(Wave _wave)
 {
     Debug.Log("Spawning Wave: " + _wave.name);
     state = SpawnState.SPAWNING;
     if (NormalSpawnCount.GetComponent<WaveSpawner> ().totalwaves % 5 == 0) {
         SpawnEnemy (_wave.enemy);
         yield return new WaitForSeconds( 1f/_wave.rate);
     }
     state = SpawnState.WAITING;
     yield break;
 }
    IEnumerator SpawnWave(Wave w)
    {
        Debug.Log("Spawning Wave: " + w.name);
        spawnState = SpawnState.SPAWNING;

        for (int i = 0; i < w.amount; i++) {
            SpawnEnemy(w.enemyPrefab);
            yield return new WaitForSeconds (1f / w.spawnRate);
        }

        spawnState = SpawnState.WAITING;
        yield break;
    }
    IEnumerator SpawnWave(Wave _wave)
    {
        Debug.Log("Spawning Wave: " + _wave.Name);
        state = SpawnState.Spawning;

        for (int i = 0; i < _wave.enemyCount; i++)
        {
            SpawnEnemy(_wave.enemys[Random.Range(0,_wave.enemys.Length)]);
            yield return new WaitForSeconds(1.0f / _wave.spawnRate);
        }

        state = SpawnState.Waiting;
        yield break;
    }
Exemple #6
0
    IEnumerator SpawnWave(Wave wave)
    {
        print("Spawing Wave: " + wave.name);
        state = SpawnState.SPAWNING;

        //Spawn
        for (int i = 0; i < wave.count; i++)
        {
            //Spawn an enemy, wait and then spawn another
            SpawnEnemy(wave.enemy);
            yield return(new WaitForSeconds(1f / wave.rate));
        }

        state = SpawnState.WAITING;
    }
Exemple #7
0
    private void WaveCompleted()
    {
        state         = SpawnState.counting;
        waveCountDown = timeBetweenWaves;

        if (nextWave >= waves.Length)
        {
            nextWave = 0;
            print("Completed all waves. Loop");
        }
        else
        {
            nextWave++;
        }
    }
    void waveCompletion()
    {
        state = SpawnState.COUNTING;
        waveCountdownTimer = timeBetweenWaves;

        if (nextWave + 1 > waves.Length - 1)
        {
            nextWave = 0;
            Debug.Log("All Waves Complete! looping");
        }
        else
        {
            nextWave++;
        }
    }
    // Use this for initialization
    void Start()
    {
        ssm.Add(SpawnState.QUADRANT_TOPLEFT, StateQuadTopLeft);
        ssm.Add(SpawnState.QUADRANT_TOPRIGHT, StateQuadTopRight);
        ssm.Add(SpawnState.QUADRANT_BOTTOMLEFT, StateQuadBottomLeft);
        ssm.Add(SpawnState.QUADRANT_BOTTOMRIGHT, StateQuadBottomRight);
        ssm.Add(SpawnState.PUSH_TO_TOP, StatePushToTop);
        ssm.Add(SpawnState.PUSH_TO_RIGHT, StatePushToRight);
        ssm.Add(SpawnState.PUSH_TO_BOTTOM, StatePushToBottom);
        ssm.Add(SpawnState.PUSH_TO_LEFT, StatePushToLeft);
        ssm.Add(SpawnState.WALL, StateWall);
        ssm.Add(SpawnState.EMPTY, StateEmpty);

        curState = SpawnState.EMPTY;
    }
Exemple #10
0
    IEnumerator SpawnWave(Wave wave)
    {
        //Debug.Log("Spawning wave: " + wave.name);
        state = SpawnState.Spawning;

        for (int i = 0; i < wave.count; i++)
        {
            SpawnEnemy(wave.enemy);
            yield return(new WaitForSeconds(1f / wave.rate));
        }

        state = SpawnState.Waiting;

        yield break;
    }
Exemple #11
0
    IEnumerator SpawnWave(Wave _wave)
    {
        Debug.Log("Spawning Wave: " + _wave.waveName);
        state = SpawnState.Spawning;                                //sets state to spawning.

        for (int i = 0; i < _wave.amount; i++)                      //Loops through amount of enemies to spawn.
        {
            SpawnEnemy(_wave.enemyAI);                              //For each enemy to spawn, call spawnEnemy method.
            yield return(new WaitForSeconds(1f / _wave.spawnRate)); //We continue spawn loop until max enemies have been spawned for specific wave.
        }

        state = SpawnState.Waiting;

        yield break;
    }
    IEnumerator SpawnWave(Wave _wave)  // allows a break between enemy spawning (This is a Coroutine)
    {
        state = SpawnState.Spawning;
        //Spawn
        for (int i = 0; i < _wave.count; i++)
        {
            SpawnEnemy(_wave.enemyPrefab);
            yield return(new WaitForSeconds(1f / _wave.SpawnRate));
        }

        state = SpawnState.Waiting;


        yield break;
    }
    void WaveCompleted()
    {
        state         = SpawnState.Counting;
        waveCountdown = timeBetweenWaves;

        //Game state complete...edit to make harder ect
        if (nextWave + 1 > waves.Length - 1)
        {
            nextWave = 0;
        }
        else
        {
            nextWave++;
        }
    }
Exemple #14
0
    IEnumerator SpawnWave(Wave _wave)
    {
        Debug.Log("Spawn wave" + _wave.name);
        state = SpawnState.SPAWNING;

        for (int i = 0; i < _wave.count; i++)
        {
            SpawnEnemy(_wave.enemy);
            yield return(new WaitForSeconds(1f / _wave.spawnRate));
        }

        state = SpawnState.WAITING;

        yield break;
    }
    IEnumerator SpawnWave(Wave wave)
    {
        state = SpawnState.Spawning;

        for (int i = 0; i < wave.enemy.Count; i++)
        {
            for (int j = 0; j < wave.enemyAmmount[i]; j++)
            {
                SpawnEnemy(wave.enemy[i], spawnPoints[Random.Range(0, spawnPoints.Length)]);
                yield return(new WaitForSeconds(1 / wave.enemiesPerSecond));
            }
        }

        state = SpawnState.ActiveWave;
    }
Exemple #16
0
    void WaveCompleted()
    {
        Debug.Log("Wave completed.");

        state         = SpawnState.Counting;
        waveCountdown = timeBetweenWaves;

        if (nextWave + 1 > waves.Length - 1)         //Checks to see if waves are completed so error isn't thrown once max waves are reached.
        {
            nextWave = 0;
            Debug.Log("Completed all waves. Looping..");
        }

        nextWave++;
    }
Exemple #17
0
    public IEnumerator SpawnWave(Wave _wave)
    {
        state = SpawnState.SPAWNING;
        Debug.Log("Wave Starting" + _wave.name);

        for (int i = 0; i < _wave.count; i++)
        {
            SpawnEnemy(_wave.enemy);
            yield return(new WaitForSeconds(1f / _wave.rate));
        }

        state = SpawnState.WAITING;

        yield break;
    }
Exemple #18
0
    IEnumerator SpawnWave(WaveProperties wave)
    {
        Debug.Log("Spawning Wave: " + wave.name);
        state = SpawnState.SPAWNING;

        for (int i = 0; i < wave.Amount; i++)
        {
            SpawnEnemy(wave.Enemy);
            yield return(new WaitForSeconds(1.0f / wave.Rate));
        }

        state = SpawnState.WAITING;

        yield break;
    }
    IEnumerator SpawnWave(Wave waveToSpawn)
    {
        Debug.Log("Spawning wave: " + waveToSpawn.name);
        state = SpawnState.SPAWNING;

        // Spawn
        for (int i = 0; i < waveToSpawn.count; i++)
        {
            SpawnEnemy(waveToSpawn.enemy);
            yield return(new WaitForSeconds(1f / waveToSpawn.rate));
        }

        state = SpawnState.WAITING;
        yield break;
    }
Exemple #20
0
        private void WaveCompleted()
        {
            // Stop tanks from moving.
            // DisableTankControl();
            state         = SpawnState.COUNTING;
            waveCountdown = timeBetweenWaves;
            nextWave++;
            totalwavescompleted++;

            gameplay.text = "Wave" + totalwavescompleted + " Completed!";
            if (nextWave == waves.Count())
            {
                nextWave = 0;
            }
        }
    // Used to spawn the Abductors
    IEnumerator SpawnWave()
    {
        state = SpawnState.SPAWNING;                                                                                   // Spawnstate is Spawning A Enemy Wave Will Spawn
        for (int i = 0; i < int_Enemies; i++)                                                                          // Let Computer Calculate how many Enemies it will spawn
        {
            GameObject GO_Spawn = Instantiate(s_GM.GO_spawning_effect, RandomScreenPosition, Quaternion.identity);     // Start by Spawning a Spawn effect so player knows where to NPC is going to spawn
            Destroy(GO_Spawn, 3);                                                                                      // Destroy this effect after 3 seconds
            yield return(new WaitForSeconds(1 / fl_spawnDelay));                                                       // Wait For Seconds and Divid 1 by spawnDelay

            Instantiate(s_GM.GO_abducter_Prefab, GO_Spawn.transform.position, Quaternion.identity); int_enemy_Count++; // Allow NPC Abductor to spawn on the spawn Effect postion before its recyled
            yield return(new WaitForSeconds(fl_waveWait));
        }
        state = SpawnState.WAITING;         // Spawnstate is now Waiting for countdown or Spawning to start
        yield break;
    }
Exemple #22
0
    IEnumerator SpawnWave(Wave _wave)
    {
        state       = SpawnState.SPAWNING;
        theWaveName = "Wave " + nextWave;
        // spawn
        for (int i = 0; i < _wave.enemyAmount; i++)
        {
            SpawnEnemy(_wave.enemy);
            yield return(new WaitForSeconds(1 / _wave.spawnRate));
        }

        state = SpawnState.WAITING;

        yield break;
    }
Exemple #23
0
    void Start()
    {
        //Add to spawn state
        SpawnState.addSpawner(this);

        takingDamage = false;

        timeDamage = 3f;
        groupSpawn = 5;

        healthBar.minValue = 0;
        healthBar.maxValue = 100;

        shieldUp = true;
    }
    IEnumerator spawnWave(Wave _wave)
    {
        state = SpawnState.SPAWNING;               //enemies spawning

        for (int i = 0; i < _wave.enemyCount; i++) //spawn enemies required per wave
        {
            SpawnEnemy(_wave.enemy);
            yield return(new WaitForSeconds(1f / _wave.rate));
        }


        state = SpawnState.WAITING;//wave in progress

        yield break;
    }
    IEnumerator SpawnWave(Wave _wave)
    {
        //Debug.Log("Spawning Wave: " + _wave.name);
        state = SpawnState.SPAWNING;

        for (int i = 0; i < _wave.count; i++)
        {
            SpawnEnemy(_wave.enemy[Random.Range(0, _wave.enemy.Length)]);
            yield return(new WaitForSeconds(1f / _wave.rate));
        }

        state = SpawnState.WAITING;

        yield break;
    }
 void OnWaveCompleted()
 {
     estado         = SpawnState.CONTANDO;
     contadorDaWave = tempoEntreWaves;
     tempo.FreezeFrame();
     WaveCount.Instance.waveClear.gameObject.SetActive(true);
     if (proximaWave + 1 > waves.Length - 1)
     {
         proximaWave = 0;
     }
     else
     {
         proximaWave++;
     }
 }
    IEnumerator SpawnWave(Wave _wave)
    {
        // Spawn the next wave
        state = SpawnState.SPAWING;

        for (int i = 0; i < _wave.count; i++)
        {
            SpawnEnemy(_wave.enemy);
            yield return(new WaitForSeconds(1f / _wave.rate));
        }

        state = SpawnState.WAITING;

        yield break;
    }
    /*
     * Is called when a wave is completed
     */
    void WaveCompleted()
    {
        Debug.Log("Wave Completed");
        state         = SpawnState.COUNTING;
        waveCountDown = timeBetweenWaves;

        if (currentWave + 1 > waves.Length - 1)
        {
            SceneManager.LoadScene("Win");
        }
        else
        {
            currentWave++;
        }
    }
    void waveCompleted()
    {
        state = SpawnState.Counting;

        waveCountDown = timeBetweenWaves;

        if (nextWave + 1 > _waves.Length - 1)
        {
            nextWave = 0;
        }
        else
        {
            nextWave++;
        }
    }
    void WaveCompleted()
    {
        state         = SpawnState.COUNTING;
        waveCountdown = timeBetweenWaves;

        if (nextWave + 1 > waves.Length - 1)
        {
            //End the game
            UnityEngine.SceneManagement.SceneManager.LoadScene(4);
        }
        else
        {
            nextWave++;
        }
    }
    void WaveCompleted()
    {
        state         = SpawnState.COUNTING;
        waveCountdown = timeBetweenWaves;

        if (nextWave + 1 > waves.Length - 1)
        {
            nextWave = 0;
            Debug.Log("All waves complete, now looping");
        }
        else
        {
            nextWave++;
        }
    }
    IEnumerator CanSpawn(Wave wave)
    {
        estado = SpawnState.SPAWNANDO;

        //O Spawn
        for (int i = 0; i < wave.quantidade; i++)
        {
            SpawnEnemy();
            yield return(new WaitForSeconds(1f / wave.ritmo));
        }
        //Fim do Spawn
        estado = SpawnState.ESPERANDO;

        yield break;
    }
 void WaveDone()
 {
     Debug.Log("Wave Completed");
     _state        = SpawnState.counting;
     waveCountdown = timeBetweenWaves;
     if (_nextWave + 1 > waves.Length - 1)
     {
         _nextWave = 0;
         Debug.Log("No more Waves. Starts 1st Wave");
     }
     else
     {
         _nextWave++;
     }
 }
Exemple #34
0
    IEnumerator SpawnWave(Wave _wave)
    {
        Debug.Log("Spawning Wave: " + _wave.name);
        state = SpawnState.SPAWNING;

        for (int i = 0; i < _wave.count; i++)
        {
            SpawnEnemy(_wave.enemy);
            yield return new WaitForSeconds( 1f/_wave.rate );
        }

        state = SpawnState.WAITING;

        yield break;
    }
Exemple #35
0
    IEnumerator SpawnWave(Wave _wave)
    {
        state = SpawnState.SPAWNING;

        // Spawn
        for (int i = 0; i < _wave.count; i++)
        {
            SpawnEnemy(_wave.enemy);
            yield return(new WaitForSeconds(rand));
        }

        state = SpawnState.WAITING;

        yield break;
    }
Exemple #36
0
    IEnumerator SpawnWave(Wave _wave)
    {
        Debug.Log("Spawning Wave: " + _wave.name);
        state = SpawnState.Spawning;
        //SPAWN
        for (int i = 0; i < _wave.count; i++)
        {
            SpawnEnemy(_wave.enemy);
            yield return(new WaitForSeconds(1f / _wave.rate));
        }

        state = SpawnState.Waiting;

        yield break;
    }
Exemple #37
0
 // Update is called once per frame
 void Update()
 {
     switch (waveSpawner.State) {
         case SpawnState.COUNTING:
             {
                 updateCountingUI();
                 break;
             }
         case SpawnState.SPAWNING:
             {
                 updateSpawningUI();
                 break;
             }
     }
     previousState = waveSpawner.State;
 }
Exemple #38
0
        /*Constructor*/
        public Spawner(Vector2 center, float width = 15f, float height = 30f,
            float rotation = 0f, float static_friction = 0f,
            float bounciness = 0f, int spawns = 0, int frequency = 20, float rand_angle = 60f,
            bool shouldMove = false, float leftBound = 0.0f, float rightBound = 0.0f)
            : base(center, width, height, rotation, static_friction, bounciness)
        {
            num_spawns = spawns;
            this.spawn_freq = frequency;
            num_spawned = 0;
            num_active = 0;
            this.theta = MathHelper.Clamp(rand_angle, 0f, 90f);
            this.state = SpawnState.Idle;

            this.ticks_to_spawn = this.spawn_freq;

            /*Set up list*/
            this.coins = new LinkedList<Money>();

            this.SetTextureSpriteSheet("Spawner", 3, 1, 0);
            this.UseSpriteSheet = true;
            this.SetTextureSpriteAnimationFrames(0, 0, 0, 0, 40, SpriteSheetAnimationMode.AnimateForward);
            this.UseSpriteSheetAnimation = true;

            if (!shouldMove)
            {
                this.movingSpawner = false;
            }
            else
            {
                // set up moving spawner.  starts at right bound and moves left.
                this.movingSpawner = true;
                this.movingArt = new XNACS1Rectangle();
                this.movingArt.SetTextureSpriteSheet("spawnerHelicopter", 1, 3, 0);
                this.movingArt.UseSpriteSheet = true;
                this.movingArt.SetTextureSpriteAnimationFrames(0, 0, 0, 2, 7, SpriteSheetAnimationMode.AnimateForward);
                this.movingArt.UseSpriteSheetAnimation = true;
                this.movingArt.Width = 120f;
                this.movingArt.Height = 60f;
                this.TopOfAutoDrawSet();
                this.travelTicks = XNACS1Base.World.TicksInASecond * 10;
                this.unitsMovedPerTick = (rightBound - leftBound) / travelTicks;
                this.VelocityDirection = new Vector2(-1, 0);
                this.CenterX = rightBound;
                this.movingArt.Center = this.Center;

            }
        }
	void WaveCompleted()
	{
		Debug.Log("Wave Completed!");

		state = SpawnState.COUNTING;
		waveCountdown = timeBetweenWaves;

		if (nextWave + 1 > waves.Length - 1)
		{
			nextWave = 0;
			Debug.Log("ALL WAVES COMPLETE! Looping...");
		}
		else
		{
			nextWave++;
		}
	}
        protected override void OnStateEntry(Entity host, RealmTime time, ref object state)
        {
            state = new SpawnState
            {
                CurrentNumber = initialSpawn,
                RemainingTime = coolDown.Next(Random)
            };
            for (int i = 0; i < initialSpawn; i++)
            {
                Entity entity = Entity.Resolve(host.Manager, children[Random.Next(children.Length)]);

                entity.Move(
                    host.X + (float)(Random.NextDouble() * 0.5),
                    host.Y + (float)(Random.NextDouble() * 0.5));
                (entity as Enemy).Terrain = (host as Enemy).Terrain;
                host.Owner.EnterWorld(entity);
            }
        }
    IEnumerator SpawnWave(Wave _wave)
    {
        Debug.Log("Spawning Wave: " + _wave.name);
        state = SpawnState.SPAWNING;

        /*for (int i = 0; i < _wave.count; i++) {
            SpawnEnemy (_wave.enemy);
            //yield return new WaitForSeconds( 1f/_wave.rate );
            yield return new WaitForSeconds( 5f/(Random.Range(1,_wave.rate)) );
        }*/
        for (int i = 0; i < Random.Range(_wave.count,maxcount); i++) {
            SpawnEnemy (_wave.enemy);
            //yield return new WaitForSeconds( 1f/_wave.rate );
            yield return new WaitForSeconds( 5f/(Random.Range(1,_wave.rate)) );
        }
        state = SpawnState.WAITING;

        yield break;
    }
    IEnumerator SpawnWave(Wave _wave)
    {
        Debug.Log("Spawning Wave: " + _wave.name);
        state = SpawnState.SPAWNING;

        for (int i = 0; i < _wave.count; i++) {
            //SpawnEnemy(_wave.enemy);
            randomenemy = Random.Range (0, 60);
            if (randomenemy <= 36)
                SpawnEnemy (_wave.enemy);
            if (randomenemy >= 37 && randomenemy <= 51)
                SpawnEnemy (_wave.enemy2);
            if (randomenemy >= 52 && randomenemy <= 60)
                SpawnEnemy (_wave.enemy3);
            //yield return new WaitForSeconds( 1f/_wave.rate );
            yield return new WaitForSeconds( 1f/(Random.Range(1,_wave.rate)) );
        }
        state = SpawnState.WAITING;
        yield break;
    }
Exemple #43
0
    void Awake()
    {
        int counter = 1;
        for (int i = 0; i < 5; i++)
        {
            for (int j = 0; j < 5; j++)
            {
                mArray.Array[i][j] = counter++;
            }
        }
        mSpawnData = this.gameObject.GetComponent<SpawnData>();
        mSpawnState = SpawnState.Countdown;
        SpawnCounter = SpawnTime;
        AlienArray = new ArrayList();

        //for (int i = 0; i < 5; i++)
        //{
        //    CreateAlien(0, i, 1);
        //    CreateAlien(0, i, 2);
        //}
        //CreateAlien(0, 3, 4);
    }
Exemple #44
0
        /*Constructor*/
        public Spawner(Vector2 center, float width = 5f, float height = 5f,
            float rotation = 0f, float static_friction = 0f,
            float bounciness = 0f, int spawns = 100, int frequency = 20, float rand_angle = 0f)
            : base(center, width, height, rotation, static_friction, bounciness)
        {
            num_spawns = spawns;
            this.spawn_freq = frequency;
            num_spawned = 0;
            this.theta = MathHelper.Clamp(rand_angle, 0f, 90f);
            this.state = SpawnState.Idle;

            this.ticks_to_spawn = this.spawn_freq;

            /*Set up list*/
            this.coins = new List<Money>(num_spawns);
            for (int i = 0; i < num_spawns; ++i)
            {
                this.coins.Add(new Money(this.Center, 5f, 5.0f));
                this.coins[i].RemoveFromAutoDrawSet();
            }

            /*Get coins ready for spawn*/
            foreach (Money dinero in this.coins)
            {
                #region Vector Calculations
                Vector2 T = this.FrontDirection;
                Vector2 N = this.NormalDirection;

                /*Find a random velocity vector between (-theta, theta)*/
                float angle_offset = XNACS1Base.RandomFloat(-this.theta, this.theta);
                float vT = (float)(Math.Cos(angle_offset));
                float vN = (float)(Math.Sin(angle_offset));
                Vector2 V_hat = (vT * T) + (vN * N);

                dinero.Velocity = kLaunchSpeed * V_hat;
                #endregion
            }
        }
    /**Spawns enemies and waits a short time in between spawning
    * should be expanded to use different spwan points so we can make
    * different shapes and what not with the spawn pattern.
    * @param _wave: The wave object that is used for spawning
    */
    IEnumerator SpawnWave(Wave curWave)
    {
        //now we are actually spawning
        curState = SpawnState.SPAWNING;
        //spawn things based on number of enemies we want to spawn
        for(int i = 0; i < curWave.count; i++)
        {
            int picker = i % curWave.enemies.Length;
            SpawnEnemy (curWave.enemies[picker]);
            yield return new WaitForSeconds(curWave.indivSpawnDelay);

        }

        //Switch to wait for character to kill enemies
        curState = SpawnState.WAITING;
        yield break;
    }
        //Update spawn state as time progresses to make the game more difficult
        public void UpdateSpawnState()
        {
            if (Score <= 10)
                currentSpawnState = SpawnState.SpawnOne;

            else if (Score > 10 && Score <= 40)
            {
                IntervalSpawnTime = 500;
            }

            else if (Score > 40 && Score <= 60)
            {
                IntervalSpawnTime = 400;
            }

            else if (Score > 60 && Score <= 80)
            {
                currentSpawnState = SpawnState.SpawnTwo;
                IntervalSpawnTime = 1500;
            }

            else if (Score > 80  && Score <= 100)
            {
                IntervalSpawnTime = 1000;
            }

            else if (Score > 100 && Score <= 140)
            {
                currentSpawnState = SpawnState.SpawnThree;
                IntervalSpawnTime = 1800;
            }

            else if (Score > 140 && Score <= 180)
            {
                IntervalSpawnTime = 1500;
            }

            else if (Score > 180 && Score <= 230)
            {
                IntervalSpawnTime = 1200;
            }

            else if(Score > 230 && Score <= 280)
            {
                IntervalSpawnTime = 1000;
            }

            else if (Score > 280 && Score <= 320)
            {
                currentSpawnState = SpawnState.SpawnOne;
                IntervalSpawnTime = 390;
                }

            else if (Score > 320)
            {
                currentSpawnState = SpawnState.SpawnThree;
                IntervalSpawnTime = 1000;
            }

            else if (Score > 500)
            {
                IntervalSpawnTime = 900;
            }
        }
        private void select(object sender, EventArgs e)
        {
            SpawnState[] states;

            #region Levels

            switch (selectedEntry)
            {
                case 0:
                    states = new SpawnState[]
                    {
                        SpawnState.Wave,
                        SpawnState.Peace,
                        SpawnState.Wave,
                        SpawnState.Boss,
                        SpawnState.Peace,
                        SpawnState.Wave,
                        SpawnState.Boss,
                        SpawnState.Peace,
                        SpawnState.Wave,
                        SpawnState.Boss,
                        SpawnState.Victory
                    };
                    break;

                case 1:
                    bossStart = 3;
                    states = new SpawnState[]
                    {
                        SpawnState.Wave,
                        SpawnState.Boss,
                        SpawnState.Peace,
                        SpawnState.Wave,
                        SpawnState.Peace,
                        SpawnState.Surge,
                        SpawnState.Boss,
                        SpawnState.Peace,
                        SpawnState.Wave,
                        SpawnState.Boss,
                        SpawnState.Victory
                    };
                    break;

                case 2:
                    bossStart = 6;
                    states = new SpawnState[]
                    {
                        SpawnState.Surge,
                        SpawnState.Boss,
                        SpawnState.Peace,
                        SpawnState.Wave,
                        SpawnState.Peace,
                        SpawnState.Wave,
                        SpawnState.Boss,
                        SpawnState.Peace,
                        SpawnState.Wave,
                        SpawnState.Peace,
                        SpawnState.Surge,
                        SpawnState.Boss,
                        SpawnState.Peace,
                        SpawnState.Wave,
                        SpawnState.Peace,
                        SpawnState.Surge,
                        SpawnState.Boss,
                        SpawnState.Victory
                    };
                    break;

                case 3:
                    bossStart = 0;
                    states = new SpawnState[]
                    {
                        SpawnState.Boss,
                        SpawnState.Boss,
                        SpawnState.Boss,
                        SpawnState.Peace,
                        SpawnState.Boss,
                        SpawnState.Boss,
                        SpawnState.Boss,
                        SpawnState.Peace,
                        SpawnState.Boss,
                        SpawnState.Boss,
                        SpawnState.Boss,
                        SpawnState.Boss,
                        SpawnState.Victory
                    };
                    break;

                case 4:
                    states = new SpawnState[]
                    {
                        SpawnState.Endless
                    };
                    break;

                default:
                    states = new SpawnState[]
                    {
                        SpawnState.Victory
                    };
                    break;
            }

            #endregion Levels

            ExitScreen();
            Manager.AddScreen(new GameplayScreen(font, bossStart, indices, selectedEntry, states), null);
        }
Exemple #48
0
        /// <summary>
        /// Start spawning Money.  Spawns one coin and only if there are coins
        /// left to spawn.
        /// </summary>
        public virtual void SpawnMoney()
        {
            /*If it's time to spawn again*/
            if (this.ticks_to_spawn <= 0)
            {
                /*Reset spawn clock*/
                this.ticks_to_spawn = this.spawn_freq;

                /*If coins are still left*/
                if (num_spawned < num_spawns)
                {
                    /*Draw and get coin moving*/
                    this.coins[num_spawned].GetMoving();
                    ++num_spawned;
                }
                else
                {
                    /*Out of coins; go idle*/
                    this.state = SpawnState.Idle;
                }
            }
            else
            {
                /*Countdown*/
                --this.ticks_to_spawn;
            }
        }
    void Start()
    {
        if (objPool == null)
            objPool = GameObject.FindGameObjectWithTag ("Pool").GetComponent<ObjectPool> ();

        startingCountDown = startingPeaceTime;
        peaceCountDown = peaceTime;
        waveCountDown = timeBetweenWaves;

        displayTime.text = "Next Wave in: ";

        indicators = new GameObject[wavesInGroup];

        // create initial indicators
        CreateSpawnPointIndicators ();

        maxWaves = waves.Length;

        groupCount = maxWaves / wavesInGroup;
        //		Debug.Log ("WAVE SPAWNER: Group count = " + groupCount);

        state = SpawnState.COUNTING;
    }
    public void WaveCompleted()
    {
        Debug.Log("Wave " + nextWave + "Completed!");

        state = SpawnState.COUNTING;
        waveCountdown = timeBetweenWaves;

        if (nextWave + 1 > 99 /*waves.Length - 1*/)
        {
            nextWave = 0;
            CurrentWaveSetUp();
            Debug.Log("ALL WAVES COMPLETE! Looping...");
        }
        else
        {
            //Wave completed and moving on to next wave.
            //nextWave++;
            //NewWave();
        }
    }
    // FOR TESTING, This resets the wave spawner
    public void Reset()
    {
        startingCountDown = startingPeaceTime;

        nextWave = 0;
        nextWaveInGroup = 0;
        nextGroup = 1;

        peaceCountDown = peaceTime;
        waveCountDown = timeBetweenWaves;

        displayTime.text = "Next Wave in: ";

        indicators = new GameObject[wavesInGroup];

        // create initial indicators
        CreateSpawnPointIndicators ();

        state = SpawnState.COUNTING;

        maxWaves = waves.Length;

        groupCount = maxWaves / wavesInGroup;
    }
Exemple #52
0
 public void AddWall(SpawnState spawnState)
 {
     WallSpawns.Add(spawnState);
 }
Exemple #53
0
 public void AddEverynian(SpawnState spawnState)
 {
     EverynianSpawns.Add(spawnState);
 }
    // Resets the wave spawner and all counters
    public void Reset()
    {
        groupFinished = false;

        peaceCountDown = peaceTime;
        waveCountDown = timeBetweenWaves;

        displayTime.text = "Next Wave in: ";

        // create initial indicators
        CreateSpawnPointIndicators ();

        state = SpawnState.COUNTING;
    }
 private void WaveCompleted()
 {
     state = SpawnState.Counting;
     waveCountdown = timeBetween;
     if (nextWave + 1 > waves.Length - 1)
         nextWave = 0;
     else
         nextWave++;
 }
 /**
  * Executes when player finishes killing the whole round of enemies
  * Resets appropriate states and starts the spawning over at the first wave
  * */
 void WaveCompleted()
 {
     //reset appropriate variables to correct numbers
     curState = SpawnState.COUNTING;
     waveCountdown = timeBetweenWaves;
     //If the final wave is done then you win!
     if(finalDone)
     {
         //This should be expanded to go to a dif win screen.
         Application.LoadLevel(2);
     }
     //If you run out of waves, start the final wave!
     if(nextWave + 1 > waves.Length -1)
     {
         StartCoroutine(SpawnFinalWave());
     }
     else
     {
         nextWave ++;
     }
 }
    /**
     * Spawns epic final wave. Currently spwans a mix of all enemy types from the waves available but
     * could easily be modified.
     * */
    IEnumerator SpawnFinalWave()
    {
        curState = SpawnState.SPAWNING;
        for(int i = 0; i < finalWaveCount; i++)
        {
            int picker = i % waves.Length;
            SpawnEnemy(waves[picker].enemies[0]);
            yield return new WaitForSeconds(finalSpawnDelay);
        }

        curState = SpawnState.WAITING;
        finalDone = true;
        yield break;
    }
    IEnumerator SpawnWave(Wave _wave)
    {
        //		Debug.Log ("WAVE: Spawning wave " + nextWave + ", group member: " + nextWaveInGroup);

        state = SpawnState.SPAWNING;

        // Spawn
            // Loop through members in a wave
        for (int x = 0; x < _wave.members.Length; x++) {
            // each member has a name and a count, loop through this count too
            for (int y = 0; y < _wave.members[x].enemyCount; y++){
                // spawn this enemy name
                SpawnEnemy(_wave.members[x].enemyName, _wave.spawnPosIndex);

                yield return new WaitForSeconds (1f / _wave.members[x].spawnRate);
            }
        }

        nextWave ++;
        //		Debug.Log ("WAVE SPAWNER: Next Wave = " + nextWave);

        // Check if there are any groups
        if (groupCount > 0)
        {
            // There are groups, so check if there are still waves to spawn inside this group
            if (nextWaveInGroup < wavesInGroup - 1)
            {
        //				// Get the next wave in this group
                nextWaveInGroup ++;

                // Spawn the next wave in this group
                waveCountDown = timeBetweenWaves;

                // Set state to waiting while wavecountdown counts down and switches this back to Spawning
                state = SpawnState.WAITING;

            }
            else
            {	// In this case, there ARE groups but no more waves to spawn in this group

                // Reset next wave in group
                nextWaveInGroup = 0;

                // This GROUP is done spawning, so we must go to the NEXT group
                nextGroup++;

                // NOTE:  This NEXT GROUP of waves CANNOT spawn until the terraformer has started its cycle again

                // Make sure we haven't already spawned the last group
                if (nextGroup <= groupCount)
                {
        //
                    // start peace time and keep nextwave with its current value
                    peaceCountDown = peaceTime;
                    waveCountDown = timeBetweenWaves;

                    // set state to counting to begin countdown
                    state = SpawnState.COUNTING;
                }
                else
                { // The last group has already been spawned

                    // Check that there are no more waves left, in case there's any left that are not in group
                    if (nextWave <= maxWaves - 1){

                        // if there are we spawn
                        peaceCountDown = peaceTime;
                        waveCountDown = timeBetweenWaves;
                        state = SpawnState.COUNTING;

                        // we need to tell the spawner we won't be doing groups for this wave
                        wavesInGroup = 1;
                        groupCount = 0;

                    }else{
                        // No more groups/waves left, so STOP spawning
                        state = SpawnState.STOP;

                        displayTime.gameObject.SetActive(false);
                    }

                }

            }
        }
        else
        {					// THERE ARE NO GROUPS
            if (nextWave <= maxWaves - 1)
            {
                waveCountDown = timeBetweenWaves;

                state = SpawnState.WAITING;

            }
            else
            {
                // No more Waves left, STOP Spawning
                state = SpawnState.STOP;

                displayTime.gameObject.SetActive(false);
            }
        }

        yield break;
    }
Exemple #59
0
 public void AddDrill(SpawnState spawnState)
 {
     DrillSpawns.Add(spawnState);
 }
    // Use this for initialization
    void Start()
    {
        // Get the spawn positions from Spawn Point Handler
        if (spwnPtHandler) {
            InitializeSpawnPositions ();
        } else {
            spwnPtHandler = GetComponent<SpawnPoint_Handler>();
            InitializeSpawnPositions();
        }

        if (objPool == null)
            objPool = GameObject.FindGameObjectWithTag ("Pool").GetComponent<ObjectPool> ();

        if (camShake == null)
            camShake = GameObject.FindGameObjectWithTag ("GameController").GetComponent<CameraShake> ();

        if (resourceGrid == null)
            resourceGrid = GameObject.FindGameObjectWithTag ("Map").GetComponent<ResourceGrid> ();

        peaceCountDown = peaceTime;
        waveCountDown = timeBetweenWaves;

        displayTime.text = "Next Wave in: ";

        indicators = new GameObject[wavesInGroup];

        // create initial indicators
        CreateSpawnPointIndicators ();

        maxWaves = waves.Length;

        groupCount = maxWaves / wavesInGroup;
        //		Debug.Log ("WAVE SPAWNER: Group count = " + groupCount);

        state = SpawnState.COUNTING;
    }