Example #1
0
        public override bool Update()
        {
            if (advance.ShouldAdvance())
            {
                if (groupNum >= world.Waves.Count)
                {
                    if (advance is TimeElapsedAdvancer)
                        if (!string.IsNullOrEmpty(world.NextWorld))
                            GameManager.Navigate(new PlayState(world.NextWorld));
                        else GameManager.Navigate(new IntroState());
                    else advance = new TimeElapsedAdvancer(5);
                }
                else
                    Spawn();
            }

            return true;
        }
Example #2
0
        private void Spawn()
        {
            WaveGroup group = world.Waves[groupNum];
            foreach(WaveSpawn spawn in group.Spawns)
            {
                GameManager.State.Instantiate(new LevelSpawner(spawn.Interval, spawn.Number, new Vector2(spawn.Position.X, spawn.Position.Y), spawn.Identifier, spawn.SubType));
            }

            groupNum++;
            if (groupNum >= world.Waves.Count)
                advance = new WaveRemainingAdvancer(0);
            else
            {
                group = world.Waves[groupNum];
                switch (group.AdvanceType)
                {
                    case AdvanceTypes.EnemiesLeft:
                        int rem;
                        if (!Int32.TryParse(group.AdvanceArgs, out rem))
                            rem = 0;
                        advance = new WaveRemainingAdvancer(rem);
                        break;
                    case AdvanceTypes.TimeElapsed:
                        float delay;
                        if (!float.TryParse(group.AdvanceArgs, out delay))
                            delay = 5;
                        advance = new TimeElapsedAdvancer(delay);
                        break;
                }
            }
        }
 /// <summary>
 /// Construct a PagedEnumerator based on the specified
 /// <see cref="IAdvancer"/>.
 /// </summary>
 /// <param name="advancer">
 /// The underlying <b>IAdvancer</b>.
 /// </param>
 public PagedEnumerator(IAdvancer advancer)
 {
     Debug.Assert(advancer != null);
     m_advancer = advancer;
 }