rendered paste body#define stomp 6432
class MrSmiteAI : public CreatureAIScript
{
public:
ADD_CREATURE_FACTORY_FUNCTION(MrSmiteAI);
MrSmiteAI(Creature * pCreature) : CreatureAIScript(pCreature)
{
smite_stomp = dbcSpell.LookupEntry(stomp);
}
void OnCombatStart(Unit * mTarget)
{
phase = 0;
}
void OnDamageTaken(Unit * mAttacker, float fAmount)
{
if(_unit->GetHealthPct() <= 66 && phase == 0)
{
Playr = _unit->GetAIInterface()->GetNextTarget();
_unit->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "You landlubbers are tougher than I thought. I'll have to improvise!");
_unit->PlaySoundToSet(5778);
_unit->CastSpell(Playr, smite_stomp, true);
phase++;
_unit->GetAIInterface()->SetAIState(STATE_SCRIPTMOVE);
_unit->GetAIInterface()->MoveTo(1.100060f, -780.026367f, 9.811194f, 5.452218f);
RegisterAIUpdateEvent(500);
}
else if(_unit->GetHealthPct() <= 33 && phase == 1)
{
Playr = _unit->GetAIInterface()->GetNextTarget();
_unit->SendChatMessage(CHAT_MSG_MONSTER_SAY, LANG_UNIVERSAL, "D'ah! Now you're making me angry!");
_unit->PlaySoundToSet(5779);
_unit->CastSpell(Playr, smite_stomp, true);
phase++;
_unit->GetAIInterface()->SetAIState(STATE_SCRIPTMOVE);
_unit->GetAIInterface()->MoveTo(1.100060f, -780.026367f, 9.811194f, 5.452218f);
RegisterAIUpdateEvent(500);
}
}
void OnCombatStop(Unit * mTarget)
{
_unit->GetAIInterface()->setCurrentAgent(AGENT_NULL);
_unit->GetAIInterface()->SetAIState(STATE_IDLE);
RemoveAIUpdateEvent();
phase = 0;
weapons();
}
void OnDied(Unit * mKiller)
{
RemoveAIUpdateEvent();
}
void AIUpdate()
{
_unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_UNIVERSAL, "AIUPDATE WORKS");
if( _unit->GetPositionX() == 1.100060 && _unit->GetPositionY() == -780.026367 && _unit->GetPositionZ() == 9.811194 )
{
_unit->SendChatMessage(CHAT_MSG_MONSTER_YELL, LANG_UNIVERSAL, "DEBUG DEBUG DEBUG DEBUG");
//_unit->Emote(EMOTE_ONESHOT_LOOT);
weapons();
_unit->GetAIInterface()->SetAIState(STATE_ATTACKING);
//ModifyAIUpdateEvent(3000); fix later
}
}
void weapons()
{
switch(phase)
{
case 0:
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY, 7420);
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, 33490690);
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO_01, 768);
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_01, 0);
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO_02, 0);
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO_03, 0);
break;
case 1:
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_01, 7419);
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO_02, 33490690);
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO_03, 781);
break;
case 2:
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY, 19610);
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO, 33488898);
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO_01, 0);
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_SLOT_DISPLAY_01, 0);
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO_02, 0);
_unit->SetUInt32Value(UNIT_VIRTUAL_ITEM_INFO_03, 0);
//_unit->SetUInt32Value(UNIT_FIELD_BYTES_2, 1);
}
RemoveAIUpdateEvent();
}
protected:
SpellEntry * smite_stomp;
Unit * Playr;
int phase;
};