Пример #1
0
 public void GetRebornData(out uint petCount, out uint money, out uint furtherItemCount, out uint skillItemCount, out uint[] itemCount, out uint awakeItemCount, ref List<OpenLootData> awakeData, out uint cultivateItemCount, bool broken = false)
 {
     petCount = 0u;
     money = 0u;
     furtherItemCount = 0u;
     skillItemCount = 0u;
     awakeItemCount = 0u;
     cultivateItemCount = 0u;
     itemCount = new uint[GameConst.PET_EXP_ITEM_ID.Length];
     LevelExp.GetTotalFurtherData((int)this.Data.Further, this.Info.Quality, out furtherItemCount, out petCount);
     petCount += 1u;
     if (this.Data.Level > 1u)
     {
         money = LevelExp.TotalExp[(int)((UIntPtr)(this.Data.Level - 1u)), this.Info.Quality];
     }
     money += this.Data.Exp;
     int num = (int)money;
     if (broken)
     {
         QualityInfo info = Globals.Instance.AttDB.QualityDict.GetInfo(this.Info.Quality + 1);
         if (info != null)
         {
             money += info.PetExp;
         }
     }
     money /= 5u;
     if (num > 0)
     {
         for (int i = itemCount.Length - 1; i >= 0; i--)
         {
             if (num <= 0)
             {
                 break;
             }
             ItemInfo info2 = Globals.Instance.AttDB.ItemDict.GetInfo(GameConst.PET_EXP_ITEM_ID[i]);
             if (info2 == null)
             {
                 global::Debug.LogErrorFormat("ItemDict.GetInfo error, id = {0}", new object[]
                 {
                     GameConst.PET_EXP_ITEM_ID[i]
                 });
                 return;
             }
             itemCount[i] = (uint)(num / info2.Value1);
             num -= (int)(itemCount[i] * (uint)info2.Value1);
         }
     }
     for (int j = 0; j < 4; j++)
     {
         skillItemCount += LevelExp.GetTotalSkillItemCount(this.GetSkillLevel(j));
     }
     if (this.Data.Awake > 0u || this.Data.ItemFlag != 0u)
     {
         int num2 = 1;
         while ((long)num2 <= (long)((ulong)(this.Data.Awake + 1u)))
         {
             AwakeInfo info3 = Globals.Instance.AttDB.AwakeDict.GetInfo(num2);
             if (info3 == null)
             {
                 global::Debug.LogErrorFormat("AwakeDict.GetInfo error, id = {0}", new object[]
                 {
                     num2
                 });
             }
             else
             {
                 if ((long)num2 <= (long)((ulong)this.Data.Awake))
                 {
                     if (info3.PetCount > 0)
                     {
                         petCount += (uint)info3.PetCount;
                     }
                     if (this.socketSlot == 0)
                     {
                         awakeItemCount += (uint)info3.PlayerItemCount;
                     }
                     else
                     {
                         awakeItemCount += (uint)info3.ItemCount;
                     }
                     money += (uint)info3.Money;
                 }
                 for (int k = 0; k < 4; k++)
                 {
                     if ((long)num2 != (long)((ulong)(this.Data.Awake + 1u)) || this.IsAwakeItemEquip(k))
                     {
                         int num3 = this.Info.ElementType * 4 + k;
                         if (num3 >= 0 && num3 < info3.ItemID.Count)
                         {
                             if (info3.ItemID[num3] != 0)
                             {
                                 bool flag = false;
                                 for (int l = 0; l < awakeData.Count; l++)
                                 {
                                     if (awakeData[l].InfoID == info3.ItemID[num3])
                                     {
                                         flag = true;
                                         awakeData[l].Count += 1u;
                                         break;
                                     }
                                 }
                                 if (!flag)
                                 {
                                     OpenLootData openLootData = new OpenLootData();
                                     openLootData.InfoID = info3.ItemID[num3];
                                     openLootData.Count = 1u;
                                     awakeData.Add(openLootData);
                                 }
                             }
                         }
                     }
                 }
             }
             num2++;
         }
     }
     cultivateItemCount = (uint)this.Data.CultivateCount;
 }
Пример #2
0
 public virtual void InitPopUp(OpenLootData lootData, int lootNum)
 {
 }