using PkmnLib.Dynamic.Models; using PkmnLib.Dynamic.Models.Choices; namespace PkmnLib.Dynamic.ScriptHandling; /// /// A script category defines a sub-group of scripts. This can be used to have multiple scripts with /// the same name, but a different script. It should be completely valid for a move to have the same /// name as an ability, or more commonly: for a script attached to a Pokemon to have the same name as /// a move that placed it there. /// public enum ScriptCategory { /// /// A script that belongs to a move. This generally is only the script that is attached to a /// and /// Move = 0, /// /// A volatile script effect that is attached to a move choice. /// MoveVolatile = 1, /// /// An ability script. Scripts in this category are always abilities, and therefore always /// attached to a Pokemon. /// Ability = 2, /// /// A non volatile status script. Scripts in this category are always non volatile statuses, and /// therefore always attached to a Pokemon. /// Status = 3, /// /// A volatile status script. Scripts in this category are always volatile status effects, and /// therefore always attached to a Pokemon. /// Pokemon = 4, /// /// A script that can be attached to an entire side. /// Side = 5, /// /// A script that can be attached to the entire battle. /// Battle = 6, /// /// A special script for weather, for use on battles. /// Weather = 7, Terrain = 8, /// /// A special script for held items. As they're part of a held item, they're attached to a Pokemon. /// ItemBattleTrigger = 9, }