Spieler.h 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. #ifndef Spieler_H
  2. #define Spieler_H
  3. #include <KSGNetwork.h>
  4. #include <Model2D.h>
  5. #include <TextFeld.h>
  6. #include <Animation.h>
  7. #include "../Team/Team.h"
  8. #include "../Karte/Strukturen.h"
  9. #include "DeadPlayer.h"
  10. #include "../Skill/Skill.h"
  11. #include <UIInitialization.h>
  12. class Team;
  13. class Laser;
  14. class Karte;
  15. class SpielerGUI;
  16. enum TastaturStatus
  17. {
  18. T_GAS,
  19. T_ROT_L,
  20. T_ROT_R,
  21. T_FEUER,
  22. T_MAX
  23. };
  24. class Spieler : public Model2DObject
  25. {
  26. friend class SpielerGUI;
  27. private:
  28. int accountId;
  29. int sNum;
  30. bool tastatur[ T_MAX ];
  31. Team *zteam;
  32. KSGClient::InformationServerClient *info;
  33. Text *name;
  34. Vertex stL;
  35. Vertex kL;
  36. Vertex stR;
  37. Vertex kR;
  38. Vertex stM;
  39. Vertex kM;
  40. struct SpielerDataSave
  41. {
  42. float rSpeed;
  43. Vertex pos;
  44. Vertex speed;
  45. float rotation;
  46. int farbe;
  47. bool amLeben;
  48. double schussAbk;
  49. double energieAbk;
  50. double repAbk;
  51. double reinkAbk;
  52. int maxReinkAbk;
  53. Vertex startPos;
  54. double beschleunigung;
  55. double energie;
  56. double stabilität;
  57. double reparatur;
  58. double laserIntensität;
  59. double laserEffizienz;
  60. double akkuLeistung;
  61. double maxEnergie;
  62. double maxStabilität;
  63. double laserTempo;
  64. double netzwerk;
  65. double wendigkeit;
  66. double antriebEffizienz;
  67. double energieSchild;
  68. double energieSchildEffizienz;
  69. double zeitAmLeben;
  70. double zeitTod;
  71. double schadenBekommen;
  72. double schadenGemacht;
  73. double treibstoffVerbraucht;
  74. int schüsse;
  75. int treffer;
  76. int punkte;
  77. int kills;
  78. int tode;
  79. int level;
  80. };
  81. RCArray< ActiveSkill > *activeSkills;
  82. int level;
  83. int farbe;
  84. bool amLeben;
  85. double schussAbk;
  86. double energieAbk;
  87. double repAbk;
  88. double reinkAbk;
  89. int maxReinkAbk;
  90. Vertex startPos;
  91. double beschleunigung;
  92. double energie;
  93. double stabilität;
  94. double reparatur;
  95. double laserIntensität;
  96. double laserEffizienz;
  97. double akkuLeistung;
  98. double maxEnergie;
  99. double maxStabilität;
  100. double laserTempo;
  101. double netzwerk;
  102. double wendigkeit;
  103. double antriebEffizienz;
  104. double energieSchild;
  105. double energieSchildEffizienz;
  106. double zeitAmLeben;
  107. double zeitTod;
  108. double schadenBekommen;
  109. double schadenGemacht;
  110. double treibstoffVerbraucht;
  111. int schüsse;
  112. int treffer;
  113. int punkte;
  114. int kills;
  115. int tode;
  116. SpielerDataSave last;
  117. int skillPunkte;
  118. Textur2D *flammenM;
  119. Textur2D *flammenL;
  120. Textur2D *flammenR;
  121. TextFeld *nText;
  122. DeadPlayer *deadPlayer;
  123. float ep;
  124. float nextSkillEp;
  125. double calculateBeschleunigung();
  126. double calculateReparatur();
  127. double calculateLaserIntensität();
  128. double calculateLaserEffizienz();
  129. double calculateAkkuLeistung();
  130. double calculateMaxEnergie();
  131. double calculateMaxStabilität();
  132. double calculateLaserTempo();
  133. double calculateWendigkeit();
  134. double calculateAntriebEffizienz();
  135. double calculateEnergieSchild();
  136. double calculateEnergieSchildEffizienz();
  137. double calculateLaserCost();
  138. public:
  139. // Konstruktor
  140. Spieler( KSGClient::InformationServerClient *zInfoK, UIInit &uiFactory, SpielerStr *zStr );
  141. // Destruktor
  142. ~Spieler();
  143. // nicht constant
  144. void addSkill( ActiveSkill *skill );
  145. void useSkill( int id );
  146. void setModelData( Model2DData *data, Animation2DData *zFStart, Animation2DData *zFBurn );
  147. void setAccountId( int accId );
  148. void setTeam( Team *zTeam );
  149. void setSpielerFarbe( int fc, Bild *zTextur );
  150. void setTastataturStatus( TastaturStatus ts, bool aktiv );
  151. bool tick( const WeltInfo &info, double zeit ) override;
  152. void render( Mat3< float > &kamMat, Bild &zRObj, const char *kamName ) override;
  153. void renderLeben( const Mat3< float > &kamMat, Bild &zRObj );
  154. void setSkill( int art );
  155. void nimmSchaden( double &intensität, int sLevel );
  156. void calcDeadPlayerObject( Laser *zSchuss );
  157. void machSchaden( double intensität, int sLevel, bool erf = 1 );
  158. void addKill( int sLevel, bool erf = 1 );
  159. DeadPlayer *sterben();
  160. void wiederbelebung();
  161. void hatGeschossen();
  162. void addTreffer( float indens, int sLevel, bool erf = 1 );
  163. void addEp( float ep );
  164. void save();
  165. void load();
  166. // constant
  167. float getEp() const;
  168. float getMaxEp() const;
  169. int getAccountId() const;
  170. Text *getName() const;
  171. Text *zName() const;
  172. bool hatSkill() const;
  173. bool istAmLeben() const;
  174. // Statistik Werte
  175. int getSpielerNummer() const;
  176. Team *zTeam() const;
  177. int getSpielerFarbe() const;
  178. int getSchadenBekommen() const;
  179. int getSchadenGemacht() const;
  180. int getTreibstoffVerbraucht() const;
  181. int getSchüsse() const;
  182. int getTreffer() const;
  183. int getPunkte() const;
  184. int getKills() const;
  185. int getTode() const;
  186. int getZeitAmLeben() const;
  187. int getZeitTod() const;
  188. double getTeamMaxEnergieBonus() const;
  189. double getTeamMaxStabilitätBonus() const;
  190. double getTeamReparaturBonus() const;
  191. double getTeamLaserIntensitätBonus() const;
  192. double getTeamLaserEffizienzBonus() const;
  193. double getTeamAkkuLeistungBonus() const;
  194. double getTeamLaserTempoBonus() const;
  195. double getTeamBeschleunigungBonus() const;
  196. double getTeamWendigkeitBonus() const;
  197. double getTeamAntriebEffizienzBonus() const;
  198. double getTeamEnergieSchildBonus() const;
  199. double getTeamEnergieSchildEffizienzBonus() const;
  200. int getSkillP() const;
  201. int getLevel() const;
  202. };
  203. #endif