From 6c052039fb41e25b0573a746539a190e62e8af1b Mon Sep 17 00:00:00 2001 From: thenecromancer Date: Fri, 20 Nov 2009 10:08:25 +0300 Subject: [PATCH] [8841] Implement talent 65661 and ranks. SQL part prepeared by Laise. Signed-off-by: VladimirMangos --- sql/mangos.sql | 12 ++- .../8841_01_mangos_spell_proc_event.sql | 9 +++ sql/updates/8841_02_mangos_spell_chain.sql | 8 ++ sql/updates/Makefile.am | 4 + src/game/Unit.cpp | 79 +++++++++++++++++++ src/shared/revision_nr.h | 2 +- src/shared/revision_sql.h | 2 +- 7 files changed, 111 insertions(+), 5 deletions(-) create mode 100644 sql/updates/8841_01_mangos_spell_proc_event.sql create mode 100644 sql/updates/8841_02_mangos_spell_chain.sql diff --git a/sql/mangos.sql b/sql/mangos.sql index 3d1b1a674..35d5aa490 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_8840_01_mangos_spell_proc_event` bit(1) default NULL + `required_8841_02_mangos_spell_chain` bit(1) default NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED COMMENT='Used DB version notes'; -- @@ -17125,6 +17125,10 @@ INSERT INTO spell_chain VALUES (51423,49020,49020,2,0), (51424,51423,49020,3,0), (51425,51424,49020,4,0), +/*Threat of Thassarian*/ +(65661,0,65661,1,0), +(66191,65661,65661,2,0), +(66192,66191,65661,3,0), /*------------------ --(772)Unholy ------------------*/ @@ -17567,7 +17571,7 @@ UNLOCK TABLES; DROP TABLE IF EXISTS `spell_proc_event`; CREATE TABLE `spell_proc_event` ( - `entry` smallint(5) unsigned NOT NULL default '0', + `entry` mediumint(8) unsigned NOT NULL default '0', `SchoolMask` tinyint(4) NOT NULL default '0', `SpellFamilyName` smallint(5) unsigned NOT NULL default '0', `SpellFamilyMask0` int(10) unsigned NOT NULL default '0', @@ -18362,7 +18366,9 @@ INSERT INTO `spell_proc_event` VALUES (63245, 0x00000000, 5, 0x00000100, 0x00800000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0), (63320, 0x00000000, 5, 0x00040000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0), (63730, 0x00000000, 6, 0x00000800, 0x00000004, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000, 0), -(64928, 0x00000000, 11, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0); +(64928, 0x00000000, 11, 0x00000001, 0x00000000, 0x00000000, 0x00000000, 0x00000002, 0.000000, 0.000000, 0), +(65661, 0x00000000, 15, 0x00400010, 0x20020004, 0x00000000, 0x00000010, 0x00000000, 0.000000, 100.000000, 0); + /*!40000 ALTER TABLE `spell_proc_event` ENABLE KEYS */; UNLOCK TABLES; diff --git a/sql/updates/8841_01_mangos_spell_proc_event.sql b/sql/updates/8841_01_mangos_spell_proc_event.sql new file mode 100644 index 000000000..ccf9adfdb --- /dev/null +++ b/sql/updates/8841_01_mangos_spell_proc_event.sql @@ -0,0 +1,9 @@ +ALTER TABLE db_version CHANGE COLUMN required_8840_01_mangos_spell_proc_event required_8841_01_mangos_spell_proc_event bit; + +ALTER TABLE `spell_proc_event` + CHANGE `entry` `entry` mediumint(8) unsigned NOT NULL default '0'; + +DELETE FROM `spell_proc_event` WHERE `entry` IN (65661); + +INSERT INTO `spell_proc_event` VALUES + (65661, 0, 15, 0x00400010, 0x20020004, 0x00000000, 0x00000010, 0x00000000, 0.000000, 100.000000, 0); diff --git a/sql/updates/8841_02_mangos_spell_chain.sql b/sql/updates/8841_02_mangos_spell_chain.sql new file mode 100644 index 000000000..fa66000cf --- /dev/null +++ b/sql/updates/8841_02_mangos_spell_chain.sql @@ -0,0 +1,8 @@ +ALTER TABLE db_version CHANGE COLUMN required_8841_01_mangos_spell_proc_event required_8841_02_mangos_spell_chain bit; + +DELETE FROM spell_chain WHERE first_spell = 65661; + +INSERT INTO spell_chain VALUES +(65661,0,65661,1,0), +(66191,65661,65661,2,0), +(66192,66191,65661,3,0); diff --git a/sql/updates/Makefile.am b/sql/updates/Makefile.am index 2cd538c3e..86a783764 100644 --- a/sql/updates/Makefile.am +++ b/sql/updates/Makefile.am @@ -164,6 +164,8 @@ pkgdata_DATA = \ 8833_02_mangos_command.sql \ 8835_01_mangos_command.sql \ 8840_01_mangos_spell_proc_event.sql \ + 8841_01_mangos_spell_proc_event.sql \ + 8841_02_mangos_spell_chain.sql \ README ## Additional files to include when running 'make dist' @@ -308,4 +310,6 @@ EXTRA_DIST = \ 8833_02_mangos_command.sql \ 8835_01_mangos_command.sql \ 8840_01_mangos_spell_proc_event.sql \ + 8841_01_mangos_spell_proc_event.sql \ + 8841_02_mangos_spell_chain.sql \ README diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index b5eab8dfe..2608330e1 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -6404,6 +6404,85 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu triggered_spell_id = 51460; break; } + // Threat of Thassarian + if (dummySpell->SpellIconID == 2023) + { + // Must Dual Wield + if (!procSpell || !haveOffhandWeapon()) + return false; + // Chance as basepoints for dummy aura + if (!roll_chance_i(triggerAmount)) + return false; + + switch (procSpell->Id) + { + // Obliterate + case 49020: // Rank 1 + triggered_spell_id = 66198; break; + case 51423: // Rank 2 + triggered_spell_id = 66972; break; + case 51424: // Rank 3 + triggered_spell_id = 66973; break; + case 51425: // Rank 4 + triggered_spell_id = 66974; break; + // Frost Strike + case 49143: // Rank 1 + triggered_spell_id = 66196; break; + case 51416: // Rank 2 + triggered_spell_id = 66958; break; + case 51417: // Rank 3 + triggered_spell_id = 66959; break; + case 51418: // Rank 4 + triggered_spell_id = 66960; break; + case 51419: // Rank 5 + triggered_spell_id = 66961; break; + case 51420: // Rank 6 + triggered_spell_id = 66962; break; + // Plague Strike + case 45462: // Rank 1 + triggered_spell_id = 66216; break; + case 49917: // Rank 2 + triggered_spell_id = 66988; break; + case 49918: // Rank 3 + triggered_spell_id = 66989; break; + case 49919: // Rank 4 + triggered_spell_id = 66990; break; + case 49920: // Rank 5 + triggered_spell_id = 66991; break; + case 49921: // Rank 6 + triggered_spell_id = 66992; break; + // Death Strike + case 49998: // Rank 1 + triggered_spell_id = 66188; break; + case 49999: // Rank 2 + triggered_spell_id = 66950; break; + case 45463: // Rank 3 + triggered_spell_id = 66951; break; + case 49923: // Rank 4 + triggered_spell_id = 66952; break; + case 49924: // Rank 5 + triggered_spell_id = 66953; break; + // Rune Strike + case 56815: + triggered_spell_id = 66217; break; + // Blood Strike + case 45902: // Rank 1 + triggered_spell_id = 66215; break; + case 49926: // Rank 2 + triggered_spell_id = 66975; break; + case 49927: // Rank 3 + triggered_spell_id = 66976; break; + case 49928: // Rank 4 + triggered_spell_id = 66977; break; + case 49929: // Rank 5 + triggered_spell_id = 66978; break; + case 49930: // Rank 6 + triggered_spell_id = 66979; break; + default: + return false; + } + break; + } // Runic Power Back on Snare/Root if (dummySpell->Id == 61257) { diff --git a/src/shared/revision_nr.h b/src/shared/revision_nr.h index ae0e67afb..20f3d4f67 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 "8840" + #define REVISION_NR "8841" #endif // __REVISION_NR_H__ diff --git a/src/shared/revision_sql.h b/src/shared/revision_sql.h index 122f4e8a5..f6590dc21 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_8828_01_characters_instance_reset" - #define REVISION_DB_MANGOS "required_8840_01_mangos_spell_proc_event" + #define REVISION_DB_MANGOS "required_8841_02_mangos_spell_chain" #define REVISION_DB_REALMD "required_8728_01_realmd_account" #endif // __REVISION_SQL_H__