Spieler.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. #ifndef Spieler_H
  2. #define Spieler_H
  3. #include <KSGNetwork.h>
  4. #include <Model2D.h>
  5. #include <TextFeld.h>
  6. #include <Animation.h>
  7. #include "..\Kamera\Kamera.h"
  8. #include "../Team/Team.h"
  9. #include "../Karte/Strukturen.h"
  10. #include "DeadPlayer.h"
  11. class Team;
  12. class Laser;
  13. class Karte;
  14. class SpielerGUI;
  15. enum TastaturStatus
  16. {
  17. T_GAS,
  18. T_ROT_L,
  19. T_ROT_R,
  20. T_FEUER,
  21. T_MAX
  22. };
  23. class Spieler
  24. {
  25. friend class SpielerGUI;
  26. private:
  27. int accountId;
  28. int sNum;
  29. bool tastatur[ T_MAX ];
  30. Textur2D *textur;
  31. Model2D *ship;
  32. Team *team;
  33. KSGClient::InformationServerClient *info;
  34. Text *name;
  35. Vertex stL;
  36. Vertex kL;
  37. Vertex stR;
  38. Vertex kR;
  39. Vertex stM;
  40. Vertex kM;
  41. double akkuLeistungStart;
  42. double beschleunigungStart;
  43. double wendigkeitStart;
  44. struct SpielerDataSave
  45. {
  46. float rSpeed;
  47. int farbe;
  48. bool amLeben;
  49. double schussAbk;
  50. double energieAbk;
  51. double repAbk;
  52. double reinkAbk;
  53. int maxReinkAbk;
  54. int spielZeit;
  55. Punkt startPos;
  56. Vec2< double > pos;
  57. Vec2< double > speed;
  58. double rotation;
  59. double beschleunigung;
  60. double energie;
  61. double stabilität;
  62. double reparatur;
  63. double laserIntensität;
  64. double laserEffizienz;
  65. double akkuLeistung;
  66. double maxEnergie;
  67. double maxStabilität;
  68. double laserTempo;
  69. double netzwerk;
  70. double wendigkeit;
  71. double antriebEffizienz;
  72. double energieSchild;
  73. double energieSchildEffizienz;
  74. double zeitAmLeben;
  75. double zeitTod;
  76. double schadenBekommen;
  77. double schadenGemacht;
  78. double treibstoffVerbraucht;
  79. int schüsse;
  80. int treffer;
  81. int punkte;
  82. int kills;
  83. int tode;
  84. };
  85. SpielerDataSave last;
  86. SpielerDataSave current;
  87. int ref;
  88. int skillPunkte;
  89. Textur2D *flammenM;
  90. Textur2D *flammenL;
  91. Textur2D *flammenR;
  92. TextFeld *nText;
  93. DeadPlayer *deadPlayer;
  94. double calculateLaserCost();
  95. public:
  96. // Konstruktor
  97. Spieler( KSGClient::InformationServerClient *zInfoK, Schrift *zSchrift, SpielerStr *zStr );
  98. // Destruktor
  99. ~Spieler();
  100. // nicht constant
  101. void setModelData( Model2DData *data, Animation2DData *zFStart, Animation2DData *zFBurn );
  102. void setAccountId( int accId );
  103. void setTeam( Team *team );
  104. void setSpielerFarbe( int fc, Bild *zTextur );
  105. void setGeschwindigkeit( double xSpeed, double ySpeed );
  106. void setPosition( Vec2< double > p );
  107. void setTastataturStatus( TastaturStatus ts, bool aktiv, int sZ, Karte *zMap );
  108. bool tick( int time, Karte *zMap );
  109. void render( Bild &zRObj );
  110. void renderLeben( Bild &zRObj );
  111. void renderMinimap( Bild &zRObj, Karte *zMap, int thisSpielerNummer );
  112. void setSkill( int art );
  113. void nimmSchaden( double &intensität );
  114. void calcDeadPlayerObject( Laser *zSchuss );
  115. void machSchaden( double intensität );
  116. void addKill();
  117. DeadPlayer *sterben();
  118. void wiederbelebung();
  119. void resetToSaveTime( int t, Karte *zMap );
  120. void resetToGameTime( int t, Karte *zMap );
  121. void hatGeschossen();
  122. // constant
  123. Vec2< double > getSpeed() const;
  124. int getAccountId() const;
  125. Text *getName() const;
  126. Text *zName() const;
  127. bool hatSkill() const;
  128. bool istAmLeben() const;
  129. // Statistik Werte
  130. int getSpielerNummer() const;
  131. Team *zTeam() const;
  132. int getSpielerFarbe() const;
  133. int getSchadenBekommen() const;
  134. int getSchadenGemacht() const;
  135. int getTreibstoffVerbraucht() const;
  136. int getSchüsse() const;
  137. int getTreffer() const;
  138. int getPunkte() const;
  139. int getKills() const;
  140. int getTode() const;
  141. int getZeitAmLeben() const;
  142. int getZeitTod() const;
  143. Punkt getPos() const;
  144. double getTeamMaxEnergieBonus() const;
  145. double getTeamMaxStabilitätBonus() const;
  146. double getTeamReparaturBonus() const;
  147. double getTeamLaserIntensitätBonus() const;
  148. double getTeamLaserEffizienzBonus() const;
  149. double getTeamAkkuLeistungBonus() const;
  150. double getTeamLaserTempoBonus() const;
  151. double getTeamBeschleunigungBonus() const;
  152. double getTeamWendigkeitBonus() const;
  153. double getTeamAntriebEffizienzBonus() const;
  154. double getTeamEnergieSchildBonus() const;
  155. double getTeamEnergieSchildEffizienzBonus() const;
  156. // Reference Counting
  157. Spieler *getThis();
  158. Spieler *release();
  159. };
  160. #endif