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 EFFECT {
16    ///<https://wowlab.gg/inspect/spell/1285138>
17    pub(crate) const CONSUME_MULTIPLIER: (u32, u8) = (1_285_138, 2);
18    ///<https://wowlab.gg/inspect/spell/1286316>
19    pub(crate) const VIRULENT_DAMAGE: (u32, u8) = (1_286_316, 1);
20}
21fn aura_rotbloom(
22    a: AuraDefinitionDraft,
23    data: &ResolvedGameData,
24    budget: ItemBudget,
25) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
26    a.on_target()
27        .apply_base_from_data(data, 1_286_135)?
28        .max_stacks(
29            data
30                .require_aura_max_stacks(
31                    wowlab_types::sim::SpellIdx::from_raw(1_286_135),
32                )?,
33        )
34        .periodic_total_flat_damage_from_data(
35            data,
36            wowlab_engine_combat::validated_milliseconds(
37                data.period(wowlab_types::sim::SpellIdx::from_raw(1_286_135), 1),
38                1_286_135,
39                "periodic_damage.tick_ms",
40            )?,
41            1_286_135,
42            wowlab_engine_domain::dbc::item_scaled_effect_value(
43                    wowlab_engine_domain::dbc::EffectLookup::new(
44                        data,
45                        wowlab_types::sim::EffectRef::new(
46                            wowlab_types::sim::SpellIdx::from_raw(1_285_138),
47                            1,
48                        ),
49                    ),
50                    budget.item_level,
51                )
52                .or_else(|| data.is_empty().then_some(0.0))
53                .ok_or_else(|| {
54                    wowlab_engine_combat::BuilderError::missing_item_scaling_data(
55                        1_285_138,
56                        1,
57                        budget.item_level,
58                    )
59                })?,
60        )?
61        .apply_periodic_behavior_from_data(data, 1_286_135)
62}
63pub(crate) fn register(
64    builder: CombatSystemBuilder,
65    data: &ResolvedGameData,
66    budget: ItemBudget,
67) -> CombatSystemBuilder {
68    crate::items::register_item!(
69        builder, data, "Sporecallers Blooming Loop", rppm_driver : (ITEM_ID, 1_285_138),
70        auras : (budget) [(AURA::ROTBLOOM, aura_rotbloom),]
71    )
72}