wowlab_engine_content/generated/items/
aberrant_spellforge.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 = 212_451;
10pub(crate) mod SPELL {
11 pub(crate) const USE: u32 = 445_619;
13}
14pub(crate) mod AURA {
15 pub(crate) const EQUIP: u32 = 443_415;
17}
18pub(crate) mod AURA_BINDING {
19 pub(crate) const EQUIP: wowlab_engine_combat::AuraBinding = wowlab_engine_combat::generated_identities::items::aberrant_spellforge::EQUIP;
20}
21pub(crate) mod SPELL_BINDING {
22 pub(crate) const USE: wowlab_engine_combat::SpellBinding = wowlab_engine_combat::generated_identities::items::aberrant_spellforge::SPELL_USE;
23}
24pub(crate) mod DAMAGE_SPELL {
25 pub(crate) const USE: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::aberrant_spellforge::damage::ACTION::SPELL_445619;
26}
27pub(crate) mod DAMAGE_AURA {
28 pub(crate) const EQUIP: wowlab_engine_combat::DamageActionId = wowlab_engine_combat::generated_identities::items::aberrant_spellforge::damage::ACTION::SPELL_443415;
29}
30pub(crate) mod DAMAGE_EFFECT {
31 pub(crate) const USE_DAMAGE: wowlab_engine_combat::DamageEffectId = wowlab_engine_combat::generated_identities::items::aberrant_spellforge::damage::EFFECT::SPELL_445619_EFFECT_1;
32}
33pub(crate) mod EFFECT {
34 pub(crate) const USE_DAMAGE: (u32, u8) = (445_619, 1);
36}
37fn aura_equip(
38 a: AuraDefinitionDraft,
39 data: &ResolvedGameData,
40 _budget: ItemBudget,
41) -> Result<AuraDefinitionDraft, wowlab_engine_combat::BuilderError> {
42 Ok(
43 a
44 .on_player()
45 .apply_base_from_data(data, 443_415)?
46 .max_stacks(
47 data
48 .require_aura_max_stacks(
49 wowlab_types::sim::SpellIdx::from_raw(443_415),
50 )?,
51 ),
52 )
53}
54fn spell_use(
55 s: SpellDefinitionDraft,
56 data: &ResolvedGameData,
57) -> Result<SpellDefinitionDraft, wowlab_engine_combat::BuilderError> {
58 Ok(
59 s
60 .apply_cooldown_pools_from_data(data, 445_619)?
61 .on_cast(crate::hooks::items::aberrant_spellforge::on_cast_use),
62 )
63}
64pub(crate) fn register(
65 builder: CombatSystemBuilder,
66 data: &ResolvedGameData,
67 budget: ItemBudget,
68) -> CombatSystemBuilder {
69 let builder = builder
70 .effect_identities(
71 wowlab_engine_combat::generated_identities::items::aberrant_spellforge::damage::ALL,
72 );
73
74 crate::items::register_item!(
75 builder, data, "Aberrant Spellforge", auras : (budget) [(AURA::EQUIP,
76 AURA_BINDING::EQUIP, aura_equip),], spells : [(SPELL::USE, SPELL_BINDING::USE,
77 spell_use),]
78 )
79}