Advertisement
PlinioJRM

WaveController

Nov 1st, 2024
37
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.77 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using PlinioJRM.Utils;
  4. using UnityEngine;
  5.  
  6. namespace PlinioJRM.Systems.Waves {
  7.     public class WaveController : MonoBehaviour {
  8.         [SerializeField]
  9.         private float _waveDuration = 15f;
  10.         [SerializeField]
  11.         private float _waveInterval = 3f;
  12.         [SerializeField]
  13.         private List<EnemySpawnScore> _enemyScores;
  14.        
  15.         private CountdownTimer _waveTimer;
  16.         private CountdownTimer _waveIntervalTimer;
  17.  
  18.         #region Unity Callbacks
  19.         private void Start() {
  20.             _waveTimer = new CountdownTimer(_waveDuration);
  21.             _waveIntervalTimer = new CountdownTimer(_waveInterval);
  22.         }
  23.  
  24.         private void Update() {
  25.             void UpdateTimers() {
  26.                 float deltatime = Time.deltaTime;
  27.                 _waveTimer.Tick(deltatime);
  28.                 _waveIntervalTimer.Tick(deltatime);
  29.             }
  30.  
  31.             UpdateTimers();
  32.         }
  33.  
  34.         private void OnEnable() {
  35.             _waveTimer.OnEachSecond += WaveTimerOnOnEachSecond;
  36.             _waveTimer.OnStop += WaveTimerOnOnStop;
  37.             _waveIntervalTimer.OnStop += WaveIntervalTimerOnOnStop;
  38.         }
  39.  
  40.         private void OnDisable() {
  41.             _waveTimer.OnEachSecond -= WaveTimerOnOnEachSecond;
  42.             _waveTimer.OnStop -= WaveTimerOnOnStop;
  43.             _waveIntervalTimer.OnStop -= WaveIntervalTimerOnOnStop;
  44.         }
  45.         #endregion
  46.        
  47.         private void WaveTimerOnOnEachSecond() {
  48.             throw new NotImplementedException();
  49.         }
  50.  
  51.         private void WaveTimerOnOnStop() {
  52.             _waveIntervalTimer.Start();
  53.         }
  54.        
  55.         private void WaveIntervalTimerOnOnStop() {
  56.             _waveTimer.Start();
  57.         }
  58.     }
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement