*Implement ACHIEVEMENT_CRITERIA_TYPE_WIN_BG - by BudIcePenguin.
--HG-- branch : trunk
This commit is contained in:
@@ -790,6 +790,14 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
|
|||||||
continue;
|
continue;
|
||||||
SetCriteriaProgress(achievementCriteria, miscvalue1, PROGRESS_ACCUMULATE);
|
SetCriteriaProgress(achievementCriteria, miscvalue1, PROGRESS_ACCUMULATE);
|
||||||
break;
|
break;
|
||||||
|
case ACHIEVEMENT_CRITERIA_TYPE_WIN_BG:
|
||||||
|
// AchievementMgr::UpdateAchievementCriteria might also be called on login - skip in this case
|
||||||
|
if(!miscvalue1)
|
||||||
|
continue;
|
||||||
|
if(GetPlayer()->GetMapId() != achievementCriteria->win_bg.bgMapID)
|
||||||
|
continue;
|
||||||
|
SetCriteriaProgress(achievementCriteria, miscvalue1, PROGRESS_ACCUMULATE);
|
||||||
|
break;
|
||||||
case ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP:
|
case ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP:
|
||||||
// AchievementMgr::UpdateAchievementCriteria might also be called on login - skip in this case
|
// AchievementMgr::UpdateAchievementCriteria might also be called on login - skip in this case
|
||||||
if(!miscvalue1)
|
if(!miscvalue1)
|
||||||
@@ -1271,7 +1279,6 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
|
|||||||
case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_RATING:
|
case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_RATING:
|
||||||
break;
|
break;
|
||||||
// FIXME: not triggered in code as result, need to implement
|
// FIXME: not triggered in code as result, need to implement
|
||||||
case ACHIEVEMENT_CRITERIA_TYPE_WIN_BG:
|
|
||||||
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY:
|
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY:
|
||||||
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID:
|
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_RAID:
|
||||||
case ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE:
|
case ACHIEVEMENT_CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE:
|
||||||
@@ -1431,7 +1438,8 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve
|
|||||||
return progress->counter >= achievementCriteria->learn_skill_line.spellCount;
|
return progress->counter >= achievementCriteria->learn_skill_line.spellCount;
|
||||||
case ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL:
|
case ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL:
|
||||||
return progress->counter >= achievementCriteria->honorable_kill.killCount;
|
return progress->counter >= achievementCriteria->honorable_kill.killCount;
|
||||||
|
case ACHIEVEMENT_CRITERIA_TYPE_WIN_BG:
|
||||||
|
return progress->counter >= achievementCriteria->win_bg.winCount;
|
||||||
// handle all statistic-only criteria here
|
// handle all statistic-only criteria here
|
||||||
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
|
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
|
||||||
case ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP:
|
case ACHIEVEMENT_CRITERIA_TYPE_DEATH_AT_MAP:
|
||||||
|
|||||||
@@ -759,6 +759,7 @@ void BattleGround::EndBattleGround(uint32 winner)
|
|||||||
{
|
{
|
||||||
RewardMark(plr,ITEM_WINNER_COUNT);
|
RewardMark(plr,ITEM_WINNER_COUNT);
|
||||||
RewardQuestComplete(plr);
|
RewardQuestComplete(plr);
|
||||||
|
plr->GetAchievementMgr().UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_WIN_BG, 1);
|
||||||
}
|
}
|
||||||
else if(winner)
|
else if(winner)
|
||||||
RewardMark(plr,ITEM_LOSER_COUNT);
|
RewardMark(plr,ITEM_LOSER_COUNT);
|
||||||
|
|||||||
@@ -860,8 +860,6 @@ class SpellMgr
|
|||||||
|
|
||||||
SpellsRequiringSpellMap const& GetSpellsRequiringSpell() const { return mSpellsReqSpell; }
|
SpellsRequiringSpellMap const& GetSpellsRequiringSpell() const { return mSpellsReqSpell; }
|
||||||
|
|
||||||
// Note: not use rank for compare to spell ranks: spell chains isn't linear order
|
|
||||||
// Use IsHighRankOfSpell instead
|
|
||||||
uint8 GetSpellRank(uint32 spell_id) const
|
uint8 GetSpellRank(uint32 spell_id) const
|
||||||
{
|
{
|
||||||
if(SpellChainNode const* node = GetSpellChainNode(spell_id))
|
if(SpellChainNode const* node = GetSpellChainNode(spell_id))
|
||||||
|
|||||||
Reference in New Issue
Block a user