NLDClient-yudde/ProjectNLD/Assets/Code/Scripts/Gameplay/SignUp/SignUpManager.cs

83 lines
1.9 KiB
C#
Raw Normal View History

using System.Collections.Generic;
2024-04-09 18:44:57 +08:00
using Cysharp.Threading.Tasks;
using Framework;
2024-03-25 17:08:42 +08:00
using Gameplay;
using PhxhSDK;
2024-03-25 17:08:42 +08:00
using Constants = PhxhSDK.Constants;
public class SignUpManager : Singlenton<SignUpManager>, IInitable
{
private Dictionary<int, SignObjAccumulate> _accumulateDic;
/// <summary>
/// 是否显示登录奖励
/// </summary>
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<int, SignObjAccumulate>();
}
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()
{
2024-02-28 19:30:02 +08:00
if (_accumulateDic.Count > 0)
return;
_CreateSignObjs();
isShowSign = true;
}
public async void CheckShowSignUp()
{
if (isShowSign && _accumulateDic[1].IsNeedToShow)
2024-02-28 15:10:11 +08:00
{
isShowSign = false;
2024-03-29 12:30:23 +08:00
await UI_DailyBonusController.Open(1);
2024-02-28 15:10:11 +08:00
}
}
public SignObjAccumulate GetAccumulateSignObj(int signId)
{
if (_accumulateDic.TryGetValue(signId, out var obj))
{
return obj;
}
return null;
}
}