feat(Core/Player): Split Dungeon Finder quest rates (#9788)

This commit is contained in:
Skjalf
2021-12-19 19:29:26 -03:00
committed by GitHub
parent f7ff583b7e
commit e7b5bb2420
6 changed files with 12 additions and 8 deletions

View File

@@ -15379,9 +15379,9 @@ uint16 Player::GetMaxSkillValueForLevel() const
return result;
}
float Player::GetQuestRate()
float Player::GetQuestRate(bool isDFQuest)
{
float result = sWorld->getRate(RATE_XP_QUEST);
float result = isDFQuest ? sWorld->getRate(RATE_XP_QUEST_DF) : sWorld->getRate(RATE_XP_QUEST);
sScriptMgr->OnGetQuestRate(this, result);

View File

@@ -1412,7 +1412,7 @@ public:
void RemoveRewardedQuest(uint32 questId, bool update = true);
void SendQuestUpdate(uint32 questId);
QuestGiverStatus GetQuestDialogStatus(Object* questGiver);
float GetQuestRate();
float GetQuestRate(bool isDFQuest = false);
void SetDailyQuestStatus(uint32 quest_id);
bool IsDailyQuestDone(uint32 quest_id);
void SetWeeklyQuestStatus(uint32 quest_id);

View File

@@ -726,7 +726,7 @@ void Player::RewardQuest(Quest const* quest, uint32 reward, Object* questGiver,
bool rewarded = IsQuestRewarded(quest_id) && !quest->IsDFQuest();
// Not give XP in case already completed once repeatable quest
uint32 XP = rewarded ? 0 : uint32(quest->XPValue(getLevel()) * GetQuestRate());
uint32 XP = rewarded ? 0 : uint32(quest->XPValue(getLevel()) * GetQuestRate(quest->IsDFQuest()));
// handle SPELL_AURA_MOD_XP_QUEST_PCT auras
Unit::AuraEffectList const& ModXPPctAuras = GetAuraEffectsByType(SPELL_AURA_MOD_XP_QUEST_PCT);