Пример #1
0
 private void UpdateCreepCountAndStopCurrentBehavior(WaveGenerator waveGenerator)
 {
     creepCountForCurrentWave     += creepCount;
     creepsSpawnedFromCurrentGroup = 0;
     waveGenerator.Start <WaveCreation>();
     waveGenerator.waveList[0].CreepsAndGroupsList.RemoveAt(0);
     waveGenerator.Stop <SpawnAllCreepsInGroup>();
 }
Пример #2
0
			private static void CreateWave(CreepWave wave, WaveGenerator waveGenerator)
			{
				if (creepCountForCurrentWave >= wave.TotalCreepsInWave)
				{
					creepCountForCurrentWave = 0;
					waveGenerator.waveList.RemoveAt(0);
					waveGenerator.level.UpdateWave();
					return;
				}
				if (!Time.CheckEvery(wave.SpawnInterval))
					return;
				SpawnNextItemFromList(wave.CreepsAndGroupsList[0], waveGenerator);
			}
Пример #3
0
 private static void CreateWave(CreepWave wave, WaveGenerator waveGenerator)
 {
     if (creepCountForCurrentWave >= wave.TotalCreepsInWave)
     {
         creepCountForCurrentWave = 0;
         waveGenerator.waveList.RemoveAt(0);
         waveGenerator.level.UpdateWave();
         return;
     }
     if (!Time.CheckEvery(wave.SpawnInterval))
     {
         return;
     }
     SpawnNextItemFromList(wave.CreepsAndGroupsList[0], waveGenerator);
 }
Пример #4
0
			private static void SpawnNextItemFromList(object itemInWaveList, WaveGenerator waveGenerator)
			{
				if (IsItemCreep(itemInWaveList))
				{
					if (waveGenerator.spawnPoint == default(Vector3D))
						waveGenerator.level.SpawnCreep((CreepType)itemInWaveList);
					else
						new Creep((CreepType)itemInWaveList, waveGenerator.spawnPoint);
					creepCountForCurrentWave++;
					waveGenerator.waveList[0].CreepsAndGroupsList.RemoveAt(0);
				}
				else if (IsItemGroup(itemInWaveList))
				{
					if (!waveGenerator.Contains<SpawnAllCreepsInGroup>())
						waveGenerator.Start<SpawnAllCreepsInGroup>();
					waveGenerator.Stop<WaveCreation>();
				}
			}
Пример #5
0
                private void SpawnCreepsFromGroup(WaveGenerator waveGenerator)
                {
                    var wave = waveGenerator.waveList[0];

                    if (creepsSpawnedFromCurrentGroup >= creepCount)
                    {
                        UpdateCreepCountAndStopCurrentBehavior(waveGenerator);
                        return;
                    }
                    var groupData = (GroupData)wave.CreepsAndGroupsList[0];

                    if (!Time.CheckEvery(groupData.CreepSpawnInterval))
                    {
                        return;
                    }
                    waveGenerator.level.SpawnCreep(groupData.CreepList[0]);
                    groupData.CreepList.RemoveAt(0);
                    creepsSpawnedFromCurrentGroup++;
                }
Пример #6
0
 private static void SpawnNextItemFromList(object itemInWaveList, WaveGenerator waveGenerator)
 {
     if (IsItemCreep(itemInWaveList))
     {
         if (waveGenerator.spawnPoint == default(Vector3D))
         {
             waveGenerator.level.SpawnCreep((CreepType)itemInWaveList);
         }
         else
         {
             new Creep((CreepType)itemInWaveList, waveGenerator.spawnPoint);
         }
         creepCountForCurrentWave++;
         waveGenerator.waveList[0].CreepsAndGroupsList.RemoveAt(0);
     }
     else if (IsItemGroup(itemInWaveList))
     {
         if (!waveGenerator.Contains <SpawnAllCreepsInGroup>())
         {
             waveGenerator.Start <SpawnAllCreepsInGroup>();
         }
         waveGenerator.Stop <WaveCreation>();
     }
 }
Пример #7
0
		private void AddCreepWaves()
		{
			foreach (var wave in Waves)
				CreepWaves.Add(new CreepWave(wave));
			WaveGenerator = new WaveGenerator(CreepWaves);
		}
Пример #8
0
				private void UpdateCreepCountAndStopCurrentBehavior(WaveGenerator waveGenerator)
				{
					creepCountForCurrentWave += creepCount;
					creepsSpawnedFromCurrentGroup = 0;
					waveGenerator.Start<WaveCreation>();
					waveGenerator.waveList[0].CreepsAndGroupsList.RemoveAt(0);
					waveGenerator.Stop<SpawnAllCreepsInGroup>();
				}
Пример #9
0
				private void SpawnCreepsFromGroup(WaveGenerator waveGenerator)
				{
					var wave = waveGenerator.waveList[0];
					if (creepsSpawnedFromCurrentGroup >= creepCount)
					{
						UpdateCreepCountAndStopCurrentBehavior(waveGenerator);
						return;
					}
					var groupData = (GroupData)wave.CreepsAndGroupsList[0];
					if (!Time.CheckEvery(groupData.CreepSpawnInterval))
						return;
					waveGenerator.level.SpawnCreep(groupData.CreepList[0]);
					groupData.CreepList.RemoveAt(0);
					creepsSpawnedFromCurrentGroup++;
				}
Пример #10
0
		public void TestTheTotalOfNumberOfCreepsInLevel()
		{
			var waveA = new CreepWave(1.0f, 1.0f, "Paper, Paper", "PaperWave");
			var generator = new WaveGenerator(new List<CreepWave> { waveA }, Vector3D.One);
			AdvanceTimeAndUpdateEntities(1.01f);
			AdvanceTimeAndUpdateEntities(0.1f);
			Assert.AreEqual(2, generator.TotalCreepsInLevel);
		}