From f6765ffda1e0db5006aaebc359b2634837fe70bd Mon Sep 17 00:00:00 2001 From: Erik Schilling Date: Wed, 8 May 2013 00:06:32 +0200 Subject: [Abilities] Added abilities to monsters Monsters can now either receive abilities at lifetime via scripts, or via the node in the monsters node. --- src/game-server/monster.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/game-server/monster.h') diff --git a/src/game-server/monster.h b/src/game-server/monster.h index 4949d4c..9854a7a 100644 --- a/src/game-server/monster.h +++ b/src/game-server/monster.h @@ -21,9 +21,13 @@ #ifndef MONSTER_H #define MONSTER_H +#include "game-server/abilitymanager.h" #include "game-server/being.h" + #include "common/defines.h" + #include "scripting/script.h" + #include "utils/string.h" #include @@ -182,6 +186,9 @@ class MonsterClass double getVulnerability(Element element) const; + void addAbility(AbilityManager::AbilityInfo *info); + const std::set &getAbilities() const; + void setUpdateCallback(Script *script) { script->assignCallback(mUpdateCallback); } @@ -201,6 +208,7 @@ class MonsterClass MonsterDrops mDrops; std::map mAttributes; /**< Base attributes of the monster. */ + std::set mAbilities; float mSpeed; /**< The monster class speed in tiles per second */ int mSize; int mExp; @@ -308,4 +316,15 @@ class MonsterComponent : public Component Timeout mDecayTimeout; }; +inline void MonsterClass::addAbility(AbilityManager::AbilityInfo *info) +{ + mAbilities.insert(info); +} + +inline const std::set +&MonsterClass::getAbilities() const +{ + return mAbilities; +} + #endif // MONSTER_H -- cgit