public List <DailyMustDoInfo> GetDailyMustDoItemByType(MustDoType _type) { Dictionary <int, DailyMustDoInfo> livelyDic = new Dictionary <int, DailyMustDoInfo>(); FDictionary livelyRefTable = ConfigMng.Instance.GetLivelyRefTable(); foreach (var item in livelyRefTable.Values) { LivelyRef livelyRef = item as LivelyRef; if (livelyRef != null && livelyRef.type == (int)_type) { DailyMustDoInfo doInfo = null; if (CurLivelyDic.ContainsKey(livelyRef.id)) { doInfo = new DailyMustDoInfo(CurLivelyDic[livelyRef.id]); //有后台数据 } else { doInfo = new DailyMustDoInfo(livelyRef.id); //没有后台数据 } if (livelyDic.ContainsKey(doInfo.Sort)) { livelyDic[doInfo.Sort].UpdateBySort(doInfo); //同类型的只显示一个 } else { livelyDic[doInfo.Sort] = doInfo; } } } List <DailyMustDoInfo> livelyList = new List <DailyMustDoInfo>(livelyDic.Values); livelyList.Sort(SortMustDoInfo); return(livelyList); }
protected void CountLivelyAmount() { List <DailyMustDoInfo> livelyList = new List <DailyMustDoInfo>(CurLivelyDic.Values); CurLivelyCount = 0; for (int i = 0, max = livelyList.Count; i < max; i++) { DailyMustDoInfo info = livelyList[i]; if (info.MustDoState == DailyMustDoInfo.RewardState.CANGET || info.MustDoState == DailyMustDoInfo.RewardState.HAVEGOT) { CurLivelyCount += livelyList[i].CurLivelyCount; } } //Debug.Log("CurLivelyCount:" + CurLivelyCount); }
public void UpdateBySort(DailyMustDoInfo doInfo) { if (doInfo.Sort == Sort) { if ((this.MustDoState == RewardState.CANGET && doInfo.MustDoState == RewardState.CANGET) || (this.MustDoState == RewardState.CANTGET && doInfo.MustDoState == RewardState.CANTGET)) { if (TotalTimes > doInfo.TotalTimes) //都是可领取or不可领取状态,显示完成需求小的 { serverData = doInfo.serverData; ID = doInfo.ID; refData = null; } } else if (this.MustDoState == RewardState.HAVEGOT && doInfo.MustDoState == RewardState.HAVEGOT) { if (TotalTimes < doInfo.TotalTimes) //都是已领取状态,显示完成需求大的 { serverData = doInfo.serverData; ID = doInfo.ID; refData = null; } } else if (doInfo.MustDoState == RewardState.CANGET) { //哪个能领取显示哪个 serverData = doInfo.serverData; ID = doInfo.ID; refData = null; } else if (this.MustDoState == RewardState.CANGET) { //不变 } else { if (TotalTimes < doInfo.TotalTimes) //显示完成需求大的 { serverData = doInfo.serverData; ID = doInfo.ID; refData = null; } } } }
protected int SortMustDoInfo(DailyMustDoInfo doInfo1, DailyMustDoInfo doInfo2) { int state1 = (int)doInfo1.MustDoState; int state2 = (int)doInfo2.MustDoState; if (state1 < state2) //未完成的排前面 { return(-1); } if (state1 > state2) { return(1); } if (doInfo1.ID > doInfo2.ID) //状态相同按ID排序 { return(1); } if (doInfo1.ID < doInfo2.ID) { return(-1); } return(0); }
public void SetData(DailyMustDoInfo _data) { CurMustDoInfo = _data; if (labName != null) { labName.text = "[u]" + _data.Name; } if (labDes != null) { labDes.text = _data.Des; } //if(labBtnReward != null)labBtnReward.text = _data.ButtonName; if (icon != null) { icon.spriteName = _data.IconName; icon.MakePixelPerfect(); } //if(itemReward != null)itemReward.FillInfo(_data.RewardItem); if (labFinishTimes != null) { labFinishTimes.enabled = (_data.TotalTimes != 0); labFinishTimes.text = _data.FinishTimes.ToString() + "/" + _data.TotalTimes.ToString(); } string str = ConfigMng.Instance.GetUItext(137); if (addLivelyNum != null) { addLivelyNum.text = str + "+" + _data.StaticLivelyCount.ToString(); addLivelyNum.enabled = !(_data.MustDoState == DailyMustDoInfo.RewardState.CANGET); } //if(btnReward != null)btnReward.isEnabled = (_data.MustDoState == DailyMustDoInfo.RewardState.CANGET); if (blackMask != null) { blackMask.SetActive(_data.MustDoState == DailyMustDoInfo.RewardState.CANGET); } //if(btnGo != null)btnGo.gameObject.SetActive(_data.UISort != 0); }
protected void S2C_GotMustDoData(Pt _info) { pt_liveness_state_d692 pt = _info as pt_liveness_state_d692; if (pt != null) { //Debug.Log("S2C_GotMustDoData:"+pt.liveness_list.Count); for (int i = 0, max = pt.liveness_list.Count; i < max; i++) { //Debug.Log("liveness:"+pt.liveness_list[i].id+",state:"+(DailyMustDoInfo.RewardState)pt.liveness_list[i].reward_state); DailyMustDoInfo doInfo = new DailyMustDoInfo(pt.liveness_list[i]); CurLivelyDic[pt.liveness_list[i].id] = doInfo; } if (OnDailyMustDoUpdateEvent != null) { OnDailyMustDoUpdateEvent(); } CountLivelyAmount(); if (OnDailyMustDoStateUpdateEvent != null)//计算完活跃度之后也可能需刷新活跃度奖励显示 { OnDailyMustDoStateUpdateEvent(); } } }
public DailyMustDoInfo(DailyMustDoInfo _info) { serverData = _info.serverData; ID = _info.ID; }