Scripts/Icecrown Citadel

* Removed spellmgr hacks for Boiling Blood
* Removed obsolete effect from Resistant Skin causing them to lose the aura when hit by shadow spell
This commit is contained in:
Shauren
2011-06-26 11:45:29 +02:00
parent 6667277a16
commit 2b1039d0e1
4 changed files with 52 additions and 9 deletions
+4
View File
@@ -2048,6 +2048,10 @@ INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
( 72440, 'spell_deathbringer_blood_nova'),
( 72378, 'spell_deathbringer_blood_nova_targeting'),
( 73058, 'spell_deathbringer_blood_nova_targeting'),
( 72385, 'spell_deathbringer_boiling_blood'),
( 72441, 'spell_deathbringer_boiling_blood'),
( 72442, 'spell_deathbringer_boiling_blood'),
( 72443, 'spell_deathbringer_boiling_blood'),
( 72155, 'spell_icc_harvest_blight_specimen'),
( 72162, 'spell_icc_harvest_blight_specimen'),
( 71123, 'spell_stinky_precious_decimate'),
@@ -0,0 +1,6 @@
DELETE FROM `spell_script_names` WHERE `ScriptName`='spell_deathbringer_boiling_blood';
INSERT INTO `spell_script_names` (`spell_id`,`ScriptName`) VALUES
(72385,'spell_deathbringer_boiling_blood'),
(72441,'spell_deathbringer_boiling_blood'),
(72442,'spell_deathbringer_boiling_blood'),
(72443,'spell_deathbringer_boiling_blood');
+3 -6
View File
@@ -4125,12 +4125,9 @@ void SpellMgr::LoadSpellCustomAttr()
spellInfo->EffectRadiusIndex[0] = 12; // 100yd
++count;
break;
case 72385: // Boiling Blood (Deathbringer Saurfang)
case 72441: // Boiling Blood (Deathbringer Saurfang)
case 72442: // Boiling Blood (Deathbringer Saurfang)
case 72443: // Boiling Blood (Deathbringer Saurfang)
spellInfo->EffectImplicitTargetA[0] = TARGET_UNIT_TARGET_ENEMY;
spellInfo->EffectImplicitTargetB[0] = 0;
case 72723: // Resistant Skin (Deathbringer Saurfang adds)
// this spell initially granted Shadow damage immunity, however it was removed but the data was left in client
spellInfo->Effect[2] = 0;
++count;
break;
case 70460: // Coldflame Jets (Traps after Saurfang)
@@ -450,7 +450,7 @@ class boss_deathbringer_saurfang : public CreatureScript
// select at range only
Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, -10.0f, true);
if (!target)
target = SelectTarget(SELECT_TARGET_RANDOM, 1, 10.0f, true); // noone? select melee
target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true); // noone? select melee
if (target)
DoCast(target, SPELL_BLOOD_NOVA_TRIGGER);
events.ScheduleEvent(EVENT_BLOOD_NOVA, urand(20000, 25000), 0, PHASE_COMBAT);
@@ -461,8 +461,7 @@ class boss_deathbringer_saurfang : public CreatureScript
events.ScheduleEvent(EVENT_RUNE_OF_BLOOD, urand(20000, 25000), 0, PHASE_COMBAT);
break;
case EVENT_BOILING_BLOOD:
if (Unit* target = SelectTarget(SELECT_TARGET_RANDOM, 1, 0.0f, true, -BOILING_BLOOD_HELPER))
DoCast(target, SPELL_BOILING_BLOOD);
DoCast(me, SPELL_BOILING_BLOOD);
events.ScheduleEvent(EVENT_BOILING_BLOOD, urand(15000, 20000), 0, PHASE_COMBAT);
break;
case EVENT_BERSERK:
@@ -1222,6 +1221,42 @@ class spell_deathbringer_blood_nova_targeting : public SpellScriptLoader
}
};
class spell_deathbringer_boiling_blood : public SpellScriptLoader
{
public:
spell_deathbringer_boiling_blood() : SpellScriptLoader("spell_deathbringer_boiling_blood") { }
class spell_deathbringer_boiling_blood_SpellScript : public SpellScript
{
PrepareSpellScript(spell_deathbringer_boiling_blood_SpellScript);
bool Load()
{
return GetCaster()->GetTypeId() == TYPEID_UNIT;
}
void FilterTargets(std::list<Unit*>& unitList)
{
unitList.remove(GetCaster()->getVictim());
std::list<Unit*>::iterator itr = unitList.begin();
std::advance(itr, urand(0, unitList.size() - 1));
Unit* target = *itr;
unitList.clear();
unitList.push_back(target);
}
void Register()
{
OnUnitTargetSelect += SpellUnitTargetFn(spell_deathbringer_boiling_blood_SpellScript::FilterTargets, EFFECT_0, TARGET_UNIT_AREA_ENEMY_SRC);
}
};
SpellScript* GetSpellScript() const
{
return new spell_deathbringer_boiling_blood_SpellScript();
}
};
class achievement_ive_gone_and_made_a_mess : public AchievementCriteriaScript
{
public:
@@ -1250,5 +1285,6 @@ void AddSC_boss_deathbringer_saurfang()
new spell_deathbringer_rune_of_blood();
new spell_deathbringer_blood_nova();
new spell_deathbringer_blood_nova_targeting();
new spell_deathbringer_boiling_blood();
new achievement_ive_gone_and_made_a_mess();
}