示例#1
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;
        }
示例#2
0
        private IEnumerator SetupTalent(SkillDataModel dataModel)
        {
            var holder = ResourceManager.PrepareResourceWithHolder <GameObject>(talentPrefab[roleID]);

            yield return(holder.Wait());

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

            //t.parent = TalentRoot;
            t.SetParentEX(TalentRoot);
            t.localScale    = Vector3.one;
            t.localPosition = Vector3.zero;
            talentFrame.SetActive(true);
            var background = t.FindChild("bg");
            var trigger    = background.gameObject.AddComponent <UIEventTrigger>();

            trigger.onPress.Add(new EventDelegate(
                                    () =>
            {
                var e = new UIEvent_SkillFrame_TalentBallClick(-1);
                EventDispatcher.Instance.DispatchEvent(e);
            }));

            var talentListDataModel             = dataModel.Talents;
            var talentFrametransformchildCount0 = t.childCount;

            for (var i = 0; i < talentFrametransformchildCount0; i++)
            {
                var child     = t.GetChild(i);
                var cellLogic = child.GetComponent <TalentCellLogic>();
                if (cellLogic == null)
                {
                    continue;
                }

                var talentEnable = false;
                {
                    // foreach(var cellData in talentListDataModel)
                    var __enumerator1 = (talentListDataModel).GetEnumerator();
                    while (__enumerator1.MoveNext())
                    {
                        var cellData = __enumerator1.Current;
                        {
                            if (cellLogic.TalentId == cellData.TalentId)
                            {
                                cellLogic.CellDataModel = cellData;
                                talentEnable            = true;
                                break;
                            }
                        }
                    }
                }
                if (!talentEnable)
                {
                    var talent = new TalentCellDataModel();
                    talent.TalentId         = cellLogic.TalentId;
                    talent.Count            = 0;
                    cellLogic.CellDataModel = talent;
                    var e = new UIEvent_SkillFrame_AddUnLearnedTalent(talent);
                    EventDispatcher.Instance.DispatchEvent(e);
                }
            }
        }