Team.cpp 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. #include "Team.h"
  2. #include "../Spieler/Spieler.h"
  3. // Inhalt der Team Klasse aus Team.h
  4. // Konstruktor
  5. Team::Team( int f, char *n, TeamStr *zStr )
  6. {
  7. id = zStr->id;
  8. farbe = f;
  9. name = n;
  10. spieler = new RCArray< Spieler >();
  11. punkte = zStr->punkte;
  12. maxPunkte = zStr->maxPunkte;
  13. maxEnergieS = zStr->maxEnergie;
  14. maxStabilitätS = zStr->maxStabilität;
  15. reparaturS = zStr->reparatur;
  16. laserIntensitätS = zStr->laserIntensität;
  17. laserEffizienzS = zStr->laserEffizienz;
  18. akkuLeistungS = zStr->akkuLeistung;
  19. laserTempoS = zStr->laserTempo;
  20. beschleunigungS = zStr->beschleunigung;
  21. wendigkeitS = zStr->wendigkeit;
  22. antriebEffizienzS = zStr->antriebEffizienz;
  23. reset();
  24. ref = 1;
  25. }
  26. // Destruktor
  27. Team::~Team()
  28. {
  29. spieler->release();
  30. }
  31. // nicht constant
  32. void Team::reset()
  33. {
  34. spieler->leeren();
  35. maxEnergie = maxEnergieS;
  36. maxStabilität = maxStabilitätS;
  37. reparatur = reparaturS;
  38. laserIntensität = laserIntensitätS;
  39. laserEffizienz = laserEffizienzS;
  40. akkuLeistung = akkuLeistungS;
  41. laserTempo = laserTempoS;
  42. beschleunigung = beschleunigungS;
  43. wendigkeit = wendigkeitS;
  44. antriebEffizienz = antriebEffizienzS;
  45. }
  46. // constant
  47. double Team::getMaxEnergieBonus() const
  48. {
  49. double ret = maxEnergieS;
  50. for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
  51. ret += i->var->getTeamMaxEnergieBonus();
  52. return ret;
  53. }
  54. double Team::getMaxStabilitätBonus() const
  55. {
  56. double ret = maxStabilitätS;
  57. for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
  58. ret += i->var->getTeamMaxStabilitätBonus();
  59. return ret;
  60. }
  61. double Team::getReperaturBonus() const
  62. {
  63. double ret = reparaturS;
  64. for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
  65. ret += i->var->getTeamReparaturBonus();
  66. return ret;
  67. }
  68. double Team::getLaserIntensitätBonus() const
  69. {
  70. double ret = laserIntensitätS;
  71. for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
  72. ret += i->var->getTeamLaserIntensitätBonus();
  73. return ret;
  74. }
  75. double Team::getLaserEffizienzBonus() const
  76. {
  77. double ret = laserEffizienzS;
  78. for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
  79. ret += i->var->getTeamLaserEffizienzBonus();
  80. return ret;
  81. }
  82. double Team::getAkkuLeistungBonus() const
  83. {
  84. double ret = akkuLeistungS;
  85. for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
  86. ret += i->var->getTeamAkkuLeistungBonus();
  87. return ret;
  88. }
  89. double Team::getLaserTempoBonus() const
  90. {
  91. double ret = laserTempoS;
  92. for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
  93. ret += i->var->getTeamLaserTempoBonus();
  94. return ret;
  95. }
  96. double Team::getBeschleunigungBonus() const
  97. {
  98. double ret = beschleunigungS;
  99. for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
  100. ret += i->var->getTeamBeschleunigungBonus();
  101. return ret;
  102. }
  103. double Team::getWendigkeitBonus() const
  104. {
  105. double ret = wendigkeitS;
  106. for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
  107. ret += i->var->getTeamWendigkeitBonus();
  108. return ret;
  109. }
  110. double Team::getAntriebEffizienzBonus() const
  111. {
  112. double ret = antriebEffizienzS;
  113. for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
  114. ret += i->var->getTeamAntriebEffizienzBonus();
  115. return ret;
  116. }
  117. // Reference Counting
  118. Team *Team::getThis()
  119. {
  120. ref++;
  121. return this;
  122. }
  123. Team *Team::release()
  124. {
  125. ref--;
  126. if( !ref )
  127. delete this;
  128. return 0;
  129. }