aboutsummaryrefslogtreecommitdiff
path: root/src/server/scripts/Spells
diff options
context:
space:
mode:
authorMatan Shukry <matanshukry@gmail.com>2021-12-26 20:14:46 +0200
committerGitHub <noreply@github.com>2021-12-26 19:14:46 +0100
commitb821a729733db0d3742b4aefe05e5a8305724f66 (patch)
tree5950610a9f6e50d906630825457d952c9548f7cd /src/server/scripts/Spells
parente00b1df36ec021bb80659ab9828e0c1a9b55adcf (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.cpp31
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);