diff --git a/pointDefense.cpp b/pointDefense.cpp index 1a5336d..47faeab 100644 --- a/pointDefense.cpp +++ b/pointDefense.cpp @@ -7,36 +7,11 @@ namespace battleship{ using namespace std; using namespace gameBase; - PointDefense::PointDefense(Player *player, int id, Vector3 pos, Quaternion rot, int buildStatus, Unit::State state) : Structure(player, id, pos, rot, buildStatus, state){ - turretDir = dirVec; - } + PointDefense::PointDefense(Player *player, int id, Vector3 pos, Quaternion rot, int buildStatus, Unit::State state) : Structure(player, id, pos, rot, buildStatus, state){} void PointDefense::attack(Order order){ if(!isComplete()) return; - Unit *targUnit = order.targets[0].unit; - Vector3 targDir = (targUnit ? targUnit->getPos() : order.targets[0].pos) - pos; - - if(targDir.getLength() > weapons[0]->getMaxRange()){ - removeOrder(0); - return; - } - - float angleToTarg = targDir.norm().getAngleBetween(turretDir); - - if(angleToTarg > .05) - rotateTurret(calculateRotation(targDir.norm(), angleToTarg, .1)); - else - weapons[0]->fire(order); - Unit::attack(order); } - - void PointDefense::rotateTurret(float angle){ - string nodeName = generateView()[GameObject::getGameObjTableName()][id + 1]["turretNode"]; - Node *turretNode = model->findDescendant(nodeName, true); - Quaternion rotQuat = Quaternion(angle, Vector3::VEC_J); - turretNode->setOrientation(rotQuat * turretNode->getOrientation()); - turretDir = rotQuat * turretDir; - } } diff --git a/pointDefense.h b/pointDefense.h index 3004f58..b5f6746 100644 --- a/pointDefense.h +++ b/pointDefense.h @@ -8,10 +8,7 @@ namespace battleship{ public: PointDefense(Player*, int, vb01::Vector3, vb01::Quaternion, int, Unit::State); private: - vb01::Vector3 turretDir; - void attack(Order); - void rotateTurret(float); }; }