Core/Reputation: Implemented "friendship reputation"

Port From (https://github.com/TrinityCore/TrinityCore/commit/80a6347b7a0e8dfbe5e690504ed373f75c4f4c76)
This commit is contained in:
hondacrx
2021-06-04 15:03:52 -04:00
parent 32f4bf4c25
commit 9702bd9097
9 changed files with 322 additions and 91 deletions
+10
View File
@@ -1413,6 +1413,16 @@ namespace Game.Entities
//Repitation
public int CalculateReputationGain(ReputationSource source, uint creatureOrQuestLevel, int rep, int faction, bool noQuestBonus = false)
{
bool noBonuses = false;
var factionEntry = CliDB.FactionStorage.LookupByKey(faction);
if (factionEntry != null)
{
var friendshipReputation = CliDB.FriendshipReputationStorage.LookupByKey(factionEntry.FriendshipRepID);
if (friendshipReputation != null)
if (friendshipReputation.Flags.HasAnyFlag(FriendshipReputationFlags.NoRepGainModifiers))
noBonuses = true;
}
float percent = 100.0f;
float repMod = noQuestBonus ? 0.0f : GetTotalAuraModifier(AuraType.ModReputationGain);