mirror of
https://github.com/mangosfour/server.git
synced 2025-12-12 19:37:03 +00:00
[c12612] Implement some spells for Black Temple
This commit is contained in:
parent
8a3be45af0
commit
a7a0dad043
4 changed files with 34 additions and 1 deletions
|
|
@ -1672,6 +1672,10 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList&
|
||||||
switch (targetMode)
|
switch (targetMode)
|
||||||
{
|
{
|
||||||
case TARGET_RANDOM_NEARBY_LOC:
|
case TARGET_RANDOM_NEARBY_LOC:
|
||||||
|
// special case for Fatal Attraction (BT, Mother Shahraz)
|
||||||
|
if (m_spellInfo->Id == 40869)
|
||||||
|
radius = 30.0f;
|
||||||
|
|
||||||
// Get a random point in circle. Use sqrt(rand) to correct distribution when converting polar to Cartesian coordinates.
|
// Get a random point in circle. Use sqrt(rand) to correct distribution when converting polar to Cartesian coordinates.
|
||||||
radius *= sqrtf(rand_norm_f());
|
radius *= sqrtf(rand_norm_f());
|
||||||
// no 'break' expected since we use code in case TARGET_RANDOM_CIRCUMFERENCE_POINT!!!
|
// no 'break' expected since we use code in case TARGET_RANDOM_CIRCUMFERENCE_POINT!!!
|
||||||
|
|
@ -7973,6 +7977,7 @@ void Spell::GetSpellRangeAndRadius(SpellEffectEntry const* spellEffect, float& r
|
||||||
case 30004: // Flame Wreath (Karazhan, Shade of Aran)
|
case 30004: // Flame Wreath (Karazhan, Shade of Aran)
|
||||||
case 31298: // Sleep (Hyjal Summit, Anetheron)
|
case 31298: // Sleep (Hyjal Summit, Anetheron)
|
||||||
case 39992: // Needle Spine Targeting (BT, Warlord Najentus)
|
case 39992: // Needle Spine Targeting (BT, Warlord Najentus)
|
||||||
|
case 40869: // Fatal Attraction (BT, Mother Shahraz)
|
||||||
case 41303: // Soul Drain (BT, Reliquary of Souls)
|
case 41303: // Soul Drain (BT, Reliquary of Souls)
|
||||||
case 41376: // Spite (BT, Reliquary of Souls)
|
case 41376: // Spite (BT, Reliquary of Souls)
|
||||||
case 51904: // Summon Ghouls On Scarlet Crusade
|
case 51904: // Summon Ghouls On Scarlet Crusade
|
||||||
|
|
|
||||||
|
|
@ -1501,6 +1501,14 @@ void Spell::EffectDummy(SpellEffectEntry const* effect)
|
||||||
m_caster->CastSpell(unitTarget, 40932, true);
|
m_caster->CastSpell(unitTarget, 40932, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
case 40869: // Fatal Attraction
|
||||||
|
{
|
||||||
|
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
|
||||||
|
return;
|
||||||
|
|
||||||
|
m_caster->CastSpell(unitTarget, 41001, true);
|
||||||
|
return;
|
||||||
|
}
|
||||||
case 40962: // Blade's Edge Terrace Demon Boss Summon Branch
|
case 40962: // Blade's Edge Terrace Demon Boss Summon Branch
|
||||||
{
|
{
|
||||||
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
|
if (!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
|
||||||
|
|
@ -1517,6 +1525,16 @@ void Spell::EffectDummy(SpellEffectEntry const* effect)
|
||||||
unitTarget->CastSpell(unitTarget, spell_id, true);
|
unitTarget->CastSpell(unitTarget, spell_id, true);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
case 41333: // Empyreal Equivalency
|
||||||
|
{
|
||||||
|
if (!unitTarget)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Equilize the health of all targets based on the corresponding health percent
|
||||||
|
float health_diff = (float)unitTarget->GetMaxHealth() / (float)m_caster->GetMaxHealth();
|
||||||
|
unitTarget->SetHealth(m_caster->GetHealth() * health_diff);
|
||||||
|
return;
|
||||||
|
}
|
||||||
case 42287: // Salvage Wreckage
|
case 42287: // Salvage Wreckage
|
||||||
{
|
{
|
||||||
if (m_caster->GetTypeId() != TYPEID_PLAYER)
|
if (m_caster->GetTypeId() != TYPEID_PLAYER)
|
||||||
|
|
|
||||||
|
|
@ -2138,6 +2138,16 @@ bool SpellMgr::IsNoStackSpellDueToSpell(uint32 spellId_1, uint32 spellId_2) cons
|
||||||
(spellInfo_2->Id == 23014 && spellInfo_1->Id == 19832))
|
(spellInfo_2->Id == 23014 && spellInfo_1->Id == 19832))
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
// Shade Soul Channel and Akama Soul Channel
|
||||||
|
if ((spellInfo_1->Id == 40401 && spellInfo_2->Id == 40447) ||
|
||||||
|
(spellInfo_2->Id == 40401 && spellInfo_1->Id == 40447))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Eye Blast visual and Eye Blast
|
||||||
|
if ((spellInfo_1->Id == 39908 && spellInfo_2->Id == 40017) ||
|
||||||
|
(spellInfo_2->Id == 39908 && spellInfo_1->Id == 40017))
|
||||||
|
return false;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SPELLFAMILY_MAGE:
|
case SPELLFAMILY_MAGE:
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "12611"
|
#define REVISION_NR "12612"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue