From 958f1022d6ca90ba2cca174f08559eb8db7a51f3 Mon Sep 17 00:00:00 2001
From: Skjalf <47818697+Nyeriah@users.noreply.github.com>
Date: Sat, 7 Dec 2024 12:53:27 -0300
Subject: [PATCH] Handle SSC, Hyjal and ZA tier completion markers

---
 src/ZoneDifficulty.h                |  3 +++
 src/mod_zone_difficulty_handler.cpp | 26 +++++++++++++++++++++++++-
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/src/ZoneDifficulty.h b/src/ZoneDifficulty.h
index 09d9b067..71b65a8e 100644
--- a/src/ZoneDifficulty.h
+++ b/src/ZoneDifficulty.h
@@ -147,6 +147,9 @@ enum ZoneDifficultySettings
 enum Misc
 {
     NPC_ILLIDAN_STORMRAGE = 22917,
+    NPC_LADY_VASHJ        = 21212,
+    NPC_ARCHIMONDE        = 17968,
+    NPC_ZULJIN            = 23863,
     NPC_REWARD_CHROMIE    = 1128002,
 };
 
diff --git a/src/mod_zone_difficulty_handler.cpp b/src/mod_zone_difficulty_handler.cpp
index b18eeb40..a5668d7d 100644
--- a/src/mod_zone_difficulty_handler.cpp
+++ b/src/mod_zone_difficulty_handler.cpp
@@ -1059,7 +1059,31 @@ void ZoneDifficulty::ProcessCreatureDeath(Map* map, uint32 entry)
             map->DoForAllPlayers([&](Player* player)
             {
                 player->UpdatePlayerSetting(ModZoneDifficultyString + "ct", SETTING_BLACK_TEMPLE, 1);
-                ChatHandler(player->GetSession()).PSendSysMessage("Congratulations on completing the Black Temple!");
+                player->SendSystemMessage("Congratulations on completing the Black Temple!");
+            });
+            sZoneDifficulty->LogAndAnnounceKill(map, true);
+            break;
+        case NPC_ZULJIN:
+            map->DoForAllPlayers([&](Player* player)
+            {
+                player->UpdatePlayerSetting(ModZoneDifficultyString + "ct", SETTING_ZULAMAN, 1);
+                player->SendSystemMessage("Congratulations on completing Zul'Aman!");
+            });
+            sZoneDifficulty->LogAndAnnounceKill(map, true);
+            break;
+        case NPC_ARCHIMONDE:
+            map->DoForAllPlayers([&](Player* player)
+            {
+                player->UpdatePlayerSetting(ModZoneDifficultyString + "ct", SETTING_HYJAL, 1);
+                player->SendSystemMessage("Congratulations on completing Battle for Mount Hyjal!");
+            });
+            sZoneDifficulty->LogAndAnnounceKill(map, true);
+            break;
+        case NPC_LADY_VASHJ:
+            map->DoForAllPlayers([&](Player* player)
+            {
+                player->UpdatePlayerSetting(ModZoneDifficultyString + "ct", SETTING_SSC, 1);
+                player->SendSystemMessage("Congratulations on completing Serpentshrine Cavern!");
             });
             sZoneDifficulty->LogAndAnnounceKill(map, true);
             break;