#pragma once #include #include #include #include #include "constants.h" namespace cursebreaker { struct AchievementRequirement { ActionType action{}; uint16_t targetId{}; // e.g., item id, npc id, etc. uint16_t count{}; std::string description; }; struct Achievement { uint16_t id{}; uint16_t points{}; uint16_t category{}; std::string name; std::string description; std::string icon; std::vector requirements; Achievement() = default; }; // Achievements configuration functions bool loadAchievementsFromXML(const std::string& filepath, std::unordered_map& achievements); const Achievement* getAchievementById(uint16_t id, const std::unordered_map& achievements); const std::unordered_map& getAllAchievements(const std::unordered_map& achievements); } // namespace cursebreaker