Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 45907 - Torch Target Picker
- class spell_midsummer_torch_target_picker : public SpellScript
- {
- PrepareSpellScript(spell_midsummer_torch_target_picker);
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_TARGET_INDICATOR_COSMETIC, SPELL_TARGET_INDICATOR });
- }
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- Unit* target = GetHitUnit();
- target->CastSpell(target, SPELL_TARGET_INDICATOR_COSMETIC, true);
- target->CastSpell(target, SPELL_TARGET_INDICATOR, true);
- }
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_midsummer_torch_target_picker::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
- }
- };
- // 46054 - Torch Toss (land)
- class spell_midsummer_torch_toss_land : public SpellScript
- {
- PrepareSpellScript(spell_midsummer_torch_toss_land);
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo({ SPELL_BRAZIERS_HIT });
- }
- void HandleScript(SpellEffIndex /*effIndex*/)
- {
- GetHitUnit()->CastSpell(GetCaster(), SPELL_BRAZIERS_HIT, true);
- }
- void Register() override
- {
- OnEffectHitTarget += SpellEffectFn(spell_midsummer_torch_toss_land::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
- }
- };
- enum RibbonPoleData
- {
- SPELL_HAS_FULL_MIDSUMMER_SET = 58933,
- SPELL_BURNING_HOT_POLE_DANCE = 58934,
- SPELL_RIBBON_POLE_PERIODIC_VISUAL = 45406,
- SPELL_RIBBON_DANCE = 29175,
- SPELL_TEST_RIBBON_POLE_1 = 29705,
- SPELL_TEST_RIBBON_POLE_2 = 29726,
- SPELL_TEST_RIBBON_POLE_3 = 29727
- };
- // 29705, 29726, 29727 - Test Ribbon Pole Channel
- class spell_midsummer_test_ribbon_pole_channel : public AuraScript
- {
- PrepareAuraScript(spell_midsummer_test_ribbon_pole_channel);
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo(
- {
- SPELL_RIBBON_POLE_PERIODIC_VISUAL,
- SPELL_BURNING_HOT_POLE_DANCE,
- SPELL_HAS_FULL_MIDSUMMER_SET,
- SPELL_RIBBON_DANCE
- });
- }
- void HandleRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
- {
- GetTarget()->RemoveAurasDueToSpell(SPELL_RIBBON_POLE_PERIODIC_VISUAL);
- }
- void PeriodicTick(AuraEffect const* /*aurEff*/)
- {
- Unit* target = GetTarget();
- target->CastSpell(target, SPELL_RIBBON_POLE_PERIODIC_VISUAL, true);
- if (Aura* aur = target->GetAura(SPELL_RIBBON_DANCE))
- {
- aur->SetMaxDuration(std::min(3600000, aur->GetMaxDuration() + 180000));
- aur->RefreshDuration();
- if (aur->GetMaxDuration() == 3600000 && target->HasAura(SPELL_HAS_FULL_MIDSUMMER_SET))
- target->CastSpell(target, SPELL_BURNING_HOT_POLE_DANCE, true);
- }
- else
- target->CastSpell(target, SPELL_RIBBON_DANCE, true);
- }
- void Register() override
- {
- AfterEffectRemove += AuraEffectRemoveFn(spell_midsummer_test_ribbon_pole_channel::HandleRemove, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL, AURA_EFFECT_HANDLE_REAL);
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_midsummer_test_ribbon_pole_channel::PeriodicTick, EFFECT_1, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
- }
- };
- // 45406 - Holiday - Midsummer, Ribbon Pole Periodic Visual
- class spell_midsummer_ribbon_pole_periodic_visual : public AuraScript
- {
- PrepareAuraScript(spell_midsummer_ribbon_pole_periodic_visual);
- bool Validate(SpellInfo const* /*spellInfo*/) override
- {
- return ValidateSpellInfo(
- {
- SPELL_TEST_RIBBON_POLE_1,
- SPELL_TEST_RIBBON_POLE_2,
- SPELL_TEST_RIBBON_POLE_3
- });
- }
- void PeriodicTick(AuraEffect const* /*aurEff*/)
- {
- Unit* target = GetTarget();
- if (!target->HasAura(SPELL_TEST_RIBBON_POLE_1) && !target->HasAura(SPELL_TEST_RIBBON_POLE_2) && !target->HasAura(SPELL_TEST_RIBBON_POLE_3))
- Remove();
- }
- void Register() override
- {
- OnEffectPeriodic += AuraEffectPeriodicFn(spell_midsummer_ribbon_pole_periodic_visual::PeriodicTick, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY);
- }
- };
Add Comment
Please, Sign In to add comment