diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/scripts/Spells/spell_rogue.cpp | 275 |
1 files changed, 1 insertions, 274 deletions
diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp index 5c4c0c82f4a..577c08c96b4 100644 --- a/src/server/scripts/Spells/spell_rogue.cpp +++ b/src/server/scripts/Spells/spell_rogue.cpp @@ -38,9 +38,6 @@ enum RogueSpells { SPELL_ROGUE_BLADE_FLURRY = 13877, SPELL_ROGUE_BLADE_FLURRY_EXTRA_ATTACK = 22482, - SPELL_ROGUE_CHEAT_DEATH_COOLDOWN = 31231, - SPELL_ROGUE_CRIPPLING_POISON = 3409, - SPELL_ROGUE_GLYPH_OF_PREPARATION = 56819, SPELL_ROGUE_KILLING_SPREE = 51690, SPELL_ROGUE_KILLING_SPREE_TELEPORT = 57840, SPELL_ROGUE_KILLING_SPREE_WEAPON_DMG = 57841, @@ -54,12 +51,7 @@ enum RogueSpells SPELL_ROGUE_STEALTH_STEALTH_AURA = 158185, SPELL_ROGUE_STEALTH_SHAPESHIFT_AURA = 158188, SPELL_ROGUE_VANISH_AURA = 11327, - SPELL_ROGUE_PREY_ON_THE_WEAK = 58670, - SPELL_ROGUE_SHIV_TRIGGERED = 5940, - SPELL_ROGUE_TRICKS_OF_THE_TRADE_DMG_BOOST = 57933, SPELL_ROGUE_TRICKS_OF_THE_TRADE_PROC = 59628, - SPELL_ROGUE_SERRATED_BLADES_R1 = 14171, - SPELL_ROGUE_RUPTURE = 1943, SPELL_ROGUE_HONOR_AMONG_THIEVES_ENERGIZE = 51699, SPELL_ROGUE_T5_2P_SET_BONUS = 37169 }; @@ -114,101 +106,6 @@ class spell_rog_blade_flurry : public SpellScriptLoader } }; -// 31228 - Cheat Death -class spell_rog_cheat_death : public SpellScriptLoader -{ - public: - spell_rog_cheat_death() : SpellScriptLoader("spell_rog_cheat_death") { } - - class spell_rog_cheat_death_AuraScript : public AuraScript - { - PrepareAuraScript(spell_rog_cheat_death_AuraScript); - - uint32 absorbChance = 0; - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_ROGUE_CHEAT_DEATH_COOLDOWN }); - } - - bool Load() override - { - // 6.x has basepoint = 0 ! - absorbChance = GetSpellInfo()->GetEffect(EFFECT_0)->CalcValue(); - return GetUnitOwner()->GetTypeId() == TYPEID_PLAYER; - } - - void CalculateAmount(AuraEffect const* /*aurEff*/, int32 & amount, bool & /*canBeRecalculated*/) - { - // Set absorbtion amount to unlimited - amount = -1; - } - - void Absorb(AuraEffect* /*aurEff*/, DamageInfo & dmgInfo, uint32 & absorbAmount) - { - Player* target = GetTarget()->ToPlayer(); - if (dmgInfo.GetDamage() < target->GetHealth() || target->GetSpellHistory()->HasCooldown(SPELL_ROGUE_CHEAT_DEATH_COOLDOWN) || !roll_chance_i(absorbChance)) - return; - - target->CastSpell(target, SPELL_ROGUE_CHEAT_DEATH_COOLDOWN, true); - target->GetSpellHistory()->AddCooldown(SPELL_ROGUE_CHEAT_DEATH_COOLDOWN, 0, std::chrono::minutes(1)); - - uint32 health10 = target->CountPctFromMaxHealth(10); - - // hp > 10% - absorb hp till 10% - if (target->GetHealth() > health10) - absorbAmount = dmgInfo.GetDamage() - target->GetHealth() + health10; - // hp lower than 10% - absorb everything - else - absorbAmount = dmgInfo.GetDamage(); - } - - void Register() override - { - DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_rog_cheat_death_AuraScript::CalculateAmount, EFFECT_0, SPELL_AURA_SCHOOL_ABSORB); - OnEffectAbsorb += AuraEffectAbsorbFn(spell_rog_cheat_death_AuraScript::Absorb, EFFECT_0); - } - }; - - AuraScript* GetAuraScript() const override - { - return new spell_rog_cheat_death_AuraScript(); - } -}; - -// -51625 - Deadly Brew -class spell_rog_crippling_poison : public SpellScriptLoader -{ - public: - spell_rog_crippling_poison() : SpellScriptLoader("spell_rog_crippling_poison") { } - - class spell_rog_crippling_poison_AuraScript : public AuraScript - { - PrepareAuraScript(spell_rog_crippling_poison_AuraScript); - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_ROGUE_CRIPPLING_POISON }); - } - - void OnProc(AuraEffect* aurEff, ProcEventInfo& eventInfo) - { - PreventDefaultAction(); - GetTarget()->CastSpell(eventInfo.GetProcTarget(), SPELL_ROGUE_CRIPPLING_POISON, true, nullptr, aurEff); - } - - void Register() override - { - OnEffectProc += AuraEffectProcFn(spell_rog_crippling_poison_AuraScript::OnProc, EFFECT_0, SPELL_AURA_DUMMY); - } - }; - - AuraScript* GetAuraScript() const override - { - return new spell_rog_crippling_poison_AuraScript(); - } -}; - // 2818 - Deadly Poison class spell_rog_deadly_poison : public SpellScriptLoader { @@ -406,92 +303,6 @@ class spell_rog_killing_spree : public SpellScriptLoader }; char constexpr const spell_rog_killing_spree::ScriptName[]; -// 31666 - Master of Subtlety -class spell_rog_master_of_subtlety : public SpellScriptLoader -{ - public: - spell_rog_master_of_subtlety() : SpellScriptLoader("spell_rog_master_of_subtlety") { } - - class spell_rog_master_of_subtlety_AuraScript : public AuraScript - { - PrepareAuraScript(spell_rog_master_of_subtlety_AuraScript); - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_ROGUE_MASTER_OF_SUBTLETY_DAMAGE_PERCENT }); - } - - void HandleEffectPeriodic(AuraEffect const* /*aurEff*/) - { - Unit* target = GetTarget(); - - if (!target->HasAuraType(SPELL_AURA_MOD_STEALTH)) - target->RemoveAurasDueToSpell(SPELL_ROGUE_MASTER_OF_SUBTLETY_DAMAGE_PERCENT); - } - - void Register() override - { - OnEffectPeriodic += AuraEffectPeriodicFn(spell_rog_master_of_subtlety_AuraScript::HandleEffectPeriodic, EFFECT_0, SPELL_AURA_PERIODIC_DUMMY); - } - }; - - AuraScript* GetAuraScript() const override - { - return new spell_rog_master_of_subtlety_AuraScript(); - } -}; - -// 14185 - Preparation -class spell_rog_preparation : public SpellScriptLoader -{ - public: - spell_rog_preparation() : SpellScriptLoader("spell_rog_preparation") { } - - class spell_rog_preparation_SpellScript : public SpellScript - { - PrepareSpellScript(spell_rog_preparation_SpellScript); - - bool Load() override - { - return GetCaster()->GetTypeId() == TYPEID_PLAYER; - } - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_ROGUE_GLYPH_OF_PREPARATION }); - } - - void HandleDummy(SpellEffIndex /*effIndex*/) - { - Unit* caster = GetCaster(); - caster->GetSpellHistory()->ResetCooldowns([caster, this](SpellHistory::CooldownStorageType::iterator itr) - { - SpellInfo const* spellInfo = sSpellMgr->AssertSpellInfo(itr->first, GetCastDifficulty()); - if (spellInfo->SpellFamilyName != SPELLFAMILY_ROGUE) - return false; - - return (spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_ROGUE_SHADOWSTEP || // Shadowstep - spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG0_ROGUE_VAN_SPRINT) || // Vanish, Sprint - // Glyph of Preparation - (caster->HasAura(SPELL_ROGUE_GLYPH_OF_PREPARATION) && - (spellInfo->SpellFamilyFlags[1] & SPELLFAMILYFLAG1_ROGUE_DISMANTLE_SMOKE_BOMB || // Dismantle, Smoke Bomb - spellInfo->SpellFamilyFlags[0] & SPELLFAMILYFLAG0_ROGUE_KICK)); // Kick - - }, true); - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_rog_preparation_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); - } - }; - - SpellScript* GetSpellScript() const override - { - return new spell_rog_preparation_SpellScript(); - } -}; - // 1943 - Rupture class spell_rog_rupture : public SpellScriptLoader { @@ -544,45 +355,6 @@ class spell_rog_rupture : public SpellScriptLoader } }; -// 5938 - Shiv -class spell_rog_shiv : public SpellScriptLoader -{ - public: - spell_rog_shiv() : SpellScriptLoader("spell_rog_shiv") { } - - class spell_rog_shiv_SpellScript : public SpellScript - { - PrepareSpellScript(spell_rog_shiv_SpellScript); - - bool Load() override - { - return GetCaster()->GetTypeId() == TYPEID_PLAYER; - } - - bool Validate(SpellInfo const* /*spellInfo*/) override - { - return ValidateSpellInfo({ SPELL_ROGUE_SHIV_TRIGGERED }); - } - - void HandleDummy(SpellEffIndex /*effIndex*/) - { - Unit* caster = GetCaster(); - if (Unit* unitTarget = GetHitUnit()) - caster->CastSpell(unitTarget, SPELL_ROGUE_SHIV_TRIGGERED, true); - } - - void Register() override - { - OnEffectHitTarget += SpellEffectFn(spell_rog_shiv_SpellScript::HandleDummy, EFFECT_0, SPELL_EFFECT_DUMMY); - } - }; - - SpellScript* GetSpellScript() const override - { - return new spell_rog_shiv_SpellScript(); - } -}; - // 1784 - Stealth class spell_rog_stealth : public SpellScriptLoader { @@ -745,11 +517,7 @@ class spell_rog_tricks_of_the_trade : public SpellScriptLoader bool Validate(SpellInfo const* /*spellInfo*/) override { - return ValidateSpellInfo( - { - SPELL_ROGUE_TRICKS_OF_THE_TRADE_DMG_BOOST, - SPELL_ROGUE_TRICKS_OF_THE_TRADE_PROC - }); + return ValidateSpellInfo({ SPELL_ROGUE_TRICKS_OF_THE_TRADE_PROC }); } void OnRemove(AuraEffect const* /*aurEff*/, AuraEffectHandleModes /*mode*/) @@ -769,7 +537,6 @@ class spell_rog_tricks_of_the_trade : public SpellScriptLoader PreventDefaultAction(); Unit* target = GetTarget(); - target->CastSpell(_redirectTarget, SPELL_ROGUE_TRICKS_OF_THE_TRADE_DMG_BOOST, true); target->CastSpell(target, SPELL_ROGUE_TRICKS_OF_THE_TRADE_PROC, true); Remove(AURA_REMOVE_BY_DEFAULT); // maybe handle by proc charges } @@ -817,40 +584,6 @@ class spell_rog_tricks_of_the_trade_proc : public SpellScriptLoader } }; -class spell_rog_serrated_blades : public SpellScriptLoader -{ -public: - spell_rog_serrated_blades() : SpellScriptLoader("spell_rog_serrated_blades") { } - - class spell_rog_serrated_blades_SpellScript : public SpellScript - { - PrepareSpellScript(spell_rog_serrated_blades_SpellScript); - - void HandleHit() - { - if (AuraEffect* blade = GetCaster()->GetAuraEffectOfRankedSpell(SPELL_ROGUE_SERRATED_BLADES_R1, EFFECT_0)) - { - uint32 combo = GetCaster()->ToPlayer()->GetComboPoints(); - - if (roll_chance_i(blade->GetAmount() * combo)) - if (Aura* dot = GetHitUnit()->GetAura(SPELL_ROGUE_RUPTURE, GetCaster()->GetGUID())) - dot->RefreshDuration(); - - } - } - - void Register() override - { - OnHit += SpellHitFn(spell_rog_serrated_blades_SpellScript::HandleHit); - } - }; - - SpellScript* GetSpellScript() const override - { - return new spell_rog_serrated_blades_SpellScript(); - } -}; - // 198031 - Honor Among Thieves /// 7.1.5 class spell_rog_honor_among_thieves : public SpellScriptLoader @@ -964,20 +697,14 @@ public: void AddSC_rogue_spell_scripts() { new spell_rog_blade_flurry(); - new spell_rog_cheat_death(); - new spell_rog_crippling_poison(); new spell_rog_deadly_poison(); new spell_rog_killing_spree(); - new spell_rog_master_of_subtlety(); - new spell_rog_preparation(); new spell_rog_rupture(); - new spell_rog_shiv(); new spell_rog_stealth(); new spell_rog_vanish(); new spell_rog_vanish_aura(); new spell_rog_tricks_of_the_trade(); new spell_rog_tricks_of_the_trade_proc(); - new spell_rog_serrated_blades(); new spell_rog_honor_among_thieves(); new spell_rog_eviscerate(); new spell_rog_envenom(); |