From a3e91f58e3aac2c35f70a74187fa2c242e59a647 Mon Sep 17 00:00:00 2001 From: Philipp Sehmisch Date: Wed, 13 Feb 2008 22:24:27 +0000 Subject: Implemented monster mutation. --- src/game-server/monster.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/game-server/monster.cpp') diff --git a/src/game-server/monster.cpp b/src/game-server/monster.cpp index 772942d5..4eb90483 100644 --- a/src/game-server/monster.cpp +++ b/src/game-server/monster.cpp @@ -28,6 +28,8 @@ #include "game-server/state.hpp" #include "utils/logger.h" +#include + ItemClass *MonsterClass::getRandomDrop() const { int p = rand() / (RAND_MAX / 10000); @@ -67,9 +69,15 @@ Monster::Monster(MonsterClass *specy): LOG_DEBUG("Monster spawned!"); // get basic attributes from monster database + int mutation = specy->getMutation(); for (int i = BASE_ATTR_BEGIN; i < BASE_ATTR_END; i++) { - setAttribute(i, specy->getAttribute(i)); + float attr = (float)specy->getAttribute(i); + if (mutation) + { + attr *= (100 + (rand()%(mutation * 2)) - mutation) / 100.0f; + } + setAttribute(i, (int)std::ceil(attr)); } setSpeed(specy->getSpeed()); -- cgit v1.2.3-60-g2f50