using System.Linq; using PkmnLibSharp.Battling; using PkmnLibSharp.Library; using PkmnLibSharp.Library.GrowthRates; using PkmnLibSharp.Library.Items; using PkmnLibSharp.Library.Moves; namespace PkmnLibSharpTests.Battling { public static class BattleLibraryHelper { private static BattleLibrary _cache; public static BattleLibrary GetLibrary() { if (_cache != null) return _cache; _cache = BattleLibrary.Create(BuildStatic(), new StatCalculator(), new DamageLibrary(), new ExperienceLibrary(), new AngelScriptResolver(), new MiscLibrary()); return _cache; } private static PokemonLibrary BuildStatic() { var settings = new LibrarySettings(100, 4, 4096); var species = new SpeciesLibrary(10); species.Insert("testSpecies", Species.Create(1, "testSpecies", Forme.Create("default", 10f, 10f, 100, new byte[] {0, 1}, 100, 100, 100, 100, 100, 100, new[] {"testAbility", "testAbility2"}, new[] {"testHiddenAbility"}, LearnableMoves.Create(100)), 0.5f, "growthRate", 20, 100)); var moves = MoveLibrary.Create(10); moves.Insert("testMove", MoveData.Create("testMove", 0, MoveCategory.Physical, 100, 100, 20, MoveTarget.Any, 0, 0f, "", new EffectParameter[0], new string[0])); moves.Insert("testMove2", MoveData.Create("testMove2", 0, MoveCategory.Physical, 100, 100, 20, MoveTarget.Any, 0, 0f, "", new EffectParameter[0], new string[0])); var items = new ItemLibrary(10); items.Insert("testItem", Item.Create("testItem", ItemCategory.MiscItem, BattleItemCategory.None, 500, new string[] { }, 20)); var gr = new GrowthRateLibrary(10); gr.AddGrowthRate("growthRate", new LookupGrowthRate( Enumerable.Range(1, 100).Select(x => (uint)x * 100).ToArray())); var types = new TypeLibrary(10); var natures = new NatureLibrary(10); natures.LoadNature("testNature", new Nature()); var lib = PokemonLibrary.Create(settings, species, moves, items, gr, types, natures); return lib; } } }