FelmystAI(Creature* pCreature) : ArcScriptBossAI(pCreature)
	{
		//Phase 1 spells
		AddPhaseSpell(1, AddSpell(FELMYST_CLEAVE, Target_Current, 6, 0, 10, 0, 5));
		AddPhaseSpell(1, AddSpell(FELMYST_GAS_NOVA, Target_Self, 25, 1, 18));
		AddPhaseSpell(1, AddSpell(FELMYST_ENCAPSULATE, Target_RandomPlayer, 25, 7, 30, 0, 30));
		AddPhaseSpell(1, AddSpell(FELMYST_CORROSION, Target_Current, 20, 0.75f, 35, 0, 30, false, "Choke on your final breath!"));

		//Phase 2 spells
		AddPhaseSpell(2, AddSpell(FELMYST_DEMONIC_VAPOR, Target_RandomPlayer, 10, 0, 20));

		//Phase 3 spells
		//Fog of corruption is the actual breath Felmyst does during his second phase, probably we'll have to spawn it like a creature.
		//AddSpell(FELMYST_FOG_OF_CORRUPTION, Target_RandomPlayerApplyAura, 15, 0, 20, 0, 10); Does not support by the core.

		//10min Enrage
		SetEnrageInfo(AddSpell(FELMYST_ENRAGE, Target_Self, 0, 0, 0, 0, 0, false, "No more hesitation! Your fates are written!"), 600000);

		//Emotes
		AddEmote(Event_OnCombatStart, "Glory to Kil'jaeden! Death to all who oppose!", Text_Yell);
		AddEmote(Event_OnTargetDied, "I kill for the master! ", Text_Yell);
		AddEmote(Event_OnTargetDied, "The end has come!", Text_Yell);
		AddEmote(Event_OnDied, "Kil'jaeden... will... prevail...", Text_Yell);
		AddEmote(Event_OnTaunt, "I am stronger than ever before!", Text_Yell);
	}
    VexallusAI(Creature* pCreature) : MoonScriptBossAI(pCreature)
    {
        AddPhaseSpell(1, AddSpell(VEXALLUS_CHAIN_LIGHTNING, Target_Current, 19, 0, 8, 0, 0));
        AddPhaseSpell(1, AddSpell(VEXALLUS_ARCANE_SHOCK, Target_ClosestPlayer, 12, 0, 20, 0, 0, true, "Un...con...tainable.", Text_Yell, 12392));
        AddPhaseSpell(2, AddSpell(VEXALLUS_OVERLOAD, Target_Self, 85, 0, 3, 0, 0));
        mPureEnergy = AddSpell(VEXALLUS_SUMMON_PURE_ENERGY, Target_Self, 85, 0, 3);

        mSummon = 0;
    }
	void phaseTester()
	{

		_unit->Root();
		GetAllowMelee();
		SetBehavior(Behavior_Spell);

		if ((HandOfTheDeceiver1 && HandOfTheDeceiver2 && HandOfTheDeceiver3) && (HandOfTheDeceiver1->isDead() && HandOfTheDeceiver2->isDead() && HandOfTheDeceiver3->isDead()) && (GetPhase() != 1) && (GetPhase() != 2) && (starter == 0))
		{
			_unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_UNIVERSAL, SAY_KJ_EMERGE);
			_unit->PlaySoundToSet(SOUND_KJ_EMERGE);
			RemoveAura(42866);
			_unit->m_invisible = false;
			starter = 1;
		}

		switch(GetPhase())
		{
		case 1:
			{
				if(GetHealthPercent()<=85 && phase == 2)
				{
					_unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_UNIVERSAL, SAY_KJ_PHASE3);
					_unit->PlaySoundToSet(SOUND_KJ_PHASE3);
					AddPhaseSpell(1, AddSpell(SPELL_SINISTER_REFLECTION, Target_RandomPlayer, 10, 1.5f, 4, 0, 35));
					AddPhaseSpell(1, AddSpell(SPELL_SHADOW_SPIKE, Target_RandomDestination, 10, 2.0f, 6, 0, 35));
					AddPhaseSpell(1, AddSpell(SPELL_FLAME_DART, Target_RandomPlayer, 10, 1.3f, 4, 0, 35));
					ShieldOrb2 = _unit->GetMapMgr()->GetInterface()->SpawnCreature(CN_SHIELD_ORB, 1712.00f, 604.00f, 48.00f, 0.00f, true, true, 0, 0);
					phase++;
				}

				if(GetHealthPercent()<=55 && phase == 3)
				{
					_unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_UNIVERSAL, SAY_KJ_PHASE4);
					_unit->PlaySoundToSet(SOUND_KJ_PHASE4);
					ShieldOrb3 = _unit->GetMapMgr()->GetInterface()->SpawnCreature(CN_SHIELD_ORB, 1684.00f, 651.00f, 48.00f, 0.00f, true, true, 0, 0);
					dtimmer = 0;
					phase++;
				}

				if(GetHealthPercent()<=25 && phase == 4 && (dtimmer > 54 || dtimmer == 0))
				{
					_unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_UNIVERSAL, SAY_KJ_PHASE5);
					_unit->PlaySoundToSet(SOUND_KJ_PHASE5);
					ShieldOrb4 = _unit->GetMapMgr()->GetInterface()->SpawnCreature(CN_SHIELD_ORB, 1720.00f, 642.00f, 48.00f, 0.00f, true, true, 0, 0);
					CastSpellOnTarget(_unit, Target_Self, dbcSpell.LookupEntry(SPELL_SACRIFICE_OF_ANVEENA), true);
					dtimmer = 0;
					phase++;
				}
			}break;
		}
	}
