wowlab_engine_content/generated/items/
umbral_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 = 260_235;
8pub(crate) mod SPELL {}
9pub(crate) mod AURA {
10 pub(crate) const EQUIP: u32 = 1_265_808;
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_265_808,
25 "aura.duration_ms",
26 )?,
27 )
28 .apply_periodic_effect_from_data(data, 1_265_808)?
29 .max_stacks(
30 wowlab_engine_combat::validated_max_stacks(
31 60.0,
32 1_265_808,
33 "aura.max_stacks",
34 )?,
35 )
36 .rating_per_stack(
37 data,
38 wowlab_types::game::RatingType::Crit,
39 (data.coefficient(wowlab_types::sim::SpellIdx::from_raw(1_265_809), 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_265_808,
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, "Umbral Plume", auras : (budget) [(AURA::EQUIP, aura_equip),],
61 precombat : [AURA::EQUIP,]
62 )
63}