Пример #1
0
    public void SetAchievementTip(AchievementData _data)
    {
        AchievementRef achieveRef = ConfigMng.Instance.GetAchievementRef(_data.AchieveId);

        if (achieveRef != null && nameLabel != null)
        {
            nameLabel.text = achieveRef.levelName;
        }
        UIEventListener.Get(this.gameObject).onClick = delegate
        {
            DestroyImmediate(this.gameObject);
            NewRankingWnd rankWnd = GameCenter.uIMng.GetGui <NewRankingWnd>();
            if (rankWnd == null)
            {
                GameCenter.uIMng.SwitchToSubUI(SubGUIType.ACHIEVEMENT);
            }
        };
    }
Пример #2
0
    /// <summary>
    /// 获得成就达到的奖励领取状态
    /// </summary>
    protected void S2C_AchievementRewardState(Pt _msg)
    {
        pt_update_achievement_reward_d767 msg = _msg as pt_update_achievement_reward_d767;

        if (msg != null)
        {
            isGetAchieve = true;
            for (int i = 0; i < msg.achievement_reward.Count; i++)
            {
                achievement_reward data = msg.achievement_reward[i];
                if (achievementTogRed.ContainsKey(data.id) && data.state == 1)
                {
                    achievementTogRed.Remove(data.id);
                }
                AchievementRef achievementRef = ConfigMng.Instance.GetAchievementRef(data.id);
                currentAchievementNum = data.num;
                if (curhaveAchieve.ContainsKey(msg.achievement_reward[i].id))
                {
                    AchievementData info = curhaveAchieve[data.id] as AchievementData;
                    if (info != null)
                    {
                        info.Update(data);
                    }
                    //SetRedPoint();
                }
                else if (data.new_or_old == 1)//新达成成就
                {
                    AchievementData info = new AchievementData(data);
                    curhaveAchieve[info.AchieveId] = info;
                    if (OnGetNewAchievement != null)
                    {
                        OnGetNewAchievement(info);
                    }
                    SetRedPoint();
                }
                else if (data.state == 1)//退出游戏重进已领取的成就
                {
                    AchievementData info = new AchievementData(data);
                    curhaveAchieve[info.AchieveId] = info;
                }
                else if (data.id >= 41 && data.id <= 55)//退出游戏重进,已达成的成就,但是没有领取
                {
                    if (data.num >= 1)
                    {
                        AchievementData info = new AchievementData(data);
                        curhaveAchieve[info.AchieveId] = info;
                    }
                }
                else if (achievementRef != null && achievementRef.judgeNum2 != 0)
                {
                    if (data.num >= achievementRef.judgeNum2)
                    {
                        AchievementData info = new AchievementData(data);
                        curhaveAchieve[info.AchieveId] = info;
                    }
                }
                else if (achievementRef != null && data.num >= achievementRef.judgeNum1)
                {
                    AchievementData info = new AchievementData(data);
                    curhaveAchieve[info.AchieveId] = info;
                }
            }
        }
        if (OnAchievementUpdate != null)
        {
            OnAchievementUpdate();
        }
    }
 private void UnlockAchievementInAchievementMenu()
 {
     AchievementRef.GetComponent <Image>().sprite = AchievementManagerUI.Instance.UnlockedAchievementSprite;
     AchievementRef.transform.SetSiblingIndex(0);
 }
