*Fix judgements of the Wise
*Fix Druids Survival Instincts and thunder clap - by Lightguard. *Fix Death Coil - by Fisherman, aerione_alt, Lightguard --HG-- branch : trunk
This commit is contained in:
@@ -0,0 +1,4 @@
|
||||
-- Judgements of the Wise
|
||||
INSERT INTO `spell_proc_event` VALUES (31876, 0x00, 10, 0x20180400, 0x0000008, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);
|
||||
INSERT INTO `spell_proc_event` VALUES (31877, 0x00, 10, 0x20180400, 0x0000008, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);
|
||||
INSERT INTO `spell_proc_event` VALUES (31878, 0x00, 10, 0x20180400, 0x0000008, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0);
|
||||
@@ -66,4 +66,5 @@ INSTALL(FILES
|
||||
1703_world.sql
|
||||
1709_mangos_7393_01_world_game_event.sql
|
||||
1724_mangos_7399_01_world_trinity_string.sql
|
||||
1729_world.sql
|
||||
DESTINATION share/trinity/sql/updates)
|
||||
+13
-1
@@ -1909,6 +1909,15 @@ void Aura::HandleAuraDummy(bool apply, bool Real)
|
||||
m_modifier.m_amount = caster->SpellHealingBonus(m_target, GetSpellProto(), m_modifier.m_amount, SPELL_DIRECT_DAMAGE);
|
||||
return;
|
||||
}
|
||||
//Druid, Survival Instincts
|
||||
if(GetSpellProto()->SpellFamilyName==SPELLFAMILY_DRUID && GetSpellProto()->SpellFamilyFlags[2]& 0x40 )
|
||||
{
|
||||
if(!m_target)
|
||||
return;
|
||||
|
||||
int32 bp0 = int32(m_target->GetMaxHealth() * m_modifier.m_amount / 100);
|
||||
m_target->CastCustomSpell(m_target, 50322, &bp0, NULL, NULL, true);
|
||||
}
|
||||
}
|
||||
// AT REMOVE
|
||||
else
|
||||
@@ -5820,7 +5829,6 @@ void Aura::PeriodicTick()
|
||||
{
|
||||
// ignore non positive values (can be result apply spellmods to aura damage
|
||||
uint32 pdamage = m_modifier.m_amount > 0 ? m_modifier.m_amount : 0;
|
||||
|
||||
sLog.outDetail("PeriodicTick: %u (TypeId: %u) energize %u (TypeId: %u) for %u dmg inflicted by %u",
|
||||
GUID_LOPART(GetCasterGUID()), GuidHigh2TypeId(GUID_HIPART(GetCasterGUID())), m_target->GetGUIDLow(), m_target->GetTypeId(), pdamage, GetId());
|
||||
|
||||
@@ -5832,6 +5840,10 @@ void Aura::PeriodicTick()
|
||||
if(m_target->GetMaxPower(power) == 0)
|
||||
break;
|
||||
|
||||
// Replenishment (Judgements of the Wise)
|
||||
if (m_spellProto->SpellIconID == 3184 && m_spellProto->SpellVisual[0] == 12495)
|
||||
pdamage = 0.25f * m_target->GetMaxPower(POWER_MANA);
|
||||
|
||||
WorldPacket data(SMSG_PERIODICAURALOG, (21+16));// we guess size
|
||||
data.append(m_target->GetPackGUID());
|
||||
data.appendPackGUID(GetCasterGUID());
|
||||
|
||||
@@ -425,6 +425,12 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
|
||||
damage+= int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * pct / 100);
|
||||
break;
|
||||
}
|
||||
// Thunder Clap
|
||||
else if(m_spellInfo->SpellFamilyFlags[0] & 0x80)
|
||||
{
|
||||
damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 12 / 100);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_WARLOCK:
|
||||
@@ -1858,7 +1864,27 @@ void Spell::EffectDummy(uint32 i)
|
||||
m_caster->CastSpell(m_caster,spell_id,true);
|
||||
return;
|
||||
}
|
||||
// Death Coil
|
||||
if(m_spellInfo->SpellFamilyFlags[0] & 0x002000)
|
||||
{
|
||||
uint32 spell_id = NULL;
|
||||
damage += m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.15f;
|
||||
if(m_caster->IsFriendlyTo(unitTarget))
|
||||
{
|
||||
if(unitTarget->GetCreatureType() != CREATURE_TYPE_UNDEAD)
|
||||
return;
|
||||
|
||||
spell_id = 47633;
|
||||
damage *= 1.5f;
|
||||
}
|
||||
else
|
||||
spell_id = 47632;
|
||||
|
||||
bp = int32(damage);
|
||||
m_caster->CastCustomSpell(unitTarget,spell_id,&bp,NULL,NULL,true);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
//spells triggered by dummy effect should not miss
|
||||
|
||||
@@ -370,7 +370,7 @@ SpellSpecific GetSpellSpecific(uint32 spellId)
|
||||
if (spellInfo->SpellFamilyFlags[0] & 0x11010002)
|
||||
return SPELL_BLESSING;
|
||||
|
||||
if ((spellInfo->SpellFamilyFlags[1] & 0x000008 || spellInfo->SpellFamilyFlags[0] & 20180400) && (spellInfo->AttributesEx3 & 0x200))
|
||||
if ((spellInfo->SpellFamilyFlags[1] & 0x000008 || spellInfo->SpellFamilyFlags[0] & 0x20180400) && (spellInfo->AttributesEx3 & 0x200))
|
||||
return SPELL_JUDGEMENT;
|
||||
|
||||
for (int i = 0; i < 3; i++)
|
||||
@@ -498,9 +498,6 @@ bool IsPositiveEffect(uint32 spellId, uint32 effIndex)
|
||||
case 23333: // BG spell
|
||||
case 23335: // BG spell
|
||||
case 34976: // BG spell
|
||||
case 31579: // Arcane Empowerment Rank1 talent aura with one positive and one negative (check not needed in wotlk)
|
||||
case 31582: // Arcane Empowerment Rank2
|
||||
case 31583: // Arcane Empowerment Rank3
|
||||
return true;
|
||||
case 28441: // not positive dummy spell
|
||||
case 37675: // Chaos Blast
|
||||
|
||||
@@ -5843,6 +5843,17 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
|
||||
basepoints0 = GetAttackTime(BASE_ATTACK) * int32(ap*0.022f + 0.044f * holy) / 1000;
|
||||
break;
|
||||
}
|
||||
// Judgements of the Wise
|
||||
if (dummySpell->SpellIconID == 3017)
|
||||
{
|
||||
// hardcoded amount
|
||||
basepoints0 = 15 * GetMaxPower(POWER_MANA)/100;
|
||||
target = this;
|
||||
triggered_spell_id = 57669;
|
||||
// replenishment
|
||||
CastCustomSpell(this,31930,&basepoints0,0,0,true,0,triggeredByAura);
|
||||
break;
|
||||
}
|
||||
// Sanctified Wrath
|
||||
if (dummySpell->SpellIconID == 3029)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user