123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- #ifndef Spieler_H
- #define Spieler_H
- #include <KSGNetwork.h>
- #include <Model2D.h>
- #include <TextFeld.h>
- #include <Animation.h>
- #include "..\Kamera\Kamera.h"
- #include "../Team/Team.h"
- #include "../Karte/Strukturen.h"
- class Team;
- class Laser;
- class Karte;
- class SpielerGUI;
- enum TastaturStatus
- {
- T_GAS,
- T_ROT_L,
- T_ROT_R,
- T_FEUER,
- T_MAX
- };
- class Spieler
- {
- friend class SpielerGUI;
- private:
- int accountId;
- int sNum;
- bool tastatur[ T_MAX ];
- Model2D *ship;
- Team *team;
- KSGClient::InformationServerClient *info;
- Text *name;
- Vertex stL;
- Vertex kL;
- Vertex stR;
- Vertex kR;
- Vertex stM;
- Vertex kM;
- double akkuLeistungStart;
- double beschleunigungStart;
- double wendigkeitStart;
- struct SpielerDataSave
- {
- float rSpeed;
- int farbe;
- bool amLeben;
- double schussAbk;
- double energieAbk;
- double repAbk;
- double reinkAbk;
- int maxReinkAbk;
- int spielZeit;
- Punkt startPos;
- Vec2< double > pos;
- Vec2< double > speed;
- double rotation;
- double beschleunigung;
- double energie;
- double stabilität;
- double reparatur;
- double laserIntensität;
- double laserEffizienz;
- double akkuLeistung;
- double maxEnergie;
- double maxStabilität;
- double laserTempo;
- double netzwerk;
- double wendigkeit;
- double antriebEffizienz;
- double zeitAmLeben;
- double zeitTod;
- double schadenBekommen;
- double schadenGemacht;
- double treibstoffVerbraucht;
- int schüsse;
- int treffer;
- int punkte;
- int kills;
- int tode;
- };
- SpielerDataSave last;
- SpielerDataSave current;
- int ref;
- int skillPunkte;
- Textur2D *flammenM;
- Textur2D *flammenL;
- Textur2D *flammenR;
- TextFeld *nText;
- double calculateLaserCost();
- public:
- // Konstruktor
- Spieler( KSGClient::InformationServerClient *zInfoK, Schrift *zSchrift, SpielerStr *zStr );
- // Destruktor
- ~Spieler();
- // nicht constant
- void setModelData( Model2DData *data, Animation2DData *zFStart, Animation2DData *zFBurn );
- void setAccountId( int accId );
- void setTeam( Team *team );
- void setSpielerFarbe( int fc, Bild *zTextur );
- void setGeschwindigkeit( double xSpeed, double ySpeed );
- void setPosition( Vec2< double > p );
- void setTastataturStatus( TastaturStatus ts, bool aktiv, int sZ, Karte *zMap );
- bool tick( int time, Karte *zMap );
- void render( Bild &zRObj );
- void renderLeben( Bild &zRObj );
- void renderMinimap( Bild &zRObj, Karte *zMap, int thisSpielerNummer );
- void setSkill( int art );
- void nimmSchaden( double intensität );
- void machSchaden( double intensität );
- void addKill();
- void sterben();
- void wiederbelebung();
- void resetToSaveTime( int t, Karte *zMap );
- void resetToGameTime( int t, Karte *zMap );
- void hatGeschossen();
- // constant
- Vec2< double > getSpeed() const;
- int getAccountId() const;
- Text *getName() const;
- Text *zName() const;
- bool hatSkill() 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 getSchüsse() const;
- int getTreffer() const;
- int getPunkte() const;
- int getKills() const;
- int getTode() const;
- int getZeitAmLeben() const;
- int getZeitTod() const;
- Punkt getPos() const;
- double getTeamMaxEnergieBonus() const;
- double getTeamMaxStabilitätBonus() const;
- double getTeamReparaturBonus() const;
- double getTeamLaserIntensitätBonus() const;
- double getTeamLaserEffizienzBonus() const;
- double getTeamAkkuLeistungBonus() const;
- double getTeamLaserTempoBonus() const;
- double getTeamBeschleunigungBonus() const;
- double getTeamWendigkeitBonus() const;
- double getTeamAntriebEffizienzBonus() const;
- // Reference Counting
- Spieler *getThis();
- Spieler *release();
- };
- #endif
|