Skip to main content

wowlab_engine_content/generated/items/
sporecallers_blooming_loop.rs

1//! @generated by codegen-cli from manifests/items.toml (SPORECALLERS_BLOOMING_LOOP) -- do not edit by hand.
2// Generated code: naming follows game data conventions.
3#![allow(non_snake_case, dead_code)]
4use wowlab_engine_combat::{CombatSystemBuilder, AuraDefinitionDraft};
5use wowlab_engine_gamedata::{ItemBudget, ResolvedGameData};
6///<https://wowlab.gg/inspect/item/268290>
7pub(crate) const ITEM_ID: u32 = 268_290;
8///<https://wowlab.gg/inspect/spell/1285138>
9pub(crate) const DRIVER_SPELL_ID: u32 = 1_285_138;
10pub(crate) mod SPELL {}
11pub(crate) mod AURA {
12    ///<https://wowlab.gg/inspect/spell/1286135>
13    pub(crate) const ROTBLOOM: u32 = 1_286_135;
14}
15pub(crate) mod AURA_BINDING {
16    pub(crate) const ROTBLOOM: wowlab_engine_combat::AuraBinding = wowlab_engine_combat::generated_identities::items::sporecallers_blooming_loop::ROTBLOOM;
17}
18pub(crate) mod SPELL_BINDING {}
19pub(crate) const RPPM_BINDING: wowlab_engine_combat::RppmBinding = wowlab_engine_combat::generated_identities::items::sporecallers_blooming_loop::RPPM;
20pub(crate) mod DAMAGE_SPELL {}
21pub(crate) mod DAMAGE_AURA {
22    pub(crate) const ROTBLOOM: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::sporecallers_blooming_loop::damage::ACTION::SPELL_1286135;
23}
24pub(crate) mod DAMAGE_EFFECT {
25    pub(crate) const CONSUME_MULTIPLIER: wowlab_engine_combat::DamageEffectId = wowlab_engine_combat::generated_identities::items::sporecallers_blooming_loop::damage::EFFECT::SPELL_1285138_EFFECT_2;
26    pub(crate) const VIRULENT_DAMAGE: wowlab_engine_combat::DamageEffectId = wowlab_engine_combat::generated_identities::items::sporecallers_blooming_loop::damage::EFFECT::SPELL_1286316_EFFECT_1;
27}
28pub(crate) mod EFFECT {
29    ///<https://wowlab.gg/inspect/spell/1285138>
30    pub(crate) const CONSUME_MULTIPLIER: (u32, u8) = (1_285_138, 2);
31    ///<https://wowlab.gg/inspect/spell/1286316>
32    pub(crate) const VIRULENT_DAMAGE: (u32, u8) = (1_286_316, 1);
33}
34fn aura_rotbloom(
35    a: AuraDefinitionDraft,
36    data: &ResolvedGameData,
37    budget: ItemBudget,
38) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
39    a.on_target()
40        .apply_base_from_data(data, 1_286_135)?
41        .max_stacks(
42            data
43                .require_aura_max_stacks(
44                    wowlab_types::sim::SpellIdx::from_raw(1_286_135),
45                )?,
46        )
47        .periodic_total_flat_damage_from_data(
48            data,
49            wowlab_engine_combat::validated_milliseconds(
50                data.period(wowlab_types::sim::SpellIdx::from_raw(1_286_135), 1),
51                1_286_135,
52                "periodic_damage.tick_ms",
53            )?,
54            1_286_135,
55            wowlab_engine_domain::dbc::item_scaled_effect_value(
56                    wowlab_engine_domain::dbc::EffectLookup::new(
57                        data,
58                        wowlab_types::sim::EffectRef::new(
59                            wowlab_types::sim::SpellIdx::from_raw(1_285_138),
60                            1,
61                        ),
62                    ),
63                    budget.item_level,
64                )
65                .or_else(|| data.is_empty().then_some(0.0))
66                .ok_or_else(|| {
67                    wowlab_engine_combat::BuilderError::missing_item_scaling_data(
68                        1_285_138,
69                        1,
70                        budget.item_level,
71                    )
72                })?,
73        )?
74        .apply_periodic_behavior_from_data(data, 1_286_135)
75}
76pub(crate) fn register(
77    builder: CombatSystemBuilder,
78    data: &ResolvedGameData,
79    budget: ItemBudget,
80) -> CombatSystemBuilder {
81    let builder = builder
82        .effect_identities(
83            wowlab_engine_combat::generated_identities::items::sporecallers_blooming_loop::damage::ALL,
84        );
85
86    crate::items::register_item!(
87        builder, data, "Sporecallers Blooming Loop", rppm_driver : (RPPM_BINDING,
88        ITEM_ID, 1_285_138), auras : (budget) [(AURA::ROTBLOOM, AURA_BINDING::ROTBLOOM,
89        aura_rotbloom),]
90    )
91}