Spieler.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #ifndef Spieler_H
  2. #define Spieler_H
  3. #include <Bild.h>
  4. #include <Model2D.h>
  5. #include "Strukturen.h"
  6. class Team;
  7. class Laser;
  8. class Karte;
  9. class Klient;
  10. class SSKlientV;
  11. using namespace Framework;
  12. enum TastaturStatus
  13. {
  14. T_GAS,
  15. T_ROT_L,
  16. T_ROT_R,
  17. T_FEUER,
  18. T_MAX
  19. };
  20. class Spieler : public Model2DObject
  21. {
  22. private:
  23. // antrieb
  24. Vertex stL;
  25. Vertex kL;
  26. Vertex stR;
  27. Vertex kR;
  28. Vertex stM;
  29. Vertex kM;
  30. int accountId;
  31. int sNum;
  32. int farbe;
  33. Team *team;
  34. Klient *klient;
  35. bool tastatur[ T_MAX ];
  36. bool amLeben;
  37. double schussAbk;
  38. double energieAbk;
  39. double repAbk;
  40. double reinkAbk;
  41. int maxReinkAbk;
  42. // Raumschiff Eigenschaftend
  43. Vertex startPos;
  44. double beschleunigung;
  45. double beschleunigungStart;
  46. double energie;
  47. double stability;
  48. double reparatur;
  49. double laserIntensity;
  50. double laserEffizienz;
  51. double akkuLeistung;
  52. double akkuLeistungStart;
  53. double maxEnergie;
  54. double maxStability;
  55. double laserTempo;
  56. double netzwerk;
  57. double wendigkeit;
  58. double wendigkeitStart;
  59. double antriebEffizienz;
  60. double energieSchild;
  61. double energieSchildEffizienz;
  62. int skillPunkte;
  63. // Statistik Werte
  64. double schadenBekommen;
  65. double schadenGemacht;
  66. double treibstoffVerbraucht;
  67. int shots;
  68. int treffer;
  69. int punkte;
  70. int kills;
  71. int tode;
  72. double zeitAmLeben;
  73. double zeitTod;
  74. bool needWiederbelebung;
  75. public:
  76. // Konstruktor
  77. Spieler( SpielerStr *zStr );
  78. // Destruktor
  79. ~Spieler();
  80. // nicht constant
  81. void offline();
  82. void online( SSKlientV *zKlient );
  83. void setModelData( Model2DData *data );
  84. void setAccountId( int id );
  85. void setTeam( Team *team );
  86. void setSpielerFarbe( int farbe );
  87. void setKlient( Klient *klient );
  88. bool setTastataturStatus( TastaturStatus ts, bool aktiv );
  89. bool tick( const WeltInfo &info, double zeit ) override;
  90. bool setSkill( int art );
  91. Laser *getLaser( int sId );
  92. bool nimmSchaden( double &intensity );
  93. void machSchaden( double intensity, bool kill );
  94. void wiederbeleben();
  95. // constant
  96. int getAccountId() const;
  97. bool istOnline() const;
  98. Klient *zKlient() const;
  99. bool istTreffer( Vec2< float > pos ) const;
  100. // Raumschiff Eigenschaften
  101. double getTeamMaxEnergieBonus() const;
  102. double getTeamMaxStabilityBonus() const;
  103. double getTeamReparaturBonus() const;
  104. double getTeamLaserIntensityBonus() const;
  105. double getTeamLaserEffizienzBonus() const;
  106. double getTeamAkkuLeistungBonus() const;
  107. double getTeamLaserTempoBonus() const;
  108. double getTeamBeschleunigungBonus() const;
  109. double getTeamWendigkeitBonus() const;
  110. double getTeamAntriebEffizienzBonus() const;
  111. double getTeamEnergieSchildBonus() const;
  112. double getTeamEnergieSchildEffizienzBonus() const;
  113. bool istAmLeben() const;
  114. // Statistik Werte
  115. int getSpielerNummer() const;
  116. Team *zTeam() const;
  117. int getSpielerFarbe() const;
  118. int getSchadenBekommen() const;
  119. int getSchadenGemacht() const;
  120. int getTreibstoffVerbraucht() const;
  121. int getShots() const;
  122. int getTreffer() const;
  123. int getPunkte() const;
  124. int getKills() const;
  125. int getTode() const;
  126. int getZeitAmLeben() const;
  127. int getZeitTod() const;
  128. bool doNeedWiederbelebung() const;
  129. // Reference Counting
  130. Spieler *getThis();
  131. Spieler *release();
  132. };
  133. #endif