123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266 |
- #include "TeamOptionen.h"
- #include "../../../../Initialisierung/Initialisierung.h"
- #include "../../../Karte/EditorKarte.h"
- using namespace Editor;
- TeamTool::TeamTool( Schrift *zSchrift, KarteDaten *daten )
- : RightTool()
- {
- int teamAnzahl = daten->getTeamAnzahl();
- teamAuswahl = initAuswahlBox( 0, 0, 150, 20, zSchrift, AuswahlBox::Style::Normal, {} );
- for( int i = 0; i < teamAnzahl; i++ )
- {
- teamAuswahl->addEintrag( new Text( Text( "Team " ) += ( i + 1 ) ) );
- }
- teamAuswahl->setEventAktion( [ this ]( void *p, AuswahlBox *a, int old, int auswahl )
- {
- this->selectTeam( auswahl + 1 );
- } );
- skillStartT = initTextFeld( 0, 30, 290, 20, zSchrift, TextFeld::Style::Text | TextFeld::Style::Center, "---Startwerte---" );
- skillStartStabilitätT = initTextFeld( 0, 55, 200, 20, zSchrift, TextFeld::Style::Text, "Stabilität" );
- skillStartEnergieT = initTextFeld( 0, 80, 200, 20, zSchrift, TextFeld::Style::Text, "Energie" );
- skillStartReparaturT = initTextFeld( 0, 105, 200, 20, zSchrift, TextFeld::Style::Text, "Reparatur" );
- skillStartAkkuT = initTextFeld( 0, 130, 200, 20, zSchrift, TextFeld::Style::Text, "Akku" );
- skillStartWendigkeitT = initTextFeld( 0, 155, 200, 20, zSchrift, TextFeld::Style::Text, "Wendigkeit" );
- skillStartBeschleunigungT = initTextFeld( 0, 180, 200, 20, zSchrift, TextFeld::Style::Text, "Beschleunigung" );
- skillStartAntriebEffizienzT = initTextFeld( 0, 205, 200, 20, zSchrift, TextFeld::Style::Text, "Antrieb Effizienz" );
- skillStartLaserIntensitätT = initTextFeld( 0, 230, 200, 20, zSchrift, TextFeld::Style::Text, "Laser Intensität" );
- skillStartLaserEffizienzT = initTextFeld( 0, 255, 200, 20, zSchrift, TextFeld::Style::Text, "Laser Effizienz" );
- skillStartLaserTempoT = initTextFeld( 0, 280, 200, 20, zSchrift, TextFeld::Style::Text, "Laser Tempo" );
- skillStartEnergieSchildT = initTextFeld( 0, 305, 200, 20, zSchrift, TextFeld::Style::Text, "Energie Schild" );
- skillStartEnergieSchildEffizienzT = initTextFeld( 0, 330, 200, 20, zSchrift, TextFeld::Style::Text, "Schild Effizienz" );
- const TeamDaten *Team = daten->getTeam( daten->getTeamIndexById( 1 ) );
- skillStartStabilität = initTextFeld( 200, 55, 90, 20, zSchrift, TextFeld::Style::TextFeld, Text( Team->maxStabilität ) );
- skillStartEnergie = initTextFeld( 200, 80, 90, 20, zSchrift, TextFeld::Style::TextFeld, Text( Team->maxEnergie ) );
- skillStartReparatur = initTextFeld( 200, 105, 90, 20, zSchrift, TextFeld::Style::TextFeld, Text( Team->reparatur ) );
- skillStartAkku = initTextFeld( 200, 130, 90, 20, zSchrift, TextFeld::Style::TextFeld, Text( Team->akkuLeistung ) );
- skillStartWendigkeit = initTextFeld( 200, 155, 90, 20, zSchrift, TextFeld::Style::TextFeld, Text( Team->wendigkeit ) );
- skillStartBeschleunigung = initTextFeld( 200, 180, 90, 20, zSchrift, TextFeld::Style::TextFeld, Text( Team->beschleunigung ) );
- skillStartAntriebEffizienz = initTextFeld( 200, 205, 90, 20, zSchrift, TextFeld::Style::TextFeld, Text( Team->antriebEffizienz ) );
- skillStartLaserIntensität = initTextFeld( 200, 230, 90, 20, zSchrift, TextFeld::Style::TextFeld, Text( Team->laserIntensität ) );
- skillStartLaserEffizienz = initTextFeld( 200, 255, 90, 20, zSchrift, TextFeld::Style::TextFeld, Text( Team->laserEffizienz ) );
- skillStartLaserTempo = initTextFeld( 200, 280, 90, 20, zSchrift, TextFeld::Style::TextFeld, Text( Team->laserTempo ) );
- skillStartEnergieSchild = initTextFeld( 200, 305, 90, 20, zSchrift, TextFeld::Style::TextFeld, Text( Team->energieSchild ) );
- skillStartEnergieSchildEffizienz = initTextFeld( 200, 330, 90, 20, zSchrift, TextFeld::Style::TextFeld, Text( Team->energieSchildEffizienz ) );
- speichern = initKnopf( 0, 380, 100, 20, zSchrift, Knopf::Style::Normal, "Speichern" );
- this->daten = daten;
- }
- TeamTool::~TeamTool()
- {
- teamAuswahl->release();
- skillStartT->release();
- skillStartStabilitätT->release();
- skillStartEnergieT->release();
- skillStartReparaturT->release();
- skillStartAkkuT->release();
- skillStartWendigkeitT->release();
- skillStartBeschleunigungT->release();
- skillStartAntriebEffizienzT->release();
- skillStartLaserIntensitätT->release();
- skillStartLaserEffizienzT->release();
- skillStartLaserTempoT->release();
- skillStartEnergieSchildT->release();
- skillStartEnergieSchildEffizienzT->release();
- skillStartStabilität->release();
- skillStartEnergie->release();
- skillStartReparatur->release();
- skillStartAkku->release();
- skillStartWendigkeit->release();
- skillStartBeschleunigung->release();
- skillStartAntriebEffizienz->release();
- skillStartLaserIntensität->release();
- skillStartLaserEffizienz->release();
- skillStartLaserTempo->release();
- skillStartEnergieSchild->release();
- skillStartEnergieSchildEffizienz->release();
- speichern->release();
- daten->release();
- }
- void TeamTool::doMausEreignis( MausEreignis &me )
- {
- bool vera = me.verarbeitet;
- if( hatStyleNicht( Zeichnung::Style::Sichtbar ) )
- me.verarbeitet = 1;
- me.mx -= pos.x;
- me.my -= pos.y;
- teamAuswahl->doMausEreignis( me );
- skillStartT->doMausEreignis( me );
- skillStartStabilitätT->doMausEreignis( me );
- skillStartEnergieT->doMausEreignis( me );
- skillStartReparaturT->doMausEreignis( me );
- skillStartAkkuT->doMausEreignis( me );
- skillStartWendigkeitT->doMausEreignis( me );
- skillStartBeschleunigungT->doMausEreignis( me );
- skillStartAntriebEffizienzT->doMausEreignis( me );
- skillStartLaserIntensitätT->doMausEreignis( me );
- skillStartLaserEffizienzT->doMausEreignis( me );
- skillStartLaserTempoT->doMausEreignis( me );
- skillStartEnergieSchildT->doMausEreignis( me );
- skillStartEnergieSchildEffizienzT->doMausEreignis( me );
- skillStartStabilität->doMausEreignis( me );
- skillStartEnergie->doMausEreignis( me );
- skillStartReparatur->doMausEreignis( me );
- skillStartAkku->doMausEreignis( me );
- skillStartWendigkeit->doMausEreignis( me );
- skillStartBeschleunigung->doMausEreignis( me );
- skillStartAntriebEffizienz->doMausEreignis( me );
- skillStartLaserIntensität->doMausEreignis( me );
- skillStartLaserEffizienz->doMausEreignis( me );
- skillStartLaserTempo->doMausEreignis( me );
- skillStartEnergieSchild->doMausEreignis( me );
- skillStartEnergieSchildEffizienz->doMausEreignis( me );
- bool verarbeitet = me.verarbeitet;
- speichern->doMausEreignis( me );
- if( !verarbeitet && me.verarbeitet && me.id == ME_RLinks )
- {
- TeamDaten data = *daten->getTeam( daten->getTeamIndexById( teamAuswahl->getAuswahl() + 1 ) );
- data.maxStabilität = *skillStartStabilität->zText();
- data.maxEnergie = *skillStartEnergie->zText();
- data.reparatur = *skillStartReparatur->zText();
- data.akkuLeistung = *skillStartAkku->zText();
- data.wendigkeit = *skillStartWendigkeit->zText();
- data.beschleunigung = *skillStartBeschleunigung->zText();
- data.antriebEffizienz = *skillStartAntriebEffizienz->zText();
- data.laserIntensität = *skillStartLaserIntensität->zText();
- data.laserEffizienz = *skillStartLaserEffizienz->zText();
- data.laserTempo = *skillStartLaserTempo->zText();
- data.energieSchild = *skillStartEnergieSchild->zText();
- data.energieSchildEffizienz = *skillStartEnergieSchildEffizienz->zText();
- daten->getTeam( daten->getTeamIndexById( teamAuswahl->getAuswahl() + 1 ), [ data ]( TeamDaten *daten ) -> bool
- {
- *daten = data;
- return 1;
- } );
- }
- me.mx += pos.x;
- me.my += pos.y;
- if( hatStyleNicht( Zeichnung::Style::Sichtbar ) )
- me.verarbeitet = vera;
- }
- void TeamTool::doTastaturEreignis( TastaturEreignis &te )
- {
- if( hatStyleNicht( Zeichnung::Style::Sichtbar ) )
- return;
- teamAuswahl->doTastaturEreignis( te );
- skillStartT->doTastaturEreignis( te );
- skillStartStabilitätT->doTastaturEreignis( te );
- skillStartEnergieT->doTastaturEreignis( te );
- skillStartReparaturT->doTastaturEreignis( te );
- skillStartAkkuT->doTastaturEreignis( te );
- skillStartWendigkeitT->doTastaturEreignis( te );
- skillStartBeschleunigungT->doTastaturEreignis( te );
- skillStartAntriebEffizienzT->doTastaturEreignis( te );
- skillStartLaserIntensitätT->doTastaturEreignis( te );
- skillStartLaserEffizienzT->doTastaturEreignis( te );
- skillStartLaserTempoT->doTastaturEreignis( te );
- skillStartEnergieSchildT->doTastaturEreignis( te );
- skillStartEnergieSchildEffizienzT->doTastaturEreignis( te );
- skillStartStabilität->doTastaturEreignis( te );
- skillStartEnergie->doTastaturEreignis( te );
- skillStartReparatur->doTastaturEreignis( te );
- skillStartAkku->doTastaturEreignis( te );
- skillStartWendigkeit->doTastaturEreignis( te );
- skillStartBeschleunigung->doTastaturEreignis( te );
- skillStartAntriebEffizienz->doTastaturEreignis( te );
- skillStartLaserIntensität->doTastaturEreignis( te );
- skillStartLaserEffizienz->doTastaturEreignis( te );
- skillStartLaserTempo->doTastaturEreignis( te );
- skillStartEnergieSchild->doTastaturEreignis( te );
- skillStartEnergieSchildEffizienz->doTastaturEreignis( te );
- speichern->doTastaturEreignis( te );
- }
- bool TeamTool::tick( double tickVal )
- {
- if( hatStyleNicht( Zeichnung::Style::Sichtbar ) )
- return __super::tick( tickVal );
- bool ret = __super::tick( tickVal );
- ret |= teamAuswahl->tick( tickVal );
- ret |= skillStartT->tick( tickVal );
- ret |= skillStartStabilitätT->tick( tickVal );
- ret |= skillStartEnergieT->tick( tickVal );
- ret |= skillStartReparaturT->tick( tickVal );
- ret |= skillStartAkkuT->tick( tickVal );
- ret |= skillStartWendigkeitT->tick( tickVal );
- ret |= skillStartBeschleunigungT->tick( tickVal );
- ret |= skillStartAntriebEffizienzT->tick( tickVal );
- ret |= skillStartLaserIntensitätT->tick( tickVal );
- ret |= skillStartLaserEffizienzT->tick( tickVal );
- ret |= skillStartLaserTempoT->tick( tickVal );
- ret |= skillStartEnergieSchildT->tick( tickVal );
- ret |= skillStartEnergieSchildEffizienzT->tick( tickVal );
- ret |= skillStartStabilität->tick( tickVal );
- ret |= skillStartEnergie->tick( tickVal );
- ret |= skillStartReparatur->tick( tickVal );
- ret |= skillStartAkku->tick( tickVal );
- ret |= skillStartWendigkeit->tick( tickVal );
- ret |= skillStartBeschleunigung->tick( tickVal );
- ret |= skillStartAntriebEffizienz->tick( tickVal );
- ret |= skillStartLaserIntensität->tick( tickVal );
- ret |= skillStartLaserEffizienz->tick( tickVal );
- ret |= skillStartLaserTempo->tick( tickVal );
- ret |= skillStartEnergieSchild->tick( tickVal );
- ret |= skillStartEnergieSchildEffizienz->tick( tickVal );
- ret |= speichern->tick( tickVal );
- return ret;
- }
- void TeamTool::render( Bild &rObj )
- {
- if( hatStyleNicht( Zeichnung::Style::Sichtbar ) )
- return;
- if( rObj.setDrawOptions( pos, gr ) )
- {
- teamAuswahl->render( rObj );
- skillStartT->render( rObj );
- skillStartStabilitätT->render( rObj );
- skillStartEnergieT->render( rObj );
- skillStartReparaturT->render( rObj );
- skillStartAkkuT->render( rObj );
- skillStartWendigkeitT->render( rObj );
- skillStartBeschleunigungT->render( rObj );
- skillStartAntriebEffizienzT->render( rObj );
- skillStartLaserIntensitätT->render( rObj );
- skillStartLaserEffizienzT->render( rObj );
- skillStartLaserTempoT->render( rObj );
- skillStartEnergieSchildT->render( rObj );
- skillStartEnergieSchildEffizienzT->render( rObj );
- skillStartStabilität->render( rObj );
- skillStartEnergie->render( rObj );
- skillStartReparatur->render( rObj );
- skillStartAkku->render( rObj );
- skillStartWendigkeit->render( rObj );
- skillStartBeschleunigung->render( rObj );
- skillStartAntriebEffizienz->render( rObj );
- skillStartLaserIntensität->render( rObj );
- skillStartLaserEffizienz->render( rObj );
- skillStartLaserTempo->render( rObj );
- skillStartEnergieSchild->render( rObj );
- skillStartEnergieSchildEffizienz->render( rObj );
- speichern->render( rObj );
- rObj.releaseDrawOptions();
- }
- }
- void TeamTool::selectTeam( int id )
- {
- int index = daten->getTeamIndexById( id );
- teamAuswahl->setAuswahl( id - 1 );
- const TeamDaten *Team = daten->getTeam( index );
- skillStartStabilität->setText( Text( Team->maxStabilität ) );
- skillStartEnergie->setText( Text( Team->maxEnergie ) );
- skillStartReparatur->setText( Text( Team->reparatur ) );
- skillStartAkku->setText( Text( Team->akkuLeistung ) );
- skillStartWendigkeit->setText( Text( Team->wendigkeit ) );
- skillStartBeschleunigung->setText( Text( Team->beschleunigung ) );
- skillStartAntriebEffizienz->setText( Text( Team->antriebEffizienz ) );
- skillStartLaserIntensität->setText( Text( Team->laserIntensität ) );
- skillStartLaserEffizienz->setText( Text( Team->laserEffizienz ) );
- skillStartLaserTempo->setText( Text( Team->laserTempo ) );
- skillStartEnergieSchild->setText( Text( Team->energieSchild ) );
- skillStartEnergieSchildEffizienz->setText( Text( Team->energieSchildEffizienz ) );
- }
|