Spieler.h 3.9 KB

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