Skip to main content

wowlab_engine_content/generated/items/
locuswalkers_ribbon.rs

1//! @generated by codegen-cli from manifests/items.toml (LOCUSWALKERS_RIBBON) -- do not edit by hand.
2// Generated code: naming follows game data conventions.
3#![allow(non_snake_case, dead_code)]
4use wowlab_engine_combat::{
5    CombatSystemBuilder, AuraDefinitionDraft, SpellDefinitionDraft,
6};
7use wowlab_engine_gamedata::{ItemBudget, ResolvedGameData};
8///<https://wowlab.gg/inspect/item/249809>
9pub(crate) const ITEM_ID: u32 = 249_809;
10///<https://wowlab.gg/inspect/spell/1259314>
11pub(crate) const DRIVER_SPELL_ID: u32 = 1_259_314;
12pub(crate) mod SPELL {
13    ///<https://wowlab.gg/inspect/spell/1259317>
14    pub(crate) const TEMPTATION: u32 = 1_259_317;
15}
16pub(crate) mod AURA {
17    ///<https://wowlab.gg/inspect/spell/1259317>
18    pub(crate) const TEMPTATION: u32 = 1_259_317;
19    ///<https://wowlab.gg/inspect/spell/1268058>
20    pub(crate) const DEEPENING: u32 = 1_268_058;
21}
22pub(crate) mod AURA_BINDING {
23    pub(crate) const TEMPTATION: wowlab_engine_combat::AuraBinding = wowlab_engine_combat::generated_identities::items::locuswalkers_ribbon::TEMPTATION;
24    pub(crate) const DEEPENING: wowlab_engine_combat::AuraBinding = wowlab_engine_combat::generated_identities::items::locuswalkers_ribbon::DEEPENING;
25}
26pub(crate) mod SPELL_BINDING {
27    pub(crate) const TEMPTATION: wowlab_engine_combat::SpellBinding = wowlab_engine_combat::generated_identities::items::locuswalkers_ribbon::SPELL_TEMPTATION;
28}
29pub(crate) const RPPM_BINDING: wowlab_engine_combat::RppmBinding = wowlab_engine_combat::generated_identities::items::locuswalkers_ribbon::RPPM;
30pub(crate) mod DAMAGE_SPELL {
31    pub(crate) const TEMPTATION: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::locuswalkers_ribbon::damage::ACTION::SPELL_1259317;
32}
33pub(crate) mod DAMAGE_AURA {
34    pub(crate) const TEMPTATION: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::locuswalkers_ribbon::damage::ACTION::SPELL_1259317;
35    pub(crate) const DEEPENING: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::locuswalkers_ribbon::damage::ACTION::SPELL_1268058;
36}
37pub(crate) mod DAMAGE_EFFECT {}
38fn aura_temptation(
39    a: AuraDefinitionDraft,
40    data: &ResolvedGameData,
41    budget: ItemBudget,
42) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
43    a.on_player()
44        .apply_base_from_data(data, 1_259_317)?
45        .max_stacks(
46            data
47                .require_aura_max_stacks(
48                    wowlab_types::sim::SpellIdx::from_raw(1_259_317),
49                )?,
50        )
51        .primary_per_stack(
52            data.coefficient(wowlab_types::sim::SpellIdx::from_raw(1_259_314), 1)
53                * budget.stat,
54        )
55}
56fn aura_deepening(
57    a: AuraDefinitionDraft,
58    data: &ResolvedGameData,
59    _budget: ItemBudget,
60) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
61    Ok(
62        a
63            .on_player()
64            .apply_base_from_data(data, 1_268_058)?
65            .max_stacks(
66                data
67                    .require_aura_max_stacks(
68                        wowlab_types::sim::SpellIdx::from_raw(1_268_058),
69                    )?,
70            ),
71    )
72}
73fn spell_temptation(
74    s: SpellDefinitionDraft,
75    data: &ResolvedGameData,
76) -> Result<SpellDefinitionDraft, wowlab_engine_combat::BuilderError> {
77    Ok(
78        s
79            .apply_cooldown_pools_from_data(data, 1_259_317)?
80            .applies_aura_id(AURA::TEMPTATION),
81    )
82}
83pub(crate) fn register(
84    builder: CombatSystemBuilder,
85    data: &ResolvedGameData,
86    budget: ItemBudget,
87) -> CombatSystemBuilder {
88    let builder = builder
89        .effect_identities(
90            wowlab_engine_combat::generated_identities::items::locuswalkers_ribbon::damage::ALL,
91        );
92
93    crate::items::register_item!(
94        builder, data, "Locuswalkers Ribbon", rppm_driver : (RPPM_BINDING, ITEM_ID,
95        1_259_314), auras : (budget) [(AURA::TEMPTATION, AURA_BINDING::TEMPTATION,
96        aura_temptation), (AURA::DEEPENING, AURA_BINDING::DEEPENING, aura_deepening),],
97        spells : [(SPELL::TEMPTATION, SPELL_BINDING::TEMPTATION, spell_temptation),]
98    )
99}