mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 07:48:02 +00:00
fix(DB/Creatures): Death Talon Wyrmguard should gain extra auras. (#10456)
* fix(DB/Creatures): Death Talon Wyrmguard should gain extra auras. Fixed #10425
This commit is contained in:
@@ -0,0 +1,18 @@
|
|||||||
|
INSERT INTO `version_db_world` (`sql_rev`) VALUES ('1643577681911100000');
|
||||||
|
|
||||||
|
UPDATE `creature_template_addon` SET `auras`='19818' WHERE `entry`=12460;
|
||||||
|
UPDATE `creature_template_addon` SET `auras`='' WHERE `entry`=12461;
|
||||||
|
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id` IN (22276,22282);
|
||||||
|
INSERT INTO `spell_script_names` VALUES
|
||||||
|
(22276,'spell_gen_elemental_shield'),
|
||||||
|
(22282,'spell_gen_brood_power');
|
||||||
|
|
||||||
|
DELETE FROM `smart_scripts` WHERE `entryorguid`=12460 AND `source_type`=0 AND `id` IN (1,2);
|
||||||
|
INSERT INTO `smart_scripts` VALUES
|
||||||
|
(12460,0,1,0,25,0,100,0,0,0,0,0,0,11,22282,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Death Talon Wyrmguard - On Reset - Cast Brood Power'),
|
||||||
|
(12460,0,2,0,0,0,100,1,4000,4000,0,0,0,11,22276,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Death Talon Wyrmguard - In Combat (4 sec) - Cast Elemental Shield');
|
||||||
|
|
||||||
|
DELETE FROM `smart_scripts` WHERE `entryorguid`=12461 AND `source_type`=0 AND `id`=2;
|
||||||
|
INSERT INTO `smart_scripts` VALUES
|
||||||
|
(12461,0,2,0,0,0,100,1,4000,4000,0,0,0,11,22276,0,0,0,0,0,1,0,0,0,0,0,0,0,0,'Death Talon Overseer - In Combat (4 sec) - Cast Elemental Shield');
|
||||||
@@ -22,6 +22,7 @@
|
|||||||
#include "Player.h"
|
#include "Player.h"
|
||||||
#include "ScriptMgr.h"
|
#include "ScriptMgr.h"
|
||||||
#include "ScriptedCreature.h"
|
#include "ScriptedCreature.h"
|
||||||
|
#include "SpellScript.h"
|
||||||
#include "blackwing_lair.h"
|
#include "blackwing_lair.h"
|
||||||
|
|
||||||
enum Emotes
|
enum Emotes
|
||||||
@@ -32,14 +33,6 @@ enum Emotes
|
|||||||
|
|
||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
// These spells are actually called elemental shield
|
|
||||||
// What they do is decrease all damage by 75% then they increase
|
|
||||||
// One school of damage by 1100%
|
|
||||||
SPELL_FIRE_VULNERABILITY = 22277,
|
|
||||||
SPELL_FROST_VULNERABILITY = 22278,
|
|
||||||
SPELL_SHADOW_VULNERABILITY = 22279,
|
|
||||||
SPELL_NATURE_VULNERABILITY = 22280,
|
|
||||||
SPELL_ARCANE_VULNERABILITY = 22281,
|
|
||||||
// Other spells
|
// Other spells
|
||||||
SPELL_INCINERATE = 23308, //Incinerate 23308, 23309
|
SPELL_INCINERATE = 23308, //Incinerate 23308, 23309
|
||||||
SPELL_TIMELAPSE = 23310, //Time lapse 23310, 23311(old threat mod that was removed in 2.01)
|
SPELL_TIMELAPSE = 23310, //Time lapse 23310, 23311(old threat mod that was removed in 2.01)
|
||||||
@@ -54,6 +47,8 @@ enum Spells
|
|||||||
SPELL_BROODAF_BRONZE = 23170, //Bronze Affliction 23170
|
SPELL_BROODAF_BRONZE = 23170, //Bronze Affliction 23170
|
||||||
SPELL_BROODAF_GREEN = 23169, //Brood Affliction Green 23169
|
SPELL_BROODAF_GREEN = 23169, //Brood Affliction Green 23169
|
||||||
SPELL_CHROMATIC_MUT_1 = 23174, //Spell cast on player if they get all 5 debuffs
|
SPELL_CHROMATIC_MUT_1 = 23174, //Spell cast on player if they get all 5 debuffs
|
||||||
|
|
||||||
|
SPELL_ELEMENTAL_SHIELD = 22276,
|
||||||
SPELL_FRENZY = 28371, //The frenzy spell may be wrong
|
SPELL_FRENZY = 28371, //The frenzy spell may be wrong
|
||||||
SPELL_ENRAGE = 28747
|
SPELL_ENRAGE = 28747
|
||||||
};
|
};
|
||||||
@@ -191,7 +186,6 @@ public:
|
|||||||
|
|
||||||
void Initialize()
|
void Initialize()
|
||||||
{
|
{
|
||||||
CurrentVurln_Spell = 0; // We use this to store our last vulnerabilty spell so we can remove it later
|
|
||||||
Enraged = false;
|
Enraged = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -237,14 +231,8 @@ public:
|
|||||||
{
|
{
|
||||||
case EVENT_SHIMMER:
|
case EVENT_SHIMMER:
|
||||||
{
|
{
|
||||||
// Remove old vulnerabilty spell
|
|
||||||
if (CurrentVurln_Spell)
|
|
||||||
me->RemoveAurasDueToSpell(CurrentVurln_Spell);
|
|
||||||
|
|
||||||
// Cast new random vulnerabilty on self
|
// Cast new random vulnerabilty on self
|
||||||
uint32 spell = RAND(SPELL_FIRE_VULNERABILITY, SPELL_FROST_VULNERABILITY, SPELL_SHADOW_VULNERABILITY, SPELL_NATURE_VULNERABILITY, SPELL_ARCANE_VULNERABILITY);
|
DoCast(me, SPELL_ELEMENTAL_SHIELD);
|
||||||
DoCast(me, spell);
|
|
||||||
CurrentVurln_Spell = spell;
|
|
||||||
Talk(EMOTE_SHIMMER);
|
Talk(EMOTE_SHIMMER);
|
||||||
events.ScheduleEvent(EVENT_SHIMMER, 45000);
|
events.ScheduleEvent(EVENT_SHIMMER, 45000);
|
||||||
break;
|
break;
|
||||||
@@ -302,7 +290,6 @@ public:
|
|||||||
private:
|
private:
|
||||||
uint32 Breath1_Spell;
|
uint32 Breath1_Spell;
|
||||||
uint32 Breath2_Spell;
|
uint32 Breath2_Spell;
|
||||||
uint32 CurrentVurln_Spell;
|
|
||||||
bool Enraged;
|
bool Enraged;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -356,8 +343,96 @@ class go_chromaggus_lever : public GameObjectScript
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum ElementalShieldSpells
|
||||||
|
{
|
||||||
|
SPELL_FIRE_ELEMENTAL_SHIELD = 22277,
|
||||||
|
SPELL_FROST_ELEMENTAL_SHIELD = 22278,
|
||||||
|
SPELL_SHADOW_ELEMENTAL_SHIELD = 22279,
|
||||||
|
SPELL_NATURE_ELEMENTAL_SHIELD = 22280,
|
||||||
|
SPELL_ARCANE_ELEMENTAL_SHIELD = 22281,
|
||||||
|
|
||||||
|
SPELL_RED_BROOD_POWER = 22283,
|
||||||
|
SPELL_BLUE_BROOD_POWER = 22285,
|
||||||
|
SPELL_BRONZE_BROOD_POWER = 22286,
|
||||||
|
SPELL_BLACK_BROOD_POWER = 22287,
|
||||||
|
SPELL_GREEN_BROOD_POWER = 22288
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
class spell_gen_elemental_shield : public SpellScript
|
||||||
|
{
|
||||||
|
PrepareSpellScript(spell_gen_elemental_shield);
|
||||||
|
|
||||||
|
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||||
|
{
|
||||||
|
return ValidateSpellInfo(
|
||||||
|
{
|
||||||
|
SPELL_FIRE_ELEMENTAL_SHIELD,
|
||||||
|
SPELL_FROST_ELEMENTAL_SHIELD,
|
||||||
|
SPELL_SHADOW_ELEMENTAL_SHIELD,
|
||||||
|
SPELL_NATURE_ELEMENTAL_SHIELD,
|
||||||
|
SPELL_ARCANE_ELEMENTAL_SHIELD
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||||
|
{
|
||||||
|
if (Unit* caster = GetCaster())
|
||||||
|
{
|
||||||
|
for (uint32 spell = SPELL_FIRE_ELEMENTAL_SHIELD; spell <= SPELL_ARCANE_ELEMENTAL_SHIELD; ++spell)
|
||||||
|
{
|
||||||
|
caster->RemoveAurasDueToSpell(spell);
|
||||||
|
}
|
||||||
|
|
||||||
|
caster->CastSpell(caster, SPELL_FIRE_ELEMENTAL_SHIELD + urand(0, 4), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
OnEffectHitTarget += SpellEffectFn(spell_gen_elemental_shield::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
class spell_gen_brood_power : public SpellScript
|
||||||
|
{
|
||||||
|
PrepareSpellScript(spell_gen_brood_power);
|
||||||
|
|
||||||
|
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||||
|
{
|
||||||
|
return ValidateSpellInfo(
|
||||||
|
{
|
||||||
|
SPELL_RED_BROOD_POWER,
|
||||||
|
SPELL_BLUE_BROOD_POWER,
|
||||||
|
SPELL_BRONZE_BROOD_POWER,
|
||||||
|
SPELL_BLACK_BROOD_POWER,
|
||||||
|
SPELL_GREEN_BROOD_POWER
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleScript(SpellEffIndex /*effIndex*/)
|
||||||
|
{
|
||||||
|
if (Unit* caster = GetCaster())
|
||||||
|
{
|
||||||
|
for (uint32 spell = SPELL_RED_BROOD_POWER; spell <= SPELL_GREEN_BROOD_POWER; ++spell)
|
||||||
|
{
|
||||||
|
caster->RemoveAurasDueToSpell(spell);
|
||||||
|
}
|
||||||
|
|
||||||
|
caster->CastSpell(caster, RAND(SPELL_RED_BROOD_POWER, SPELL_BLUE_BROOD_POWER, SPELL_BRONZE_BROOD_POWER, SPELL_BLACK_BROOD_POWER, SPELL_GREEN_BROOD_POWER), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
OnEffectHitTarget += SpellEffectFn(spell_gen_brood_power::HandleScript, EFFECT_0, SPELL_EFFECT_DUMMY);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
void AddSC_boss_chromaggus()
|
void AddSC_boss_chromaggus()
|
||||||
{
|
{
|
||||||
new boss_chromaggus();
|
new boss_chromaggus();
|
||||||
new go_chromaggus_lever();
|
new go_chromaggus_lever();
|
||||||
|
RegisterSpellScript(spell_gen_elemental_shield);
|
||||||
|
RegisterSpellScript(spell_gen_brood_power);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user