diff options
| author | Matan Shukry <matanshukry@gmail.com> | 2021-12-26 20:14:46 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-26 19:14:46 +0100 |
| commit | b821a729733db0d3742b4aefe05e5a8305724f66 (patch) | |
| tree | 5950610a9f6e50d906630825457d952c9548f7cd /src/server/scripts/Spells | |
| parent | e00b1df36ec021bb80659ab9828e0c1a9b55adcf (diff) | |
Core/Player: Initial War Mode support (#25926)
* Enable PvP talents
* War Mode buff aura
* Forced PvP flagging
Co-authored-by: Shauren <shauren.trinity@gmail.com>
Diffstat (limited to 'src/server/scripts/Spells')
| -rw-r--r-- | src/server/scripts/Spells/spell_generic.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp index b0d1593e4f3..212717fbd14 100644 --- a/src/server/scripts/Spells/spell_generic.cpp +++ b/src/server/scripts/Spells/spell_generic.cpp @@ -44,6 +44,7 @@ #include "SpellPackets.h" #include "SpellScript.h" #include "Vehicle.h" +#include "World.h" class spell_gen_absorb0_hitlimit1 : public AuraScript { @@ -4497,6 +4498,35 @@ class spell_gen_impatient_mind : public AuraScript } }; +// 269083 - Enlisted +// 282559 - Enlisted +class spell_gen_war_mode_enlisted : public AuraScript +{ + PrepareAuraScript(spell_gen_war_mode_enlisted); + + void CalcWarModeBonus(AuraEffect const* /*aurEff*/, int32& amount, bool& /*canBeRecalculated*/) + { + Player* target = GetUnitOwner()->ToPlayer(); + if (!target) + return; + + if (target->GetTeamId() == sWorld->GetWarModeDominantFaction()) + return; + + amount += sWorld->GetWarModeOutnumberedFactionReward(); + } + + void Register() override + { + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_war_mode_enlisted::CalcWarModeBonus, EFFECT_ALL, SPELL_AURA_MOD_XP_PCT); + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_war_mode_enlisted::CalcWarModeBonus, EFFECT_ALL, SPELL_AURA_MOD_XP_QUEST_PCT); + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_war_mode_enlisted::CalcWarModeBonus, EFFECT_ALL, SPELL_AURA_MOD_CURRENCY_GAIN_FROM_SOURCE); + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_war_mode_enlisted::CalcWarModeBonus, EFFECT_ALL, SPELL_AURA_MOD_MONEY_GAIN); + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_war_mode_enlisted::CalcWarModeBonus, EFFECT_ALL, SPELL_AURA_MOD_ANIMA_GAIN); + DoEffectCalcAmount += AuraEffectCalcAmountFn(spell_gen_war_mode_enlisted::CalcWarModeBonus, EFFECT_ALL, SPELL_AURA_DUMMY); + } +}; + enum DefenderOfAzerothData { SPELL_DEATH_GATE_TELEPORT_STORMWIND = 316999, @@ -4749,6 +4779,7 @@ void AddSC_generic_spell_scripts() RegisterSpellScript(spell_gen_azgalor_rain_of_fire_hellfire_citadel); RegisterAuraScript(spell_gen_face_rage); RegisterAuraScript(spell_gen_impatient_mind); + RegisterAuraScript(spell_gen_war_mode_enlisted); RegisterSpellScript(spell_defender_of_azeroth_death_gate_selector); RegisterSpellScript(spell_defender_of_azeroth_speak_with_mograine); RegisterSpellScript(spell_summon_battle_pet); |
