diff options
Diffstat (limited to 'src/game-server/item.cpp')
-rw-r--r-- | src/game-server/item.cpp | 22 |
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); + } + } +} |