diff options
author | Trisjdc <trisjdc@gmail.com> | 2014-07-24 04:09:38 +0100 |
---|---|---|
committer | Trisjdc <trisjdc@gmail.com> | 2014-07-24 04:09:38 +0100 |
commit | 2ae9afa9e86a616133b87fe1e959ab4c0fd786cb (patch) | |
tree | 4507baccfb89c1ab49c5f72d46866943dffc81c6 | |
parent | e2d6b9bf8ce25e9e44227f2ba77e1b29337b7d28 (diff) |
Core/BGs: Reputation gained in BGs should be affected by SPELL_AURA_MOD_FACTION_REPUTATION_GAIN
-rw-r--r-- | src/server/game/Battlegrounds/Battleground.cpp | 18 |
1 files changed, 14 insertions, 4 deletions
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) |