void Reset() override
        {
            Initialize();

            instance->SetGuidData(DATA_LEOTHERAS_EVENT_STARTER, ObjectGuid::Empty);
            Creature* leotheras = ObjectAccessor::GetCreature(*me, leotherasGUID);
            if (leotheras && leotheras->IsAlive())
                ENSURE_AI(boss_leotheras_the_blind::boss_leotheras_the_blindAI, leotheras->AI())->CheckChannelers(/*false*/);
        }
        void StartEvent(Unit* who)
        {
            GetAdvisors();

            Talk(SAY_AGGRO);
            DoZoneInCombat();

            instance->SetGuidData(DATA_KARATHRESSEVENT_STARTER, who->GetGUID());
            instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS);
        }
Example #3
0
        bool OnGossipHello(Player* player, GameObject* /*go*/) override
        {
            InstanceScript* instance = player->GetInstanceScript();
            if (!instance)
                return false;

            player->CastSpell (player, SPELL_BOSS_OBJECT_VISUAL, false);

            instance->SetGuidData(0, player->GetGUID());     // activate archaedas
            return false;
        }
        void OpferRufen()
        {
            ObjectGuid opfer = instance->GetGuidData(DATA_ADD_JEDOGA_INITIAND);

            if (!opfer.IsEmpty())
            {
                Talk(TEXT_SACRIFICE_1);
                instance->SetGuidData(DATA_ADD_JEDOGA_OPFER, opfer);
            }
            else
                bCanDown = true;
        }
        void JustDied(Unit* killer) override
        {
            if (!killer || !instance)
                return;

            if (bWalking)
            {
                if (Creature* boss = ObjectAccessor::GetCreature(*me, instance->GetGuidData(DATA_JEDOGA_SHADOWSEEKER)))
                {
                    if (!ENSURE_AI(boss_jedoga_shadowseeker::boss_jedoga_shadowseekerAI, boss->AI())->bOpFerok)
                        ENSURE_AI(boss_jedoga_shadowseeker::boss_jedoga_shadowseekerAI, boss->AI())->bOpFerokFail = true;

                    if (killer->GetTypeId() == TYPEID_PLAYER)
                        boss->AI()->DoAction(ACTION_INITIAND_KILLED);
                }

                instance->SetGuidData(DATA_ADD_JEDOGA_OPFER, ObjectGuid::Empty);

                bWalking = false;
            }
            if (killer->GetTypeId() == TYPEID_PLAYER)
                instance->SetGuidData(DATA_PL_JEDOGA_TARGET, killer->GetGUID());
        }
        void Reset() override
        {
            Initialize();

            if (!bFirstTime)
                instance->SetBossState(DATA_JEDOGA_SHADOWSEEKER, FAIL);

            instance->SetGuidData(DATA_PL_JEDOGA_TARGET, ObjectGuid::Empty);
            instance->SetGuidData(DATA_ADD_JEDOGA_OPFER, ObjectGuid::Empty);
            instance->SetData(DATA_JEDOGA_RESET_INITIANDS, 0);
            MoveUp();

            bFirstTime = false;
        }
