chip-game/Assets/Scripts/GameFSM/CheckLeadersFromMenuState.cs
2026-01-12 09:36:17 +03:00

54 lines
1.4 KiB
C#

using UnityEngine;
public class CheckLeadersFromMenuState : IState
{
Leaderboard lb;
float timeToExit = 60f;
float timeElapsed = 0;
public void enter()
{
ComWrapper.onInputRecieved.AddListener(ResetTimer);
lb = GameManager.instance.leaderboard;
//вкл
lb.gameObject.SetActive(true);
lb.Initialize(showContacts: false);
SoundManager.instance.playSwitch();
timeElapsed = 0;
}
void ResetTimer(string s) => timeElapsed = 0;
public void exit()
{
ComWrapper.onInputRecieved.RemoveListener(ResetTimer);
lb.ClearRowsText();
lb.gameObject.SetActive(false);
SoundManager.instance.playSwitch();
}
public void update()
{
//проверка
bool exitCombo = In.GetButtonDownAnyPlayer(PlayerAction.left) && In.GetButtonDownAnyPlayer(PlayerAction.right);
if (exitCombo)
{
GameManager.instance.stateMachine.ChangeState(new MenuState());
}
bool keepDownButton = In.GetButtonAnyPlayer(PlayerAction.down);
float accelerationSign = keepDownButton ? 1 : -1f;
lb.accelerationY = Mathf.Abs(lb.accelerationY) * accelerationSign;
timeElapsed += Time.deltaTime;
if (timeElapsed > timeToExit)
{
GameManager.instance.stateMachine.ChangeState(new MenuState());
}
}
}