// *********************************************************************** // Assembly : Unity // Author : Kimch // Created : 2017-11-14 // // Last Modified By : Kimch // Last Modified On : // *********************************************************************** // // // *********************************************************************** namespace G { using CodeStage.AntiCheat.ObscuredTypes; /// /// 活动信息 /// public class ActivityInfo { public readonly ItemActivity item; /// /// 活动ID /// public int id => item.id; /// /// /// public int type => item.type; /// /// 活动名称 /// public string name { get { return KLocalization.GetLocalString(item.nameId); } } /// /// 活动描述 /// public string description { get { return KLocalization.GetLocalString(item.descriptionId); } } /// /// 活动开始时间 /// public int startTimestamp { get { if (item.date != null && item.date.Length == 3) { if (item.date[0] == 1) return /*F.Utils.Time.ToUnixTime(System.DateTime.UtcNow.Date) +*/ item.date[1]; else return item.date[1]; } return 0; } } /// /// 活动结束时间 /// public int endTimestamp { get { if (item.date != null && item.date.Length == 3) { if (item.date[0] == 1) return /*F.Utils.Time.ToUnixTime(System.DateTime.UtcNow.Date) +*/ item.date[2]; else return item.date[2]; } return 0; } } /// /// 活动子列表 /// public readonly ActivitySubInfo[] subInfos; /// /// 奖励 /// public readonly Item.ItemInfo[] rewardInfos; ObscuredInt _curValue; /// /// 活动当前完成数量 不超过1000w /// public int curValue { get { return _curValue; } set { _curValue = value; } } /// /// 活动最大完成数量 /// public int maxValue => subInfos != null ? subInfos.Length : 0; ObscuredInt _curStatus; /// /// 活动状态:0.未完成;1.已完成;2.已领取 /// public int status { get { return _curStatus; } set { _curStatus = value; } } public ActivityInfo(ItemActivity item) { this.item = item; this.rewardInfos = Item.ItemInfo.FromArray(item.rewards); if (item.subs != null) { if (item.subs.Length == 2) { int subCount = item.subs[1] - item.subs[0] + 1; this.subInfos = new ActivitySubInfo[subCount]; for (int i = 0; i < subCount; i++) { var subItem = ItemProxy.Instance.GetStaticItem(item.subs[0] + i); subInfos[i] = new ActivitySubInfo(subItem) { }; } } else { this.subInfos = new ActivitySubInfo[item.subs.Length]; for (int i = 0; i < subInfos.Length; i++) { var subItem = ItemProxy.Instance.GetStaticItem(item.subs[i]); subInfos[i] = new ActivitySubInfo(subItem) { }; } } } } public void Reset() { curValue = 0; status = 0; if (subInfos != null) for (int i = 0; i < subInfos.Length; i++) { subInfos[i].Reset(); } } public int GetSaveData() { return GlobalUtils.CombineNumber824(this.status, this.curValue); } public void SetSaveData(int saveData) { GlobalUtils.SplitNumber824(saveData, out int bit8, out int bit24); _curStatus = bit8; _curValue = bit24; } } }