using SGModule.Common; using SGModule.Net; using SGModule.NetKit; using UNSDK; namespace BallKingdomCrush { using System; using UnityEngine; using System.Collections.Generic; using Unity.VisualScripting; using IgnoreOPS; using System.Linq; public class HallManager : BaseUnityManager { public event Action UpdateSecondEvent; public event Action UpdateFiveSecondEvent; private float _secondTime; private float _secondTime1; private LoginModel loginModel; private bool isGameStart; private GameDataSystem gameDataSys; private WindowSystem windowSys; private RewardSystem rewardSys; private ConsumeSystem consumeSys; private bool isFirstEnter = true; public int enterHallTimes = 0; public event Action UpdateEvent; // public int countTimes = 0; public override void Init() { CtrlDispatcher.Instance.AddListener(CtrlMsg.Game_Start, OnGameStart); GameDispatcher.Instance.AddListener(GameMsg.OpenGame, EnterGame); GameDispatcher.Instance.AddListener(GameMsg.BackMainScene, (a) => { EnterHall(); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.MainUI_Open); }); AppDispatcher.Instance.AddListener(MainThreadMsg.App_Focus_True, BackToGame); CtrlDispatcher.Instance.AddListener(CtrlMsg.open_wb, openWB); InitSystem(); } private void InitSystem() { gameDataSys = new GameDataSystem(); windowSys = new WindowSystem(); rewardSys = new RewardSystem(); consumeSys = new ConsumeSystem(); } void BackToGame(object obj = null) { if (MaxPayManager.isPay) { MaxPayManager.isPay = false; UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PayloadingUI_Close); MaxPayManager.Instance.PaySuccess(); } } private void OnGameStart(object obj) { // var lang = PlayerPrefsKit.ReadString("LangIdKey"); // if (lang.IsNullOrWhiteSpace()) // { // lang = "en"; // } // UIManager.Instance.SetSwitchLanguage(lang); //初始化商品(谷歌支付和ios支付) PurchasingManager.InitProduct(); isGameStart = true; bool enterGame = CommonHelper.GetBoolByChance(ConfigSystem.GetCommonConf().roomrate / 100f); EnterHall(true); if (GameHelper.IsGiftSwitch() && enterGame) { EnterGame(enterGame); } TrackKit.TrackLoginFunnel(LoginFunnelEventType.EnterHall); if (DataMgr.VipLevel.Value < 0 && DataMgr.VipExpirationTime.Value > 0) { PurchasingManager.CheckSubExpiration(true); } } private void EnterHall(object obj = null) { // int index = obj != null ? (int)obj : 2; enterHallTimes++; UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.PlayUI_Close); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RewardAniUI_Close); AudioManager.Instance.PlayBGM(AudioConst.MainBg); // UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.MainTabUI_Open, index); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.MainUI_Open); GameHelper.PlayGameTimeEvent(1); } private void EnterGame(object obj) { if (GameHelper.GetLevel() < GameHelper.GetCommonModel().MultiModal) { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.MainTabUI_Close); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.MainUI_Close); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RainPlayUI_Open); AudioManager.Instance.PlayBGM(AudioConst.GameBg); } else { if (!DataMgr.LevelUnlockListNew.Value.Any(x => x.level_ == GameHelper.GetLevel())) { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.UnlockLevelNewUI_Open); } else { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.MainTabUI_Close); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.MainUI_Close); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.RainPlayUI_Open); AudioManager.Instance.PlayBGM(AudioConst.GameBg); } } } private void openWB(object obj) { SdkConfigMgr.Instance.Open(); CreatAnimalCard.instance.SetCameraVisible(false); if (UIManager.Instance.IsExistUI(UIConst.RainPlayUI)) { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.H5UI_Open, false); } else { UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.H5UI_Open, true); UICtrlDispatcher.Instance.Dispatch(UICtrlMsg.MainUI_Close); } GameDispatcher.Instance.Dispatch(GameMsg.hideBroadCast); } #region 缓存资源 public void GetGalleryNet(int imageID, Action action = null) { StartCoroutine(TextureHelper.GetGalleryFromNet(imageID, action)); } #endregion public void Update() { if (!isGameStart) return; UpdateEvent?.Invoke(); _secondTime += Time.deltaTime; _secondTime1 += Time.deltaTime; if (_secondTime >= 1) { _secondTime = 0; UpdateSecondEvent?.Invoke(); } if (_secondTime1 >= 5) { _secondTime1 = 0; UpdateFiveSecondEvent?.Invoke(); } } public void AddChangeGiftSwitch(Action action) { } public void RemoveChangeGiftSwitch(Action action) { } // void OnApplicationQuit() // { // PreferencesMgr.Instance.ImmediateSendSave(); // } private bool isInH5; public void SetInH5(bool isInH5) { this.isInH5 = isInH5; } } }