summaryrefslogtreecommitdiffstats
path: root/src/game-server/monster.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game-server/monster.cpp')
-rw-r--r--src/game-server/monster.cpp76
1 files changed, 1 insertions, 75 deletions
diff --git a/src/game-server/monster.cpp b/src/game-server/monster.cpp
index 45a99d8..1c4f39b 100644
--- a/src/game-server/monster.cpp
+++ b/src/game-server/monster.cpp
@@ -35,17 +35,8 @@
#include <cmath>
-double MonsterClass::getVulnerability(Element element) const
-{
- Vulnerabilities::const_iterator it = mVulnerabilities.find(element);
- if (it == mVulnerabilities.end())
- return 1.0f;
- return it->second;
-}
-
MonsterComponent::MonsterComponent(Entity &entity, MonsterClass *specy):
- mSpecy(specy),
- mOwner(nullptr)
+ mSpecy(specy)
{
LOG_DEBUG("Monster spawned! (id: " << mSpecy->getId() << ").");
@@ -96,16 +87,8 @@ MonsterComponent::MonsterComponent(Entity &entity, MonsterClass *specy):
beingComponent->signal_died.connect(sigc::mem_fun(this,
&MonsterComponent::monsterDied));
}
-
-MonsterComponent::~MonsterComponent()
-{
-}
-
void MonsterComponent::update(Entity &entity)
{
- if (mKillStealProtectedTimeout.justFinished())
- mOwner = nullptr;
-
auto *beingComponent = entity.getComponent<BeingComponent>();
// If dead, remove it
@@ -124,65 +107,8 @@ void MonsterComponent::update(Entity &entity)
script->push(&entity);
script->execute(entity.getMap());
}
-
- const Point &position =
- entity.getComponent<ActorComponent>()->getPosition();
-
- // We have no target - let's wander around
- if (mStrollTimeout.expired() &&
- position == beingComponent->getDestination())
- {
- if (mKillStealProtectedTimeout.expired())
- {
- unsigned range = mSpecy->getStrollRange();
- if (range)
- {
- Point randomPos(rand() % (range * 2 + 1) - range + position.x,
- rand() % (range * 2 + 1) - range + position.y);
- // Don't allow negative destinations, to avoid rounding
- // problems when divided by tile size
- if (randomPos.x >= 0 && randomPos.y >= 0)
- beingComponent->setDestination(entity, randomPos);
- }
- mStrollTimeout.set(10 + rand() % 10);
- }
- }
}
-int MonsterComponent::calculatePositionPriority(Entity &entity,
- Point position,
- int targetPriority)
-{
- Point thisPos = entity.getComponent<ActorComponent>()->getPosition();
-
- unsigned range = mSpecy->getTrackRange();
-
- Map *map = entity.getMap()->getMap();
- int tileWidth = map->getTileWidth();
- int tileHeight = map->getTileHeight();
-
- // Check if we already are on this position
- if (thisPos.x / tileWidth == position.x / tileWidth &&
- thisPos.y / tileHeight == position.y / tileHeight)
- {
- return targetPriority *= range;
- }
-
- Path path;
- path = map->findPath(thisPos.x / tileWidth, thisPos.y / tileHeight,
- position.x / tileWidth, position.y / tileHeight,
- entity.getComponent<ActorComponent>()->getWalkMask(),
- range);
-
- if (path.empty() || path.size() >= range)
- {
- return 0;
- }
- else
- {
- return targetPriority * (range - path.size());
- }
-}
void MonsterComponent::monsterDied(Entity *monster)
{
mDecayTimeout.set(DECAY_TIME);