Skip to main content

wowlab_engine_content/hooks/elemental_shaman/
handler.rs

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