wowlab_engine_content/generated/items/
locuswalkers_ribbon.rs1#![allow(non_snake_case, dead_code)]
4use wowlab_engine_combat::{
5 CombatSystemBuilder, AuraDefinitionDraft, SpellDefinitionDraft,
6};
7use wowlab_engine_gamedata::{ItemBudget, ResolvedGameData};
8pub(crate) const ITEM_ID: u32 = 249_809;
10pub(crate) const DRIVER_SPELL_ID: u32 = 1_259_314;
12pub(crate) mod SPELL {
13 pub(crate) const TEMPTATION: u32 = 1_259_317;
15}
16pub(crate) mod AURA {
17 pub(crate) const TEMPTATION: u32 = 1_259_317;
19 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}