Enum AbilityTag

Source
pub enum AbilityTag {
Show 15 variants Heal, Damage, Aoe, MultiTarget, Buff, Debuff, Control, Pet, Projectile, Targeted, Duration, Summon, SelfCast, Protection, Channelled,
}
Expand description

A content-side label on an ability that other systems key off.

Read by the law catalog (RL-06 / FL-06 fire on “an original Skill with the Heal tag resolved”) and by support stones (a support’s Compatibility is a predicate over these tags). Declared with room: triggers and future systems are meant to read the SAME tag set rather than each inventing its own predicate over ability ids. Adding a variant is a config migration (every ability lists its tags explicitly — there is no default), not a code change at the reading sites.

Tags describe what an ability DOES, not how it is cast: AbilityCastType is presentation and class.basic_abilities is what decides Basic Attack vs original Skill.

Variants§

§

Heal

Restores HP to the caster or an ally.

§

Damage

Deals direct damage.

§

Aoe

Hits an AREA: one payload spread over whatever stands in it.

§

MultiTarget

Delivers its payload as SEVERAL copies (a volley of projectiles, a flurry of cuts) rather than as one hit — ability_info.projectiles > 1. Distinct from AbilityTag::Aoe: the copies are what Condense folds into one, while CoverageMult (Widen) does not scale them.

§

Buff

Grants a positive timed state.

§

Debuff

Applies a negative timed state.

§

Control

Stuns, roots or otherwise denies actions.

§

Pet

Belongs to a pet rather than to the character.

§

Projectile

Delivers its payload with a travelling projectile.

§

Targeted

Resolves on one chosen target (as opposed to a shape or the caster).

§

Duration

Applies something that lasts (DoT / HoT / timed buff or debuff).

§

Summon

Puts an entity on the field that fights on its own.

§

SelfCast

Resolves on the caster. (Self is a reserved word in Rust; the tag is spelled SelfCast everywhere — code, config and schema.)

§

Protection

Reduces incoming damage or otherwise shields.

§

Channelled

Occupies the caster for the whole cast (no channelled ability ships yet; the tag exists so Any except Channelled supports stay honest when one does).

Trait Implementations§

Source§

impl Clone for AbilityTag

Source§

fn clone(&self) -> AbilityTag

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AbilityTag

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AbilityTag

Source§

fn default() -> AbilityTag

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for AbilityTag

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Display for AbilityTag

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

impl FromStr for AbilityTag

Source§

type Err = ParseError

The associated error which can be returned from parsing.
Source§

fn from_str(s: &str) -> Result<AbilityTag, <Self as FromStr>::Err>

Parses a string s to return a value of this type. Read more
Source§

impl Hash for AbilityTag

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl IntoEnumIterator for AbilityTag

Source§

impl JsonSchema for AbilityTag

Source§

fn schema_name() -> String

The name of the generated JSON Schema. Read more
Source§

fn schema_id() -> Cow<'static, str>

Returns a string that uniquely identifies the schema produced by this type. Read more
Source§

fn json_schema(generator: &mut SchemaGenerator) -> Schema

Generates a JSON Schema for this type. Read more
§

fn is_referenceable() -> bool

Whether JSON Schemas generated for this type should be re-used where possible using the $ref keyword. Read more
Source§

impl Ord for AbilityTag

Source§

fn cmp(&self, other: &AbilityTag) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for AbilityTag

Source§

fn eq(&self, other: &AbilityTag) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for AbilityTag

Source§

fn partial_cmp(&self, other: &AbilityTag) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl Sequence for AbilityTag

Source§

const CARDINALITY: usize = 15usize

Number of values of type Self. Read more
Source§

fn next(&self) -> Option<Self>

Returns value following *self or None if this was the end. Read more
Source§

fn previous(&self) -> Option<Self>

Returns value preceding *self or None if this was the beginning. Read more
Source§

fn first() -> Option<Self>

Returns the first value of type Self. Read more
Source§

fn last() -> Option<Self>

Returns the last value of type Self. Read more
Source§

impl Serialize for AbilityTag

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl TryFrom<&str> for AbilityTag

Source§

type Error = ParseError

The type returned in the event of a conversion error.
Source§

fn try_from(s: &str) -> Result<AbilityTag, <Self as TryFrom<&str>>::Error>

Performs the conversion.
Source§

impl Tsify for AbilityTag

Source§