Example #7
0
        void Reset() override
        {
            Initialize();

            if (instance->GetGuidData(DATA_IMAGE_OF_MEDIVH).IsEmpty())
            {
                instance->SetGuidData(DATA_IMAGE_OF_MEDIVH, me->GetGUID());
                (*me).GetMotionMaster()->MovePoint(1, MedivPos[0], MedivPos[1], MedivPos[2]);
                Step = 0;
            }
            else
            {
                me->DealDamage(me, me->GetHealth(), NULL, DIRECT_DAMAGE, SPELL_SCHOOL_MASK_NORMAL, NULL, false);
                me->RemoveCorpse();
            }
        }
 bool OnGossipSelect(Player* player, Creature* creature, uint32 /*sender*/, uint32 action) override
 {
     player->PlayerTalkClass->ClearMenus();
     switch (action)
     {
         case GOSSIP_ACTION_INFO_DEF+1:
             player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_SELECT_DOOMREL, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 2);
             player->SEND_GOSSIP_MENU(2605, creature->GetGUID());
             break;
         case GOSSIP_ACTION_INFO_DEF+2:
             player->CLOSE_GOSSIP_MENU();
             //start event here
             creature->setFaction(FACTION_HOSTILE);
             creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC);
             creature->AI()->AttackStart(player);
             InstanceScript* instance = creature->GetInstanceScript();
             if (instance)
                 instance->SetGuidData(DATA_EVENSTARTER, player->GetGUID());
             break;
     }
     return true;
 }
 void EnterCombat(Unit* who) override
 {
     me->InterruptNonMeleeSpells(false);
     instance->SetGuidData(DATA_LEOTHERAS_EVENT_STARTER, who->GetGUID());
 }
        void DoSummonGrandChampion(uint32 uiBoss)
        {
            ++uiSummonTimes;
            uint32 VEHICLE_TO_SUMMON1 = 0;
            uint32 VEHICLE_TO_SUMMON2 = 0;
            switch (uiBoss)
            {
                case 0:
                    VEHICLE_TO_SUMMON1 = VEHICLE_MOKRA_SKILLCRUSHER_MOUNT;
                    VEHICLE_TO_SUMMON2 = VEHICLE_ORGRIMMAR_WOLF;
                    break;
                case 1:
                    VEHICLE_TO_SUMMON1 = VEHICLE_ERESSEA_DAWNSINGER_MOUNT;
                    VEHICLE_TO_SUMMON2 = VEHICLE_SILVERMOON_HAWKSTRIDER;
                    break;
                case 2:
                    VEHICLE_TO_SUMMON1 = VEHICLE_RUNOK_WILDMANE_MOUNT;
                    VEHICLE_TO_SUMMON2 = VEHICLE_THUNDER_BLUFF_KODO;
                    break;
                case 3:
                    VEHICLE_TO_SUMMON1 = VEHICLE_ZUL_TORE_MOUNT;
                    VEHICLE_TO_SUMMON2 = VEHICLE_DARKSPEAR_RAPTOR;
                    break;
                case 4:
                    VEHICLE_TO_SUMMON1 = VEHICLE_DEATHSTALKER_VESCERI_MOUNT;
                    VEHICLE_TO_SUMMON2 = VEHICLE_FORSAKE_WARHORSE;
                    break;
                default:
                    return;
            }

            if (Creature* pBoss = me->SummonCreature(VEHICLE_TO_SUMMON1, SpawnPosition))
            {
                switch (uiSummonTimes)
                {
                    case 1:
                    {
                        uiVehicle1GUID = pBoss->GetGUID();
                        ObjectGuid uiGrandChampionBoss1;
                        if (Vehicle* pVehicle = pBoss->GetVehicleKit())
                            if (Unit* unit = pVehicle->GetPassenger(0))
                                uiGrandChampionBoss1 = unit->GetGUID();
                        instance->SetGuidData(DATA_GRAND_CHAMPION_VEHICLE_1, uiVehicle1GUID);
                        instance->SetGuidData(DATA_GRAND_CHAMPION_1, uiGrandChampionBoss1);
                        pBoss->AI()->SetData(1, 0);
                        break;
                    }
                    case 2:
                    {
                        uiVehicle2GUID = pBoss->GetGUID();
                        ObjectGuid uiGrandChampionBoss2;
                        if (Vehicle* pVehicle = pBoss->GetVehicleKit())
                            if (Unit* unit = pVehicle->GetPassenger(0))
                                uiGrandChampionBoss2 = unit->GetGUID();
                        instance->SetGuidData(DATA_GRAND_CHAMPION_VEHICLE_2, uiVehicle2GUID);
                        instance->SetGuidData(DATA_GRAND_CHAMPION_2, uiGrandChampionBoss2);
                        pBoss->AI()->SetData(2, 0);
                        break;
                    }
                    case 3:
                    {
                        uiVehicle3GUID = pBoss->GetGUID();
                        ObjectGuid uiGrandChampionBoss3;
                        if (Vehicle* pVehicle = pBoss->GetVehicleKit())
                            if (Unit* unit = pVehicle->GetPassenger(0))
                                uiGrandChampionBoss3 = unit->GetGUID();
                        instance->SetGuidData(DATA_GRAND_CHAMPION_VEHICLE_3, uiVehicle3GUID);
                        instance->SetGuidData(DATA_GRAND_CHAMPION_3, uiGrandChampionBoss3);
                        pBoss->AI()->SetData(3, 0);
                        break;
                    }
                    default:
                        return;
                }

                for (uint8 i = 0; i < 3; ++i)
                {
                    if (Creature* pAdd = me->SummonCreature(VEHICLE_TO_SUMMON2, SpawnPosition, TEMPSUMMON_CORPSE_DESPAWN))
                    {
                        switch (uiSummonTimes)
                        {
                            case 1:
                                Champion1List.push_back(pAdd->GetGUID());
                                break;
                            case 2:
                                Champion2List.push_back(pAdd->GetGUID());
                                break;
                            case 3:
                                Champion3List.push_back(pAdd->GetGUID());
                                break;
                        }

                        switch (i)
                        {
                            case 0:
                                pAdd->GetMotionMaster()->MoveFollow(pBoss, 2.0f, float(M_PI));
                                break;
                            case 1:
                                pAdd->GetMotionMaster()->MoveFollow(pBoss, 2.0f, float(M_PI) / 2);
                                break;
                            case 2:
                                pAdd->GetMotionMaster()->MoveFollow(pBoss, 2.0f, float(M_PI) / 2 + float(M_PI));
                                break;
                        }
                    }

                }
            }
        }
 void JustEngagedWith(Unit* who) override
 {
     instance->SetGuidData(DATA_KARATHRESSEVENT_STARTER, who->GetGUID());
     instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS);
 }
 void JustEngagedWith(Unit* who) override
 {
     instance->SetGuidData(DATA_KARATHRESSEVENT_STARTER, who->GetGUID());
     instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS);
     DoCast(me, SPELL_WINDFURY_WEAPON);
 }
Example #13
0
 void SummonedCreatureDies(Creature* summoned, Unit* /*killer*/) override
 {
     listOfMobs.Despawn(summoned);
     instance->SetGuidData(DATA_DEL_TRASH_MOB, summoned->GetGUID());
 }
Example #14
0
 void JustSummoned(Creature* summoned) override
 {
     listOfMobs.Summon(summoned);
     instance->SetGuidData(DATA_ADD_TRASH_MOB, summoned->GetGUID());
 }
 void EnterCombat(Unit* who) override
 {
     instance->SetGuidData(DATA_KARATHRESSEVENT_STARTER, who->GetGUID());
     instance->SetData(DATA_KARATHRESSEVENT, IN_PROGRESS);
 }