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);
        }
Ejemplo n.º 3
0
 private BaseItemJsonDeserializer(ModifierDefinitions modifiers) => _modifiers = modifiers;