Struct AbilityStoneMods

Source
pub struct AbilityStoneMods {
Show 19 fields pub damage_mult: f64, pub mana_cost_mult: f64, pub cooldown_mult: f64, pub cast_time_mult: f64, pub effect_duration_mult: f64, pub coverage_mult: f64, pub extra_targets: i64, pub condense: bool, pub crit_chance_bonus: f64, pub missing_mana_damage_per_10pct: f64, pub split: DerivedCopies, pub chain: DerivedCopies, pub pierce: DerivedCopies, pub repeat: DerivedCopies, pub pulse: DerivedCopies, pub leech_fraction: f64, pub guard_next_hit: f64, pub incoming_damage_reduction: f64, pub incoming_damage_reduction_ms: u64,
}
Expand description

Aggregated numeric modifiers of the stones ACTIVE on one ability — the two sockets whose side matches the currently active crate::flip::WorldSide.

Fields§

§damage_mult: f64

Multiplier on every damage component.

§mana_cost_mult: f64

Multiplier on the mana cost.

§cooldown_mult: f64

Multiplier on the cooldown.

§cast_time_mult: f64

Multiplier on the cast’s delay + animation occupation.

§effect_duration_mult: f64

Multiplier on applied-effect duration.

§coverage_mult: f64

Multiplier on the AoE target cap.

§extra_targets: i64

Extra AoE targets (additive, applied after coverage_mult).

§condense: bool

Coverage collapses to a single target and copies fold into it.

§crit_chance_bonus: f64

Added crit chance, as a fraction (0.25 = +25 percent points).

§missing_mana_damage_per_10pct: f64

Extra damage fraction per 10% of missing mana.

§split: DerivedCopies

Extra instant copies on the same target (Split).

§chain: DerivedCopies

Extra jumps to further targets (Chain).

§pierce: DerivedCopies

Extra pierced targets with cumulative falloff (Pierce).

§repeat: DerivedCopies

Delayed derived repeats of the whole cast (Repeat).

§pulse: DerivedCopies

Extra delayed pulses of the cast (Pulse). The original cast is pulse #1, so count here is the number of EXTRA pulses.

§leech_fraction: f64

Share of the final damage that heals the caster (Leech).

§guard_next_hit: f64

Damage reduction of the next incoming hit (Fortify), as a fraction.

§incoming_damage_reduction: f64

Incoming-damage reduction after the cast (Shelter), as a fraction.

§incoming_damage_reduction_ms: u64

How long the Shelter window lasts, in ms.

Implementations§

Source§

impl AbilityStoneMods

Source

pub const fn identity() -> Self

The no-stones case: every ability behaves exactly as before.

Source

pub fn is_identity(&self) -> bool

Source

pub fn has_instant_copies(&self) -> bool

Whether any op produces extra hits that resolve at the attack seam (Split / Chain / Pierce).

Source

pub fn has_delayed_copies(&self) -> bool

Whether any op produces hits that resolve on a later tick (Repeat / Pulse).

Source

pub fn apply(&mut self, op: &AbilityStoneOp, value: f64)

Folds one op in. Percent reductions are clamped so a stack of stones can never invert a cost or a cooldown.

Source

pub fn damage_mult_with_mana(&self, missing_mana_fraction: f64) -> f64

Damage multiplier including the missing-mana term (“Отдача”), which is resolved at cast time against the caster’s pool.

Source

pub fn apply_cooldown(&self, cooldown_ticks: u64) -> u64

Cooldown in ticks after the cooldown stones, never shorter than one tick for an ability that has a cooldown at all.

Source

pub fn apply_mana_cost(&self, mana_cost: f64) -> f64

Mana cost after the mana-cost stones.

Source

pub fn apply_cast_time(&self, ticks: u64) -> u64

Cast delay / animation occupation after the cast-time stones. A cast that occupied the caster at all keeps occupying it for at least one tick.

Source

pub fn apply_coverage(&self, max_targets: Option<i64>) -> Option<i64>

The ability’s AoE cap after coverage ops. None in = no cap (unlimited); a multiplier cannot introduce a cap, and Condense always collapses to one target.

Trait Implementations§

Source§

impl Clone for AbilityStoneMods

Source§

fn clone(&self) -> AbilityStoneMods

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 AbilityStoneMods

Source§

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

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

impl Default for AbilityStoneMods

Source§

fn default() -> Self

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

impl PartialEq for AbilityStoneMods

Source§

fn eq(&self, other: &AbilityStoneMods) -> 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 Copy for AbilityStoneMods

Source§

impl StructuralPartialEq for AbilityStoneMods

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, 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