Skip to main content

wowlab_engine_content/hooks/arcane_mage/
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::arcane_mage::EFFECT;
13
14inventory::submit! {
15    TargetPlanOverlay::new(
16        TargetEffectCoordinate {
17            spell_id: EFFECT::ARCANE_ORB_TARGETS.0,
18            effect_index: EFFECT::ARCANE_ORB_TARGETS.1,
19        },
20        TargetOverlayMetadata {
21            name: "Arcane Orb moving corridor",
22            reason: "the CreateAreaTrigger selector omits its moving spline and area-trigger width",
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::ARCANE_ORB_TARGETS.0,
38            effect_index: EFFECT::ARCANE_ORB_TARGETS.1,
39        },
40        TargetOverlayMetadata {
41            name: "Arcane Orb corridor dimensions",
42            reason: "AreaTrigger 1612 supplies the moving corridor dimensions omitted by SpellEffect",
43        },
44    )
45        .dimensions(40.0, 2.0)
46        .facing_explicit_target()
47}