Skip to main content

wowlab_engine_content/hooks/devastation_evoker/
targeting.rs

1use wowlab_engine_domain::{
2    dbc::{
3        ImplicitTargetCheck, ImplicitTargetDirection, ImplicitTargetObject,
4        ImplicitTargetReference, ImplicitTargetSelection,
5    },
6    targeting::{
7        TargetEffectCoordinate, TargetGeometryOverlay, TargetOverlayMetadata, TargetPlanOperation,
8        TargetPlanOperations, TargetPlanOverlay, TargetSelector,
9    },
10};
11
12use crate::generated::specs::devastation_evoker::EFFECT;
13
14inventory::submit! {
15    TargetPlanOverlay::new(
16        TargetEffectCoordinate {
17            spell_id: EFFECT::DEEP_BREATH_PATH.0,
18            effect_index: EFFECT::DEEP_BREATH_PATH.1,
19        },
20        TargetOverlayMetadata {
21            name: "Deep Breath flight corridor",
22            reason: "the destination-front area selector describes the flight path rather than one endpoint circle",
23        },
24        TargetPlanOperations::one(TargetPlanOperation::Select(TargetSelector::custom(
25            ImplicitTargetObject::Unit,
26            ImplicitTargetReference::Caster,
27            ImplicitTargetSelection::Line,
28            ImplicitTargetCheck::Enemy,
29            ImplicitTargetDirection::Front,
30        ))),
31    )
32}
33
34inventory::submit! {
35    TargetGeometryOverlay::new(
36        TargetEffectCoordinate {
37            spell_id: EFFECT::DEEP_BREATH_PATH.0,
38            effect_index: EFFECT::DEEP_BREATH_PATH.1,
39        },
40        TargetOverlayMetadata {
41            name: "Deep Breath flight dimensions",
42            reason: "the player flight travels 50 yards and damages actors within the 10-yard-wide path",
43        },
44    )
45        .dimensions(50.0, 5.0)
46        .facing_explicit_target()
47}