Explorar o código

Aktion zum einleiten von base eroberungen hinzugefügt

Kolja Strohm %!s(int64=5) %!d(string=hai) anos
pai
achega
7abd22112b

+ 14 - 0
StickmanWorldOnline/Aktionen.cpp

@@ -760,6 +760,20 @@ void BaseSetTeam::run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory,
     ( (Base *)zParam( 1 ) )->setTeam( ( (Team *)zParam( 0 ) ), zSpiel );
 }
 
+
+BaseStartTeamChange::BaseStartTeamChange( RCArray< Aktion > *subActions )
+    : Aktion( BASE_START_TEAM_CHANGE, subActions )
+{
+    erlaubteTypen.add( TEAM );
+    erlaubteTypen.add( BASE );
+}
+
+void BaseStartTeamChange::run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
+{
+    ( (Base *)zParam( 1 ) )->startChange( ( (Team *)zParam( 0 ) ) );
+}
+
+
 TriggerRunStart::TriggerRunStart( RCArray< Aktion > *subActions )
     : Aktion( TRIGGER_RUN_START, subActions )
 {

+ 9 - 0
StickmanWorldOnline/Aktionen.h

@@ -20,6 +20,7 @@ enum AktionTyp
     BARIERE_ZULETZT_BEWEGT,
     BARIERE_ZULETZT_EINGESCHALTET,
     BASE_SET_TEAM,
+    BASE_START_TEAM_CHANGE,
     BASE_ZUFALL,
     BASE_ZULETZT_BESITZER_GEWECHSELT,
     BOOLEAN_AUS_TEXT,
@@ -631,6 +632,14 @@ public:
     void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
 };
 
+class BaseStartTeamChange : public Aktion
+{
+public:
+    // team, base
+    BaseStartTeamChange( RCArray< Aktion > *subActions );
+    void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
+};
+
 class TriggerRunStart : public Aktion
 {
 public:

+ 2 - 0
StickmanWorldOnline/Reader.cpp

@@ -62,6 +62,8 @@ Aktion *MapReader::readAktion( Datei &dat )
         return new BariereZuletztEingeschaltet();
     case BASE_SET_TEAM:
         return new BaseSetTeam( params );
+    case BASE_START_TEAM_CHANGE:
+        return new BaseStartTeamChange( params );
     case BASE_ZUFALL:
         params->release();
         return new BaseZufall();