示例#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);
            }
        }
示例#2
0
    public static void GetStats(Item item, int optionId, float optionLevelFactor, out Dictionary <StatAttribute, ItemStat> constantStats)
    {
        constantStats = new();
        int constantId = ItemMetadataStorage.GetOptionMetadata(item.Id).Constant;
        ItemOptionsConstant basicOptions = ItemOptionConstantMetadataStorage.GetMetadata(constantId, item.Rarity);

        if (basicOptions == null)
        {
            GetDefault(item, constantStats, optionId, optionLevelFactor);
            return;
        }

        foreach (ParserStat stat in basicOptions.Stats)
        {
            constantStats[stat.Attribute] = new BasicStat(stat);
        }
        foreach (ParserSpecialStat stat in basicOptions.SpecialStats)
        {
            constantStats[stat.Attribute] = new SpecialStat(stat);
        }

        // TODO: Implement Hidden ndd (defense) and wapmax (Max Weapon Attack)

        if (optionLevelFactor > 50)
        {
            GetDefault(item, constantStats, optionId, optionLevelFactor);
        }
    }