Пример #1
0
        /// <summary>
        /// 设置全部的技能信息
        /// </summary>
        private void SetAllSkillInfo()
        {
            InitSkillObjs();
            bool active = currentUIToggel == zdSkill;

            if (active)
            {
                NGUITools.FindChild(bdSkill.gameObject, "tips").SetActive(Singleton <SkillMode> .Instance.IfShowTips(false));
                NGUITools.FindChild(zdSkill.gameObject, "tips").SetActive(false);
            }
            else
            {
                NGUITools.FindChild(zdSkill.gameObject, "tips").SetActive(Singleton <SkillMode> .Instance.IfShowTips(true));
                NGUITools.FindChild(bdSkill.gameObject, "tips").SetActive(false);
            }

            List <SysSkillBaseVo> skills = Singleton <SkillMode> .Instance.CurrentSkills(active);

            for (int i = 0; i < skills.Count; i++)
            {
                SysSkillBaseVo skill = skills[i];
                if (skills[i] != null)
                {
                    GameObject skillObj = skillList[i];
                    skillObj.name = skill.id.ToString();
                    SkillState state = SkillViewLogic.GetSkillState(skill);
                    NGUITools.FindInChild <UISprite>(skillObj, "icon").spriteName = skill.icon.ToString();
                    if (state == SkillState.Learn) //学习状态-置灰
                    {
                        UIUtils.ChangeGrayShader(NGUITools.FindInChild <UISprite>(skillObj, "icon"), 23);
                    }
                    else
                    {
                        NGUITools.FindChild(skillObj, "lvl").SetActive(true);
                        NGUITools.FindInChild <UILabel>(skillObj, "lvl").text = "Lv." + skill.skill_lvl;
                        UIUtils.ChangeNormalShader(NGUITools.FindInChild <UISprite>(skillObj, "icon"), 22);
                    }
                    if (state != SkillState.Max)
                    {
                        SysSkillBaseVo nextSkill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>((uint)skill.next);
                        if (SkillViewLogic.IsConditionEnough(nextSkill))
                        {
                            NGUITools.FindChild(skillObj, "tips").SetActive(true);
                        }
                    }
                    if (currentSkill != null && currentSkill.position == skills[i].position && currentSkill.group == skills[i].group)
                    {
                        OnSkillClick(skillObj);
                    }
                }
            }
            if (currentSkill == null)
            {
                OnSkillClick(skillList[0]);
            }
            SetSkillsPosInfo();
            SetGuideButton();
            CheckGuide();
        }
Пример #2
0
        //技能位置点击
        private void OnSkillPosClick(GameObject obj)
        {
            int  pos      = int.Parse(obj.name);
            uint position = Singleton <SkillMode> .Instance.SkillsPos[pos - 1];

            if (currentSkill != null && currentSkill.position != position)
            {
                SkillState state = SkillViewLogic.GetSkillState(currentSkill);
                if (currentUIToggel == bdSkill)
                {
                    MessageManager.Show("被动技能不可设置到技能栏!");
                }
                else if (state == SkillState.Learn)
                {
                    MessageManager.Show("该技能尚未学习!");
                }
                else
                {
                    uint[] skillPos    = new uint[5];
                    uint[] oldSkillPos = Singleton <SkillMode> .Instance.SkillsPos;
                    for (int i = 0; i < oldSkillPos.Count(); i++)
                    {
                        if (oldSkillPos[i] == currentSkill.position)
                        {
                            skillPos[i] = 0;
                        }
                        else
                        {
                            skillPos[i] = oldSkillPos[i];
                        }
                    }
                    skillPos[pos - 1] = (uint)currentSkill.position;
                    Singleton <SkillControl> .Instance.SetSkillPosValue(skillPos);
                }
            }
        }
