diff options
author | Philipp Sehmisch <crush@themanaworld.org> | 2009-09-23 20:06:16 +0200 |
---|---|---|
committer | Philipp Sehmisch <crush@themanaworld.org> | 2009-09-23 20:15:52 +0200 |
commit | b2bbb73f3fab10b238a61bf3aa185d80e6d2070f (patch) | |
tree | 91d26f1d93fd81d9378894f63b66ac7409ddb23b /src/game-server/being.cpp | |
parent | 5ae62661c90389d6456e5be75d240fb95b68b2cb (diff) | |
download | manaserv-b2bbb73f3fab10b238a61bf3aa185d80e6d2070f.tar.gz manaserv-b2bbb73f3fab10b238a61bf3aa185d80e6d2070f.tar.bz2 manaserv-b2bbb73f3fab10b238a61bf3aa185d80e6d2070f.tar.xz manaserv-b2bbb73f3fab10b238a61bf3aa185d80e6d2070f.zip |
added script functions for monster attacks
Diffstat (limited to 'src/game-server/being.cpp')
-rw-r--r-- | src/game-server/being.cpp | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/game-server/being.cpp b/src/game-server/being.cpp index 3993154e..c21d2540 100644 --- a/src/game-server/being.cpp +++ b/src/game-server/being.cpp @@ -232,14 +232,14 @@ int Being::directionToAngle(int direction) } } -void Being::performAttack(Being *target, unsigned range, const Damage &damage) +int Being::performAttack(Being *target, unsigned range, const Damage &damage) { // check target legality if (!target || target == this || target->getAction() == Being::DEAD || !target->canFight()) - return; + return -1; if (getMap()->getPvP() == PVP_NONE && target->getType() == OBJECT_CHARACTER && getType() == OBJECT_CHARACTER) - return; + return -1; // check if target is in range using the pythagorean theorem int distx = this->getPosition().x - target->getPosition().x; @@ -247,10 +247,11 @@ void Being::performAttack(Being *target, unsigned range, const Damage &damage) int distSquare = (distx * distx + disty * disty); int maxDist = range + target->getSize(); if (maxDist * maxDist < distSquare) - return; + return -1; - mTarget->damage(this, damage); mActionTime += 1000; // set to 10 ticks wait time + + return (mTarget->damage(this, damage)); } void Being::setAction(Action action) |