Skip to main content

BuffEffect

Enum BuffEffect 

Source
#[non_exhaustive]
pub enum BuffEffect {
Show 94 variants Haste(f64), HasteMult(f64), HasteMultFromEffect { percent: f64, source_spell_id: u32, effect_index: u8, }, SpellCastSpeed(f64), AttackSpeed(f64), AutoAttackDamage(f64), AutoAttackDamageTaken(f64), AutoAttackCritChance(f64), CritChanceVersusTargetHealth { percent: f64, threshold_pct: f64, }, AutoAttackReplacement(u32), HealthThresholdTrigger { threshold_pct: f64, direction: HealthThresholdDirection, spell_id: u32, }, ArmorBypassFromCaster(f64), SpellSchoolFromEffect { school: DamageSchool, source_spell_id: u32, effect_index: u8, }, AuraTimeRateFromEffect { percent: f64, source_spell_id: u32, effect_index: u8, }, SpellReflection(SpellSchoolMask), SpellDeflectChance(f64), ResourceGainMult(f64), RageGainMult(f64), ResourceRegenPerFiveSeconds(f64, ResourceType), IncomingDamagePercent { percent: f64, schools: SpellSchoolMask, }, IncomingAoeDamagePercent { percent: f64, schools: SpellSchoolMask, }, HealingDoneFlat { amount: f64, schools: SpellSchoolMask, }, HealingDonePercent(f64), HealingReceivedPercent(f64), HealingReceivedFromCasterPercent(f64), PeriodicHealingPercent(f64), LeechPercent(f64), AbsorbDonePercent(f64), AbsorbTakenPercent(f64), Absorb(AbsorbEffect), DamageTransfer(DamageTransfer), SchoolImmunity(SpellSchoolMask), MechanicImmunity(u64), InterruptRegen, InterruptedRegenPercent(f64), PreventResourceRegen(u64), ResourceCostPercent(f64, ResourceType), Crit(f64), CritFromEffect { percent: f64, source_spell_id: u32, effect_index: u8, }, CritActive(f64), Mastery(f64), Versatility(f64), PrimaryStat(f64), PrimaryStatPercent(f64), BonusStatPercent { percent: f64, stat: StatModifierKind, }, OverrideSpellPowerByAttackPowerPercent(f64), OverrideAttackPowerBySpellPowerPercent(f64), AttackPowerPercent(f64), DamageMult(f64), PetDamageMult(f64), DynamicDamageMult(fn(&CombatState, &DenseBuffer, Option<EnemyIdx>) -> f64), DynamicDamageMultSpells(fn(&CombatState, &DenseBuffer, Option<EnemyIdx>, SimTime) -> f64, &'static [u32]), DynamicRegenPercent(fn(&CombatState, &DenseBuffer) -> f64), DamageMultSchool(f64, DamageSchool), DamageMultSpells(f64, &'static [u32]), DamageMultSpellsActive(f64, &'static [u32]), DamageToTargetAuraMechanicPercent { percent: f64, mechanic_mask: MechanicMask, }, MechanicDamageTakenPercent { percent: f64, mechanic_mask: MechanicMask, }, CreatureAoeDamageAvoidance { percent: f64, schools: SpellSchoolMask, }, SpellDamageFromEffect { percent: f64, source_spell_id: u32, effect_index: u8, periodic: bool, }, SpellModifierFromEffect { value: f64, source_spell_id: u32, effect_index: u8, property: ModifierPropertyKind, operation: ModifierOperation, }, SpellCritChanceFromEffect { percent: f64, source_spell_id: u32, effect_index: u8, }, SpellCritDamageFromEffect { percent: f64, source_spell_id: u32, effect_index: u8, }, SpellGateFromEffect { source_spell_id: u32, effect_index: u8, gate: ActiveSpellGate, }, SpellStanceMaskFromEffect { source_spell_id: u32, effect_index: u8, }, DamageTakenFromSource(f64, DamageSource), DamageTakenFromSourceSpells { percent: f64, source_spell_id: u32, effect_index: u8, source: DamageSource, }, DamageMultSpellsLinear(f64, &'static [u32]), CritChanceSpells(f64, &'static [u32]), CritDamageSpells(f64, &'static [u32]), SpellCostPercent(f64, &'static [u32], ResourcePool), SpellCostFlat(f64, &'static [u32], ResourcePool), SpellCostFromEffect { value: f64, source_spell_id: u32, effect_index: u8, cost_entry: u8, operation: ModifierOperation, }, AdditionalPowerCostFromEffect { value: f64, source_spell_id: u32, effect_index: u8, resource_type: i32, }, RechargeRatePercent(f64, &'static [u32]), CooldownRechargeRateFromEffect { percent: f64, source_spell_id: u32, effect_index: u8, }, ChargeRechargeRateCategory { percent: f64, category: i32, source_spell_id: u32, effect_index: u8, }, MaxChargesCategory(f64, i32), IgnoreChargeCooldownCategory(i32), CooldownDurationPercent { percent: f64, source_spell_id: u32, effect_index: u8, }, SpellCastTimeFromEffect { value: f64, source_spell_id: u32, effect_index: u8, operation: ModifierOperation, }, SpellGcdFromEffect { value: f64, source_spell_id: u32, effect_index: u8, operation: ModifierOperation, }, SpellDurationFromEffect { value: f64, source_spell_id: u32, effect_index: u8, operation: ModifierOperation, }, SpellTickTimeFromEffect { value: f64, source_spell_id: u32, effect_index: u8, operation: ModifierOperation, }, CastWhileMovingFromEffect { source_spell_id: u32, effect_index: u8, }, ResistPushbackFromEffect { value: f64, source_spell_id: u32, effect_index: u8, operation: ModifierOperation, }, SpellTargetingFromEffect { value: f64, source_spell_id: u32, effect_index: u8, property: ModifierPropertyKind, operation: ModifierOperation, }, CastTimePercent(f64, &'static [u32]), CastTimePercentPerStack(f64, &'static [u32]), GcdPercent(f64, &'static [u32]), DamageReplication(DamageReplication), DamageMultStacking { initial: f64, per_stack: f64, }, RegenPercent(f64), MaxResourceFlat(f64),
}
Expand description