Пример #3
0
        private void SetSkillInfo(SysSkillBaseVo skill)
        {
            NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/skillname").text   = skill.name;
            NGUITools.FindInChild <UISprite>(gameObject, "skillinfo/icon").spriteName = skill.icon.ToString();

            SkillState state = SkillViewLogic.GetSkillState(skill);

            NGUITools.FindChild(gameObject, "skillinfo/1").SetActive(true);
            if (state == SkillState.Max) //满级
            {
                NGUITools.FindChild(gameObject, "skillinfo/2").SetActive(false);
                UpgradeButton.SetActive(true);

                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/lvl").text  = "当前等级:" + skill.skill_lvl + " (满级)";
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/lvl").color = ColorConst.FONT_YELLOW;
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/time").text = "冷却时间:" + skill.cd / 1000 + "s";
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/cost").text = "魔法消耗:" + skill.need_value;
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/des").text  = "技能说明:" + skill.desc;
            }
            else if (state == SkillState.Learn) //学习
            {
                skill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>((uint)skill.next);
                NGUITools.FindChild(gameObject, "skillinfo/2").SetActive(false);
                UpgradeButton.SetActive(true);
                UpgradeButton.FindInChild <UILabel>("needvalue").text = skill.point.ToString();
                UpgradeButton.FindInChild <UILabel>("label").text     = "学  习";
                UpgradeButton.FindInChild <UILabel>("leftvalue").text = Singleton <SkillMode> .Instance.LeftPoint().ToString();

                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/lvl").text  = "当前等级:" + skill.skill_lvl + " (未学习)";
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/lvl").color = ColorConst.FONT_WHITE;
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/time").text = "冷却时间:" + (float)skill.cd / 1000 + "s";
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/cost").text = "魔法消耗:" + skill.need_value;
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/des").text  = "技能说明:" + skill.desc;

                if (skill.point > Singleton <SkillMode> .Instance.LeftPoint())
                {
                    UpgradeButton.FindInChild <UILabel>("needvalue").color = ColorConst.FONT_RED;
                }
                else
                {
                    UpgradeButton.FindInChild <UILabel>("needvalue").color = ColorConst.FONT_YELLOW;
                }
            }
            else if (state == SkillState.Upgrade)//升级
            {
                NGUITools.FindChild(gameObject, "skillinfo/2").SetActive(true);
                UpgradeButton.SetActive(true);

                SysSkillBaseVo nextSkill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>((uint)skill.next);

                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/lvl").text  = "当前等级:" + skill.skill_lvl;
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/lvl").color = ColorConst.FONT_YELLOW;
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/time").text = "冷却时间:" + (float)skill.cd / 1000 + "s";
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/cost").text = "魔法消耗:" + skill.need_value;
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/1/des").text  = "技能说明:" + skill.desc;

                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/2/lvl").text  = "下一等级:" + nextSkill.skill_lvl;
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/2/time").text = "冷却时间:" + (float)nextSkill.cd / 1000 + "s";
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/2/cost").text = "魔法消耗:" + nextSkill.need_value;
                NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/2/des").text  = "技能说明:" + nextSkill.desc;

                if (SkillViewLogic.IsConditionEnough(nextSkill))
                {
                    NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/2/lvl").color = ColorConst.FONT_YELLOW;
                }
                else
                {
                    NGUITools.FindInChild <UILabel>(gameObject, "skillinfo/2/lvl").color = ColorConst.FONT_RED;
                }
                UpgradeButton.FindInChild <UILabel>("label").text     = "升  级";
                UpgradeButton.FindInChild <UILabel>("needvalue").text = nextSkill.point.ToString();
                UpgradeButton.FindInChild <UILabel>("leftvalue").text = Singleton <SkillMode> .Instance.LeftPoint().ToString();

                if (skill.point > Singleton <SkillMode> .Instance.LeftPoint())
                {
                    UpgradeButton.FindInChild <UILabel>("needvalue").color = ColorConst.FONT_RED;
                }
                else
                {
                    UpgradeButton.FindInChild <UILabel>("needvalue").color = ColorConst.FONT_YELLOW;
                }
            }
            NGUITools.FindChild(gameObject, "skillinfo/2/time").SetActive(skill.active);
            NGUITools.FindChild(gameObject, "skillinfo/2/cost").SetActive(skill.active);
            NGUITools.FindChild(gameObject, "skillinfo/1/time").SetActive(skill.active);
            NGUITools.FindChild(gameObject, "skillinfo/1/cost").SetActive(skill.active);
        }
Пример #4
0
        public void SetSkillDetailInfo(SysSkillBaseVo svo)
        {
            if (gameObject != null)
            {
                SkillVo = svo;
                SysSkillBaseVo skillVo = SkillVo;
                SkillState     state   = SkillViewLogic.GetSkillState(skillVo);

                //当前技能不是学习状态则已经激活
                bool enable = state != SkillState.Learn;

                //技能-升级或者进阶
                bool showUpgrade = (state != SkillState.Change);

                bool showChange = (state == SkillState.Change);
                //满级
                bool limit = (skillVo.next == 0);

                //获取下一级信息
                uint nextId = (uint)skillVo.next;
                if (nextId == 0)
                {
                    //下一级技能为进阶技能
                    nextId = (uint)skillVo.evolve;
                }

                SysSkillBaseVo nextSkill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>(nextId);

                //当前技能为0级,则显示1级技能信息
                if (!enable && nextSkill != null)
                {
                    skillVo = nextSkill;
                }

                string skillType;

                if (skillVo.active)
                {
                    skillType = LanguageManager.GetWord("SkillTipsView.TypeZD");
                    if (skillVo.group)
                    {
                        skillType += LanguageManager.GetWord("SkillTipsView.Group");
                    }
                    else
                    {
                        skillType += LanguageManager.GetWord("SkillTipsView.Single");
                    }
                }
                else
                {
                    skillType = LanguageManager.GetWord("SkillTipsView.TypeBD");
                }

                //当前技能的信息
                string icn = skillVo.icon.ToString();
                if (!SkillViewLogic.IsLevelEnough(skillVo))
                {
                    icn = "suo";
                }
                setSkillIcn(icn);
                setSkillEnable(enable);
                setSkillTitle(skillVo.name, skillVo.skill_lvl.ToString(), limit);
                setSkillInfo(skillType, skillVo.cover_width, skillVo.need_value, skillVo.cd / 1000f, skillVo.desc);

                //升级的信息
                if (nextId != 0)
                {
                    //升级相关的信息
                    bool levelEnough = SkillViewLogic.IsLevelEnough(nextSkill);
                    bool moneyEnough = SkillViewLogic.IsMoneyEnough(nextSkill);
                    bool pointEnough = SkillViewLogic.IsSkillPointEnough(nextSkill);

                    string preskill       = null;
                    bool   preSkillEnough = true;

                    if (skillVo.pre != 0)
                    {
                        SysSkillBaseVo pSkill = BaseDataMgr.instance.GetDataById <SysSkillBaseVo>((uint)skillVo.pre);
                        if (pSkill.skill_lvl != 0)
                        {
                            preskill       = pSkill.name;
                            preSkillEnough = SkillViewLogic.IsPreSkillEnough(nextSkill);
                        }
                    }

                    setSkillCondition(nextSkill.lvl, nextSkill.point, nextSkill.beiley, preskill, levelEnough, pointEnough,
                                      moneyEnough, preSkillEnough);
                    setNextSkillTitle(nextSkill.name, nextSkill.skill_lvl, nextSkill.desc);
                    condition.SetActive(true);
                    skillButton.SetActive(true);
                }
                else
                {
                    condition.SetActive(false);
                    skillButton.SetActive(false);
                }
            }
        }