using Framework;
using PhxhSDK;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
///
/// 卡池数据管理器
///
public class DrawInfoManager : Singlenton, IInitable
{
///
/// 所有卡池数据字典
///
public Dictionary DicDrawInfo { get; private set; }
///
/// 显示的卡池数据列表
///
public List ListShowDrawInfo { get; private set; }
public void Init()
{
DicDrawInfo = new Dictionary();
ListShowDrawInfo = new List();
EventManager.Instance.Register(EventManager.EventName.AllConfigLoad, LoadDrawData);
EventManager.Instance.Register(EventManager.EventName.DrawRefresh, RefreshData);
EventManager.Instance.Register(EventManager.EventName.ItemChange, CheckRefreshData);
}
public void Release()
{
EventManager.Instance.Unregister(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;
}
}
///
/// 加载卡池数据
///
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]);
}
}
///
/// 刷新数据
///
private void RefreshData()
{
ListShowDrawInfo.Clear();
foreach (DrawInfo rafflePoolForDisplay in DicDrawInfo.Values)
{
rafflePoolForDisplay.Refresh();
if (rafflePoolForDisplay.IsDraw)
ListShowDrawInfo.Add(rafflePoolForDisplay);
}
}
///
/// 检测是否刷新数据
///
///
private void CheckRefreshData(uint itemID)
{
if (1110001 == itemID) // 只有抽卡券数量发生变化才刷新抽卡数据
{
RefreshData();
return;
}
if (1110002 == itemID)
{
RefreshData();
return;
}
}
}