using GadGame.Manager; using GadGame.Network; using UnityEngine; namespace GadGame.State.MainFlowState { public class EngageState : State { private float _readyTimer; private bool _warned; public override void Enter() { LoadSceneManager.Instance.LoadSceneWithTransition(Runner.SceneFlowConfig.EndGageScene.ScenePath); _readyTimer = 0; } public override void Update(float time) { if (time >= 2) { if (!UdpSocket.Instance.DataReceived.PassBy) { Runner.SetState(); return; } switch (_warned) { case false when !UdpSocket.Instance.DataReceived.Engage: _warned = true; PopupManager.Instance.Show("Come Back", 5, () => { Runner.SetState(); }); return; case true when UdpSocket.Instance.DataReceived.Engage: _warned = false; PopupManager.Instance.Hide(); return; } } if (!UdpSocket.Instance.DataReceived.Ready) _readyTimer = 0; _readyTimer += Time.deltaTime; if (_readyTimer >= 3) { Runner.SetState(); } } public override void Exit() { _warned = false; } } }