public async Task SetUpAsync() { _modifierDefinitions = await GameData.Modifiers.ConfigureAwait(false); _statTranslator = (await GameData.StatTranslators.ConfigureAwait(false))[StatTranslationFileNames.Main]; _parser = await ParserTask.ConfigureAwait(false); }
public static void UpdateItemAffixes( ModifierDefinitions modifierDefinitions, StatTranslators statTranslators, string baseTargetPath) { var domainWhitelist = new[] { ModDomain.AbyssJewel, ModDomain.Crafted, ModDomain.Flask, ModDomain.Item, ModDomain.Misc }; var statTranslator = statTranslators[StatTranslationFileNames.Main]; var affixLines = modifierDefinitions.Modifiers .Where(d => d.GenerationType == ModGenerationType.Prefix || d.GenerationType == ModGenerationType.Suffix) .Where(d => domainWhitelist.Contains(d.Domain)) .Select(d => d.Stats.Select(s => new UntranslatedStat(s.StatId, (s.MinValue + s.MaxValue) / 2))) .Select(statTranslator.Translate) .SelectMany(r => r.TranslatedStats) .Select(s => s.Replace('\n', ' ').Replace('\r', ' ')) .Select(s => (s, Regex.Replace(s, @"\d+(\.\d+)?", "#"))) .DistinctBy(t => t.Item2) .OrderBy(t => t.Item2) .Select(t => t.s); var path = baseTargetPath + "PoESkillTree.Engine.GameModel/Data/ItemAffixes.txt"; File.WriteAllLines(path, affixLines); }
private BaseItemJsonDeserializer(ModifierDefinitions modifiers) => _modifiers = modifiers;