Skip to main content

SpecHandler

Trait SpecHandler 

Source
pub trait SpecHandler: Send {
Show 42 methods // Required methods fn on_player_ready( &mut self, ctx: &mut SimContext<'_>, ) -> Option<SpecAction>; fn on_cast_complete(&mut self, event: Event, ctx: &mut SimContext<'_>); fn on_sim_start(&mut self, ctx: &mut SimContext<'_>); fn total_damage(&self) -> f64; fn cast_time_ms( &self, spell: ScheduledSpellBinding, empower_rank: u8, ) -> u32; // Provided methods fn install_target_metadata(&self, _sink: &mut TelemetrySink) { ... } fn on_triggered_spell( &mut self, _spell: ScheduledSpellBinding, _source: ActorId, _target: ActorId, _ctx: &mut SimContext<'_>, ) { ... } fn on_spell_impact( &mut self, _impact: PendingImpactBinding, _ctx: &mut SimContext<'_>, ) { ... } fn on_spell_launch( &mut self, _impact: PendingImpactBinding, _ctx: &mut SimContext<'_>, ) { ... } fn on_guardian_action( &mut self, _guardian: GuardianEventBinding, _ctx: &mut SimContext<'_>, ) { ... } fn on_guardian_expire( &mut self, _guardian: GuardianEventBinding, _ctx: &mut SimContext<'_>, ) { ... } fn on_pet_action( &mut self, _action: PetActionBinding, _ctx: &mut SimContext<'_>, ) { ... } fn on_aura_tick(&mut self, _event: AuraEventRef, _ctx: &mut SimContext<'_>) { ... } fn on_channel_tick( &mut self, _spell: ScheduledSpellBinding, _source: ActorId, _target: EnemyIdx, _generation: u64, _ctx: &mut SimContext<'_>, ) { ... } fn on_aura_expire( &mut self, _event: AuraEventRef, _ctx: &mut SimContext<'_>, ) { ... } fn on_proc_heartbeat(&mut self, _ctx: &mut SimContext<'_>) { ... } fn on_death( &mut self, _target: EnemyIdx, _scope: DeathEventScope, _ctx: &mut SimContext<'_>, ) { ... } fn on_encounter_despawn( &mut self, _scope: PullScope, _target: EnemyIdx, _kind: EncounterDespawnKind, _ctx: &mut SimContext<'_>, ) { ... } fn on_group_complete( &mut self, _scope: PullScope, _group: GroupId, _ctx: &mut SimContext<'_>, ) { ... } fn on_pull_complete( &mut self, _scope: PullScope, _finalize: bool, _ctx: &mut SimContext<'_>, ) { ... } fn on_encounter_terminate( &mut self, _reason: EncounterTerminationReason, _ctx: &mut SimContext<'_>, ) { ... } fn on_wave_activate( &mut self, _scope: PullScope, _wave: WaveId, _ctx: &mut SimContext<'_>, ) { ... } fn on_enemy_activate( &mut self, _scope: PullScope, _target: EnemyIdx, _ctx: &mut SimContext<'_>, ) { ... } fn on_retarget(&mut self, _scope: PullScope, _ctx: &mut SimContext<'_>) { ... } fn on_encounter_move( &mut self, _scope: PullScope, _actor: PositionedActorRef, _transform: SpatialTransform, _ctx: &mut SimContext<'_>, ) { ... } fn on_actor_movement( &mut self, _movement: ActorMovementBinding, _moving: bool, _ctx: &mut SimContext<'_>, ) { ... } fn on_raid_event( &mut self, _event: RaidEventBinding, _ctx: &mut SimContext<'_>, ) { ... } fn on_raid_add_despawn( &mut self, _add: RaidAddBinding, _ctx: &mut SimContext<'_>, ) { ... } fn on_external_buff( &mut self, _buff: ExternalBuffBinding, _ctx: &mut SimContext<'_>, ) { ... } fn on_event_queue_empty(&mut self, _ctx: &mut SimContext<'_>) { ... } fn encounter_termination_time(&self) -> Option<SimTime> { ... } fn on_despawn( &mut self, _target: EnemyIdx, _ctx: &mut SimContext<'_>, ) -> EnemyDespawnOutcome { ... } fn on_hook_timer( &mut self, _timer: HookTimerBinding, _source: ActorId, _target: Option<EnemyIdx>, _ctx: &mut SimContext<'_>, ) { ... } fn on_auto_attack( &mut self, _source: ActorId, _target: EnemyIdx, _ctx: &mut SimContext<'_>, ) { ... } fn on_enemy_auto_attack( &mut self, _source: EnemyIdx, _target: ActorId, _ctx: &mut SimContext<'_>, ) { ... } fn on_cooldown_ready( &mut self, _spell: ScheduledSpellBinding, _ctx: &mut SimContext<'_>, ) { ... } fn reset(&mut self) { ... } fn flush_scheduled(&mut self, _push: &mut dyn FnMut(Event)) { ... } fn take_runtime_error(&mut self) -> Option<SpecRuntimeError> { ... } fn paperdoll(&self) -> Option<Paperdoll> { ... } fn introspect(&self) -> SpecIntrospection { ... } fn attach_decision_trace(&mut self, _sink: Arc<dyn DecisionTraceSink>) { ... }
}
Expand description

Executor contract: all spec interaction goes through this trait.

Required Methods§

Source

