94 lines
2.6 KiB
C#
94 lines
2.6 KiB
C#
using Framework;
|
|
using PhxhSDK;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
/// <summary>
|
|
/// 卡池数据管理器
|
|
/// </summary>
|
|
public class DrawInfoManager : Singlenton<DrawInfoManager>, IInitable
|
|
{
|
|
/// <summary>
|
|
/// 所有卡池数据字典
|
|
/// </summary>
|
|
public Dictionary<int, DrawInfo> DicDrawInfo { get; private set; }
|
|
|
|
/// <summary>
|
|
/// 显示的卡池数据列表
|
|
/// </summary>
|
|
public List<DrawInfo> ListShowDrawInfo { get; private set; }
|
|
|
|
public void Init()
|
|
{
|
|
DicDrawInfo = new Dictionary<int, DrawInfo>();
|
|
ListShowDrawInfo = new List<DrawInfo>();
|
|
|
|
EventManager.Instance.Register(EventManager.EventName.AllConfigLoad, LoadDrawData);
|
|
EventManager.Instance.Register(EventManager.EventName.DrawRefresh, RefreshData);
|
|
EventManager.Instance.Register<uint>(EventManager.EventName.ItemChange, CheckRefreshData);
|
|
}
|
|
|
|
public void Release()
|
|
{
|
|
EventManager.Instance.Unregister<uint>(EventManager.EventName.ItemChange, CheckRefreshData);
|
|
EventManager.Instance.Unregister(EventManager.EventName.DrawRefresh, RefreshData);
|
|
EventManager.Instance.Unregister(EventManager.EventName.AllConfigLoad, LoadDrawData);
|
|
|
|
if (null != ListShowDrawInfo)
|
|
{
|
|
ListShowDrawInfo.Clear();
|
|
ListShowDrawInfo = null;
|
|
}
|
|
|
|
if (null != DicDrawInfo)
|
|
{
|
|
DicDrawInfo.Clear();
|
|
DicDrawInfo = null;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 加载卡池数据
|
|
/// </summary>
|
|
private void LoadDrawData()
|
|
{
|
|
for (int i = 0; i < TableManager.Instance.Tables.Gacha.DataList.Count; i++)
|
|
{
|
|
DicDrawInfo[TableManager.Instance.Tables.Gacha.DataList[i].Id] = new DrawInfo(TableManager.Instance.Tables.Gacha.DataList[i]);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 刷新数据
|
|
/// </summary>
|
|
private void RefreshData()
|
|
{
|
|
ListShowDrawInfo.Clear();
|
|
foreach (DrawInfo rafflePoolForDisplay in DicDrawInfo.Values)
|
|
{
|
|
rafflePoolForDisplay.Refresh();
|
|
if (rafflePoolForDisplay.IsDraw)
|
|
ListShowDrawInfo.Add(rafflePoolForDisplay);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 检测是否刷新数据
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private void CheckRefreshData(uint itemID)
|
|
{
|
|
if (1110001 == itemID) // 只有抽卡券数量发生变化才刷新抽卡数据
|
|
{
|
|
RefreshData();
|
|
return;
|
|
}
|
|
|
|
if (1110002 == itemID)
|
|
{
|
|
RefreshData();
|
|
return;
|
|
}
|
|
}
|
|
} |