mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-30 13:47:23 +01:00
Core/Misc: Reduce number of player spec hardcoded checks
This commit is contained in:
@@ -419,50 +419,18 @@ struct npc_twisted_visage : public ScriptedAI
|
||||
|
||||
void AttackStart(Unit* who) override
|
||||
{
|
||||
switch (_playerClass)
|
||||
{
|
||||
case CLASS_SHAMAN:
|
||||
switch (_playerSpec)
|
||||
{
|
||||
case TALENT_SPEC_SHAMAN_ELEMENTAL:
|
||||
case TALENT_SPEC_SHAMAN_RESTORATION:
|
||||
ScriptedAI::AttackStartCaster(who, 25.0f);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CLASS_DRUID:
|
||||
switch (_playerSpec)
|
||||
{
|
||||
case TALENT_SPEC_DRUID_BALANCE:
|
||||
case TALENT_SPEC_DRUID_RESTORATION:
|
||||
ScriptedAI::AttackStartCaster(who, 25.0f);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case CLASS_PRIEST:
|
||||
case CLASS_HUNTER:
|
||||
case CLASS_MAGE:
|
||||
case CLASS_WARLOCK:
|
||||
ScriptedAI::AttackStartCaster(who, 25.0f);
|
||||
break;
|
||||
case CLASS_ROGUE:
|
||||
ScriptedAI::AttackStart(who);
|
||||
break;
|
||||
default:
|
||||
ScriptedAI::AttackStart(who);
|
||||
break;
|
||||
}
|
||||
ChrSpecializationEntry const* chrSpecialization = sChrSpecializationStore.LookupEntry(_playerSpec);
|
||||
if (chrSpecialization && chrSpecialization->GetFlags().HasFlag(ChrSpecializationFlag::Ranged))
|
||||
ScriptedAI::AttackStartCaster(who, 25.0f);
|
||||
else
|
||||
ScriptedAI::AttackStart(who);
|
||||
}
|
||||
|
||||
void SetData(uint32 type, uint32 data) override
|
||||
{
|
||||
if (type == DATA_TWISTED_VISAGE_PLAYER_CLASS)
|
||||
{
|
||||
if (data > CLASS_NONE && data <= CLASS_DRUID)
|
||||
if (data > CLASS_NONE && data < MAX_CLASSES)
|
||||
_playerClass = data;
|
||||
}
|
||||
else if (type == DATA_TWISTED_VISAGE_PLAYER_SPEC && _playerClass != CLASS_NONE)
|
||||
|
||||
@@ -1099,13 +1099,13 @@ class spell_sindragosa_unchained_magic : public SpellScript
|
||||
continue;
|
||||
|
||||
ChrSpecializationEntry const* specialization = sChrSpecializationStore.LookupEntry(player->GetPrimarySpecialization());
|
||||
if (specialization->Role == 1)
|
||||
if (specialization->GetRole() == ChrSpecializationRole::Healer)
|
||||
{
|
||||
healers.push_back(target);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (specialization->Flags & CHR_SPECIALIZATION_FLAG_CASTER)
|
||||
if (specialization->GetFlags().HasFlag(ChrSpecializationFlag::Caster))
|
||||
casters.push_back(target);
|
||||
}
|
||||
|
||||
|
||||
@@ -804,7 +804,7 @@ class spell_dru_innervate : public SpellScript
|
||||
return SPELL_FAILED_BAD_TARGETS;
|
||||
|
||||
ChrSpecializationEntry const* spec = sChrSpecializationStore.LookupEntry(target->GetPrimarySpecialization());
|
||||
if (!spec || spec->Role != 1)
|
||||
if (!spec || spec->GetRole() != ChrSpecializationRole::Healer)
|
||||
return SPELL_FAILED_BAD_TARGETS;
|
||||
|
||||
return SPELL_CAST_OK;
|
||||
|
||||
Reference in New Issue
Block a user