#include "Team.h" #include "../Spieler/Spieler.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; maxStabilitätS = zStr->maxStabilität; reparaturS = zStr->reparatur; laserIntensitätS = zStr->laserIntensität; laserEffizienzS = zStr->laserEffizienz; akkuLeistungS = zStr->akkuLeistung; laserTempoS = zStr->laserTempo; beschleunigungS = zStr->beschleunigung; wendigkeitS = zStr->wendigkeit; antriebEffizienzS = zStr->antriebEffizienz; energieSchildS = zStr->energieSchild; energieSchildEffizienzS = zStr->energieSchildEffizienz; reset(); ref = 1; } // Destruktor Team::~Team() { spieler->release(); } // nicht constant void Team::reset() { spieler->leeren(); maxEnergie = maxEnergieS; maxStabilität = maxStabilitätS; reparatur = reparaturS; laserIntensität = laserIntensitätS; laserEffizienz = laserEffizienzS; akkuLeistung = akkuLeistungS; laserTempo = laserTempoS; beschleunigung = beschleunigungS; wendigkeit = wendigkeitS; antriebEffizienz = antriebEffizienzS; energieSchild = energieSchildS; energieSchildEffizienz = energieSchildEffizienzS; } // constant double Team::getMaxEnergieBonus() const { double ret = maxEnergieS; for( auto i = spieler->getIterator(); i && i; i++ ) ret += i->getTeamMaxEnergieBonus(); return ret; } double Team::getMaxStabilitätBonus() const { double ret = maxStabilitätS; for( auto i = spieler->getIterator(); i; i++ ) ret += i->getTeamMaxStabilitätBonus(); return ret; } double Team::getReperaturBonus() const { double ret = reparaturS; for( auto i = spieler->getIterator(); i; i++ ) ret += i->getTeamReparaturBonus(); return ret; } double Team::getLaserIntensitätBonus() const { double ret = laserIntensitätS; for( auto i = spieler->getIterator(); i; i++ ) ret += i->getTeamLaserIntensitätBonus(); return ret; } double Team::getLaserEffizienzBonus() const { double ret = laserEffizienzS; for( auto i = spieler->getIterator(); i; i++ ) ret += i->getTeamLaserEffizienzBonus(); return ret; } double Team::getAkkuLeistungBonus() const { double ret = akkuLeistungS; for( auto i = spieler->getIterator(); i; i++ ) ret += i->getTeamAkkuLeistungBonus(); return ret; } double Team::getLaserTempoBonus() const { double ret = laserTempoS; for( auto i = spieler->getIterator(); i; i++ ) ret += i->getTeamLaserTempoBonus(); return ret; } double Team::getBeschleunigungBonus() const { double ret = beschleunigungS; for( auto i = spieler->getIterator(); i; i++ ) ret += i->getTeamBeschleunigungBonus(); return ret; } double Team::getWendigkeitBonus() const { double ret = wendigkeitS; for( auto i = spieler->getIterator(); i; i++ ) ret += i->getTeamWendigkeitBonus(); return ret; } double Team::getAntriebEffizienzBonus() const { double ret = antriebEffizienzS; for( auto i = spieler->getIterator(); i; i++ ) ret += i->getTeamAntriebEffizienzBonus(); return ret; } double Team::getEnergieSchildBonus() const { double ret = energieSchildS; for( auto i = spieler->getIterator(); i; i++ ) ret += i->getTeamEnergieSchildBonus(); return ret; } double Team::getEnergieSchildEffizienzBonus() const { double ret = energieSchildEffizienzS; for( auto i = spieler->getIterator(); i; i++ ) ret += i->getTeamEnergieSchildEffizienzBonus(); return ret; } // Reference Counting Team *Team::getThis() { ref++; return this; } Team *Team::release() { ref--; if( !ref ) delete this; return 0; }