Skip to main content

wowlab_engine_content/generated/items/
spymasters_web.rs

1//! @generated by codegen-cli from manifests/items.toml (SPYMASTERS_WEB) -- do not edit by hand.
2// Generated code: naming follows game data conventions.
3#![allow(non_snake_case, dead_code)]
4use wowlab_engine_combat::{
5    CombatSystemBuilder, AuraDefinitionDraft, SpellDefinitionDraft,
6};
7use wowlab_engine_gamedata::{ItemBudget, ResolvedGameData};
8///<https://wowlab.gg/inspect/item/220202>
9pub(crate) const ITEM_ID: u32 = 220_202;
10pub(crate) mod SPELL {
11    ///<https://wowlab.gg/inspect/spell/444959>
12    pub(crate) const USE: u32 = 444_959;
13}
14pub(crate) mod AURA {
15    ///<https://wowlab.gg/inspect/spell/444958>
16    pub(crate) const EQUIP: u32 = 444_958;
17    ///<https://wowlab.gg/inspect/spell/444959>
18    pub(crate) const REPORT: u32 = 444_959;
19}
20pub(crate) mod AURA_BINDING {
21    pub(crate) const EQUIP: wowlab_engine_combat::AuraBinding = wowlab_engine_combat::generated_identities::items::spymasters_web::EQUIP;
22    pub(crate) const REPORT: wowlab_engine_combat::AuraBinding = wowlab_engine_combat::generated_identities::items::spymasters_web::REPORT;
23}
24pub(crate) mod SPELL_BINDING {
25    pub(crate) const USE: wowlab_engine_combat::SpellBinding = wowlab_engine_combat::generated_identities::items::spymasters_web::SPELL_USE;
26}
27pub(crate) mod DAMAGE_SPELL {
28    pub(crate) const USE: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::spymasters_web::damage::ACTION::SPELL_444959;
29}
30pub(crate) mod DAMAGE_AURA {
31    pub(crate) const EQUIP: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::spymasters_web::damage::ACTION::SPELL_444958;
32    pub(crate) const REPORT: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::spymasters_web::damage::ACTION::SPELL_444959;
33}
34pub(crate) mod DAMAGE_EFFECT {}
35fn aura_equip(
36    a: AuraDefinitionDraft,
37    data: &ResolvedGameData,
38    _budget: ItemBudget,
39) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
40    Ok(
41        a
42            .on_player()
43            .apply_base_from_data(data, 444_958)?
44            .max_stacks(
45                data
46                    .require_aura_max_stacks(
47                        wowlab_types::sim::SpellIdx::from_raw(444_958),
48                    )?,
49            ),
50    )
51}
52fn aura_report(
53    a: AuraDefinitionDraft,
54    data: &ResolvedGameData,
55    _budget: ItemBudget,
56) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
57    Ok(
58        a
59            .on_player()
60            .apply_base_from_data(data, 444_959)?
61            .max_stacks(
62                data
63                    .require_aura_max_stacks(
64                        wowlab_types::sim::SpellIdx::from_raw(444_959),
65                    )?,
66            ),
67    )
68}
69fn spell_use(
70    s: SpellDefinitionDraft,
71    data: &ResolvedGameData,
72) -> Result<SpellDefinitionDraft, wowlab_engine_combat::BuilderError> {
73    Ok(
74        s
75            .apply_cooldown_pools_from_data(data, 444_959)?
76            .on_cast(crate::hooks::items::spymasters_web::on_cast_use),
77    )
78}
79pub(crate) fn register(
80    builder: CombatSystemBuilder,
81    data: &ResolvedGameData,
82    budget: ItemBudget,
83) -> CombatSystemBuilder {
84    let builder = builder
85        .effect_identities(
86            wowlab_engine_combat::generated_identities::items::spymasters_web::damage::ALL,
87        );
88
89    crate::items::register_item!(
90        builder, data, "Spymasters Web", auras : (budget) [(AURA::EQUIP,
91        AURA_BINDING::EQUIP, aura_equip), (AURA::REPORT, AURA_BINDING::REPORT,
92        aura_report),], spells : [(SPELL::USE, SPELL_BINDING::USE, spell_use),]
93    )
94}