public int GetSkillProInitActPoint()
    {
        int num = 0;
        List <KeyValuePair <int, int> > skillProDataID = this.GetSkillProDataID();
        int num2 = 106;

        for (int i = 0; i < skillProDataID.get_Count(); i++)
        {
            if (DataReader <skillExtend> .Contains(skillProDataID.get_Item(i).get_Key()))
            {
                skillExtend skillExtend = DataReader <skillExtend> .Get(skillProDataID.get_Item(i).get_Key());

                if (skillExtend.type == 1)
                {
                    int key = int.Parse(GameDataUtils.SplitString4Dot0(skillExtend.ruleDetail));
                    if (DataReader <Attrs> .Contains(key))
                    {
                        Attrs attrs = DataReader <Attrs> .Get(key);

                        for (int j = 0; j < attrs.attrs.get_Count(); j++)
                        {
                            if (attrs.attrs.get_Item(j) == num2)
                            {
                                if (j < attrs.values.get_Count())
                                {
                                    num += attrs.values.get_Item(j);
                                }
                            }
                        }
                    }
                }
            }
        }
        return(num);
    }
    protected void UpdateSkillActPointChange(skillExtend skillExtendData, XDict <int, BattleSkillExtend> battleSkillExtends)
    {
        string[] array = skillExtendData.ruleDetail.Split(new char[]
        {
            ','
        });
        if (array.Length < 2)
        {
            return;
        }
        int    num   = int.Parse(array[0]);
        string text  = array[1].Substring(0, 1);
        string text2 = array[1].Substring(1, array[1].get_Length() - 1);
        int    num2  = (!(text == "-")) ? int.Parse(text2) : (-int.Parse(text2));

        if (battleSkillExtends.ContainsKey(num))
        {
            battleSkillExtends[num].actPointOffset += num2;
        }
        else
        {
            battleSkillExtends.Add(num, new BattleSkillExtend
            {
                skillType      = num,
                actPointOffset = num2
            });
        }
    }
    protected void UpdatePassiveSkillID(skillExtend skillExtendData, XDict <int, BattleSkillInfo> battleSkillInfos, int skillLevel)
    {
        int num = (int)float.Parse(skillExtendData.ruleDetail);

        if (battleSkillInfos.ContainsKey(num))
        {
            return;
        }
        battleSkillInfos.Add(num, new BattleSkillInfo
        {
            skillId  = num,
            skillIdx = 0,
            skillLv  = skillLevel
        });
    }
    protected void UpdateSkillChange(skillExtend skillExtendData, XDict <int, BattleSkillInfo> battleSkillInfos)
    {
        string[] array = skillExtendData.ruleDetail.Split(new char[]
        {
            ','
        });
        if (array.Length < 2)
        {
            return;
        }
        int key = int.Parse(array[0]);

        if (!battleSkillInfos.ContainsKey(key))
        {
            return;
        }
        battleSkillInfos[key].skillId = int.Parse(array[1]);
    }
    protected XDict <int, int> GetPetExistTimeChange()
    {
        XDict <int, int> xDict = new XDict <int, int>();
        List <KeyValuePair <int, int> > skillProDataID = this.GetSkillProDataID();

        for (int i = 0; i < skillProDataID.get_Count(); i++)
        {
            if (DataReader <skillExtend> .Contains(skillProDataID.get_Item(i).get_Key()))
            {
                skillExtend skillExtend = DataReader <skillExtend> .Get(skillProDataID.get_Item(i).get_Key());

                if (skillExtend.type == 6)
                {
                    string[] array = skillExtend.ruleDetail.Split(new char[]
                    {
                        ','
                    });
                    if (array.Length >= 2)
                    {
                        int    num   = int.Parse(array[0]);
                        string text  = array[1].Substring(0, 1);
                        string text2 = array[1].Substring(1, array[1].get_Length() - 1);
                        int    num2  = (!(text == "-")) ? int.Parse(text2) : (-int.Parse(text2));
                        if (xDict.ContainsKey(num))
                        {
                            XDict <int, int> xDict2;
                            XDict <int, int> expr_E5 = xDict2 = xDict;
                            int num3;
                            int expr_EA = num3 = num;
                            num3             = xDict2[num3];
                            expr_E5[expr_EA] = num3 + num2;
                        }
                        else
                        {
                            xDict.Add(num, num2);
                        }
                    }
                }
            }
        }
        return(xDict);
    }
    protected void FixBattleSkillIndfoAndExtendBySkillProData(List <KeyValuePair <int, int> > skillProDataIDs, XDict <int, BattleSkillInfo> battleSkillInfos, XDict <int, BattleSkillExtend> battleSkillExtends)
    {
        for (int i = 0; i < skillProDataIDs.get_Count(); i++)
        {
            if (DataReader <skillExtend> .Contains(skillProDataIDs.get_Item(i).get_Key()))
            {
                skillExtend skillExtend = DataReader <skillExtend> .Get(skillProDataIDs.get_Item(i).get_Key());

                int type = skillExtend.type;
                switch (type)
                {
                case 2:
                    this.UpdateSkillChange(skillExtend, battleSkillInfos);
                    goto IL_AD;

                case 3:
IL_5B:
                    if (type != 10)
                    {
                        goto IL_AD;
                    }
                    this.UpdatePassiveSkillID(skillExtend, battleSkillInfos, skillProDataIDs.get_Item(i).get_Value());
                    goto IL_AD;

                case 4:
                    this.UpdateSkillCDChange(skillExtend, battleSkillExtends);
                    goto IL_AD;

                case 5:
                    this.UpdateSkillActPointChange(skillExtend, battleSkillExtends);
                    goto IL_AD;
                }
                goto IL_5B;
            }
            IL_AD :;
        }
    }