Replace all raw string comparisons with StringKey, source generator that creates cache keys for all names for Gen7 plugin
All checks were successful
Build / Build (push) Successful in 2m21s
All checks were successful
Build / Build (push) Successful in 2m21s
This commit is contained in:
@@ -5,6 +5,27 @@ namespace PkmnLib.Plugin.Gen7.Scripts.Moves;
|
||||
[Script(ScriptCategory.Move, "judgement")]
|
||||
public class Judgement : Script, IScriptChangeMoveType
|
||||
{
|
||||
private static readonly Dictionary<StringKey, StringKey> PlateTypes = new()
|
||||
{
|
||||
{ ItemNames.DreadPlate, TypeNames.Dark },
|
||||
{ ItemNames.EarthPlate, TypeNames.Ground },
|
||||
{ ItemNames.FistPlate, TypeNames.Fighting },
|
||||
{ ItemNames.FlamePlate, TypeNames.Fire },
|
||||
{ ItemNames.IciclePlate, TypeNames.Ice },
|
||||
{ ItemNames.InsectPlate, TypeNames.Bug },
|
||||
{ ItemNames.IronPlate, TypeNames.Steel },
|
||||
{ ItemNames.MeadowPlate, TypeNames.Grass },
|
||||
{ ItemNames.MindPlate, TypeNames.Psychic },
|
||||
{ ItemNames.PixiePlate, TypeNames.Fairy },
|
||||
{ ItemNames.SkyPlate, TypeNames.Flying },
|
||||
{ ItemNames.SpookyPlate, TypeNames.Ghost },
|
||||
{ ItemNames.StonePlate, TypeNames.Rock },
|
||||
{ ItemNames.ToxicPlate, TypeNames.Poison },
|
||||
{ ItemNames.ZapPlate, TypeNames.Electric },
|
||||
{ ItemNames.DracoPlate, TypeNames.Dragon },
|
||||
{ ItemNames.SplashPlate, TypeNames.Water },
|
||||
};
|
||||
|
||||
/// <inheritdoc />
|
||||
public void ChangeMoveType(IExecutingMove move, IPokemon target, byte hit, ref TypeIdentifier? moveType)
|
||||
{
|
||||
@@ -19,26 +40,10 @@ public class Judgement : Script, IScriptChangeMoveType
|
||||
return;
|
||||
var typeLibrary = target.Library.StaticLibrary.Types;
|
||||
|
||||
moveType = heldItem.Name.ToString().ToLowerInvariant() switch
|
||||
if (PlateTypes.TryGetValue(heldItem.Name, out var typeName) &&
|
||||
typeLibrary.TryGetTypeIdentifier(typeName, out var type))
|
||||
{
|
||||
"dread_plate" when typeLibrary.TryGetTypeIdentifier("dark", out var dark) => dark,
|
||||
"earth_plate" when typeLibrary.TryGetTypeIdentifier("ground", out var ground) => ground,
|
||||
"fist_plate" when typeLibrary.TryGetTypeIdentifier("fighting", out var fighting) => fighting,
|
||||
"flame_plate" when typeLibrary.TryGetTypeIdentifier("fire", out var fire) => fire,
|
||||
"icicle_plate" when typeLibrary.TryGetTypeIdentifier("ice", out var ice) => ice,
|
||||
"insect_plate" when typeLibrary.TryGetTypeIdentifier("bug", out var bug) => bug,
|
||||
"iron_plate" when typeLibrary.TryGetTypeIdentifier("steel", out var steel) => steel,
|
||||
"meadow_plate" when typeLibrary.TryGetTypeIdentifier("grass", out var grass) => grass,
|
||||
"mind_plate" when typeLibrary.TryGetTypeIdentifier("psychic", out var psychic) => psychic,
|
||||
"pixie_plate" when typeLibrary.TryGetTypeIdentifier("fairy", out var fairy) => fairy,
|
||||
"sky_plate" when typeLibrary.TryGetTypeIdentifier("flying", out var flying) => flying,
|
||||
"spooky_plate" when typeLibrary.TryGetTypeIdentifier("ghost", out var ghost) => ghost,
|
||||
"stone_plate" when typeLibrary.TryGetTypeIdentifier("rock", out var rock) => rock,
|
||||
"toxic_plate" when typeLibrary.TryGetTypeIdentifier("poison", out var poison) => poison,
|
||||
"zap_plate" when typeLibrary.TryGetTypeIdentifier("electric", out var electric) => electric,
|
||||
"draco_plate" when typeLibrary.TryGetTypeIdentifier("dragon", out var dragon) => dragon,
|
||||
"splash_plate" when typeLibrary.TryGetTypeIdentifier("water", out var water) => water,
|
||||
_ => moveType,
|
||||
};
|
||||
moveType = type;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user