wowlab_engine_content/generated/items/
radiant_plume.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 = 249_806;
8pub(crate) mod SPELL {}
9pub(crate) mod AURA {
10 pub(crate) const EQUIP: u32 = 1_260_615;
12}
13fn aura_equip(
14 a: AuraDefinitionDraft,
15 data: &ResolvedGameData,
16 budget: ItemBudget,
17) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
18 Ok(
19 a
20 .on_player()
21 .duration_ms(
22 wowlab_engine_combat::validated_milliseconds(
23 60000.0,
24 1_260_615,
25 "aura.duration_ms",
26 )?,
27 )
28 .apply_periodic_effect_from_data(data, 1_260_615)?
29 .max_stacks(
30 wowlab_engine_combat::validated_max_stacks(
31 60.0,
32 1_260_615,
33 "aura.max_stacks",
34 )?,
35 )
36 .rating_per_stack(
37 data,
38 wowlab_types::game::RatingType::Mastery,
39 (data.coefficient(wowlab_types::sim::SpellIdx::from_raw(1_260_592), 1)
40 * budget.rating) / (60.0),
41 )?
42 .reverse()
43 .reapply_on_expire()
44 .periodic_stack_tick(
45 wowlab_engine_combat::validated_milliseconds(
46 1000.0,
47 1_260_615,
48 "aura.stack_tick_ms",
49 )?,
50 )
51 .clip_tick_behavior(1),
52 )
53}
54pub(crate) fn register(
55 builder: CombatSystemBuilder,
56 data: &ResolvedGameData,
57 budget: ItemBudget,
58) -> CombatSystemBuilder {
59 crate::items::register_item!(
60 builder, data, "Radiant Plume", auras : (budget) [(AURA::EQUIP, aura_equip),],
61 precombat : [AURA::EQUIP,]
62 )
63}