93 lines
2.2 KiB
C#
93 lines
2.2 KiB
C#
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();
|
|
}
|
|
}
|
|
|
|
}
|