public static void CalCulateExpFromItems(out float scoinNeed, out float expGet, List <StorageDataItemBase> dogFoodList, StorageDataItemBase equipToPowerUp) { float f = 0f; foreach (StorageDataItemBase base2 in dogFoodList) { float gearExp = base2.GetGearExp(); MaterialExpBonusMetaData data = MaterialExpBonusMetaDataReader.TryGetMaterialExpBonusMetaDataByKey(base2.ID); if (data != null) { if (equipToPowerUp is WeaponDataItem) { gearExp *= data.weaponExpBonus / 100f; } else if (equipToPowerUp is StigmataDataItem) { gearExp *= data.stigmataExpBonus / 100f; } } if (base2.GetType() == equipToPowerUp.GetType()) { gearExp *= ((float)Singleton <PlayerModule> .Instance.playerData.sameTypePowerUpRataInt) / 100f; } f += gearExp; } expGet = Mathf.FloorToInt(f); scoinNeed = (expGet * Singleton <PlayerModule> .Instance.playerData.powerUpScoinCostRate) / 100f; }
private void ReturnMaterial(StorageDataItemBase input) { WeaponDataItem item = input as WeaponDataItem; List <int> evoPath = WeaponMetaDataReaderExtend.GetEvoPath(item.ID); int num = 0; foreach (int num2 in evoPath) { int accumulateExp = 0; if (num2 == item.ID) { int expType = item.GetExpType(); int exp = item.exp; accumulateExp = EquipmentLevelMetaDataReaderExtend.GetAccumulateExp(item.level, expType) + exp; } else { WeaponMetaData weaponMetaDataByKey = WeaponMetaDataReader.GetWeaponMetaDataByKey(num2); int type = weaponMetaDataByKey.expType; accumulateExp = EquipmentLevelMetaDataReaderExtend.GetAccumulateExp(weaponMetaDataByKey.maxLv, type); } num += accumulateExp; } float num9 = Singleton <PlayerModule> .Instance.playerData.disjoin_equipment_back_exp_percent * 0.01f; int num11 = (int)(num * num9); int[] numArray = new int[] { 0xbbc, 0xbbb, 0xbba, 0xbb9 }; foreach (int num12 in numArray) { float gearExpProvideBase = ItemMetaDataReader.GetItemMetaDataByKey(num12).gearExpProvideBase; float num15 = MaterialExpBonusMetaDataReader.GetMaterialExpBonusMetaDataByKey(num12).weaponExpBonus * 0.01f; int num16 = (int)(gearExpProvideBase * num15); int num17 = num11 / num16; num11 = num11 % num16; if (num17 > 0) { this.AddItem(num12, num17); } } }