mirror of
https://github.com/devZoGok/PlanetFleet.git
synced 2026-08-27 12:03:31 +00:00
54 lines
1.6 KiB
C++
Executable File
54 lines
1.6 KiB
C++
Executable File
#include <quaternion.h>
|
|
|
|
#include <stateManager.h>
|
|
|
|
#include "demoJet.h"
|
|
#include "inGameAppState.h"
|
|
#include "util.h"
|
|
|
|
using namespace vb01;
|
|
|
|
namespace battleship{
|
|
DemoJet::DemoJet(Player *player, Vector3 pos, int id, bool onBoard) : Jet(player, pos, id,onBoard) {}
|
|
|
|
void DemoJet::attack(Order order){
|
|
if(!onBoard){
|
|
Unit::attack(order);
|
|
Vector3 target = *order.targets[0].pos;
|
|
float angle = dirVec.getAngleBetween(target - pos);
|
|
Vector3 axis = dirVec.cross(target - pos);
|
|
|
|
if(maxTurnAngle < angle / PI * 180){
|
|
Quaternion rotQuat = Quaternion(maxTurnAngle / 180 * PI, axis);
|
|
orientUnit(rotQuat*dirVec);
|
|
}
|
|
}
|
|
else
|
|
takeOff();
|
|
}
|
|
|
|
void DemoJet::update(){
|
|
Jet::update();
|
|
if(!onBoard&&!orders.empty()&&orders[0].type==Order::TYPE::ATTACK){
|
|
GameManager *gm = GameManager::getSingleton();
|
|
/*
|
|
ISceneManager *smgr = gm->getDevice()->getSceneManager();
|
|
ISceneNode *collNode = castRay(smgr,pos,pos+dirVec*length);
|
|
|
|
if(collNode && collNode != node){
|
|
InGameAppState *inGameState = ((InGameAppState*)gm->getStateManager()->getAppState(AppStateTypes::IN_GAME_STATE));
|
|
|
|
for(Player *p : inGameState->getPlayers())
|
|
for(Unit *u : p->getUnits())
|
|
if(u->getNode() == collNode)
|
|
u->takeDamage(damage);
|
|
|
|
blowUp();
|
|
}
|
|
else if(pos.y<0)
|
|
blowUp();
|
|
*/
|
|
}
|
|
}
|
|
}
|