aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authorSpp <spp@jorge.gr>2013-05-21 09:41:13 +0200
committerSpp <spp@jorge.gr>2013-05-21 09:41:13 +0200
commit1b6fb2b6959f504d9e33d2326691cf43a04690d2 (patch)
tree31671ddd62612c27e1e821408956b9a8ff52a0ab /src/server/scripts/Spells
parent82dc639882d2d51a8bde9bcd47b773be435a5a12 (diff)
parent243c325ca4323feb4f7f80c0ecd3873c78cbf887 (diff)
Merge branch 'master' into 4.3.4 [NOTE: There are parts of code marked as "REVIEW - MERGE" That needs some review)
Conflicts: src/server/game/DataStores/DBCStores.cpp src/server/game/DataStores/DBCStores.h src/server/game/DataStores/DBCfmt.h src/server/game/Entities/Unit/Unit.cpp src/server/game/Entities/Unit/Unit.h src/server/game/Handlers/AuctionHouseHandler.cpp src/server/game/Handlers/GroupHandler.cpp src/server/game/Movement/Spline/MovementTypedefs.h src/server/game/Spells/Auras/SpellAuraEffects.cpp src/server/game/Spells/SpellInfo.cpp src/server/scripts/EasternKingdoms/ScarletEnclave/chapter1.cpp src/server/scripts/Spells/spell_generic.cpp
Diffstat (limited to 'src/server/scripts/Spells')
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 7d7cdb84861..a84f299167e 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -3585,6 +3585,55 @@ class spell_gen_darkflight : public SpellScriptLoader
}
};
+enum OrcDisguiseSpells
+{
+ SPELL_ORC_DISGUISE_TRIGGER = 45759,
+ SPELL_ORC_DISGUISE_MALE = 45760,
+ SPELL_ORC_DISGUISE_FEMALE = 45762,
+};
+
+class spell_gen_orc_disguise : public SpellScriptLoader
+{
+ public:
+ spell_gen_orc_disguise() : SpellScriptLoader("spell_gen_orc_disguise") { }
+
+ class spell_gen_orc_disguise_SpellScript : public SpellScript
+ {
+ PrepareSpellScript(spell_gen_orc_disguise_SpellScript);
+
+ bool Validate(SpellInfo const* /*spell*/)
+ {
+ if (!sSpellMgr->GetSpellInfo(SPELL_ORC_DISGUISE_TRIGGER) || !sSpellMgr->GetSpellInfo(SPELL_ORC_DISGUISE_MALE) ||
+ !sSpellMgr->GetSpellInfo(SPELL_ORC_DISGUISE_FEMALE))
+ return false;
+ return true;
+ }
+
+ void HandleScript(SpellEffIndex /*effIndex*/)
+ {
+ Unit* caster = GetCaster();
+ if (Player* target = GetHitPlayer())
+ {
+ uint8 gender = target->getGender();
+ if (!gender)
+ caster->CastSpell(target, SPELL_ORC_DISGUISE_MALE, true);
+ else
+ caster->CastSpell(target, SPELL_ORC_DISGUISE_FEMALE, true);
+ }
+ }
+
+ void Register()
+ {
+ OnEffectHitTarget += SpellEffectFn(spell_gen_orc_disguise_SpellScript::HandleScript, EFFECT_0, SPELL_EFFECT_SCRIPT_EFFECT);
+ }
+ };
+
+ SpellScript* GetSpellScript() const
+ {
+ return new spell_gen_orc_disguise_SpellScript();
+ }
+};
+
void AddSC_generic_spell_scripts()
{
new spell_gen_absorb0_hitlimit1();
@@ -3672,4 +3721,5 @@ void AddSC_generic_spell_scripts()
new spell_gen_running_wild();
new spell_gen_two_forms();
new spell_gen_darkflight();
+ new spell_gen_orc_disguise();
}