#ifndef Spieler_H #define Spieler_H #include #include #include "Strukturen.h" class Team; class Laser; class Karte; class Klient; class SSKlientV; using namespace Framework; enum TastaturStatus { T_GAS, T_ROT_L, T_ROT_R, T_FEUER, T_MAX }; class Spieler { private: // antrieb Vertex stL; Vertex kL; Vertex stR; Vertex kR; Vertex stM; Vertex kM; float rSpeed; int accountId; int sNum; int farbe; Model2D *ship; Team *team; Klient *klient; bool tastatur[ T_MAX ]; bool amLeben; double schussAbk; double energieAbk; double repAbk; double reinkAbk; int maxReinkAbk; int ref; // Raumschiff Eigenschaften Vec2< double > startPos; Vec2< double > pos; Vec2< double > speed; double rotation; double beschleunigung; double beschleunigungStart; double energie; double stability; double reparatur; double laserIntensity; double laserEffizienz; double akkuLeistung; double akkuLeistungStart; double maxEnergie; double maxStability; double laserTempo; double netzwerk; double wendigkeit; double wendigkeitStart; double antriebEffizienz; int skillPunkte; // Statistik Werte double schadenBekommen; double schadenGemacht; double treibstoffVerbraucht; int shots; int treffer; int punkte; int kills; int tode; double zeitAmLeben; double zeitTod; public: // Konstruktor Spieler( SpielerStr *zStr ); // Destruktor ~Spieler(); // nicht constant void offline(); void online( SSKlientV *zKlient ); void setModelData( Model2DData *data ); void setAccountId( int id ); void setTeam( Team *team ); void setSpielerFarbe( int farbe ); void setGeschwindigkeit( double xSpeed, double ySpeed ); void setPosition( Vec2< double > p ); void setKlient( Klient *klient ); bool setTastataturStatus( TastaturStatus ts, bool aktiv ); int tick( double zeit, Karte *zMap ); bool setSkill( int art ); Laser *getLaser( int sId ); bool nimmSchaden( double intensity ); void machSchaden( double intensity, bool kill ); // constant int getAccountId() const; bool istOnline() const; Klient *zKlient() const; bool istTreffer( Vec2< float > pos ) const; // Raumschiff Eigenschaften Vec2< double > getPos() const; Vec2< double > getSpeed() const; double getRotation() const; double getTeamMaxEnergieBonus() const; double getTeamMaxStabilityBonus() const; double getTeamReparaturBonus() const; double getTeamLaserIntensityBonus() const; double getTeamLaserEffizienzBonus() const; double getTeamAkkuLeistungBonus() const; double getTeamLaserTempoBonus() const; double getTeamBeschleunigungBonus() const; double getTeamWendigkeitBonus() const; double getTeamAntriebEffizienzBonus() const; bool istAmLeben() const; // Statistik Werte int getSpielerNummer() const; Team *zTeam() const; int getSpielerFarbe() const; int getSchadenBekommen() const; int getSchadenGemacht() const; int getTreibstoffVerbraucht() const; int getShots() const; int getTreffer() const; int getPunkte() const; int getKills() const; int getTode() const; int getZeitAmLeben() const; int getZeitTod() const; // Reference Counting Spieler *getThis(); Spieler *release(); }; #endif