A single per-stack buff contributed by an active aura.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Haste(f64)

§

HasteMult(f64)

Multiplicative haste source whose per-stack percent points add (aura 193).

§

HasteMultFromEffect

DBC-derived multiplicative haste source retaining its coordinate for content masking.

Fields

§percent: f64
§source_spell_id: u32
§effect_index: u8
§

SpellCastSpeed(f64)

Multiplicative spell cast-speed percent per stack (aura 355).

§

AttackSpeed(f64)

Percent points of auto-attack speed per stack (auras 319/342).

§

AutoAttackDamage(f64)

Percent points of extra auto-attack damage per stack (dynamic aura 344).

§

AutoAttackDamageTaken(f64)

Percent points of extra auto-attack damage taken from the caster (aura 343).

§

AutoAttackCritChance(f64)

Additive critical-strike chance for this actor’s white auto-attacks (aura 334).

§

CritChanceVersusTargetHealth

Critical chance while the hostile target is at or above the DBC threshold (aura 183).

Fields

§percent: f64
§threshold_pct: f64
§

AutoAttackReplacement(u32)

Main-hand white swings execute this spell while the owning aura is active (aura 361).

§

HealthThresholdTrigger

Cast a spell when the affected actor crosses a health threshold (aura 468).

Fields

§threshold_pct: f64
§spell_id: u32
§

ArmorBypassFromCaster(f64)

Percent of the affected target’s armor bypassed by this aura’s caster (aura 345).

§

SpellSchoolFromEffect

Temporary spell-school override filtered through the aura effect’s affect list (aura 220).

Fields

§source_spell_id: u32
§effect_index: u8
§

AuraTimeRateFromEffect

Wall-clock duration/cadence multiplier from aura 399 or label-scoped aura 470.

Fields

§percent: f64
§source_spell_id: u32
§effect_index: u8
§

SpellReflection(SpellSchoolMask)

§

SpellDeflectChance(f64)

§

ResourceGainMult(f64)

Aura 213 resource-gain multiplier.

§

RageGainMult(f64)

Percent points of extra Rage gain while active (aura 213).

§

ResourceRegenPerFiveSeconds(f64, ResourceType)

Flat regeneration per five seconds for the named DBC power type (aura 85).

§

IncomingDamagePercent

Multiplicative incoming-damage percent filtered by DBC school mask (aura 87).

Fields

§percent: f64
§

IncomingAoeDamagePercent

