pub enum CombatSource {
Show 15 variants
AbilityCast {
ability_id: AbilityId,
},
AbilityDerived {
ability_id: AbilityId,
},
ProjectileHit {
projectile_id: Uuid,
},
StoneProc {
stone_template_id: StoneTemplateId,
},
ArmedBonus,
ArtifactStoneProc {
artifact_stone_template_id: ArtifactStoneTemplateId,
},
LawProc {
law_template_id: LawTemplateId,
},
PetUlt {
ability_id: AbilityId,
},
PetFacetProc {
facet: PetFacet,
},
Dot,
Hot,
Regeneration,
Counterattack,
Retaliation,
Other,
}Expand description
What produced one damage or heal instance. Stamped at the emit site, where the producing id is always in scope.
Variant names carry a Cast/Hit/Proc suffix deliberately: an externally
tagged enum turns each variant into a generated C#/TypeScript type of the
same name, and bare Ability / Stone / ArtifactStone would collide with
the client types already generated for those catalog entities — quicktype
resolves such a clash by RENAMING the existing type, which silently breaks
every hand-written reference to it.
Variants§
AbilityCast
Basic attack or active skill, including the ability-stone modifiers folded into its numbers.
AbilityDerived
An extra hit a support-stone shape produced out of ability_id
(Split/Chain/Pierce/Repeat/Pulse), the Leech heal such a cast fed, or a
damage-/heal-over-time tick the cast scheduled.
ProjectileHit
A projectile’s landing. Counterattack projectiles answer
CombatSource::Counterattack instead.
StoneProc
Effect/Trigger stone proc.
Fields
stone_template_id: StoneTemplateIdArmedBonus
A bonus an Effect Stone or a Law ARMED earlier and that a later hit
spends (NextAttackDamageBonus, splash, echo, lifesteal, …). Which
stone or law armed it is not recoverable: arming writes a magnitude onto
an entity attribute, and an attribute cannot carry a template id. Kept
out of CombatSource::Other so an equipment row never lands in the
environment bucket.
ArtifactStoneProc
An Aspect rule of the worn artifact rebroadcasting an effect stone.
Fields
artifact_stone_template_id: ArtifactStoneTemplateIdLawProc
Core/law effect.
Fields
law_template_id: LawTemplateIdPetUlt
Pet ult cast.
PetFacetProc
Pet facet / Team Die proc.
Dot
Damage-over-time tick whose applier named no ability (environment,
legacy content). A tick applied by a cast carries that ability under
CombatSource::AbilityDerived instead.
Hot
Heal-over-time tick — the healing sibling of CombatSource::Dot.
Regeneration
Passive regeneration tick.
Counterattack
The target’s counterattack proc.
Retaliation
Perfect Guard’s retaliation.
Other
Environment, fight-start scripts, legacy content — anything with no producing id at its emit site.
Implementations§
Source§impl CombatSource
impl CombatSource
Trait Implementations§
Source§impl Clone for CombatSource
impl Clone for CombatSource
Source§fn clone(&self) -> CombatSource
fn clone(&self) -> CombatSource
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CombatSource
impl Debug for CombatSource
Source§impl Default for CombatSource
impl Default for CombatSource
Source§fn default() -> CombatSource
fn default() -> CombatSource
Source§impl<'de> Deserialize<'de> for CombatSource
impl<'de> Deserialize<'de> for CombatSource
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl From<CombatSource> for JsValuewhere
CombatSource: Serialize,
impl From<CombatSource> for JsValuewhere
CombatSource: Serialize,
Source§fn from(value: CombatSource) -> Self
fn from(value: CombatSource) -> Self
Source§impl FromWasmAbi for CombatSourcewhere
Self: DeserializeOwned,
impl FromWasmAbi for CombatSourcewhere
Self: DeserializeOwned,
Source§impl Hash for CombatSource
impl Hash for CombatSource
Source§impl IntoWasmAbi for CombatSourcewhere
CombatSource: Serialize,
impl IntoWasmAbi for CombatSourcewhere
CombatSource: Serialize,
Source§impl JsonSchema for CombatSource
impl JsonSchema for CombatSource
Source§fn schema_name() -> String
fn schema_name() -> String
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
§fn is_referenceable() -> bool
fn is_referenceable() -> bool
$ref keyword. Read moreSource§impl OptionFromWasmAbi for CombatSourcewhere
Self: DeserializeOwned,
impl OptionFromWasmAbi for CombatSourcewhere
Self: DeserializeOwned,
Source§impl OptionIntoWasmAbi for CombatSourcewhere
CombatSource: Serialize,
impl OptionIntoWasmAbi for CombatSourcewhere
CombatSource: Serialize,
Source§impl PartialEq for CombatSource
impl PartialEq for CombatSource
Source§impl RefFromWasmAbi for CombatSourcewhere
Self: DeserializeOwned,
impl RefFromWasmAbi for CombatSourcewhere
Self: DeserializeOwned,
Source§type Abi = <JsType as RefFromWasmAbi>::Abi
type Abi = <JsType as RefFromWasmAbi>::Abi
Self are recovered from.Source§type Anchor = SelfOwner<CombatSource>
type Anchor = SelfOwner<CombatSource>
Self for the duration of the
invocation of the function that has an &Self parameter. This is
required to ensure that the lifetimes don’t persist beyond one function
call, and so that they remain anonymous.Source§impl Serialize for CombatSource
impl Serialize for CombatSource
Source§impl Tsify for CombatSource
impl Tsify for CombatSource
const DECL: &'static str = "/**\n * What produced one damage or heal instance. Stamped at the emit site, where\n * the producing id is always in scope.\n *\n * Variant names carry a `Cast`/`Hit`/`Proc` suffix deliberately: an externally\n * tagged enum turns each variant into a generated C#/TypeScript type of the\n * same name, and bare `Ability` / `Stone` / `ArtifactStone` would collide with\n * the client types already generated for those catalog entities \u{2014} quicktype\n * resolves such a clash by RENAMING the existing type, which silently breaks\n * every hand-written reference to it.\n */\nexport type CombatSource = { AbilityCast: { ability_id: AbilityId } } | { AbilityDerived: { ability_id: AbilityId } } | { ProjectileHit: { projectile_id: Uuid } } | { StoneProc: { stone_template_id: StoneTemplateId } } | \"ArmedBonus\" | { ArtifactStoneProc: { artifact_stone_template_id: ArtifactStoneTemplateId } } | { LawProc: { law_template_id: LawTemplateId } } | { PetUlt: { ability_id: AbilityId } } | { PetFacetProc: { facet: PetFacet } } | \"Dot\" | \"Hot\" | \"Regeneration\" | \"Counterattack\" | \"Retaliation\" | \"Other\";"
const SERIALIZATION_CONFIG: SerializationConfig
type JsType = JsType
fn into_js(&self) -> Result<Self::JsType, Error>where
Self: Serialize,
fn from_js<T>(js: T) -> Result<Self, Error>
Source§impl VectorFromWasmAbi for CombatSourcewhere
Self: DeserializeOwned,
impl VectorFromWasmAbi for CombatSourcewhere
Self: DeserializeOwned,
type Abi = <JsType as VectorFromWasmAbi>::Abi
unsafe fn vector_from_abi(js: Self::Abi) -> Box<[Self]>
Source§impl VectorIntoWasmAbi for CombatSourcewhere
CombatSource: Serialize,
impl VectorIntoWasmAbi for CombatSourcewhere
CombatSource: Serialize,
type Abi = <JsType as VectorIntoWasmAbi>::Abi
fn vector_into_abi(vector: Box<[Self]>) -> Self::Abi
Source§impl WasmDescribeVector for CombatSource
impl WasmDescribeVector for CombatSource
impl Copy for CombatSource
impl Eq for CombatSource
impl StructuralPartialEq for CombatSource
Auto Trait Implementations§
impl Freeze for CombatSource
impl RefUnwindSafe for CombatSource
impl Send for CombatSource
impl Sync for CombatSource
impl Unpin for CombatSource
impl UnwindSafe for CombatSource
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
Source§type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
IntoWasmAbi::AbiSource§fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
IntoWasmAbi::into_abi, except that it may throw and never
return in the case of Err.