mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-17 08:00:48 +01:00
Core/InstanceScript: Encounterframe research - extended the EncounterFrameType enum
This commit is contained in:
@@ -397,22 +397,22 @@ void InstanceScript::SendEncounterUnit(uint32 type, Unit* unit /*= NULL*/, uint8
|
||||
|
||||
switch (type)
|
||||
{
|
||||
case ENCOUNTER_FRAME_ADD:
|
||||
case ENCOUNTER_FRAME_REMOVE:
|
||||
case 2:
|
||||
case ENCOUNTER_FRAME_ENGAGE:
|
||||
case ENCOUNTER_FRAME_DISENGAGE:
|
||||
case ENCOUNTER_FRAME_UPDATE_PRIORITY:
|
||||
data.append(unit->GetPackGUID());
|
||||
data << uint8(param1);
|
||||
break;
|
||||
case 3:
|
||||
case 4:
|
||||
case 6:
|
||||
case ENCOUNTER_FRAME_ADD_TIMER:
|
||||
case ENCOUNTER_FRAME_ENABLE_OBJECTIVE:
|
||||
case ENCOUNTER_FRAME_DISABLE_OBJECTIVE:
|
||||
data << uint8(param1);
|
||||
data << uint8(param2);
|
||||
break;
|
||||
case 5:
|
||||
case ENCOUNTER_FRAME_UPDATE_OBJECTIVE:
|
||||
data << uint8(param1);
|
||||
break;
|
||||
case 7:
|
||||
case ENCOUNTER_FRAME_UNK7:
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -42,8 +42,14 @@ typedef std::set<Creature*> MinionSet;
|
||||
|
||||
enum EncounterFrameType
|
||||
{
|
||||
ENCOUNTER_FRAME_ADD = 0,
|
||||
ENCOUNTER_FRAME_REMOVE = 1,
|
||||
ENCOUNTER_FRAME_ENGAGE = 0,
|
||||
ENCOUNTER_FRAME_DISENGAGE = 1,
|
||||
ENCOUNTER_FRAME_UPDATE_PRIORITY = 2,
|
||||
ENCOUNTER_FRAME_ADD_TIMER = 3,
|
||||
ENCOUNTER_FRAME_ENABLE_OBJECTIVE = 4,
|
||||
ENCOUNTER_FRAME_UPDATE_OBJECTIVE = 5,
|
||||
ENCOUNTER_FRAME_DISABLE_OBJECTIVE = 6,
|
||||
ENCOUNTER_FRAME_UNK7 = 7, // Seems to have something to do with sorting the encounter units
|
||||
};
|
||||
|
||||
enum EncounterState
|
||||
|
||||
@@ -210,19 +210,19 @@ class boss_blood_council_controller : public CreatureScript
|
||||
|
||||
if (Creature* keleseth = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_KELESETH_GUID)))
|
||||
{
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ADD, keleseth);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, keleseth);
|
||||
DoZoneInCombat(keleseth);
|
||||
}
|
||||
|
||||
if (Creature* taldaram = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_TALDARAM_GUID)))
|
||||
{
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ADD, taldaram);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, taldaram);
|
||||
DoZoneInCombat(taldaram);
|
||||
}
|
||||
|
||||
if (Creature* valanar = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_PRINCE_VALANAR_GUID)))
|
||||
{
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ADD, valanar);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, valanar);
|
||||
DoZoneInCombat(valanar);
|
||||
}
|
||||
|
||||
@@ -412,12 +412,12 @@ class boss_prince_keleseth_icc : public CreatureScript
|
||||
summons.DespawnAll();
|
||||
|
||||
Talk(SAY_KELESETH_DEATH);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
}
|
||||
|
||||
void JustReachedHome()
|
||||
{
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
me->SetHealth(_spawnHealth);
|
||||
_isEmpowered = false;
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL)))
|
||||
@@ -636,12 +636,12 @@ class boss_prince_taldaram_icc : public CreatureScript
|
||||
summons.DespawnAll();
|
||||
|
||||
Talk(EMOTE_TALDARAM_DEATH);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
}
|
||||
|
||||
void JustReachedHome()
|
||||
{
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
me->SetHealth(_spawnHealth);
|
||||
_isEmpowered = false;
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL)))
|
||||
@@ -859,12 +859,12 @@ class boss_prince_valanar_icc : public CreatureScript
|
||||
summons.DespawnAll();
|
||||
|
||||
Talk(SAY_VALANAR_DEATH);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
}
|
||||
|
||||
void JustReachedHome()
|
||||
{
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
me->SetHealth(me->GetMaxHealth());
|
||||
_isEmpowered = false;
|
||||
if (Creature* controller = ObjectAccessor::GetCreature(*me, instance->GetData64(DATA_BLOOD_PRINCES_CONTROL)))
|
||||
|
||||
@@ -232,7 +232,7 @@ class ValithriaDespawner : public BasicEvent
|
||||
{
|
||||
case NPC_VALITHRIA_DREAMWALKER:
|
||||
if (InstanceScript* instance = creature->GetInstanceScript())
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, creature);
|
||||
instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, creature);
|
||||
break;
|
||||
case NPC_BLAZING_SKELETON:
|
||||
case NPC_SUPPRESSER:
|
||||
@@ -304,7 +304,7 @@ class boss_valithria_dreamwalker : public CreatureScript
|
||||
me->ApplySpellImmune(0, IMMUNITY_EFFECT, SPELL_EFFECT_HEAL_PCT, true);
|
||||
// Glyph of Dispel Magic - not a percent heal by effect, its cast with custom basepoints
|
||||
me->ApplySpellImmune(0, IMMUNITY_ID, 56131, true);
|
||||
_instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
|
||||
_instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
_missedPortals = 0;
|
||||
_under25PercentTalkDone = false;
|
||||
_over75PercentTalkDone = false;
|
||||
@@ -322,7 +322,7 @@ class boss_valithria_dreamwalker : public CreatureScript
|
||||
return;
|
||||
|
||||
DoCast(me, SPELL_COPY_DAMAGE);
|
||||
_instance->SendEncounterUnit(ENCOUNTER_FRAME_ADD, me);
|
||||
_instance->SendEncounterUnit(ENCOUNTER_FRAME_ENGAGE, me);
|
||||
_events.ScheduleEvent(EVENT_INTRO_TALK, 15000);
|
||||
_events.ScheduleEvent(EVENT_DREAM_PORTAL, urand(45000, 48000));
|
||||
if (IsHeroic())
|
||||
@@ -341,7 +341,7 @@ class boss_valithria_dreamwalker : public CreatureScript
|
||||
{
|
||||
_done = true;
|
||||
Talk(SAY_VALITHRIA_SUCCESS);
|
||||
_instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
|
||||
_instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
me->RemoveAurasDueToSpell(SPELL_CORRUPTION_VALITHRIA);
|
||||
DoCast(me, SPELL_ACHIEVEMENT_CHECK);
|
||||
DoCastAOE(SPELL_DREAMWALKERS_RAGE);
|
||||
@@ -376,7 +376,7 @@ class boss_valithria_dreamwalker : public CreatureScript
|
||||
{
|
||||
_justDied = true;
|
||||
Talk(SAY_VALITHRIA_DEATH);
|
||||
_instance->SendEncounterUnit(ENCOUNTER_FRAME_REMOVE, me);
|
||||
_instance->SendEncounterUnit(ENCOUNTER_FRAME_DISENGAGE, me);
|
||||
if (Creature* trigger = ObjectAccessor::GetCreature(*me, _instance->GetData64(DATA_VALITHRIA_TRIGGER)))
|
||||
trigger->AI()->DoAction(ACTION_DEATH);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user