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,
///
/// An ability script. Scripts in this category are always abilities, and therefore always
/// attached to a Pokemon.
///
Ability = 1,
///
/// A non volatile status script. Scripts in this category are always non volatile statuses, and
/// therefore always attached to a Pokemon.
///
Status = 2,
///
/// A volatile status script. Scripts in this category are always volatile status effects, and
/// therefore always attached to a Pokemon.
///
Pokemon = 3,
///
/// A script that can be attached to an entire side.
///
Side = 4,
///
/// A script that can be attached to the entire battle.
///
Battle = 5,
///
/// A special script for weather, for use on battles.
///
Weather = 6,
///
/// A special script for held items. As they're part of a held item, they're attached to a Pokemon.
///
ItemBattleTrigger = 7,
}