Slight refactor to clean up resource loading from plugins
This commit is contained in:
parent
fdfca99e71
commit
a40d85fdae
@ -77,17 +77,24 @@ public static class LibraryLoader
|
||||
// ReSharper disable once SuspiciousTypeConversion.Global
|
||||
var mutators = plugins.OfType<IPluginDataMutator>().ToList();
|
||||
|
||||
var typesLibrary = TypeDataLoader.LoadTypeLibrary(typesResult);
|
||||
var naturesLibrary = NatureDataLoader.LoadNatureLibrary(naturesResult);
|
||||
var movesLibrary = MoveDataLoader.LoadMoves(movesResult, typesLibrary,
|
||||
using var typesStream = typesResult.Open();
|
||||
var typesLibrary = TypeDataLoader.LoadTypeLibrary(typesStream);
|
||||
using var naturesStream = naturesResult.Open();
|
||||
var naturesLibrary = NatureDataLoader.LoadNatureLibrary(naturesStream);
|
||||
using var movesStream = movesResult.Open();
|
||||
var movesLibrary = MoveDataLoader.LoadMoves(movesStream, typesLibrary,
|
||||
wrapper => mutators.ForEach(x => x.MutateMoveData(wrapper)));
|
||||
var itemsLibrary = ItemDataLoader.LoadItems(itemsResult,
|
||||
using var itemsStream = itemsResult.Open();
|
||||
var itemsLibrary = ItemDataLoader.LoadItems(itemsStream,
|
||||
items => mutators.ForEach(x => x.MutateItemData(items)));
|
||||
var abilitiesLibrary = AbilityDataLoader.LoadAbilities(abilitiesResult,
|
||||
using var abilitiesStream = abilitiesResult.Open();
|
||||
var abilitiesLibrary = AbilityDataLoader.LoadAbilities(abilitiesStream,
|
||||
abilities => mutators.ForEach(x => x.MutateAbilityData(abilities)));
|
||||
var growthRatesLibrary = GrowthRateDataLoader.LoadGrowthRates(growthRatesResult,
|
||||
using var growthRatesStream = growthRatesResult.Open();
|
||||
var growthRatesLibrary = GrowthRateDataLoader.LoadGrowthRates(growthRatesStream,
|
||||
growthRates => mutators.ForEach(x => x.MutateGrowthRateData(growthRates)));
|
||||
var speciesLibrary = SpeciesDataLoader.LoadSpecies(speciesResult, typesLibrary,
|
||||
using var speciesStream = speciesResult.Open();
|
||||
var speciesLibrary = SpeciesDataLoader.LoadSpecies(speciesStream, typesLibrary,
|
||||
map => mutators.ForEach(x => x.MutateSpeciesData(map)));
|
||||
|
||||
return new StaticLibraryImpl(settings, speciesLibrary, movesLibrary, abilitiesLibrary, typesLibrary,
|
||||
|
@ -1,3 +1,4 @@
|
||||
using System.Reflection;
|
||||
using PkmnLib.Static.Libraries;
|
||||
|
||||
namespace PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||
@ -13,9 +14,10 @@ public interface IResourceProvider
|
||||
LibrarySettings? Settings { get; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the resource for the given type. This is used to load resources from the plugin.
|
||||
/// Gets the resource for the given type. This is used to load resources from the plugin. Returns null if the
|
||||
/// plugin does not provide the resource.
|
||||
/// </summary>
|
||||
Stream? GetResource(ResourceFileType request);
|
||||
IResourceResult? GetResource(ResourceFileType request);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -63,3 +65,35 @@ public enum ResourceFileType
|
||||
/// </summary>
|
||||
Species,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Interface for a resource result. This is used to load resources from the plugin.
|
||||
/// </summary>
|
||||
public interface IResourceResult
|
||||
{
|
||||
/// <summary>
|
||||
/// Opens the resource and returns a stream. This is used to load the resource from the plugin.
|
||||
/// </summary>
|
||||
Stream Open();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Class for a resource result that is loaded from an embedded resource in an assembly.
|
||||
/// </summary>
|
||||
public class AssemblyResourceResult : IResourceResult
|
||||
{
|
||||
private readonly string _resourceName;
|
||||
private readonly Assembly _assembly;
|
||||
|
||||
/// <inheritdoc cref="AssemblyResourceResult" />
|
||||
public AssemblyResourceResult(string resourceName, Assembly assembly)
|
||||
{
|
||||
_resourceName = resourceName;
|
||||
_assembly = assembly;
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public Stream Open() => _assembly.GetManifestResourceStream(_resourceName) ??
|
||||
throw new InvalidOperationException(
|
||||
$"Resource '{_resourceName}' not found in assembly '{_assembly.FullName}'.");
|
||||
}
|
@ -1,327 +0,0 @@
|
||||
{
|
||||
"adaptability": {
|
||||
"effect": "IncreasedStab"
|
||||
},
|
||||
"aerilate": {
|
||||
"effect": "ChangeMoveType",
|
||||
"parameters": {
|
||||
"from": "normal",
|
||||
"to": "flying"
|
||||
}
|
||||
},
|
||||
"aftermath": {
|
||||
"effect": "Aftermath"
|
||||
},
|
||||
"air_lock": {
|
||||
"effect": "SuppressWeather"
|
||||
},
|
||||
"analytic": {
|
||||
"effect": "Analytic"
|
||||
},
|
||||
"anger_point": {
|
||||
"effect": "AngerPoint"
|
||||
},
|
||||
"anticipation": {
|
||||
"effect": "Anticipation"
|
||||
},
|
||||
"arena_trap": {
|
||||
"effect": "ArenaTrap"
|
||||
},
|
||||
"aroma_veil": {
|
||||
"effect": "AromaVeil"
|
||||
},
|
||||
"aura_break": {
|
||||
"effect": "AuraBreal"
|
||||
},
|
||||
"bad_dreams": {
|
||||
"effect": "BadDreams"
|
||||
},
|
||||
"battery": {
|
||||
"effect": "Battery"
|
||||
},
|
||||
"battle_armor": {
|
||||
"effect": "PreventCritical"
|
||||
},
|
||||
"battle_bond": {
|
||||
"effect": "BattleBond",
|
||||
"flags": ["cant_be_changed"]
|
||||
},
|
||||
"beast_boost": {
|
||||
"effect": "BeastBoost"
|
||||
},
|
||||
"berserk": {
|
||||
"effect": "Berserk"
|
||||
},
|
||||
"big_pecks": {
|
||||
"effect": "PreventDefLowering"
|
||||
},
|
||||
"blaze": {
|
||||
"effect": "PowerUpType",
|
||||
"parameters": {
|
||||
"type": "fire"
|
||||
}
|
||||
},
|
||||
"bulletproof": {
|
||||
"effect": "Bulletproof"
|
||||
},
|
||||
"cheek_pouch": {
|
||||
"effect": "CheekPouch"
|
||||
},
|
||||
"chlorophyll": {
|
||||
"effect": "DoubleSpeedInWeather",
|
||||
"parameters": {
|
||||
"weather": "HarshSunlight"
|
||||
}
|
||||
},
|
||||
"clear_body": {
|
||||
"effect": "PreventStatLowering"
|
||||
},
|
||||
"cloud_nine": {
|
||||
"effect": "SuppressWeather"
|
||||
},
|
||||
"color_change": {
|
||||
"effect": "ColorChange"
|
||||
},
|
||||
"comatose": {
|
||||
"flags": ["cant_be_changed"]
|
||||
},
|
||||
"competitive": {},
|
||||
"compound_eyes": {},
|
||||
"contrary": {},
|
||||
"corrosion": {},
|
||||
"cursed_body": {},
|
||||
"cute_charm": {},
|
||||
"damp": {},
|
||||
"dancer": {},
|
||||
"dark_aura": {},
|
||||
"dazzling": {},
|
||||
"defeatist": {},
|
||||
"defiant": {},
|
||||
"delta_stream": {},
|
||||
"desolate_land": {},
|
||||
"disguise": {
|
||||
"flags": ["cant_be_changed", "cant_be_copied"]
|
||||
},
|
||||
"download": {},
|
||||
"drizzle": {},
|
||||
"drought": {},
|
||||
"dry_skin": {},
|
||||
"early_bird": {},
|
||||
"effect_spore": {},
|
||||
"electric_surge": {},
|
||||
"emergency_exit": {},
|
||||
"fairy_aura": {},
|
||||
"filter": {},
|
||||
"flame_body": {},
|
||||
"flare_boost": {},
|
||||
"flash_fire": {},
|
||||
"flower_gift": {
|
||||
"flags": ["cant_be_copied"]
|
||||
},
|
||||
"flower_veil": {},
|
||||
"fluffy": {},
|
||||
"forecast": {
|
||||
"flags": ["cant_be_copied"]
|
||||
},
|
||||
"forewarn": {},
|
||||
"friend_guard": {},
|
||||
"frisk": {},
|
||||
"full_metal_body": {},
|
||||
"fur_coat": {},
|
||||
"gale_wings": {},
|
||||
"galvanize": {},
|
||||
"gluttony": {},
|
||||
"gooey": {},
|
||||
"grass_pelt": {},
|
||||
"grassy_surge": {},
|
||||
"guts": {},
|
||||
"harvest": {},
|
||||
"healer": {},
|
||||
"heatproof": {},
|
||||
"heavy_metal": {},
|
||||
"honey_gather": {},
|
||||
"huge_power": {},
|
||||
"hustle": {},
|
||||
"hydration": {},
|
||||
"hyper_cutter": {},
|
||||
"ice_body": {},
|
||||
"illuminate": {},
|
||||
"illusion": {
|
||||
"flags": ["cant_be_copied"]
|
||||
},
|
||||
"immunity": {},
|
||||
"imposter": {
|
||||
"flags": ["cant_be_copied"]
|
||||
},
|
||||
"infiltrator": {},
|
||||
"innards_out": {},
|
||||
"inner_focus": {},
|
||||
"insomnia": {},
|
||||
"intimidate": {},
|
||||
"iron_barbs": {},
|
||||
"iron_fist": {},
|
||||
"justified": {},
|
||||
"keen_eye": {},
|
||||
"klutz": {},
|
||||
"leaf_guard": {},
|
||||
"levitate": {},
|
||||
"light_metal": {},
|
||||
"lightning_rod": {},
|
||||
"limber": {},
|
||||
"liquid_ooze": {},
|
||||
"liquid_voice": {},
|
||||
"long_reach": {},
|
||||
"magic_bounce": {},
|
||||
"magic_guard": {},
|
||||
"magician": {},
|
||||
"magma_armor": {},
|
||||
"magnet_pull": {},
|
||||
"marvel_scale": {},
|
||||
"mega_launcher": {},
|
||||
"merciless": {},
|
||||
"minus": {},
|
||||
"misty_surge": {},
|
||||
"mold_breaker": {},
|
||||
"moody": {},
|
||||
"motor_drive": {},
|
||||
"moxie": {},
|
||||
"multiscale": {},
|
||||
"multitype": {
|
||||
"flags": ["cant_be_changed"]
|
||||
},
|
||||
"mummy": {},
|
||||
"natural_cure": {},
|
||||
"no_guard": {},
|
||||
"normalize": {},
|
||||
"oblivious": {},
|
||||
"overcoat": {},
|
||||
"overgrow": {},
|
||||
"own_tempo": {},
|
||||
"parental_bond": {},
|
||||
"pickpocket": {},
|
||||
"pickup": {},
|
||||
"pixilate": {},
|
||||
"plus": {},
|
||||
"poison_heal": {},
|
||||
"poison_point": {},
|
||||
"poison_touch": {},
|
||||
"power_construct": {
|
||||
"flags": ["cant_be_changed", "cant_be_copied"]
|
||||
},
|
||||
"power_of_alchemy": {
|
||||
"flags": ["cant_be_copied"]
|
||||
},
|
||||
"prankster": {},
|
||||
"pressure": {},
|
||||
"primordial_sea": {},
|
||||
"prism_armor": {},
|
||||
"protean": {},
|
||||
"psychic_surge": {},
|
||||
"pure_power": {},
|
||||
"queenly_majesty": {},
|
||||
"quick_feet": {},
|
||||
"rain_dish": {},
|
||||
"rattled": {},
|
||||
"receiver": {
|
||||
"flags": ["cant_be_copied"]
|
||||
},
|
||||
"reckless": {},
|
||||
"refrigerate": {},
|
||||
"regenerator": {},
|
||||
"rivalry": {},
|
||||
"rks_system": {
|
||||
"flags": ["cant_be_changed"]
|
||||
},
|
||||
"rock_head": {},
|
||||
"rough_skin": {},
|
||||
"run_away": {},
|
||||
"sand_force": {},
|
||||
"sand_rush": {},
|
||||
"sand_stream": {},
|
||||
"sand_veil": {},
|
||||
"sap_sipper": {},
|
||||
"schooling": {
|
||||
"flags": ["cant_be_changed"]
|
||||
},
|
||||
"scrappy": {},
|
||||
"serene_grace": {},
|
||||
"shadow_shield": {},
|
||||
"shadow_tag": {},
|
||||
"shed_skin": {},
|
||||
"sheer_force": {},
|
||||
"shell_armor": {},
|
||||
"shield_dust": {},
|
||||
"shields_down": {
|
||||
"flags": ["cant_be_changed"]
|
||||
},
|
||||
"simple": {},
|
||||
"skill_link": {},
|
||||
"slow_start": {},
|
||||
"slush_rush": {},
|
||||
"sniper": {},
|
||||
"snow_cloak": {},
|
||||
"snow_warning": {},
|
||||
"solar_power": {},
|
||||
"solid_rock": {},
|
||||
"soul_heart": {},
|
||||
"soundproof": {},
|
||||
"speed_boost": {},
|
||||
"stakeout": {},
|
||||
"stall": {},
|
||||
"stamina": {},
|
||||
"stance_change": {
|
||||
"flags": ["cant_be_changed"]
|
||||
},
|
||||
"static": {},
|
||||
"steadfast": {},
|
||||
"steelworker": {},
|
||||
"stench": {},
|
||||
"sticky_hold": {},
|
||||
"storm_drain": {},
|
||||
"strong_jaw": {},
|
||||
"sturdy": {},
|
||||
"suction_cups": {},
|
||||
"super_luck": {},
|
||||
"surge_surfer": {},
|
||||
"swarm": {},
|
||||
"sweet_veil": {},
|
||||
"swift_swim": {},
|
||||
"symbiosis": {},
|
||||
"synchronize": {},
|
||||
"tangled_feet": {},
|
||||
"tangling_hair": {},
|
||||
"technician": {},
|
||||
"telepathy": {},
|
||||
"teravolt": {},
|
||||
"thick_fat": {},
|
||||
"tinted_lens": {},
|
||||
"torrent": {},
|
||||
"tough_claws": {},
|
||||
"toxic_boost": {},
|
||||
"trace": {
|
||||
"flags": ["cant_be_copied"]
|
||||
},
|
||||
"triage": {},
|
||||
"truant": {
|
||||
"flags": ["cant_be_changed"]
|
||||
},
|
||||
"turboblaze": {},
|
||||
"unaware": {},
|
||||
"unburden": {},
|
||||
"unnerve": {},
|
||||
"victory_star": {},
|
||||
"vital_spirit": {},
|
||||
"volt_absorb": {},
|
||||
"water_absorb": {},
|
||||
"water_bubble": {},
|
||||
"water_compaction": {},
|
||||
"water_veil": {},
|
||||
"weak_armor": {},
|
||||
"white_smoke": {},
|
||||
"wimp_out": {},
|
||||
"wonder_guard": {},
|
||||
"wonder_skin": {},
|
||||
"zen_mode": {
|
||||
"flags": ["cant_be_copied"]
|
||||
}
|
||||
}
|
@ -1,614 +0,0 @@
|
||||
{
|
||||
"Erratic": [
|
||||
0,
|
||||
15,
|
||||
52,
|
||||
122,
|
||||
237,
|
||||
406,
|
||||
637,
|
||||
942,
|
||||
1326,
|
||||
1800,
|
||||
2369,
|
||||
3041,
|
||||
3822,
|
||||
4719,
|
||||
5737,
|
||||
6881,
|
||||
8155,
|
||||
9564,
|
||||
11111,
|
||||
12800,
|
||||
14632,
|
||||
16610,
|
||||
18737,
|
||||
21012,
|
||||
23437,
|
||||
26012,
|
||||
28737,
|
||||
31610,
|
||||
34632,
|
||||
37800,
|
||||
41111,
|
||||
44564,
|
||||
48155,
|
||||
51881,
|
||||
55737,
|
||||
59719,
|
||||
63822,
|
||||
68041,
|
||||
72369,
|
||||
76800,
|
||||
81326,
|
||||
85942,
|
||||
90637,
|
||||
95406,
|
||||
100237,
|
||||
105122,
|
||||
110052,
|
||||
115015,
|
||||
120001,
|
||||
125000,
|
||||
131324,
|
||||
137795,
|
||||
144410,
|
||||
151165,
|
||||
158056,
|
||||
165079,
|
||||
172229,
|
||||
179503,
|
||||
186894,
|
||||
194400,
|
||||
202013,
|
||||
209728,
|
||||
217540,
|
||||
225443,
|
||||
233431,
|
||||
241496,
|
||||
249633,
|
||||
257834,
|
||||
267406,
|
||||
276458,
|
||||
286328,
|
||||
296358,
|
||||
305767,
|
||||
316074,
|
||||
326531,
|
||||
336255,
|
||||
346965,
|
||||
357812,
|
||||
367807,
|
||||
378880,
|
||||
390077,
|
||||
400293,
|
||||
411686,
|
||||
423190,
|
||||
433572,
|
||||
445239,
|
||||
457001,
|
||||
467489,
|
||||
479378,
|
||||
491346,
|
||||
501878,
|
||||
513934,
|
||||
526049,
|
||||
536557,
|
||||
548720,
|
||||
560922,
|
||||
571333,
|
||||
583539,
|
||||
591882,
|
||||
600000
|
||||
],
|
||||
"Fast": [
|
||||
0,
|
||||
6,
|
||||
21,
|
||||
51,
|
||||
100,
|
||||
172,
|
||||
274,
|
||||
409,
|
||||
583,
|
||||
800,
|
||||
1064,
|
||||
1382,
|
||||
1757,
|
||||
2195,
|
||||
2700,
|
||||
3276,
|
||||
3930,
|
||||
4665,
|
||||
5487,
|
||||
6400,
|
||||
7408,
|
||||
8518,
|
||||
9733,
|
||||
11059,
|
||||
12500,
|
||||
14060,
|
||||
15746,
|
||||
17561,
|
||||
19511,
|
||||
21600,
|
||||
23832,
|
||||
26214,
|
||||
28749,
|
||||
31443,
|
||||
34300,
|
||||
37324,
|
||||
40522,
|
||||
43897,
|
||||
47455,
|
||||
51200,
|
||||
55136,
|
||||
59270,
|
||||
63605,
|
||||
68147,
|
||||
72900,
|
||||
77868,
|
||||
83058,
|
||||
88473,
|
||||
94119,
|
||||
100000,
|
||||
106120,
|
||||
112486,
|
||||
119101,
|
||||
125971,
|
||||
133100,
|
||||
140492,
|
||||
148154,
|
||||
156089,
|
||||
164303,
|
||||
172800,
|
||||
181584,
|
||||
190662,
|
||||
200037,
|
||||
209715,
|
||||
219700,
|
||||
229996,
|
||||
240610,
|
||||
251545,
|
||||
262807,
|
||||
274400,
|
||||
286328,
|
||||
298598,
|
||||
311213,
|
||||
324179,
|
||||
337500,
|
||||
351180,
|
||||
365226,
|
||||
379641,
|
||||
394431,
|
||||
409600,
|
||||
425152,
|
||||
441094,
|
||||
457429,
|
||||
474163,
|
||||
491300,
|
||||
508844,
|
||||
526802,
|
||||
545177,
|
||||
563975,
|
||||
583200,
|
||||
602856,
|
||||
622950,
|
||||
643485,
|
||||
664467,
|
||||
685900,
|
||||
707788,
|
||||
730138,
|
||||
752953,
|
||||
776239,
|
||||
800000
|
||||
],
|
||||
"MediumFast": [
|
||||
0,
|
||||
8,
|
||||
27,
|
||||
64,
|
||||
125,
|
||||
216,
|
||||
343,
|
||||
512,
|
||||
729,
|
||||
1000,
|
||||
1331,
|
||||
1728,
|
||||
2197,
|
||||
2744,
|
||||
3375,
|
||||
4096,
|
||||
4913,
|
||||
5832,
|
||||
6859,
|
||||
8000,
|
||||
9261,
|
||||
10648,
|
||||
12167,
|
||||
13824,
|
||||
15625,
|
||||
17576,
|
||||
19683,
|
||||
21952,
|
||||
24389,
|
||||
27000,
|
||||
29791,
|
||||
32768,
|
||||
35937,
|
||||
39304,
|
||||
42875,
|
||||
46656,
|
||||
50653,
|
||||
54872,
|
||||
59319,
|
||||
64000,
|
||||
68921,
|
||||
74088,
|
||||
79507,
|
||||
85184,
|
||||
91125,
|
||||
97336,
|
||||
103823,
|
||||
110592,
|
||||
117649,
|
||||
125000,
|
||||
132651,
|
||||
140608,
|
||||
148877,
|
||||
157464,
|
||||
166375,
|
||||
175616,
|
||||
185193,
|
||||
195112,
|
||||
205379,
|
||||
216000,
|
||||
226981,
|
||||
238328,
|
||||
250047,
|
||||
262144,
|
||||
274625,
|
||||
287496,
|
||||
300763,
|
||||
314432,
|
||||
328509,
|
||||
343000,
|
||||
357911,
|
||||
373248,
|
||||
389017,
|
||||
405224,
|
||||
421875,
|
||||
438976,
|
||||
456533,
|
||||
474552,
|
||||
493039,
|
||||
512000,
|
||||
531441,
|
||||
551368,
|
||||
571787,
|
||||
592704,
|
||||
614125,
|
||||
636056,
|
||||
658503,
|
||||
681472,
|
||||
704969,
|
||||
729000,
|
||||
753571,
|
||||
778688,
|
||||
804357,
|
||||
830584,
|
||||
857375,
|
||||
884736,
|
||||
912673,
|
||||
941192,
|
||||
970299,
|
||||
1000000
|
||||
],
|
||||
"MediumSlow": [
|
||||
0,
|
||||
9,
|
||||
57,
|
||||
96,
|
||||
135,
|
||||
179,
|
||||
236,
|
||||
314,
|
||||
419,
|
||||
560,
|
||||
742,
|
||||
973,
|
||||
1261,
|
||||
1612,
|
||||
2035,
|
||||
2535,
|
||||
3120,
|
||||
3798,
|
||||
4575,
|
||||
5460,
|
||||
6458,
|
||||
7577,
|
||||
8825,
|
||||
10208,
|
||||
11735,
|
||||
13411,
|
||||
15244,
|
||||
17242,
|
||||
19411,
|
||||
21760,
|
||||
24294,
|
||||
27021,
|
||||
29949,
|
||||
33084,
|
||||
36435,
|
||||
40007,
|
||||
43808,
|
||||
47846,
|
||||
52127,
|
||||
56660,
|
||||
61450,
|
||||
66505,
|
||||
71833,
|
||||
77440,
|
||||
83335,
|
||||
89523,
|
||||
96012,
|
||||
102810,
|
||||
109923,
|
||||
117360,
|
||||
125126,
|
||||
133229,
|
||||
141677,
|
||||
150476,
|
||||
159635,
|
||||
169159,
|
||||
179056,
|
||||
189334,
|
||||
199999,
|
||||
211060,
|
||||
222522,
|
||||
234393,
|
||||
246681,
|
||||
259392,
|
||||
272535,
|
||||
286115,
|
||||
300140,
|
||||
314618,
|
||||
329555,
|
||||
344960,
|
||||
360838,
|
||||
377197,
|
||||
394045,
|
||||
411388,
|
||||
429235,
|
||||
447591,
|
||||
466464,
|
||||
485862,
|
||||
505791,
|
||||
526260,
|
||||
547274,
|
||||
568841,
|
||||
590969,
|
||||
613664,
|
||||
636935,
|
||||
660787,
|
||||
685228,
|
||||
710266,
|
||||
735907,
|
||||
762160,
|
||||
789030,
|
||||
816525,
|
||||
844653,
|
||||
873420,
|
||||
902835,
|
||||
932903,
|
||||
963632,
|
||||
995030,
|
||||
1027103,
|
||||
1059860
|
||||
],
|
||||
"Slow": [
|
||||
0,
|
||||
10,
|
||||
33,
|
||||
80,
|
||||
156,
|
||||
270,
|
||||
428,
|
||||
640,
|
||||
911,
|
||||
1250,
|
||||
1663,
|
||||
2160,
|
||||
2746,
|
||||
3430,
|
||||
4218,
|
||||
5120,
|
||||
6141,
|
||||
7290,
|
||||
8573,
|
||||
10000,
|
||||
11576,
|
||||
13310,
|
||||
15208,
|
||||
17280,
|
||||
19531,
|
||||
21970,
|
||||
24603,
|
||||
27440,
|
||||
30486,
|
||||
33750,
|
||||
37238,
|
||||
40960,
|
||||
44921,
|
||||
49130,
|
||||
53593,
|
||||
58320,
|
||||
63316,
|
||||
68590,
|
||||
74148,
|
||||
80000,
|
||||
86151,
|
||||
92610,
|
||||
99383,
|
||||
106480,
|
||||
113906,
|
||||
121670,
|
||||
129778,
|
||||
138240,
|
||||
147061,
|
||||
156250,
|
||||
165813,
|
||||
175760,
|
||||
186096,
|
||||
196830,
|
||||
207968,
|
||||
219520,
|
||||
231491,
|
||||
243890,
|
||||
256723,
|
||||
270000,
|
||||
283726,
|
||||
297910,
|
||||
312558,
|
||||
327680,
|
||||
343281,
|
||||
359370,
|
||||
375953,
|
||||
393040,
|
||||
410636,
|
||||
428750,
|
||||
447388,
|
||||
466560,
|
||||
486271,
|
||||
506530,
|
||||
527343,
|
||||
548720,
|
||||
570666,
|
||||
593190,
|
||||
616298,
|
||||
640000,
|
||||
664301,
|
||||
689210,
|
||||
714733,
|
||||
740880,
|
||||
767656,
|
||||
795070,
|
||||
823128,
|
||||
851840,
|
||||
881211,
|
||||
911250,
|
||||
941963,
|
||||
973360,
|
||||
1005446,
|
||||
1038230,
|
||||
1071718,
|
||||
1105920,
|
||||
1140841,
|
||||
1176490,
|
||||
1212873,
|
||||
1250000
|
||||
],
|
||||
"Fluctuating": [
|
||||
0,
|
||||
4,
|
||||
13,
|
||||
32,
|
||||
65,
|
||||
112,
|
||||
178,
|
||||
276,
|
||||
393,
|
||||
540,
|
||||
745,
|
||||
967,
|
||||
1230,
|
||||
1591,
|
||||
1957,
|
||||
2457,
|
||||
3046,
|
||||
3732,
|
||||
4526,
|
||||
5440,
|
||||
6482,
|
||||
7666,
|
||||
9003,
|
||||
10506,
|
||||
12187,
|
||||
14060,
|
||||
16140,
|
||||
18439,
|
||||
20974,
|
||||
23760,
|
||||
26811,
|
||||
30146,
|
||||
33780,
|
||||
37731,
|
||||
42017,
|
||||
46656,
|
||||
50653,
|
||||
55969,
|
||||
60505,
|
||||
66560,
|
||||
71677,
|
||||
78533,
|
||||
84277,
|
||||
91998,
|
||||
98415,
|
||||
107069,
|
||||
114205,
|
||||
123863,
|
||||
131766,
|
||||
142500,
|
||||
151222,
|
||||
163105,
|
||||
172697,
|
||||
185807,
|
||||
196322,
|
||||
210739,
|
||||
222231,
|
||||
238036,
|
||||
250562,
|
||||
267840,
|
||||
281456,
|
||||
300293,
|
||||
315059,
|
||||
335544,
|
||||
351520,
|
||||
373744,
|
||||
390991,
|
||||
415050,
|
||||
433631,
|
||||
459620,
|
||||
479600,
|
||||
507617,
|
||||
529063,
|
||||
559209,
|
||||
582187,
|
||||
614566,
|
||||
639146,
|
||||
673863,
|
||||
700115,
|
||||
737280,
|
||||
765275,
|
||||
804997,
|
||||
834809,
|
||||
877201,
|
||||
908905,
|
||||
954084,
|
||||
987754,
|
||||
1035837,
|
||||
1071552,
|
||||
1122660,
|
||||
1160499,
|
||||
1214753,
|
||||
1254796,
|
||||
1312322,
|
||||
1354652,
|
||||
1415577,
|
||||
1460276,
|
||||
1524731,
|
||||
1571884,
|
||||
1640000
|
||||
]
|
||||
}
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,26 +0,0 @@
|
||||
Name|Increased|Decreased
|
||||
Hardy||
|
||||
Lonely|Attack|Defense
|
||||
Brave|Attack|Speed
|
||||
Adamant|Attack|SpecialAttack
|
||||
Naughty|Attack|SpecialDefense
|
||||
Bold|Defense|Attack
|
||||
Docile||
|
||||
Relaxed|Defense|Speed
|
||||
Impish|Defense|SpecialAttack
|
||||
Lax|Defense|SpecialDefense
|
||||
Timid|Speed|Attack
|
||||
Hasty|Speed|Defense
|
||||
Serious||
|
||||
Jolly|Speed|SpecialAttack
|
||||
Naive|Speed|SpecialDefense
|
||||
Modest|SpecialAttack|Attack
|
||||
Mild|SpecialAttack|Defense
|
||||
Quiet|SpecialAttack|Speed
|
||||
Bashful||
|
||||
Rash|SpecialAttack|SpecialDefense
|
||||
Calm|SpecialDefense|Attack
|
||||
Gentle|SpecialDefense|Defense
|
||||
Sassy|SpecialDefense|Speed
|
||||
Careful|SpecialDefense|SpecialAttack
|
||||
Quirky||
|
|
File diff suppressed because it is too large
Load Diff
@ -1,19 +0,0 @@
|
||||
Types|Normal|Fighting|Flying|Poison|Ground|Rock|Bug|Ghost|Steel|Fire|Water|Grass|Electric|Psychic|Ice|Dragon|Dark|Fairy
|
||||
Normal|1|1|1|1|1|0.5|1|0|0.5|1|1|1|1|1|1|1|1|1
|
||||
Fighting|2|1|0.5|0.5|1|2|0.5|0|2|1|1|1|1|0.5|2|1|2|0.5
|
||||
Flying|1|2|1|1|1|0.5|2|1|0.5|1|1|2|0.5|1|1|1|1|1
|
||||
Poison|1|1|1|0.5|0.5|0.5|1|0.5|0|1|1|2|1|1|1|1|1|2
|
||||
Ground|1|1|0|2|1|2|0.5|1|2|2|1|0.5|2|1|1|1|1|1
|
||||
Rock|1|0.5|2|1|0.5|1|2|1|0.5|2|1|1|1|1|2|1|1|1
|
||||
Bug|1|0.5|0.5|0.5|1|1|1|0.5|0.5|0.5|1|2|1|2|1|1|2|0.5
|
||||
Ghost|0|1|1|1|1|1|1|2|1|1|1|1|1|2|1|1|0.5|1
|
||||
Steel|1|1|1|1|1|2|1|1|0.5|0.5|0.5|1|0.5|1|2|1|1|2
|
||||
Fire|1|1|1|1|1|0.5|2|1|2|0.5|0.5|2|1|1|2|0.5|1|1
|
||||
Water|1|1|1|1|2|2|1|1|1|2|0.5|0.5|1|1|1|0.5|1|1
|
||||
Grass|1|1|0.5|0.5|2|2|0.5|1|0.5|0.5|2|0.5|1|1|1|0.5|1|1
|
||||
Electric|1|1|2|1|0|1|1|1|1|1|2|0.5|0.5|1|1|0.5|1|1
|
||||
Psychic|1|2|1|2|1|1|1|1|0.5|1|1|1|1|0.5|1|1|0|1
|
||||
Ice|1|1|2|1|2|1|1|1|0.5|0.5|0.5|2|1|1|0.5|2|1|1
|
||||
Dragon|1|1|1|1|1|1|1|1|0.5|1|1|1|1|1|1|2|1|0
|
||||
Dark|1|0.5|1|1|1|1|1|2|1|1|1|1|1|2|1|1|0.5|0.5
|
||||
Fairy|1|2|1|0.5|1|1|1|1|0.5|0.5|1|1|1|1|1|2|2|1
|
|
@ -40,7 +40,7 @@ public class MoveDataTests
|
||||
catch (Exception e)
|
||||
{
|
||||
// Helper method to find the line number of the effect in the JSON file
|
||||
var file = Path.GetFullPath("../../../../PkmnLib.Tests/Data/Moves.jsonc");
|
||||
var file = Path.GetFullPath("../../../../Plugins/PkmnLib.Plugin.Gen7/Data/Moves.jsonc");
|
||||
var json = await File.ReadAllLinesAsync(file);
|
||||
var moveLineNumber = json.Select((line, index) => new { line, index })
|
||||
.FirstOrDefault(x => x.line.Contains($"\"name\": \"{test.Move.Name}\""))?.index + 1;
|
||||
|
@ -1,4 +1,5 @@
|
||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||
|
||||
namespace PkmnLib.Tests.Dataloader;
|
||||
|
||||
@ -7,7 +8,9 @@ public class AbilityDataLoaderTests
|
||||
[Test]
|
||||
public async Task TestPrimaryAbilityFile()
|
||||
{
|
||||
await using var stream = File.OpenRead("Data/Abilities.json");
|
||||
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||
var result = plugin.GetResource(ResourceFileType.Abilities)!;
|
||||
await using var stream = result.Open();
|
||||
var library = AbilityDataLoader.LoadAbilities(stream);
|
||||
await Assert.That(library).IsNotNull();
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||
|
||||
namespace PkmnLib.Tests.Dataloader;
|
||||
|
||||
@ -7,7 +8,9 @@ public class GrowthRateDataLoaderTests
|
||||
[Test]
|
||||
public async Task TestPrimaryGrowthRateFile()
|
||||
{
|
||||
await using var file = File.Open("Data/GrowthRates.json", FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||
var result = plugin.GetResource(ResourceFileType.GrowthRates)!;
|
||||
await using var file = result.Open();
|
||||
var library = GrowthRateDataLoader.LoadGrowthRates(file);
|
||||
await Assert.That(library).IsNotNull();
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||
|
||||
namespace PkmnLib.Tests.Dataloader;
|
||||
|
||||
@ -7,7 +8,9 @@ public class ItemDataLoaderTests
|
||||
[Test]
|
||||
public async Task TestPrimaryItemFile()
|
||||
{
|
||||
await using var stream = File.OpenRead("Data/Items.json");
|
||||
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||
var result = plugin.GetResource(ResourceFileType.Items)!;
|
||||
await using var stream = result.Open();
|
||||
var library = ItemDataLoader.LoadItems(stream);
|
||||
await Assert.That(library).IsNotNull();
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||
using PkmnLib.Static.Libraries;
|
||||
|
||||
namespace PkmnLib.Tests.Dataloader;
|
||||
@ -8,7 +9,9 @@ public class MoveDataLoaderTests
|
||||
[Test]
|
||||
public async Task TestPrimaryMoveFile()
|
||||
{
|
||||
await using var stream = File.OpenRead("Data/Moves.jsonc");
|
||||
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||
var result = plugin.GetResource(ResourceFileType.Moves)!;
|
||||
await using var stream = result.Open();
|
||||
var typeLibrary = new TypeLibrary();
|
||||
typeLibrary.RegisterType("Normal");
|
||||
typeLibrary.RegisterType("Fire");
|
||||
|
@ -1,4 +1,5 @@
|
||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||
|
||||
namespace PkmnLib.Tests.Dataloader;
|
||||
|
||||
@ -7,7 +8,9 @@ public class NatureDataloaderTests
|
||||
[Test]
|
||||
public async Task TestPrimaryNatureFile()
|
||||
{
|
||||
await using var file = File.Open("Data/Natures.csv", FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||
var result = plugin.GetResource(ResourceFileType.Natures)!;
|
||||
await using var file = result.Open();
|
||||
var library = NatureDataLoader.LoadNatureLibrary(file);
|
||||
await Assert.That(library).IsNotNull();
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||
using PkmnLib.Static.Libraries;
|
||||
|
||||
namespace PkmnLib.Tests.Dataloader;
|
||||
@ -8,7 +9,9 @@ public class SpeciesDataloaderTests
|
||||
[Test]
|
||||
public async Task TestPrimarySpeciesFile()
|
||||
{
|
||||
await using var file = File.Open("Data/Pokemon.json", FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||
var result = plugin.GetResource(ResourceFileType.Species)!;
|
||||
await using var file = result.Open();
|
||||
var typeLibrary = new TypeLibrary();
|
||||
typeLibrary.RegisterType("Normal");
|
||||
typeLibrary.RegisterType("Fire");
|
||||
|
@ -1,4 +1,5 @@
|
||||
using PkmnLib.Dynamic.Libraries.DataLoaders;
|
||||
using PkmnLib.Dynamic.ScriptHandling.Registry;
|
||||
|
||||
namespace PkmnLib.Tests.Dataloader;
|
||||
|
||||
@ -7,7 +8,9 @@ public class TypeDataloaderTests
|
||||
[Test]
|
||||
public async Task TestPrimaryTypesFile()
|
||||
{
|
||||
await using var file = File.Open("Data/Types.csv", FileMode.Open, FileAccess.Read, FileShare.Read);
|
||||
IResourceProvider plugin = new Plugin.Gen7.Gen7Plugin();
|
||||
var result = plugin.GetResource(ResourceFileType.Types)!;
|
||||
await using var file = result.Open();
|
||||
var library = TypeDataLoader.LoadTypeLibrary(file);
|
||||
await Assert.That(library).IsNotNull();
|
||||
|
||||
|
@ -33,10 +33,6 @@
|
||||
<ProjectReference Include="..\Plugins\PkmnLib.Plugin.Gen7\PkmnLib.Plugin.Gen7.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="Data\"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<None Update="Data\*">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
|
@ -1,5 +1,4 @@
|
||||
using System;
|
||||
using System.IO;
|
||||
using PkmnLib.Plugin.Gen7.Libraries.Battling;
|
||||
using PkmnLib.Static.Libraries;
|
||||
|
||||
@ -49,24 +48,24 @@ public class Gen7Plugin : Dynamic.ScriptHandling.Registry.Plugin, IResourceProvi
|
||||
};
|
||||
|
||||
/// <inheritdoc />
|
||||
Stream? IResourceProvider.GetResource(ResourceFileType request)
|
||||
IResourceResult IResourceProvider.GetResource(ResourceFileType request)
|
||||
{
|
||||
return request switch
|
||||
{
|
||||
ResourceFileType.Types => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
||||
"PkmnLib.Plugin.Gen7.Data.Types.csv"),
|
||||
ResourceFileType.Natures => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
||||
"PkmnLib.Plugin.Gen7.Data.Natures.csv"),
|
||||
ResourceFileType.Moves => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
||||
"PkmnLib.Plugin.Gen7.Data.Moves.jsonc"),
|
||||
ResourceFileType.Items => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
||||
"PkmnLib.Plugin.Gen7.Data.Items.json"),
|
||||
ResourceFileType.Abilities => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
||||
"PkmnLib.Plugin.Gen7.Data.Abilities.json"),
|
||||
ResourceFileType.GrowthRates => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
||||
"PkmnLib.Plugin.Gen7.Data.GrowthRates.json"),
|
||||
ResourceFileType.Species => typeof(Gen7Plugin).Assembly.GetManifestResourceStream(
|
||||
"PkmnLib.Plugin.Gen7.Data.Pokemon.json"),
|
||||
ResourceFileType.Types => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.Types.csv",
|
||||
typeof(Gen7Plugin).Assembly),
|
||||
ResourceFileType.Natures => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.Natures.csv",
|
||||
typeof(Gen7Plugin).Assembly),
|
||||
ResourceFileType.Moves => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.Moves.jsonc",
|
||||
typeof(Gen7Plugin).Assembly),
|
||||
ResourceFileType.Items => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.Items.json",
|
||||
typeof(Gen7Plugin).Assembly),
|
||||
ResourceFileType.Abilities => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.Abilities.json",
|
||||
typeof(Gen7Plugin).Assembly),
|
||||
ResourceFileType.GrowthRates => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.GrowthRates.json",
|
||||
typeof(Gen7Plugin).Assembly),
|
||||
ResourceFileType.Species => new AssemblyResourceResult("PkmnLib.Plugin.Gen7.Data.Pokemon.json",
|
||||
typeof(Gen7Plugin).Assembly),
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(request), request, null),
|
||||
};
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user