*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
|
1703_world.sql
|
||||||
1709_mangos_7393_01_world_game_event.sql
|
1709_mangos_7393_01_world_game_event.sql
|
||||||
1724_mangos_7399_01_world_trinity_string.sql
|
1724_mangos_7399_01_world_trinity_string.sql
|
||||||
|
1729_world.sql
|
||||||
DESTINATION share/trinity/sql/updates)
|
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);
|
m_modifier.m_amount = caster->SpellHealingBonus(m_target, GetSpellProto(), m_modifier.m_amount, SPELL_DIRECT_DAMAGE);
|
||||||
return;
|
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
|
// AT REMOVE
|
||||||
else
|
else
|
||||||
@@ -5820,7 +5829,6 @@ void Aura::PeriodicTick()
|
|||||||
{
|
{
|
||||||
// ignore non positive values (can be result apply spellmods to aura damage
|
// ignore non positive values (can be result apply spellmods to aura damage
|
||||||
uint32 pdamage = m_modifier.m_amount > 0 ? m_modifier.m_amount : 0;
|
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",
|
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());
|
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)
|
if(m_target->GetMaxPower(power) == 0)
|
||||||
break;
|
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
|
WorldPacket data(SMSG_PERIODICAURALOG, (21+16));// we guess size
|
||||||
data.append(m_target->GetPackGUID());
|
data.append(m_target->GetPackGUID());
|
||||||
data.appendPackGUID(GetCasterGUID());
|
data.appendPackGUID(GetCasterGUID());
|
||||||
|
|||||||
@@ -425,6 +425,12 @@ void Spell::SpellDamageSchoolDmg(uint32 effect_idx)
|
|||||||
damage+= int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * pct / 100);
|
damage+= int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * pct / 100);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
// Thunder Clap
|
||||||
|
else if(m_spellInfo->SpellFamilyFlags[0] & 0x80)
|
||||||
|
{
|
||||||
|
damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK) * 12 / 100);
|
||||||
|
break;
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SPELLFAMILY_WARLOCK:
|
case SPELLFAMILY_WARLOCK:
|
||||||
@@ -1858,7 +1864,27 @@ void Spell::EffectDummy(uint32 i)
|
|||||||
m_caster->CastSpell(m_caster,spell_id,true);
|
m_caster->CastSpell(m_caster,spell_id,true);
|
||||||
return;
|
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
|
//spells triggered by dummy effect should not miss
|
||||||
|
|||||||
@@ -370,7 +370,7 @@ SpellSpecific GetSpellSpecific(uint32 spellId)
|
|||||||
if (spellInfo->SpellFamilyFlags[0] & 0x11010002)
|
if (spellInfo->SpellFamilyFlags[0] & 0x11010002)
|
||||||
return SPELL_BLESSING;
|
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;
|
return SPELL_JUDGEMENT;
|
||||||
|
|
||||||
for (int i = 0; i < 3; i++)
|
for (int i = 0; i < 3; i++)
|
||||||
@@ -498,9 +498,6 @@ bool IsPositiveEffect(uint32 spellId, uint32 effIndex)
|
|||||||
case 23333: // BG spell
|
case 23333: // BG spell
|
||||||
case 23335: // BG spell
|
case 23335: // BG spell
|
||||||
case 34976: // 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;
|
return true;
|
||||||
case 28441: // not positive dummy spell
|
case 28441: // not positive dummy spell
|
||||||
case 37675: // Chaos Blast
|
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;
|
basepoints0 = GetAttackTime(BASE_ATTACK) * int32(ap*0.022f + 0.044f * holy) / 1000;
|
||||||
break;
|
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
|
// Sanctified Wrath
|
||||||
if (dummySpell->SpellIconID == 3029)
|
if (dummySpell->SpellIconID == 3029)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user