aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h2
-rw-r--r--src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp6
-rw-r--r--src/server/game/Spells/SpellInfo.cpp4
3 files changed, 8 insertions, 4 deletions
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index f7be479749f..9d6f4c902e8 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -792,7 +792,7 @@ enum SpellAttr9 : uint32
SPELL_ATTR9_FORCE_CORPSE_TARGET = 0x08000000, // TITLE Force Corpse Target DESCRIPTION Causes the spell to continue executing effects on the target even if one of them kills it
SPELL_ATTR9_CANNOT_KILL_TARGET = 0x10000000, // TITLE Cannot Kill Target
SPELL_ATTR9_LOG_PASSIVE = 0x20000000, // TITLE Log Passive (client only) DESCRIPTION Allows passive auras to trigger aura applied/refreshed/removed combat log events
- SPELL_ATTR9_UNK30 = 0x40000000, // TITLE Unknown attribute 30@Attr9
+ SPELL_ATTR9_NO_MOVEMENT_RADIUS_BONUS = 0x40000000, // TITLE No Movement Radius Bonus
SPELL_ATTR9_UNK31 = 0x80000000 // TITLE Unknown attribute 31@Attr9
};
diff --git a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
index ef65ce2143d..1b5df70f0c1 100644
--- a/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
+++ b/src/server/game/Miscellaneous/enuminfo_SharedDefines.cpp
@@ -1468,7 +1468,7 @@ TC_API_EXPORT EnumText EnumUtils<SpellAttr9>::ToString(SpellAttr9 value)
case SPELL_ATTR9_FORCE_CORPSE_TARGET: return { "SPELL_ATTR9_FORCE_CORPSE_TARGET", "Force Corpse Target", "Causes the spell to continue executing effects on the target even if one of them kills it" };
case SPELL_ATTR9_CANNOT_KILL_TARGET: return { "SPELL_ATTR9_CANNOT_KILL_TARGET", "Cannot Kill Target", "" };
case SPELL_ATTR9_LOG_PASSIVE: return { "SPELL_ATTR9_LOG_PASSIVE", "Log Passive (client only)", "Allows passive auras to trigger aura applied/refreshed/removed combat log events" };
- case SPELL_ATTR9_UNK30: return { "SPELL_ATTR9_UNK30", "Unknown attribute 30@Attr9", "" };
+ case SPELL_ATTR9_NO_MOVEMENT_RADIUS_BONUS: return { "SPELL_ATTR9_NO_MOVEMENT_RADIUS_BONUS", "No Movement Radius Bonus", "" };
case SPELL_ATTR9_UNK31: return { "SPELL_ATTR9_UNK31", "Unknown attribute 31@Attr9", "" };
default: throw std::out_of_range("value");
}
@@ -1512,7 +1512,7 @@ TC_API_EXPORT SpellAttr9 EnumUtils<SpellAttr9>::FromIndex(size_t index)
case 27: return SPELL_ATTR9_FORCE_CORPSE_TARGET;
case 28: return SPELL_ATTR9_CANNOT_KILL_TARGET;
case 29: return SPELL_ATTR9_LOG_PASSIVE;
- case 30: return SPELL_ATTR9_UNK30;
+ case 30: return SPELL_ATTR9_NO_MOVEMENT_RADIUS_BONUS;
case 31: return SPELL_ATTR9_UNK31;
default: throw std::out_of_range("index");
}
@@ -1553,7 +1553,7 @@ TC_API_EXPORT size_t EnumUtils<SpellAttr9>::ToIndex(SpellAttr9 value)
case SPELL_ATTR9_FORCE_CORPSE_TARGET: return 27;
case SPELL_ATTR9_CANNOT_KILL_TARGET: return 28;
case SPELL_ATTR9_LOG_PASSIVE: return 29;
- case SPELL_ATTR9_UNK30: return 30;
+ case SPELL_ATTR9_NO_MOVEMENT_RADIUS_BONUS: return 30;
case SPELL_ATTR9_UNK31: return 31;
default: throw std::out_of_range("value");
}
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index 7a547468bfe..2a89469fd4d 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -670,6 +670,10 @@ float SpellEffectInfo::CalcRadius(WorldObject* caster /*= nullptr*/, SpellTarget
if (Player* modOwner = caster->GetSpellModOwner())
modOwner->ApplySpellMod(_spellInfo, SpellModOp::Radius, radius, spell);
+
+ if (!_spellInfo->HasAttribute(SPELL_ATTR9_NO_MOVEMENT_RADIUS_BONUS))
+ if (Unit* casterUnit = caster->ToUnit(); casterUnit && casterUnit->isMoving() && !casterUnit->IsWalking())
+ radius += 2.0f;
}
return radius;