diff options
author | Philipp Sehmisch <tmw@crushnet.org> | 2008-09-27 03:55:19 +0000 |
---|---|---|
committer | Philipp Sehmisch <tmw@crushnet.org> | 2008-09-27 03:55:19 +0000 |
commit | 29ae6d3f42ac55e7bc8c5ad0b044c7b0e662d358 (patch) | |
tree | 41ca7bb0f8b557e096a2b783f6c94ea4d3e5006a /src/game-server/monstermanager.cpp | |
parent | c27d73abc52bdc463a029a5f6a95e1db5df5abf6 (diff) | |
download | manaserv-29ae6d3f42ac55e7bc8c5ad0b044c7b0e662d358.tar.gz manaserv-29ae6d3f42ac55e7bc8c5ad0b044c7b0e662d358.tar.bz2 manaserv-29ae6d3f42ac55e7bc8c5ad0b044c7b0e662d358.tar.xz manaserv-29ae6d3f42ac55e7bc8c5ad0b044c7b0e662d358.zip |
Implemented getting the attack zone of weapons from the item database and implemented single target attacks useful for projectile weapons like bows.
Diffstat (limited to 'src/game-server/monstermanager.cpp')
-rw-r--r-- | src/game-server/monstermanager.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/game-server/monstermanager.cpp b/src/game-server/monstermanager.cpp index d7a840e7..a6d22750 100644 --- a/src/game-server/monstermanager.cpp +++ b/src/game-server/monstermanager.cpp @@ -26,6 +26,7 @@ #include "game-server/monstermanager.hpp" #include "defines.h" +#include "game-server/attackzone.hpp" #include "game-server/itemmanager.hpp" #include "game-server/monster.hpp" #include "game-server/resourcemanager.hpp" @@ -223,13 +224,17 @@ void MonsterManager::reload() else if (xmlStrEqual(subnode->name, BAD_CAST "attack")) { MonsterAttack *att = new MonsterAttack; + AttackZone attackZone; att->id = XML::getProperty(subnode, "id", 0); att->priority = XML::getProperty(subnode, "priority", 1); att->damageFactor = XML::getFloatProperty(subnode, "damage-factor", 1.0f); att->preDelay = XML::getProperty(subnode, "pre-delay", 1); att->aftDelay = XML::getProperty(subnode, "aft-delay", 0); - att->range = XML::getProperty(subnode, "range", 1); - att->angle = XML::getProperty(subnode, "angle", 1); + attackZone.multiTarget = true; + attackZone.shape = ATTZONESHAPE_CONE; + attackZone.range = XML::getProperty(subnode, "range", 1); + attackZone.angle = XML::getProperty(subnode, "angle", 1); + att->attackZone = attackZone; std::string sElement = XML::getProperty(subnode, "element", "neutral"); att->element = elementFromString(sElement); std::string sType = XML::getProperty(subnode, "type", "physical"); |