123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- #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;
- }
|