Core/Spells: ported radius entry indexing from master branch and dropped several now deprecated spell 'fixes' from spellMgr
This commit is contained in:
1 parent
569d66d352
commit
2bcc645cd3
13 files changed
+97
-523
No files matched your search
@@ -0,0 +1 @@
|
|||||||
|
DELETE FROM `spell_script_names` WHERE `ScriptName´= 'spell_anraphet_omega_stance_spider_effect';
|
||||||
@@ -31,6 +31,12 @@ enum SpellEffIndex : uint8
|
|||||||
EFFECT_2 = 2
|
EFFECT_2 = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class SpellTargetIndex : uint8
|
||||||
|
{
|
||||||
|
TargetA = 0,
|
||||||
|
TargetB = 1
|
||||||
|
};
|
||||||
|
|
||||||
// used in script definitions
|
// used in script definitions
|
||||||
#define EFFECT_FIRST_FOUND 254
|
#define EFFECT_FIRST_FOUND 254
|
||||||
#define EFFECT_ALL 255
|
#define EFFECT_ALL 255
|
||||||
|
|||||||
@@ -825,8 +825,8 @@ void Spell::SelectSpellTargets()
|
|||||||
if (implicitTargetMask & (TARGET_FLAG_GAMEOBJECT | TARGET_FLAG_GAMEOBJECT_ITEM))
|
if (implicitTargetMask & (TARGET_FLAG_GAMEOBJECT | TARGET_FLAG_GAMEOBJECT_ITEM))
|
||||||
m_targets.SetTargetFlag(TARGET_FLAG_GAMEOBJECT);
|
m_targets.SetTargetFlag(TARGET_FLAG_GAMEOBJECT);
|
||||||
|
|
||||||
SelectEffectImplicitTargets(SpellEffIndex(i), m_spellInfo->Effects[i].TargetA, processedAreaEffectsMask);
|
SelectEffectImplicitTargets(SpellEffIndex(i), m_spellInfo->Effects[i].TargetA, SpellTargetIndex::TargetA, processedAreaEffectsMask);
|
||||||
SelectEffectImplicitTargets(SpellEffIndex(i), m_spellInfo->Effects[i].TargetB, processedAreaEffectsMask);
|
SelectEffectImplicitTargets(SpellEffIndex(i), m_spellInfo->Effects[i].TargetB, SpellTargetIndex::TargetB, processedAreaEffectsMask);
|
||||||
|
|
||||||
// Select targets of effect based on effect type
|
// Select targets of effect based on effect type
|
||||||
// those are used when no valid target could be added for spell effect based on spell target type
|
// those are used when no valid target could be added for spell effect based on spell target type
|
||||||
@@ -950,7 +950,7 @@ void Spell::RecalculateDelayMomentForDst()
|
|||||||
m_caster->m_Events.ModifyEventTime(_spellEvent, GetDelayStart() + m_delayMoment);
|
m_caster->m_Events.ModifyEventTime(_spellEvent, GetDelayStart() + m_delayMoment);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Spell::SelectEffectImplicitTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, uint32& processedEffectMask)
|
void Spell::SelectEffectImplicitTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex, uint32& processedEffectMask)
|
||||||
{
|
{
|
||||||
if (!targetType.GetTarget())
|
if (!targetType.GetTarget())
|
||||||
return;
|
return;
|
||||||
@@ -974,7 +974,8 @@ void Spell::SelectEffectImplicitTargets(SpellEffIndex effIndex, SpellImplicitTar
|
|||||||
effects[effIndex].TargetA.GetTarget() == effects[j].TargetA.GetTarget() &&
|
effects[effIndex].TargetA.GetTarget() == effects[j].TargetA.GetTarget() &&
|
||||||
effects[effIndex].TargetB.GetTarget() == effects[j].TargetB.GetTarget() &&
|
effects[effIndex].TargetB.GetTarget() == effects[j].TargetB.GetTarget() &&
|
||||||
effects[effIndex].ImplicitTargetConditions == effects[j].ImplicitTargetConditions &&
|
effects[effIndex].ImplicitTargetConditions == effects[j].ImplicitTargetConditions &&
|
||||||
effects[effIndex].CalcRadius(m_caster) == effects[j].CalcRadius(m_caster) &&
|
effects[effIndex].CalcRadius(m_caster, SpellTargetIndex::TargetA) == effects[j].CalcRadius(m_caster, SpellTargetIndex::TargetA) &&
|
||||||
|
effects[effIndex].CalcRadius(m_caster, SpellTargetIndex::TargetB) == effects[j].CalcRadius(m_caster, SpellTargetIndex::TargetB) &&
|
||||||
CheckScriptEffectImplicitTargets(effIndex, j))
|
CheckScriptEffectImplicitTargets(effIndex, j))
|
||||||
{
|
{
|
||||||
effectMask |= 1 << j;
|
effectMask |= 1 << j;
|
||||||
@@ -992,13 +993,13 @@ void Spell::SelectEffectImplicitTargets(SpellEffIndex effIndex, SpellImplicitTar
|
|||||||
SelectImplicitChannelTargets(effIndex, targetType);
|
SelectImplicitChannelTargets(effIndex, targetType);
|
||||||
break;
|
break;
|
||||||
case TARGET_SELECT_CATEGORY_NEARBY:
|
case TARGET_SELECT_CATEGORY_NEARBY:
|
||||||
SelectImplicitNearbyTargets(effIndex, targetType, effectMask);
|
SelectImplicitNearbyTargets(effIndex, targetType, targetIndex, effectMask);
|
||||||
break;
|
break;
|
||||||
case TARGET_SELECT_CATEGORY_CONE:
|
case TARGET_SELECT_CATEGORY_CONE:
|
||||||
SelectImplicitConeTargets(effIndex, targetType, effectMask);
|
SelectImplicitConeTargets(effIndex, targetType, targetIndex, effectMask);
|
||||||
break;
|
break;
|
||||||
case TARGET_SELECT_CATEGORY_AREA:
|
case TARGET_SELECT_CATEGORY_AREA:
|
||||||
SelectImplicitAreaTargets(effIndex, targetType, effectMask);
|
SelectImplicitAreaTargets(effIndex, targetType, targetIndex,effectMask);
|
||||||
break;
|
break;
|
||||||
case TARGET_SELECT_CATEGORY_TRAJ:
|
case TARGET_SELECT_CATEGORY_TRAJ:
|
||||||
// just in case there is no dest, explanation in SelectImplicitDestDestTargets
|
// just in case there is no dest, explanation in SelectImplicitDestDestTargets
|
||||||
@@ -1024,13 +1025,13 @@ void Spell::SelectEffectImplicitTargets(SpellEffIndex effIndex, SpellImplicitTar
|
|||||||
switch (targetType.GetReferenceType())
|
switch (targetType.GetReferenceType())
|
||||||
{
|
{
|
||||||
case TARGET_REFERENCE_TYPE_CASTER:
|
case TARGET_REFERENCE_TYPE_CASTER:
|
||||||
SelectImplicitCasterDestTargets(effIndex, targetType);
|
SelectImplicitCasterDestTargets(effIndex, targetType, targetIndex);
|
||||||
break;
|
break;
|
||||||
case TARGET_REFERENCE_TYPE_TARGET:
|
case TARGET_REFERENCE_TYPE_TARGET:
|
||||||
SelectImplicitTargetDestTargets(effIndex, targetType);
|
SelectImplicitTargetDestTargets(effIndex, targetType, targetIndex);
|
||||||
break;
|
break;
|
||||||
case TARGET_REFERENCE_TYPE_DEST:
|
case TARGET_REFERENCE_TYPE_DEST:
|
||||||
SelectImplicitDestDestTargets(effIndex, targetType);
|
SelectImplicitDestDestTargets(effIndex, targetType, targetIndex);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
ASSERT(false && "Spell::SelectEffectImplicitTargets: received not implemented select target reference type for TARGET_TYPE_OBJECT_DEST");
|
ASSERT(false && "Spell::SelectEffectImplicitTargets: received not implemented select target reference type for TARGET_TYPE_OBJECT_DEST");
|
||||||
@@ -1118,7 +1119,7 @@ void Spell::SelectImplicitChannelTargets(SpellEffIndex effIndex, SpellImplicitTa
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Spell::SelectImplicitNearbyTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, uint32 effMask)
|
void Spell::SelectImplicitNearbyTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, [[maybe_unused]] SpellTargetIndex targetIndex, uint32 effMask)
|
||||||
{
|
{
|
||||||
if (targetType.GetReferenceType() != TARGET_REFERENCE_TYPE_CASTER)
|
if (targetType.GetReferenceType() != TARGET_REFERENCE_TYPE_CASTER)
|
||||||
{
|
{
|
||||||
@@ -1258,7 +1259,7 @@ void Spell::SelectImplicitNearbyTargets(SpellEffIndex effIndex, SpellImplicitTar
|
|||||||
SelectImplicitChainTargets(effIndex, targetType, target, effMask);
|
SelectImplicitChainTargets(effIndex, targetType, target, effMask);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Spell::SelectImplicitConeTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, uint32 effMask)
|
void Spell::SelectImplicitConeTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex, uint32 effMask)
|
||||||
{
|
{
|
||||||
Position coneSrc(*m_caster);
|
Position coneSrc(*m_caster);
|
||||||
float coneAngle = m_spellInfo->ConeAngle;
|
float coneAngle = m_spellInfo->ConeAngle;
|
||||||
@@ -1289,7 +1290,7 @@ void Spell::SelectImplicitConeTargets(SpellEffIndex effIndex, SpellImplicitTarge
|
|||||||
SpellTargetCheckTypes selectionType = targetType.GetCheckType();
|
SpellTargetCheckTypes selectionType = targetType.GetCheckType();
|
||||||
ConditionContainer* condList = m_spellInfo->Effects[effIndex].ImplicitTargetConditions;
|
ConditionContainer* condList = m_spellInfo->Effects[effIndex].ImplicitTargetConditions;
|
||||||
|
|
||||||
float radius = m_spellInfo->Effects[effIndex].CalcRadius(m_caster);
|
float radius = m_spellInfo->Effects[effIndex].CalcRadius(m_caster, targetIndex);
|
||||||
// Workaround for some spells that don't have RadiusEntry set in dbc (but SpellRange instead)
|
// Workaround for some spells that don't have RadiusEntry set in dbc (but SpellRange instead)
|
||||||
if (G3D::fuzzyEq(radius, 0.f))
|
if (G3D::fuzzyEq(radius, 0.f))
|
||||||
radius = m_spellInfo->GetMaxRange(m_spellInfo->IsPositiveEffect(effIndex), m_caster, this);
|
radius = m_spellInfo->GetMaxRange(m_spellInfo->IsPositiveEffect(effIndex), m_caster, this);
|
||||||
@@ -1323,7 +1324,7 @@ void Spell::SelectImplicitConeTargets(SpellEffIndex effIndex, SpellImplicitTarge
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Spell::SelectImplicitAreaTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, uint32 effMask)
|
void Spell::SelectImplicitAreaTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex, uint32 effMask)
|
||||||
{
|
{
|
||||||
WorldObject* referer = nullptr;
|
WorldObject* referer = nullptr;
|
||||||
switch (targetType.GetReferenceType())
|
switch (targetType.GetReferenceType())
|
||||||
@@ -1376,7 +1377,7 @@ void Spell::SelectImplicitAreaTargets(SpellEffIndex effIndex, SpellImplicitTarge
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
float radius = m_spellInfo->Effects[effIndex].CalcRadius(m_caster);
|
float radius = m_spellInfo->Effects[effIndex].CalcRadius(m_caster, targetIndex);
|
||||||
|
|
||||||
// Workaround for some spells that don't have RadiusEntry set in dbc (but SpellRange instead)
|
// Workaround for some spells that don't have RadiusEntry set in dbc (but SpellRange instead)
|
||||||
if (G3D::fuzzyEq(radius, 0.f))
|
if (G3D::fuzzyEq(radius, 0.f))
|
||||||
@@ -1433,7 +1434,7 @@ void Spell::SelectImplicitAreaTargets(SpellEffIndex effIndex, SpellImplicitTarge
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType)
|
void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex)
|
||||||
{
|
{
|
||||||
SpellDestination dest(*m_caster);
|
SpellDestination dest(*m_caster);
|
||||||
|
|
||||||
@@ -1501,7 +1502,7 @@ void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplici
|
|||||||
if (!unitCaster)
|
if (!unitCaster)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
float dist = m_spellInfo->Effects[effIndex].CalcRadius(unitCaster);
|
float dist = m_spellInfo->Effects[effIndex].CalcRadius(unitCaster, targetIndex);
|
||||||
float angle = targetType.CalcDirectionAngle(m_spellInfo->Effects[effIndex]);
|
float angle = targetType.CalcDirectionAngle(m_spellInfo->Effects[effIndex]);
|
||||||
|
|
||||||
Position pos = dest._position;
|
Position pos = dest._position;
|
||||||
@@ -1519,8 +1520,8 @@ void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplici
|
|||||||
float dist = [&]()
|
float dist = [&]()
|
||||||
{
|
{
|
||||||
// Effect specific radius may override default behavior
|
// Effect specific radius may override default behavior
|
||||||
if (m_spellInfo->Effects[effIndex].HasRadius())
|
if (m_spellInfo->Effects[effIndex].HasRadius(targetIndex))
|
||||||
return m_spellInfo->Effects[effIndex].CalcRadius(m_caster);
|
return m_spellInfo->Effects[effIndex].CalcRadius(m_caster, targetIndex);
|
||||||
|
|
||||||
// Gameobject summons use range entries
|
// Gameobject summons use range entries
|
||||||
if (m_spellInfo->Effects[effIndex].Effect == SPELL_EFFECT_TRANS_DOOR)
|
if (m_spellInfo->Effects[effIndex].Effect == SPELL_EFFECT_TRANS_DOOR)
|
||||||
@@ -1547,7 +1548,7 @@ void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplici
|
|||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
float dist = m_spellInfo->Effects[effIndex].CalcRadius(m_caster);
|
float dist = m_spellInfo->Effects[effIndex].CalcRadius(m_caster, targetIndex);
|
||||||
float angle = targetType.CalcDirectionAngle(m_spellInfo->Effects[effIndex]);
|
float angle = targetType.CalcDirectionAngle(m_spellInfo->Effects[effIndex]);
|
||||||
float objSize = m_caster->GetCombatReach();
|
float objSize = m_caster->GetCombatReach();
|
||||||
|
|
||||||
@@ -1563,7 +1564,7 @@ void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplici
|
|||||||
case TARGET_DEST_CASTER_BACK_RIGHT:
|
case TARGET_DEST_CASTER_BACK_RIGHT:
|
||||||
{
|
{
|
||||||
static float const DefaultTotemDistance = 3.0f;
|
static float const DefaultTotemDistance = 3.0f;
|
||||||
if (!m_spellInfo->Effects[effIndex].HasRadius())
|
if (!m_spellInfo->Effects[effIndex].HasRadius(targetIndex))
|
||||||
dist = DefaultTotemDistance;
|
dist = DefaultTotemDistance;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -1586,7 +1587,7 @@ void Spell::SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplici
|
|||||||
m_targets.SetDst(dest);
|
m_targets.SetDst(dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Spell::SelectImplicitTargetDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType)
|
void Spell::SelectImplicitTargetDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex)
|
||||||
{
|
{
|
||||||
ASSERT(m_targets.GetObjectTarget() && "Spell::SelectImplicitTargetDestTargets - no explicit object target available!");
|
ASSERT(m_targets.GetObjectTarget() && "Spell::SelectImplicitTargetDestTargets - no explicit object target available!");
|
||||||
WorldObject* target = m_targets.GetObjectTarget();
|
WorldObject* target = m_targets.GetObjectTarget();
|
||||||
@@ -1601,7 +1602,7 @@ void Spell::SelectImplicitTargetDestTargets(SpellEffIndex effIndex, SpellImplici
|
|||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
float angle = targetType.CalcDirectionAngle(m_spellInfo->Effects[effIndex]);
|
float angle = targetType.CalcDirectionAngle(m_spellInfo->Effects[effIndex]);
|
||||||
float dist = m_spellInfo->Effects[effIndex].CalcRadius(nullptr);
|
float dist = m_spellInfo->Effects[effIndex].CalcRadius(nullptr, targetIndex);
|
||||||
if (targetType.GetTarget() == TARGET_DEST_TARGET_RANDOM)
|
if (targetType.GetTarget() == TARGET_DEST_TARGET_RANDOM)
|
||||||
dist *= float(rand_norm());
|
dist *= float(rand_norm());
|
||||||
|
|
||||||
@@ -1617,7 +1618,7 @@ void Spell::SelectImplicitTargetDestTargets(SpellEffIndex effIndex, SpellImplici
|
|||||||
m_targets.SetDst(dest);
|
m_targets.SetDst(dest);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Spell::SelectImplicitDestDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType)
|
void Spell::SelectImplicitDestDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex)
|
||||||
{
|
{
|
||||||
// set destination to caster if no dest provided
|
// set destination to caster if no dest provided
|
||||||
// can only happen if previous destination target could not be set for some reason
|
// can only happen if previous destination target could not be set for some reason
|
||||||
@@ -1637,7 +1638,7 @@ void Spell::SelectImplicitDestDestTargets(SpellEffIndex effIndex, SpellImplicitT
|
|||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
float angle = targetType.CalcDirectionAngle(m_spellInfo->Effects[effIndex]);
|
float angle = targetType.CalcDirectionAngle(m_spellInfo->Effects[effIndex]);
|
||||||
float dist = m_spellInfo->Effects[effIndex].CalcRadius(m_caster);
|
float dist = m_spellInfo->Effects[effIndex].CalcRadius(m_caster, targetIndex);
|
||||||
if (targetType.GetTarget() == TARGET_DEST_DEST_RANDOM)
|
if (targetType.GetTarget() == TARGET_DEST_DEST_RANDOM)
|
||||||
dist *= float(rand_norm());
|
dist *= float(rand_norm());
|
||||||
|
|
||||||
|
|||||||
@@ -419,14 +419,14 @@ class TC_GAME_API Spell
|
|||||||
void SelectExplicitTargets();
|
void SelectExplicitTargets();
|
||||||
|
|
||||||
void SelectSpellTargets();
|
void SelectSpellTargets();
|
||||||
void SelectEffectImplicitTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, uint32& processedEffectMask);
|
void SelectEffectImplicitTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex, uint32& processedEffectMask);
|
||||||
void SelectImplicitChannelTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType);
|
void SelectImplicitChannelTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType);
|
||||||
void SelectImplicitNearbyTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, uint32 effMask);
|
void SelectImplicitNearbyTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex, uint32 effMask);
|
||||||
void SelectImplicitConeTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, uint32 effMask);
|
void SelectImplicitConeTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex, uint32 effMask);
|
||||||
void SelectImplicitAreaTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, uint32 effMask);
|
void SelectImplicitAreaTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex, uint32 effMask);
|
||||||
void SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType);
|
void SelectImplicitCasterDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex);
|
||||||
void SelectImplicitTargetDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType);
|
void SelectImplicitTargetDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex);
|
||||||
void SelectImplicitDestDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType);
|
void SelectImplicitDestDestTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, SpellTargetIndex targetIndex);
|
||||||
void SelectImplicitCasterObjectTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType);
|
void SelectImplicitCasterObjectTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType);
|
||||||
void SelectImplicitTargetObjectTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType);
|
void SelectImplicitTargetObjectTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType);
|
||||||
void SelectImplicitChainTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, WorldObject* target, uint32 effMask);
|
void SelectImplicitChainTargets(SpellEffIndex effIndex, SpellImplicitTargetInfo const& targetType, WorldObject* target, uint32 effMask);
|
||||||
|
|||||||
@@ -3268,7 +3268,7 @@ void Spell::EffectScriptEffect(SpellEffIndex effIndex)
|
|||||||
case 45151:
|
case 45151:
|
||||||
{
|
{
|
||||||
//Workaround for Range ... should be global for every ScriptEffect
|
//Workaround for Range ... should be global for every ScriptEffect
|
||||||
float radius = m_spellInfo->Effects[effIndex].CalcRadius();
|
float radius = m_spellInfo->Effects[effIndex].CalcRadius(nullptr, SpellTargetIndex::TargetB);
|
||||||
if (unitTarget && unitTarget->GetTypeId() == TYPEID_PLAYER && unitTarget->GetDistance(m_caster) >= radius && !unitTarget->HasAura(46394) && unitTarget != m_caster)
|
if (unitTarget && unitTarget->GetTypeId() == TYPEID_PLAYER && unitTarget->GetDistance(m_caster) >= radius && !unitTarget->HasAura(46394) && unitTarget != m_caster)
|
||||||
unitTarget->CastSpell(unitTarget, 46394, true);
|
unitTarget->CastSpell(unitTarget, 46394, true);
|
||||||
|
|
||||||
@@ -4903,7 +4903,7 @@ void Spell::EffectTransmitted(SpellEffIndex effIndex)
|
|||||||
if (m_targets.HasDst())
|
if (m_targets.HasDst())
|
||||||
destTarget->GetPosition(fx, fy, fz, fo);
|
destTarget->GetPosition(fx, fy, fz, fo);
|
||||||
//FIXME: this can be better check for most objects but still hack
|
//FIXME: this can be better check for most objects but still hack
|
||||||
else if (m_spellInfo->Effects[effIndex].HasRadius() && m_spellInfo->Speed == 0)
|
else if (m_spellInfo->Effects[effIndex].HasRadius(SpellTargetIndex::TargetA) && m_spellInfo->Speed == 0)
|
||||||
{
|
{
|
||||||
float dis = m_spellInfo->Effects[effIndex].CalcRadius(unitCaster);
|
float dis = m_spellInfo->Effects[effIndex].CalcRadius(unitCaster);
|
||||||
unitCaster->GetClosePoint(fx, fy, fz, DEFAULT_PLAYER_BOUNDING_RADIUS, dis);
|
unitCaster->GetClosePoint(fx, fy, fz, DEFAULT_PLAYER_BOUNDING_RADIUS, dis);
|
||||||
|
|||||||
@@ -380,8 +380,8 @@ SpellEffectInfo::SpellEffectInfo(SpellEntry const* /*spellEntry*/, SpellInfo con
|
|||||||
Mechanic = Mechanics(_effect ? _effect->EffectMechanic : 0);
|
Mechanic = Mechanics(_effect ? _effect->EffectMechanic : 0);
|
||||||
TargetA = SpellImplicitTargetInfo(_effect ? _effect->EffectImplicitTargetA : 0);
|
TargetA = SpellImplicitTargetInfo(_effect ? _effect->EffectImplicitTargetA : 0);
|
||||||
TargetB = SpellImplicitTargetInfo(_effect ? _effect->EffectImplicitTargetB : 0);
|
TargetB = SpellImplicitTargetInfo(_effect ? _effect->EffectImplicitTargetB : 0);
|
||||||
RadiusEntry = _effect && _effect->EffectRadiusIndex ? sSpellRadiusStore.LookupEntry(_effect->EffectRadiusIndex) : nullptr;
|
TargetARadiusEntry = _effect && _effect->EffectRadiusIndex ? sSpellRadiusStore.LookupEntry(_effect->EffectRadiusIndex) : nullptr;
|
||||||
MaxRadiusEntry = _effect && _effect->EffectRadiusMaxIndex ? sSpellRadiusStore.LookupEntry(_effect->EffectRadiusMaxIndex) : nullptr;
|
TargetBRadiusEntry = _effect && _effect->EffectRadiusMaxIndex ? sSpellRadiusStore.LookupEntry(_effect->EffectRadiusMaxIndex) : nullptr;
|
||||||
ChainTarget = _effect ? _effect->EffectChainTargets : 0;
|
ChainTarget = _effect ? _effect->EffectChainTargets : 0;
|
||||||
ItemType = _effect ? _effect->EffectItemType : 0;
|
ItemType = _effect ? _effect->EffectItemType : 0;
|
||||||
TriggerSpell = _effect ? _effect->EffectTriggerSpell : 0;
|
TriggerSpell = _effect ? _effect->EffectTriggerSpell : 0;
|
||||||
@@ -616,21 +616,27 @@ float SpellEffectInfo::CalcDamageMultiplier(WorldObject* caster, Spell* spell) c
|
|||||||
return multiplierPercent / 100.0f;
|
return multiplierPercent / 100.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SpellEffectInfo::HasRadius() const
|
bool SpellEffectInfo::HasRadius(SpellTargetIndex targetIndex) const
|
||||||
{
|
{
|
||||||
return RadiusEntry != nullptr;
|
switch (targetIndex)
|
||||||
|
{
|
||||||
|
case SpellTargetIndex::TargetA:
|
||||||
|
return TargetARadiusEntry != nullptr;
|
||||||
|
case SpellTargetIndex::TargetB:
|
||||||
|
return TargetBRadiusEntry != nullptr;
|
||||||
|
default:
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool SpellEffectInfo::HasMaxRadius() const
|
float SpellEffectInfo::CalcRadius(WorldObject* caster /*= nullptr*/, SpellTargetIndex targetIndex /*=SpellTargetIndex::TargetA*/, Spell* spell /*= nullptr*/) const
|
||||||
{
|
{
|
||||||
return MaxRadiusEntry != nullptr;
|
// TargetA -> TargetARadiusEntry
|
||||||
}
|
// TargetB -> TargetBRadiusEntry
|
||||||
|
// Aura effects have TargetARadiusEntry == TargetBRadiusEntry (mostly)
|
||||||
float SpellEffectInfo::CalcRadius(WorldObject* caster, Spell* spell) const
|
SpellRadiusEntry const* entry = TargetARadiusEntry;
|
||||||
{
|
if (targetIndex == SpellTargetIndex::TargetB && HasRadius(targetIndex))
|
||||||
const SpellRadiusEntry* entry = RadiusEntry;
|
entry = TargetBRadiusEntry;
|
||||||
if (!HasRadius() && HasMaxRadius())
|
|
||||||
entry = MaxRadiusEntry;
|
|
||||||
|
|
||||||
if (!entry)
|
if (!entry)
|
||||||
return 0.0f;
|
return 0.0f;
|
||||||
|
|||||||
@@ -261,8 +261,8 @@ public:
|
|||||||
Mechanics Mechanic;
|
Mechanics Mechanic;
|
||||||
SpellImplicitTargetInfo TargetA;
|
SpellImplicitTargetInfo TargetA;
|
||||||
SpellImplicitTargetInfo TargetB;
|
SpellImplicitTargetInfo TargetB;
|
||||||
SpellRadiusEntry const* RadiusEntry;
|
SpellRadiusEntry const* TargetARadiusEntry;
|
||||||
SpellRadiusEntry const* MaxRadiusEntry;
|
SpellRadiusEntry const* TargetBRadiusEntry;
|
||||||
uint32 ChainTarget;
|
uint32 ChainTarget;
|
||||||
uint32 ItemType;
|
uint32 ItemType;
|
||||||
uint32 TriggerSpell;
|
uint32 TriggerSpell;
|
||||||
@@ -278,7 +278,7 @@ public:
|
|||||||
|
|
||||||
SpellEffectInfo() : _spellInfo(nullptr), _effIndex(0), Effect(0), ApplyAuraName(0), AuraPeriod(0), DieSides(0),
|
SpellEffectInfo() : _spellInfo(nullptr), _effIndex(0), Effect(0), ApplyAuraName(0), AuraPeriod(0), DieSides(0),
|
||||||
RealPointsPerLevel(0.f), BasePoints(0), PointsPerComboPoint(0), Amplitude(0.f), DamageMultiplier(0.f),
|
RealPointsPerLevel(0.f), BasePoints(0), PointsPerComboPoint(0), Amplitude(0.f), DamageMultiplier(0.f),
|
||||||
BonusMultiplier(0.f), MiscValue(0), MiscValueB(0), Mechanic(MECHANIC_NONE), RadiusEntry(nullptr), MaxRadiusEntry(nullptr),
|
BonusMultiplier(0.f), MiscValue(0), MiscValueB(0), Mechanic(MECHANIC_NONE), TargetARadiusEntry(nullptr), TargetBRadiusEntry(nullptr),
|
||||||
ChainTarget(0), ItemType(0), TriggerSpell(0), ImplicitTargetConditions(nullptr) { }
|
ChainTarget(0), ItemType(0), TriggerSpell(0), ImplicitTargetConditions(nullptr) { }
|
||||||
|
|
||||||
SpellEffectInfo(SpellEntry const* spellEntry, SpellInfo const* spellInfo, uint8 effIndex, SpellEffectEntry const* effect);
|
SpellEffectInfo(SpellEntry const* spellEntry, SpellInfo const* spellInfo, uint8 effIndex, SpellEffectEntry const* effect);
|
||||||
@@ -296,9 +296,8 @@ public:
|
|||||||
float CalcValueMultiplier(WorldObject* caster, Spell* spell = nullptr) const;
|
float CalcValueMultiplier(WorldObject* caster, Spell* spell = nullptr) const;
|
||||||
float CalcDamageMultiplier(WorldObject* caster, Spell* spell = nullptr) const;
|
float CalcDamageMultiplier(WorldObject* caster, Spell* spell = nullptr) const;
|
||||||
|
|
||||||
bool HasRadius() const;
|
bool HasRadius(SpellTargetIndex targetIndex) const;
|
||||||
bool HasMaxRadius() const;
|
float CalcRadius(WorldObject* caster = nullptr, SpellTargetIndex targetIndex = SpellTargetIndex::TargetA, Spell* = nullptr) const;
|
||||||
float CalcRadius(WorldObject* caster = nullptr, Spell* = nullptr) const;
|
|
||||||
|
|
||||||
uint32 GetProvidedTargetMask() const;
|
uint32 GetProvidedTargetMask() const;
|
||||||
uint32 GetMissingTargetMask(bool srcSet = false, bool destSet = false, uint32 mask = 0) const;
|
uint32 GetMissingTargetMask(bool srcSet = false, bool destSet = false, uint32 mask = 0) const;
|
||||||
|
|||||||
@@ -3048,12 +3048,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->Effects[EFFECT_0].BonusMultiplier = spellInfo->Effects[EFFECT_1].BonusMultiplier;
|
spellInfo->Effects[EFFECT_0].BonusMultiplier = spellInfo->Effects[EFFECT_1].BonusMultiplier;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Howl of Azgalor
|
|
||||||
ApplySpellFix({ 31344 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS); // 100yards instead of 50000?!
|
|
||||||
});
|
|
||||||
|
|
||||||
ApplySpellFix({
|
ApplySpellFix({
|
||||||
42818, // Headless Horseman - Wisp Flight Port
|
42818, // Headless Horseman - Wisp Flight Port
|
||||||
42821 // Headless Horseman - Wisp Flight Missile
|
42821 // Headless Horseman - Wisp Flight Missile
|
||||||
@@ -3086,14 +3080,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_SRC_AREA_ENEMY);
|
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_SRC_AREA_ENEMY);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Improved Spell Reflection - aoe aura
|
|
||||||
ApplySpellFix({ 59725 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
// Target entry seems to be wrong for this spell :/
|
|
||||||
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_CASTER_AREA_PARTY);
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_20_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
ApplySpellFix({
|
ApplySpellFix({
|
||||||
31347, // Doom
|
31347, // Doom
|
||||||
36327, // Shoot Arcane Explosion Arrow
|
36327, // Shoot Arcane Explosion Arrow
|
||||||
@@ -3501,13 +3487,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
|
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Siege Cannon (Tol Barad)
|
|
||||||
ApplySpellFix({ 85123 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS);
|
|
||||||
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_UNIT_SRC_AREA_ENTRY);
|
|
||||||
});
|
|
||||||
|
|
||||||
ApplySpellFix({
|
ApplySpellFix({
|
||||||
46842, // Flame Ring
|
46842, // Flame Ring
|
||||||
46836 // Flame Patch
|
46836 // Flame Patch
|
||||||
@@ -3571,12 +3550,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
});
|
});
|
||||||
// ENDOF BLACK TEMPLE SPELLS
|
// ENDOF BLACK TEMPLE SPELLS
|
||||||
|
|
||||||
// Summon Corpse Scarabs
|
|
||||||
ApplySpellFix({ 28864, 29105 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Tag Greater Felfire Diemetradon
|
// Tag Greater Felfire Diemetradon
|
||||||
ApplySpellFix({ 37851 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 37851 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
@@ -3632,27 +3605,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->RecoveryTime = 1000;
|
spellInfo->RecoveryTime = 1000;
|
||||||
});
|
});
|
||||||
|
|
||||||
//
|
|
||||||
// VIOLET HOLD SPELLS
|
|
||||||
//
|
|
||||||
// Water Globule (Ichoron)
|
|
||||||
ApplySpellFix({ 54258, 54264, 54265, 54266, 54267 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
// in 3.3.5 there is only one radius in dbc which is 0 yards in this
|
|
||||||
// use max radius from 4.3.4
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_25_YARDS);
|
|
||||||
});
|
|
||||||
// ENDOF VIOLET HOLD
|
|
||||||
|
|
||||||
//
|
|
||||||
// ULDUAR SPELLS
|
|
||||||
//
|
|
||||||
// Pursued (Flame Leviathan)
|
|
||||||
ApplySpellFix({ 62374 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
|
|
||||||
});
|
|
||||||
|
|
||||||
// Focused Eyebeam Summon Trigger (Kologarn)
|
// Focused Eyebeam Summon Trigger (Kologarn)
|
||||||
ApplySpellFix({ 63342 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 63342 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
@@ -3779,31 +3731,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
});
|
});
|
||||||
// ENDOF TRIAL OF THE CRUSADER SPELLS
|
// ENDOF TRIAL OF THE CRUSADER SPELLS
|
||||||
|
|
||||||
//
|
|
||||||
// HALLS OF REFLECTION SPELLS
|
|
||||||
//
|
|
||||||
ApplySpellFix({
|
|
||||||
72435, // Defiling Horror
|
|
||||||
72452 // Defiling Horror
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_60_YARDS); // 60yd
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_60_YARDS); // 60yd
|
|
||||||
});
|
|
||||||
|
|
||||||
// Achievement Check
|
|
||||||
ApplySpellFix({ 72830 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
|
|
||||||
});
|
|
||||||
|
|
||||||
// Start Halls of Reflection Quest AE
|
|
||||||
ApplySpellFix({ 72900 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
|
||||||
});
|
|
||||||
// ENDOF HALLS OF REFLECTION SPELLS
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// ICECROWN CITADEL SPELLS
|
// ICECROWN CITADEL SPELLS
|
||||||
//
|
//
|
||||||
@@ -3823,20 +3750,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_DEST_DB);
|
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_DEST_DB);
|
||||||
});
|
});
|
||||||
|
|
||||||
ApplySpellFix({
|
|
||||||
69075, // Bone Storm (Lord Marrowgar)
|
|
||||||
70834, // Bone Storm (Lord Marrowgar)
|
|
||||||
70835, // Bone Storm (Lord Marrowgar)
|
|
||||||
70836, // Bone Storm (Lord Marrowgar)
|
|
||||||
72864, // Death Plague (Rotting Frost Giant)
|
|
||||||
71160, // Plague Stench (Stinky)
|
|
||||||
71161, // Plague Stench (Stinky)
|
|
||||||
71123 // Decimate (Stinky & Precious)
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS); // 100yd
|
|
||||||
});
|
|
||||||
|
|
||||||
// Shadow's Fate
|
// Shadow's Fate
|
||||||
ApplySpellFix({ 71169 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 71169 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
@@ -3871,28 +3784,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->AttributesCu |= SPELL_ATTR0_CU_CONE_LINE;
|
spellInfo->AttributesCu |= SPELL_ATTR0_CU_CONE_LINE;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Award Reputation - Boss Kill
|
|
||||||
ApplySpellFix({ 73843, 73844, 73845, 73846 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
|
|
||||||
});
|
|
||||||
|
|
||||||
ApplySpellFix({
|
|
||||||
72378, // Blood Nova (Deathbringer Saurfang)
|
|
||||||
73058, // Blood Nova (Deathbringer Saurfang)
|
|
||||||
72769 // Scent of Blood (Deathbringer Saurfang)
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS);
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Scent of Blood (Deathbringer Saurfang)
|
|
||||||
ApplySpellFix({ 72771 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Resistant Skin (Deathbringer Saurfang adds)
|
// Resistant Skin (Deathbringer Saurfang adds)
|
||||||
ApplySpellFix({ 72723 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 72723 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
@@ -3940,27 +3831,12 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->Effects[EFFECT_1].Effect = 0;
|
spellInfo->Effects[EFFECT_1].Effect = 0;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Mutated Plague (Professor Putricide)
|
|
||||||
ApplySpellFix({ 72454, 72464, 72506, 72507 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
|
|
||||||
});
|
|
||||||
|
|
||||||
// Unbound Plague (Professor Putricide) (needs target selection script)
|
// Unbound Plague (Professor Putricide) (needs target selection script)
|
||||||
ApplySpellFix({ 70911, 72854, 72855, 72856 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 70911, 72854, 72855, 72856 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo(TARGET_UNIT_TARGET_ENEMY);
|
spellInfo->Effects[EFFECT_0].TargetB = SpellImplicitTargetInfo(TARGET_UNIT_TARGET_ENEMY);
|
||||||
});
|
});
|
||||||
|
|
||||||
ApplySpellFix({
|
|
||||||
71518, // Unholy Infusion Quest Credit (Professor Putricide)
|
|
||||||
72934, // Blood Infusion Quest Credit (Blood-Queen Lana'thel)
|
|
||||||
72289 // Frost Infusion Quest Credit (Sindragosa)
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // another missing radius
|
|
||||||
});
|
|
||||||
|
|
||||||
// Empowered Flare (Blood Prince Council)
|
// Empowered Flare (Blood Prince Council)
|
||||||
ApplySpellFix({ 71708, 72785, 72786, 72787 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 71708, 72785, 72786, 72787 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
@@ -3991,12 +3867,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(9); // 30 seconds (missing)
|
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(9); // 30 seconds (missing)
|
||||||
});
|
});
|
||||||
|
|
||||||
// Frostbolt Volley (only heroic)
|
|
||||||
ApplySpellFix({ 72015, 72016 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_2].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_40_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Summon Suppressor (needs target selection script)
|
// Summon Suppressor (needs target selection script)
|
||||||
ApplySpellFix({ 70936 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 70936 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
@@ -4005,14 +3875,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(157); // 90yd
|
spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(157); // 90yd
|
||||||
});
|
});
|
||||||
|
|
||||||
ApplySpellFix({
|
|
||||||
72706, // Achievement Check (Valithria Dreamwalker)
|
|
||||||
71357 // Order Whelp
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
|
||||||
});
|
|
||||||
|
|
||||||
// Sindragosa's Fury
|
// Sindragosa's Fury
|
||||||
ApplySpellFix({ 70598 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 70598 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
@@ -4053,15 +3915,13 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
// Defile
|
// Defile
|
||||||
ApplySpellFix({ 72754, 73708, 73709, 73710 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 72754, 73708, 73709, 73710 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
spellInfo->Effects[EFFECT_0].TargetBRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
spellInfo->Effects[EFFECT_1].TargetBRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
||||||
});
|
});
|
||||||
|
|
||||||
// Val'kyr Target Search
|
// Val'kyr Target Search
|
||||||
ApplySpellFix({ 69030 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 69030 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
|
||||||
spellInfo->Attributes |= SPELL_ATTR0_NO_IMMUNITIES;
|
spellInfo->Attributes |= SPELL_ATTR0_NO_IMMUNITIES;
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -4071,14 +3931,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(13); // 50000yd
|
spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(13); // 50000yd
|
||||||
});
|
});
|
||||||
|
|
||||||
// Harvest Souls
|
|
||||||
ApplySpellFix({ 73654, 74295, 74296, 74297 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
|
|
||||||
spellInfo->Effects[EFFECT_2].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
|
|
||||||
});
|
|
||||||
|
|
||||||
// Harvest Soul
|
// Harvest Soul
|
||||||
ApplySpellFix({ 73655 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 73655 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
@@ -4097,91 +3949,51 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(28); // 5 seconds
|
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(28); // 5 seconds
|
||||||
});
|
});
|
||||||
|
|
||||||
// Shadow Trap
|
|
||||||
ApplySpellFix({ 73529 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS); // 10yd
|
|
||||||
});
|
|
||||||
|
|
||||||
// Shadow Trap (searcher)
|
|
||||||
ApplySpellFix({ 74282 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS); // 5yd
|
|
||||||
});
|
|
||||||
|
|
||||||
// Restore Soul
|
// Restore Soul
|
||||||
ApplySpellFix({ 72595, 73650 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 72595, 73650 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
spellInfo->Effects[EFFECT_0].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
||||||
});
|
});
|
||||||
|
|
||||||
// Destroy Soul
|
// Destroy Soul
|
||||||
ApplySpellFix({ 74086 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 74086 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
spellInfo->Effects[EFFECT_0].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
||||||
});
|
});
|
||||||
|
|
||||||
// Summon Spirit Bomb
|
// Summon Spirit Bomb
|
||||||
ApplySpellFix({ 74302, 74342 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 74302, 74342 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
spellInfo->Effects[EFFECT_0].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
||||||
spellInfo->MaxAffectedTargets = 1;
|
spellInfo->MaxAffectedTargets = 1;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Summon Spirit Bomb
|
// Summon Spirit Bomb
|
||||||
ApplySpellFix({ 74341, 74343 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 74341, 74343 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
spellInfo->Effects[EFFECT_0].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS); // 200yd
|
||||||
spellInfo->MaxAffectedTargets = 3;
|
spellInfo->MaxAffectedTargets = 3;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Summon Spirit Bomb
|
// Summon Spirit Bomb
|
||||||
ApplySpellFix({ 73579 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 73579 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_25_YARDS); // 25yd
|
spellInfo->Effects[EFFECT_0].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_25_YARDS); // 25yd
|
||||||
});
|
|
||||||
|
|
||||||
// Fury of Frostmourne
|
|
||||||
ApplySpellFix({ 72350 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
|
|
||||||
});
|
|
||||||
|
|
||||||
ApplySpellFix(
|
|
||||||
{
|
|
||||||
75127, // Kill Frostmourne Players
|
|
||||||
72351, // Fury of Frostmourne
|
|
||||||
72431, // Jump (removes Fury of Frostmourne debuff)
|
|
||||||
72429, // Mass Resurrection
|
|
||||||
73159, // Play Movie
|
|
||||||
73582 // Trigger Vile Spirit (Inside, Heroic)
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Raise Dead
|
// Raise Dead
|
||||||
ApplySpellFix({ 72376 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 72376 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->MaxAffectedTargets = 3;
|
spellInfo->MaxAffectedTargets = 3;
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS); // 50000yd
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Jump
|
// Jump
|
||||||
ApplySpellFix({ 71809 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 71809 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(5); // 40yd
|
spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(5); // 40yd
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS); // 10yd
|
|
||||||
spellInfo->Effects[EFFECT_0].MiscValue = 190;
|
spellInfo->Effects[EFFECT_0].MiscValue = 190;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Broken Frostmourne
|
|
||||||
ApplySpellFix({ 72405 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_20_YARDS); // 20yd
|
|
||||||
spellInfo->AttributesEx |= SPELL_ATTR1_NO_THREAT;
|
|
||||||
});
|
|
||||||
// ENDOF ICECROWN CITADEL SPELLS
|
// ENDOF ICECROWN CITADEL SPELLS
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -4190,13 +4002,7 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
// Soul Consumption
|
// Soul Consumption
|
||||||
ApplySpellFix({ 74799 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 74799 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_12_YARDS);
|
spellInfo->Effects[EFFECT_1].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_12_YARDS);
|
||||||
});
|
|
||||||
|
|
||||||
// Twilight Cutter
|
|
||||||
ApplySpellFix({ 74769, 77844, 77845, 77846 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS); // 100yd
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Twilight Mending
|
// Twilight Mending
|
||||||
@@ -4211,18 +4017,18 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].Mechanic = MECHANIC_NONE;
|
spellInfo->Effects[EFFECT_0].Mechanic = MECHANIC_NONE;
|
||||||
spellInfo->Effects[EFFECT_1].Mechanic = MECHANIC_SNARE;
|
spellInfo->Effects[EFFECT_1].Mechanic = MECHANIC_SNARE;
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_6_YARDS);
|
spellInfo->Effects[EFFECT_1].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_6_YARDS);
|
||||||
});
|
});
|
||||||
|
|
||||||
ApplySpellFix({ 75884 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 75884 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_6_YARDS);
|
spellInfo->Effects[EFFECT_0].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_6_YARDS);
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_6_YARDS);
|
spellInfo->Effects[EFFECT_1].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_6_YARDS);
|
||||||
});
|
});
|
||||||
|
|
||||||
ApplySpellFix({ 75883, 75876 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 75883, 75876 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_6_YARDS);
|
spellInfo->Effects[EFFECT_1].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_6_YARDS);
|
||||||
});
|
});
|
||||||
// ENDOF RUBY SANCTUM SPELLS
|
// ENDOF RUBY SANCTUM SPELLS
|
||||||
|
|
||||||
@@ -4276,41 +4082,11 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->AuraInterruptFlags = SpellAuraInterruptFlags::Damage | SpellAuraInterruptFlags::HostileActionReceived;
|
spellInfo->AuraInterruptFlags = SpellAuraInterruptFlags::Damage | SpellAuraInterruptFlags::HostileActionReceived;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Rupture
|
|
||||||
ApplySpellFix({ 95669 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_1].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_8_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// ENDOF STONECORE SPELLS
|
// ENDOF STONECORE SPELLS
|
||||||
|
|
||||||
//
|
//
|
||||||
// THE VORTEX PINNACLE SPELLS
|
// THE VORTEX PINNACLE SPELLS
|
||||||
//
|
//
|
||||||
// Howling Gale
|
|
||||||
ApplySpellFix({ 85085 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Howling Gale
|
|
||||||
ApplySpellFix({ 85159 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(84); // To-do: Enum this radius entry - EFFECT_RADIUS_17_YARDS.
|
|
||||||
});
|
|
||||||
|
|
||||||
// Upwind of Altairus
|
|
||||||
ApplySpellFix({ 88282 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Twisting Winds
|
|
||||||
ApplySpellFix({ 88314 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_3_YARDS);
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_3_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Grounding Field
|
// Grounding Field
|
||||||
ApplySpellFix({
|
ApplySpellFix({
|
||||||
@@ -4413,11 +4189,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Ascendant Council
|
// Ascendant Council
|
||||||
// Disperse
|
|
||||||
ApplySpellFix({ 83087 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Frozen Orb
|
// Frozen Orb
|
||||||
ApplySpellFix({ 92267 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 92267 }, [](SpellInfo* spellInfo)
|
||||||
@@ -4494,7 +4265,7 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
// Charge
|
// Charge
|
||||||
ApplySpellFix({ 88295 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 88295 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS);
|
spellInfo->Effects[EFFECT_0].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS);
|
||||||
});
|
});
|
||||||
|
|
||||||
// "Captain" Cookie
|
// "Captain" Cookie
|
||||||
@@ -4511,7 +4282,7 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
// Spark
|
// Spark
|
||||||
ApplySpellFix({ 95520 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 95520 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_1_YARD);
|
spellInfo->Effects[EFFECT_0].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_1_YARD);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Summon Defias
|
// Summon Defias
|
||||||
@@ -4545,15 +4316,9 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
|
|
||||||
// Commander Ulthok
|
// Commander Ulthok
|
||||||
// Dark Fissure
|
// Dark Fissure
|
||||||
ApplySpellFix({ 76047 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_1_YARD);
|
|
||||||
});
|
|
||||||
|
|
||||||
ApplySpellFix({ 96311 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 96311 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(21); // Infinite
|
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(21); // Infinite
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_1_YARD);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Ozumat
|
// Ozumat
|
||||||
@@ -4561,7 +4326,7 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
ApplySpellFix({ 76953 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 76953 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->MaxAffectedTargets = 5;
|
spellInfo->MaxAffectedTargets = 5;
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS);
|
spellInfo->Effects[EFFECT_0].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Summon Murloc Add Trigger
|
// Summon Murloc Add Trigger
|
||||||
@@ -4661,11 +4426,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
// THE LOST CITY OF THE TOL'VIR SPELLS
|
// THE LOST CITY OF THE TOL'VIR SPELLS
|
||||||
//
|
//
|
||||||
// General Husam
|
// General Husam
|
||||||
// Summon Shockwave Target N
|
|
||||||
ApplySpellFix({ 83131 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_4_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Hurl
|
// Hurl
|
||||||
ApplySpellFix({ 83235 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 83235 }, [](SpellInfo* spellInfo)
|
||||||
@@ -4675,29 +4435,10 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
});
|
});
|
||||||
|
|
||||||
// High Prophet Barim
|
// High Prophet Barim
|
||||||
// Heaven's Fury
|
|
||||||
ApplySpellFix({ 81942, 90040 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_4_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Hallowed Ground
|
|
||||||
ApplySpellFix({ 88814, 90010 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_13_YARDS);
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_13_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Blaze of the Heavens
|
// Blaze of the Heavens
|
||||||
ApplySpellFix({ 91196 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 91196 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_3_YARDS);
|
spellInfo->Effects[EFFECT_0].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_3_YARDS);
|
||||||
});
|
|
||||||
|
|
||||||
// Blaze of the Heavens
|
|
||||||
ApplySpellFix({ 95249 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_3_YARDS);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Soul Fragment
|
// Soul Fragment
|
||||||
@@ -4706,20 +4447,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->AttributesEx5 |= SPELL_ATTR5_ALLOW_ACTIONS_DURING_CHANNEL;
|
spellInfo->AttributesEx5 |= SPELL_ATTR5_ALLOW_ACTIONS_DURING_CHANNEL;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Lockmaw and Augh
|
|
||||||
// Dust Flail
|
|
||||||
ApplySpellFix({ 81643, 81652 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_11_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Siamat
|
|
||||||
// Lightning Charge
|
|
||||||
ApplySpellFix({ 91872 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Generic Spells
|
// Generic Spells
|
||||||
// Slipstream
|
// Slipstream
|
||||||
ApplySpellFix({ 91872 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 91872 }, [](SpellInfo* spellInfo)
|
||||||
@@ -4738,7 +4465,7 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
}, [](SpellInfo* spellInfo)
|
}, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
// Little hack, Increase the radius so it can hit the Cave In Stalkers in the platform.
|
// Little hack, Increase the radius so it can hit the Cave In Stalkers in the platform.
|
||||||
spellInfo->Effects[EFFECT_0].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_45_YARDS);
|
spellInfo->Effects[EFFECT_0].TargetBRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_45_YARDS);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Destruction Protocoll
|
// Destruction Protocoll
|
||||||
@@ -4747,42 +4474,12 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->AttributesEx2 |= SPELL_ATTR2_NO_INITIAL_THREAT;
|
spellInfo->AttributesEx2 |= SPELL_ATTR2_NO_INITIAL_THREAT;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Crumbling Ruin
|
|
||||||
ApplySpellFix({
|
|
||||||
75609,
|
|
||||||
91206
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50000_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Solar Fire
|
|
||||||
ApplySpellFix({ 89133, 89878 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_4_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Solar Winds
|
|
||||||
ApplySpellFix({ 74108, 89130 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_4_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Spore Cloud
|
// Spore Cloud
|
||||||
ApplySpellFix({ 75701 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 75701 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->AttributesEx &= ~SPELL_ATTR1_IS_CHANNELLED;
|
spellInfo->AttributesEx &= ~SPELL_ATTR1_IS_CHANNELLED;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Noxious Spores
|
|
||||||
ApplySpellFix({
|
|
||||||
75702,
|
|
||||||
89889
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = nullptr;
|
|
||||||
});
|
|
||||||
|
|
||||||
ApplySpellFix({
|
ApplySpellFix({
|
||||||
73847, // Summon Sun-Touched Sprite
|
73847, // Summon Sun-Touched Sprite
|
||||||
73848 // Summon Sun-Touched Spriteling
|
73848 // Summon Sun-Touched Spriteling
|
||||||
@@ -4796,27 +4493,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
//
|
//
|
||||||
// SHADOWFANG KEEP SPELLS
|
// SHADOWFANG KEEP SPELLS
|
||||||
//
|
//
|
||||||
// Summon Spirit of Wolf Master Nandos
|
|
||||||
// Summon Spirit of Odo the Blindwatcher
|
|
||||||
// Summon Spirit of Razorclaw the Butcher
|
|
||||||
// Summon Spirit of Rethilgore
|
|
||||||
ApplySpellFix({ 93896, 93859, 93921, 93925 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_15_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Desecration Arm
|
|
||||||
ApplySpellFix({ 67802 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_7_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Desecration
|
|
||||||
ApplySpellFix({ 93691, 94370 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_6_YARDS);
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_6_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Toxic Coagulant
|
// Toxic Coagulant
|
||||||
ApplySpellFix({ 93617 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 93617 }, [](SpellInfo* spellInfo)
|
||||||
@@ -4930,12 +4606,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(21); // Infinite
|
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(21); // Infinite
|
||||||
});
|
});
|
||||||
|
|
||||||
// Immolation
|
|
||||||
ApplySpellFix({ 99845 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// World in Flames
|
// World in Flames
|
||||||
// There is no channel update packet in sniffs so we can assume that this is a leftover from a redesign
|
// There is no channel update packet in sniffs so we can assume that this is a leftover from a redesign
|
||||||
ApplySpellFix({
|
ApplySpellFix({
|
||||||
@@ -5000,8 +4670,9 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
101237,
|
101237,
|
||||||
}, [](SpellInfo* spellInfo)
|
}, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS);
|
// HACK! Caster - Target radius calculation needs corrections
|
||||||
spellInfo->Effects[EFFECT_1].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS);
|
spellInfo->Effects[EFFECT_0].TargetBRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS);
|
||||||
|
spellInfo->Effects[EFFECT_1].TargetBRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS);
|
||||||
});
|
});
|
||||||
|
|
||||||
// ENDOF FIRELANDS SPELLS
|
// ENDOF FIRELANDS SPELLS
|
||||||
@@ -5027,19 +4698,10 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
// ZUL'GURUB SPELLS
|
// ZUL'GURUB SPELLS
|
||||||
//
|
//
|
||||||
|
|
||||||
// Tears of Blood
|
|
||||||
ApplySpellFix({
|
|
||||||
96422,
|
|
||||||
96957,
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_12_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Wave of Agony
|
// Wave of Agony
|
||||||
ApplySpellFix({ 96461 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 96461 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_2_YARDS);
|
spellInfo->Effects[EFFECT_0].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_2_YARDS);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Wave of Agony (Damage)
|
// Wave of Agony (Damage)
|
||||||
@@ -5052,7 +4714,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
ApplySpellFix({ 97355 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 97355 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(5); // 40yd
|
spellInfo->RangeEntry = sSpellRangeStore.LookupEntry(5); // 40yd
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_40_YARDS);
|
|
||||||
spellInfo->Effects[EFFECT_1].TargetB = SpellImplicitTargetInfo(TARGET_DEST_DEST);
|
spellInfo->Effects[EFFECT_1].TargetB = SpellImplicitTargetInfo(TARGET_DEST_DEST);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -5068,7 +4729,7 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
96319
|
96319
|
||||||
}, [](SpellInfo* spellInfo)
|
}, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS);
|
spellInfo->Effects[EFFECT_0].TargetBRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_200_YARDS);
|
||||||
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_DEST_DEST);
|
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_DEST_DEST);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -5081,12 +4742,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_DEST_DEST);
|
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_DEST_DEST);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Zanzili Fire
|
|
||||||
ApplySpellFix({ 96916 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_2_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Shadow Spike
|
// Shadow Spike
|
||||||
ApplySpellFix({ 97158 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 97158 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
@@ -5153,9 +4808,9 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
// Boulder Smash
|
// Boulder Smash
|
||||||
ApplySpellFix({ 96834 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 96834 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS);
|
spellInfo->Effects[EFFECT_0].TargetBRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS);
|
||||||
spellInfo->Effects[EFFECT_1].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS);
|
spellInfo->Effects[EFFECT_1].TargetBRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS);
|
||||||
spellInfo->Effects[EFFECT_2].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS);
|
spellInfo->Effects[EFFECT_2].TargetBRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS);
|
||||||
});
|
});
|
||||||
|
|
||||||
// ENDOF ZUL'GURUB SPELLS
|
// ENDOF ZUL'GURUB SPELLS
|
||||||
@@ -5199,7 +4854,7 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
86191
|
86191
|
||||||
}, [](SpellInfo* spellInfo)
|
}, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_3_YARDS);
|
spellInfo->Effects[EFFECT_0].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_3_YARDS);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Al'Akir
|
// Al'Akir
|
||||||
@@ -5268,7 +4923,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
91104,
|
91104,
|
||||||
}, [](SpellInfo* spellInfo)
|
}, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_0].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_50_YARDS);
|
|
||||||
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(245); // 50 seconds
|
spellInfo->DurationEntry = sSpellDurationStore.LookupEntry(245); // 50 seconds
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -5282,12 +4936,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->MaxAffectedTargets = 1;
|
spellInfo->MaxAffectedTargets = 1;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Lightning Clouds
|
|
||||||
ApplySpellFix({ 89583 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_80_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Lightning Clouds
|
// Lightning Clouds
|
||||||
ApplySpellFix({
|
ApplySpellFix({
|
||||||
89588,
|
89588,
|
||||||
@@ -5504,23 +5152,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->AttributesEx2 |= SPELL_ATTR2_IGNORE_LINE_OF_SIGHT;
|
spellInfo->AttributesEx2 |= SPELL_ATTR2_IGNORE_LINE_OF_SIGHT;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Ignition
|
|
||||||
ApplySpellFix({
|
|
||||||
92134,
|
|
||||||
92196,
|
|
||||||
92197,
|
|
||||||
92198
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_2_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Armageddon
|
|
||||||
ApplySpellFix({ 92182 }, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_100_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Flamethrower
|
// Flamethrower
|
||||||
ApplySpellFix({
|
ApplySpellFix({
|
||||||
79505,
|
79505,
|
||||||
@@ -5551,7 +5182,7 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
// Overcharged Power Generator
|
// Overcharged Power Generator
|
||||||
ApplySpellFix({ 91858 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 91858 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS);
|
spellInfo->Effects[EFFECT_1].TargetARadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_5_YARDS);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Sonar Pulse
|
// Sonar Pulse
|
||||||
@@ -5634,20 +5265,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(0);
|
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Growth Catalyst
|
|
||||||
ApplySpellFix({
|
|
||||||
77987,
|
|
||||||
101440,
|
|
||||||
101441,
|
|
||||||
101442
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->AttributesEx3 |= SPELL_ATTR3_DOT_STACKING_RULE;
|
|
||||||
spellInfo->Effects[EFFECT_0].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS);
|
|
||||||
spellInfo->Effects[EFFECT_1].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS);
|
|
||||||
spellInfo->Effects[EFFECT_2].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_10_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Release Aberrations
|
// Release Aberrations
|
||||||
ApplySpellFix({ 77569 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 77569 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
@@ -5666,15 +5283,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->AttributesEx2 |= SPELL_ATTR2_NO_INITIAL_THREAT;
|
spellInfo->AttributesEx2 |= SPELL_ATTR2_NO_INITIAL_THREAT;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Dragon Orb
|
|
||||||
ApplySpellFix({
|
|
||||||
78219,
|
|
||||||
78220
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_4_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Shadowflame Breath
|
// Shadowflame Breath
|
||||||
ApplySpellFix({
|
ApplySpellFix({
|
||||||
77826,
|
77826,
|
||||||
@@ -5692,17 +5300,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->Effects[EFFECT_0].AuraPeriod = 3000;
|
spellInfo->Effects[EFFECT_0].AuraPeriod = 3000;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Lightning Discharge
|
|
||||||
ApplySpellFix({
|
|
||||||
81435,
|
|
||||||
81436,
|
|
||||||
81437,
|
|
||||||
81438,
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_18_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Hail of Bones
|
// Hail of Bones
|
||||||
ApplySpellFix({
|
ApplySpellFix({
|
||||||
78684,
|
78684,
|
||||||
@@ -5738,17 +5335,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
spellInfo->MaxAffectedTargets = 1;
|
spellInfo->MaxAffectedTargets = 1;
|
||||||
});
|
});
|
||||||
|
|
||||||
// Lightning Discharge
|
|
||||||
ApplySpellFix({
|
|
||||||
81435,
|
|
||||||
81436,
|
|
||||||
81437,
|
|
||||||
81438
|
|
||||||
}, [](SpellInfo* spellInfo)
|
|
||||||
{
|
|
||||||
spellInfo->Effects[EFFECT_0].MaxRadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_18_YARDS);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Explosive Cinders
|
// Explosive Cinders
|
||||||
ApplySpellFix({ 79339 }, [](SpellInfo* spellInfo)
|
ApplySpellFix({ 79339 }, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
@@ -5774,7 +5360,6 @@ void SpellMgr::LoadSpellInfoCorrections()
|
|||||||
}, [](SpellInfo* spellInfo)
|
}, [](SpellInfo* spellInfo)
|
||||||
{
|
{
|
||||||
spellInfo->AttributesEx2 |= SPELL_ATTR2_NO_INITIAL_THREAT;
|
spellInfo->AttributesEx2 |= SPELL_ATTR2_NO_INITIAL_THREAT;
|
||||||
spellInfo->Effects[EFFECT_1].RadiusEntry = sSpellRadiusStore.LookupEntry(EFFECT_RADIUS_4_YARDS);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Mangle (Hotfix: 2011-03-16: Magmaw overall damage and health was a little too high on all difficulties and has been reduced slightly)
|
// Mangle (Hotfix: 2011-03-16: Magmaw overall damage and health was a little too high on all difficulties and has been reduced slightly)
|
||||||
|
|||||||
@@ -609,7 +609,7 @@ class spell_helix_sticky_bomb_periodic_trigger : public AuraScript
|
|||||||
if (!spell)
|
if (!spell)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (Player* player = target->SelectNearestPlayer(spell->Effects[EFFECT_0].CalcRadius()))
|
if (Player* player = target->SelectNearestPlayer(spell->Effects[EFFECT_0].CalcRadius(nullptr, SpellTargetIndex::TargetB)))
|
||||||
{
|
{
|
||||||
if (!player->GetVehicleBase() && player->GetExactDist(target) <= 1.0f)
|
if (!player->GetVehicleBase() && player->GetExactDist(target) <= 1.0f)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -370,29 +370,6 @@ class spell_anraphet_omega_stance_summon : public SpellScript
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// 77127 Omega Stance Spider Effect
|
|
||||||
class spell_anraphet_omega_stance_spider_effect : public SpellScript
|
|
||||||
{
|
|
||||||
void SetDestPosition(SpellEffIndex /*effIndex*/)
|
|
||||||
{
|
|
||||||
Unit* caster = GetCaster();
|
|
||||||
float angle = float(rand_norm()) * static_cast<float>(2 * M_PI);
|
|
||||||
uint32 dist = caster->GetCombatReach() + GetSpellInfo()->Effects[EFFECT_0].CalcRadius(caster) * (float)rand_norm();
|
|
||||||
|
|
||||||
float x = caster->GetPositionX() + dist * std::cos(angle);
|
|
||||||
float y = caster->GetPositionY() + dist * std::sin(angle);
|
|
||||||
float z = caster->GetMap()->GetHeight(caster->GetPhaseShift(), x, y, caster->GetPositionZ());
|
|
||||||
float o = GetHitDest()->GetOrientation();
|
|
||||||
|
|
||||||
GetHitDest()->Relocate({ x, y, z, o });
|
|
||||||
}
|
|
||||||
|
|
||||||
void Register()
|
|
||||||
{
|
|
||||||
OnEffectLaunch.Register(&spell_anraphet_omega_stance_spider_effect::SetDestPosition, EFFECT_0, SPELL_EFFECT_DUMMY);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
void AddSC_boss_anraphet()
|
void AddSC_boss_anraphet()
|
||||||
{
|
{
|
||||||
RegisterHallsOfOriginationCreatureAI(boss_anraphet);
|
RegisterHallsOfOriginationCreatureAI(boss_anraphet);
|
||||||
@@ -402,5 +379,4 @@ void AddSC_boss_anraphet()
|
|||||||
RegisterSpellScript(spell_anraphet_alpha_beams);
|
RegisterSpellScript(spell_anraphet_alpha_beams);
|
||||||
RegisterSpellScript(spell_anraphet_omega_stance);
|
RegisterSpellScript(spell_anraphet_omega_stance);
|
||||||
RegisterSpellScript(spell_anraphet_omega_stance_summon);
|
RegisterSpellScript(spell_anraphet_omega_stance_summon);
|
||||||
RegisterSpellScript(spell_anraphet_omega_stance_spider_effect);
|
|
||||||
}
|
}
|
||||||
@@ -578,7 +578,7 @@ class spell_marrowgar_coldflame_damage : public SpellScriptLoader
|
|||||||
if (target->HasAura(SPELL_IMPALED))
|
if (target->HasAura(SPELL_IMPALED))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (target->GetExactDist2d(GetOwner()) > GetSpellInfo()->Effects[EFFECT_0].CalcRadius())
|
if (target->GetExactDist2d(GetOwner()) > GetSpellInfo()->Effects[EFFECT_0].CalcRadius(nullptr, SpellTargetIndex::TargetB))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (Aura* aur = target->GetAura(GetId()))
|
if (Aura* aur = target->GetAura(GetId()))
|
||||||
|
|||||||
@@ -182,7 +182,7 @@ class spell_krystallus_shatter_effect : public SpellScriptLoader
|
|||||||
if (!GetHitUnit())
|
if (!GetHitUnit())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
float radius = GetSpellInfo()->Effects[EFFECT_0].CalcRadius(GetCaster());
|
float radius = GetSpellInfo()->Effects[EFFECT_0].CalcRadius(GetCaster(), SpellTargetIndex::TargetB);
|
||||||
if (!radius)
|
if (!radius)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
@@ -310,7 +310,7 @@ class spell_gruul_shatter_effect : public SpellScriptLoader
|
|||||||
if (!GetHitUnit())
|
if (!GetHitUnit())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
float radius = GetSpellInfo()->Effects[EFFECT_0].CalcRadius(GetCaster());
|
float radius = GetSpellInfo()->Effects[EFFECT_0].CalcRadius(GetCaster(), SpellTargetIndex::TargetB);
|
||||||
if (!radius)
|
if (!radius)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user