diff options
author | Stefan Beller <stefanbeller@googlemail.com> | 2012-04-04 21:40:13 +0200 |
---|---|---|
committer | Stefan Beller <stefanbeller@googlemail.com> | 2012-04-04 22:04:06 +0200 |
commit | 37adb26ef191f5897aa77b59f2efe9474b7d2e56 (patch) | |
tree | b49298c863af722e4e28378cc785278482e89ad5 /src/game-server/monster.cpp | |
parent | f541b77d2ee0cad675ac60897e136322555ef5bc (diff) | |
download | manaserv-37adb26ef191f5897aa77b59f2efe9474b7d2e56.tar.gz manaserv-37adb26ef191f5897aa77b59f2efe9474b7d2e56.tar.bz2 manaserv-37adb26ef191f5897aa77b59f2efe9474b7d2e56.tar.xz manaserv-37adb26ef191f5897aa77b59f2efe9474b7d2e56.zip |
Adding monster::on_damage callback
Reviewed-by: bjorn
Diffstat (limited to 'src/game-server/monster.cpp')
-rw-r--r-- | src/game-server/monster.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/game-server/monster.cpp b/src/game-server/monster.cpp index 34920b91..ec9db792 100644 --- a/src/game-server/monster.cpp +++ b/src/game-server/monster.cpp @@ -430,6 +430,19 @@ int Monster::damage(Actor *source, const Damage &damage) KILLSTEAL_PROTECTION_TIME); } } + + if (mSpecy->getDamageCallback().isValid()) + { + Script *script = ScriptManager::currentState(); + script->setMap(getMap()); + script->prepare(mSpecy->getDamageCallback()); + script->push(this); + script->push(source); + script->push(HPLoss); + // TODO: add exact damage parameters as well + script->execute(); + } + return HPLoss; } |