pub struct AbilityDefinition {Show 48 fields
pub id: u64,
pub name: String,
pub description: String,
pub flavor_text: String,
pub icon_path: String,
pub ability_type: AbilityType,
pub targeting_mode: TargetingMode,
pub range: f32,
pub aoe_radius: f32,
pub cast_time: f32,
pub channel_time: f32,
pub channel_ticks: u32,
pub base_cooldown: f32,
pub max_charges: u32,
pub gcd_category: CooldownCategory,
pub triggers_gcd: bool,
pub resource_type: ResourceType,
pub resource_cost: f32,
pub resource_cost_scaling: Vec<ScalingCoeff>,
pub resource_generation: f32,
pub damage_formulas: Vec<DamageFormula>,
pub projectile_params: Option<ProjectileParams>,
pub projectile_count: u32,
pub spread_angle: f32,
pub heal_formula: HealFormula,
pub applied_effects: Vec<AppliedEffect>,
pub required_target_status: Vec<StatusEffectType>,
pub consumed_target_status: Vec<StatusEffectType>,
pub duration: f32,
pub is_passive: bool,
pub interrupt_on_move: bool,
pub usable_while_moving: bool,
pub usable_while_stunned: bool,
pub usable_while_silenced: bool,
pub knockback_force: f32,
pub knockback_direction: KnockbackDirection,
pub applied_modifiers: Vec<u64>,
pub conditional_mods: Vec<ConditionalModifier>,
pub unlock_level: u32,
pub talent_tree_id: Option<u64>,
pub talent_node_id: Option<u64>,
pub school: String,
pub cast_vfx: String,
pub hit_vfx: String,
pub projectile_vfx: String,
pub cast_sfx: String,
pub hit_sfx: String,
pub interrupt_sfx: String,
}Fields§
§id: u64§name: String§description: String§flavor_text: String§icon_path: String§ability_type: AbilityType§targeting_mode: TargetingMode§range: f32§aoe_radius: f32§cast_time: f32§channel_time: f32§channel_ticks: u32§base_cooldown: f32§max_charges: u32§gcd_category: CooldownCategory§triggers_gcd: bool§resource_type: ResourceType§resource_cost: f32§resource_cost_scaling: Vec<ScalingCoeff>§resource_generation: f32§damage_formulas: Vec<DamageFormula>§projectile_params: Option<ProjectileParams>§projectile_count: u32§spread_angle: f32§heal_formula: HealFormula§applied_effects: Vec<AppliedEffect>§required_target_status: Vec<StatusEffectType>§consumed_target_status: Vec<StatusEffectType>§duration: f32§is_passive: bool§interrupt_on_move: bool§usable_while_moving: bool§usable_while_stunned: bool§usable_while_silenced: bool§knockback_force: f32§knockback_direction: KnockbackDirection§applied_modifiers: Vec<u64>§conditional_mods: Vec<ConditionalModifier>§unlock_level: u32§talent_tree_id: Option<u64>§talent_node_id: Option<u64>§school: String§cast_vfx: String§hit_vfx: String§projectile_vfx: String§cast_sfx: String§hit_sfx: String§interrupt_sfx: StringImplementations§
Source§impl AbilityDefinition
impl AbilityDefinition
pub fn new(id: u64, name: impl Into<String>, ability_type: AbilityType) -> Self
pub fn compute_resource_cost(&self, stats: &HashMap<String, f32>) -> f32
pub fn can_cast( &self, ctx: &CastContext, resources: &HashMap<ResourceType, ResourceState>, cooldown_mgr: &CooldownManager, ) -> CastabilityResult
pub fn compute_damage_preview( &self, ctx: &CastContext, target_resist: f32, ) -> Vec<DamagePreview>
pub fn validate(&self) -> Vec<String>
Trait Implementations§
Source§impl Clone for AbilityDefinition
impl Clone for AbilityDefinition
Auto Trait Implementations§
impl Freeze for AbilityDefinition
impl RefUnwindSafe for AbilityDefinition
impl Send for AbilityDefinition
impl Sync for AbilityDefinition
impl Unpin for AbilityDefinition
impl UnsafeUnpin for AbilityDefinition
impl UnwindSafe for AbilityDefinition
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.