wowlab_engine_content/hooks/shadow_priest/
handler.rs1use wowlab_engine_combat::CombatHandler;
2use wowlab_engine_ports::HandlerParams;
3
4use super::config::register_shadow;
5
6#[derive(Debug)]
7pub(crate) struct ShadowPriestHandler {
8 inner: CombatHandler,
9}
10
11impl ShadowPriestHandler {
12 pub(crate) fn new(
14 parts: crate::composition::ContentHandlerParts,
15 params: &HandlerParams<'_>,
16 ) -> Result<Self, wowlab_engine_ports::EngineError> {
17 let mut parts = parts;
18 let built = parts.draft_mut();
19
20 register_shadow(built, params);
21
22 let built = parts.finalize()?;
23
24 Ok(Self {
25 inner: CombatHandler::from_built(built),
26 })
27 }
28}
29
30crate::hooks::define_spec_handler! {
31impl ShadowPriestHandler(self, inner) {
32 fn on_sim_start(&mut self, ctx: &mut wowlab_engine_ports::SimContext) {
33 self.inner.on_sim_start(ctx);
34 }
35}
36}