42 lines
1.2 KiB
C#
42 lines
1.2 KiB
C#
using UnityEngine;
|
|
|
|
public class TimerManager : MonoBehaviour
|
|
{
|
|
[SerializeField] Timer player1Timer, player2Timer;
|
|
[SerializeField] float vsBotTime = 180;
|
|
[SerializeField] float pvpTime = 90;
|
|
|
|
public void Init()
|
|
{
|
|
player1Timer.OnTimerEnded.AddListener(EndOfTurnHandler.WinByTimerHandling);
|
|
player2Timer.OnTimerEnded.AddListener(EndOfTurnHandler.WinByTimerHandling);
|
|
}
|
|
|
|
public void SetupTimers(GameMode gameMode)
|
|
{
|
|
player1Timer.SetupTimer(gameMode == GameMode.pve ? vsBotTime : pvpTime);
|
|
if (gameMode == GameMode.pvp)
|
|
player2Timer.SetupTimer(pvpTime);
|
|
|
|
SetTimersActivity(gameMode);
|
|
}
|
|
|
|
public void SetTimersActivity(GameMode gameMode)
|
|
{
|
|
bool activateSecondTimer = gameMode == GameMode.pvp;
|
|
player1Timer.gameObject.SetActive(true);
|
|
player2Timer.gameObject.SetActive(activateSecondTimer);
|
|
}
|
|
|
|
public void StopAllTimers()
|
|
{
|
|
player1Timer.StopTimer();
|
|
player2Timer.StopTimer();
|
|
}
|
|
|
|
public void SetActiveTimer(CellState currentPlayer)
|
|
{
|
|
(currentPlayer == CellState.Player1 ? player1Timer : player2Timer).StartTimer();
|
|
(currentPlayer == CellState.Player1 ? player2Timer : player1Timer).StopTimer();
|
|
}
|
|
} |