Example #1
0
    /// <summary>
    /// 技能可解锁在本地判断,服务器只负责验证;
    /// </summary>
    void skillOpenChecker(int lv)
    {
        PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (pdm == null)
        {
            return;
        }

        PlayerSkillData skillData = null;

        IDictionaryEnumerator itr = DataManager.SkillLearnTable.GetEnumerator();

        while (itr.MoveNext())
        {
            SkillLearnTableItem item = itr.Value as SkillLearnTableItem;
            if (item == null)
            {
                continue;
            }

            if (lv < item.unlock_lv)
            {
                continue;
            }

            skillData = pdm.GetSkillData();
            if (skillData == null || skillData.mLevels.ContainsKey(item.id))
            {
                continue;
            }

            pdm.UpdateSkillData(item.id, 0);
        }
    }
Example #2
0
    /// <summary>
    /// 刷新技能槽上技能的信息,参数技能槽索引,有效范围[0..3]
    /// </summary>
    void UpdateEquipSkill(int slotIdx)
    {
        SkillItemUI item = equipSkills[slotIdx] as SkillItemUI;

        if (item == null)
        {
            return;
        }

        //锁定状态;
        if (MySkillModule.IsSlotLocked(slotIdx + 1))
        {
            item.SLockType  = SkillLockType.Locked;
            item.IsShowIcon = false;
            item.IsTrigger  = false;//停止响应点击事件;
        }
        else
        {
            int skillID = MySkillModule.GetEquipSkillID(slotIdx);

            SkillLearnTableItem slti = MySkillModule.GetDetailBySkillId(skillID);
            if (slti == null)
            {
                item.SetSkillIcon("");
                item.SLockType = SkillLockType.UnLocked;
                return;
            }

            item.SetSkillIcon(slti.skill_icon);
            item.SLockType  = SkillLockType.UnLocked;
            item.IsShowIcon = true;
            item.IsTrigger  = true;
        }
    }
Example #3
0
    public string GetSkillIconByID(int falseID)
    {
        if (!IsLegalSkillID(falseID))
        {
            return("");
        }
        SkillLearnTableItem item = DataManager.SkillLearnTable[falseID] as SkillLearnTableItem;

        return(item.skill_icon);
    }
Example #4
0
    public int GetSkillUnlockLvByID(int skillID)
    {
        if (!IsLegalSkillID(skillID))
        {
            return(-1);
        }

        SkillLearnTableItem item = DataManager.SkillLearnTable[skillID] as SkillLearnTableItem;

        return(item.unlock_lv);
    }
Example #5
0
    public bool canOpen(int skillId)
    {
        if (!DataManager.SkillLearnTable.ContainsKey(skillId))
        {
            return(false);
        }

        SkillLearnTableItem item = DataManager.SkillLearnTable[skillId] as SkillLearnTableItem;
        PlayerDataModule    pdm  = ModuleManager.Instance.FindModule <PlayerDataModule>();

        if (item == null || pdm == null)
        {
            return(false);
        }

        return(pdm.GetLevel() >= item.unlock_lv);
    }
