Core/Scripts: Remove duplicate code

This commit is contained in:
Incorrect
2015-08-30 03:43:27 +03:00
parent 6fedea54ef
commit 3748dddaa4

View File

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