diff options
author | megamage <none@none> | 2009-04-22 18:03:07 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-04-22 18:03:07 -0500 |
commit | db3e17cb7051c6665576060cf9df1b90f6887140 (patch) | |
tree | 25035fd1a99f24b0263bd5f44915d5a1852ef160 | |
parent | 0f57808238ae7003d95247bbba3c243b1f0b2b71 (diff) |
[7700] Implement ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL Author: DonTomika
--HG--
branch : trunk
-rw-r--r-- | src/game/AchievementMgr.cpp | 6 | ||||
-rw-r--r-- | src/game/Level3.cpp | 2 | ||||
-rw-r--r-- | src/game/Player.cpp | 1 |
3 files changed, 8 insertions, 1 deletions
diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp index b9010d0217a..305a6b94351 100644 --- a/src/game/AchievementMgr.cpp +++ b/src/game/AchievementMgr.cpp @@ -1033,6 +1033,9 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui SetCriteriaProgress(achievementCriteria, spellCount); break; } + case ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL: + SetCriteriaProgress(achievementCriteria, GetPlayer()->GetUInt32Value(PLAYER_FIELD_LIFETIME_HONORBALE_KILLS)); + break; // std case: not exist in DBC, not triggered in code as result case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_HEALTH: case ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_SPELLPOWER: @@ -1083,7 +1086,6 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui case ACHIEVEMENT_CRITERIA_TYPE_QUEST_ABANDONED: case ACHIEVEMENT_CRITERIA_TYPE_FLIGHT_PATHS_TAKEN: case ACHIEVEMENT_CRITERIA_TYPE_LOOT_TYPE: - case ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL: case ACHIEVEMENT_CRITERIA_TYPE_ACCEPTED_SUMMONINGS: case ACHIEVEMENT_CRITERIA_TYPE_TOTAL: break; // Not implemented yet :( @@ -1208,6 +1210,8 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve return progress->counter >= achievementCriteria->learn_skillline_spell.spellCount; case ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILL_LINE: return progress->counter >= achievementCriteria->learn_skill_line.spellCount; + case ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL: + return progress->counter >= achievementCriteria->honorable_kill.killCount; // handle all statistic-only criteria here case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_BATTLEGROUND: diff --git a/src/game/Level3.cpp b/src/game/Level3.cpp index cb4124ec1fe..4e0f39e2316 100644 --- a/src/game/Level3.cpp +++ b/src/game/Level3.cpp @@ -5111,6 +5111,8 @@ bool ChatHandler::HandleResetHonorCommand (const char * args) player->SetUInt32Value(PLAYER_FIELD_TODAY_CONTRIBUTION, 0); player->SetUInt32Value(PLAYER_FIELD_YESTERDAY_CONTRIBUTION, 0); + player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL); + return true; } diff --git a/src/game/Player.cpp b/src/game/Player.cpp index 1f6a461a0b9..aaea17ddd9e 100644 --- a/src/game/Player.cpp +++ b/src/game/Player.cpp @@ -5938,6 +5938,7 @@ bool Player::RewardHonor(Unit *uVictim, uint32 groupsize, float honor, bool pvpt ApplyModUInt32Value(PLAYER_FIELD_KILLS, 1, true); // and those in a lifetime ApplyModUInt32Value(PLAYER_FIELD_LIFETIME_HONORBALE_KILLS, 1, true); + UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_EARN_HONORABLE_KILL); } else { |