diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game-server/monster.h | 3 | ||||
-rw-r--r-- | src/scripting/lua.cpp | 17 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/game-server/monster.h b/src/game-server/monster.h index 75ea1e83..5da975e9 100644 --- a/src/game-server/monster.h +++ b/src/game-server/monster.h @@ -325,6 +325,9 @@ class Monster : public Being */ void changeAnger(Actor *target, int amount); + const std::map<Being *, int> &getAngerList() const + { return mAnger; } + /** * Calls the damage function in Being and updates the aggro list */ diff --git a/src/scripting/lua.cpp b/src/scripting/lua.cpp index 05845a36..b7e61065 100644 --- a/src/scripting/lua.cpp +++ b/src/scripting/lua.cpp @@ -1347,6 +1347,21 @@ static int monster_change_anger(lua_State *s) return 0; } +static int monster_drop_anger(lua_State *s) +{ + Monster *monster = checkMonster(s, 1); + Being *being = checkBeing(s, 2); + monster->forgetTarget(being); + return 0; +} + +static int monster_get_angerlist(lua_State *s) +{ + Monster *monster = checkMonster(s, 1); + pushSTLContainer(s, monster->getAngerList()); + return 1; +} + /** * monster_remove(Monster*): bool success * Remove a monster object without kill event. @@ -2454,6 +2469,8 @@ LuaScript::LuaScript(): { "monster_get_name", &monster_get_name }, { "monster_get_id", &monster_get_id }, { "monster_change_anger", &monster_change_anger }, + { "monster_drop_anger", &monster_drop_anger }, + { "monster_get_angerlist", &monster_get_angerlist }, { "monster_remove", &monster_remove }, { "being_apply_status", &being_apply_status }, { "being_remove_status", &being_remove_status }, |