67 lines
1.5 KiB
C#
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;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|