const DECL: &'static str = "/**\n * A content-side label on an ability that other systems key off.\n *\n * Read by the law catalog (`RL-06` / `FL-06` fire on \\\"an original Skill with\n * the `Heal` tag resolved\\\") and by support stones (a support\\\'s\n * `Compatibility` is a predicate over these tags). Declared with room:\n * triggers and future systems are meant to read the SAME tag set rather than\n * each inventing its own predicate over ability ids. Adding a variant is a\n * config migration (every ability lists its tags explicitly \u{2014} there is no\n * default), not a code change at the reading sites.\n *\n * Tags describe what an ability DOES, not how it is cast: `AbilityCastType` is\n * presentation and `class.basic_abilities` is what decides Basic Attack vs\n * original Skill.\n */\ndeclare namespace AbilityTag {\n /**\n * Restores HP to the caster or an ally.\n */\n export type Heal = \"Heal\";\n /**\n * Deals direct damage.\n */\n export type Damage = \"Damage\";\n /**\n * Hits an AREA: one payload spread over whatever stands in it.\n */\n export type Aoe = \"Aoe\";\n /**\n * Delivers its payload as SEVERAL copies (a volley of projectiles, a\n * flurry of cuts) rather than as one hit \u{2014} `ability_info.projectiles > 1`.\n * Distinct from [`AbilityTag::Aoe`]: the copies are what Condense folds\n * into one, while `CoverageMult` (Widen) does not scale them.\n */\n export type MultiTarget = \"MultiTarget\";\n /**\n * Grants a positive timed state.\n */\n export type Buff = \"Buff\";\n /**\n * Applies a negative timed state.\n */\n export type Debuff = \"Debuff\";\n /**\n * Stuns, roots or otherwise denies actions.\n */\n export type Control = \"Control\";\n /**\n * Belongs to a pet rather than to the character.\n */\n export type Pet = \"Pet\";\n /**\n * Delivers its payload with a travelling projectile.\n */\n export type Projectile = \"Projectile\";\n /**\n * Resolves on one chosen target (as opposed to a shape or the caster).\n */\n export type Targeted = \"Targeted\";\n /**\n * Applies something that lasts (DoT / HoT / timed buff or debuff).\n */\n export type Duration = \"Duration\";\n /**\n * Puts an entity on the field that fights on its own.\n */\n export type Summon = \"Summon\";\n /**\n * Resolves on the caster. (`Self` is a reserved word in Rust; the tag is\n * spelled `SelfCast` everywhere \u{2014} code, config and schema.)\n */\n export type SelfCast = \"SelfCast\";\n /**\n * Reduces incoming damage or otherwise shields.\n */\n export type Protection = \"Protection\";\n /**\n * Occupies the caster for the whole cast (no channelled ability ships yet;\n * the tag exists so `Any except Channelled` supports stay honest when one\n * does).\n */\n export type Channelled = \"Channelled\";\n}\n\n/**\n * A content-side label on an ability that other systems key off.\n *\n * Read by the law catalog (`RL-06` / `FL-06` fire on \\\"an original Skill with\n * the `Heal` tag resolved\\\") and by support stones (a support\\\'s\n * `Compatibility` is a predicate over these tags). Declared with room:\n * triggers and future systems are meant to read the SAME tag set rather than\n * each inventing its own predicate over ability ids. Adding a variant is a\n * config migration (every ability lists its tags explicitly \u{2014} there is no\n * default), not a code change at the reading sites.\n *\n * Tags describe what an ability DOES, not how it is cast: `AbilityCastType` is\n * presentation and `class.basic_abilities` is what decides Basic Attack vs\n * original Skill.\n */\nexport type AbilityTag = \"Heal\" | \"Damage\" | \"Aoe\" | \"MultiTarget\" | \"Buff\" | \"Debuff\" | \"Control\" | \"Pet\" | \"Projectile\" | \"Targeted\" | \"Duration\" | \"Summon\" | \"SelfCast\" | \"Protection\" | \"Channelled\";"

Source§

const SERIALIZATION_CONFIG: SerializationConfig

Source§

type JsType = JsType

§

fn into_js(&self) -> Result<Self::JsType, Error>
where Self: Serialize,

§

fn from_js<T>(js: T) -> Result<Self, Error>
where T: Into<JsValue>, Self: DeserializeOwned,

Source§

impl Copy for AbilityTag

Source§

impl Eq for AbilityTag

Source§

impl StructuralPartialEq for AbilityTag

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DynClone for T
where T: Clone,

Source§

fn __clone_box(&self, _: Private) -> *mut ()

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> FutureExt for T

§

fn with_context(self, otel_cx: Context) -> WithContext<Self>

Attaches the provided Context to this type, returning a WithContext wrapper. Read more
§

fn with_current_context(self) -> WithContext<Self>

Attaches the current Context to this type, returning a WithContext wrapper. Read more
§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,