diff options
Diffstat (limited to 'Minecraft.World/Achievement.cpp')
| -rw-r--r-- | Minecraft.World/Achievement.cpp | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/Minecraft.World/Achievement.cpp b/Minecraft.World/Achievement.cpp new file mode 100644 index 00000000..a0dfd533 --- /dev/null +++ b/Minecraft.World/Achievement.cpp @@ -0,0 +1,82 @@ +#include "stdafx.h" +#include "net.minecraft.locale.h" +#include "ItemInstance.h" +#include "Achievements.h" +#include "DescFormatter.h" +#include "Achievement.h" + +void Achievement::_init() +{ + isGoldenVar = false; + + if (x < Achievements::xMin) Achievements::xMin = x; + if (y < Achievements::yMin) Achievements::yMin = y; + if (x > Achievements::xMax) Achievements::xMax = x; + if (y > Achievements::yMax) Achievements::yMax = y; +} + +Achievement::Achievement(int id, const wstring& name, int x, int y, Item *icon, Achievement *requires) + : Stat( Achievements::ACHIEVEMENT_OFFSET + id, I18n::get(wstring(L"achievement.").append(name)) ), desc( I18n::get(wstring(L"achievement.").append(name).append(L".desc"))), icon( new ItemInstance(icon) ), x(x), y(y), requires(requires) +{ +} + +Achievement::Achievement(int id, const wstring& name, int x, int y, Tile *icon, Achievement *requires) + : Stat( Achievements::ACHIEVEMENT_OFFSET + id, I18n::get(wstring(L"achievement.").append(name)) ), desc( I18n::get(wstring(L"achievement.").append(name).append(L".desc"))), icon( new ItemInstance(icon) ), x(x), y(y), requires(requires) +{ +} + +Achievement::Achievement(int id, const wstring& name, int x, int y, shared_ptr<ItemInstance> icon, Achievement *requires) + : Stat( Achievements::ACHIEVEMENT_OFFSET + id, I18n::get(wstring(L"achievement.").append(name)) ), desc( I18n::get(wstring(L"achievement.").append(name).append(L".desc"))), icon(icon), x(x), y(y), requires(requires) +{ +} + +Achievement *Achievement::setAwardLocallyOnly() +{ + awardLocallyOnly = true; + return this; +} + +Achievement *Achievement::setGolden() +{ + isGoldenVar = true; + return this; +} + +Achievement *Achievement::postConstruct() +{ + Stat::postConstruct(); + + Achievements::achievements->push_back(this); + + return this; +} + +bool Achievement::isAchievement() +{ + return true; +} + +wstring Achievement::getDescription() +{ + if (descFormatter != NULL) + { + return descFormatter->format(desc); + } + return desc; +} + +Achievement *Achievement::setDescFormatter(DescFormatter *descFormatter) +{ + this->descFormatter = descFormatter; + return this; +} + +bool Achievement::isGolden() +{ + return isGoldenVar; +} + +int Achievement::getAchievementID() +{ + return id - Achievements::ACHIEVEMENT_OFFSET; +} |
