123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190 |
- #ifndef Spieler_H
- #define Spieler_H
- #include <KSGNetwork.h>
- #include <Model2D.h>
- #include <TextFeld.h>
- #include <Animation.h>
- #include "../Team/Team.h"
- #include "../Karte/Strukturen.h"
- #include "DeadPlayer.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 : public Model2DObject
- {
- friend class SpielerGUI;
- private:
- int accountId;
- int sNum;
- bool tastatur[ T_MAX ];
- Team *team;
- KSGClient::InformationServerClient *info;
- Text *name;
- Vertex stL;
- Vertex kL;
- Vertex stR;
- Vertex kR;
- Vertex stM;
- Vertex kM;
- struct SpielerDataSave
- {
- float rSpeed;
- Vertex pos;
- Vertex speed;
- float rotation;
- int farbe;
- bool amLeben;
- double schussAbk;
- double energieAbk;
- double repAbk;
- double reinkAbk;
- int maxReinkAbk;
- Vertex startPos;
- 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 energieSchild;
- double energieSchildEffizienz;
- double zeitAmLeben;
- double zeitTod;
- double schadenBekommen;
- double schadenGemacht;
- double treibstoffVerbraucht;
- int schüsse;
- int treffer;
- int punkte;
- int kills;
- int tode;
- };
- int farbe;
- bool amLeben;
- double schussAbk;
- double energieAbk;
- double repAbk;
- double reinkAbk;
- int maxReinkAbk;
- Vertex startPos;
- 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 energieSchild;
- double energieSchildEffizienz;
- double zeitAmLeben;
- double zeitTod;
- double schadenBekommen;
- double schadenGemacht;
- double treibstoffVerbraucht;
- int schüsse;
- int treffer;
- int punkte;
- int kills;
- int tode;
- SpielerDataSave last;
- int skillPunkte;
- Textur2D *flammenM;
- Textur2D *flammenL;
- Textur2D *flammenR;
- TextFeld *nText;
- DeadPlayer *deadPlayer;
- float ep;
- float nextSkillEp;
- 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 setTastataturStatus( TastaturStatus ts, bool aktiv );
- bool tick( const WeltInfo &info, double zeit ) override;
- void render( Mat3< float > &kamMat, Bild &zRObj, const char *kamName ) override;
- void renderLeben( const Mat3< float > &kamMat, Bild &zRObj );
- void setSkill( int art );
- void nimmSchaden( double &intensität );
- void calcDeadPlayerObject( Laser *zSchuss );
- void machSchaden( double intensität );
- void addKill();
- DeadPlayer *sterben();
- void wiederbelebung();
- void hatGeschossen();
- void addTreffer( float indens );
- void addEp( float ep );
- void save();
- void load();
- // constant
- float getEp() const;
- float getMaxEp() 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;
- 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;
- double getTeamEnergieSchildBonus() const;
- double getTeamEnergieSchildEffizienzBonus() const;
- int getSkillP() const;
- };
- #endif
|