fn on_player_ready(&mut self, ctx: &mut SimContext<'_>) -> Option<SpecAction>

Source

fn on_cast_complete(&mut self, event: Event, ctx: &mut SimContext<'_>)

Source

fn on_sim_start(&mut self, ctx: &mut SimContext<'_>)

Source

fn total_damage(&self) -> f64

Source

fn cast_time_ms(&self, spell: ScheduledSpellBinding, empower_rank: u8) -> u32

Cast time in milliseconds; 0 for instants.

Provided Methods§

Source

fn install_target_metadata(&self, _sink: &mut TelemetrySink)

Install immutable encounter target metadata into a newly constructed telemetry sink.

Source

fn on_triggered_spell( &mut self, _spell: ScheduledSpellBinding, _source: ActorId, _target: ActorId, _ctx: &mut SimContext<'_>, )

Source

fn on_spell_impact( &mut self, _impact: PendingImpactBinding, _ctx: &mut SimContext<'_>, )

Source

fn on_spell_launch( &mut self, _impact: PendingImpactBinding, _ctx: &mut SimContext<'_>, )

Source

fn on_guardian_action( &mut self, _guardian: GuardianEventBinding, _ctx: &mut SimContext<'_>, )

Source

fn on_guardian_expire( &mut self, _guardian: GuardianEventBinding, _ctx: &mut SimContext<'_>, )

Source

fn on_pet_action( &mut self, _action: PetActionBinding, _ctx: &mut SimContext<'_>, )

Source

fn on_aura_tick(&mut self, _event: AuraEventRef, _ctx: &mut SimContext<'_>)

Source

fn on_channel_tick( &mut self, _spell: ScheduledSpellBinding, _source: ActorId, _target: EnemyIdx, _generation: u64, _ctx: &mut SimContext<'_>, )

Source

fn on_aura_expire(&mut self, _event: AuraEventRef, _ctx: &mut SimContext<'_>)

Source

fn on_proc_heartbeat(&mut self, _ctx: &mut SimContext<'_>)

Source

fn on_death( &mut self, _target: EnemyIdx, _scope: DeathEventScope, _ctx: &mut SimContext<'_>, )

Source

fn on_encounter_despawn( &mut self, _scope: PullScope, _target: EnemyIdx, _kind: EncounterDespawnKind, _ctx: &mut SimContext<'_>, )

Source

fn on_group_complete( &mut self, _scope: PullScope, _group: GroupId, _ctx: &mut SimContext<'_>, )

Source

fn on_pull_complete( &mut self, _scope: PullScope, _finalize: bool, _ctx: &mut SimContext<'_>, )

Source

fn on_encounter_terminate( &mut self, _reason: EncounterTerminationReason, _ctx: &mut SimContext<'_>, )

Source

fn on_wave_activate( &mut self, _scope: PullScope, _wave: WaveId, _ctx: &mut SimContext<'_>, )

Source

fn on_enemy_activate( &mut self, _scope: PullScope, _target: EnemyIdx, _ctx: &mut SimContext<'_>, )

Source

fn on_retarget(&mut self, _scope: PullScope, _ctx: &mut SimContext<'_>)

Source

fn on_encounter_move( &mut self, _scope: PullScope, _actor: PositionedActorRef, _transform: SpatialTransform, _ctx: &mut SimContext<'_>, )

Source

fn on_actor_movement( &mut self, _movement: ActorMovementBinding, _moving: bool, _ctx: &mut SimContext<'_>, )

Source

fn on_raid_event(&mut self, _event: RaidEventBinding, _ctx: &mut SimContext<'_>)

Source

fn on_raid_add_despawn( &mut self, _add: RaidAddBinding, _ctx: &mut SimContext<'_>, )

Source

fn on_external_buff( &mut self, _buff: ExternalBuffBinding, _ctx: &mut SimContext<'_>, )

Source

fn on_event_queue_empty(&mut self, _ctx: &mut SimContext<'_>)

Called only when the shared event queue is empty.

Source

fn encounter_termination_time(&self) -> Option<SimTime>

Exact termination timestamp once the encounter policy is satisfied.

Source

fn on_despawn( &mut self, _target: EnemyIdx, _ctx: &mut SimContext<'_>, ) -> EnemyDespawnOutcome

Despawn an enemy through the canonical combat cleanup boundary.

Source

fn on_hook_timer( &mut self, _timer: HookTimerBinding, _source: ActorId, _target: Option<EnemyIdx>, _ctx: &mut SimContext<'_>, )

A HookTimer scheduled via the combat layer’s schedule_hook came due.

Source

fn on_auto_attack( &mut self, _source: ActorId, _target: EnemyIdx, _ctx: &mut SimContext<'_>, )

Source

fn on_enemy_auto_attack( &mut self, _source: EnemyIdx, _target: ActorId, _ctx: &mut SimContext<'_>, )

Source

fn on_cooldown_ready( &mut self, _spell: ScheduledSpellBinding, _ctx: &mut SimContext<'_>, )

Source

fn reset(&mut self)

Reset mutable per-iteration state without reallocating.

Source

fn flush_scheduled(&mut self, _push: &mut dyn FnMut(Event))

Source

fn take_runtime_error(&mut self) -> Option<SpecRuntimeError>

Take a fatal event-processing failure, if the handler recorded one.

Source

fn paperdoll(&self) -> Option<Paperdoll>

Source

fn introspect(&self) -> SpecIntrospection

Source

fn attach_decision_trace(&mut self, _sink: Arc<dyn DecisionTraceSink>)

Implementors§