Skip to main content

wowlab_engine_content/generated/items/
umbral_plume.rs

1//! @generated by codegen-cli from manifests/items.toml (UMBRAL_PLUME) -- 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/260235>
7pub(crate) const ITEM_ID: u32 = 260_235;
8pub(crate) mod SPELL {}
9pub(crate) mod AURA {
10    ///<https://wowlab.gg/inspect/spell/1265808>
11    pub(crate) const EQUIP: u32 = 1_265_808;
12}
13pub(crate) mod AURA_BINDING {
14    pub(crate) const EQUIP: wowlab_engine_combat::AuraBinding = wowlab_engine_combat::generated_identities::items::umbral_plume::EQUIP;
15}
16pub(crate) mod SPELL_BINDING {}
17pub(crate) mod DAMAGE_SPELL {}
18pub(crate) mod DAMAGE_AURA {
19    pub(crate) const EQUIP: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::umbral_plume::damage::ACTION::SPELL_1265808;
20}
21pub(crate) mod DAMAGE_EFFECT {}
22fn aura_equip(
23    a: AuraDefinitionDraft,
24    data: &ResolvedGameData,
25    budget: ItemBudget,
26) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
27    Ok(
28        a
29            .on_player()
30            .duration_ms(
31                wowlab_engine_combat::validated_milliseconds(
32                    60000.0,
33                    1_265_808,
34                    "aura.duration_ms",
35                )?,
36            )
37            .apply_periodic_effect_from_data(data, 1_265_808)?
38            .max_stacks(
39                wowlab_engine_combat::validated_max_stacks(
40                    60.0,
41                    1_265_808,
42                    "aura.max_stacks",
43                )?,
44            )
45            .rating_per_stack(
46                data,
47                wowlab_types::game::RatingType::Crit,
48                (data.coefficient(wowlab_types::sim::SpellIdx::from_raw(1_265_809), 1)
49                    * budget.rating) / (60.0),
50            )?
51            .reverse()
52            .reapply_on_expire()
53            .periodic_stack_tick(
54                wowlab_engine_combat::validated_milliseconds(
55                    1000.0,
56                    1_265_808,
57                    "aura.stack_tick_ms",
58                )?,
59            )
60            .clip_tick_behavior(1),
61    )
62}
63pub(crate) fn register(
64    builder: CombatSystemBuilder,
65    data: &ResolvedGameData,
66    budget: ItemBudget,
67) -> CombatSystemBuilder {
68    let builder = builder
69        .effect_identities(
70            wowlab_engine_combat::generated_identities::items::umbral_plume::damage::ALL,
71        );
72
73    crate::items::register_item!(
74        builder, data, "Umbral Plume", auras : (budget) [(AURA::EQUIP,
75        AURA_BINDING::EQUIP, aura_equip),], precombat : [AURA::EQUIP,]
76    )
77}