mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 22:37:03 +00:00
[9150] Fixed some paladin spell bonuses
* Use stack size in additional spell damage for 31803/53742. * Use in code calculation for additional spell 20187/20375 damage Thanks to MrLama for small cleanups and patch updating. Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
73a368d64a
commit
171a2e02d7
7 changed files with 37 additions and 20 deletions
|
|
@ -24,7 +24,7 @@ CREATE TABLE `db_version` (
|
|||
`version` varchar(120) default NULL,
|
||||
`creature_ai_version` varchar(120) default NULL,
|
||||
`cache_id` int(10) default '0',
|
||||
`required_9149_01_mangos_spell_bonus_data` bit(1) default NULL
|
||||
`required_9150_01_mangos_spell_bonus_data` bit(1) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes';
|
||||
|
||||
--
|
||||
|
|
@ -14119,7 +14119,6 @@ INSERT INTO `spell_bonus_data` VALUES
|
|||
(11366, 1.15, 0.05, 0, 'Mage - Pyroblast'),
|
||||
(2948, 0.4286, 0, 0, 'Mage - Scorch'),
|
||||
/* Paladin */
|
||||
(53742, 0, 0.0156, 0.03, 'Paladin - Blood Corruption'),
|
||||
(26573, 0, 0.04, 0.04, 'Paladin - Consecration'),
|
||||
(879, 0.15, 0, 0.15, 'Paladin - Exorcism'),
|
||||
(25997, 0, 0, 0, 'Paladin - Eye for an Eye'),
|
||||
|
|
@ -14128,13 +14127,11 @@ INSERT INTO `spell_bonus_data` VALUES
|
|||
(635, 1.66, 0, 0, 'Paladin - Holy Light'),
|
||||
(25912, 0.4286, 0, 0, 'Paladin - Holy Shock Triggered Hurt'),
|
||||
(20925, 0.09, 0, 0.056, 'Paladin - Holy Shield'),
|
||||
(31803, 0, 0.0156, 0.03, 'Paladin - Holy Vengeance'),
|
||||
(2812, 0.07, 0, 0.07, 'Paladin - Holy Wrath'),
|
||||
(54158, 0.25, 0, 0, 'Paladin - Judgement'),
|
||||
(20467, 0.25, 0, 0.16, 'Paladin - Judgement of Command'),
|
||||
(53733, 0, 0, 0, 'Paladin - Judgement of Corruption'),
|
||||
(20267, 0.1, 0, 0.1, 'Paladin - Judgement of Light Proc'),
|
||||
(20187, 0.32, 0, 0, 'Paladin - Judgement of Righteousness'),
|
||||
(31804, 0, 0, 0, 'Paladin - Judgement of Vengeance'),
|
||||
(20424, 0, 0, 0, 'Paladin - Seal of Command Proc'),
|
||||
(53739, 0, 0.00156, 0.003, 'Paladin - Seal of Corruption (full stack proc)'),
|
||||
|
|
|
|||
3
sql/updates/9150_01_mangos_spell_bonus_data.sql
Normal file
3
sql/updates/9150_01_mangos_spell_bonus_data.sql
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
ALTER TABLE db_version CHANGE COLUMN required_9149_01_mangos_spell_bonus_data required_9150_01_mangos_spell_bonus_data bit;
|
||||
|
||||
DELETE FROM spell_bonus_data WHERE entry IN (20187,31803,53742);
|
||||
|
|
@ -237,6 +237,7 @@ pkgdata_DATA = \
|
|||
9136_07_characters_characters.sql \
|
||||
9148_01_mangos_spell_bonus_data.sql \
|
||||
9149_01_mangos_spell_bonus_data.sql \
|
||||
9150_01_mangos_spell_bonus_data.sql \
|
||||
README
|
||||
|
||||
## Additional files to include when running 'make dist'
|
||||
|
|
@ -454,4 +455,5 @@ EXTRA_DIST = \
|
|||
9136_07_characters_characters.sql \
|
||||
9148_01_mangos_spell_bonus_data.sql \
|
||||
9149_01_mangos_spell_bonus_data.sql \
|
||||
9150_01_mangos_spell_bonus_data.sql \
|
||||
README
|
||||
|
|
|
|||
|
|
@ -4777,6 +4777,20 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real)
|
|||
}
|
||||
break;
|
||||
}
|
||||
case SPELLFAMILY_PALADIN:
|
||||
{
|
||||
// Holy Vengeance / Blood Corruption
|
||||
if (m_spellProto->SpellFamilyFlags & UI64LIT(0x0000080000000000) && m_spellProto->SpellVisual[0] == 7902)
|
||||
{
|
||||
// AP * 0.025 + SPH * 0.013 bonus per tick
|
||||
float ap = caster->GetTotalAttackPowerValue(BASE_ATTACK);
|
||||
int32 holy = caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellProto)) +
|
||||
caster->SpellBaseDamageBonusForVictim(GetSpellSchoolMask(m_spellProto), GetTarget());
|
||||
m_modifier.m_amount += int32(GetStackAmount()) * (int32(ap * 0.025f) + int32(holy * 13 / 1000));
|
||||
return;
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -638,8 +638,16 @@ void Spell::EffectSchoolDMG(uint32 effect_idx)
|
|||
}
|
||||
case SPELLFAMILY_PALADIN:
|
||||
{
|
||||
// Judgement of Righteousness - receive benefit from Spell Damage and Attack power
|
||||
if (m_spellInfo->Id == 20187)
|
||||
{
|
||||
float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
|
||||
int32 holy = m_caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellInfo)) +
|
||||
m_caster->SpellBaseDamageBonusForVictim(GetSpellSchoolMask(m_spellInfo), unitTarget);
|
||||
damage += int32(ap * 0.2f) + int32(holy * 32 / 100);
|
||||
}
|
||||
// Judgement of Vengeance/Corruption ${1+0.22*$SPH+0.14*$AP} + 10% for each application of Holy Vengeance/Blood Corruption on the target
|
||||
if ((m_spellInfo->SpellFamilyFlags & UI64LIT(0x800000000)) && m_spellInfo->SpellIconID==2292)
|
||||
else if ((m_spellInfo->SpellFamilyFlags & UI64LIT(0x800000000)) && m_spellInfo->SpellIconID==2292)
|
||||
{
|
||||
uint32 debuf_id;
|
||||
switch(m_spellInfo->Id)
|
||||
|
|
@ -1815,14 +1823,6 @@ void Spell::EffectDummy(uint32 i)
|
|||
|
||||
switch(m_spellInfo->Id)
|
||||
{
|
||||
// Judgement of Righteousness (0.2*$AP+0.32*$SPH) holy added in spellDamagBonus
|
||||
case 20187:
|
||||
{
|
||||
if (!unitTarget)
|
||||
return;
|
||||
m_damage+=int32(0.2f*m_caster->GetTotalAttackPowerValue(BASE_ATTACK));
|
||||
return;
|
||||
}
|
||||
case 31789: // Righteous Defense (step 1)
|
||||
{
|
||||
if (m_caster->GetTypeId() != TYPEID_PLAYER)
|
||||
|
|
@ -4628,12 +4628,13 @@ void Spell::EffectWeaponDmg(uint32 i)
|
|||
}
|
||||
case SPELLFAMILY_PALADIN:
|
||||
{
|
||||
// Seal of Command - receive benefit from Spell Damage and Healing
|
||||
if(m_spellInfo->SpellFamilyFlags & UI64LIT(0x00000002000000))
|
||||
// Judgement of Command - receive benefit from Spell Damage and Attack Power
|
||||
if(m_spellInfo->SpellFamilyFlags & UI64LIT(0x00020000000000))
|
||||
{
|
||||
spellBonusNeedWeaponDamagePercentMod = true;// apply weaponDamagePercentMod to spell_bonus (and then to all bonus, fixes and weapon already have applied)
|
||||
spell_bonus += int32(0.23f*m_caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellInfo)));
|
||||
spell_bonus += int32(0.29f*m_caster->SpellBaseDamageBonusForVictim(GetSpellSchoolMask(m_spellInfo), unitTarget));
|
||||
float ap = m_caster->GetTotalAttackPowerValue(BASE_ATTACK);
|
||||
int32 holy = m_caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellInfo)) +
|
||||
m_caster->SpellBaseDamageBonusForVictim(GetSpellSchoolMask(m_spellInfo), unitTarget);
|
||||
spell_bonus += int32(ap * 0.08f) + int32(holy * 13 / 100);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "9149"
|
||||
#define REVISION_NR "9150"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#ifndef __REVISION_SQL_H__
|
||||
#define __REVISION_SQL_H__
|
||||
#define REVISION_DB_CHARACTERS "required_9136_07_characters_characters"
|
||||
#define REVISION_DB_MANGOS "required_9149_01_mangos_spell_bonus_data"
|
||||
#define REVISION_DB_MANGOS "required_9150_01_mangos_spell_bonus_data"
|
||||
#define REVISION_DB_REALMD "required_9010_01_realmd_realmlist"
|
||||
#endif // __REVISION_SQL_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue