aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Instances/InstanceScript.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Instances/InstanceScript.cpp')
-rw-r--r--src/server/game/Instances/InstanceScript.cpp41
1 files changed, 38 insertions, 3 deletions
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp
index b4e43429384..40c08e742f7 100644
--- a/src/server/game/Instances/InstanceScript.cpp
+++ b/src/server/game/Instances/InstanceScript.cpp
@@ -800,7 +800,7 @@ void InstanceScript::SetEntranceLocation(uint32 worldSafeLocationId)
_temporaryEntranceId = 0;
}
-void InstanceScript::SendEncounterUnit(uint32 type, Unit* unit /*= nullptr*/, uint8 priority)
+void InstanceScript::SendEncounterUnit(EncounterFrameType type, Unit const* unit, Optional<int32> param1 /*= {}*/, Optional<int32> param2 /*= {}*/)
{
switch (type)
{
@@ -811,7 +811,7 @@ void InstanceScript::SendEncounterUnit(uint32 type, Unit* unit /*= nullptr*/, ui
WorldPackets::Instance::InstanceEncounterEngageUnit encounterEngageMessage;
encounterEngageMessage.Unit = unit->GetGUID();
- encounterEngageMessage.TargetFramePriority = priority;
+ encounterEngageMessage.TargetFramePriority = param1.value_or(0);
instance->SendToPlayers(encounterEngageMessage.Write());
break;
}
@@ -832,10 +832,45 @@ void InstanceScript::SendEncounterUnit(uint32 type, Unit* unit /*= nullptr*/, ui
WorldPackets::Instance::InstanceEncounterChangePriority encounterChangePriorityMessage;
encounterChangePriorityMessage.Unit = unit->GetGUID();
- encounterChangePriorityMessage.TargetFramePriority = priority;
+ encounterChangePriorityMessage.TargetFramePriority = param1.value_or(0);
instance->SendToPlayers(encounterChangePriorityMessage.Write());
break;
}
+ case ENCOUNTER_FRAME_ADD_TIMER:
+ {
+ WorldPackets::Instance::InstanceEncounterTimerStart instanceEncounterTimerStart;
+ instanceEncounterTimerStart.TimeRemaining = param1.value_or(0);
+ instance->SendToPlayers(instanceEncounterTimerStart.Write());
+ break;
+ }
+ case ENCOUNTER_FRAME_ENABLE_OBJECTIVE:
+ {
+ WorldPackets::Instance::InstanceEncounterObjectiveStart instanceEncounterObjectiveStart;
+ instanceEncounterObjectiveStart.ObjectiveID = param1.value_or(0);
+ instance->SendToPlayers(instanceEncounterObjectiveStart.Write());
+ break;
+ }
+ case ENCOUNTER_FRAME_UPDATE_OBJECTIVE:
+ {
+ WorldPackets::Instance::InstanceEncounterObjectiveUpdate instanceEncounterObjectiveUpdate;
+ instanceEncounterObjectiveUpdate.ObjectiveID = param1.value_or(0);
+ instanceEncounterObjectiveUpdate.ProgressAmount = param2.value_or(0);
+ instance->SendToPlayers(instanceEncounterObjectiveUpdate.Write());
+ break;
+ }
+ case ENCOUNTER_FRAME_DISABLE_OBJECTIVE:
+ {
+ WorldPackets::Instance::InstanceEncounterObjectiveComplete instanceEncounterObjectiveComplete;
+ instanceEncounterObjectiveComplete.ObjectiveID = param1.value_or(0);
+ instance->SendToPlayers(instanceEncounterObjectiveComplete.Write());
+ break;
+ }
+ case ENCOUNTER_FRAME_PHASE_SHIFT_CHANGED:
+ {
+ WorldPackets::Instance::InstanceEncounterPhaseShiftChanged instanceEncounterPhaseShiftChanged;
+ instance->SendToPlayers(instanceEncounterPhaseShiftChanged.Write());
+ break;
+ }
default:
break;
}