diff --git a/sql/mangos.sql b/sql/mangos.sql index 99d4a1104..ec7581c6f 100644 --- a/sql/mangos.sql +++ b/sql/mangos.sql @@ -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_10742_01_mangos_spell_bonus_data` bit(1) default NULL + `required_10743_02_mangos_spell_bonus_data` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -14368,10 +14368,13 @@ LOCK TABLES `spell_bonus_data` WRITE; INSERT INTO `spell_bonus_data` VALUES /* Death Knight */ (48721, 0, 0, 0.04, 0, 'Death Knight - Blood Boil'), +(55078, 0, 0, 0, 0.06325,'Death Knight - Blood Plague'), (50444, 0, 0, 0.105, 0, 'Death Knight - Corpse Explosion Triggered'), (52212, 0, 0, 0.0475,0, 'Death Knight - Death and Decay Triggered'), (47632, 0, 0, 0.15, 0, 'Death Knight - Death Coil Damage'), (47633, 0, 0, 0.15, 0, 'Death Knight - Death Coil Heal'), +(48743, 0, 0, 0, 0, 'Death Knight - Death Pact'), +(55095, 0, 0, 0, 0.06325,'Death Knight - Frost Fever'), (49184, 0, 0, 0.1, 0, 'Death Knight - Howling Blast'), (45477, 0, 0, 0.1, 0, 'Death Knight - Icy Touch'), (56903, 0, 0, 0, 0, 'Death Knight - Lichflame'), @@ -14379,16 +14382,19 @@ INSERT INTO `spell_bonus_data` VALUES (50401, 0, 0, 0, 0, 'Death Knight - Razor Frost'), (47476, 0, 0, 0.06, 0, 'Death Knight - Strangulate'), (50536, 0, 0, 0, 0.013, 'Death Knight - Unholy Blight Triggered'), -(48743, 0, 0, 0, 0, 'Death Knight - Death Pact'), /* Druid */ (5185, 1.6104, 0, 0, 0, 'Druid - Healing Touch'), (339, 0, 0.1, 0, 0, 'Druid - Entangling Roots'), (60089, 0, 0, 0.15, 0, 'Druid - Faerie Fire (Feral) Triggered'), (42231, 0.12898,0, 0, 0, 'Druid - Hurricane Triggered'), (5570, 0, 0.2, 0, 0, 'Druid - Insect Swarm'), +(33745, 0, 0, 0.01, 0.01, 'Druid - Lacerate'), (33763, 0, 0.09518, 0, 0, 'Druid - Lifebloom'), +(48628, 0, 0, 0, 0.15, 'Druid - Lock Jaw'), (8921, 0.1515, 0.13, 0, 0, 'Druid - Moonfire'), (50464, 0.6611, 0, 0, 0, 'Druid - Nourish'), +(9007, 0, 0, 0, 0.03, 'Druid - Pounce Bleed'), +(1822, 0, 0, 0, 0.06, 'Druid - Rake'), (8936, 0.539, 0.188, 0, 0, 'Druid - Regrowth'), (50288, 0.05, 0, 0, 0, 'Druid - Starfall'), (50294, 0.012, 0, 0, 0, 'Druid - Starfall AOE'), @@ -14398,6 +14404,15 @@ INSERT INTO `spell_bonus_data` VALUES (5176, 0.5714, 0, 0, 0, 'Druid - Wrath'), /* Generic */ (54757, 0, 0, 0, 0, 'Generic - Pyro Rocket'), +/* Hunter */ +(3044, 0, 0, 0.15, 0, 'Hunter - Arcane Shot'), +(3674, 0, 0, 0, 0.02, 'Hunter - Black Arrow'), +(19306, 0, 0, 0.2, 0, 'Hunter - Counterattack'), +(13812, 0, 0, 0.1, 0.1, 'Hunter - Explosive Trap'), +(13797, 0, 0, 0, 0.02, 'Hunter - Immolation Trap'), +(1495, 0, 0, 0.2, 0, 'Hunter - Mongoose Bite'), +(1978, 0, 0, 0, 0.04, 'Hunter - Serpent Sting'), +(42243, 0, 0, 0.0837,0, 'Hunter - Volley'), /* Mage */ (44425, 0.714286,0, 0, 0, 'Mage - Arcane Barrage'), (7268, 0.2857, 0, 0, 0, 'Mage - Arcane Missiles Triggered Spell'), @@ -14447,6 +14462,9 @@ INSERT INTO `spell_bonus_data` VALUES (585, 0.714, 0, 0, 0, 'Priest - Smite'), (34914, 0, 0.4, 0, 0, 'Priest - Vampiric Touch'), (64085, 1.2, 0, 0, 0, 'Priest - Vampiric Touch Dispel'), +/* Rogue */ +(2818, 0, 0, 0, 0.03, 'Rogue - Deadly Poison'), +(703, 0, 0, 0, 0.07, 'Rogue - Garrote'), /* Shaman */ (974, 0.4762, 0, 0, 0, 'Shaman - Earth Shield'), (379, 0, 0, 0, 0, 'Shaman - Earth Shield Triggered'), @@ -14525,6 +14543,16 @@ INSERT INTO spell_chain VALUES -- ------------------ -- (0) Not associated with skills -- ------------------ +/* Deadly Poison Triggered */ +(2818,0,2818,1,0), +(2819,2818,2818,2,0), +(11353,2819,2818,3,0), +(11354,11353,2818,4,0), +(25349,11354,2818,5,0), +(26968,25349,2818,6,0), +(27187,26968,2818,7,0), +(57969,27187,2818,8,0), +(57970,57969,2818,9,0), /* Flametongue Weapon Proc */ (8026,0,8026,1,0), (8028,8026,8026,2,0), @@ -14845,6 +14873,13 @@ INSERT INTO spell_chain VALUES (27025,14317,13813,4,0), (49066,27025,13813,5,0), (49067,49066,13813,6,0), +/* Explosive Trap Effect */ +(13812,0,13812,1,0), +(14314,13812,13812,2,0), +(14315,14314,13812,3,0), +(27026,14315,13812,4,0), +(49064,27026,13812,5,0), +(49065,49064,13812,6,0), /* Freezing Trap */ (1499,0,1499,1,0), (14310,1499,1499,2,0), @@ -14858,6 +14893,15 @@ INSERT INTO spell_chain VALUES (27023,14305,13795,6,0), (49055,27023,13795,7,0), (49056,49055,13795,8,0), +/* Immolation Trap Triggered */ +(13797,0,13797,1,0), +(14298,13797,13797,2,0), +(14299,14298,13797,3,0), +(14300,14299,13797,4,0), +(14301,14300,13797,5,0), +(27024,14301,13797,6,0), +(49053,27024,13797,7,0), +(49054,49053,13797,8,0), /* Mongoose Bite */ (1495,0,1495,1,0), (14269,1495,1495,2,0), @@ -15183,6 +15227,13 @@ INSERT INTO spell_chain VALUES (27022,14295,1510,4,0), (58431,27022,1510,5,0), (58434,58431,1510,6,0), +/* Volley Triggered */ +(42243,0,42243,1,0), +(42244,42243,42243,2,0), +(42245,42244,42243,3,0), +(42234,42245,42243,4,0), +(58432,42234,42243,5,0), +(58433,58432,42243,6,0), -- ------------------ -- (164) Blacksmithing -- ------------------ diff --git a/sql/updates/10743_01_mangos_spell_chain.sql b/sql/updates/10743_01_mangos_spell_chain.sql new file mode 100644 index 000000000..eb74b5144 --- /dev/null +++ b/sql/updates/10743_01_mangos_spell_chain.sql @@ -0,0 +1,37 @@ +ALTER TABLE db_version CHANGE COLUMN required_10742_01_mangos_spell_bonus_data required_10743_01_mangos_spell_chain bit; + +DELETE FROM `spell_chain` WHERE `first_spell` IN (2818,13797,13812,42243); +INSERT INTO `spell_chain` VALUES +/* Explosive Trap Effect */ +(13812,0,13812,1,0), +(14314,13812,13812,2,0), +(14315,14314,13812,3,0), +(27026,14315,13812,4,0), +(49064,27026,13812,5,0), +(49065,49064,13812,6,0), +/* Immolation Trap Triggered */ +(13797,0,13797,1,0), +(14298,13797,13797,2,0), +(14299,14298,13797,3,0), +(14300,14299,13797,4,0), +(14301,14300,13797,5,0), +(27024,14301,13797,6,0), +(49053,27024,13797,7,0), +(49054,49053,13797,8,0), +/* Volley Triggered */ +(42243,0,42243,1,0), +(42244,42243,42243,2,0), +(42245,42244,42243,3,0), +(42234,42245,42243,4,0), +(58432,42234,42243,5,0), +(58433,58432,42243,6,0), +/* Deadly Poison Triggered */ +(2818,0,2818,1,0), +(2819,2818,2818,2,0), +(11353,2819,2818,3,0), +(11354,11353,2818,4,0), +(25349,11354,2818,5,0), +(26968,25349,2818,6,0), +(27187,26968,2818,7,0), +(57969,27187,2818,8,0), +(57970,57969,2818,9,0); diff --git a/sql/updates/10743_02_mangos_spell_bonus_data.sql b/sql/updates/10743_02_mangos_spell_bonus_data.sql new file mode 100644 index 000000000..a69f79d70 --- /dev/null +++ b/sql/updates/10743_02_mangos_spell_bonus_data.sql @@ -0,0 +1,20 @@ +ALTER TABLE db_version CHANGE COLUMN required_10743_01_mangos_spell_chain required_10743_02_mangos_spell_bonus_data bit; + +DELETE FROM `spell_bonus_data` WHERE `entry` IN (2818,42243,13797,13812,1495,19306,3044,42245,3674,9007,1822,33745,48628,703,1978,55095,55078); +INSERT INTO `spell_bonus_data` VALUES +(2818,0,0,0,0.03,'Rogue - Deadly Poison'), +(3674,0,0,0,0.02,'Hunter - Black Arrow'), +(9007,0,0,0,0.03,'Druid - Pounce Bleed'), +(1822,0,0,0,0.06,'Druid - Rake'), +(33745,0,0,0.01,0.01,'Druid - Lacerate'), +(48628,0,0,0,0.15,'Druid - Lock Jaw'), +(703,0,0,0,0.07,'Rogue - Garrote'), +(1495,0,0,0.2,0,'Hunter - Mongoose Bite'), +(42243,0,0,0.0837,0,'Hunter - Volley'), +(1978,0,0,0,0.04,'Hunter - Serpent Sting'), +(3044,0,0,0.15,0,'Hunter - Arcane Shot'), +(13797,0,0,0,0.02,'Hunter - Immolation Trap'), +(13812,0,0,0.1,0.1,'Hunter - Explosive Trap'), +(19306,0,0,0.2,0,'Hunter - Counterattack'), +(55095,0,0,0,0.06325,'Death Knight - Frost Fever'), +(55078,0,0,0,0.06325,'Death Knight - Blood Plague'); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 243727102..dea3edc04 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -119,6 +119,8 @@ pkgdata_DATA = \ 10682_01_mangos_item_convert.sql \ 10704_01_mangos_gossip_menu_option.sql \ 10742_01_mangos_spell_bonus_data.sql \ + 10743_01_mangos_spell_chain.sql \ + 10743_02_mangos_spell_bonus_data.sql \ README ## Additional files to include when running 'make dist' @@ -218,4 +220,6 @@ EXTRA_DIST = \ 10682_01_mangos_item_convert.sql \ 10704_01_mangos_gossip_menu_option.sql \ 10742_01_mangos_spell_bonus_data.sql \ + 10743_01_mangos_spell_chain.sql \ + 10743_02_mangos_spell_bonus_data.sql \ README diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index 37983808f..57b791b11 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -4788,14 +4788,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real) switch (spellProto->SpellFamilyName) { - case SPELLFAMILY_GENERIC: - { - // Pounce Bleed - if (spellProto->SpellIconID == 147 && spellProto->SpellVisual[0] == 0) - // $AP*0.18/6 bonus per tick - m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 3 / 100); - break; - } case SPELLFAMILY_WARRIOR: { // Rend @@ -4816,14 +4808,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real) } case SPELLFAMILY_DRUID: { - // Rake - if (spellProto->SpellFamilyFlags & UI64LIT(0x0000000000001000) && spellProto->Effect[EFFECT_INDEX_2] == SPELL_EFFECT_ADD_COMBO_POINTS) - // $AP*0.18/3 bonus per tick - m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 6 / 100); - // Lacerate - if (spellProto->SpellFamilyFlags & UI64LIT(0x000000010000000000)) - // $AP*0.05/5 bonus per tick - m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) / 100); // Rip if (spellProto->SpellFamilyFlags & UI64LIT(0x000000000000800000)) { @@ -4845,10 +4829,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real) } m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * cp / 100); } - // Lock Jaw - if (spellProto->SpellFamilyFlags & UI64LIT(0x1000000000000000)) - // 0.15*$AP - m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 15 / 100); break; } case SPELLFAMILY_ROGUE: @@ -4868,26 +4848,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real) if (cp > 5) cp = 5; m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * AP_per_combo[cp]); } - // Garrote - if (spellProto->SpellFamilyFlags & UI64LIT(0x000000000000000100)) - // $AP*0.07 bonus per tick - m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 7 / 100); - // Deadly Poison - if (spellProto->SpellFamilyFlags & UI64LIT(0x0000000000010000)) - // 0.12*$AP / 4 * amount of stack - m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 3 * GetStackAmount() / 100); - break; - } - case SPELLFAMILY_HUNTER: - { - // Serpent Sting - if (spellProto->SpellFamilyFlags & UI64LIT(0x0000000000004000)) - // $RAP*0.2/5 bonus per tick - m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(RANGED_ATTACK) * 0.2 / 5); - // Immolation Trap - if ((spellProto->SpellFamilyFlags & UI64LIT(0x0000000000000004)) && spellProto->SpellIconID == 678) - // $RAP*0.1/5 bonus per tick - m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(RANGED_ATTACK) * 10 / 500); break; } case SPELLFAMILY_PALADIN: @@ -4904,15 +4864,6 @@ void Aura::HandlePeriodicDamage(bool apply, bool Real) } break; } - case SPELLFAMILY_DEATHKNIGHT: - { - //Frost Fever and Blood Plague AP scale - if (spellProto->SpellFamilyFlags & UI64LIT(0x400080000000000)) - { - m_modifier.m_amount += int32(caster->GetTotalAttackPowerValue(BASE_ATTACK) * 0.055f * 1.15f); - } - break; - } default: break; } diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index b71a0c680..a3b06d514 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -654,37 +654,12 @@ void Spell::EffectSchoolDMG(SpellEffectIndex effect_idx) if (m_caster->HasAura(57627)) // Charge 6 sec post-affect damage *= 2; } - // Mongoose Bite - else if ((m_spellInfo->SpellFamilyFlags & UI64LIT(0x000000002)) && m_spellInfo->SpellVisual[0]==342) - { - damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.2f); - } - // Counterattack - else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0008000000000000)) - { - damage += int32(m_caster->GetTotalAttackPowerValue(BASE_ATTACK)*0.2f); - } - // Arcane Shot - else if ((m_spellInfo->SpellFamilyFlags & UI64LIT(0x00000800)) && m_spellInfo->maxLevel > 0) - { - damage += int32(m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.15f); - } // Steady Shot else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x100000000)) { int32 base = irand((int32)m_caster->GetWeaponDamageRange(RANGED_ATTACK, MINDAMAGE),(int32)m_caster->GetWeaponDamageRange(RANGED_ATTACK, MAXDAMAGE)); damage += int32(float(base)/m_caster->GetAttackTime(RANGED_ATTACK)*2800 + m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.1f); } - // Explosive Trap Effect - else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x00000004)) - { - damage += int32(m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.1f); - } - // Volley - else if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x00002000)) - { - damage += int32(m_caster->GetTotalAttackPowerValue(RANGED_ATTACK)*0.0837f); - } break; } case SPELLFAMILY_PALADIN: diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index b5bb6fb1b..a54819db8 100644 --- a/src/shared/revision_nr.h +++ b/src/shared/revision_nr.h @@ -1,4 +1,4 @@ #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ - #define REVISION_NR "10742" + #define REVISION_NR "10743" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index 9bcd16e93..527573840 100644 --- a/src/shared/revision_sql.h +++ b/src/shared/revision_sql.h @@ -1,6 +1,6 @@ #ifndef __REVISION_SQL_H__ #define __REVISION_SQL_H__ #define REVISION_DB_CHARACTERS "required_10664_01_characters_arena_team_stats" - #define REVISION_DB_MANGOS "required_10742_01_mangos_spell_bonus_data" + #define REVISION_DB_MANGOS "required_10743_02_mangos_spell_bonus_data" #define REVISION_DB_REALMD "required_10008_01_realmd_realmd_db_version" #endif // __REVISION_SQL_H__