PkmnLib.NET/PkmnLib.Dynamic/ScriptHandling/ScriptCategory.cs

64 lines
1.9 KiB
C#

using PkmnLib.Dynamic.Models;
using PkmnLib.Dynamic.Models.Choices;
namespace PkmnLib.Dynamic.ScriptHandling;
/// <summary>
/// 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.
/// </summary>
public enum ScriptCategory
{
/// <summary>
/// A script that belongs to a move. This generally is only the script that is attached to a
/// <see cref="IMoveChoice"/> and <see cref="IExecutingMove"/>
/// </summary>
Move = 0,
/// <summary>
/// A volatile script effect that is attached to a move choice.
/// </summary>
MoveVolatile = 1,
/// <summary>
/// An ability script. Scripts in this category are always abilities, and therefore always
/// attached to a Pokemon.
/// </summary>
Ability = 2,
/// <summary>
/// A non volatile status script. Scripts in this category are always non volatile statuses, and
/// therefore always attached to a Pokemon.
/// </summary>
Status = 3,
/// <summary>
/// A volatile status script. Scripts in this category are always volatile status effects, and
/// therefore always attached to a Pokemon.
/// </summary>
Pokemon = 4,
/// <summary>
/// A script that can be attached to an entire side.
/// </summary>
Side = 5,
/// <summary>
/// A script that can be attached to the entire battle.
/// </summary>
Battle = 6,
/// <summary>
/// A special script for weather, for use on battles.
/// </summary>
Weather = 7,
Terrain = 8,
/// <summary>
/// A special script for held items. As they're part of a held item, they're attached to a Pokemon.
/// </summary>
ItemBattleTrigger = 9,
}