示例#1
0
    public IEnumerator SendResetTalentMsg()
    {
        using (new BlockingLayerHelper(0))
        {
            var type     = int.Parse(Table.GetClientConfig(258).Value);
            var count    = int.Parse(Table.GetClientConfig(259).Value);
            var bagCount = PlayerDataManager.Instance.GetRes(type);
            //检查需求道具
            if (bagCount < count)
            {
                var name    = Table.GetItemBase(type).Name;
                var message = string.Format(GameUtils.GetDictionaryText(701), name);

                var e = new ShowUIHintBoard(message);
                EventDispatcher.Instance.DispatchEvent(e);
                yield break;
            }

            var msg = NetManager.Instance.ClearInnate(-1);
            yield return(msg.SendAndWaitUntilDone());

            if (msg.State == MessageState.Reply)
            {
                if (msg.ErrorCode == (int)ErrorCodes.OK)
                {
                    PlatformHelper.UMEvent("skill", "ResetXiuLian");
                    var skillData = SkillDataModel;
                    var talents   = skillData.Talents;
                    skillData.AttrPanel.Clear();
                    skillData.TalentResetButtonShow = false;
                    var ee = new UIEvent_SkillFrame_RefreshTalentPanel();
                    EventDispatcher.Instance.DispatchEvent(ee);
                    // foreach (var talent in talents)
                    var enumerator = talents.GetEnumerator();
                    while (enumerator.MoveNext())
                    {
                        var talent = enumerator.Current;
                        if (Table.GetTalent(talent.TalentId).ModifySkill == -1)
                        {
                            talent.Count = 0;
                        }
                    }
                    enumerator.Reset();
                    while (enumerator.MoveNext())
                    {
                        var talent = enumerator.Current;
                        if (Table.GetTalent(talent.TalentId).ModifySkill == -1)
                        {
                            talent.InitializeTalentCell();
                        }
                    }
                    skillData.TalentCount = msg.Response;
                    var e = new ShowUIHintBoard(709);
                    EventDispatcher.Instance.DispatchEvent(e);
                    PlayerAttr.Instance.SetAttrChange(PlayerAttr.PlayerAttrChange.Talant);
                }
                else
                {
                    UIManager.Instance.ShowNetError(msg.ErrorCode);
                }
            }
        }
    }
示例#2
0
    public void ChangeTalentCountToDataModel(int talentId)
    {
        var skillData = SkillDataModel;
        var skillID   = Table.GetTalent(talentId).ModifySkill;

        if (skillID != -1)
        {
            {
                // foreach(var skillBoxDataModel in skillData.SkillBoxes)
                var __enumerator5 = (skillData.SkillBoxes).GetEnumerator();
                while (__enumerator5.MoveNext())
                {
                    var skillBoxDataModel = __enumerator5.Current;
                    {
                        if (skillBoxDataModel.SkillId == skillID)
                        {
                            skillBoxDataModel.LastCount    -= 1;
                            skillBoxDataModel.CurrentCount += 1;
                            PlayerDataManager.Instance.SkillTalentPointChange(skillBoxDataModel.SkillId, -1);
                            break;
                        }
                    }
                }
            }
        }
        else
        {
            //skillData.TalentCount--;
        }

        //去掉修炼小红点
        PlayerDataManager.Instance.NoticeData.PlayerTalentCount = 0;//skillData.TalentCount;
        var talentData = skillData.Talents;
        var list       = new List <TalentCellDataModel>();

        {
            // foreach(var talent in talentData)
            var __enumerator7 = (talentData).GetEnumerator();
            while (__enumerator7.MoveNext())
            {
                var talent = __enumerator7.Current;
                {
                    if (talent.TalentId == talentId)
                    {
                        talent.Count++;
                        list.Add(talent);
                    }

                    if (Table.GetTalent(talent.TalentId).BeforeId == talentId)
                    {
                        list.Add(talent);
                    }
                }
            }
        }
        {
            var __list8      = list;
            var __listCount8 = __list8.Count;
            for (var __i8 = 0; __i8 < __listCount8; ++__i8)
            {
                var talentCellDataModel = __list8[__i8];
                {
                    talentCellDataModel.InitializeTalentCell();
                }
            }
        }
        //刷新面板
        if (skillData.AttrPanel.Count > 0)
        {
            skillData.AttrPanel.Clear();
        }
        {
            // foreach(var talentCellDataModel in talentData)
            var __enumerator9 = (talentData).GetEnumerator();
            while (__enumerator9.MoveNext())
            {
                var talentCellDataModel = __enumerator9.Current;
                {
                    if (talentCellDataModel.Count > 0)
                    {
                        SkillDataModelExtension.AddTalentAttrToPanel(skillData.AttrPanel, talentCellDataModel);
                    }
                }
            }
        }

        SkillItemDataModel skillItem;

        if (PlayerDataManager.Instance.mAllSkills.TryGetValue(skillID, out skillItem))
        {
            skillItem.RefreshSkillData();
        }

        RefreshTalentBoardDesc(talentId);

        var e = new UIEvent_SkillFrame_RefreshTalentPanel();

        EventDispatcher.Instance.DispatchEvent(e);
    }