Exemple #4
0
    KaelThasMTAI(Creature* pCreature) : MoonScriptBossAI(pCreature)
    {
        //AddPhaseSpell(1, AddSpell(FELMYST_CLEAVE, Target_Current, 6, 0, 10, 0, 5));
        AddPhaseSpell(1, AddSpell(KAELTHAS_FIREBALL, Target_RandomPlayer, 40, 2, 6, 0, 40));


    }
	KaelThasMTAI(Creature* pCreature) : MoonScriptBossAI(pCreature)
	{
	  
       AddPhaseSpell(1, AddSpell(SPELL_FIREBALL_NORMAL, Target_RandomPlayer, 40, 2, 6, 0, 40));

	   Phases = 3;

	}
Exemple #6
0
	GolemaggAI(Creature* pCreature) : MoonScriptBossAI(pCreature)
	{
		CoreRager1 = CoreRager2 = NULL;
		GolemaggTrust = AddSpell(GOLEMAGG_TRUST, Target_Self, 8, 0, 3);
		AddSpell(GOLEMAGG_MAGMA_SPLASH, Target_Self, 15, 0, 0);
		AddSpell(GOLEMAGG_PYROBLAST, Target_RandomPlayer, 10, 0, 8, 0, 40); 
		AddPhaseSpell(2, AddSpell(GOLEMAGG_EARTHQUAKE, Target_Self, 10, 0, 0));
		
	}
Exemple #7
0
	HighKingMaulgarAI(Creature* pCreature) : ArcTicScriptBossAI(pCreature)
	{
		AddPhaseSpell(2, AddSpell(HIGH_KING_MAULGAR_BERSERKER_CHARGE, Target_RandomPlayer, 10, 0, 25, 0, 40));
		AddPhaseSpell(2, AddSpell(HIGH_KING_MAULGAR_INTIMIDATING_ROAR, Target_Current, 7, 0, 20, 0, 5));
		AddSpell(HIGH_KING_MAULGAR_ARCING_SMASH, Target_Current, 8, 0, 15, 0, 10);
		AddSpell(HIGH_KING_MAULGAR_WHIRLWIND, Target_Self, 7, 15, 25);					// SpellFunc for range check?
		AddSpell(HIGH_KING_MAULGAR_MIGHTY_BLOW, Target_Current, 7, 0, 20, 0, 5);
		mEnrage = AddSpellFunc(&SpellFunc_Maulgar_Enrage, Target_Self, 0, 0, 0);
		mEnrage->AddEmote("You will not defeat the hand of Gruul!", Text_Yell, 11368);
		AddEmote(Event_OnCombatStart, "Gronn are the real power in Outland!", Text_Yell, 11367);
		AddEmote(Event_OnTargetDied, "You not so tough after all!", Text_Yell, 11373);
		AddEmote(Event_OnTargetDied, "Maulgar is king!", Text_Yell, 11375);
		AddEmote(Event_OnTargetDied, "", Text_Emote, 11374);
		AddEmote(Event_OnDied, "Grull... will crush you!", Text_Yell, 11376);

		mLastYell = -1;
		mAliveAdds = 0;
	}
