PkmnLib.NET/Plugins/PkmnLib.Plugin.Gen7/Scripts/Utils/CopyableMoves.cs

70 lines
1.5 KiB
C#

using System.Collections.Generic;
using PkmnLib.Static.Moves;
using PkmnLib.Static.Utils;
namespace PkmnLib.Plugin.Gen7.Scripts.Utils;
public static class CopyableMoves
{
/// <summary>
/// Validates if a move can be copied by scripts, such as Assist.
/// </summary>
public static bool CanCopyMove(this IMoveData move) => !NonCopyable.Contains(move.Name);
/// <summary>
/// The names of moves that cannot be copied by scripts.
/// </summary>
private static readonly HashSet<StringKey> NonCopyable =
[
"assist",
"baneful_bunker",
"beak_blast",
"belch",
"bestow",
"bounce",
"celebrate",
"chatter",
"circle_throw",
"copycat",
"counter",
"covet",
"destiny_bond",
"detect",
"dig",
"dive",
"dragon_tail",
"endure",
"feint",
"fly",
"focus_punch",
"follow_me",
"helping_hand",
"hold_hands",
"kings_shield",
"mat_block",
"me_first",
"metronome",
"mimic",
"mirror_coat",
"mirror_move",
"nature_power",
"phantom_force",
"protect",
"rage_powder",
"roar",
"shadow_force",
"shell_trap",
"sketch",
"sky_drop",
"sleep_talk",
"snatch",
"spiky_shield",
"spotlight",
"struggle",
"switcheroo",
"thief",
"transform",
"trick",
"whirlwind"
];
}