summaryrefslogtreecommitdiff
path: root/src/game-server/being.cpp
diff options
context:
space:
mode:
authorPhilipp Sehmisch <crush@themanaworld.org>2009-09-23 20:06:16 +0200
committerPhilipp Sehmisch <crush@themanaworld.org>2009-09-23 20:15:52 +0200
commitb2bbb73f3fab10b238a61bf3aa185d80e6d2070f (patch)
tree91d26f1d93fd81d9378894f63b66ac7409ddb23b /src/game-server/being.cpp
parent5ae62661c90389d6456e5be75d240fb95b68b2cb (diff)
downloadmanaserv-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.cpp11
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)