aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/scripts/Spells')
-rw-r--r--src/server/scripts/Spells/spell_item.cpp59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index 7e37aadcce7..8dbf3e92a81 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -901,6 +901,64 @@ class spell_item_party_time : public AuraScript
}
};
+enum DireBrew
+{
+ MODEL_CLASS_CLOTH_MALE = 25229,
+ MODEL_CLASS_CLOTH_FEMALE = 25233,
+ MODEL_CLASS_LEATHER_MALE = 25230,
+ MODEL_CLASS_LEATHER_FEMALE = 25234,
+ MODEL_CLASS_MAIL_MALE = 25231,
+ MODEL_CLASS_MAIL_FEMALE = 25235,
+ MODEL_CLASS_PLATE_MALE = 25232,
+ MODEL_CLASS_PLATE_FEMALE = 25236
+};
+
+// 51010 - Dire Brew
+class spell_item_dire_brew : public AuraScript
+{
+ PrepareAuraScript(spell_item_dire_brew);
+
+ void AfterApply(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
+ {
+ Unit* target = GetTarget();
+
+ uint32 model = 0;
+ uint8 gender = target->GetGender();
+
+ switch (target->GetClass())
+ {
+ case CLASS_PRIEST:
+ case CLASS_MAGE:
+ case CLASS_WARLOCK:
+ model = gender == GENDER_MALE ? MODEL_CLASS_CLOTH_MALE : MODEL_CLASS_CLOTH_FEMALE;
+ break;
+ case CLASS_ROGUE:
+ case CLASS_DRUID:
+ model = gender == GENDER_MALE ? MODEL_CLASS_LEATHER_MALE : MODEL_CLASS_LEATHER_FEMALE;
+ break;
+ case CLASS_HUNTER:
+ case CLASS_SHAMAN:
+ model = gender == GENDER_MALE ? MODEL_CLASS_MAIL_MALE : MODEL_CLASS_MAIL_FEMALE;
+ break;
+ case CLASS_WARRIOR:
+ case CLASS_PALADIN:
+ case CLASS_DEATH_KNIGHT:
+ model = gender == GENDER_MALE ? MODEL_CLASS_PLATE_MALE : MODEL_CLASS_PLATE_FEMALE;
+ break;
+ default:
+ break;
+ }
+
+ if (model)
+ target->SetDisplayId(model);
+ }
+
+ void Register() override
+ {
+ AfterEffectApply += AuraEffectApplyFn(spell_item_dire_brew::AfterApply, EFFECT_0, SPELL_AURA_TRANSFORM, AURA_EFFECT_HANDLE_REAL);
+ }
+};
+
enum DiscerningEyeBeastMisc
{
SPELL_DISCERNING_EYE_BEAST = 59914
@@ -4222,6 +4280,7 @@ void AddSC_item_spell_scripts()
RegisterSpellScript(spell_item_desperate_defense);
RegisterSpellScript(spell_item_deviate_fish);
RegisterSpellScript(spell_item_party_time);
+ RegisterSpellScript(spell_item_dire_brew);
RegisterSpellScript(spell_item_discerning_eye_beast_dummy);
RegisterSpellScript(spell_item_echoes_of_light);
RegisterSpellScript(spell_item_extract_gas);