chip-gameV3/Assets/Scripts/Common/GameFSM/TakeOrRiskState.cs

66 lines
1.6 KiB
C#

using PrizeSystem;
using UnityEngine;
public class TakeOrRiskState : IState
{
private IState nextState;
private TakeOrRiskPanel takeOrRiskPanel;
public float timeElapsed = 0;
public float timeToOpen = 4;
public bool opened = false;
public TakeOrRiskState(IState nextState, TakeOrRiskPanel takeOrRiskPanel)
{
this.nextState = nextState;
this.takeOrRiskPanel = takeOrRiskPanel;
}
public void enter()
{
}
private void TakeOrRiskPanel_OnComplete(TakeOrRiskOption selectedOption)
{
if (selectedOption == TakeOrRiskOption.Take)
{
if (CharactersController.CurrentCharacter.HasPrize)
{
PrizeSystemManager.GivePrize(CharactersController.CurrentCharacter.prize);
CharactersController.CurrentCharacter.HasPrize = false;
}
GameManager.instance.stateMachine.ChangeState(new PrizeState(StateRouter.ToMenu()));
}
else
{
//Следующий бот
GameManager.instance.stateMachine.ChangeState(nextState);
}
}
public void exit()
{
takeOrRiskPanel.OnComplete -= TakeOrRiskPanel_OnComplete;
}
public void update()
{
if (!opened)
{
if (timeElapsed < timeToOpen)
timeElapsed += Time.deltaTime;
else
{
takeOrRiskPanel.gameObject.SetActive(true);
takeOrRiskPanel.OnComplete += TakeOrRiskPanel_OnComplete;
opened = true;
}
}
}
}