Jump to content

[Feature][7682] support ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT


Guest Trazom

Recommended Posts

Description of the bug?

Implement the criteria ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT

For which repository revision was the patch created?

7681

Is there a thread in the bug report section or at lighthouse?

None I know

Who has been writing this patch?

Myself

src/game/AchievementMgr.cpp |   11 ++++++++++-
src/game/GameObject.cpp     |    1 +
2 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/src/game/AchievementMgr.cpp b/src/game/AchievementMgr.cpp
index 1b8338a..1536cb7 100644
--- a/src/game/AchievementMgr.cpp
+++ b/src/game/AchievementMgr.cpp
@@ -945,6 +945,14 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui

                SetCriteriaProgress(achievementCriteria, 1, PROGRESS_ACCUMULATE);
                break;
+            case ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT:
+                if (!miscvalue1)
+                    continue;
+                if (miscvalue1 != achievementCriteria->fish_in_gameobject.goEntry)
+                    continue;
+
+                SetCriteriaProgress(achievementCriteria, 1, PROGRESS_ACCUMULATE);
+                break;
            case ACHIEVEMENT_CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS:
            {
                // spell always provide and at login spell learning.
@@ -1031,7 +1039,6 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
            case ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_VENDORS:
            case ACHIEVEMENT_CRITERIA_TYPE_NUMBER_OF_TALENT_RESETS:
            case ACHIEVEMENT_CRITERIA_TYPE_SPECIAL_PVP_KILL:
-            case ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT:
            case ACHIEVEMENT_CRITERIA_TYPE_EARNED_PVP_TITLE:
            case ACHIEVEMENT_CRITERIA_TYPE_LOSE_DUEL:
            case ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE_TYPE:
@@ -1168,6 +1175,8 @@ bool AchievementMgr::IsCompletedCriteria(AchievementCriteriaEntry const* achieve
            return progress->counter >= achievementCriteria->equip_item.count;
        case ACHIEVEMENT_CRITERIA_TYPE_MONEY_FROM_QUEST_REWARD:
            return progress->counter >= achievementCriteria->quest_reward_money.goldInCopper;
+        case ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT:
+            return progress->counter >= achievementCriteria->fish_in_gameobject.lootCount;
        case ACHIEVEMENT_CRITERIA_TYPE_LOOT_MONEY:
            return progress->counter >= achievementCriteria->loot_money.goldInCopper;
        case ACHIEVEMENT_CRITERIA_TYPE_USE_GAMEOBJECT:
diff --git a/src/game/GameObject.cpp b/src/game/GameObject.cpp
index 5c931ab..4b2916d 100644
--- a/src/game/GameObject.cpp
+++ b/src/game/GameObject.cpp
@@ -1027,6 +1027,7 @@ void GameObject::Use(Unit* user)
                        if (ok)
                        {
                            player->SendLoot(ok->GetGUID(),LOOT_FISHINGHOLE);
+                            player->UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_FISH_IN_GAMEOBJECT, ok->GetGOInfo()->id);
                            SetLootState(GO_JUST_DEACTIVATED);
                        }
                        else

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use