From 2ae9afa9e86a616133b87fe1e959ab4c0fd786cb Mon Sep 17 00:00:00 2001 From: Trisjdc Date: Thu, 24 Jul 2014 04:09:38 +0100 Subject: Core/BGs: Reputation gained in BGs should be affected by SPELL_AURA_MOD_FACTION_REPUTATION_GAIN --- src/server/game/Battlegrounds/Battleground.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index d17be29211a..61b25f1af72 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -675,10 +675,20 @@ void Battleground::RewardHonorToTeam(uint32 Honor, uint32 TeamID) void Battleground::RewardReputationToTeam(uint32 faction_id, uint32 Reputation, uint32 TeamID) { - if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(faction_id)) - for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) - if (Player* player = _GetPlayerForTeam(TeamID, itr, "RewardReputationToTeam")) - player->GetReputationMgr().ModifyReputation(factionEntry, Reputation); + FactionEntry const* factionEntry = sFactionStore.LookupEntry(faction_id); + if (!factionEntry) + return; + + for (BattlegroundPlayerMap::const_iterator itr = m_Players.begin(); itr != m_Players.end(); ++itr) + { + Player* player = _GetPlayerForTeam(TeamID, itr, "RewardReputationToTeam"); + if (!player) + continue; + + uint32 repGain = Reputation; + AddPct(repGain, player->GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_FACTION_REPUTATION_GAIN, faction_id)); + player->GetReputationMgr().ModifyReputation(factionEntry, repGain); + } } void Battleground::UpdateWorldState(uint32 Field, uint32 Value) -- cgit v1.2.3