示例#1
0
    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);
    }
示例#2
0
    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);
    }
示例#3
0
 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;
             }
         }
     }
 }
示例#4
0
    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);
    }
示例#5
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);
    }
示例#6
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();
            }
        }
    }
示例#7
0
 public DailyMustDoInfo(DailyMustDoInfo _info)
 {
     serverData = _info.serverData;
     ID         = _info.ID;
 }