aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/scripts/World/npcs_special.cpp122
1 files changed, 36 insertions, 86 deletions
diff --git a/src/server/scripts/World/npcs_special.cpp b/src/server/scripts/World/npcs_special.cpp
index d1d2ddc8a80..57346443390 100644
--- a/src/server/scripts/World/npcs_special.cpp
+++ b/src/server/scripts/World/npcs_special.cpp
@@ -942,6 +942,28 @@ public:
{
npc_garments_of_questsAI(Creature* creature) : npc_escortAI(creature)
{
+ switch (me->GetEntry())
+ {
+ case ENTRY_SHAYA:
+ quest = QUEST_MOON;
+ break;
+ case ENTRY_ROBERTS:
+ quest = QUEST_LIGHT_1;
+ break;
+ case ENTRY_DOLF:
+ quest = QUEST_LIGHT_2;
+ break;
+ case ENTRY_KORJA:
+ quest = QUEST_SPIRIT;
+ break;
+ case ENTRY_DG_KEL:
+ quest = QUEST_DARKNESS;
+ break;
+ default:
+ quest = 0;
+ break;
+ }
+
Reset();
}
@@ -951,6 +973,7 @@ public:
bool CanRun;
uint32 RunAwayTimer;
+ uint32 quest;
void Reset() override
{
@@ -982,93 +1005,20 @@ public:
if (Player* player = caster->ToPlayer())
{
- switch (me->GetEntry())
+ if (quest && player->GetQuestStatus(quest) == QUEST_STATUS_INCOMPLETE)
{
- case ENTRY_SHAYA:
- if (player->GetQuestStatus(QUEST_MOON) == QUEST_STATUS_INCOMPLETE)
- {
- if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1)
- {
- Talk(SAY_THANKS, caster);
- CanRun = true;
- }
- else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2)
- {
- CasterGUID = caster->GetGUID();
- me->SetStandState(UNIT_STAND_STATE_STAND);
- Talk(SAY_HEALED, caster);
- IsHealed = true;
- }
- }
- break;
- case ENTRY_ROBERTS:
- if (player->GetQuestStatus(QUEST_LIGHT_1) == QUEST_STATUS_INCOMPLETE)
- {
- if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1)
- {
- Talk(SAY_THANKS, caster);
- CanRun = true;
- }
- else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2)
- {
- CasterGUID = caster->GetGUID();
- me->SetStandState(UNIT_STAND_STATE_STAND);
- Talk(SAY_HEALED, caster);
- IsHealed = true;
- }
- }
- break;
- case ENTRY_DOLF:
- if (player->GetQuestStatus(QUEST_LIGHT_2) == QUEST_STATUS_INCOMPLETE)
- {
- if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1)
- {
- Talk(SAY_THANKS, caster);
- CanRun = true;
- }
- else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2)
- {
- CasterGUID = caster->GetGUID();
- me->SetStandState(UNIT_STAND_STATE_STAND);
- Talk(SAY_HEALED, caster);
- IsHealed = true;
- }
- }
- break;
- case ENTRY_KORJA:
- if (player->GetQuestStatus(QUEST_SPIRIT) == QUEST_STATUS_INCOMPLETE)
- {
- if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1)
- {
- Talk(SAY_THANKS, caster);
- CanRun = true;
- }
- else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2)
- {
- CasterGUID = caster->GetGUID();
- me->SetStandState(UNIT_STAND_STATE_STAND);
- Talk(SAY_HEALED, caster);
- IsHealed = true;
- }
- }
- break;
- case ENTRY_DG_KEL:
- if (player->GetQuestStatus(QUEST_DARKNESS) == QUEST_STATUS_INCOMPLETE)
- {
- if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1)
- {
- Talk(SAY_THANKS, caster);
- CanRun = true;
- }
- else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2)
- {
- CasterGUID = caster->GetGUID();
- me->SetStandState(UNIT_STAND_STATE_STAND);
- Talk(SAY_HEALED, caster);
- IsHealed = true;
- }
- }
- break;
+ if (IsHealed && !CanRun && spell->Id == SPELL_FORTITUDE_R1)
+ {
+ Talk(SAY_THANKS, caster);
+ CanRun = true;
+ }
+ else if (!IsHealed && spell->Id == SPELL_LESSER_HEAL_R2)
+ {
+ CasterGUID = caster->GetGUID();
+ me->SetStandState(UNIT_STAND_STATE_STAND);
+ Talk(SAY_HEALED, caster);
+ IsHealed = true;
+ }
}
// give quest credit, not expect any special quest objectives