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