Team.cpp 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148
  1. #include "Team.h"
  2. // Inhalt der Team Klasse aus Team.h
  3. // Konstruktor
  4. Team::Team(int f, const char* n, TeamStr* zStr)
  5. : ReferenceCounter()
  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. maxStabilityS = zStr->maxStability;
  15. reparaturS = zStr->reparatur;
  16. laserIntensityS = zStr->laserIntensity;
  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. energieSchildS = zStr->energieSchild;
  24. energieSchildEffizienzS = zStr->energieSchildEffizienz;
  25. reset();
  26. }
  27. // Destruktor
  28. Team::~Team()
  29. {
  30. spieler->release();
  31. }
  32. // nicht constant
  33. void Team::reset()
  34. {
  35. spieler->leeren();
  36. maxEnergie = maxEnergieS;
  37. maxStability = maxStabilityS;
  38. reparatur = reparaturS;
  39. laserIntensity = laserIntensityS;
  40. laserEffizienz = laserEffizienzS;
  41. akkuLeistung = akkuLeistungS;
  42. laserTempo = laserTempoS;
  43. beschleunigung = beschleunigungS;
  44. wendigkeit = wendigkeitS;
  45. antriebEffizienz = antriebEffizienzS;
  46. energieSchild = energieSchildS;
  47. energieSchildEffizienz = energieSchildEffizienzS;
  48. }
  49. // constant
  50. double Team::getMaxEnergieBonus() const
  51. {
  52. double ret = maxEnergieS;
  53. for (auto i : *spieler)
  54. ret += i->getTeamMaxEnergieBonus();
  55. return ret;
  56. }
  57. double Team::getMaxStabilityBonus() const
  58. {
  59. double ret = maxStabilityS;
  60. for (auto i : *spieler)
  61. ret += i->getTeamMaxStabilityBonus();
  62. return ret;
  63. }
  64. double Team::getReperaturBonus() const
  65. {
  66. double ret = reparaturS;
  67. for (auto i : *spieler)
  68. ret += i->getTeamReparaturBonus();
  69. return ret;
  70. }
  71. double Team::getLaserIntensityBonus() const
  72. {
  73. double ret = laserIntensityS;
  74. for (auto i : *spieler)
  75. ret += i->getTeamLaserIntensityBonus();
  76. return ret;
  77. }
  78. double Team::getLaserEffizienzBonus() const
  79. {
  80. double ret = laserEffizienzS;
  81. for (auto i : *spieler)
  82. ret += i->getTeamLaserEffizienzBonus();
  83. return ret;
  84. }
  85. double Team::getAkkuLeistungBonus() const
  86. {
  87. double ret = akkuLeistungS;
  88. for (auto i : *spieler)
  89. ret += i->getTeamAkkuLeistungBonus();
  90. return ret;
  91. }
  92. double Team::getLaserTempoBonus() const
  93. {
  94. double ret = laserTempoS;
  95. for (auto i : *spieler)
  96. ret += i->getTeamLaserTempoBonus();
  97. return ret;
  98. }
  99. double Team::getBeschleunigungBonus() const
  100. {
  101. double ret = beschleunigungS;
  102. for (auto i : *spieler)
  103. ret += i->getTeamBeschleunigungBonus();
  104. return ret;
  105. }
  106. double Team::getWendigkeitBonus() const
  107. {
  108. double ret = wendigkeitS;
  109. for (auto i : *spieler)
  110. ret += i->getTeamWendigkeitBonus();
  111. return ret;
  112. }
  113. double Team::getAntriebEffizienzBonus() const
  114. {
  115. double ret = antriebEffizienzS;
  116. for (auto i : *spieler)
  117. ret += i->getTeamAntriebEffizienzBonus();
  118. return ret;
  119. }
  120. double Team::getEnergieSchildBonus() const
  121. {
  122. double ret = energieSchildS;
  123. for (auto i : *spieler)
  124. ret += i->getTeamEnergieSchildBonus();
  125. return ret;
  126. }
  127. double Team::getEnergieSchildEffizienzBonus() const
  128. {
  129. double ret = energieSchildEffizienzS;
  130. for (auto i : *spieler)
  131. ret += i->getTeamEnergieSchildEffizienzBonus();
  132. return ret;
  133. }