SpielObjekt.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include "SpielObjekt.h"
  2. #include "Define.h"
  3. // Inhalt der SpielObjekt Klasse aus SpielObjekt.h
  4. // Konstruktor
  5. SpielObjekt::SpielObjekt( ObjektStr *zStr )
  6. : Model2DObject()
  7. {
  8. id = zStr->id;
  9. style = zStr->style;
  10. stability = zStr->maxStability;
  11. energie = zStr->maxEnergie;
  12. maxStability = zStr->maxStability;
  13. maxEnergie = zStr->maxEnergie;
  14. energieRadius = zStr->energieRadius;
  15. reparatur = zStr->reparatur;
  16. akkuLeistung = zStr->akkuLeistung;
  17. team = 0;
  18. }
  19. // Destruktor
  20. SpielObjekt::~SpielObjekt()
  21. {
  22. if( team )
  23. team->release();
  24. }
  25. // nicht constant
  26. void SpielObjekt::setTeam( Team *team )
  27. {
  28. if( this->team )
  29. this->team->release();
  30. this->team = team;
  31. }
  32. bool SpielObjekt::tick( const WeltInfo &info, double zeit )
  33. {
  34. repAbk -= zeit;
  35. if( repAbk < 0 )
  36. repAbk = 0;
  37. akkuAbk -= zeit;
  38. if( akkuAbk < 0 )
  39. akkuAbk = 0;
  40. if( !repAbk )
  41. {
  42. stability += reparatur * zeit;
  43. if( stability > maxStability )
  44. stability = maxStability;
  45. }
  46. if( !akkuAbk )
  47. {
  48. if( !team )
  49. {
  50. energie -= akkuLeistung * zeit;
  51. if( energie < 0 )
  52. energie = 0;
  53. }
  54. else
  55. {
  56. energie += akkuLeistung * zeit;
  57. if( energie > maxEnergie )
  58. energie = maxEnergie;
  59. }
  60. }
  61. return Model2DObject::tick( info, zeit );
  62. }
  63. // constant
  64. Team *SpielObjekt::zTeam() const
  65. {
  66. return team;
  67. }