예제 #1
0
    public IEnumerator SendResetSkillTalentMsg(SkillBoxDataModel skillBoxData)
    {
        using (new BlockingLayerHelper(0))
        {
            var msg = NetManager.Instance.ResetSkillTalent(skillBoxData.SkillId);
            yield return(msg.SendAndWaitUntilDone());

            if (msg.State == MessageState.Reply)
            {
                if (msg.ErrorCode == (int)ErrorCodes.OK)
                {
                    PlatformHelper.Event("skill", "ResetSkillTalent", skillBoxData.SkillId);
                    PlatformHelper.UMEvent("skill", "ResetSkillTalent", skillBoxData.SkillId);

                    RestSkillTalentData(skillBoxData);
                    RefreshTalentBoardDesc(currentShowTalentId);
                    var e = new ShowUIHintBoard(709);
                    EventDispatcher.Instance.DispatchEvent(e);
                }
                else
                {
                    if (msg.ErrorCode == (int)ErrorCodes.ItemNotEnough)
                    {
                        var e = new ShowUIHintBoard(703);
                        EventDispatcher.Instance.DispatchEvent(e);
                    }
                    else
                    {
                        UIManager.Instance.ShowNetError(msg.ErrorCode);
                    }
                }
            }
        }
    }
예제 #2
0
    public void RestSkillTalentData(SkillBoxDataModel skillBoxData)
    {
        var count = 0;
        var skillBoxDataSkillTalentsCount3 = skillBoxData.SkillTalents.Count;

        for (var i = 0; i < skillBoxDataSkillTalentsCount3; i++)
        {
            count += skillBoxData.SkillTalents[i].Count;
        }
        count += skillBoxData.LastCount;
        skillBoxData.LastCount    = count;
        skillBoxData.CurrentCount = 0;
        if (PlayerDataManager.Instance.mSkillTalent.ContainsKey(skillBoxData.SkillId))
        {
            PlayerDataManager.Instance.mSkillTalent[skillBoxData.SkillId] = count;
        }


        {
            // foreach(var talent in skillBoxData.SkillTalents)
            var __enumerator12 = (skillBoxData.SkillTalents).GetEnumerator();
            while (__enumerator12.MoveNext())
            {
                var talent = __enumerator12.Current;
                {
                    talent.Count = 0;
                    talent.InitializeTalentCell();
                }
            }
        }

        //刷新受天赋影响的技能
        PlayerDataManager.Instance.mAllSkills[skillBoxData.SkillId].RefreshSkillData();
    }
예제 #3
0
    public void RefreshSelected(SkillItemDataModel dataModel)
    {
        SkillDataModel.SelectSkill = dataModel;
        var skilldata = SkillDataModel;
        var selected  = skilldata.SelectedSkillList[0];

        selected.SkillId = dataModel.SkillId;
        selected.SkillLv = dataModel.SkillLv;
        var skillTable = Table.GetSkill(dataModel.SkillId);

        selected.ManaCast  = StringConvert.Level_Value_Ref(skillTable.NeedMp, dataModel.SkillLv - 1);
        selected.SkillType = getSkillTypeString(skillTable.ControlType);
        selected.SkillItem = dataModel;

        var current = 0;
//         var skillTalent = PlayerDataManager.Instance.mSkillTalent;
//         if (skillTalent.ContainsKey(dataModel.SkillId))
//         {
//             current = skillTalent[dataModel.SkillId];
//         }

        var skillboxs         = PlayerDataManager.Instance.PlayerDataModel.SkillData.SkillBoxes;
        SkillBoxDataModel box = null;

        for (var i = 0; i < skillboxs.Count; i++)
        {
            if (skillboxs[i].SkillId == dataModel.SkillId)
            {
                box = skillboxs[i];
                break;
            }
        }

        if (null != box)
        {
            current = box.LastCount + box.CurrentCount;
        }

        selected.TalentCount = string.Format("{0}/{1}", current, skillTable.TalentMax);

        var selected2 = skilldata.SelectedSkillList[1];

        selected2.SkillId   = selected.SkillId;
        selected2.SkillLv   = selected.SkillLv == 0 ? 2 : selected.SkillLv + 1;
        selected2.ManaCast  = selected.ManaCast;
        selected2.SkillType = selected.SkillType;
    }
예제 #4
0
        // Use this for initialization
        private void Start()
        {
#if !UNITY_EDITOR
            try
            {
#endif
            if (SkillBox == null)
            {
                return;
            }
            BoxDataModel = SkillBox.GetComponent <SkillOutBox>().BoxDataModel;
            //优先查找完成之后再设置隐藏
            RefreshCurrentCount();
            if (BoxDataModel == null)
            {
                return;
            }
            BoxDataModel.PropertyChanged += OnPropertyChangedEvent;
            Binding.SetBindDataSource(BoxDataModel);
            var name = Table.GetSkill(SkillId).Name;
            if (skillName1 == null)
            {
                Logger.Error("talent skillname uilabel is null skillID = {0}", SkillId);
            }
            else
            {
                skillName1.text = name;
            }

#if !UNITY_EDITOR
        }

        catch (Exception ex)
        {
            Logger.Error(ex.ToString());
        }
#endif
        }
