public WaveTimeline GetWave(int index) { WaveTimeline timeline = WaveCollection.GetWave(index); if (!IsWaveKnown(index)) { OnNewWave?.Invoke(timeline); MarkWaveAsKnown(index, true); } return(timeline); }
private bool StartWave(int wave) { ChangeState(RoundState.InProgress); WaveTimeline timeline = GetWave(wave); Debug.Log("Starting next wave!"); if (timeline != null) { WaveHandler handler = Instantiate(WaveHandlerPrefab).GetComponent <WaveHandler>(); handler.Assign(wave, timeline); AddWave(handler); handler.BeginWave(); OnWaveStarted?.Invoke(wave, handler); } return(timeline != null); }
public void Display(int wave, WaveHandler handler, WaveTimeline timeline) { foreach (Transform child in transform) { if (child != TextTransform) { Destroy(child.gameObject); } } Wave = wave; TitleText.text = wave == -1 ? "Next wave" : $"Wave {wave}"; var dict = timeline.GetEnemySpawnAmount(); foreach (var pair in dict) { EnemyTypeDisplay display = Instantiate(EnemyTypeDisplayPrefab, EnemyTypeDisplayParent).GetComponent <EnemyTypeDisplay>(); display.Display(handler, pair.Value, pair.Key); } }