Spieler.h 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  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
  21. {
  22. private:
  23. // antrieb
  24. Vertex stL;
  25. Vertex kL;
  26. Vertex stR;
  27. Vertex kR;
  28. Vertex stM;
  29. Vertex kM;
  30. float rSpeed;
  31. int accountId;
  32. int sNum;
  33. int farbe;
  34. Model2D *ship;
  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. int ref;
  45. // Raumschiff Eigenschaften
  46. Vec2< double > startPos;
  47. Vec2< double > pos;
  48. Vec2< double > speed;
  49. double rotation;
  50. double beschleunigung;
  51. double beschleunigungStart;
  52. double energie;
  53. double stability;
  54. double reparatur;
  55. double laserIntensity;
  56. double laserEffizienz;
  57. double akkuLeistung;
  58. double akkuLeistungStart;
  59. double maxEnergie;
  60. double maxStability;
  61. double laserTempo;
  62. double netzwerk;
  63. double wendigkeit;
  64. double wendigkeitStart;
  65. double antriebEffizienz;
  66. double energieSchild;
  67. double energieSchildEffizienz;
  68. int skillPunkte;
  69. // Statistik Werte
  70. double schadenBekommen;
  71. double schadenGemacht;
  72. double treibstoffVerbraucht;
  73. int shots;
  74. int treffer;
  75. int punkte;
  76. int kills;
  77. int tode;
  78. double zeitAmLeben;
  79. double zeitTod;
  80. public:
  81. // Konstruktor
  82. Spieler( SpielerStr *zStr );
  83. // Destruktor
  84. ~Spieler();
  85. // nicht constant
  86. void offline();
  87. void online( SSKlientV *zKlient );
  88. void setModelData( Model2DData *data );
  89. void setAccountId( int id );
  90. void setTeam( Team *team );
  91. void setSpielerFarbe( int farbe );
  92. void setGeschwindigkeit( double xSpeed, double ySpeed );
  93. void setPosition( Vec2< double > p );
  94. void setKlient( Klient *klient );
  95. bool setTastataturStatus( TastaturStatus ts, bool aktiv );
  96. int tick( double zeit, Karte *zMap );
  97. bool setSkill( int art );
  98. Laser *getLaser( int sId );
  99. bool nimmSchaden( double &intensity );
  100. void machSchaden( double intensity, bool kill );
  101. // constant
  102. int getAccountId() const;
  103. bool istOnline() const;
  104. Klient *zKlient() const;
  105. bool istTreffer( Vec2< float > pos ) const;
  106. // Raumschiff Eigenschaften
  107. Vec2< double > getPos() const;
  108. Vec2< double > getSpeed() const;
  109. double getRotation() const;
  110. double getTeamMaxEnergieBonus() const;
  111. double getTeamMaxStabilityBonus() const;
  112. double getTeamReparaturBonus() const;
  113. double getTeamLaserIntensityBonus() const;
  114. double getTeamLaserEffizienzBonus() const;
  115. double getTeamAkkuLeistungBonus() const;
  116. double getTeamLaserTempoBonus() const;
  117. double getTeamBeschleunigungBonus() const;
  118. double getTeamWendigkeitBonus() const;
  119. double getTeamAntriebEffizienzBonus() const;
  120. double getTeamEnergieSchildBonus() const;
  121. double getTeamEnergieSchildEffizienzBonus() const;
  122. bool istAmLeben() const;
  123. // Statistik Werte
  124. int getSpielerNummer() const;
  125. Team *zTeam() const;
  126. int getSpielerFarbe() const;
  127. int getSchadenBekommen() const;
  128. int getSchadenGemacht() const;
  129. int getTreibstoffVerbraucht() const;
  130. int getShots() const;
  131. int getTreffer() const;
  132. int getPunkte() const;
  133. int getKills() const;
  134. int getTode() const;
  135. int getZeitAmLeben() const;
  136. int getZeitTod() const;
  137. // Reference Counting
  138. Spieler *getThis();
  139. Spieler *release();
  140. };
  141. #endif