summaryrefslogtreecommitdiff
path: root/src/game-server/monster.hpp
diff options
context:
space:
mode:
authorPhilipp Sehmisch <tmw@crushnet.org>2007-03-30 17:27:11 +0000
committerPhilipp Sehmisch <tmw@crushnet.org>2007-03-30 17:27:11 +0000
commitdc054c19aefcc9ca20aa0d4104386886a912a9d7 (patch)
tree4faf4a5bc26ac85d1300ca2f3346d4838807013c /src/game-server/monster.hpp
parent24dd2d0a7878f3e1e72a4d857a57bd9c7ea5a25e (diff)
downloadmanaserv-dc054c19aefcc9ca20aa0d4104386886a912a9d7.tar.gz
manaserv-dc054c19aefcc9ca20aa0d4104386886a912a9d7.tar.bz2
manaserv-dc054c19aefcc9ca20aa0d4104386886a912a9d7.tar.xz
manaserv-dc054c19aefcc9ca20aa0d4104386886a912a9d7.zip
Renamed "Controlled" to "Monster" and moved it into the game-server directory.
Diffstat (limited to 'src/game-server/monster.hpp')
-rw-r--r--src/game-server/monster.hpp149
1 files changed, 149 insertions, 0 deletions
diff --git a/src/game-server/monster.hpp b/src/game-server/monster.hpp
new file mode 100644
index 00000000..cc8df0bc
--- /dev/null
+++ b/src/game-server/monster.hpp
@@ -0,0 +1,149 @@
+/*
+ * The Mana World Server
+ * Copyright 2004 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * The Mana World is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or any later version.
+ *
+ * The Mana World is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with The Mana World; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * $Id: controller.h 3191 2007-03-15 23:47:13Z crush_tmw $
+ */
+
+#ifndef _TMWSERV_CONTROLLER_H_
+#define _TMWSERV_CONTROLLER_H_
+
+#include "game-server/being.hpp"
+
+/**
+ * The class for a fightable monster with its own AI
+ */
+class Monster: public Being
+{
+ public:
+ /**
+ * Constructor.
+ */
+ Monster();
+
+ /**
+ * Performs one step of controller logic.
+ */
+ void update();
+
+ /**
+ * Kills the being
+ */
+ virtual void die();
+
+ protected:
+ /**
+ * Gets the stats of the currently equipped weapon that are relevant
+ * for damage calculation
+ */
+ virtual WeaponStats getWeaponStats();
+
+ /**
+ * Calculates all derived attributes
+ */
+ void calculateDerivedAttributes();
+
+ private:
+ /** Count down till next random movement (temporary). */
+ unsigned int mCountDown;
+};
+
+#endif // _TMWSERV_CONTROLLER_H_
+/*
+ * The Mana World Server
+ * Copyright 2004 The Mana World Development Team
+ *
+ * This file is part of The Mana World.
+ *
+ * The Mana World is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License as published by the Free
+ * Software Foundation; either version 2 of the License, or any later version.
+ *
+ * The Mana World is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with The Mana World; if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ * $Id: controller.h 3191 2007-03-15 23:47:13Z crush_tmw $
+ */
+
+#ifndef _TMWSERV_CONTROLLER_H_
+#define _TMWSERV_CONTROLLER_H_
+
+#include "game-server/being.hpp"
+
+#include "utils/safeptr.hpp"
+
+/**
+ * The class for a fightable monster with its own AI
+ */
+class Monster: public Being
+{
+ public:
+ /**
+ * Constructor.
+ */
+ Monster();
+
+ /**
+ * Performs one step of controller logic.
+ */
+ void update();
+
+ /**
+ * Kills the being
+ */
+ virtual void die();
+
+ /**
+ *
+ */
+ virtual int damage(Damage);
+
+ protected:
+ /**
+ * Gets the stats of the currently equipped weapon that are relevant
+ * for damage calculation
+ */
+ virtual WeaponStats getWeaponStats();
+
+ /**
+ * Calculates all derived attributes
+ */
+ void calculateDerivedAttributes();
+
+ private:
+ /** Count down till next random movement (temporary). */
+ unsigned int mCountDown;
+
+ /** List of targets and how much priority they have */
+ struct BattleLogEntry
+ {
+ int timestamp;
+ SafePtr attacker;
+ int skill;
+ int value;
+ };
+ std::list<BattleLogEntry> battleLog;
+};
+
+#endif // _TMWSERV_CONTROLLER_H_