예제 #1
0
        private void UpateItem()
        {
            foreach (PassiveSkillData skillData in SkillLogic.GetInstance().TalentSkillDict.Values)
            {
                skillItems[skillData.SkillID].SkillData = skillData;
            }

            foreach (TalentSkillItem item in skillItems.Values)
            {
                KPassiveSkill        passiveSkillSetting = KConfigFileManager.GetInstance().GetPassiveSkill(item.SkillData.SkillID, item.SkillData.Level);
                List <KPassiveSkill> reqSkills           = passiveSkillSetting.GetReqSkillList();
                int count = reqSkills.Count;
                for (int i = 0; i < count; i++)
                {
                    KPassiveSkill    reqSkill   = reqSkills[i];
                    PassiveSkillData reqSkillVO = skillItems[reqSkill.SkillID].SkillData;
                    GameObject       arrow;
                    string           key = "arrow_" + (reqSkill.Index - 1) + "_" + (passiveSkillSetting.Index - 1);
                    //if(!arrowList.TryGetValue(key, out arrow))
                    //{
                    //    Debug.Log(key + "-----------");
                    //}
                    //if (reqSkillVO.Learned && reqSkillVO.currentSkill.Level >= reqSkill.Level)
                    //{
                    //    arrow.SetActive(true);
                    //}
                    //else
                    //{
                    //    arrow.SetActive(false);
                    //}
                }
            }
        }
예제 #2
0
        private void InitItem()
        {
            int  Career  = PlayerManager.GetInstance().MajorPlayer.Job - 1;//职业从1开始
            int  n       = 0;
            uint skillID = 0;

            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 6; j++)
                {
                    if (i * 6 + j == postions[n])
                    {
                        skillID = skillIDList[Career][n];
                        TalentSkillItem item = NGUITools.AddChild <TalentSkillItem>(gameObject);
                        GameObject      go   = GameObject.Instantiate(addBtn.gameObject) as GameObject;
                        UIEventListener.Get(go).onClick += OnUpgradeSkill;
                        item.AddPointBtn(go);
                        item.gameObject.transform.localPosition = posList[n++];
                        skillItems.Add(skillID, item);
                        KPassiveSkill    skill     = KConfigFileManager.GetInstance().GetPassiveSkill(skillID, 1);
                        PassiveSkillData skillData = new PassiveSkillData();
                        skillData.Learned = true;
                        item.SkillData    = skillData;
                        if (n == 14)
                        {
                            i = 4;
                            break;
                        }
                    }
                }
            }
            GameObject.Destroy(addBtn.gameObject);
        }
예제 #3
0
        private void UpdateReqItem()
        {
            KPassiveSkill   currSkillSetting = KConfigFileManager.GetInstance().GetPassiveSkill(currentItem.SkillData.SkillID, currentItem.SkillData.Level);
            KPassiveSkill   nextSkillSetting = KConfigFileManager.GetInstance().GetPassiveSkill(currentItem.SkillData.SkillID, currentItem.SkillData.Level + 1);
            List <ItemInfo> itemList         = null;
            int             count            = 0;

            if (currSkillSetting != null)
            {
                itemList          = nextSkillSetting.GetReqItemList();
                count             = itemList.Count;
                reqLevelTxt.text  = currSkillSetting.LearnLevel.ToString();
                reqMenoryTxt.text = currSkillSetting.CostMoney.ToString();
            }
            else
            {
                reqLevelTxt.text  = "";
                reqMenoryTxt.text = "";
            }
            for (int i = 0; i < REQ_ITEM_COUNT; i++)
            {
                if (i < count)
                {
                    reqItems[i].gameObject.SetActive(true);
                    reqItems[i].ItemData = itemList[i];
                }
                else
                {
                    reqItems[i].gameObject.SetActive(false);
                }
            }
        }
예제 #4
0
        protected override void UpdateIcon()
        {
            base.UpdateIcon();
            KPassiveSkill nextSkillSetting = KConfigFileManager.GetInstance().GetPassiveSkill(skillData.SkillID, skillData.Level + 1);

            if (SkillLogic.GetInstance().CanLearnTalent(skillData.SkillID) && SkillLogic.GetInstance().SkillPoint > 0 && nextSkillSetting != null)
            {
                addBtn.SetActive(true);
            }
            else
            {
                addBtn.SetActive(false);
            }
        }
예제 #5
0
        //天赋是否能学习
        public bool CanLearnTalent(uint skillID)
        {
            KPassiveSkill skill = KConfigFileManager.GetInstance().GetPassiveSkill(skillID, 1); //得到需要学习的技能

            foreach (KPassiveSkill s in skill.GetReqSkillList())                                //得到此技能需要学习的技能
            {
                bool canLearn = false;
                foreach (PassiveSkillData skillData in TalentSkillDict.Values)
                {
                    if (skillData.SkillID == s.SkillID)
                    {
                    }
                }
            }
            return(true);
        }
