aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Player/Player.cpp3
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h2
-rw-r--r--src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp6
3 files changed, 6 insertions, 5 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 5b277b524b8..2643add23db 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -23752,7 +23752,8 @@ bool Player::IsAlwaysDetectableFor(WorldObject const* seer) const
return false;
if (Player const* seerPlayer = seer->ToPlayer())
- if (IsGroupVisibleFor(seerPlayer))
+ if (IsGroupVisibleFor(seerPlayer)
+ && std::ranges::none_of(GetAuraEffectsByType(SPELL_AURA_MOD_INVISIBILITY), [](AuraEffect const* invis) { return invis->GetSpellInfo()->HasAttribute(SPELL_ATTR9_MOD_INVIS_INCLUDES_PARTY); }))
return true;
return false;
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 180d0bddc3a..1f9ab88f301 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -760,7 +760,7 @@ enum SpellAttr8 : uint32
enum SpellAttr9 : uint32
{
SPELL_ATTR9_FORCE_DEST_LOCATION = 0x00000001, // TITLE Force Dest Location DESCRIPTION Ignores collision with terrain (unsure if it also ignores terrain height and can go under map)
- SPELL_ATTR9_UNK1 = 0x00000002, // TITLE Unknown attribute 1@Attr9
+ SPELL_ATTR9_MOD_INVIS_INCLUDES_PARTY = 0x00000002, // TITLE Mod Invis Includes Party 1@Attr9 DESCRIPTION Causes invisibility auras to ignore "can always see party member invis" rule
SPELL_ATTR9_RESTRICTED_FLIGHT_AREA = 0x00000004, // TITLE Only When Illegally Mounted
SPELL_ATTR9_UNK3 = 0x00000008, // TITLE Unknown attribute 3@Attr9
SPELL_ATTR9_SPECIAL_DELAY_CALCULATION = 0x00000010, // TITLE Missile Speed is Delay (in sec)
diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
index 28315998c6a..428c0e756c3 100644
--- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
+++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
@@ -1436,7 +1436,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr9>::ToString(SpellAttr9 value)
switch (value)
{
case SPELL_ATTR9_FORCE_DEST_LOCATION: return { "SPELL_ATTR9_FORCE_DEST_LOCATION", "Force Dest Location", "Ignores collision with terrain (unsure if it also ignores terrain height and can go under map)" };
- case SPELL_ATTR9_UNK1: return { "SPELL_ATTR9_UNK1", "Unknown attribute 1@Attr9", "" };
+ case SPELL_ATTR9_MOD_INVIS_INCLUDES_PARTY: return { "SPELL_ATTR9_MOD_INVIS_INCLUDES_PARTY", "Mod Invis Includes Party 1@Attr9", "Causes invisibility auras to ignore \042can always see party member invis\042 rule" };
case SPELL_ATTR9_RESTRICTED_FLIGHT_AREA: return { "SPELL_ATTR9_RESTRICTED_FLIGHT_AREA", "Only When Illegally Mounted", "" };
case SPELL_ATTR9_UNK3: return { "SPELL_ATTR9_UNK3", "Unknown attribute 3@Attr9", "" };
case SPELL_ATTR9_SPECIAL_DELAY_CALCULATION: return { "SPELL_ATTR9_SPECIAL_DELAY_CALCULATION", "Missile Speed is Delay (in sec)", "" };
@@ -1480,7 +1480,7 @@ TC_API_EXPORT SpellAttr9 EnumUtils<SpellAttr9>::FromIndex(size_t index)
switch (index)
{
case 0: return SPELL_ATTR9_FORCE_DEST_LOCATION;
- case 1: return SPELL_ATTR9_UNK1;
+ case 1: return SPELL_ATTR9_MOD_INVIS_INCLUDES_PARTY;
case 2: return SPELL_ATTR9_RESTRICTED_FLIGHT_AREA;
case 3: return SPELL_ATTR9_UNK3;
case 4: return SPELL_ATTR9_SPECIAL_DELAY_CALCULATION;
@@ -1521,7 +1521,7 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr9>::ToIndex(SpellAttr9 value)
switch (value)
{
case SPELL_ATTR9_FORCE_DEST_LOCATION: return 0;
- case SPELL_ATTR9_UNK1: return 1;
+ case SPELL_ATTR9_MOD_INVIS_INCLUDES_PARTY: return 1;
case SPELL_ATTR9_RESTRICTED_FLIGHT_AREA: return 2;
case SPELL_ATTR9_UNK3: return 3;
case SPELL_ATTR9_SPECIAL_DELAY_CALCULATION: return 4;