summaryrefslogtreecommitdiff
path: root/src/game-server/item.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/item.cpp')
-rw-r--r--src/game-server/item.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/game-server/item.cpp b/src/game-server/item.cpp
index 2737be04..91d847d7 100644
--- a/src/game-server/item.cpp
+++ b/src/game-server/item.cpp
@@ -24,9 +24,12 @@
#include "game-server/item.hpp"
+#include "common/configuration.hpp"
#include "game-server/being.hpp"
+#include "game-server/state.hpp"
#include "scripting/script.hpp"
+
ItemType itemTypeFromString (const std::string &name)
{
static std::map<const std::string, ItemType> table;
@@ -130,3 +133,22 @@ bool ItemClass::use(Being *itemUser)
mModifiers.applyAttributes(itemUser);
return true;
}
+
+
+Item::Item(ItemClass *type, int amount)
+ : Actor(OBJECT_ITEM), mType(type), mAmount(amount)
+{
+ mLifetime = Configuration::getValue("floorItemDecayTime", 0) * 10;
+}
+
+void Item::update()
+{
+ if (mLifetime)
+ {
+ mLifetime--;
+ if (!mLifetime)
+ {
+ GameState::enqueueRemove(this);
+ }
+ }
+}