From 3b401fd618e6203235537f0ed9a3d68cde5cefa0 Mon Sep 17 00:00:00 2001 From: Grimfeather <88028633+Grimfeather@users.noreply.github.com> Date: Sat, 10 May 2025 03:37:20 +0200 Subject: [PATCH] new IPP_PHASE areas creatures that are phased this way do not attack if the player can't see them. --- src/IndividualProgressionPlayer.cpp | 39 ++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/src/IndividualProgressionPlayer.cpp b/src/IndividualProgressionPlayer.cpp index b7ec363..77323f2 100644 --- a/src/IndividualProgressionPlayer.cpp +++ b/src/IndividualProgressionPlayer.cpp @@ -331,6 +331,41 @@ public: void OnPlayerUpdateArea(Player* player, uint32 /*oldArea*/, uint32 newArea) override { switch (newArea) { + case AREA_DARKSHORE: + if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_PRE_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_AQ))) + { + player->RemoveAura(IPP_PHASE); + player->CastSpell(player, IPP_PHASE, false); + } + break; + case AREA_SILITHUS: + if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_PRE_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_AQ))) + { + player->RemoveAura(IPP_PHASE); + player->CastSpell(player, IPP_PHASE, false); + } + break; + case AREA_HIVE_ASHI: + if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_PRE_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_AQ))) + { + player->RemoveAura(IPP_PHASE); + player->CastSpell(player, IPP_PHASE, false); + } + break; + case AREA_HIVE_ZORA: + if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_PRE_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_AQ))) + { + player->RemoveAura(IPP_PHASE); + player->CastSpell(player, IPP_PHASE, false); + } + break; + case AREA_HIVE_REGAL: + if ((sIndividualProgression->hasPassedProgression(player, PROGRESSION_PRE_AQ)) && (sIndividualProgression->isBeforeProgression(player, PROGRESSION_AQ))) + { + player->RemoveAura(IPP_PHASE); + player->CastSpell(player, IPP_PHASE, false); + } + break; case AREA_LIGHTS_HOPE: if (sIndividualProgression->hasPassedProgression(player, PROGRESSION_AQ)) { @@ -810,7 +845,9 @@ public: { damage *= 1.0f - gearAdjustment; } - }}; + } + +}; void AddSC_mod_individual_progression_player() {