#include "Team.h" // Inhalt der Team Klasse aus Team.h // Konstruktor Team::Team( int f, char *n, TeamStr *zStr ) { id = zStr->id; farbe = f; name = n; spieler = new RCArray< Spieler >(); punkte = zStr->punkte; maxPunkte = zStr->maxPunkte; maxEnergieS = zStr->maxEnergie; maxStabilityS = zStr->maxStability; reparaturS = zStr->reparatur; laserIntensityS = zStr->laserIntensity; laserEffizienzS = zStr->laserEffizienz; akkuLeistungS = zStr->akkuLeistung; laserTempoS = zStr->laserTempo; beschleunigungS = zStr->beschleunigung; wendigkeitS = zStr->wendigkeit; antriebEffizienzS = zStr->antriebEffizienz; reset(); ref = 1; } // Destruktor Team::~Team() { spieler->release(); } // nicht constant void Team::reset() { spieler->leeren(); maxEnergie = maxEnergieS; maxStability = maxStabilityS; reparatur = reparaturS; laserIntensity = laserIntensityS; laserEffizienz = laserEffizienzS; akkuLeistung = akkuLeistungS; laserTempo = laserTempoS; beschleunigung = beschleunigungS; wendigkeit = wendigkeitS; antriebEffizienz = antriebEffizienzS; } // constant double Team::getMaxEnergieBonus() const { double ret = maxEnergieS; for( auto *i = &spieler->getArray(); i && i->set; i = i->next ) ret += i->var->getTeamMaxEnergieBonus(); return ret; } double Team::getMaxStabilityBonus() const { double ret = maxStabilityS; for( auto *i = &spieler->getArray(); i && i->set; i = i->next ) ret += i->var->getTeamMaxStabilityBonus(); return ret; } double Team::getReperaturBonus() const { double ret = reparaturS; for( auto *i = &spieler->getArray(); i && i->set; i = i->next ) ret += i->var->getTeamReparaturBonus(); return ret; } double Team::getLaserIntensityBonus() const { double ret = laserIntensityS; for( auto *i = &spieler->getArray(); i && i->set; i = i->next ) ret += i->var->getTeamLaserIntensityBonus(); return ret; } double Team::getLaserEffizienzBonus() const { double ret = laserEffizienzS; for( auto *i = &spieler->getArray(); i && i->set; i = i->next ) ret += i->var->getTeamLaserEffizienzBonus(); return ret; } double Team::getAkkuLeistungBonus() const { double ret = akkuLeistungS; for( auto *i = &spieler->getArray(); i && i->set; i = i->next ) ret += i->var->getTeamAkkuLeistungBonus(); return ret; } double Team::getLaserTempoBonus() const { double ret = laserTempoS; for( auto *i = &spieler->getArray(); i && i->set; i = i->next ) ret += i->var->getTeamLaserTempoBonus(); return ret; } double Team::getBeschleunigungBonus() const { double ret = beschleunigungS; for( auto *i = &spieler->getArray(); i && i->set; i = i->next ) ret += i->var->getTeamBeschleunigungBonus(); return ret; } double Team::getWendigkeitBonus() const { double ret = wendigkeitS; for( auto *i = &spieler->getArray(); i && i->set; i = i->next ) ret += i->var->getTeamWendigkeitBonus(); return ret; } double Team::getAntriebEffizienzBonus() const { double ret = antriebEffizienzS; for( auto *i = &spieler->getArray(); i && i->set; i = i->next ) ret += i->var->getTeamAntriebEffizienzBonus(); return ret; } // Reference Counting Team *Team::getThis() { ref++; return this; } Team *Team::release() { ref--; if( !ref ) delete this; return 0; }