using System.Collections.Generic; using PkmnLib.Static.Moves; using PkmnLib.Static.Utils; namespace PkmnLib.Plugin.Gen7.Scripts.Utils; public static class CopyableMoves { /// /// Validates if a move can be copied by scripts, such as Assist. /// public static bool CanCopyMove(this IMoveData move) => !NonCopyable.Contains(move.Name); /// /// The names of moves that cannot be copied by scripts. /// private static readonly HashSet 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", ]; }