Scripts/Spells: Correctly implement Murmur's Touch & Dire Brew (#28058)

This commit is contained in:
offl
2022-06-26 21:44:40 +03:00
committed by GitHub
parent 2d348b6d8b
commit f0d2418e5f
4 changed files with 148 additions and 12 deletions

View File

@@ -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);