2016-09-27 16:23:58 +00:00
|
|
|
#pragma once
|
|
|
|
|
2016-09-27 20:35:16 +00:00
|
|
|
#include <string>
|
2016-09-27 16:23:58 +00:00
|
|
|
#include <deque>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
#include <glm/vec2.hpp>
|
|
|
|
#include <glm/vec3.hpp>
|
|
|
|
|
|
|
|
namespace game {
|
|
|
|
class Ship;
|
|
|
|
class Command;
|
|
|
|
class Missile;
|
|
|
|
|
|
|
|
class Player {
|
|
|
|
public:
|
|
|
|
int id;
|
|
|
|
bool alive;
|
2016-09-27 20:35:16 +00:00
|
|
|
float speed;
|
2016-09-27 16:23:58 +00:00
|
|
|
float energy;
|
|
|
|
float deadTimeCounter;
|
|
|
|
Ship *ship;
|
2016-09-27 20:35:16 +00:00
|
|
|
std::string name;
|
2016-09-27 16:23:58 +00:00
|
|
|
std::vector<Missile*> missiles;
|
|
|
|
|
2016-09-27 20:35:16 +00:00
|
|
|
Player(int id) : id(id), alive(true), speed(0.01), energy(0.0), ship(nullptr), name("<unnamed>")
|
2016-09-27 16:23:58 +00:00
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
void addCommand(Command *cmd);
|
|
|
|
bool hasCommandInQueue();
|
|
|
|
|
|
|
|
Command *peekCommand();
|
|
|
|
void popCommand();
|
|
|
|
|
|
|
|
private:
|
|
|
|
std::deque<Command*> commands;
|
|
|
|
};
|
|
|
|
}
|