#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; 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; } // 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::getMaxStabilitätBonus() const { double ret = maxStabilitätS; for( auto *i = &spieler->getArray(); i && i->set; i = i->next ) ret += i->var->getTeamMaxStabilitätBonus(); 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::getLaserIntensitätBonus() const { double ret = laserIntensitätS; for( auto *i = &spieler->getArray(); i && i->set; i = i->next ) ret += i->var->getTeamLaserIntensitätBonus(); 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; } // Reference Counting Team *Team::getThis() { ref++; return this; } Team *Team::release() { ref--; if( !ref ) delete this; return 0; }