Exemple #8
0
	KilJaedenAI(Creature* pCreature) : MoonScriptBossAI(pCreature)
	{	
		SetCanEnterCombat( false );

		DelayNextAttack( 11600 );
		SetAllowMelee( false );
		SetAllowSpell( false );
		SetAllowTargeting( false );
		SetCanMove( false );
		TriggerCooldownOnAllSpells(); 

		SetCanMove( false );
		Emote( "The expendible have perished... So be it! Now I shall succeed where Sargeras could not! I will bleed this wretched world and secure my place as the true master of the Burning Legion. The end has come! Let the unraveling of this world commence!", Text_Yell, 12500 );
		mStarted = false;
		RegisterAIUpdateEvent( 100 );

		pKJDummy = static_cast<KJDummyAI*>( GetNearestCreature( CN_KIL_JADEN_DUMMY ) );
		if( pKJDummy )
			pKJDummy->AddEncounterCreature( _unit );

		AddPhaseSpell( 1, AddSpell( SOUL_FLAY, Target_Current, 50, 0, 6 ) );
		AddPhaseSpell( 1, AddSpell( LEGION_LIGHTNING, Target_RandomPlayer, 25, 2.0f, 8 ) );
		AddPhaseSpell( 1, AddSpell( FIRE_BLOOM, Target_RandomPlayer, 20, 0, 10 ) );
	};
	IngvarAI(Creature* pCreature) : MoonScriptBossAI(pCreature)
	{
		// Phase 1
		AddPhaseSpell(1, AddSpell(INGVAR_CLEAVE, Target_Current, 24, 0, 6 ));
		AddPhaseSpell(1, AddSpell(INGVAR_ENRAGE, Target_Self, 45, 0, 6 ));
		AddPhaseSpell(1, AddSpell(INGVAR_SMASH, Target_Self, 12, 3, 16 ));
		AddPhaseSpell(1, AddSpell(INGVAR_ROAR, Target_Self, 25, 2, 10 ));
		
		//Phase 2
		AddPhaseSpell(2, AddSpell(INGVAR_DARK_SMASH, Target_Self, 12, 3, 16 ));
		AddPhaseSpell(2, AddSpell(INGVAR_DREADFUL_ROAR, Target_Self, 25, 2, 10 ));
		AddPhaseSpell(2, AddSpell(INGVAR_WOE_STRIKE, Target_ClosestUnit, 18, 0, 16 ));
		//AddPhaseSpell(2, AddSpell(INGVAR_SHADOW_AXE));
		
		AddEmote(Event_OnTargetDied, "Mjul orm agn gjor!", Text_Yell, 13212);
	}
Exemple #10
0
    HalazziAI(Creature* pCreature) : MoonScriptBossAI(pCreature)
    {
		AddPhaseSpell(1, AddSpell(HALAZZI_SABER_LASH, Target_Destination, 0.5, 0, 0, 0, 0, false, "Me gonna carve ya now!", Text_Yell, 12023));

		AddPhaseSpell(2, AddSpell(HALAZZI_FLAME_SHOCK, Target_Current, 12, 0, 0));
		AddPhaseSpell(2, AddSpell(HALAZZI_EARTH_SHOCK, Target_Current, 12, 0, 0));

		AddPhaseSpell(3, AddSpell(HALAZZI_SABER_LASH, Target_Destination, 0.5, 0, 0, 0, 0, false, "You gonna leave in pieces!", Text_Yell, 12024));
		AddPhaseSpell(3, AddSpell(HALAZZI_FLAME_SHOCK, Target_Current, 18, 0, 0));
		AddPhaseSpell(3, AddSpell(HALAZZI_EARTH_SHOCK, Target_Current, 18, 0, 0));
		AddPhaseSpell(3, AddSpell(HALAZZI_ENRAGE, Target_Self, 100, 0, 60));

		// Transfigure: 4k aoe damage
		Transfigure = AddSpell(44054, Target_Self, 0, 0, 0, 0, 0, false, "I fight wit' untamed spirit...", Text_Yell, 12021);

		AddEmote(Event_OnCombatStart, "Get on your knees and bow to da fang and claw!", Text_Yell, 12020);
		AddEmote(Event_OnTargetDied, "You cant fight da power...", Text_Yell, 12026);
		AddEmote(Event_OnTargetDied, "You all gonna fail...", Text_Yell, 12027);
		AddEmote(Event_OnDied, "Chaga... choka'jinn.", Text_Yell, 12028);
		mLynx = NULL;
	}
