Spieler.h 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  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. int skillPunkte;
  67. // Statistik Werte
  68. double schadenBekommen;
  69. double schadenGemacht;
  70. double treibstoffVerbraucht;
  71. int shots;
  72. int treffer;
  73. int punkte;
  74. int kills;
  75. int tode;
  76. double zeitAmLeben;
  77. double zeitTod;
  78. public:
  79. // Konstruktor
  80. Spieler( SpielerStr *zStr );
  81. // Destruktor
  82. ~Spieler();
  83. // nicht constant
  84. void offline();
  85. void online( SSKlientV *zKlient );
  86. void setModelData( Model2DData *data );
  87. void setAccountId( int id );
  88. void setTeam( Team *team );
  89. void setSpielerFarbe( int farbe );
  90. void setGeschwindigkeit( double xSpeed, double ySpeed );
  91. void setPosition( Vec2< double > p );
  92. void setKlient( Klient *klient );
  93. bool setTastataturStatus( TastaturStatus ts, bool aktiv );
  94. int tick( double zeit, Karte *zMap );
  95. bool setSkill( int art );
  96. Laser *getLaser( int sId );
  97. bool nimmSchaden( double intensity );
  98. void machSchaden( double intensity, bool kill );
  99. // constant
  100. int getAccountId() const;
  101. bool istOnline() const;
  102. Klient *zKlient() const;
  103. bool istTreffer( Vec2< float > pos ) const;
  104. // Raumschiff Eigenschaften
  105. Vec2< double > getPos() const;
  106. Vec2< double > getSpeed() const;
  107. double getRotation() const;
  108. double getTeamMaxEnergieBonus() const;
  109. double getTeamMaxStabilityBonus() const;
  110. double getTeamReparaturBonus() const;
  111. double getTeamLaserIntensityBonus() const;
  112. double getTeamLaserEffizienzBonus() const;
  113. double getTeamAkkuLeistungBonus() const;
  114. double getTeamLaserTempoBonus() const;
  115. double getTeamBeschleunigungBonus() const;
  116. double getTeamWendigkeitBonus() const;
  117. double getTeamAntriebEffizienzBonus() const;
  118. bool istAmLeben() const;
  119. // Statistik Werte
  120. int getSpielerNummer() const;
  121. Team *zTeam() const;
  122. int getSpielerFarbe() const;
  123. int getSchadenBekommen() const;
  124. int getSchadenGemacht() const;
  125. int getTreibstoffVerbraucht() const;
  126. int getShots() const;
  127. int getTreffer() const;
  128. int getPunkte() const;
  129. int getKills() const;
  130. int getTode() const;
  131. int getZeitAmLeben() const;
  132. int getZeitTod() const;
  133. // Reference Counting
  134. Spieler *getThis();
  135. Spieler *release();
  136. };
  137. #endif