diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp | 143 |
1 files changed, 0 insertions, 143 deletions
diff --git a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp index eb95cd1c68b..0931549377b 100644 --- a/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp +++ b/src/server/scripts/EasternKingdoms/ScarletEnclave/chapter2.cpp @@ -25,148 +25,6 @@ #include "SpellInfo.h" #include "SpellScript.h" -//How to win friends and influence enemies -// texts signed for creature 28939 but used for 28939, 28940, 28610 -enum win_friends -{ - SAY_CRUSADER = 1, - SAY_PERSUADED1 = 2, - SAY_PERSUADED2 = 3, - SAY_PERSUADED3 = 4, - SAY_PERSUADED4 = 5, - SAY_PERSUADED5 = 6, - SAY_PERSUADED6 = 7, - SAY_PERSUADE_RAND = 8, - SPELL_PERSUASIVE_STRIKE = 52781, - SPELL_THREAT_PULSE = 58111, - QUEST_HOW_TO_WIN_FRIENDS = 12720, -}; - -class npc_crusade_persuaded : public CreatureScript -{ -public: - npc_crusade_persuaded() : CreatureScript("npc_crusade_persuaded") { } - - CreatureAI* GetAI(Creature* creature) const override - { - return new npc_crusade_persuadedAI(creature); - } - - struct npc_crusade_persuadedAI : public ScriptedAI - { - npc_crusade_persuadedAI(Creature* creature) : ScriptedAI(creature) - { - Initialize(); - } - - void Initialize() - { - speechTimer = 0; - speechCounter = 0; - playerGUID.Clear(); - } - - uint32 speechTimer; - uint32 speechCounter; - ObjectGuid playerGUID; - - void Reset() override - { - Initialize(); - me->SetReactState(REACT_AGGRESSIVE); - me->RestoreFaction(); - } - - void SpellHit(Unit* caster, SpellInfo const* spell) override - { - if (spell->Id == SPELL_PERSUASIVE_STRIKE && caster->GetTypeId() == TYPEID_PLAYER && me->IsAlive() && !speechCounter) - { - if (Player* player = caster->ToPlayer()) - { - if (player->GetQuestStatus(QUEST_HOW_TO_WIN_FRIENDS) == QUEST_STATUS_INCOMPLETE) - { - playerGUID = player->GetGUID(); - speechTimer = 1000; - speechCounter = 1; - me->SetFaction(player->GetFaction()); - me->CombatStop(true); - me->GetMotionMaster()->MoveIdle(); - me->SetReactState(REACT_PASSIVE); - DoCastAOE(SPELL_THREAT_PULSE, true); - - sCreatureTextMgr->SendChat(me, SAY_PERSUADE_RAND, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, SoundKitPlayType::Normal, TEAM_OTHER, false, player); - Talk(SAY_CRUSADER); - } - } - } - } - - void UpdateAI(uint32 diff) override - { - if (speechCounter) - { - if (speechTimer <= diff) - { - Player* player = ObjectAccessor::GetPlayer(*me, playerGUID); - if (!player) - { - EnterEvadeMode(); - return; - } - - switch (speechCounter) - { - case 1: - Talk(SAY_PERSUADED1); - speechTimer = 8000; - break; - - case 2: - Talk(SAY_PERSUADED2); - speechTimer = 8000; - break; - - case 3: - Talk(SAY_PERSUADED3); - speechTimer = 8000; - break; - - case 4: - Talk(SAY_PERSUADED4); - speechTimer = 8000; - break; - - case 5: - sCreatureTextMgr->SendChat(me, SAY_PERSUADED5, nullptr, CHAT_MSG_ADDON, LANG_ADDON, TEXT_RANGE_NORMAL, 0, SoundKitPlayType::Normal, TEAM_OTHER, false, player); - speechTimer = 8000; - break; - - case 6: - Talk(SAY_PERSUADED6); - Unit::Kill(player, me); - speechCounter = 0; - player->GroupEventHappens(QUEST_HOW_TO_WIN_FRIENDS, me); - return; - } - - ++speechCounter; - DoCastAOE(SPELL_THREAT_PULSE, true); - - } else - speechTimer -= diff; - - return; - } - - if (!UpdateVictim()) - return; - - DoMeleeAttackIfReady(); - } - }; - -}; - /*###### ## npc_koltira_deathweaver ######*/ @@ -763,7 +621,6 @@ class spell_death_knight_devour_humanoid : public SpellScript void AddSC_the_scarlet_enclave_c2() { - new npc_crusade_persuaded(); new npc_scarlet_courier(); new npc_koltira_deathweaver(); new npc_high_inquisitor_valroth(); |