/* * Copyright (C) 2016+ AzerothCore , released under GNU GPL v2 license, you may redistribute it and/or modify it under version 2 of the License, or (at your option), any later version. * Copyright (C) 2008-2016 TrinityCore * Copyright (C) 2005-2009 MaNGOS */ /* ScriptData SDName: Stranglethorn_Vale SD%Complete: 100 SDComment: Quest support: 592 SDCategory: Stranglethorn Vale EndScriptData */ /* ContentData npc_yenniku EndContentData */ #include "Player.h" #include "ScriptedCreature.h" #include "ScriptMgr.h" #include "SpellInfo.h" /*###### ## npc_yenniku ######*/ class npc_yenniku : public CreatureScript { public: npc_yenniku() : CreatureScript("npc_yenniku") { } CreatureAI* GetAI(Creature* creature) const override { return new npc_yennikuAI(creature); } struct npc_yennikuAI : public ScriptedAI { npc_yennikuAI(Creature* creature) : ScriptedAI(creature) { bReset = false; } uint32 Reset_Timer; bool bReset; void Reset() override { Reset_Timer = 0; me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_NONE); } void SpellHit(Unit* caster, const SpellInfo* spell) override { if (bReset || spell->Id != 3607) return; if (Player* player = caster->ToPlayer()) { if (player->GetQuestStatus(592) == QUEST_STATUS_INCOMPLETE) //Yenniku's Release { me->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_STATE_STUN); me->CombatStop(); //stop combat me->DeleteThreatList(); //unsure of this me->setFaction(83); //horde generic bReset = true; Reset_Timer = 60000; } } } void EnterCombat(Unit* /*who*/) override { } void UpdateAI(uint32 diff) override { if (bReset) { if (Reset_Timer <= diff) { EnterEvadeMode(); bReset = false; me->setFaction(28); //troll, bloodscalp return; } Reset_Timer -= diff; if (me->IsInCombat() && me->GetVictim()) { if (Player* player = me->GetVictim()->ToPlayer()) { if (player->GetTeamId() == TEAM_HORDE) { me->CombatStop(); me->DeleteThreatList(); } } } } //Return since we have no target if (!UpdateVictim()) return; DoMeleeAttackIfReady(); } }; }; /*###### ## ######*/ void AddSC_stranglethorn_vale() { new npc_yenniku(); }