diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Maelstrom/kezan.cpp | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/src/server/scripts/Maelstrom/kezan.cpp b/src/server/scripts/Maelstrom/kezan.cpp index c20ed30ea74..7deae4267eb 100644 --- a/src/server/scripts/Maelstrom/kezan.cpp +++ b/src/server/scripts/Maelstrom/kezan.cpp @@ -13,117 +13,6 @@ * with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include "ScriptMgr.h" -#include "ScriptedCreature.h" -#include "ScriptedGossip.h" -#include "Player.h" - -/*#### -## npc_defiant_troll (http://www.wowhead.com/quest=14069) -####*/ - -enum DefiantTrollEnum -{ - DEFFIANT_KILL_CREDIT = 34830, - SPELL_LIGHTNING_VISUAL = 45870, - SPELL_ENRAGE = 45111, - QUEST_GOOD_HELP_IS_HARD_TO_FIND = 14069, - GO_DEPOSIT = 195489, - SAY_WORK = 0 -}; - -class npc_defiant_troll : public CreatureScript -{ -public: - npc_defiant_troll() : CreatureScript("npc_defiant_troll") { } - - CreatureAI* GetAI(Creature* creature) const OVERRIDE - { - return new npc_defiant_trollAI(creature); - } - - struct npc_defiant_trollAI : public ScriptedAI - { - npc_defiant_trollAI(Creature* creature) : ScriptedAI(creature) { } - - uint32 rebuffTimer; - bool work; - - void Reset () OVERRIDE - { - rebuffTimer = 0; - work = false; - me->CastSpell(me, SPELL_ENRAGE, true); - } - - void MovementInform(uint32 /*type*/, uint32 id) OVERRIDE - { - if (id == 1) - work = true; - } - - bool IsWorking() const { return work; } - - void UpdateAI(uint32 diff) OVERRIDE - { - if (IsWorking()) - me->HandleEmoteCommand(EMOTE_ONESHOT_WORK_MINING); - - if (rebuffTimer <= diff) - { - Reset(); - - switch (urand(0, 2)) - { - case 0: - me->HandleEmoteCommand(EMOTE_STATE_EXCLAIM); - break; - case 1: - me->HandleEmoteCommand(EMOTE_STATE_DANCE); - break; - case 2: - me->HandleEmoteCommand(EMOTE_ONESHOT_NONE); - break; - } - rebuffTimer = 120000; // Rebuff again in 2 minutes - } - else - rebuffTimer -= diff; - - if (!UpdateVictim()) - return; - - //DoMeleeAttackIfReady(); - } - }; - - bool OnGossipHello(Player* player, Creature* creature) OVERRIDE - { - if (player->GetQuestStatus(QUEST_GOOD_HELP_IS_HARD_TO_FIND) == QUEST_STATUS_INCOMPLETE && !CAST_AI(npc_defiant_troll::npc_defiant_trollAI, creature->AI())->IsWorking()) - { - player->CastSpell(creature, SPELL_LIGHTNING_VISUAL, true); - player->KilledMonsterCredit(DEFFIANT_KILL_CREDIT, creature->GetGUID()); - creature->AI()->Talk(SAY_WORK); - creature->RemoveAllAuras(); - - if (GameObject* deposit = creature->FindNearestGameObject(GO_DEPOSIT, 20)) - creature->GetMotionMaster()->MovePoint(1, deposit->GetPositionX() - 1.0f, deposit->GetPositionY(), deposit->GetPositionZ()); - - if (player->GetQuestStatus(QUEST_GOOD_HELP_IS_HARD_TO_FIND) == QUEST_STATUS_COMPLETE) - player->RemoveAura(SPELL_LIGHTNING_VISUAL); - - player->CLOSE_GOSSIP_MENU(); - - return true; - } - - player->CLOSE_GOSSIP_MENU(); - - return false; - } -}; - void AddSC_kezan() { - new npc_defiant_troll(); } |