예제 #6
0
        public void SetSkillList(KNMSkillDataList skillList)
        {
            ActiveSkillDict.Clear();
            activeSkillList = new uint[skillList.ActiveSkillData.Count];
            int index = 0;

            foreach (KNMActiveSkillData nmactiveSkillData in skillList.ActiveSkillData)
            {
                ActiveSkillData activeSkillData = new ActiveSkillData();
                activeSkillData.Level    = nmactiveSkillData.SkillLevel;
                activeSkillData.SkillExp = nmactiveSkillData.SkillExp;
                activeSkillData.SkillID  = nmactiveSkillData.SkillID;
                ActiveSkillDict.Add(activeSkillData.SkillID, activeSkillData);
                activeSkillList[index++] = nmactiveSkillData.SkillID;
                KActiveSkill skill = KConfigFileManager.GetInstance().GetActiveSkill(activeSkillData.SkillID, activeSkillData.Level);
                activeSkillData.cdTicket.SetCD(skill.SkillCD);
            }


            PassiveSkillDict.Clear();
            foreach (KNMPassiveSkillData nmapassiveSkillData in skillList.PassiveSkillData)
            {
                PassiveSkillData passiveSkillData = new PassiveSkillData();
                passiveSkillData.Level   = nmapassiveSkillData.SkillLevel;
                passiveSkillData.SkillID = nmapassiveSkillData.SkillID;

                KPassiveSkill passiveSkillSetting = KConfigFileManager.GetInstance().GetPassiveSkill(passiveSkillData.SkillID, 1);
                if (passiveSkillSetting.SkillType > 0)
                {
                    PassiveSkillDict.Add(passiveSkillData.SkillID, passiveSkillData);
                }
                else
                {
                    TalentSkillDict.Add(passiveSkillData.SkillID, passiveSkillData);
                }
            }
        }
예제 #7
0
        //升级主动技能
        public void UpgradeSkill(uint skillID, int type)
        {
            int skillIdx = 0;

            if (type == 1)
            {
                skillIdx = 0;
                ActiveSkillData activeSkillData;
                if (ActiveSkillDict.TryGetValue(skillID, out activeSkillData) == false)
                {
                    activeSkillData         = new ActiveSkillData();
                    activeSkillData.SkillID = skillID;
                    ActiveSkillDict.Add(skillID, activeSkillData);
                    uint [] oldList = activeSkillList;
                    activeSkillList = new uint[activeSkillList.Length + 1];
                    Array.Copy(oldList, activeSkillList, oldList.Length);
                    activeSkillList[oldList.Length] = skillID;

                    HashSet <uint> rushSkillList = KConfigFileManager.GetInstance().GetRushSkillSet();
                    if (!rushSkillList.Contains(skillID))
                    {
                        for (int i = 0; i < ShortCutDataManager.Instance.Count; i++)
                        {
                            ShortCutData data = ShortCutDataManager.Instance.datas[i];
                            if (data.type == SHORTCUTITEM.NONE)
                            {
                                ButtonBarView.GetInstance().SetShortCut(i, SHORTCUTITEM.SKILL, (int)skillID, true);
                                break;
                            }
                        }
                    }
                }
                activeSkillData.Level += 1;
                KActiveSkill skill = KConfigFileManager.GetInstance().GetActiveSkill(activeSkillData.SkillID, activeSkillData.Level);
                activeSkillData.cdTicket.SetCD(skill.SkillCD);
            }
            else
            {
                KPassiveSkill    passiveSkillSetting = KConfigFileManager.GetInstance().GetPassiveSkill(skillID, 1);
                PassiveSkillData passiveSkillData;
                if (passiveSkillSetting.SkillType > 0)
                {
                    if (PassiveSkillDict.TryGetValue(skillID, out passiveSkillData) == false)
                    {
                        passiveSkillData = new PassiveSkillData();
                        PassiveSkillDict.Add(skillID, passiveSkillData);
                    }
                    passiveSkillData.Level += 1;
                    skillIdx = 1;
                }
                else
                {
                    if (TalentSkillDict.TryGetValue(skillID, out passiveSkillData) == false)
                    {
                        passiveSkillData = new PassiveSkillData();
                        TalentSkillDict.Add(skillID, passiveSkillData);
                    }
                    passiveSkillData.Level += 1;
                    skillIdx = 2;
                }
            }
            EventDispatcher.GameWorld.Dispath(ControllerCommand.UPDATE_SKILL, skillIdx, skillID);
        }