wowlab_engine_content/generated/items/
sporecallers_blooming_loop.rs1#![allow(non_snake_case, dead_code)]
4use wowlab_engine_combat::{CombatSystemBuilder, AuraDefinitionDraft};
5use wowlab_engine_gamedata::{ItemBudget, ResolvedGameData};
6pub(crate) const ITEM_ID: u32 = 268_290;
8pub(crate) const DRIVER_SPELL_ID: u32 = 1_285_138;
10pub(crate) mod SPELL {}
11pub(crate) mod AURA {
12 pub(crate) const ROTBLOOM: u32 = 1_286_135;
14}
15pub(crate) mod EFFECT {
16 pub(crate) const CONSUME_MULTIPLIER: (u32, u8) = (1_285_138, 2);
18 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}