private static void ChangeSpawnerWaveStatus(WaveSyncroPrefabSpawner spawner, int levelNumber, int waveNumber, bool isActivate) { var statusText = isActivate ? "activate" : "deactivate"; if (spawner == null) { LevelSettings.LogIfNew(string.Format("Spawner was NULL. Cannot {0} wave# {1} in level# {2}", statusText, waveNumber, levelNumber)); return; } foreach (var wave in spawner.waveSpecs) { if (wave.SpawnLevelNumber + 1 != levelNumber || wave.SpawnWaveNumber + 1 != waveNumber) { continue; } if (LevelSettings.IsLoggingOn) { Debug.Log(string.Format("Logging '{0}' in spawner '{1}' for wave# {2}, level# {3}.", statusText, spawner.name, waveNumber, levelNumber)); } wave.enableWave = isActivate; return; } LevelSettings.LogIfNew(string.Format("Could not locate a wave matching wave# {0}, level# {1}, in spawner '{2}'.", waveNumber, levelNumber, spawner.name)); }
private void Spawn() { WaveSyncroPrefabSpawner spawner = ((GameObject)gameObject.Value).GetComponent <WaveSyncroPrefabSpawner>(); if (spawner != null) { spawner.SpawnOneItem(); } }
static bool DoIncludeSpawner(WaveSyncroPrefabSpawner spawner, int includeLevel, int includeWave) { // if we filter, then also exclude inactive spawners if (includeLevel != 0 && spawner.activeMode == LevelSettings.ActiveItemMode.Never) { return(false); } return(spawner.waveSpecs.Any(spec => DoIncludeWaveSpec(spec, includeLevel, includeWave))); }
/// <summary> /// Use this method to deactivate a wave by Level and Wave # in a Syncro Spawner. /// </summary> /// <param name="spawner">The Spawner script of the Syncro Spawner.</param> /// <param name="levelNumber">The level number.</param> /// <param name="waveNumber">The wave number.</param> public static void DeactivateWave(WaveSyncroPrefabSpawner spawner, int levelNumber, int waveNumber) { ChangeSpawnerWaveStatus(spawner, levelNumber, waveNumber, false); }