Spieler.h 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. #ifndef Spieler_H
  2. #define Spieler_H
  3. #include <KSGKlientV.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. class Team;
  11. class Laser;
  12. class Karte;
  13. class Ship;
  14. enum TastaturStatus
  15. {
  16. T_GAS,
  17. T_ROT_L,
  18. T_ROT_R,
  19. T_FEUER,
  20. T_MAX
  21. };
  22. class Spieler
  23. {
  24. friend class Ship;
  25. private:
  26. int accountId;
  27. int sNum;
  28. int farbe;
  29. Model2D *ship;
  30. Team *team;
  31. InformationKlientV *info;
  32. Text *name;
  33. bool tastatur[ T_MAX ];
  34. bool amLeben;
  35. double schussAbk;
  36. double repAbk;
  37. double reinkAbk;
  38. int maxReinkAbk;
  39. int spielZeit;
  40. int stopXSpeedT;
  41. int stopYSpeedT;
  42. double stopXSpeed;
  43. double stopYSpeed;
  44. int ref;
  45. // Raumschiff Eigenschaften
  46. Punkt startPos;
  47. Vec2< double > pos;
  48. Vec2< double > speed;
  49. double rotation;
  50. double beschleunigung;
  51. double energie;
  52. double stabilität;
  53. double reparatur;
  54. double laserIntensität;
  55. double laserEffizienz;
  56. double akkuLeistung;
  57. double maxEnergie;
  58. double maxStabilität;
  59. double laserTempo;
  60. double netzwerk;
  61. double wendigkeit;
  62. int skillPunkte;
  63. // Statistik Werte
  64. double schadenBekommen;
  65. double schadenGemacht;
  66. double treibstoffVerbraucht;
  67. int schüsse;
  68. int treffer;
  69. int punkte;
  70. int kills;
  71. int tode;
  72. double zeitAmLeben;
  73. double zeitTod;
  74. Textur2D *flammenM;
  75. Textur2D *flammenL;
  76. Textur2D *flammenR;
  77. // Namen Anzeige
  78. TextFeld *nText;
  79. double calculateLaserCost();
  80. public:
  81. // Konstruktor
  82. Spieler( InformationKlientV *zInfoK, Schrift *zSchrift, SpielerStr *zStr );
  83. // Destruktor
  84. ~Spieler();
  85. // nicht constant
  86. void setModelData( Model2DData *data, Animation2DData *zFStart, Animation2DData *zFBurn );
  87. void setAccountId( int accId );
  88. void setTeam( Team *team );
  89. void setSpielerFarbe( int fc, Bild *zTextur );
  90. void setGeschwindigkeit( double xSpeed, double ySpeed );
  91. void setPosition( Vec2< double > p );
  92. void setTastataturStatus( TastaturStatus ts, bool aktiv, int sZ, Karte *zMap );
  93. bool tick( Karte *zMap );
  94. void render( Bild &zRObj );
  95. void renderLeben( Bild &zRObj );
  96. void renderMinimap( Bild &zRObj, Karte *zMap );
  97. void setSkill( int art );
  98. void nimmSchaden( double intensität );
  99. void machSchaden( double intensität );
  100. void addKill();
  101. void sterben();
  102. void wiederbelebung();
  103. void setMoveZeit( int z, Karte *zMap );
  104. void hatGeschossen();
  105. // constant
  106. int getAccountId() const;
  107. Text *getName() const;
  108. Text *zName() const;
  109. bool hatSkill() const;
  110. bool istAmLeben() const;
  111. // Statistik Werte
  112. int getSpielerNummer() const;
  113. Team *zTeam() const;
  114. int getSpielerFarbe() const;
  115. int getSchadenBekommen() const;
  116. int getSchadenGemacht() const;
  117. int getTreibstoffVerbraucht() const;
  118. int getSchüsse() const;
  119. int getTreffer() const;
  120. int getPunkte() const;
  121. int getKills() const;
  122. int getTode() const;
  123. int getZeitAmLeben() const;
  124. int getZeitTod() const;
  125. Punkt getPos() const;
  126. double getTeamMaxEnergieBonus() const;
  127. double getTeamMaxStabilitätBonus() const;
  128. double getTeamReparaturBonus() const;
  129. double getTeamLaserIntensitätBonus() const;
  130. double getTeamLaserEffizienzBonus() const;
  131. double getTeamAkkuLeistungBonus() const;
  132. double getTeamLaserTempoBonus() const;
  133. double getTeamBeschleunigungBonus() const;
  134. double getTeamWendigkeitBonus() const;
  135. // Reference Counting
  136. Spieler *getThis();
  137. Spieler *release();
  138. };
  139. #endif