Exemple #11
0
	NalorakkAI(Creature* pCreature) : MoonScriptBossAI(pCreature)
	{
		AddPhaseSpell(1, AddSpell(NALORAKK_BRUTAL_SWIPE, Target_Current, 2, 0, 35));
		AddPhaseSpell(1, AddSpell(NALORAKK_MANGLE, Target_Current, 12, 0, 20));
		AddPhaseSpell(1, AddSpell(NALORAKK_SURGE, Target_RandomPlayer, 8, 0, 20, 0.0f, 45.0f, true, "I bring da pain!", Text_Yell, 12071));

		AddPhaseSpell(2, AddSpell(NALORAKK_LACERATING_SLASH, Target_Current, 12, 0, 20));
		AddPhaseSpell(2, AddSpell(NALORAKK_REND_FLESH, Target_Current, 12, 0, 12));
		AddPhaseSpell(2, AddSpell(NALORAKK_DEAFENING_ROAR, Target_RandomPlayer, 11, 0, 12));

		SetEnrageInfo(AddSpell(NALORAKK_BERSERK, Target_Self, 0, 0, 600, 0, 0, false, "You had your chance, now it be too late!", Text_Yell, 12074), 600000);

		AddEmote(Event_OnCombatStart, "You be dead soon enough!", Text_Yell, 12070);
		AddEmote(Event_OnTargetDied, "Da Amani gonna rule again!", Text_Yell, 12076);
		AddEmote(Event_OnTargetDied, "Now whatchoo got to say?", Text_Yell, 12075);
		AddEmote(Event_OnDied, "I... be waitin' on da udda side....", Text_Yell, 12077);

		// Bear Form
		Morph = AddSpell(42377, Target_Self, 0, 0, 0, 0, 0, false, "You call on da beast, you gonna get more dan you bargain for!", Text_Yell, 12072);
	}
	GeneralBjarngrimAI(Creature* pCreature) : MoonScriptBossAI(pCreature)
	{
		mInstance = GetInstanceScript();
		// Battle Stance 
		AddPhaseSpell(1, AddSpell( SPELL_MORTAL_STRIKE, Target_Current, 25, 0, 5));
		AddPhaseSpell(1, AddSpell( SPELL_WHIRLWIND, Target_Self, 90, 8, 30));

		// Berserker Stance
		AddPhaseSpell(2, AddSpell( SPELL_CLEAVE, Target_Current, 30, 0, 5 ));

		// Defensive Stance
		AddPhaseSpell(3, AddSpell( SPELL_SPELL_REFLECTION, Target_Self, 20, 0, 10));
		AddPhaseSpell(3, AddSpell( SPELL_INTERCEPT, Target_RandomPlayerNotCurrent, 40, 0, 6));
		AddPhaseSpell(3, AddSpell( SPELL_PUMMEL, Target_Current, 40, 0, 5));

		AddEmote(Event_OnCombatStart, "I am the greatest of my father's sons! Your end has come!", Text_Yell, 14149);
		AddEmote(Event_OnTargetDied, "So ends your curse!", Text_Yell, 14153);
		AddEmote(Event_OnTargetDied, "Flesh... is... weak!", Text_Yell, 14154);
		AddEmote(Event_OnDied, "How can it be...? Flesh is not... stronger!", Text_Yell, 14156);
		
		mStanceTimer = INVALIDATE_TIMER;
	};
	KilJaedenAI(Creature* pCreature) : ArcScriptBossAI(pCreature)
	{
		AddPhaseSpell(1, AddSpell(SPELL_LEGION_LIGHTNING, Target_RandomPlayer, 20, 2, 3, 0, 50));
		AddPhaseSpell(1, AddSpell(SPELL_SOUL_FLAY_DAMAGE, Target_RandomPlayer, 20, 2.5, 3, 0, 50));
		AddPhaseSpell(1, AddSpell(SPELL_FIRE_BLOOM, Target_RandomPlayer, 20, 1, 15, 0, 20));
	}
	void AIUpdate()
	{
		if ((HandOfTheDeceiver1 && HandOfTheDeceiver2 && HandOfTheDeceiver3 && HandOfTheDeceiver4) && (HandOfTheDeceiver1->isDead() || HandOfTheDeceiver2->isDead() || HandOfTheDeceiver3->isDead() || HandOfTheDeceiver4->isDead()) && (GetPhase() != 1))
		{
			RemoveAura(46410);
		}

		if ((HandOfTheDeceiver1 && HandOfTheDeceiver2 && HandOfTheDeceiver3 && HandOfTheDeceiver4) && (HandOfTheDeceiver1->isDead() && HandOfTheDeceiver2->isDead() && HandOfTheDeceiver3->isDead() && HandOfTheDeceiver4->isDead()) && (GetPhase() != 1) && (GetPhase() != 2))
		{
			SetPhase(1);
			_unit->SetUInt64Value(UNIT_FIELD_FLAGS, ( true ) ? 0 : UNIT_FLAG_NOT_ATTACKABLE_9);
			_unit->GetAIInterface()->SetAllowedToEnterCombat(true);
			RemoveAura(46367);
			ShieldOrb1 = _unit->GetMapMgr()->GetInterface()->SpawnGameObject(CN_SHIELD_ORB, 1678.00f, 610.00f, 28.00f, 0.00f, false, 0, 0);
		}

		if (ShieldOrb1)
		{
			//ShieldOrb1->CastSpell(ShShadowbolt);
		}
		if (ShieldOrb2)
		{
			//ShieldOrb2->CastSpell(ShShadowbolt);
		}
		if (ShieldOrb3)
		{
			//ShieldOrb3->CastSpell(ShShadowbolt);
		}
		if (ShieldOrb4)
		{
			//ShieldOrb4->CastSpell(ShShadowbolt);
		}

		switch (dtimmer)
		{
		case 100:
			{
				dtimmer++;
				if (GetHealthPercent()<=85)
				{
					SetPhase(2);
					SetAllowMelee(false);
					SetCanMove(false);
					_unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_UNIVERSAL, "Kil'jaeden begins to channel dark energy");
				}
			}break;
		case 120:
			{
				dtimmer++;
				if (GetPhase() == 2)
					CastSpellOnTarget(_unit, Target_RandomPlayer, Darkness_explosion, true);
					//CastSpellOnTarget(_unit, Target_RandomPlayer, Darkness, true); //this is the correct, but the dragon doesn't work.
				SetAllowMelee(false);
				SetCanMove(false);
			}break;
		case 128:
			{
				SetPhase(1);
				SetAllowMelee(false);
				SetCanMove(false);
				dtimmer = 1;
			}break;
		default:
			{
				SetCanMove(false);
				SetAllowMelee(false);
				dtimmer++;
			}break;
		}

		switch(GetPhase())
		{
		case 1:
			{
				if(GetHealthPercent()<=85)
				{
					AddPhaseSpell(1, AddSpell(SINISTER_REFLECTION, Target_RandomPlayer, 10, 1.5f, 4, 0, 35));
					AddPhaseSpell(1, AddSpell(SHADOW_SPIKE, Target_RandomDestination, 10, 2.0f, 6, 0, 35));
					AddPhaseSpell(1, AddSpell(FLAME_DART_EXPLOSION, Target_RandomPlayer, 10, 1.3f, 4, 0, 35));
					ShieldOrb1 = _unit->GetMapMgr()->GetInterface()->SpawnGameObject(CN_SHIELD_ORB, 1678.00f, 610.00f, 28.00f, -1.72788f, false, 0, 0);
				}

				if(GetHealthPercent()<=55)
				{
					ShieldOrb1 = _unit->GetMapMgr()->GetInterface()->SpawnGameObject(CN_SHIELD_ORB, 1684.00f, 651.00f, 28.00f, 0.00f, false, 0, 0);
				}

				if(GetHealthPercent()<=25)
				{
					//Armageddon
					ShieldOrb1 = _unit->GetMapMgr()->GetInterface()->SpawnGameObject(CN_SHIELD_ORB, 1720.00f, 642.00f, 28.00f, 0.00f, false, 0, 0);
					AddPhaseSpell(1, AddSpell(SACRIFICE_OF_ANVEENA, Target_RandomPlayer, 50, 0.5f, 10, 0, 35));
				}
			}break;
		}
		ParentClass::AIUpdate();
	}
	KilJaedenAI(Creature* pCreature) : ArcTicScriptBossAI(pCreature)
	{
		AddPhaseSpell(1, AddSpell(LEGION_LIGHTNING, Target_RandomPlayer, 10, 1.5f, 2, 0, 35));
		AddPhaseSpell(1, AddSpell(SOUL_FLAY, Target_RandomPlayer, 10, 0, 0, 0, 35));
		AddPhaseSpell(1, AddSpell(FIRE_BLOOM, Target_RandomPlayer, 10, 1, 0, 0, 100));
	}