예제 #5
0
        private IEnumerator SetupSkillTalent(SkillDataModel dataModel)
        {
            var holder = ResourceManager.PrepareResourceWithHolder <GameObject>(skillTalentPrefab[roleID]);

            yield return(holder.Wait());

            var skillTalentFrame = Instantiate(holder.Resource) as GameObject;
            var t = skillTalentFrame.transform;

            //t.parent = SkillTalentRoot;
            t.SetParentEX(SkillTalentRoot);
            //touch.Initialize(t);
            var skillGuide = SkillTalentRoot.GetComponentsInChildren <SkillGuideHelper>(true);

            for (var i = 0; i < skillGuide.Length; i++)
            {
                skillGuide[i].Initialize(t);
            }

            t.localPosition = Vector3.zero;
            t.localRotation = Quaternion.identity;
            t.localScale    = Vector3.one;
            if (!t.gameObject.activeSelf)
            {
                t.gameObject.SetActive(true);
            }
            var talentDic = new Dictionary <int, TalentCellDataModel>();
            {
                // foreach(var talent in dataModel.Talents)
                var __enumerator2 = (dataModel.Talents).GetEnumerator();
                while (__enumerator2.MoveNext())
                {
                    var talent = __enumerator2.Current;
                    {
                        talentDic.Add(talent.TalentId, talent);
                    }
                }
            }

            var cacheDic = new Dictionary <int, List <TalentCellDataModel> >();

            var skillCellLogicContainer = skillTalentFrame.GetComponentsInChildren <SkillTalentCell>(true);
            {
                var __array3       = skillCellLogicContainer;
                var __arrayLength3 = __array3.Length;
                for (var __i3 = 0; __i3 < __arrayLength3; ++__i3)
                {
                    var logic = __array3[__i3];
                    {
                        var talentEnable = false;
                        TalentCellDataModel talentDataModel;
                        if (talentDic.TryGetValue(logic.SkillTalentId, out talentDataModel))
                        {
                            talentEnable        = true;
                            logic.CellDataModel = talentDataModel;
                        }

                        if (!talentEnable)
                        {
                            var talent = new TalentCellDataModel();
                            talent.TalentId     = logic.SkillTalentId;
                            talent.Count        = 0;
                            logic.CellDataModel = talent;
                            var e = new UIEvent_SkillFrame_AddUnLearnedTalent(talent);
                            EventDispatcher.Instance.DispatchEvent(e);
                        }

                        var talentTable = Table.GetTalent(logic.CellDataModel.TalentId);
                        if (talentTable.ModifySkill != -1)
                        {
                            List <TalentCellDataModel> list;
                            if (cacheDic.TryGetValue(talentTable.ModifySkill, out list))
                            {
                                list.Add(logic.CellDataModel);
                            }
                            else
                            {
                                var l = new List <TalentCellDataModel>();
                                l.Add(logic.CellDataModel);
                                cacheDic.Add(talentTable.ModifySkill, l);
                            }
                        }
                    }
                }
            }
            var skillBoxContainer = skillTalentFrame.GetComponentsInChildren <SkillOutBox>(true);
            {
                dataModel.SkillBoxes.Clear();
                var skillbox = skillBoxContainer;
                var length   = skillbox.Length;
                var fristId  = 0;
                for (var i = 0; i < length; ++i)
                {
                    var skillBoxLogic = skillbox[i];
                    {
                        var skillBox = new SkillBoxDataModel();
                        skillBox.SkillId = skillBoxLogic.SkillId;
                        List <TalentCellDataModel> talentList;
                        if (cacheDic.TryGetValue(skillBox.SkillId, out talentList))
                        {
                            {
                                var __list5      = talentList;
                                var __listCount5 = __list5.Count;
                                for (var __i5 = 0; __i5 < __listCount5; ++__i5)
                                {
                                    var cellDataModel = __list5[__i5];
                                    {
                                        skillBox.SkillTalents.Add(cellDataModel);
                                    }
                                }
                            }
                        }
                        skillBox.ShowSkillBox      = 0;
                        skillBoxLogic.BoxDataModel = skillBox;
                        var e = new UIEvent_SkillFrame_AddSkillBoxDataModel(skillBox);
                        EventDispatcher.Instance.DispatchEvent(e);
                        if (i == 0)
                        {
                            fristId = skillBox.SkillId;
                        }
                    }
                }

//              EventDispatcher.Instance.DispatchEvent(
//                  new UIEvent_SkillFrame_OnSkillTalentSelected(fristId));
                var skilldata = PlayerDataManager.Instance.mAllSkills;
                var ievent    = new UIEvent_SkillFrame_SkillSelect(skilldata[fristId]);
                EventDispatcher.Instance.DispatchEvent(ievent);
            }

            //天赋球数据好了初始化开放和已加点特效
            var c = skillCellLogicContainer.Length;

            for (var i = 0; i < c; i++)
            {
                var logic = skillCellLogicContainer[i];
                logic.InitEffect();
            }

            initFinish = true;
        }