summaryrefslogtreecommitdiff
path: root/src/game-server/monster.cpp
diff options
context:
space:
mode:
authorStefan Beller <stefanbeller@googlemail.com>2012-04-04 21:40:13 +0200
committerStefan Beller <stefanbeller@googlemail.com>2012-04-04 22:04:06 +0200
commit37adb26ef191f5897aa77b59f2efe9474b7d2e56 (patch)
treeb49298c863af722e4e28378cc785278482e89ad5 /src/game-server/monster.cpp
parentf541b77d2ee0cad675ac60897e136322555ef5bc (diff)
downloadmanaserv-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.cpp13
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;
}