Exemple #1
0
    private static List <ParserSpecialStat> ParseSpecialValues(SpecialStatId attribute, XmlNode node, bool isPercent)
    {
        List <ParserSpecialStat> values = new();

        for (int i = 2; i <= 17; i++)
        {
            float value = float.Parse(node.Attributes[$"idx{i}"].Value);
            values.Add(new(attribute, isPercent ? value : 0, !isPercent ? value : 0));
        }

        return(values);
    }
    private static ItemStat ReadStat(int statId, int value)
    {
        // Normal Stat with percent value
        if (statId >= 1000 && statId < 11000)
        {
            float  percent   = (float)(value + 5) / 10000;
            StatId attribute = (StatId)(statId - 1000);
            return(new NormalStat(attribute, 0, percent));
        }

        // Special Stat with percent value
        if (statId >= 11000)
        {
            float         percent   = (float)(value + 5) / 10000;
            SpecialStatId attribute = (SpecialStatId)(statId - 11000);
            return(new SpecialStat(attribute, 0, percent));
        }

        // Normal Stat with flat value
        return(new NormalStat((StatId)statId, value, 0));
    }
Exemple #3
0
 public SpecialStat(ParserSpecialStat stat)
 {
     ItemAttribute = stat.Id;
     Flat          = stat.Flat;
     Percent       = stat.Percent;
 }
Exemple #4
0
 public SpecialStat(SpecialStatId attribute, float flat, float percent)
 {
     ItemAttribute = attribute;
     Flat          = flat;
     Percent       = percent;
 }
 public ParserSpecialStat(SpecialStatId id, float percent, float flat)
 {
     Id      = id;
     Percent = percent;
     Flat    = flat;
 }