pub struct SpellProps {Show 100 fields
pub attributes: Vec<i32>,
pub defense_type: i32,
pub dispel_type: i32,
pub mechanic: i32,
pub can_empower: bool,
pub empower_stages: Vec<EmpowerStage>,
pub equipped_item_requirement: Option<EquippedItemRequirement>,
pub shapeshift_required_mask: u64,
pub shapeshift_excluded_mask: u64,
pub caster_aura_spell: i32,
pub caster_aura_state: i32,
pub exclude_caster_aura_spell: i32,
pub exclude_caster_aura_state: i32,
pub target_aura_spell: i32,
pub target_aura_state: i32,
pub exclude_target_aura_spell: i32,
pub exclude_target_aura_state: i32,
pub aura_interrupt_flags: u32,
pub spell_interrupt_flags: u32,
pub channel_interrupt_flags: u32,
pub cost: f64,
pub optional_cost: f64,
pub cost_pct: ResourceCostPercent,
pub max_cost_pct: ResourceCostPercent,
pub optional_cost_pct: ResourceCostPercent,
pub gain: f64,
pub health_cost: f64,
pub health_cost_pct: f64,
pub health_max_cost_pct: f64,
pub health_optional_cost: f64,
pub health_optional_cost_pct: ResourceCostPercent,
pub primary_cost_entry: u8,
pub secondary_cost_entry: u8,
pub secondary_cost: f64,
pub secondary_optional_cost: f64,
pub secondary_gain: f64,
pub cooldown_ms: i32,
pub cooldown_category: Option<CooldownCategoryId>,
pub category_cooldown_ms: i32,
pub charge_category: Option<CooldownCategoryId>,
pub cast_time_ms: i32,
pub duration_ms: i32,
pub max_stacks: i32,
pub max_charges: i32,
pub charge_cd_ms: i32,
pub start_recovery_category: Option<CooldownCategoryId>,
pub gcd_ms: i32,
pub projectile_speed: f64,
pub launch_delay_s: f64,
pub hostile_min_range: f64,
pub hostile_max_range: f64,
pub radius: f64,
pub chain_target_range: f64,
pub max_affected_targets: u8,
pub cone_half_angle: f64,
pub fixed_travel_time: bool,
pub ignores_line_of_sight: bool,
pub explicit_target_mask: u32,
pub required_explicit_target_mask: u32,
pub cooldown_hasted: bool,
pub gcd_haste_type: GcdHasteType,
pub hasted_ticks: bool,
pub duration_hasted: bool,
pub mastery_affects_points: bool,
pub cannot_crit: bool,
pub requires_unshifted: bool,
pub allow_while_unshifted: bool,
pub requires_stealth: bool,
pub requires_behind_target: bool,
pub treat_as_periodic: bool,
pub treat_as_area_effect: bool,
pub does_not_break_stealth: bool,
pub usable_while_casting: bool,
pub usable_while_moving: bool,
pub asynchronous_stacks: bool,
pub disable_player_damage_multiplier: bool,
pub disable_target_damage_multiplier: bool,
pub disable_positive_target_damage_multiplier: bool,
pub requires_main_hand: bool,
pub requires_off_hand: bool,
pub refresh_behavior: RefreshBehavior,
pub rolling_periodic: bool,
pub tick_may_crit: bool,
pub tick_on_application: bool,
pub proc_chance_pct: i32,
pub proc_charges: i32,
pub proc_attributes: u32,
pub proc_chance_multiplier_delta: f64,
pub proc_type_mask: u64,
pub proc_category_recovery_ms: i32,
pub rppm_base_rate: f64,
pub rppm_flags: i32,
pub rppm_haste_scales: bool,
pub rppm_crit_scales: bool,
pub hit_chance_flat: f64,
pub hit_chance_multiplier: f64,
pub target_resistance_flat: f64,
pub target_resistance_multiplier: f64,
pub dispel_resistance_flat: f64,
pub dispel_resistance_multiplier: f64,
}Expand description
Spell-level properties resolved from game data.
Fields§
§attributes: Vec<i32>§defense_type: i32Raw SpellMisc.DefenseType; 2 is melee and 3 is ranged.
dispel_type: i32Raw SpellCategories.DispelType; zero means the aura is not dispellable.
mechanic: i32Raw SpellCategories.Mechanic; zero means the spell has no mechanic tag.
can_empower: bool§empower_stages: Vec<EmpowerStage>§equipped_item_requirement: Option<EquippedItemRequirement>§shapeshift_required_mask: u64§shapeshift_excluded_mask: u64§caster_aura_spell: i32§caster_aura_state: i32§exclude_caster_aura_spell: i32§exclude_caster_aura_state: i32§target_aura_spell: i32§target_aura_state: i32§exclude_target_aura_spell: i32§exclude_target_aura_state: i32§aura_interrupt_flags: u32Primary SpellAuraInterruptFlags word.
spell_interrupt_flags: u32DBC SpellInterrupts.InterruptFlags.
channel_interrupt_flags: u32Primary DBC channel-interrupt flag word.
cost: f64§optional_cost: f64§cost_pct: ResourceCostPercent§max_cost_pct: ResourceCostPercent§optional_cost_pct: ResourceCostPercent§gain: f64§health_cost: f64Flat health paid by the caster.
health_cost_pct: f64Percent of caster maximum health paid by the caster.
health_max_cost_pct: f64Additional percent of maximum health spent up to the caster’s current health.
health_optional_cost: f64Additional flat health spent up to the caster’s current health.
health_optional_cost_pct: ResourceCostPercentAdditional percentage health spent up to the caster’s current health.
primary_cost_entry: u81-based DBC power-cost entry backing cost (0 = none); cost modifiers route by entry.
secondary_cost_entry: u81-based DBC power-cost entry backing secondary_cost (0 = none).
secondary_cost: f64§secondary_optional_cost: f64§secondary_gain: f64§cooldown_ms: i32§cooldown_category: Option<CooldownCategoryId>§category_cooldown_ms: i32§charge_category: Option<CooldownCategoryId>§cast_time_ms: i32§duration_ms: i32§max_stacks: i32§max_charges: i32§charge_cd_ms: i32§start_recovery_category: Option<CooldownCategoryId>§gcd_ms: i32§projectile_speed: f64DBC projectile speed in yards per second.
launch_delay_s: f64DBC launch delay in seconds.
hostile_min_range: f64Inclusive hostile minimum range in yards.
hostile_max_range: f64Inclusive hostile maximum range in yards.
radius: f64Resolved spell/effect radius in yards.
chain_target_range: f64Resolved chain jump distance in yards.
max_affected_targets: u8Resolved SpellTargetRestrictions.MaxTargets; zero means uncapped.
cone_half_angle: f64Cone half-angle in radians.
fixed_travel_time: boolThe DBC missile speed is a fixed travel delay rather than yards/second.
ignores_line_of_sight: bool§explicit_target_mask: u32§required_explicit_target_mask: u32Subset of explicit_target_mask whose absence must fail the cast.
cooldown_hasted: bool§gcd_haste_type: GcdHasteType§hasted_ticks: bool§duration_hasted: bool§mastery_affects_points: boolSpell attribute 285: effect points resolve from live mastery and the effect coefficient.
cannot_crit: bool§requires_unshifted: bool§allow_while_unshifted: bool§requires_stealth: bool§requires_behind_target: boolContent-authored equivalent of TrinityCore’s behind-target custom attribute.
treat_as_periodic: bool§treat_as_area_effect: bool§does_not_break_stealth: bool§usable_while_casting: bool§usable_while_moving: bool§asynchronous_stacks: bool§disable_player_damage_multiplier: bool§disable_target_damage_multiplier: bool§disable_positive_target_damage_multiplier: bool§requires_main_hand: bool§requires_off_hand: bool§refresh_behavior: RefreshBehavior§rolling_periodic: bool§tick_may_crit: bool§tick_on_application: bool§proc_chance_pct: i32SpellAuraOptions.ProcChance in percent points; 0 when the spell has no proc data.
proc_charges: i32SpellAuraOptions.ProcCharges; zero means the proc aura has unlimited charges.
proc_attributes: u32Raw SpellProcEntry.AttributesMask from server-side proc metadata.
proc_chance_multiplier_delta: f64Multiplicative proc-chance modifier minus one; -0.3 represents a final 0.7x multiplier.
proc_type_mask: u64Combined SpellAuraOptions.ProcTypeMask_0/1 event mask.
proc_category_recovery_ms: i32SpellAuraOptions.ProcCategoryRecovery internal cooldown in milliseconds.
rppm_base_rate: f64Base real-procs-per-minute rate; zero when this spell uses fixed proc chance.
rppm_flags: i32Raw SpellProcsPerMinute.Flags retained for semantics not yet modeled.
rppm_haste_scales: boolSpellProcsPerMinuteMod.Type == 1 requests haste scaling.
rppm_crit_scales: boolSpellProcsPerMinuteMod.Type == 2 requests crit scaling.
hit_chance_flat: f64Passive affected-spell hit-chance modifier components.
hit_chance_multiplier: f64§target_resistance_flat: f64Passive affected-spell target-resistance modifier components.
target_resistance_multiplier: f64§dispel_resistance_flat: f64Passive affected-aura dispel-resistance modifier components.
dispel_resistance_multiplier: f64Trait Implementations§
Source§impl Clone for SpellProps
impl Clone for SpellProps
Source§fn clone(&self) -> SpellProps
fn clone(&self) -> SpellProps
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more