Example #6
0
    /// <summary>
    /// 刷新技能说明处显示信息;
    /// </summary>
    void UpdateDetails(bool needTypeWriterEffect)
    {
        SkillLearnTableItem learnItem = MySkillModule.GetDetailBySkillId(CurSkillId);

        if (learnItem == null)
        {
            return;
        }

        SkillLevelTableItem levelItem = null;
        int levelId = 0;

        int lv = MySkillModule.GetSkillLvBySkillID(CurSkillId);

        if (lv < 0)
        {
            return;
        }

        skillName.text = learnItem.skill_name;

        if (lv == 0)                                //锁定状态/可解锁状态;
        {
            if (!MySkillModule.canOpen(CurSkillId)) //锁定;
            {
                skillLV.text = StringHelper.StringWithColor(FontColor.Red, "未解锁");
            }
            else
            {
                skillLV.text = "[079d6a]可解锁[-]";
            }

            levelId   = SkillModule.SkillLearnToLevel(CurSkillId, 1);
            levelItem = MySkillModule.GetDetailByLevelID(levelId);
            if (levelItem == null)
            {
                Debug.LogError("SkillLevel表格缺少ID为" + levelId.ToString() + "的数据!");
                return;
            }
            detail1.text = learnItem.skill_desc + "\n" + levelItem.skill_desc.Replace("\\n", "\n");

            levelId   = SkillModule.SkillLearnToLevel(CurSkillId, 2);
            levelItem = MySkillModule.GetDetailByLevelID(levelId);
            if (levelItem == null)
            {
                Debug.LogError("SkillLevel表格缺少ID为" + levelId.ToString() + "的数据!");
                return;
            }
            detail2.text = levelItem.skill_desc.Replace("\\n", "\n");

            needLvLb.gameObject.SetActive(true);
            int lvUpLv = SkillModule.GetPlayerLvBySkillLevelId(levelId);
            if (lvUpLv > 0)
            {
                PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>();
                if (pdm == null)
                {
                    GameDebug.LogError("f**k");
                    return;
                }

                if (pdm.GetLevel() < lvUpLv)
                {
                    needLvLb.text = string.Format(StringHelper.GetString("skill_open_lv", FontColor.Red), lvUpLv);
                }
                else
                {
                    needLvLb.text = string.Format(StringHelper.GetString("skill_open_lv", FontColor.Green), lvUpLv);
                }
            }
            else
            {
                needLvLb.text = "";
            }
        }

        else
        {
            skillLV.text = "Lv. " + lv.ToString();

            //levelItem = MySkillModule.GetDetailByCurLvSkillID(CurSkillId, MySkillModule.GetSkillLvBySkillID(CurSkillId) - 1);
            levelId   = SkillModule.SkillLearnToLevel(CurSkillId, lv);
            levelItem = MySkillModule.GetDetailByLevelID(levelId);

            if (levelItem == null)
            {
                Debug.LogError("error le");
                return;
            }

            detail1.text = learnItem.skill_desc + "\n" + levelItem.skill_desc.Replace("\\n", "\n");

            if (MySkillModule.IsFullLv(CurSkillId))
            {
                detail2.text = StringHelper.GetString("skill_full_lv");
                needLvLb.gameObject.SetActive(false);
            }

            else
            {
                levelId   = SkillModule.SkillLearnToLevel(CurSkillId, lv + 1);
                levelItem = MySkillModule.GetDetailByLevelID(levelId);

                if (levelItem == null)
                {
                    Debug.LogError("SkillLevel表格缺少ID为" + levelId.ToString() + "的数据!");
                    return;
                }

                needLvLb.gameObject.SetActive(true);
                int lvUpLv = SkillModule.GetPlayerLvBySkillLevelId(levelId);
                if (lvUpLv > 0)
                {
                    PlayerDataModule pdm = ModuleManager.Instance.FindModule <PlayerDataModule>();
                    if (pdm == null)
                    {
                        GameDebug.LogError("f**k");
                        return;
                    }

                    if (pdm.GetLevel() < lvUpLv)
                    {
                        needLvLb.text = string.Format(StringHelper.GetString("skill_open_lv", FontColor.Red), lvUpLv);
                    }
                    else
                    {
                        needLvLb.text = string.Format(StringHelper.GetString("skill_open_lv", FontColor.Green), lvUpLv);
                    }
                }
                else
                {
                    needLvLb.text = "";
                }

                detail2.text = levelItem.skill_desc.Replace("\\n", "\n");
            }
        }


        TypewriterEffect te1 = null, te2 = null;

        if (UIEffectManager.IsUIEffectActive <TypewriterEffect>(detail1.gameObject, ref te1))
        {
            if (needTypeWriterEffect)
            {
                te1.ReStart();
            }
            else
            {
                te1.SetProcessText();
            }
        }
        else
        {
            if (needTypeWriterEffect)
            {
                detail1.gameObject.AddMissingComponent <TypewriterEffect>();
            }
        }
        if (UIEffectManager.IsUIEffectActive <TypewriterEffect>(detail2.gameObject, ref te2))
        {
            if (needTypeWriterEffect)
            {
                te2.ReStart();
            }
            else
            {
                te2.SetProcessText();
            }
        }
        else
        {
            if (needTypeWriterEffect)
            {
                detail2.gameObject.AddMissingComponent <TypewriterEffect>();
            }
        }
    }