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() { } }