summaryrefslogtreecommitdiffstats
path: root/src/game-server/monster.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/monster.h')
-rw-r--r--src/game-server/monster.h19
1 files changed, 19 insertions, 0 deletions
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 <map>
@@ -182,6 +186,9 @@ class MonsterClass
double getVulnerability(Element element) const;
+ void addAbility(AbilityManager::AbilityInfo *info);
+ const std::set<AbilityManager::AbilityInfo *> &getAbilities() const;
+
void setUpdateCallback(Script *script)
{ script->assignCallback(mUpdateCallback); }
@@ -201,6 +208,7 @@ class MonsterClass
MonsterDrops mDrops;
std::map<int, double> mAttributes; /**< Base attributes of the monster. */
+ std::set<AbilityManager::AbilityInfo *> 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<AbilityManager::AbilityInfo *>
+&MonsterClass::getAbilities() const
+{
+ return mAbilities;
+}
+
#endif // MONSTER_H