Spieler.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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. WeltInfo wInfo;
  31. int accountId;
  32. int sNum;
  33. int farbe;
  34. Team *team;
  35. Klient *klient;
  36. bool tastatur[ T_MAX ];
  37. bool amLeben;
  38. double schussAbk;
  39. double energieAbk;
  40. double repAbk;
  41. double reinkAbk;
  42. int maxReinkAbk;
  43. // Raumschiff Eigenschaftend
  44. Vertex startPos;
  45. double beschleunigung;
  46. double energie;
  47. double stability;
  48. double reparatur;
  49. double laserIntensity;
  50. double laserEffizienz;
  51. double akkuLeistung;
  52. double maxEnergie;
  53. double maxStability;
  54. double laserTempo;
  55. double netzwerk;
  56. double wendigkeit;
  57. double antriebEffizienz;
  58. double energieSchild;
  59. double energieSchildEffizienz;
  60. int skillPunkte;
  61. // Statistik Werte
  62. double schadenBekommen;
  63. double schadenGemacht;
  64. double treibstoffVerbraucht;
  65. int shots;
  66. int treffer;
  67. int punkte;
  68. int kills;
  69. int tode;
  70. double zeitAmLeben;
  71. double zeitTod;
  72. float ep;
  73. float nextSkillEp;
  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 addTreffer();
  95. void wiederbeleben();
  96. void addEp( float ep );
  97. // constant
  98. int getAccountId() const;
  99. bool istOnline() const;
  100. Klient *zKlient() const;
  101. bool istTreffer( Vec2< float > pos ) const;
  102. // Raumschiff Eigenschaften
  103. double getTeamMaxEnergieBonus() const;
  104. double getTeamMaxStabilityBonus() const;
  105. double getTeamReparaturBonus() const;
  106. double getTeamLaserIntensityBonus() const;
  107. double getTeamLaserEffizienzBonus() const;
  108. double getTeamAkkuLeistungBonus() const;
  109. double getTeamLaserTempoBonus() const;
  110. double getTeamBeschleunigungBonus() const;
  111. double getTeamWendigkeitBonus() const;
  112. double getTeamAntriebEffizienzBonus() const;
  113. double getTeamEnergieSchildBonus() const;
  114. double getTeamEnergieSchildEffizienzBonus() const;
  115. bool istAmLeben() const;
  116. // Statistik Werte
  117. int getSpielerNummer() const;
  118. Team *zTeam() const;
  119. int getSpielerFarbe() const;
  120. int getSchadenBekommen() const;
  121. int getSchadenGemacht() const;
  122. int getTreibstoffVerbraucht() const;
  123. int getShots() const;
  124. int getTreffer() const;
  125. int getPunkte() const;
  126. int getKills() const;
  127. int getTode() const;
  128. int getZeitAmLeben() const;
  129. int getZeitTod() const;
  130. bool doNeedWiederbelebung() const;
  131. // Reference Counting
  132. Spieler *getThis();
  133. Spieler *release();
  134. };
  135. #endif