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}
20fn aura_equip(
21    a: AuraDefinitionDraft,
22    data: &ResolvedGameData,
23    _budget: ItemBudget,
24) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
25    Ok(
26        a
27            .on_player()
28            .apply_base_from_data(data, 444_958)?
29            .max_stacks(
30                data
31                    .require_aura_max_stacks(
32                        wowlab_types::sim::SpellIdx::from_raw(444_958),
33                    )?,
34            ),
35    )
36}
37fn aura_report(
38    a: AuraDefinitionDraft,
39    data: &ResolvedGameData,
40    _budget: ItemBudget,
41) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
42    Ok(
43        a
44            .on_player()
45            .apply_base_from_data(data, 444_959)?
46            .max_stacks(
47                data
48                    .require_aura_max_stacks(
49                        wowlab_types::sim::SpellIdx::from_raw(444_959),
50                    )?,
51            ),
52    )
53}
54fn spell_use(
55    s: SpellDefinitionDraft,
56    data: &ResolvedGameData,
57) -> Result<SpellDefinitionDraft, wowlab_engine_combat::BuilderError> {
58    Ok(
59        s
60            .apply_cooldown_pools_from_data(data, 444_959)?
61            .on_cast(crate::hooks::items::spymasters_web::on_cast_use),
62    )
63}
64pub(crate) fn register(
65    builder: CombatSystemBuilder,
66    data: &ResolvedGameData,
67    budget: ItemBudget,
68) -> CombatSystemBuilder {
69    crate::items::register_item!(
70        builder, data, "Spymasters Web", auras : (budget) [(AURA::EQUIP, aura_equip),
71        (AURA::REPORT, aura_report),], spells : [(SPELL::USE, spell_use),]
72    )
73}