Multiplicative incoming area-damage percent filtered by DBC school mask (aura 229).

Fields

§percent: f64
§

HealingDoneFlat

Flat source-side healing bonus filtered by spell school (auras 115/135).

Fields

§amount: f64
§

HealingDonePercent(f64)

Multiplicative source-side healing bonus (aura 136).

§

HealingReceivedPercent(f64)

Multiplicative target-side healing received bonus (aura 118).

§

HealingReceivedFromCasterPercent(f64)

Healing received from this aura’s caster only (aura 283).

§

PeriodicHealingPercent(f64)

Multiplicative target-side periodic-healing bonus (aura 259).

§

LeechPercent(f64)

Damage-to-healing percentage (aura 443).

§

AbsorbDonePercent(f64)

Source-side absorb amount multiplier (aura 421).

§

AbsorbTakenPercent(f64)

Target-side absorb amount multiplier (aura 422).

§

Absorb(AbsorbEffect)

Mutable damage/healing/overkill absorb initialized when the aura is applied.

§

DamageTransfer(DamageTransfer)

Aura 81/300 target-side damage split/share.

§

SchoolImmunity(SpellSchoolMask)

Complete incoming-damage immunity for the named schools (aura 39).

§

MechanicImmunity(u64)

Complete immunity for incoming effects carrying any named mechanic bit (auras 77/147).

§

InterruptRegen

Marks power regeneration as interrupted (aura 94).

§

InterruptedRegenPercent(f64)

Percent of normal regeneration retained while interrupted (aura 134).

§

PreventResourceRegen(u64)

DBC power-type bit mask whose regeneration is prevented (aura 294).

§

ResourceCostPercent(f64, ResourceType)

Additive resource-cost percent for the named DBC power type (aura 423).

§

Crit(f64)

§

CritFromEffect

DBC-derived critical-strike chance retaining its source coordinate for content masking.

Fields

§percent: f64
§source_spell_id: u32
§effect_index: u8
§

CritActive(f64)

Critical-strike chance whose magnitude is unchanged by aura charge stacks.

§

Mastery(f64)

§

Versatility(f64)

§

PrimaryStat(f64)

§

PrimaryStatPercent(f64)

§

BonusStatPercent

Aura 467 percentage applied to positive non-create stat gains.

Fields

§percent: f64
§

OverrideSpellPowerByAttackPowerPercent(f64)

Aura 366 spell-power replacement sourced from pre-override attack power.

§

OverrideAttackPowerBySpellPowerPercent(f64)

Aura 404 attack-power replacement sourced from pre-override spell power.

§

AttackPowerPercent(f64)

§

DamageMult(f64)

§

PetDamageMult(f64)

§

DynamicDamageMult(fn(&CombatState, &DenseBuffer, Option<EnemyIdx>) -> f64)

§

