private void SpawnWave(LevelWave wave) { foreach (var spawn in wave.Spawns) { var wrapperObject = new GameObject("Wrapper"); wrapperObject.transform.position = spawn.StartPosition; var enemy = GameObject.Instantiate(spawn.Enemy, spawn.StartPosition, spawn.Enemy.transform.rotation, wrapperObject.transform).GetComponent <Enemy>(); if (spawn.Animation != null) { enemy.SetAnimationClip(spawn.Animation); } } }
public static LevelWave CloneLevelWave(LevelWave levelWave) { var clone = new LevelWave { pauseGlobalWavesWhenCompleted = levelWave.pauseGlobalWavesWhenCompleted, waveType = levelWave.waveType, skipWaveType = levelWave.skipWaveType, skipWavePassCriteria = levelWave.skipWavePassCriteria, waveName = levelWave.waveName, musicSettings = levelWave.musicSettings, WaveDuration = levelWave.WaveDuration, endEarlyIfAllDestroyed = levelWave.endEarlyIfAllDestroyed, waveBeatBonusesEnabled = levelWave.waveBeatBonusesEnabled, useCompletionEvents = levelWave.useCompletionEvents, completionCustomEvents = levelWave.completionCustomEvents, waveDefeatVariableModifiers = levelWave.waveDefeatVariableModifiers, isExpanded = levelWave.isExpanded, useSpawnBonusPrefab = levelWave.useSpawnBonusPrefab, bonusPrefabCategoryName = levelWave.bonusPrefabCategoryName, bonusPrefabPoolIndex = levelWave.bonusPrefabPoolIndex, bonusPrefabPoolName = levelWave.bonusPrefabPoolName, bonusPrefabSource = levelWave.bonusPrefabSource, bonusPrefabSpecific = levelWave.bonusPrefabSpecific, spawnerUseMode = levelWave.spawnerUseMode, spawnersToUseMax = levelWave.spawnersToUseMax, spawnersToUseMin = levelWave.spawnersToUseMin, waveClass = levelWave.waveClass, waveDescription = levelWave.waveDescription, waveDurationFlex = levelWave.waveDurationFlex, useTriggeredSpawners = levelWave.useTriggeredSpawners, trigSpawnerWavesToAwait = levelWave.trigSpawnerWavesToAwait }; KillerVariablesHelper.CloneKillerInt(clone.bonusPrefabSpawnPercent, levelWave.bonusPrefabSpawnPercent); KillerVariablesHelper.CloneKillerInt(clone.bonusPrefabQty, levelWave.bonusPrefabQty); KillerVariablesHelper.CloneKillerInt(clone.waveDurationFlex, levelWave.waveDurationFlex); return(clone); }
public virtual void WaveSkipped(LevelWave levelWaveInfo) { // your code here. }
public virtual void WaveEndedEarly(LevelWave levelWaveInfo) { // your code here. }
public virtual void WaveRestarted(LevelWave levelWaveInf) { // your code here. }