Files
BingoGrassland/Assets/BingoBrain/ModuleUI/JTod/JTodModel.cs
T

154 lines
3.8 KiB
C#
Raw Normal View History

2026-04-20 13:49:36 +08:00
using System.Linq;
using BingoBrain.Core;
namespace BingoBrain
{
public class JTodModel : BaseModel
{
/// <summary>
/// 签到持续时间
/// </summary>
public int DailyDonusContinueTime;
public int GetDailyDonusDay()
{
var val = GameHelper.GetNowTime() - PreferencesMgr.Instance.OpenDailyBonusStampTime;
if (val <= 0)
{
val = 1;
}
var daySum = val / GameHelper.sunSecond;
if (val % GameHelper.sunSecond > 0)
{
daySum++;
}
if (daySum > PreferencesMgr.Instance.DailyBonusItemLst.Count)
{
SetDailyBonusItem();
return GetDailyDonusDay();
}
return (int)daySum;
}
public string GetDailyDonusDayTime()
{
return GameHelper.GetInterval(GameHelper.GetTomorrowCountTime());
}
#region
protected override void OnInit()
{
}
protected override void OnDispose()
{
}
protected override void OnReset()
{
}
#endregion
#region
protected override void OnReadData()
{
var signDailyRewardModel = GameHelper.GetConfig<SignDailyModel>();
DailyDonusContinueTime = GameHelper.sunSecond * signDailyRewardModel.GetCount();
}
#endregion
#region
protected override void AddListener()
{
ctrlDispatcher.AddListener(CtrlMsg.Game_StartLater, InitData);
}
private void InitData(object o)
{
GetDailyDonusDay();
if (PreferencesMgr.Instance.DailyBonusItemLst.Count == 0)
{
SetDailyBonusItem();
}
Hall.Instance.UpdateSecondEvent += CheckData;
}
private void CheckData()
{
PreferencesMgr.Instance.DailyBonusItemLst.Clear();
var val = GameHelper.GetNowTime() - PreferencesMgr.Instance.OpenDailyBonusStampTime;
// 刷新签到
if (PreferencesMgr.Instance.DailyBonusItemLst.Count == 0 || val >= DailyDonusContinueTime)
{
SetDailyBonusItem();
}
}
private void SetDailyBonusItem()
{
PreferencesMgr.Instance.DailyBonusItemLst.Clear();
var signDailyRewardModel = GameHelper.GetConfig<SignDailyModel>();
if (signDailyRewardModel != null)
{
foreach (var bonusItem in signDailyRewardModel.GetDataList().Select(item => new DailyBonusItem
{
id = item.item1,
quantity = item.quantity[0],
isDouble = item.isMulti,
cont_index = item.cont_index,
IsCollect = false
}))
{
PreferencesMgr.Instance.DailyBonusItemLst.Add(bonusItem);
}
PreferencesMgr.Instance.OpenDailyBonusStampTime = GameHelper.GetNowTime();
}
}
protected override void RemoveListener()
{
ctrlDispatcher.RemoveListener(CtrlMsg.Game_Start, InitData);
}
#endregion
}
}
public class DailyBonusItem
{
/// <summary>
/// 奖励id
/// </summary>
public int id;
/// <summary>
/// 奖励数量
/// </summary>
public float quantity;
/// <summary>
/// 是否翻倍
/// </summary>
public bool isDouble;
/// <summary>
/// 控制器索引
/// </summary>
public int cont_index;
/// <summary>
/// 是否领取过奖励
/// </summary>
public bool IsCollect;
}