Exemple #1
0
    public void Init(LocalSkillData skillData, List <SkillData> myskillDatas)
    {
        SkillData newSkill = new SkillData(skillData.id, skillData.name, skillData.des,
                                           skillData.atk, skillData.cd, skillData.icon, skillData.price, skillData.mana);

        //注册点击事件
        LearnSkillButton.onClick.RemoveAllListeners();
        LearnSkillButton.onClick.AddListener(() => {
            LearnSkill(newSkill, skillData.price);
        });

        //图集获取数据
        SpriteAtlas sa = ResManager.Instance.Load <SpriteAtlas>("UI/Skill/SkillAtlas");

        sillImage.sprite     = sa.GetSprite(skillData.icon);
        skillNameText.text   = skillData.name;
        SkillAtkText.text    = skillData.atk.ToString();
        SkilManaText.text    = skillData.mana.ToString();
        SkillCdText.text     = skillData.cd.ToString();
        SkillDesText.text    = skillData.des;
        DiamondCostText.text = skillData.price.ToString();

        //控制是否显示学习技能
        //如果拥有该技能那么不弹
        //如果没有该技能就谈

        for (int i = 0; i < myskillDatas.Count; i++)
        {
            if (skillData.id == myskillDatas[i].id)
            {
                isHave = true;
                break;
            }
            if (i == myskillDatas.Count - 1)
            {
                isHave = false;
            }
        }
        if (isHave == true)
        {
            LearnSkillButton.gameObject.SetActive(false);
        }
        else
        {
            LearnSkillButton.gameObject.SetActive(true);
        }
    }
Exemple #2
0
    /// <summary>
    /// 返回当前玩家拥有的技能列表
    /// </summary>
    /// <returns></returns>
    public List <SkillData> GetSkillList()
    {
        //找当当前的用户名
        if (userName == "")
        {
            userName = UserModel.Instance.GetMyUserId();
        }
        if (skillDataList.Count == 0)
        {
            //如果没有初始数据,就创建一个用户初始数据
            if (!File.Exists(Application.persistentDataPath + "/SkillData.Json"))
            {
                //创建初始数据,合并服务器数据和本地数据
                //创建服务器数据并存下来
                ServerSkillData serverSkillData = new ServerSkillData(userName, 2011);
                playerDatas.Add(serverSkillData);

                //根据服务器数据到本地获取数据
                LocalSkillData localSkillData = LocalSkillDataMgr.Instance.GetSkillDataById(serverSkillData.id);
                //合并数据
                SkillData skillData = new SkillData(serverSkillData.id, localSkillData.name, localSkillData.des, localSkillData.atk,
                                                    localSkillData.cd, localSkillData.icon, localSkillData.price, localSkillData.mana);
                //存到玩家当前数据
                skillDataList.Add(skillData);

                ServerSkillData serverSkillData2 = new ServerSkillData(userName, 2009);
                playerDatas.Add(serverSkillData2);
                LocalSkillData localSkillData2 = LocalSkillDataMgr.Instance.GetSkillDataById(serverSkillData2.id);
                SkillData      skillData2      = new SkillData(serverSkillData2.id, localSkillData2.name, localSkillData2.des, localSkillData2.atk,
                                                               localSkillData2.cd, localSkillData2.icon, localSkillData2.price, localSkillData2.mana);
                skillDataList.Add(skillData2);

                //读入json
                SaveData();
            }
            else
            {
                string json = File.ReadAllText(Application.persistentDataPath + "/SkillData.Json");
                //读Json
                playerDatas = JsonMapper.ToObject <List <ServerSkillData> >(json);
                //取出表里面当前玩家的数据,存在当前玩家的服务器数据中
                for (int i = 0; i < playerDatas.Count; i++)
                {
                    if (playerDatas[i].username == userName)
                    {
                        //serverSkillData.Add(playerDatas[i]);
                        LocalSkillData localSkillData = LocalSkillDataMgr.Instance.GetSkillDataById(playerDatas[i].id);
                        SkillData      skillData2     = new SkillData(localSkillData.id, localSkillData.name, localSkillData.des, localSkillData.atk,
                                                                      localSkillData.cd, localSkillData.icon, localSkillData.price, localSkillData.mana);
                        //服务器数据加上本地数据
                        skillDataList.Add(skillData2);
                    }
                }
            }
            return(skillDataList);
        }
        else
        {
            return(skillDataList);
        }
    }