aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authorManuel <manue.l@live.com.ar>2011-01-09 00:00:08 -0300
committerManuel <manue.l@live.com.ar>2011-01-09 00:00:08 -0300
commit5cf76896eb07c449327aaca7c36046027fb955df (patch)
treefb4844e27a521668a79f5fc4a69cce0ec4060f57 /src/server/scripts/Spells
parent57173df80f29d796a6de56b877fceff7abe181bc (diff)
Core/Battleground: Implemented blizzlike script for Isle of Conquest, written by gyullo and me, based on Socolin's and Josh's patch -BIG THANKS TO THEM-
Anyway the map is not yet playable, there are issues not related with the script. I also want to thanks to QAston, linencloth, Shauren and Machiavelli to be so patient with my questions.
Diffstat (limited to 'src/server/scripts/Spells')
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index a7510b97ff3..3b1a535fcfe 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -635,6 +635,76 @@ public:
}
};
+class spell_gen_gunship_portal : public SpellScriptLoader
+{
+public:
+ spell_gen_gunship_portal() : SpellScriptLoader("spell_gen_gunship_portal") { }
+
+ class spell_gen_gunship_portalSpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_gunship_portalSpellScript)
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit* caster = GetCaster();
+ if (!caster->ToPlayer())
+ return;
+
+ if (Battleground *bg = caster->ToPlayer()->GetBattleground())
+ {
+ if (bg->GetTypeID(true) == BATTLEGROUND_IC)
+ bg->DoAction(1,caster->GetGUID());
+ }
+ }
+
+ void Register()
+ {
+ OnEffect += SpellEffectFn(spell_gen_gunship_portalSpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_gen_gunship_portalSpellScript();
+ }
+};
+
+enum parachuteIC
+{
+ SPELL_PARACHUTE_IC = 66657
+};
+
+class spell_gen_parachute_ic : public SpellScriptLoader
+{
+ public:
+ spell_gen_parachute_ic() : SpellScriptLoader("spell_gen_parachute_ic") { }
+
+ class spell_gen_parachute_icAuraScript : public AuraScript
+ {
+ PrepareAuraScript(spell_gen_parachute_icAuraScript)
+
+ void HandleTriggerSpell(AuraEffect const * /*aurEff*/)
+ {
+ Unit* target = GetTarget();
+
+ if (!target->ToPlayer())
+ return;
+
+ if (target->ToPlayer()->m_movementInfo.fallTime > 2000)
+ target->CastSpell(target,SPELL_PARACHUTE_IC,true);
+ }
+
+ void Register()
+ {
+ OnEffectPeriodic += AuraEffectPeriodicFn(spell_gen_parachute_icAuraScript::HandleTriggerSpell, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
+ }
+ };
+
+ AuraScript *GetAuraScript() const
+ {
+ return new spell_gen_parachute_icAuraScript();
+ }
+};
+
void AddSC_generic_spell_scripts()
{
new spell_gen_absorb0_hitlimit1();
@@ -651,4 +721,6 @@ void AddSC_generic_spell_scripts()
new spell_gen_animal_blood();
new spell_gen_shroud_of_death();
new spell_gen_divine_storm_cd_reset();
+ new spell_gen_parachute_ic();
+ new spell_gen_gunship_portal();
}