using UnityEngine; public class TimerManager : MonoBehaviour { [SerializeField] Timer player1Timer, player2Timer; [SerializeField] float vsBotTime = 180; [SerializeField] float pvpTime = 90; //время для каждого отдельного игрока private void Start() { player1Timer.OnTimerEnded.AddListener(ExitByTime); player2Timer.OnTimerEnded.AddListener(ExitByTime); } public void SetupTimers(GameMode gameMode) { if (gameMode == GameMode.pve) { float timeToSet = vsBotTime; player1Timer.SetupTimer(timeToSet); } if (gameMode == GameMode.pvp) { player1Timer.SetupTimer(pvpTime); player2Timer.SetupTimer(pvpTime); } SetTimersActivity(gameMode); } void ExitByTime() { GameManager.instance.stateMachine.ChangeState(new CheckState(true)); } public void SetTimersActivity(GameMode gameMode) { if (gameMode == GameMode.pve) { player1Timer.gameObject.SetActive(true); player2Timer.gameObject.SetActive(false); } if (gameMode == GameMode.pvp) { player1Timer.gameObject.SetActive(true); player2Timer.gameObject.SetActive(true); } } void StartTimer(CellState player) { if (player == CellState.Player1) player1Timer.StartTimer(); if (player == CellState.Player2) player2Timer.StartTimer(); } void StopTimer(CellState player) { if (player == CellState.Player1) player1Timer.StopTimer(); if (player == CellState.Player2) player2Timer.StopTimer(); } public void StopAllTimers() { player1Timer.StopTimer(); player2Timer.StopTimer(); } public void SetActiveTimer(CellState currentPlayer) { if (currentPlayer == CellState.Player1) { player1Timer.StartTimer(); player2Timer.StopTimer(); } if (currentPlayer == CellState.Player2) { player2Timer.StartTimer(); player1Timer.StopTimer(); } } }