DynamicDamageMultSpells(fn(&CombatState, &DenseBuffer, Option<EnemyIdx>, SimTime) -> f64, &'static [u32])

§

DynamicRegenPercent(fn(&CombatState, &DenseBuffer) -> f64)

§

DamageMultSchool(f64, DamageSchool)

§

DamageMultSpells(f64, &'static [u32])

§

DamageMultSpellsActive(f64, &'static [u32])

Spell-scoped multiplier whose magnitude is unchanged by aura charge stacks.

§

DamageToTargetAuraMechanicPercent

Aura 249: source multiplier while the target carries an aura tagged with mechanic_mask.

Fields

§percent: f64
§mechanic_mask: MechanicMask
§

MechanicDamageTakenPercent

Aura 255: target multiplier for damage spells tagged with mechanic_mask.

Fields

§percent: f64
§mechanic_mask: MechanicMask
§

CreatureAoeDamageAvoidance

Aura 310: target multiplier for area damage filtered by school.

Fields

§percent: f64
§

SpellDamageFromEffect

Fields

§percent: f64
§source_spell_id: u32
§effect_index: u8
§periodic: bool
§

SpellModifierFromEffect

Active affected-spell modifier for runtime values outside the damage-point family.

Fields

§value: f64
§source_spell_id: u32
§effect_index: u8
§

SpellCritChanceFromEffect

Fields

§percent: f64
§source_spell_id: u32
§effect_index: u8
§

SpellCritDamageFromEffect

Fields

§percent: f64
§source_spell_id: u32
§effect_index: u8
§

SpellGateFromEffect

Fields

§source_spell_id: u32
§effect_index: u8
§

SpellStanceMaskFromEffect

Active aura-275 stance-mask exception filtered through its DBC affect list.

Fields

§source_spell_id: u32
§effect_index: u8
§

DamageTakenFromSource(f64, DamageSource)

§

DamageTakenFromSourceSpells

Fields

§percent: f64
§source_spell_id: u32
§effect_index: u8
§

DamageMultSpellsLinear(f64, &'static [u32])

§

CritChanceSpells(f64, &'static [u32])

Buff-borne flat aura-107 P_CRIT (misc 7), e.g. Killing Machine (51124)

§

CritDamageSpells(f64, &'static [u32])

Buff-borne aura-108 P_CRIT_BONUS (misc 15): Killing Machine e4 (+25%).

§

SpellCostPercent(f64, &'static [u32], ResourcePool)

§

SpellCostFlat(f64, &'static [u32], ResourcePool)

§

SpellCostFromEffect

Fields

§value: f64
§source_spell_id: u32
§effect_index: u8
§cost_entry: u8
§

AdditionalPowerCostFromEffect

Active aura-63 flat adjustment to an affected spell’s optional power cost.

Fields

§value: f64
§source_spell_id: u32
§effect_index: u8
§resource_type: i32
§

RechargeRatePercent(f64, &'static [u32])

§

CooldownRechargeRateFromEffect

Active DBC aura-286 cooldown-recharge speed filtered through its affect list.

Fields

§percent: f64
§source_spell_id: u32
§effect_index: u8
§

ChargeRechargeRateCategory

Active DBC aura-148 charge-recharge speed for one charge category.

Fields

§percent: f64
§category: i32
§source_spell_id: u32
§effect_index: u8
§

MaxChargesCategory(f64, i32)

Extra maximum charges for a charge category while active (aura 411).

§

IgnoreChargeCooldownCategory(i32)

Casts do not consume charges from this category while active (aura 500).

§

CooldownDurationPercent

Fields

§percent: f64
§source_spell_id: u32
§effect_index: u8
§

SpellCastTimeFromEffect

Fields

§value: f64
§source_spell_id: u32
§effect_index: u8
§

SpellGcdFromEffect

Fields

§value: f64
§source_spell_id: u32
§effect_index: u8
§

SpellDurationFromEffect

Fields

§value: f64
§source_spell_id: u32
§effect_index: u8
§

SpellTickTimeFromEffect

Fields

§value: f64
§source_spell_id: u32
§effect_index: u8
§

CastWhileMovingFromEffect

Fields

§source_spell_id: u32
§effect_index: u8
§

ResistPushbackFromEffect

Fields

§value: f64
§source_spell_id: u32
§effect_index: u8
§

SpellTargetingFromEffect

Fields

§value: f64
§source_spell_id: u32
§effect_index: u8
§

CastTimePercent(f64, &'static [u32])

The magnitude is aura-wide rather than per-stack.

§

CastTimePercentPerStack(f64, &'static [u32])

§

GcdPercent(f64, &'static [u32])

Like BuffEffect::CastTimePercent, the magnitude does not scale with stacks.

§

DamageReplication(DamageReplication)

§

DamageMultStacking

Fields

§initial: f64
§per_stack: f64
§

RegenPercent(f64)

§

MaxResourceFlat(f64)

Implementations§

Source§

impl BuffEffect

Source

pub fn dbc_source(&self) -> Option<(u32, u8)>

The DBC spell effect this row was derived from, when the shared resolution built it from data.

Content-declared rows carry no DBC provenance and return None.

Source

pub fn scaled(self, stacks: f64) -> Self

Resolve the effect at the active aura’s stack count.

§Panics

Panics if unscaled_dbc_effect omits an effect variant classified as unscaled, indicating an internal dispatch bug.

Source

fn unscaled_dbc_effect(self) -> Option<Self>

Trait Implementations§

Source§

impl Clone for BuffEffect

Source§

fn clone(&self) -> BuffEffect

Returns a duplicate 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 BuffEffect

Source§

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

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

impl Copy for BuffEffect

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§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> SpecConfig for T
where T: Any + Debug + Send,

Source§

fn as_any(&self) -> &(dyn Any + 'static)

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
Source§

impl<T> ResolverSyncBound for T
where T: Sync + ?Sized,