static OperationActivityItemDataModel AssignActivityItemData(MsgOperActivtyItem itemData, int type, OperationActivityItemDataModel itemModel = null) { if (null == itemModel) { itemModel = new OperationActivityItemDataModel(); } itemModel.ItemId = itemData.Id; itemModel.ParentId = type; itemModel.ItemName = itemData.Name; itemModel.Desc = itemData.Desc; itemModel.Icon = itemData.Icon; itemModel.Need = itemData.Need; itemModel.Count = Math.Min(itemData.Need, itemData.Count); itemModel.StartTime = DateTime.FromBinary(itemData.StarTime); itemModel.EndTime = DateTime.FromBinary(itemData.EndTime); itemModel.ConditionId = itemData.Condition; //item.FlagId = itemData.FlagId; itemModel.AquiredTimes = itemData.AquiredTimes; itemModel.AquiredTotalTimes = itemData.TotalTimes; itemModel.RemainAquireTimes = string.Format(GameUtils.GetDictionaryText(100001156), Math.Max(itemModel.AquiredTotalTimes - itemModel.AquiredTimes, 0)); itemModel.NeedItemId = itemData.NeedItemId; itemModel.NeedItemCount = itemData.NeedItemCount; itemModel.GuideActivityId = itemData.GuideActivityId; itemModel.GuideUI = itemData.GuideUI; #if UNITY_EDITOR itemModel.Desc += string.Format("[{0}|{1}]", itemModel.StartTime.ToString("yyyy/MM/dd/HH:mm"), itemModel.EndTime.ToString("yyyy/MM/dd/HH:mm")); #endif return(itemModel); }
private int SevenDayHappyListSort(OperationActivityItemDataModel a1, OperationActivityItemDataModel a2) { if (a1.CanGetReward.CompareTo(a2.CanGetReward) != 0) { return(-(a1.CanGetReward.CompareTo(a2.CanGetReward))); } else if (a1.ItemId.CompareTo(a2.ItemId) != 0) { return(-(a1.ItemId.CompareTo(a2.ItemId))); } else { return(1); } }
private void ClaimRewardOperationActivity(int id) { //判断是否是抽奖 if (OperationActivityDataModel.CurrentSelectPageIdx >= 0 && OperationActivityDataModel.CurrentSelectPageIdx < OperationActivityDataModel.ActivityTermList.Count) { var current = OperationActivityDataModel.ActivityTermList[OperationActivityDataModel.CurrentSelectPageIdx]; if ((OperationActivityUIType)current.UIType == OperationActivityUIType.Lottery) { if (isLotteryStart && isLotteryEnd == false) { ActivityLottery(id, current, 1); } else { if (isLotteryStart == false && isLotteryEnd) { ActivityLottery(id, current, 2); } } return; } if ((OperationActivityUIType)current.UIType == OperationActivityUIType.Guide) {//如果是活动导航首页 有跳转UI的直接跳转 if (GotoUIDirect(id)) { return; } } } OperationActivityItemDataModel item = null; foreach (var itemDataModel in mItemCache) { if (itemDataModel.ItemId == id) { item = itemDataModel; break; } } if (null == item) { return; } if (-1 != item.GuideActivityId) {//导航 for (int i = 0; i < OperationActivityDataModel.ActivityTermList.Count; i++) { if (OperationActivityDataModel.ActivityTermList[i].ActivityId == item.GuideActivityId) { ChooseActivityMenu(i); return; } } return; } //if(item.) if (!item.CanGetReward) { if (-1 != item.GuideUI) { GameUtils.GotoUiTab(item.GuideUI, 0); return; } return; } var type = item.ParentId; if (-1 != item.NeedItemId) { var itemRecord = Table.GetItemBase(item.NeedItemId); if (null == itemRecord) { return; } var haveItemCount = PlayerDataManager.Instance.GetItemTotalCount(item.NeedItemId).Count; if (haveItemCount < item.NeedItemCount) { var str = GameUtils.GetDictionaryText(270002); if (3 == item.NeedItemId) { str = GameUtils.GetDictionaryText(210102); GameUtils.GotoUiTab(79, 0); } EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(str)); return; } } NetManager.Instance.StartCoroutine(OperationActivityClaimRewardCoroutine(type, id)); }
private void OperationActivityDataInit(MsgOperActivty msg) { LastRequestTime = Game.Instance.ServerTime; var msgTerms = msg.Terms; msgTerms.Sort(SortCompare); foreach (var termModel in OperationActivityDataModel.OpenActivityTermList) { termModel.ActivityId = -1; } foreach (var termModel in OperationActivityDataModel.NormalActivityTermList) { termModel.ActivityId = -1; } mItemCache.Clear(); int i = 0; int q = 0; foreach (var msgTerm in msgTerms) { // if (i >= OperationActivityDataModel.ActivityTermList.Count) // { // break; // } if (-1 != msgTerm.ParentTypeId) { continue; } var termModel = 0 == msgTerm.ActivityType ? OperationActivityDataModel.OpenActivityTermList[i]:OperationActivityDataModel.NormalActivityTermList[q]; termModel.ActivityId = msgTerm.Id; termModel.Name = msgTerm.Name; termModel.BkgIconId = msgTerm.BkgIconId; termModel.SmallIcon = msgTerm.SmallIcon; termModel.Desc = msgTerm.Desc; termModel.EndTime = DateTime.FromBinary(msgTerm.EndTime); termModel.StartTime = DateTime.FromBinary(msgTerm.StarTime); termModel.ScoreTime = DateTime.FromBinary(msgTerm.ScoreTime); termModel.ModelPath = msgTerm.ModelPath; termModel.UIType = msgTerm.UIType; termModel.NeedShowNotice = msgTerm.RedDotLimit; if (termModel.StartTime == DateTime.MinValue || termModel.EndTime == DateTime.MaxValue) { termModel.TimeString = ""; } else { var str = GameUtils.GetDictionaryText(270251); termModel.TimeString = termModel.StartTime.ToString(str) + "-" + termModel.EndTime.ToString(str); } termModel.Type = msgTerm.Type; if ((OperationActivityType)termModel.Type == OperationActivityType.Guide) { termModel.UIType = (int)OperationActivityUIType.Guide; } else if ((OperationActivityType)termModel.Type == OperationActivityType.Recharge) { if (termModel.UIType != (int)OperationActivityUIType.Charge && termModel.UIType != (int)OperationActivityUIType.ShowModel) { termModel.UIType = (int)OperationActivityUIType.Charge; } } else if ((OperationActivityType)termModel.Type == OperationActivityType.Rank) { termModel.UIType = (int)OperationActivityUIType.Rank; termModel.Desc += string.Format("[{0}]", termModel.ScoreTime.Date.ToString("yyyy/MM/dd/HH:mm")); } else if ((OperationActivityType)termModel.Type == OperationActivityType.Lottery) { termModel.UIType = (int)OperationActivityUIType.Lottery; //termModel.Desc += string.Format("[{0}]", termModel.ScoreTime.ToString("yyyy/MM/dd/HH:mm")); } else { termModel.UIType = msgTerm.UIType; } var uitype = (OperationActivityUIType)termModel.UIType; var tempList = new ObservableCollection <OperationActivityItemDataModel>(); foreach (var itemData in msgTerm.Items) { var itemModel = new OperationActivityItemDataModel(); AssignActivityItemData(itemData, termModel.ActivityId, itemModel); ParseRewardItem(itemData.Rewards, itemModel.Rewards); if (Game.Instance.ServerTime < itemModel.StartTime || Game.Instance.ServerTime > itemModel.EndTime) { continue; } tempList.Add(itemModel); } if (OperationActivityUIType.Guide == uitype) { termModel.GuideData.ActivityItemList = tempList; foreach (var itemDataModel in termModel.GuideData.ActivityItemList) { mItemCache.Add(itemDataModel); } } else if (OperationActivityUIType.Normal == uitype) { termModel.NormalData.ActivityItemList = tempList; foreach (var itemDataModel in termModel.NormalData.ActivityItemList) { mItemCache.Add(itemDataModel); } } else if (OperationActivityUIType.Charge == uitype) { termModel.ChargeData.ActivityItemList = tempList; foreach (var itemDataModel in termModel.ChargeData.ActivityItemList) { mItemCache.Add(itemDataModel); } } else if (OperationActivityUIType.Table == uitype) { foreach (var tbItem in termModel.TableData.TableList) { tbItem.ActivityItemList.Clear(); } } else if (OperationActivityUIType.Rank == uitype) { termModel.RankData.ActivityItemList = tempList; foreach (var itemDataModel in termModel.RankData.ActivityItemList) { mItemCache.Add(itemDataModel); } } else if (OperationActivityUIType.Discount == uitype) { termModel.DiscountData.ActivityItemList = tempList; foreach (var itemDataModel in termModel.DiscountData.ActivityItemList) { mItemCache.Add(itemDataModel); } } else if (OperationActivityUIType.ShowModel == uitype) { termModel.ShowModelData.ActivityItemList = tempList; foreach (var itemDataModel in termModel.ShowModelData.ActivityItemList) { mItemCache.Add(itemDataModel); } termModel.ShowModelData.Position = Vector3.zero; if (msgTerm.Param.Count > 2) { // 设置模型坐标。默认是放大100倍的 termModel.ShowModelData.Position = new Vector3(msgTerm.Param[0] / 100.0f , msgTerm.Param[1] / 100.0f, msgTerm.Param[2] / 100.0f); } termModel.ShowModelData.Rotation = Quaternion.identity; if (msgTerm.Param.Count > 5) { // 设置模型旋转 默认是放大100倍的 var rotVector3 = new Vector3(msgTerm.Param[3] / 100.0f , msgTerm.Param[4] / 100.0f, msgTerm.Param[5] / 100.0f); termModel.ShowModelData.Rotation = Quaternion.Euler(rotVector3); } } else if (OperationActivityUIType.Lottery == uitype) { var lotteryModel = termModel.LotteryData; lotteryModel.CostList.Clear(); for (int ci = 2; ci < msgTerm.Param.Count; ci++) { lotteryModel.CostList.Add(msgTerm.Param[ci]); }//顺序不要条还 lotteryModel.Times = msgTerm.Param[0]; lotteryModel.ResetCost = msgTerm.Param[1]; lotteryModel.ActivityItemList = tempList; foreach (var itemDataModel in lotteryModel.ActivityItemList) { mItemCache.Add(itemDataModel); } for (int k = 0; k < lotteryModel.Rewards.Count; k++) { var rewardItemModel = lotteryModel.Rewards[k]; if (k < lotteryModel.ActivityItemList.Count) { var reward = lotteryModel.ActivityItemList[k].Rewards[0]; rewardItemModel.ItemId = reward.ItemId; rewardItemModel.Count = reward.Count; } else { rewardItemModel.ItemId = -1; } } } else if (OperationActivityUIType.Holiday == uitype) { termModel.HolidayData.ActivityItemList = tempList; foreach (var itemDataModel in termModel.HolidayData.ActivityItemList) { mItemCache.Add(itemDataModel); } } else { termModel.NormalData.ActivityItemList = tempList; foreach (var itemDataModel in termModel.NormalData.ActivityItemList) { mItemCache.Add(itemDataModel); } Logger.Error("uitype={0}", uitype); } if (0 == msgTerm.ActivityType) { i++; } else { q++; } } foreach (var msgTermItem in msgTerms) { if (-1 == msgTermItem.ParentTypeId) { continue; } OperationActivityTermDataModel parent = null; foreach (var item in OperationActivityDataModel.OpenActivityTermList) { if (msgTermItem.ParentTypeId == item.ActivityId) { parent = item; break; } } foreach (var item in OperationActivityDataModel.NormalActivityTermList) { if (msgTermItem.ParentTypeId == item.ActivityId) { parent = item; break; } } if (null == parent) { Logger.Error("null == parent"); continue; } OperationActivityTypeNormalDataModel termModel1 = null; for (int j = 0; j < parent.TableData.TableList.Count; j++) { if (0 == parent.TableData.TableList[j].ActivityItemList.Count) { termModel1 = parent.TableData.TableList[j]; break; } } if (null == termModel1) { Logger.Error("null == normalDataModel"); continue; } termModel1.ActivityId = msgTermItem.Id; termModel1.Name = msgTermItem.Name; termModel1.BkgIconId = msgTermItem.BkgIconId; termModel1.AllItemActive = false; var tempList1 = new ObservableCollection <OperationActivityItemDataModel>(); foreach (var itemData1 in msgTermItem.Items) { var itemModel1 = new OperationActivityItemDataModel(); AssignActivityItemData(itemData1, termModel1.ActivityId, itemModel1); ParseRewardItem(itemData1.Rewards, itemModel1.Rewards); if (Game.Instance.ServerTime < itemModel1.StartTime || Game.Instance.ServerTime > itemModel1.EndTime) { itemModel1.InTime = false; termModel1.AllItemActive = true; } else { itemModel1.InTime = true; } tempList1.Add(itemModel1); } termModel1.ActivityItemList = tempList1; foreach (var temp in termModel1.ActivityItemList) { mItemCache.Add(temp); } } OperationActivityDataModel.OnPropertyChanged("ActivityCount"); //OperationActivityDataModel1.OnPropertyChanged("ActivityCount"); //OperationActivityDataModel2.OnPropertyChanged("ActivityCount"); CheckAllCondition(); }
private void ClaimRewardOperationActivity(int id) { //判断是否是抽奖 if (OperationActivityDataModel.CurrentSelectPageIdx >= 0 && OperationActivityDataModel.CurrentSelectPageIdx < OperationActivityDataModel.ActivityTermList.Count) { var current = OperationActivityDataModel.ActivityTermList[OperationActivityDataModel.CurrentSelectPageIdx]; if ((OperationActivityUIType)current.UIType == OperationActivityUIType.Lottery) { int opt = id; //0重置,1抽奖 int need = 0; var lotterModel = current.LotteryData; if (0 == opt) { if (lotterModel.Times < lotterModel.TotalTimes) { return; } need = lotterModel.ResetCost; } else { if (lotterModel.Times >= lotterModel.TotalTimes) { return; } need = lotterModel.CurrentCost; if (null != mCoroutine) { Logger.Error("ClaimRewardOperationActivity not finish"); return; } } if (PlayerDataManager.Instance.GetRes((int)eResourcesType.DiamondRes) < need) { EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(GameUtils.GetDictionaryText(210102))); GameUtils.GotoUiTab(79, 0); } else { if (null != GameLogic.Instance) { float delay = 0 == opt?0:1f; mCoroutine = GameLogic.Instance.StartCoroutine(OperationActivityClaimRewardCoroutine(current.ActivityId, id, delay)); if (0 != opt) { var e = new OperationActivityDrawLotteryEvent(-1); EventDispatcher.Instance.DispatchEvent(e); } } } return; } } OperationActivityItemDataModel item = null; foreach (var itemDataModel in mItemCache) { if (itemDataModel.ItemId == id) { item = itemDataModel; break; } } if (null == item) { return; } if (-1 != item.GuideActivityId) { //导航 for (int i = 0; i < OperationActivityDataModel.ActivityTermList.Count; i++) { if (OperationActivityDataModel.ActivityTermList[i].ActivityId == item.GuideActivityId) { ChooseActivityMenu(i); return; } } return; } if (!item.CanGetReward) { if (-1 != item.GuideUI) { GameUtils.GotoUiTab(item.GuideUI, 0); return; } return; } var type = item.ParentId; if (-1 != item.NeedItemId) { var itemRecord = Table.GetItemBase(item.NeedItemId); if (null == itemRecord) { return; } var haveItemCount = PlayerDataManager.Instance.GetItemTotalCount(item.NeedItemId).Count; if (haveItemCount < item.NeedItemCount) { var str = GameUtils.GetDictionaryText(270002); if (3 == item.NeedItemId) { str = GameUtils.GetDictionaryText(210102); GameUtils.GotoUiTab(79, 0); } EventDispatcher.Instance.DispatchEvent(new ShowUIHintBoard(str)); return; } } NetManager.Instance.StartCoroutine(OperationActivityClaimRewardCoroutine(type, id)); }