Пример #4
0
    public void SetAchievementItemData(AchievementRef _data, int _index)
    {
        if (getBtn != null)
        {
            UIEventListener.Get(getBtn.gameObject).onClick = delegate { GameCenter.achievementMng.C2S_ReqGetReward(_data.id); }
        }
        ;
        if (nameTitle != null)
        {
            nameTitle.text = _data.levelName;
        }
        if (chenHaoName != null && chenHao != null)
        {
            if (_data.titleName != "0")
            {
                chenHao.gameObject.SetActive(true);
                chenHaoName.gameObject.SetActive(true);
                chenHaoName.text = _data.titleName;
            }
            else
            {
                chenHao.gameObject.SetActive(false);
                chenHaoName.gameObject.SetActive(false);
            }
        }
        string[] str = null;
        //已拥有的成就数量
        achievementNum = 0;
        switch (_index)
        {
        case (int)AchievementType.COIN:    //铜钱
            if (GameCenter.achievementMng.currentAchievementNum >= _data.judgeNum1)
            {
                isReach = true;
                str     = new string[1] {
                    _data.judgeNum1.ToString()
                };
            }
            else
            {
                isReach = false;
                str     = new string[1] {
                    "[ff0000]" + GameCenter.achievementMng.currentAchievementNum + "[-]"
                };
            }
            break;

        case (int)AchievementType.LEV:    //道行
            if (_data.judgeNum2 == 0)
            {
                if (GameCenter.mainPlayerMng.MainPlayerInfo.CurLevel >= _data.judgeNum1)
                {
                    isReach = true;
                    str     = new string[1] {
                        ConfigMng.Instance.GetLevelDes(_data.judgeNum1)
                    };
                }
                else
                {
                    isReach = false;
                    str     = new string[1] {
                        "[ff0000]" + ConfigMng.Instance.GetLevelDes(GameCenter.mainPlayerMng.MainPlayerInfo.CurLevel) + "[-]"
                    };
                }
            }
            break;

        case (int)AchievementType.FIGHT:    //修为
            if (_data.judgeNum2 == 0)
            {
                if (GameCenter.mainPlayerMng.MainPlayerInfo.FightValue >= _data.judgeNum1)
                {
                    isReach = true;
                    str     = new string[1] {
                        _data.judgeNum1.ToString()
                    };
                }
                else
                {
                    isReach = false;
                    str     = new string[1] {
                        "[ff0000]" + GameCenter.mainPlayerMng.MainPlayerInfo.FightValue + "[-]"
                    };
                }
                if (dic.ContainsKey(_data.id) || GameCenter.achievementMng.achievementTogRed.ContainsKey(_data.id))
                {
                    isReach = true;
                    str     = new string[1] {
                        _data.judgeNum1.ToString()
                    };
                }
            }
            break;

        case (int)AchievementType.SKILLLEV:    //术法
            List <SkillInfo> list = GameCenter.skillMng.GetOwnSkill();
            for (int i = 0; i < list.Count; i++)
            {
                SkillInfo info = list[i];
                if (info.SkillLv >= _data.judgeNum1)
                {
                    achievementNum++;
                }
            }
            if (achievementNum >= _data.judgeNum2)
            {
                isReach = true;
                str     = new string[1] {
                    _data.judgeNum2.ToString()
                };
            }
            else
            {
                isReach = false;
                str     = new string[1] {
                    "[ff0000]" + achievementNum + "[-]"
                };
            }
            break;

        case (int)AchievementType.STRENTHEQULEV:                                                //强化
            foreach (EquipmentInfo info in GameCenter.inventoryMng.GetPlayerEquipList().Values) //穿在身上的装备
            {
                if (info.UpgradeLv >= _data.judgeNum1)
                {
                    achievementNum++;
                }
            }
            if (achievementNum >= _data.judgeNum2)
            {
                isReach = true;
                str     = new string[1] {
                    _data.judgeNum2.ToString()
                };
            }
            else
            {
                isReach = false;
                str     = new string[1] {
                    "[ff0000]" + achievementNum + "[-]"
                };
            }
            if (dic.ContainsKey(_data.id) || GameCenter.achievementMng.achievementTogRed.ContainsKey(_data.id))
            {
                isReach = true;
                str     = new string[1] {
                    _data.judgeNum2.ToString()
                };
            }
            break;

        case (int)AchievementType.EQULEV:    //淬炼
            foreach (EquipmentInfo info in GameCenter.inventoryMng.GetPlayerEquipList().Values)
            {
                if (info.LV >= _data.judgeNum1)
                {
                    achievementNum++;
                }
            }
            if (achievementNum >= _data.judgeNum2)
            {
                isReach = true;
                str     = new string[1] {
                    _data.judgeNum2.ToString()
                };
            }
            else
            {
                isReach = false;
                str     = new string[1] {
                    "[ff0000]" + achievementNum + "[-]"
                };
            }
            if (dic.ContainsKey(_data.id) || GameCenter.achievementMng.achievementTogRed.ContainsKey(_data.id))
            {
                isReach = true;
                str     = new string[1] {
                    _data.judgeNum2.ToString()
                };
            }
            break;

        case (int)AchievementType.GEM:    //宝石
            achievementNum = GameCenter.inventoryMng.GetPlayerInlayGemNumByLv(_data.judgeNum1);
            if (achievementNum >= _data.judgeNum2)
            {
                isReach = true;
                str     = new string[1] {
                    achievementNum.ToString()
                };
            }
            else
            {
                isReach = false;
                str     = new string[1] {
                    "[ff0000]" + achievementNum + "[-]"
                };
            }
            if (dic.ContainsKey(_data.id) || GameCenter.achievementMng.achievementTogRed.ContainsKey(_data.id))
            {
                isReach = true;
                str     = new string[1] {
                    achievementNum.ToString()
                };
            }
            break;

        case (int)AchievementType.SOPHISTICATION:    //洗练
            achievementNum = GameCenter.inventoryMng.GetWashAttrNumByQuality();
            if (achievementNum >= _data.judgeNum1)
            {
                isReach = true;
                str     = new string[1] {
                    _data.judgeNum1.ToString()
                };
            }
            else
            {
                isReach = false;
                str     = new string[1] {
                    "[ff0000]" + achievementNum + "[-]"
                };
            }
            if (dic.ContainsKey(_data.id) || GameCenter.achievementMng.achievementTogRed.ContainsKey(_data.id))
            {
                isReach = true;
                str     = new string[1] {
                    _data.judgeNum1.ToString()
                };
            }
            break;

        case (int)AchievementType.PETGRROW:    //宠物成长
            achievementNum = GameCenter.mercenaryMng.GetPetGrowUp(PetPropertyType.GROWUP, _data.judgeNum1);
            if (achievementNum >= 1)
            {
                isReach = true;
                str     = new string[1] {
                    "1"
                };
            }
            else
            {
                isReach = false;
                str     = new string[1] {
                    "[ff0000]" + achievementNum + "[-]"
                };
            }
            if (dic.ContainsKey(_data.id) || GameCenter.achievementMng.achievementTogRed.ContainsKey(_data.id))
            {
                isReach = true;
                str     = new string[1] {
                    "1"
                };
            }
            break;

        case (int)AchievementType.PETSPIRITUAL:    //宠物灵修
            if (dic.ContainsKey(_data.id))
            {
                isReach = true;
                str     = new string[1] {
                    "1"
                };
            }
            else
            {
                isReach = false;
                str     = new string[1] {
                    "[ff0000]0[-]"
                };
            }
            //if (dic.ContainsKey(_data.id) || GameCenter.achievementMng.achievementTogRed.ContainsKey(_data.id))
            //{
            //    isReach = true;
            //    str = new string[1] { "1" };
            //}
            break;

        case (int)AchievementType.APTITUDE:    //宠物资质
            achievementNum = GameCenter.mercenaryMng.GetPetGrowUp(PetPropertyType.APTITUDE, _data.judgeNum1);
            if (achievementNum >= 1)
            {
                isReach = true;
                str     = new string[1] {
                    "1"
                };
            }
            else
            {
                isReach = false;
                str     = new string[1] {
                    "[ff0000]" + achievementNum + "[-]"
                };
            }
            if (dic.ContainsKey(_data.id) || GameCenter.achievementMng.achievementTogRed.ContainsKey(_data.id))
            {
                isReach = true;
                str     = new string[1] {
                    "1"
                };
            }
            break;

        case (int)AchievementType.MOUNT:    //坐骑
            achievementNum = GameCenter.newMountMng.CurLev > 0 ? GameCenter.newMountMng.CurLev : 0;
            RidePropertyRef mountRef = ConfigMng.Instance.GetMountPropertyRef(achievementNum);
            if (achievementNum >= _data.judgeNum1)
            {
                isReach = true;
                RidePropertyRef mountAcRef = ConfigMng.Instance.GetMountPropertyRef(_data.judgeNum1);
                if (mountAcRef != null)
                {
                    str = new string[1] {
                        mountAcRef.name
                    }
                }
                ;
            }
            else
            {
                isReach = false;
                if (mountRef != null)
                {
                    str = new string[1] {
                        "[ff0000]" + mountRef.name + "[-]"
                    }
                }
                ;
                else
                {
                    str = new string[1] {
                        "[ff0000]" + achievementNum + "[-]" + "阶" + "[ff0000]" + achievementNum + "[-]" + "星"
                    }
                };
            }
            break;

        case (int)AchievementType.COPY:    //副本
            if (GameCenter.achievementMng.currentAchievementNum >= _data.judgeNum1)
            {
                isReach = true;
                str     = new string[1] {
                    _data.judgeNum1.ToString()
                };
            }
            else
            {
                isReach = false;
                str     = new string[1] {
                    "[ff0000]" + GameCenter.achievementMng.currentAchievementNum + "[-]"
                };
            }
            break;

        case (int)AchievementType.LABOUR:    //仙盟
            if (GameCenter.achievementMng.currentAchievementNum >= _data.judgeNum1)
            {
                isReach = true;
                str     = new string[1] {
                    _data.judgeNum1.ToString()
                };
            }
            else
            {
                isReach = false;
                str     = new string[1] {
                    "[ff0000]" + GameCenter.achievementMng.currentAchievementNum + "[-]"
                };
            }
            break;

        case (int)AchievementType.FASHION:    //时装
            if (GameCenter.achievementMng.currentAchievementNum >= _data.judgeNum1)
            {
                isReach = true;
                str     = new string[1] {
                    _data.judgeNum1.ToString()
                };
            }
            else
            {
                isReach = false;
                str     = new string[1] {
                    "[ff0000]" + GameCenter.achievementMng.currentAchievementNum + "[-]"
                };
            }
            break;

        default:
            isReach = false;
            break;
        }
        if (dic.ContainsKey(_data.id))
        {
            if ((dic[_data.id] as AchievementData).RewardState)
            {
                isGetReward = true;
            }
            else
            {
                isGetReward = false;
            }
        }
        else
        {
            isGetReward = false;
        }

        if (achievementLabel != null)
        {
            achievementLabel.text = UIUtil.Str2Str(_data.des, str);
        }
        if (isReach && !isGetReward)//达到领取状态
        {
            if (notComplete != null)
            {
                notComplete.gameObject.SetActive(false);
            }
            if (getBtn != null)
            {
                getBtn.gameObject.SetActive(true);
            }
            if (complete != null)
            {
                complete.gameObject.SetActive(false);
            }
            if (completeSp != null)
            {
                completeSp.gameObject.SetActive(true);
            }
        }
        else if (!isReach && !isGetReward)
        {
            if (notComplete != null)
            {
                notComplete.gameObject.SetActive(true);
            }
            if (getBtn != null)
            {
                getBtn.gameObject.SetActive(false);
            }
            if (complete != null)
            {
                complete.gameObject.SetActive(false);
            }
            if (completeSp != null)
            {
                completeSp.gameObject.SetActive(false);
            }
        }
        if (isGetReward)//已领奖
        {
            if (notComplete != null)
            {
                notComplete.gameObject.SetActive(false);
            }
            if (getBtn != null)
            {
                getBtn.gameObject.SetActive(false);
            }
            if (complete != null)
            {
                complete.gameObject.SetActive(true);
            }
            if (completeSp != null)
            {
                completeSp.gameObject.SetActive(true);
            }
        }
    }

    #endregion
}