@@ -2171,6 +2171,29 @@ class spell_gen_injured : public SpellScript
2171
2171
}
2172
2172
};
2173
2173
2174
+ // To be added: 19633, 20686, 23382, 31389, 32959
2175
+ class spell_gen_knock_away_threat_reduction : public SpellScript
2176
+ {
2177
+ PrepareSpellScript (spell_gen_knock_away_threat_reduction);
2178
+
2179
+ public:
2180
+ explicit spell_gen_knock_away_threat_reduction (int32 threatPercent) : _threatPercent(threatPercent) { }
2181
+
2182
+ private:
2183
+ int32 _threatPercent;
2184
+
2185
+ void HandleScript (SpellEffIndex /* effIndex*/ )
2186
+ {
2187
+ if (GetCaster ()->CanHaveThreatList ())
2188
+ GetCaster ()->GetThreatManager ().ModifyThreatByPercent (GetHitUnit (), -_threatPercent);
2189
+ }
2190
+
2191
+ void Register () override
2192
+ {
2193
+ OnEffectHitTarget += SpellEffectFn (spell_gen_knock_away_threat_reduction::HandleScript, EFFECT_2, SPELL_EFFECT_SCRIPT_EFFECT);
2194
+ }
2195
+ };
2196
+
2174
2197
class spell_gen_lifeblood : public AuraScript
2175
2198
{
2176
2199
PrepareAuraScript (spell_gen_lifeblood);
@@ -3322,6 +3345,23 @@ class spell_gen_replenishment_aura : public AuraScript
3322
3345
}
3323
3346
};
3324
3347
3348
+ // 32343 - Revive Self
3349
+ class spell_gen_revive_self : public SpellScript
3350
+ {
3351
+ PrepareSpellScript (spell_gen_revive_self);
3352
+
3353
+ void HandleDummy (SpellEffIndex /* effIndex*/ )
3354
+ {
3355
+ GetCaster ()->SetFullHealth ();
3356
+ GetCaster ()->SetFullPower (POWER_MANA);
3357
+ }
3358
+
3359
+ void Register () override
3360
+ {
3361
+ OnEffectHit += SpellEffectFn (spell_gen_revive_self::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY);
3362
+ }
3363
+ };
3364
+
3325
3365
enum SeaforiumSpells
3326
3366
{
3327
3367
SPELL_PLANT_CHARGES_CREDIT_ACHIEVEMENT = 60937
@@ -4718,6 +4758,9 @@ void AddSC_generic_spell_scripts()
4718
4758
RegisterSpellScript (spell_gen_hate_to_50);
4719
4759
RegisterSpellScript (spell_gen_hate_to_75);
4720
4760
RegisterSpellScript (spell_gen_injured);
4761
+ RegisterSpellScriptWithArgs (spell_gen_knock_away_threat_reduction, " spell_gen_knock_away_threat_reduction_100" , 100 ); // 10101
4762
+ RegisterSpellScriptWithArgs (spell_gen_knock_away_threat_reduction, " spell_gen_knock_away_threat_reduction_50" , 50 ); // 18670, 18945
4763
+ RegisterSpellScriptWithArgs (spell_gen_knock_away_threat_reduction, " spell_gen_knock_away_threat_reduction_25" , 25 ); // 18813, 25778
4721
4764
RegisterSpellScript (spell_gen_lifeblood);
4722
4765
RegisterSpellScriptWithArgs (spell_gen_lifebloom, " spell_hexlord_lifebloom" , SPELL_HEXLORD_MALACRASS_LIFEBLOOM_FINAL_HEAL);
4723
4766
RegisterSpellScriptWithArgs (spell_gen_lifebloom, " spell_tur_ragepaw_lifebloom" , SPELL_TUR_RAGEPAW_LIFEBLOOM_FINAL_HEAL);
@@ -4763,6 +4806,7 @@ void AddSC_generic_spell_scripts()
4763
4806
RegisterSpellScript (spell_gen_remove_on_health_pct);
4764
4807
RegisterSpellScript (spell_gen_remove_on_full_health);
4765
4808
RegisterSpellScript (spell_gen_remove_on_full_health_pct);
4809
+ RegisterSpellScript (spell_gen_revive_self);
4766
4810
RegisterSpellScript (spell_gen_seaforium_blast);
4767
4811
RegisterSpellScript (spell_gen_spectator_cheer_trigger);
4768
4812
RegisterSpellScript (spell_gen_spirit_healer_res);
0 commit comments