Skip to main content

wowlab_engine_content/generated/items/
foul_behemoth_chelicera.rs

1//! @generated by codegen-cli from manifests/items.toml (FOUL_BEHEMOTH_CHELICERA) -- 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/219915>
9pub(crate) const ITEM_ID: u32 = 219_915;
10pub(crate) mod SPELL {
11    ///<https://wowlab.gg/inspect/spell/444264>
12    pub(crate) const USE: u32 = 444_264;
13}
14pub(crate) mod AURA {
15    ///<https://wowlab.gg/inspect/spell/444258>
16    pub(crate) const EQUIP: u32 = 444_258;
17    ///<https://wowlab.gg/inspect/spell/444264>
18    pub(crate) const DIGESTIVE_VENOM: u32 = 444_264;
19}
20pub(crate) mod AURA_BINDING {
21    pub(crate) const EQUIP: wowlab_engine_combat::AuraBinding = wowlab_engine_combat::generated_identities::items::foul_behemoth_chelicera::EQUIP;
22    pub(crate) const DIGESTIVE_VENOM: wowlab_engine_combat::AuraBinding = wowlab_engine_combat::generated_identities::items::foul_behemoth_chelicera::DIGESTIVE_VENOM;
23}
24pub(crate) mod SPELL_BINDING {
25    pub(crate) const USE: wowlab_engine_combat::SpellBinding = wowlab_engine_combat::generated_identities::items::foul_behemoth_chelicera::SPELL_USE;
26}
27pub(crate) const RPPM_BINDING: wowlab_engine_combat::RppmBinding = wowlab_engine_combat::generated_identities::items::foul_behemoth_chelicera::RPPM;
28pub(crate) mod DAMAGE_SPELL {
29    pub(crate) const USE: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::foul_behemoth_chelicera::damage::ACTION::SPELL_444264;
30}
31pub(crate) mod DAMAGE_AURA {
32    pub(crate) const EQUIP: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::foul_behemoth_chelicera::damage::ACTION::SPELL_444258;
33    pub(crate) const DIGESTIVE_VENOM: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::foul_behemoth_chelicera::damage::ACTION::SPELL_444264;
34}
35pub(crate) mod DAMAGE_EFFECT {}
36fn aura_equip(
37    a: AuraDefinitionDraft,
38    data: &ResolvedGameData,
39    _budget: ItemBudget,
40) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
41    Ok(
42        a
43            .on_player()
44            .apply_base_from_data(data, 444_258)?
45            .max_stacks(
46                data
47                    .require_aura_max_stacks(
48                        wowlab_types::sim::SpellIdx::from_raw(444_258),
49                    )?,
50            ),
51    )
52}
53fn aura_digestive_venom(
54    a: AuraDefinitionDraft,
55    data: &ResolvedGameData,
56    _budget: ItemBudget,
57) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
58    a.on_target()
59        .apply_base_from_data(data, 444_264)?
60        .max_stacks(
61            data.require_aura_max_stacks(wowlab_types::sim::SpellIdx::from_raw(444_264))?,
62        )
63        .periodic_damage_sp(
64            wowlab_engine_combat::validated_milliseconds(
65                2000.0,
66                444_264,
67                "periodic_damage.tick_ms",
68            )?,
69            0.0,
70            wowlab_engine_combat::DamageFlags::empty(),
71        )
72        .apply_periodic_behavior_from_data(data, 444_264)
73}
74fn spell_use(
75    s: SpellDefinitionDraft,
76    data: &ResolvedGameData,
77) -> Result<SpellDefinitionDraft, wowlab_engine_combat::BuilderError> {
78    s.apply_cooldown_pools_from_data(data, 444_264)
79}
80pub(crate) fn register(
81    builder: CombatSystemBuilder,
82    data: &ResolvedGameData,
83    budget: ItemBudget,
84) -> CombatSystemBuilder {
85    let builder = builder
86        .effect_identities(
87            wowlab_engine_combat::generated_identities::items::foul_behemoth_chelicera::damage::ALL,
88        );
89
90    crate::items::register_item!(
91        builder, data, "Foul Behemoth Chelicera", rppm : (RPPM_BINDING, ITEM_ID, 2.5,
92        true), auras : (budget) [(AURA::EQUIP, AURA_BINDING::EQUIP, aura_equip),
93        (AURA::DIGESTIVE_VENOM, AURA_BINDING::DIGESTIVE_VENOM, aura_digestive_venom),],
94        spells : [(SPELL::USE, SPELL_BINDING::USE, spell_use),]
95    )
96}