using System.Collections.Generic; using Cysharp.Threading.Tasks; using Framework; using Gameplay; using PhxhSDK; using Constants = PhxhSDK.Constants; public class SignUpManager : Singlenton, IInitable { private Dictionary _accumulateDic; /// /// 是否显示登录奖励 /// private bool isShowSign; public void Init() { _Init(); EventManager.Instance.Register(EventManager.EventName.CheckNeedShowSignUp, OnCheckShowSignUp); } public void Release() { EventManager.Instance.Unregister(EventManager.EventName.CheckNeedShowSignUp, OnCheckShowSignUp); } private void _Init() { _accumulateDic = new Dictionary(); } private void _CreateSignObjs() { _CreateAccumulateObjs(); } //创建累计充值的对象 private void _CreateAccumulateObjs() { if (_accumulateDic.Count > 0) { _accumulateDic.Clear(); } _CreateAccumulateObj(1); } private void _CreateAccumulateObj(int signId) { if (!_accumulateDic.ContainsKey(signId)) { var accSignObj = SignObjAccumulate.CreateObj(signId); _accumulateDic.Add(signId, accSignObj); } } private void OnCheckShowSignUp() { if (_accumulateDic.Count > 0) return; _CreateSignObjs(); isShowSign = true; } public async void CheckShowSignUp() { if (isShowSign && _accumulateDic[1].IsNeedToShow) { isShowSign = false; await UI_DailyBonusController.Open(1); } } public SignObjAccumulate GetAccumulateSignObj(int signId) { if (_accumulateDic.TryGetValue(signId, out var obj)) { return obj; } return null; } }