76 lines
1.6 KiB
C#
76 lines
1.6 KiB
C#
using PrizeSystem;
|
|
using UnityEngine;
|
|
|
|
|
|
public class PrizeState : IState
|
|
{
|
|
private GameManager gm;
|
|
private IState nextState;
|
|
|
|
|
|
private VitrinaPanel vitrina;
|
|
private QrPanel qr;
|
|
|
|
public PrizeState(IState nextState)
|
|
{
|
|
this.nextState = nextState;
|
|
}
|
|
public void enter()
|
|
{
|
|
Debug.Log("Зашел в приз");
|
|
gm = GameManager.Instance;
|
|
|
|
gm.timerManager.StopAllTimers();
|
|
if(PrizeSystemManager.HasVitrinaPrizeToGive)
|
|
{
|
|
if(gm.vitrinaPanel.TryGetComponent(out vitrina))
|
|
{
|
|
vitrina.OnComplete += OnComplete;
|
|
gm.vitrinaPanel.gameObject.SetActive(true);
|
|
VitrinaPrize prize = PrizeSystemManager.DequeueVitrinaPrize();
|
|
gm.vitrinaPanel.Initialize(prize.Boxes);
|
|
}
|
|
}
|
|
else if (PrizeSystemManager.HasQrPrizeToGive)
|
|
{
|
|
if (gm.qrPanel.TryGetComponent(out qr))
|
|
{
|
|
qr.OnComplete += OnComplete;
|
|
gm.qrPanel.gameObject.SetActive(true);
|
|
QrPrize prize = PrizeSystemManager.DequeueQrPrize();
|
|
gm.qrPanel.Initialize(prize);
|
|
}
|
|
|
|
}
|
|
//добавить qr панель-выдатчик.
|
|
else
|
|
{
|
|
gm.stateMachine.ChangeState(nextState);
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
private void OnComplete()
|
|
{
|
|
|
|
gm.stateMachine.ChangeState(nextState);
|
|
}
|
|
|
|
public void exit()
|
|
{
|
|
if (vitrina != null)
|
|
{
|
|
vitrina.OnComplete -= OnComplete;
|
|
vitrina = null;
|
|
}
|
|
}
|
|
|
|
public void update()
|
|
{
|
|
|
|
}
|
|
}
|