Exemplo n.º 1
0
    public static List <PetAttribute> GetSkills(int petId, int effect)
    {
        List <PetAttribute> list   = new List <PetAttribute>();
        PetInfo             onePet = PetEvoGlobal.GetOnePet(petId);

        if (onePet == null || onePet.petTalents == null)
        {
            return(list);
        }
        using (List <PetTalent> .Enumerator enumerator = onePet.petTalents.GetEnumerator())
        {
            while (enumerator.MoveNext())
            {
                PetTalent     current          = enumerator.get_Current();
                ChongWuTianFu chongWuTianFuRow = PetEvoGlobal.GetChongWuTianFuRow(current.talentId);
                int           skillLv          = PetEvoGlobal.GetSkillLv(petId, current.talentId);
                if (chongWuTianFuRow != null)
                {
                    if (skillLv != 0)
                    {
                        if (chongWuTianFuRow.effect == effect)
                        {
                            if (chongWuTianFuRow.effect == 10)
                            {
                                List <int> talentIds  = PetEvoGlobal.GetTalentIds(petId, 15);
                                List <int> talentIds2 = PetEvoGlobal.GetTalentIds(petId, 21);
                                int        num        = -1;
                                if (talentIds2.get_Count() > 0)
                                {
                                    num = talentIds2.get_Item(0);
                                }
                                else if (talentIds.get_Count() > 0)
                                {
                                    num = talentIds.get_Item(0);
                                }
                                if (num != -1)
                                {
                                    ChongWuTianFu chongWuTianFuRow2 = PetEvoGlobal.GetChongWuTianFuRow(num);
                                    int           num2 = chongWuTianFuRow2.parameter.get_Item(0);
                                    if (num2 == current.talentId)
                                    {
                                        for (int i = 0; i < chongWuTianFuRow2.parameter2.get_Count(); i++)
                                        {
                                            list.Add(new PetAttribute
                                            {
                                                petSkillId   = chongWuTianFuRow2.parameter2.get_Item(i),
                                                petSkillLv   = skillLv,
                                                petSkillSlot = chongWuTianFuRow.parameter2.get_Item(i)
                                            });
                                        }
                                        continue;
                                    }
                                }
                                for (int j = 0; j < chongWuTianFuRow.parameter.get_Count(); j++)
                                {
                                    list.Add(new PetAttribute
                                    {
                                        petSkillId   = chongWuTianFuRow.parameter.get_Item(j),
                                        petSkillLv   = skillLv,
                                        petSkillSlot = chongWuTianFuRow.parameter2.get_Item(j)
                                    });
                                }
                            }
                            else if (chongWuTianFuRow.effect == 12)
                            {
                                PetAttribute petAttribute = new PetAttribute
                                {
                                    templateIds = PetEvoGlobal.GetAttributeTemplateIDs(chongWuTianFuRow.parameter, skillLv)
                                };
                                list.Add(petAttribute);
                            }
                            else if (chongWuTianFuRow.effect == 13)
                            {
                                PetAttribute petAttribute2 = new PetAttribute
                                {
                                    templateIds  = chongWuTianFuRow.parameter,
                                    templateIds2 = PetEvoGlobal.GetAttributeTemplateIDs(chongWuTianFuRow.parameter2, skillLv)
                                };
                                list.Add(petAttribute2);
                            }
                            else if (chongWuTianFuRow.effect == 14)
                            {
                                PetAttribute petAttribute3 = new PetAttribute
                                {
                                    templateIds  = chongWuTianFuRow.parameter,
                                    templateIds2 = PetEvoGlobal.GetAttributeTemplateIDs(chongWuTianFuRow.parameter2, skillLv)
                                };
                                list.Add(petAttribute3);
                            }
                            else
                            {
                                Debug.LogError("!!! row.effect=" + chongWuTianFuRow.effect);
                            }
                        }
                    }
                }
            }
        }
        return(list);
    }