mirror of
https://github.com/liyunfan1223/azerothcore-wotlk.git
synced 2026-08-08 07:48:02 +00:00
fix(Scripts/SunwellPlateau): Sathrovarr's Curse of Boundless Agony (#21730)
This commit is contained in:
@@ -0,0 +1,9 @@
|
|||||||
|
--
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id` = 45034;
|
||||||
|
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES(45034, 'spell_kalecgos_curse_of_boundless_agony_aura');
|
||||||
|
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 13) AND (`SourceGroup` = 1) AND (`SourceEntry` IN (45032, 45034)) AND (`SourceId` = 0) AND (`ConditionValue1` IN (45032, 45034));
|
||||||
|
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||||
|
(13, 1, 45032, 0, 0, 1, 0, 45032, 0, 0, 1, 0, 0, '', 'Player does not have Curse of Boundless Agony'),
|
||||||
|
(13, 1, 45032, 0, 0, 1, 0, 45034, 0, 0, 1, 0, 0, '', 'Player does not have Curse of Boundless Agony'),
|
||||||
|
(13, 1, 45034, 0, 0, 1, 0, 45032, 0, 0, 1, 0, 0, '', 'Player does not have Curse of Boundless Agony'),
|
||||||
|
(13, 1, 45034, 0, 0, 1, 0, 45034, 0, 0, 1, 0, 0, '', 'Player does not have Curse of Boundless Agony');
|
||||||
@@ -47,32 +47,36 @@ enum Yells
|
|||||||
|
|
||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
SPELL_SPECTRAL_EXHAUSTION = 44867,
|
SPELL_SPECTRAL_EXHAUSTION = 44867,
|
||||||
SPELL_SPECTRAL_BLAST = 44869,
|
SPELL_SPECTRAL_BLAST = 44869,
|
||||||
SPELL_SPECTRAL_BLAST_PORTAL = 44866,
|
SPELL_SPECTRAL_BLAST_PORTAL = 44866,
|
||||||
SPELL_SPECTRAL_BLAST_AA = 46648,
|
SPELL_SPECTRAL_BLAST_AA = 46648,
|
||||||
SPELL_TELEPORT_SPECTRAL = 46019,
|
SPELL_TELEPORT_SPECTRAL = 46019,
|
||||||
|
|
||||||
SPELL_TELEPORT_NORMAL_REALM = 46020,
|
SPELL_TELEPORT_NORMAL_REALM = 46020,
|
||||||
SPELL_SPECTRAL_REALM = 46021,
|
SPELL_SPECTRAL_REALM = 46021,
|
||||||
SPELL_SPECTRAL_INVISIBILITY = 44801,
|
SPELL_SPECTRAL_INVISIBILITY = 44801,
|
||||||
SPELL_DEMONIC_VISUAL = 44800,
|
SPELL_DEMONIC_VISUAL = 44800,
|
||||||
|
|
||||||
SPELL_ARCANE_BUFFET = 45018,
|
SPELL_ARCANE_BUFFET = 45018,
|
||||||
SPELL_FROST_BREATH = 44799,
|
SPELL_FROST_BREATH = 44799,
|
||||||
SPELL_TAIL_LASH = 45122,
|
SPELL_TAIL_LASH = 45122,
|
||||||
|
|
||||||
SPELL_BANISH = 44836,
|
SPELL_BANISH = 44836,
|
||||||
SPELL_TRANSFORM_KALEC = 44670,
|
SPELL_TRANSFORM_KALEC = 44670,
|
||||||
SPELL_CRAZED_RAGE = 44807,
|
SPELL_CRAZED_RAGE = 44807,
|
||||||
|
|
||||||
SPELL_CORRUPTION_STRIKE = 45029,
|
SPELL_CORRUPTION_STRIKE = 45029,
|
||||||
SPELL_CURSE_OF_BOUNDLESS_AGONY = 45032,
|
SPELL_CURSE_OF_BOUNDLESS_AGONY = 45032,
|
||||||
SPELL_CURSE_OF_BOUNDLESS_AGONY_PLR = 45034,
|
SPELL_CURSE_OF_BOUNDLESS_AGONY_PLR = 45034,
|
||||||
SPELL_SHADOW_BOLT = 45031,
|
SPELL_CURSE_OF_BOUNDLESS_AGONY_REMOVE = 45050,
|
||||||
|
SPELL_CURSE_OF_BOUNDLESS_AGONY_DUMMY_1 = 45083,
|
||||||
|
SPELL_CURSE_OF_BOUNDLESS_AGONY_DUMMY_2 = 45085,
|
||||||
|
SPELL_CURSE_OF_BOUNDLESS_AGONY_DUMMY_3 = 45084,
|
||||||
|
SPELL_SHADOW_BOLT = 45031,
|
||||||
|
|
||||||
SPELL_HEROIC_STRIKE = 45026,
|
SPELL_HEROIC_STRIKE = 45026,
|
||||||
SPELL_REVITALIZE = 45027
|
SPELL_REVITALIZE = 45027
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SWPActions
|
enum SWPActions
|
||||||
@@ -388,6 +392,7 @@ struct boss_sathrovarr : public ScriptedAI
|
|||||||
|
|
||||||
void JustDied(Unit* /*killer*/) override
|
void JustDied(Unit* /*killer*/) override
|
||||||
{
|
{
|
||||||
|
DoCastSelf(SPELL_CURSE_OF_BOUNDLESS_AGONY_REMOVE, true);
|
||||||
Talk(SAY_SATH_DEATH);
|
Talk(SAY_SATH_DEATH);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -464,10 +469,10 @@ class spell_kalecgos_curse_of_boundless_agony_aura : public AuraScript
|
|||||||
|
|
||||||
bool Validate(SpellInfo const* /*spellInfo*/) override
|
bool Validate(SpellInfo const* /*spellInfo*/) override
|
||||||
{
|
{
|
||||||
return ValidateSpellInfo({ SPELL_CURSE_OF_BOUNDLESS_AGONY_PLR });
|
return ValidateSpellInfo({ SPELL_CURSE_OF_BOUNDLESS_AGONY_PLR, SPELL_CURSE_OF_BOUNDLESS_AGONY_DUMMY_1, SPELL_CURSE_OF_BOUNDLESS_AGONY_DUMMY_2, SPELL_CURSE_OF_BOUNDLESS_AGONY_DUMMY_3 });
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/)
|
||||||
{
|
{
|
||||||
if (InstanceScript* instance = GetUnitOwner()->GetInstanceScript())
|
if (InstanceScript* instance = GetUnitOwner()->GetInstanceScript())
|
||||||
if (instance->IsEncounterInProgress())
|
if (instance->IsEncounterInProgress())
|
||||||
@@ -476,8 +481,18 @@ class spell_kalecgos_curse_of_boundless_agony_aura : public AuraScript
|
|||||||
|
|
||||||
void OnPeriodic(AuraEffect const* aurEff)
|
void OnPeriodic(AuraEffect const* aurEff)
|
||||||
{
|
{
|
||||||
if (aurEff->GetTickNumber() > 1 && aurEff->GetTickNumber() % 5 == 1)
|
uint32 tickNumber = aurEff->GetTickNumber();
|
||||||
|
if (tickNumber > 1 && tickNumber % 5 == 1)
|
||||||
GetAura()->GetEffect(aurEff->GetEffIndex())->SetAmount(aurEff->GetAmount() * 2);
|
GetAura()->GetEffect(aurEff->GetEffIndex())->SetAmount(aurEff->GetAmount() * 2);
|
||||||
|
|
||||||
|
uint32 spellId = 0;
|
||||||
|
if (tickNumber <= 10)
|
||||||
|
spellId = SPELL_CURSE_OF_BOUNDLESS_AGONY_DUMMY_1;
|
||||||
|
else if (tickNumber <= 20)
|
||||||
|
spellId = SPELL_CURSE_OF_BOUNDLESS_AGONY_DUMMY_2;
|
||||||
|
else
|
||||||
|
spellId = SPELL_CURSE_OF_BOUNDLESS_AGONY_DUMMY_3;
|
||||||
|
GetTarget()->CastSpell(GetTarget(), spellId, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Register() override
|
void Register() override
|
||||||
|
|||||||
Reference in New Issue
Block a user