using cfg.ActorCfg; using cfg.RedPoint; using Cysharp.Threading.Tasks.Triggers; using Gameplay.Net; using System.Collections.Generic; /// /// 卡池数据 /// public sealed class RaffleData : IRedPointTreeNode { #region 属性 /// /// 卡池配置数据 /// public DataGacha Cfg { get; private set; } /// /// 卡池累计抽取数据 /// public RaffleCount ServerData { get; private set; } /// /// 红点 /// public RedPointNode RedPoint { get; private set; } /// /// 有可以抽取的 /// public bool CanRaffle { get { for (int i = 0; i < RaffleButtonDatas.Length; ++i) { if (RaffleButtonDatas[i].IsRaffle) return true; } return false; } } /// /// 抽卡按钮数组 /// public RaffleButtonData[] RaffleButtonDatas { get; private set; } #endregion public RaffleData(DataGacha cfg) { Cfg = cfg; RaffleButtonDatas = new RaffleButtonData[RaffleManager.RAFFLE_BUTTON_COUNT]; ConstructRedPointTree(50); } public void Refresh() { ServerData = Actor.Instance.Raffle.GetRaffleInfo((uint)Cfg.Id); for (int i = 0; i < Cfg.BtnDisplay.Length && i < RaffleManager.RAFFLE_BUTTON_COUNT; ++i) { RaffleButtonDatas[i] = new RaffleButtonData() { Cfg = Cfg, Count = Cfg.BtnDisplay[i], ServerData = ServerData, }; } } public void ConstructRedPointTree(int parentID) { RedPoint = RedPointManager.Instance.AddDynamicNode(NodeType.Raffle, parentID, Cfg.Id); } public void ConstructRedPointTree(RedPointNode parent) { } }