using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; public class GameModeEvents : MonoBehaviour { [Header("Reference")] [SerializeField] private GameModeReference Reference; [Header("Events")] public UnityEvent OnGameStart = new UnityEvent(); public UnityEvent OnRoundStart = new UnityEvent(); public UnityEvent OnPlayersMoved = new UnityEvent(); public UnityEvent OnRoundEnd = new UnityEvent(); public UnityEvent OnGameOver = new UnityEvent(); private void OnEnable() { Reference.Value.GameStartEvent += GameStart; Reference.Value.RoundStartEvent += RoundStart; Reference.Value.AllPlayersMovedEvent += PlayersMoved; Reference.Value.RoundEndEvent += RoundEnd; Reference.Value.OnGameOverEvent += GameOver; } private void OnDisable() { Reference.Value.GameStartEvent -= GameStart; Reference.Value.RoundStartEvent -= RoundStart; Reference.Value.AllPlayersMovedEvent -= PlayersMoved; Reference.Value.RoundEndEvent -= RoundEnd; Reference.Value.OnGameOverEvent -= GameOver; } private void GameStart() { OnGameStart.Invoke(); } private void RoundStart() { OnRoundStart.Invoke(); } private void PlayersMoved() { OnPlayersMoved.Invoke(); } private void RoundEnd() { OnRoundEnd.Invoke(); } private void GameOver() { OnGameOver.Invoke(); } }