private void UpdateCreepCountAndStopCurrentBehavior(WaveGenerator waveGenerator) { creepCountForCurrentWave += creepCount; creepsSpawnedFromCurrentGroup = 0; waveGenerator.Start <WaveCreation>(); waveGenerator.waveList[0].CreepsAndGroupsList.RemoveAt(0); waveGenerator.Stop <SpawnAllCreepsInGroup>(); }
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); }
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); }
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>(); } }
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++; }
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>(); } }
private void AddCreepWaves() { foreach (var wave in Waves) CreepWaves.Add(new CreepWave(wave)); WaveGenerator = new WaveGenerator(CreepWaves); }
private void UpdateCreepCountAndStopCurrentBehavior(WaveGenerator waveGenerator) { creepCountForCurrentWave += creepCount; creepsSpawnedFromCurrentGroup = 0; waveGenerator.Start<WaveCreation>(); waveGenerator.waveList[0].CreepsAndGroupsList.RemoveAt(0); waveGenerator.Stop<SpawnAllCreepsInGroup>(); }
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++; }
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); }