예제 #1
0
        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;
        }
예제 #2
0
        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);
                }
            }
        }