aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sql/updates/1160_world.sql141
-rw-r--r--sql/updates/1732_world.sql2
-rw-r--r--sql/updates/1755_world.sql18
-rw-r--r--sql/updates/2.4.3_updates/1138_world.sql2
-rw-r--r--sql/updates/2.4.3_updates/1142_world.sql2
-rw-r--r--sql/updates/2.4.3_updates/1159_world.sql4
-rw-r--r--sql/updates/2.4.3_updates/1164_characters.sql (renamed from sql/updates/1164_characters.sql)0
-rw-r--r--sql/updates/2.4.3_updates/CMakeLists.txt1
-rw-r--r--sql/updates/CMakeLists.txt2
-rw-r--r--src/game/SharedDefines.h2
-rw-r--r--src/game/Spell.cpp2
-rw-r--r--src/game/SpellAuras.cpp52
-rw-r--r--src/game/SpellMgr.cpp1
-rw-r--r--src/game/Unit.cpp83
-rw-r--r--src/shared/SystemConfig.h2
-rw-r--r--src/shared/SystemConfig.h.in2
16 files changed, 125 insertions, 191 deletions
diff --git a/sql/updates/1160_world.sql b/sql/updates/1160_world.sql
deleted file mode 100644
index 5c77aebdf41..00000000000
--- a/sql/updates/1160_world.sql
+++ /dev/null
@@ -1,141 +0,0 @@
-DROP TABLE IF EXISTS `access_requirement`;
-CREATE TABLE `access_requirement` (
- `id` bigint(20) unsigned NOT NULL COMMENT 'Identifier',
- `level_min` tinyint(3) unsigned NOT NULL default '0',
- `level_max` tinyint(3) unsigned NOT NULL default '0',
- `item` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
- `item2` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
- `heroic_key` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
- `heroic_key2` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
- `quest_done` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
- `quest_failed_text` TEXT NULL DEFAULT NULL,
- `heroic_quest_done` MEDIUMINT(8) UNSIGNED NOT NULL DEFAULT '0',
- `heroic_quest_failed_text` TEXT NULL DEFAULT NULL,
- `comment` TEXT NULL DEFAULT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=MyISAM DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='Access Requirements';
-
-
-ALTER TABLE `instance_template`
- DROP COLUMN `levelMin`,
- DROP COLUMN `levelMax`,
- ADD COLUMN `access_id` bigint(20) unsigned NOT NULL DEFAULT '0' AFTER `reset_delay`;
-
-ALTER TABLE `areatrigger_teleport`
- DROP COLUMN `required_level`,
- DROP COLUMN `required_item`,
- DROP COLUMN `required_item2`,
- DROP COLUMN `heroic_key`,
- DROP COLUMN `heroic_key2`,
- DROP COLUMN `heroic_required_quest_done`,
- DROP COLUMN `heroic_required_failed_quest_text`,
- DROP COLUMN `required_quest_done`,
- DROP COLUMN `required_failed_text`,
- ADD COLUMN `access_id` bigint(20) unsigned NOT NULL DEFAULT '0' AFTER `name`;
-
-INSERT INTO `access_requirement` VALUES
-('1','10','0','0','0','0','0','0',NULL,'0',NULL,'instance Shadowfang Keep (33)'),
-('2','15','0','0','0','0','0','0',NULL,'0',NULL,'instance The Stockade (34)'),
-('3','10','0','0','0','0','0','0',NULL,'0',NULL,'instance The Deadmines (36)'),
-('4','10','0','0','0','0','0','0',NULL,'0',NULL,'instance Wailing Caverns (43)'),
-('5','15','0','0','0','0','0','0',NULL,'0',NULL,'instance Razorfen Kraul (47)'),
-('6','10','0','0','0','0','0','0',NULL,'0',NULL,'instance Blackfathom Deeps (48)'),
-('7','30','0','0','0','0','0','0',NULL,'0',NULL,'instance Uldaman (70)'),
-('8','15','0','0','0','0','0','0',NULL,'0',NULL,'instance Gnomeregan (90)'),
-('9','35','0','0','0','0','0','0',NULL,'0',NULL,'instance Sunken Temple (109)'),
-('10','25','0','0','0','0','0','0',NULL,'0',NULL,'instance Razorfen Downs (129)'),
-('11','20','0','0','0','0','0','0',NULL,'0',NULL,'instance Scarlet Monastery (189)'),
-('12','35','0','0','0','0','0','0',NULL,'0',NULL,'instance Zul\'Farrak (209)'),
-('13','45','0','0','0','0','0','0',NULL,'0',NULL,'instance Blackrock Spire (229)'),
-('14','40','0','0','0','0','0','0',NULL,'0',NULL,'instance Blackrock Depths (230)'),
-('15','55','0','16309','0','0','0','0',NULL,'0',NULL,'instance Onyxia\'s Lair (249)'),
-('16','66','0','0','0','30635','0','10285','You can\'t enter Black Morass until you rescue Thrall from Durnholde Keep.','0',NULL,'instance The Black Morass (269)'),
-('17','45','0','13704','0','0','0','0',NULL,'0',NULL,'instance Scholomance (289)'),
-('18','50','0','0','0','0','0','0',NULL,'0',NULL,'instance Zul\'Gurub (309)'),
-('19','45','0','0','0','0','0','0',NULL,'0',NULL,'instance Stratholme (329)'),
-('20','30','0','0','0','0','0','0',NULL,'0',NULL,'instance Maraudon (349)'),
-('21','8','0','0','0','0','0','0',NULL,'0',NULL,'instance Ragefire Chasm (389)'),
-('22','50','0','0','0','0','0','7487',NULL,'0',NULL,'instance Molten Core (409)'),
-('23','45','0','0','0','0','0','0',NULL,'0',NULL,'instance Dire Maul (429)'),
-('24','60','0','0','0','0','0','7761',NULL,'0',NULL,'instance Blackwing Lair (469)'),
-('25','60','0','0','0','0','0','0',NULL,'0',NULL,'instance Ruins of Ahn\'Qiraj (509)'),
-('26','60','0','0','0','0','0','0',NULL,'0',NULL,'instance Temple of Ahn\'Qiraj (531)'),
-('27','68','0','0'/*'24490'*/,'0','0','0','0',NULL,'0',NULL,'instance Karazhan (532)'),
-('28','60','0','0','0','0','0','0',NULL,'0',NULL,'instance Naxxramas (533)'),
-('29','70','0','0','0','0','0','0',NULL,'0',NULL,'instance Hyjal Summit (534)'),
-('30','55','0','0'/*'28395'*/,'0','30637','30622','0',NULL,'0',NULL,'instance The Shattered Halls (540)'),
-('31','55','0','0','0','30637','30622','0',NULL,'0',NULL,'instance The Blood Furnace (542)'),
-('32','55','0','0','0','30637','30622','0',NULL,'0',NULL,'instance Hellfire Ramparts (543)'),
-('33','65','0','0','0','0','0','0',NULL,'0',NULL,'instance Magtheridon\'s Lair (544)'),
-('34','55','0','0','0','30623','0','0',NULL,'0',NULL,'instance The Steamvault (545)'),
-('35','55','0','0','0','30623','0','0',NULL,'0',NULL,'instance The Underbog (546)'),
-('36','55','0','0','0','30623','0','0',NULL,'0',NULL,'instance The Slave Pens (547)'),
-('37','70','0','0','0','0','0','0'/*'10901'*/,NULL,'0',NULL,'instance Serpentshrine Cavern (548)'),
-('38','70','0','0'/*'31704'*/,'0','0','0','0',NULL,'0',NULL,'instance The Eye (550)'),
-('39','68','0','0'/*'31084'*/,'0','30634','0','0',NULL,'0',NULL,'instance The Arcatraz (552)'),
-('40','68','0','0','0','30634','0','0',NULL,'0',NULL,'instance The Botanica (553)'),
-('41','68','0','0','0','30634','0','0',NULL,'0',NULL,'instance The Mechanar (554)'),
-('42','65','0','27991','0','30633','0','0',NULL,'0',NULL,'instance Shadow Labyrinth (555)'),
-('43','55','0','0','0','30633','0','0',NULL,'0',NULL,'instance Sethekk Halls (556)'),
-('44','55','0','0','0','30633','0','0',NULL,'0',NULL,'instance Mana-Tombs (557)'),
-('45','55','0','0','0','30633','0','0',NULL,'0',NULL,'instance Auchenai Crypts (558)'),
-('46','66','0','0','0','30635','0','0',NULL,'0',NULL,'instance Old Hillsbrad Foothills (560)'),
-('47','70','0','0','0','0','0','0',NULL,'0',NULL,'instance Black Temple (564)'),
-('48','65','0','0','0','0','0','0',NULL,'0',NULL,'instance Gruul\'s Lair (565)'),
-('49','70','0','0','0','0','0','0',NULL,'0',NULL,'instance Zul\'Aman (568)'),
-('50','70','0','0','0','0','0','0',NULL,'0',NULL,'instance Sunwell Plateau (580)'),
-('51','70','0','0','0','0','0','0',NULL,'11492','Heroic Difficulty requires completion of the "Hard to Kill" quest.','instance Magisters\' Terrace (585)'),
-('52','58','0','0','0','0','0','0',NULL,'0',NULL,'Dark Portal');
-
-UPDATE `instance_template` SET `access_id` = '1' WHERE `map` = '33';
-UPDATE `instance_template` SET `access_id` = '2' WHERE `map` = '34';
-UPDATE `instance_template` SET `access_id` = '3' WHERE `map` = '36';
-UPDATE `instance_template` SET `access_id` = '4' WHERE `map` = '43';
-UPDATE `instance_template` SET `access_id` = '5' WHERE `map` = '47';
-UPDATE `instance_template` SET `access_id` = '6' WHERE `map` = '48';
-UPDATE `instance_template` SET `access_id` = '7' WHERE `map` = '70';
-UPDATE `instance_template` SET `access_id` = '8' WHERE `map` = '90';
-UPDATE `instance_template` SET `access_id` = '9' WHERE `map` = '109';
-UPDATE `instance_template` SET `access_id` = '10' WHERE `map` = '129';
-UPDATE `instance_template` SET `access_id` = '11' WHERE `map` = '189';
-UPDATE `instance_template` SET `access_id` = '12' WHERE `map` = '209';
-UPDATE `instance_template` SET `access_id` = '13' WHERE `map` = '229';
-UPDATE `instance_template` SET `access_id` = '14' WHERE `map` = '230';
-UPDATE `instance_template` SET `access_id` = '15' WHERE `map` = '249';
-UPDATE `instance_template` SET `access_id` = '16' WHERE `map` = '269';
-UPDATE `instance_template` SET `access_id` = '17' WHERE `map` = '289';
-UPDATE `instance_template` SET `access_id` = '18' WHERE `map` = '309';
-UPDATE `instance_template` SET `access_id` = '19' WHERE `map` = '329';
-UPDATE `instance_template` SET `access_id` = '20' WHERE `map` = '349';
-UPDATE `instance_template` SET `access_id` = '21' WHERE `map` = '389';
-UPDATE `instance_template` SET `access_id` = '22' WHERE `map` = '409';
-UPDATE `instance_template` SET `access_id` = '23' WHERE `map` = '429';
-UPDATE `instance_template` SET `access_id` = '24' WHERE `map` = '469';
-UPDATE `instance_template` SET `access_id` = '25' WHERE `map` = '509';
-UPDATE `instance_template` SET `access_id` = '26' WHERE `map` = '531';
-UPDATE `instance_template` SET `access_id` = '27' WHERE `map` = '532';
-UPDATE `instance_template` SET `access_id` = '28' WHERE `map` = '533';
-UPDATE `instance_template` SET `access_id` = '29' WHERE `map` = '534';
-UPDATE `instance_template` SET `access_id` = '30' WHERE `map` = '540';
-UPDATE `instance_template` SET `access_id` = '31' WHERE `map` = '542';
-UPDATE `instance_template` SET `access_id` = '32' WHERE `map` = '543';
-UPDATE `instance_template` SET `access_id` = '33' WHERE `map` = '544';
-UPDATE `instance_template` SET `access_id` = '34' WHERE `map` = '545';
-UPDATE `instance_template` SET `access_id` = '35' WHERE `map` = '546';
-UPDATE `instance_template` SET `access_id` = '36' WHERE `map` = '547';
-UPDATE `instance_template` SET `access_id` = '37' WHERE `map` = '548';
-UPDATE `instance_template` SET `access_id` = '38' WHERE `map` = '550';
-UPDATE `instance_template` SET `access_id` = '39' WHERE `map` = '552';
-UPDATE `instance_template` SET `access_id` = '40' WHERE `map` = '553';
-UPDATE `instance_template` SET `access_id` = '41' WHERE `map` = '554';
-UPDATE `instance_template` SET `access_id` = '42' WHERE `map` = '555';
-UPDATE `instance_template` SET `access_id` = '43' WHERE `map` = '556';
-UPDATE `instance_template` SET `access_id` = '44' WHERE `map` = '557';
-UPDATE `instance_template` SET `access_id` = '45' WHERE `map` = '558';
-UPDATE `instance_template` SET `access_id` = '46' WHERE `map` = '560';
-UPDATE `instance_template` SET `access_id` = '47' WHERE `map` = '564';
-UPDATE `instance_template` SET `access_id` = '48' WHERE `map` = '565';
-UPDATE `instance_template` SET `access_id` = '49' WHERE `map` = '568';
-UPDATE `instance_template` SET `access_id` = '50' WHERE `map` = '580';
-UPDATE `instance_template` SET `access_id` = '51' WHERE `map` = '585';
-UPDATE `areatrigger_teleport` SET `access_id` = '52' WHERE `id` IN ('4352','4354');
diff --git a/sql/updates/1732_world.sql b/sql/updates/1732_world.sql
index c3ff759c29a..f5aae9117c9 100644
--- a/sql/updates/1732_world.sql
+++ b/sql/updates/1732_world.sql
@@ -4,4 +4,4 @@ INSERT INTO `spell_proc_event` VALUES (53181, 0x00, 9, 0x00000000, 268435456, 0x
-- Guard Dog
INSERT INTO `spell_proc_event` VALUES (53178, 0x00, 9, 0x00000000, 268435456, 0x00000000, 0x00014010, 0x00000000, 0.000000, 0.000000, 0);
-INSERT INTO `spell_proc_event` VALUES (53179, 0x00, 9, 0x00000000, 268435456, 0x00000000, 0x00014010, 0x00000000, 0.000000, 0.000000, 0);
+INSERT INTO `spell_proc_event` VALUES (53179, 0x00, 9, 0x00000000, 268435456, 0x00000000, 0x00014010, 0x00000000, 0.000000, 0.000000, 0); \ No newline at end of file
diff --git a/sql/updates/1755_world.sql b/sql/updates/1755_world.sql
new file mode 100644
index 00000000000..83ec323985e
--- /dev/null
+++ b/sql/updates/1755_world.sql
@@ -0,0 +1,18 @@
+DELETE FROM spell_proc_event WHERE entry IN (47535, 47536, 47537, 47538, 47539);
+-- Rapture
+INSERT INTO `spell_proc_event` VALUES (47535, 0x00, 6, 0x1800, 0x10000, 0x00000000, 0x00014010, 0x00000000, 0.000000, 0.000000, 0);
+INSERT INTO `spell_proc_event` VALUES (47536, 0x00, 6, 0x1800, 0x10000, 0x00000000, 0x00014010, 0x00000000, 0.000000, 0.000000, 0);
+INSERT INTO `spell_proc_event` VALUES (47537, 0x00, 6, 0x1800, 0x10000, 0x00000000, 0x00014010, 0x00000000, 0.000000, 0.000000, 0);
+INSERT INTO `spell_proc_event` VALUES (47538, 0x00, 6, 0x1800, 0x10000, 0x00000000, 0x00014010, 0x00000000, 0.000000, 0.000000, 0);
+INSERT INTO `spell_proc_event` VALUES (47539, 0x00, 6, 0x1800, 0x10000, 0x00000000, 0x00014010, 0x00000000, 0.000000, 0.000000, 0);
+-- Aspect of the viper
+INSERT INTO `spell_proc_event` VALUES (34074, 0x00, 0, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000003, 0.000000, 0.000000, 0);
+-- Overkill
+INSERT INTO `spell_proc_event` VALUES (58426, 0x00, 8, 0x400000, 0x00000000, 0x00000000, 0x00014000, 0x00000000, 0.000000, 0.000000, 0);
+-- Master of subtlety
+INSERT INTO `spell_proc_event` VALUES (31221, 0x00, 8, 0x400000, 0x00000000, 0x00000000, 0x00014000, 0x00000000, 0.000000, 0.000000, 0);
+INSERT INTO `spell_proc_event` VALUES (31222, 0x00, 8, 0x400000, 0x00000000, 0x00000000, 0x00014000, 0x00000000, 0.000000, 0.000000, 0);
+INSERT INTO `spell_proc_event` VALUES (31223, 0x00, 8, 0x400000, 0x00000000, 0x00000000, 0x00014000, 0x00000000, 0.000000, 0.000000, 0);
+
+DELETE FROM `spell_bonus_data` WHERE entry=2944;
+INSERT INTO `spell_bonus_data` VALUES ('2944', '0', '0.1849', '0', 'Priest - Devouring Plague'); \ No newline at end of file
diff --git a/sql/updates/2.4.3_updates/1138_world.sql b/sql/updates/2.4.3_updates/1138_world.sql
index 610f97139a5..8ed14a211e2 100644
--- a/sql/updates/2.4.3_updates/1138_world.sql
+++ b/sql/updates/2.4.3_updates/1138_world.sql
@@ -1 +1 @@
-INSERT INTO `spell_proc_event` VALUES (17619, 0x00, 13, 0x0000000000000000, 0x00008000, 0x00000000, 0.000000, 0.000000, 0);
+INSERT INTO `spell_proc_event` VALUES (17619, 0x00, 13, 0x0000000000000000, 0x00008000, 0x00000000, 0.000000, 0.000000, 0); \ No newline at end of file
diff --git a/sql/updates/2.4.3_updates/1142_world.sql b/sql/updates/2.4.3_updates/1142_world.sql
index 2109d0f8ab7..3301200f2db 100644
--- a/sql/updates/2.4.3_updates/1142_world.sql
+++ b/sql/updates/2.4.3_updates/1142_world.sql
@@ -5,4 +5,4 @@ INSERT INTO `spell_affect` VALUES (16999, 2, 0x1000001000);
DELETE from `spell_affect` where entry=16998 and effectId=0;
DELETE from `spell_affect` where entry=16998 and effectId=2;
INSERT INTO `spell_affect` VALUES (16998, 0, 0x1000001000);
-INSERT INTO `spell_affect` VALUES (16998, 2, 0x1000001000);
+INSERT INTO `spell_affect` VALUES (16998, 2, 0x1000001000); \ No newline at end of file
diff --git a/sql/updates/2.4.3_updates/1159_world.sql b/sql/updates/2.4.3_updates/1159_world.sql
index b237e0422c4..0e9d98e9a9c 100644
--- a/sql/updates/2.4.3_updates/1159_world.sql
+++ b/sql/updates/2.4.3_updates/1159_world.sql
@@ -5,6 +5,4 @@ INSERT INTO `spell_affect` VALUES (16998, 1, 0x40000001000);
INSERT INTO `spell_affect` VALUES (16998, 2, 0x40000001000);
INSERT INTO `spell_affect` VALUES (16999, 0, 0x40000001000);
INSERT INTO `spell_affect` VALUES (16999, 1, 0x40000001000);
-INSERT INTO `spell_affect` VALUES (16999, 2, 0x40000001000);
-
-
+INSERT INTO `spell_affect` VALUES (16999, 2, 0x40000001000); \ No newline at end of file
diff --git a/sql/updates/1164_characters.sql b/sql/updates/2.4.3_updates/1164_characters.sql
index bc552a4e617..bc552a4e617 100644
--- a/sql/updates/1164_characters.sql
+++ b/sql/updates/2.4.3_updates/1164_characters.sql
diff --git a/sql/updates/2.4.3_updates/CMakeLists.txt b/sql/updates/2.4.3_updates/CMakeLists.txt
index 6d9b6a025cc..fb25060338f 100644
--- a/sql/updates/2.4.3_updates/CMakeLists.txt
+++ b/sql/updates/2.4.3_updates/CMakeLists.txt
@@ -172,4 +172,5 @@ INSTALL(FILES
1142_world.sql
1159_world.sql
1160_world.sql
+1164_characters.sql
DESTINATION share/trinity/sql/updates/2.4.3_updates) \ No newline at end of file
diff --git a/sql/updates/CMakeLists.txt b/sql/updates/CMakeLists.txt
index 906920d4dab..2aef523c7bc 100644
--- a/sql/updates/CMakeLists.txt
+++ b/sql/updates/CMakeLists.txt
@@ -71,5 +71,5 @@ INSTALL(FILES
1729_world.sql
1730_world.sql
1732_world.sql
-1164_characters.sql
+1755_world.sql
DESTINATION share/trinity/sql/updates) \ No newline at end of file
diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h
index 333697926e1..3d76e2aec79 100644
--- a/src/game/SharedDefines.h
+++ b/src/game/SharedDefines.h
@@ -893,7 +893,7 @@ enum Targets
TARGET_UNIT_CLASS_TARGET = 61,
TARGET_TEST = 62, // for a test spell
TARGET_DUELVSPLAYER_COORDINATES = 63,
- TARGET_DEST_TARGET_ENEMY_UNKNOWN = 63,
+ TARGET_DEST_TARGET_FRIEND = 63,
TARGET_DEST_TARGET_FRONT = 64,
TARGET_DEST_TARGET_BACK = 65, // uses in teleport behind spells
TARGET_DEST_TARGET_RIGHT = 66,
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 625019ba70c..54b2e582531 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -1897,7 +1897,7 @@ void Spell::SetTargetMap(uint32 i,uint32 cur,std::list<Unit*> &TagUnitMap)
m_targets.setDestination(target, true);
break;
}
- else if(cur == TARGET_DEST_TARGET_ENEMY_UNKNOWN) // no ground?
+ else if(cur == TARGET_DEST_TARGET_FRIEND) // no ground?
{
m_targets.setDestination(target, false);
break;
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 6889870656b..df6ff87a6a5 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -3320,24 +3320,14 @@ void Aura::HandleModStealth(bool apply, bool Real)
}
}
- if (Real)
+ if (Real && !apply)
{
// Master of Subtlety
- Unit::AuraList const& mDummyAuras = m_target->GetAurasByType(SPELL_AURA_DUMMY);
- for(Unit::AuraList::const_iterator i = mDummyAuras.begin();i != mDummyAuras.end(); ++i)
- {
- if ((*i)->GetSpellProto()->SpellIconID == 2114)
- {
- if (apply)
- {
- int32 bp = (*i)->GetModifier()->m_amount;
- m_target->CastCustomSpell(m_target,31665,&bp,NULL,NULL,true);
- }
- else
- m_target->CastSpell(m_target,31666,true);
- break;
- }
- }
+ if (m_target->HasAura(31665))
+ m_target->CastSpell(m_target,31666,true);
+ // Overkill
+ if (m_target->HasAura(58427))
+ m_target->CastSpell(m_target,58428,true);
}
}
@@ -3942,16 +3932,6 @@ void Aura::HandleAuraPeriodicDummy(bool apply, bool Real)
SpellEntry const*spell = GetSpellProto();
switch( spell->SpellFamilyName)
{
- case SPELLFAMILY_ROGUE:
- {
- // Master of Subtlety
- if (spell->Id==31666 && !apply)
- {
- m_target->RemoveAurasDueToSpell(31665);
- break;
- }
- break;
- }
case SPELLFAMILY_HUNTER:
{
// Explosive Shot
@@ -6235,17 +6215,21 @@ void Aura::PeriodicDummyTick()
}
case SPELLFAMILY_ROGUE:
{
-// switch (spell->Id)
-// {
- // Master of Subtlety
-// case 31666: break;
+ switch (spell->Id)
+ {
// Killing Spree
// case 51690: break;
// Overkill
-// case 58428: break;
-// default:
-// break;
-// }
+ case 58428:
+ m_target->RemoveAurasDueToSpell(58427);
+ break;
+ // Master of Subtlety
+ case 31666:
+ m_target->RemoveAurasDueToSpell(31665);
+ break;
+ default:
+ break;
+ }
break;
}
case SPELLFAMILY_HUNTER:
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index a765415e71c..c6365294c5f 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -129,6 +129,7 @@ SpellMgr::SpellMgr()
SpellTargetType[i] = TARGET_TYPE_AREA_DEST;
break;
case TARGET_DEST_TARGET_ENEMY:
+ case TARGET_DEST_TARGET_FRIEND:
case TARGET_DEST_TARGET_FRONT:
case TARGET_DEST_TARGET_BACK:
case TARGET_DEST_TARGET_RIGHT:
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 2d216b8cfb9..30c611e4ab4 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -1893,6 +1893,9 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe
// Reflect damage spells (not cast any damage spell in aura lookup)
uint32 reflectSpell = 0;
int32 reflectDamage = 0;
+ uint32 healSpell = 0;
+ int32 healAmount = 0;
+ Unit * healCaster = NULL;
// Need remove expired auras after
bool existExpired = false;
// absorb without mana cost
@@ -2000,7 +2003,7 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe
case SPELLFAMILY_PRIEST:
{
// Reflective Shield
- if (spellProto->SpellFamilyFlags == 0x1)
+ if (spellProto->SpellFamilyFlags.IsEqual(0x1))
{
if (pVictim == this)
break;
@@ -2026,7 +2029,36 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe
} break;
}
}
- break;
+ }
+ // no break here, rapture can proc with reflective shield
+ // Rapture
+ if (spellProto->SpellFamilyFlags.HasFlag(0x1, 0x1000000))
+ {
+ if (pVictim == this)
+ break;
+ healCaster = (*i)->GetCaster();
+ if (!healCaster)
+ break;
+
+ AuraList const& lOverRideCS = pVictim->GetAurasByType(SPELL_AURA_OVERRIDE_CLASS_SCRIPTS);
+ for(AuraList::const_iterator k = lOverRideCS.begin(); k != lOverRideCS.end(); ++k)
+ {
+ switch((*k)->GetModifier()->m_miscvalue)
+ {
+ case 7556: // Rank 1
+ case 7555: // Rank 2
+ case 7554: // Rank 3
+ case 7553: // Rank 4
+ case 7552: // Rank 5
+ {
+ healSpell = 47755;
+ healAmount += ((pVictim->getLevel() * (-0.2) + 18) / 1000000) * currentAbsorb * pVictim->GetMaxPower(POWER_MANA);
+ // limitation based on aura amount
+ if(healAmount > pVictim->GetMaxPower(POWER_MANA) * (*k)->GetModifier()->m_amount / 1000)
+ healAmount = pVictim->GetMaxPower(POWER_MANA) * (*k)->GetModifier()->m_amount / 1000;
+ } break;
+ }
+ }
}
break;
}
@@ -2100,6 +2132,8 @@ void Unit::CalcAbsorbResist(Unit *pVictim,SpellSchoolMask schoolMask, DamageEffe
if (mod->m_amount<=0)
existExpired = true;
}
+ if(healSpell && healCaster)
+ healCaster->CastCustomSpell(healCaster, healSpell, &healAmount, NULL, NULL, true);
// Remove all expired absorb auras
if (existExpired)
@@ -4959,6 +4993,14 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
triggered_spell_id = 34650;
break;
}
+ // Overkill
+ case 58426:
+ {
+ basepoints0 = 1000;
+ triggered_spell_id = 31665;
+ target=this;
+ break;
+ }
// Mark of Malice
case 33493:
{
@@ -5761,14 +5803,21 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
}
return false;
}
+ else if( dummySpell->SpellIconID == 2285 )
+ {
+ basepoints0 = 1000;
+ triggered_spell_id = 58427;
+ target=this;
+ break;
+ }
// Deadly Brew
- if( dummySpell->SpellIconID == 2963 )
+ else if( dummySpell->SpellIconID == 2963 )
{
triggered_spell_id = 25809;
break;
}
// Quick Recovery
- if( dummySpell->SpellIconID == 2116 )
+ else if( dummySpell->SpellIconID == 2116 )
{
if(!procSpell)
return false;
@@ -5786,6 +5835,16 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
}
case SPELLFAMILY_HUNTER:
{
+ // Aspect of the Viper
+ if ( dummySpell->SpellFamilyFlags[1] & 0x40000 )
+ {
+ uint32 maxmana = GetMaxPower(POWER_MANA);
+ basepoints0 = maxmana* GetAttackTime(RANGED_ATTACK)/1000.0f/100.0f;
+
+ target = this;
+ triggered_spell_id = 34075;
+ break;
+ }
// Thrill of the Hunt
if ( dummySpell->SpellIconID == 2236 )
{
@@ -5851,7 +5910,7 @@ bool Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura* triggeredByAu
target = this;
triggered_spell_id = 57669;
// replenishment
- CastCustomSpell(this,31930,&basepoints0,0,0,true,0,triggeredByAura);
+ CastSpell(this,31930,true);
break;
}
// Sanctified Wrath
@@ -7331,6 +7390,19 @@ bool Unit::HandleOverrideClassScriptAuraProc(Unit *pVictim, uint32 damage, Aura
CastCustomSpell(this, 47762, &basepoints0, 0, 0, true, 0, triggeredByAura);
return true;
}
+ // Rapture
+ case 7556: // Rank 1
+ case 7555: // Rank 2
+ case 7554: // Rank 3
+ case 7553: // Rank 4
+ case 7552: // Rank 5
+ {
+ int32 basepoints0 = ((getLevel() * (-0.2) + 18) / 1000000) * damage * GetMaxPower(POWER_MANA);
+ if(basepoints0 > (GetMaxPower(POWER_MANA) / 100) * (triggeredByAura->GetModifier()->m_amount / 10))
+ basepoints0 = (GetMaxPower(POWER_MANA) / 100) * (triggeredByAura->GetModifier()->m_amount / 10);
+ CastCustomSpell(this, 47755, &basepoints0, 0, 0, true, 0, triggeredByAura);
+ return true;
+ }
}
// not processed
@@ -11520,6 +11592,7 @@ void Unit::ProcDamageAndSpellFor( bool isVictim, Unit * pTarget, uint32 procFlag
break;
}
case SPELL_AURA_MANA_SHIELD:
+ case SPELL_AURA_OBS_MOD_ENERGY:
case SPELL_AURA_DUMMY:
{
sLog.outDebug("ProcDamageAndSpell: casting spell id %u (triggered by %s dummy aura of spell %u)", spellInfo->Id,(isVictim?"a victim's":"an attacker's"), triggeredByAura->GetId());
diff --git a/src/shared/SystemConfig.h b/src/shared/SystemConfig.h
index 679eee407e6..9d154b863d0 100644
--- a/src/shared/SystemConfig.h
+++ b/src/shared/SystemConfig.h
@@ -28,7 +28,7 @@
#include "revision.h"
-#define _PACKAGENAME "TC&MaNGOS "
+#define _PACKAGENAME "TrinityCore2 "
#define _CODENAME "YUME"
#if TRINITY_ENDIAN == TRINITY_BIGENDIAN
diff --git a/src/shared/SystemConfig.h.in b/src/shared/SystemConfig.h.in
index 6eff490b144..85bbd8e19f0 100644
--- a/src/shared/SystemConfig.h.in
+++ b/src/shared/SystemConfig.h.in
@@ -23,7 +23,7 @@
#define TRINITY_SYSTEMCONFIG_H
#ifndef _PACKAGENAME
-#define _PACKAGENAME "TC&Mangos "
+#define _PACKAGENAME "TrinityCore2 "
#endif
#include "Platform/Define.h"