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

67 lines
1.5 KiB
C#

using CharacterSystem;
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)
{
var character = CharactersController.CurrentCharacter;
if (character.prizeModule.TryFetchPrize(out Prize prize))
PrizeSystemManager.GivePrize(prize);
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;
}
}
}
}