Skip to main content

wowlab_engine_content/hooks/survival_hunter/
handler.rs

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