Team.cpp 3.2 KB

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