Spieler.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  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 level;
  32. int accountId;
  33. int sNum;
  34. int farbe;
  35. Team *team;
  36. Klient *klient;
  37. bool tastatur[ T_MAX ];
  38. bool amLeben;
  39. double schussAbk;
  40. double energieAbk;
  41. double repAbk;
  42. double reinkAbk;
  43. int maxReinkAbk;
  44. // Raumschiff Eigenschaftend
  45. Vertex startPos;
  46. double beschleunigung;
  47. double energie;
  48. double stability;
  49. double reparatur;
  50. double laserIntensity;
  51. double laserEffizienz;
  52. double akkuLeistung;
  53. double maxEnergie;
  54. double maxStability;
  55. double laserTempo;
  56. double netzwerk;
  57. double wendigkeit;
  58. double antriebEffizienz;
  59. double energieSchild;
  60. double energieSchildEffizienz;
  61. int skillPunkte;
  62. // Statistik Werte
  63. double schadenBekommen;
  64. double schadenGemacht;
  65. double treibstoffVerbraucht;
  66. int shots;
  67. int treffer;
  68. int punkte;
  69. int kills;
  70. int tode;
  71. double zeitAmLeben;
  72. double zeitTod;
  73. float ep;
  74. float nextSkillEp;
  75. bool needWiederbelebung;
  76. public:
  77. // Konstruktor
  78. Spieler( SpielerStr *zStr );
  79. // Destruktor
  80. ~Spieler();
  81. // nicht constant
  82. void offline();
  83. void online( SSKlientV *zKlient );
  84. void setModelData( Model2DData *data );
  85. void setAccountId( int id );
  86. void setTeam( Team *team );
  87. void setSpielerFarbe( int farbe );
  88. void setKlient( Klient *klient );
  89. bool setTastataturStatus( TastaturStatus ts, bool aktiv );
  90. bool tick( const WeltInfo &info, double zeit ) override;
  91. bool setSkill( int art );
  92. Laser *getLaser( int sId );
  93. bool nimmSchaden( double &intensity, int sLevel );
  94. void machSchaden( double intensity, bool kill, int sLevel );
  95. void addTreffer( float intensity, int sLevel );
  96. void wiederbeleben();
  97. void addEp( float ep );
  98. // constant
  99. int getAccountId() const;
  100. bool istOnline() const;
  101. Klient *zKlient() const;
  102. bool istTreffer( Vec2< float > pos ) const;
  103. // Raumschiff Eigenschaften
  104. double getTeamMaxEnergieBonus() const;
  105. double getTeamMaxStabilityBonus() const;
  106. double getTeamReparaturBonus() const;
  107. double getTeamLaserIntensityBonus() const;
  108. double getTeamLaserEffizienzBonus() const;
  109. double getTeamAkkuLeistungBonus() const;
  110. double getTeamLaserTempoBonus() const;
  111. double getTeamBeschleunigungBonus() const;
  112. double getTeamWendigkeitBonus() const;
  113. double getTeamAntriebEffizienzBonus() const;
  114. double getTeamEnergieSchildBonus() const;
  115. double getTeamEnergieSchildEffizienzBonus() const;
  116. bool istAmLeben() const;
  117. // Statistik Werte
  118. int getSpielerNummer() const;
  119. Team *zTeam() const;
  120. int getSpielerFarbe() const;
  121. int getSchadenBekommen() const;
  122. int getSchadenGemacht() const;
  123. int getTreibstoffVerbraucht() const;
  124. int getShots() const;
  125. int getTreffer() const;
  126. int getPunkte() const;
  127. int getKills() const;
  128. int getTode() const;
  129. int getZeitAmLeben() const;
  130. int getZeitTod() const;
  131. bool doNeedWiederbelebung() const;
  132. float getEp() const;
  133. int getSkillP() const;
  134. int getLevel() const;
  135. // Reference Counting
  136. Spieler *getThis();
  137. Spieler *release();
  138. };
  139. #endif