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)); }
public SpecialStat(ParserSpecialStat stat) { ItemAttribute = stat.Id; Flat = stat.Flat; Percent = stat.Percent; }
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; }