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; }
public virtual void InitPopUp(OpenLootData lootData, int lootNum) { }