|
@@ -14,7 +14,7 @@ Spieler::Spieler( KSGClient::InformationServerClient *zInfoK, Schrift *zSchrift,
|
|
|
accountId = 0;
|
|
|
sNum = zStr->id;
|
|
|
farbe = 0;
|
|
|
- team = 0;
|
|
|
+ zteam = 0;
|
|
|
info = zInfoK->getThis();
|
|
|
name = 0;
|
|
|
for( int i = 0; i < T_MAX; i++ )
|
|
@@ -65,8 +65,6 @@ Spieler::Spieler( KSGClient::InformationServerClient *zInfoK, Schrift *zSchrift,
|
|
|
Spieler::~Spieler()
|
|
|
{
|
|
|
info->release();
|
|
|
- if( team )
|
|
|
- team->release();
|
|
|
if( name )
|
|
|
name->release();
|
|
|
flammenL->release();
|
|
@@ -79,9 +77,9 @@ Spieler::~Spieler()
|
|
|
|
|
|
double Spieler::calculateLaserCost()
|
|
|
{
|
|
|
- double kosten = ( ( laserIntensität + team->laserIntensität ) / 2 +
|
|
|
- ( laserTempo + team->laserTempo ) / 9 ) *
|
|
|
- ( 1 / ( ( laserEffizienz + team->laserEffizienz ) / 25 ) );
|
|
|
+ double kosten = ( ( laserIntensität + zteam->laserIntensität ) / 2 +
|
|
|
+ ( laserTempo + zteam->laserTempo ) / 9 ) *
|
|
|
+ ( 1 / ( ( laserEffizienz + zteam->laserEffizienz ) / 25 ) );
|
|
|
if( kosten < 1 )
|
|
|
kosten = 1;
|
|
|
return kosten;
|
|
@@ -167,13 +165,11 @@ void Spieler::setAccountId( int accId )
|
|
|
nText->setText( *name );
|
|
|
}
|
|
|
|
|
|
-void Spieler::setTeam( Team * team )
|
|
|
+void Spieler::setTeam( Team *zTeam )
|
|
|
{
|
|
|
- if( this->team )
|
|
|
- this->team->release();
|
|
|
- this->team = team;
|
|
|
- nText->setHintergrundFarbe( 0xA0000000 | ( team->farbe & 0x00FFFFFF ) );
|
|
|
- nText->setRahmenFarbe( team->farbe );
|
|
|
+ this->zteam = zTeam;
|
|
|
+ nText->setHintergrundFarbe( 0xA0000000 | ( zteam->farbe & 0x00FFFFFF ) );
|
|
|
+ nText->setRahmenFarbe( zteam->farbe );
|
|
|
}
|
|
|
|
|
|
void Spieler::setSpielerFarbe( int fc, Bild * zTextur )
|
|
@@ -234,7 +230,7 @@ void Spieler::setTastataturStatus( TastaturStatus ts, bool aktiv )
|
|
|
bool Spieler::tick( const WeltInfo & info, double tv )
|
|
|
{
|
|
|
bool ret = 0;
|
|
|
- if( !team )
|
|
|
+ if( !zteam )
|
|
|
return 0;
|
|
|
tv = TICK;
|
|
|
reinkAbk -= tv;
|
|
@@ -256,56 +252,56 @@ bool Spieler::tick( const WeltInfo & info, double tv )
|
|
|
repAbk = 0;
|
|
|
if( tastatur[ T_GAS ] )
|
|
|
{
|
|
|
- double treibstoff = 0.5 * ( ( beschleunigung + team->beschleunigung ) / 15 )
|
|
|
- * tv * ( 100 / ( antriebEffizienz + team->antriebEffizienz ) );
|
|
|
+ double treibstoff = 0.5 * ( ( beschleunigung + zteam->beschleunigung ) / 15 )
|
|
|
+ * tv * ( 100 / ( antriebEffizienz + zteam->antriebEffizienz ) );
|
|
|
treibstoffVerbraucht += treibstoff;
|
|
|
float factor = 1;
|
|
|
if( treibstoff > energie )
|
|
|
factor = (float)( energie / treibstoff );
|
|
|
if( factor > 0 )
|
|
|
- impuls( getWorldPos( stM ), getWorldDir( kM ) * (float)tv * (float)( beschleunigung + team->beschleunigung ) * factor );
|
|
|
+ impuls( getWorldPos( stM ), getWorldDir( kM ) * (float)tv * (float)( beschleunigung + zteam->beschleunigung ) * factor );
|
|
|
energie -= treibstoff * factor;
|
|
|
}
|
|
|
if( tastatur[ T_ROT_R ] )
|
|
|
{
|
|
|
- double treibstoff = 0.25 * ( ( wendigkeit + team->wendigkeit ) / 15 )
|
|
|
- * tv * ( 100 / ( antriebEffizienz + team->antriebEffizienz ) );
|
|
|
+ double treibstoff = 0.25 * ( ( wendigkeit + zteam->wendigkeit ) / 15 )
|
|
|
+ * tv * ( 100 / ( antriebEffizienz + zteam->antriebEffizienz ) );
|
|
|
treibstoffVerbraucht += treibstoff;
|
|
|
float factor = 1;
|
|
|
if( treibstoff > energie )
|
|
|
factor = (float)( energie / treibstoff );
|
|
|
if( factor > 0 )
|
|
|
- impuls( getWorldPos( stL ), getWorldDir( kL ) * (float)tv * (float)( wendigkeit + team->wendigkeit ) * factor );
|
|
|
+ impuls( getWorldPos( stL ), getWorldDir( kL ) * (float)tv * (float)( wendigkeit + zteam->wendigkeit ) * factor );
|
|
|
energie -= treibstoff * factor;
|
|
|
}
|
|
|
if( tastatur[ T_ROT_L ] )
|
|
|
{
|
|
|
- double treibstoff = 0.25 * ( ( wendigkeit + team->wendigkeit ) / 15 )
|
|
|
- * tv * ( 100 / ( antriebEffizienz + team->antriebEffizienz ) );
|
|
|
+ double treibstoff = 0.25 * ( ( wendigkeit + zteam->wendigkeit ) / 15 )
|
|
|
+ * tv * ( 100 / ( antriebEffizienz + zteam->antriebEffizienz ) );
|
|
|
treibstoffVerbraucht += treibstoff;
|
|
|
float factor = 1;
|
|
|
if( treibstoff > energie )
|
|
|
factor = (float)( energie / treibstoff );
|
|
|
if( factor > 0 )
|
|
|
- impuls( getWorldPos( stR ), getWorldDir( kR ) * (float)tv * (float)( wendigkeit + team->wendigkeit ) * factor );
|
|
|
+ impuls( getWorldPos( stR ), getWorldDir( kR ) * (float)tv * (float)( wendigkeit + zteam->wendigkeit ) * factor );
|
|
|
energie -= treibstoff * factor;
|
|
|
}
|
|
|
__super::tick( info, tv );
|
|
|
if( !energieAbk )
|
|
|
{
|
|
|
- if( energie != ( maxEnergie + team->maxEnergie ) )
|
|
|
+ if( energie != ( maxEnergie + zteam->maxEnergie ) )
|
|
|
ret = 1;
|
|
|
- energie += ( akkuLeistung + team->akkuLeistung ) * tv;
|
|
|
- if( energie > ( maxEnergie + team->maxEnergie ) )
|
|
|
- energie = ( maxEnergie + team->maxEnergie );
|
|
|
+ energie += ( akkuLeistung + zteam->akkuLeistung ) * tv;
|
|
|
+ if( energie > ( maxEnergie + zteam->maxEnergie ) )
|
|
|
+ energie = ( maxEnergie + zteam->maxEnergie );
|
|
|
}
|
|
|
if( !repAbk )
|
|
|
{
|
|
|
- if( stabilität != ( maxStabilität + team->maxStabilität ) )
|
|
|
+ if( stabilität != ( maxStabilität + zteam->maxStabilität ) )
|
|
|
ret = 1;
|
|
|
- stabilität += ( reparatur + team->reparatur ) * tv;
|
|
|
- if( stabilität > ( maxStabilität + team->maxStabilität ) )
|
|
|
- stabilität = ( maxStabilität + team->maxStabilität );
|
|
|
+ stabilität += ( reparatur + zteam->reparatur ) * tv;
|
|
|
+ if( stabilität > ( maxStabilität + zteam->maxStabilität ) )
|
|
|
+ stabilität = ( maxStabilität + zteam->maxStabilität );
|
|
|
}
|
|
|
zeitAmLeben += tv;
|
|
|
}
|
|
@@ -326,21 +322,21 @@ void Spieler::render( Mat3< float > & kamMat, Bild & zRObj, const char *kamName
|
|
|
|
|
|
void Spieler::renderLeben( const Mat3< float > & kamMat, Bild & zRObj )
|
|
|
{
|
|
|
- if( !team || !amLeben )
|
|
|
+ if( !zteam || !amLeben )
|
|
|
return;
|
|
|
nText->setPosition( (Punkt)( kamMat * getPosition() - Vertex( 76, ( zModel()->maxP.y * getSize() ) + 30 ) ) );
|
|
|
nText->render( zRObj );
|
|
|
- zRObj.drawLinieH( nText->getX() + 1, nText->getY() + 4, 150, team->farbe );
|
|
|
- zRObj.drawLinieH( nText->getX() + 1, nText->getY() + 25, 150, team->farbe );
|
|
|
- int l = (int)( stabilität * 100 / ( maxStabilität + team->maxStabilität ) * 1.5 + 0.5 );
|
|
|
+ zRObj.drawLinieH( nText->getX() + 1, nText->getY() + 4, 150, zteam->farbe );
|
|
|
+ zRObj.drawLinieH( nText->getX() + 1, nText->getY() + 25, 150, zteam->farbe );
|
|
|
+ int l = (int)( stabilität * 100 / ( maxStabilität + zteam->maxStabilität ) * 1.5 + 0.5 );
|
|
|
zRObj.drawLinieH( nText->getX() + 1, nText->getY() + 1, l, 0xFF00FF00 );
|
|
|
zRObj.drawLinieH( nText->getX() + 1, nText->getY() + 2, l, 0xFF00FF00 );
|
|
|
zRObj.drawLinieH( nText->getX() + 1, nText->getY() + 3, l, 0xFF00FF00 );
|
|
|
- int e = (int)( energie * 100 / ( maxEnergie + team->maxEnergie ) * 1.5 + 0.5 );
|
|
|
+ int e = (int)( energie * 100 / ( maxEnergie + zteam->maxEnergie ) * 1.5 + 0.5 );
|
|
|
zRObj.drawLinieH( nText->getX() + 1, nText->getY() + 26, e, 0xFF0000FF );
|
|
|
zRObj.drawLinieH( nText->getX() + 1, nText->getY() + 27, e, 0xFF0000FF );
|
|
|
zRObj.drawLinieH( nText->getX() + 1, nText->getY() + 28, e, 0xFF0000FF );
|
|
|
- int e2 = (int)( ( energie - calculateLaserCost() ) * 100 / ( maxEnergie + team->maxEnergie ) * 1.5 + 0.5 );
|
|
|
+ int e2 = (int)( ( energie - calculateLaserCost() ) * 100 / ( maxEnergie + zteam->maxEnergie ) * 1.5 + 0.5 );
|
|
|
if( e2 > 0 )
|
|
|
{
|
|
|
zRObj.drawLinieV( nText->getX() + e2, nText->getY() + 26, 3, 0xFFFFFFFF );
|
|
@@ -356,78 +352,78 @@ void Spieler::setSkill( int art )
|
|
|
case 0: // Max Stabilität
|
|
|
maxStabilität += 10;
|
|
|
stabilität += 10;
|
|
|
- team->maxStabilität = team->getMaxStabilitätBonus();
|
|
|
+ zteam->maxStabilität = zteam->getMaxStabilitätBonus();
|
|
|
break;
|
|
|
case 1: // Max Energie
|
|
|
maxEnergie += 10;
|
|
|
- team->maxEnergie = team->getMaxEnergieBonus();
|
|
|
+ zteam->maxEnergie = zteam->getMaxEnergieBonus();
|
|
|
break;
|
|
|
case 2: // Reparatur
|
|
|
reparatur += 0.15;
|
|
|
- team->reparatur = team->getReperaturBonus();
|
|
|
+ zteam->reparatur = zteam->getReperaturBonus();
|
|
|
break;
|
|
|
case 3: // Laser Intensität
|
|
|
laserIntensität += 4;
|
|
|
- team->laserIntensität = team->getLaserIntensitätBonus();
|
|
|
+ zteam->laserIntensität = zteam->getLaserIntensitätBonus();
|
|
|
break;
|
|
|
case 4: // Laser Effizienz
|
|
|
laserEffizienz += 1.5;
|
|
|
- team->laserEffizienz = team->getLaserEffizienzBonus();
|
|
|
+ zteam->laserEffizienz = zteam->getLaserEffizienzBonus();
|
|
|
break;
|
|
|
case 5: // Laser Tempo
|
|
|
laserTempo += 15;
|
|
|
- team->laserTempo = team->getLaserTempoBonus();
|
|
|
+ zteam->laserTempo = zteam->getLaserTempoBonus();
|
|
|
break;
|
|
|
case 6: // Beschleunigung
|
|
|
beschleunigung += 10;
|
|
|
- team->beschleunigung = team->getBeschleunigungBonus();
|
|
|
+ zteam->beschleunigung = zteam->getBeschleunigungBonus();
|
|
|
break;
|
|
|
case 7: // Wendigkeit
|
|
|
wendigkeit += 2.5;
|
|
|
- team->wendigkeit = team->getWendigkeitBonus();
|
|
|
+ zteam->wendigkeit = zteam->getWendigkeitBonus();
|
|
|
break;
|
|
|
case 8: // Netzwerk
|
|
|
netzwerk += 1;
|
|
|
- team->maxStabilität = team->getMaxStabilitätBonus();
|
|
|
- team->maxEnergie = team->getMaxEnergieBonus();
|
|
|
- team->reparatur = team->getReperaturBonus();
|
|
|
- team->laserIntensität = team->getLaserIntensitätBonus();
|
|
|
- team->laserEffizienz = team->getLaserEffizienzBonus();
|
|
|
- team->laserTempo = team->getLaserTempoBonus();
|
|
|
- team->beschleunigung = team->getBeschleunigungBonus();
|
|
|
- team->wendigkeit = team->getWendigkeitBonus();
|
|
|
- team->akkuLeistung = team->getAkkuLeistungBonus();
|
|
|
- team->antriebEffizienz = team->getAntriebEffizienzBonus();
|
|
|
- team->energieSchild = team->getEnergieSchildBonus();
|
|
|
- team->energieSchildEffizienz = team->getEnergieSchildEffizienzBonus();
|
|
|
+ zteam->maxStabilität = zteam->getMaxStabilitätBonus();
|
|
|
+ zteam->maxEnergie = zteam->getMaxEnergieBonus();
|
|
|
+ zteam->reparatur = zteam->getReperaturBonus();
|
|
|
+ zteam->laserIntensität = zteam->getLaserIntensitätBonus();
|
|
|
+ zteam->laserEffizienz = zteam->getLaserEffizienzBonus();
|
|
|
+ zteam->laserTempo = zteam->getLaserTempoBonus();
|
|
|
+ zteam->beschleunigung = zteam->getBeschleunigungBonus();
|
|
|
+ zteam->wendigkeit = zteam->getWendigkeitBonus();
|
|
|
+ zteam->akkuLeistung = zteam->getAkkuLeistungBonus();
|
|
|
+ zteam->antriebEffizienz = zteam->getAntriebEffizienzBonus();
|
|
|
+ zteam->energieSchild = zteam->getEnergieSchildBonus();
|
|
|
+ zteam->energieSchildEffizienz = zteam->getEnergieSchildEffizienzBonus();
|
|
|
break;
|
|
|
case 9: // Akkuleistung
|
|
|
akkuLeistung += 0.12;
|
|
|
- team->akkuLeistung = team->getAkkuLeistungBonus();
|
|
|
+ zteam->akkuLeistung = zteam->getAkkuLeistungBonus();
|
|
|
break;
|
|
|
case 10: // Antrieb Effizienz
|
|
|
antriebEffizienz += 10;
|
|
|
- team->antriebEffizienz = team->getAntriebEffizienzBonus();
|
|
|
+ zteam->antriebEffizienz = zteam->getAntriebEffizienzBonus();
|
|
|
break;
|
|
|
case 11: // Energie Schild
|
|
|
energieSchild += 0.075;
|
|
|
- team->energieSchild = team->getEnergieSchildBonus();
|
|
|
+ zteam->energieSchild = zteam->getEnergieSchildBonus();
|
|
|
break;
|
|
|
case 12: // Energie Schild Effizienz
|
|
|
energieSchildEffizienz += 10;
|
|
|
- team->energieSchildEffizienz = team->getEnergieSchildEffizienzBonus();
|
|
|
+ zteam->energieSchildEffizienz = zteam->getEnergieSchildEffizienzBonus();
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
void Spieler::nimmSchaden( double &intensität )
|
|
|
{
|
|
|
- double schieldVal = intensität - intensität / ( energieSchild + team->energieSchild );
|
|
|
- double schieldEVal = schieldVal / ( ( energieSchildEffizienz + team->energieSchildEffizienz ) / 100 );
|
|
|
+ double schieldVal = intensität - intensität / ( energieSchild + zteam->energieSchild );
|
|
|
+ double schieldEVal = schieldVal / ( ( energieSchildEffizienz + zteam->energieSchildEffizienz ) / 100 );
|
|
|
if( schieldEVal > energie )
|
|
|
{
|
|
|
schieldEVal = energie;
|
|
|
- schieldVal = schieldEVal * ( ( energieSchildEffizienz + team->energieSchildEffizienz ) / 100 );
|
|
|
+ schieldVal = schieldEVal * ( ( energieSchildEffizienz + zteam->energieSchildEffizienz ) / 100 );
|
|
|
}
|
|
|
intensität -= schieldVal;
|
|
|
energie -= schieldEVal;
|
|
@@ -499,8 +495,8 @@ void Spieler::wiederbelebung()
|
|
|
{
|
|
|
setPosition( startPos );
|
|
|
reinkAbk = maxReinkAbk * 2;
|
|
|
- energie = maxEnergie + team->maxEnergie;
|
|
|
- stabilität = maxStabilität + team->maxStabilität;
|
|
|
+ energie = maxEnergie + zteam->maxEnergie;
|
|
|
+ stabilität = maxStabilität + zteam->maxStabilität;
|
|
|
schussAbk = 0;
|
|
|
energieAbk = 0;
|
|
|
repAbk = 0;
|
|
@@ -668,7 +664,7 @@ int Spieler::getSpielerNummer() const
|
|
|
|
|
|
Team *Spieler::zTeam() const
|
|
|
{
|
|
|
- return team;
|
|
|
+ return zteam;
|
|
|
}
|
|
|
|
|
|
int Spieler::getSpielerFarbe() const
|