Esempio n. 1
0
        public static void GetConstantStats(int itemId, int rarity, out List <NormalStat> normalStats, out List <SpecialStat> specialStats)
        {
            normalStats  = new List <NormalStat>();
            specialStats = new List <SpecialStat>();

            // Get Constant Stats
            int constantId = ItemMetadataStorage.GetOptionConstant(itemId);
            ItemOptionsConstant basicOptions = ItemOptionConstantMetadataStorage.GetMetadata(constantId, rarity);

            if (basicOptions == null)
            {
                return;
            }

            foreach (ParserStat stat in basicOptions.Stats)
            {
                normalStats.Add(new NormalStat(stat.Id, stat.Flat, stat.Percent));
            }

            foreach (ParserSpecialStat stat in basicOptions.SpecialStats)
            {
                specialStats.Add(new SpecialStat(stat.Id, stat.Flat, stat.Percent));
            }

            if (basicOptions.HiddenDefenseAdd > 0)
            {
                AddHiddenNormalStat(normalStats, ItemAttribute.Defense, basicOptions.HiddenDefenseAdd, basicOptions.DefenseCalibrationFactor);
            }

            if (basicOptions.HiddenWeaponAtkAdd > 0)
            {
                AddHiddenNormalStat(normalStats, ItemAttribute.MinWeaponAtk, basicOptions.HiddenWeaponAtkAdd, basicOptions.WeaponAtkCalibrationFactor);
                AddHiddenNormalStat(normalStats, ItemAttribute.MaxWeaponAtk, basicOptions.HiddenWeaponAtkAdd, basicOptions.WeaponAtkCalibrationFactor);
            }
        }