aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.World/Achievement.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.World/Achievement.cpp')
-rw-r--r--Minecraft.World/Achievement.cpp82
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;
+}