fix(Scripts/ZulGurub): Gah'zranka's Slam should reset threat. (#11910)
This commit is contained in:
@@ -0,0 +1,4 @@
|
|||||||
|
--
|
||||||
|
DELETE FROM `spell_script_names` WHERE `spell_id`=24326;
|
||||||
|
INSERT INTO `spell_script_names` VALUES
|
||||||
|
(24326,'spell_gahzranka_slam');
|
||||||
@@ -24,6 +24,7 @@ EndScriptData */
|
|||||||
|
|
||||||
#include "ScriptMgr.h"
|
#include "ScriptMgr.h"
|
||||||
#include "ScriptedCreature.h"
|
#include "ScriptedCreature.h"
|
||||||
|
#include "SpellScript.h"
|
||||||
#include "zulgurub.h"
|
#include "zulgurub.h"
|
||||||
|
|
||||||
enum Spells
|
enum Spells
|
||||||
@@ -110,7 +111,44 @@ public:
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class spell_gahzranka_slam : public SpellScript
|
||||||
|
{
|
||||||
|
PrepareSpellScript(spell_gahzranka_slam);
|
||||||
|
|
||||||
|
void FilterTargets(std::list<WorldObject*>& targets)
|
||||||
|
{
|
||||||
|
if (Unit* caster = GetCaster())
|
||||||
|
{
|
||||||
|
_wipeThreat = targets.size() < caster->GetThreatMgr().getThreatList().size();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleWipeThreat(SpellEffIndex /*effIndex*/)
|
||||||
|
{
|
||||||
|
if (_wipeThreat)
|
||||||
|
{
|
||||||
|
if (Unit* caster = GetCaster())
|
||||||
|
{
|
||||||
|
if (Unit* target = GetHitUnit())
|
||||||
|
{
|
||||||
|
caster->GetThreatMgr().modifyThreatPercent(target, -100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void Register() override
|
||||||
|
{
|
||||||
|
OnObjectAreaTargetSelect += SpellObjectAreaTargetSelectFn(spell_gahzranka_slam::FilterTargets, EFFECT_1, TARGET_UNIT_SRC_AREA_ENEMY);
|
||||||
|
OnEffectHitTarget += SpellEffectFn(spell_gahzranka_slam::HandleWipeThreat, EFFECT_1, SPELL_EFFECT_KNOCK_BACK);
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool _wipeThreat = false;
|
||||||
|
};
|
||||||
|
|
||||||
void AddSC_boss_gahzranka()
|
void AddSC_boss_gahzranka()
|
||||||
{
|
{
|
||||||
new boss_gahzranka();
|
new boss_gahzranka();
|
||||||
|
RegisterSpellScript(spell_gahzranka_slam);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user