using PkmnLib.Dataloader; using PkmnLib.Dynamic.Libraries; using PkmnLib.Plugin.Gen7; using PkmnLib.Static.Libraries; namespace PkmnLib.Tests.Integration; public static class LibraryHelpers { public static IDynamicLibrary LoadLibrary() { using var typesFile = File.Open("Data/Types.csv", FileMode.Open, FileAccess.Read, FileShare.Read); var types = TypeDataLoader.LoadTypeLibrary(typesFile); using var naturesFile = File.Open("Data/Natures.csv", FileMode.Open, FileAccess.Read, FileShare.Read); var natures = NatureDataLoader.LoadNatureLibrary(naturesFile); using var movesFile = File.Open("Data/Moves.json", FileMode.Open, FileAccess.Read, FileShare.Read); var moves = MoveDataLoader.LoadMoves(movesFile, types); using var itemsFile = File.Open("Data/Items.json", FileMode.Open, FileAccess.Read, FileShare.Read); var items = ItemDataLoader.LoadItems(itemsFile); using var abilitiesFile = File.Open("Data/Abilities.json", FileMode.Open, FileAccess.Read, FileShare.Read); var abilities = AbilityDataLoader.LoadAbilities(abilitiesFile); using var growthRatesFile = File.Open("Data/GrowthRates.json", FileMode.Open, FileAccess.Read, FileShare.Read); var growthRates = GrowthRateDataLoader.LoadGrowthRates(growthRatesFile); using var speciesFile = File.Open("Data/Pokemon.json", FileMode.Open, FileAccess.Read, FileShare.Read); var species = SpeciesDataLoader.LoadSpecies(speciesFile, types); var staticLibrary = new StaticLibraryImpl(new LibrarySettings() { MaxLevel = 100, ShinyRate = 4096, }, species, moves, abilities, types, natures, growthRates, items); var dynamicLibrary = DynamicLibraryImpl.Create(staticLibrary, [ new Gen7Plugin(new Gen7PluginConfiguration() { DamageCalculatorHasRandomness = false, }), ]); return dynamicLibrary; } }