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; 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 async void OnCheckShowSignUp() { if (_accumulateDic.Count > 0) return; _CreateSignObjs(); if (_accumulateDic[1].IsNeedToShow) await UI_DailyBonusController.Open(1); } public SignObjAccumulate GetAccumulateSignObj(int signId) { if (_accumulateDic.TryGetValue(signId, out var obj)) { return obj; } return null; } }