Browse Source

Aktion zum einleiten von base eroberungen hinzugefügt

Kolja Strohm 4 years ago
parent
commit
a6953ac72b
3 changed files with 25 additions and 0 deletions
  1. 14 0
      StickmanWorldOnline/Aktionen.cpp
  2. 9 0
      StickmanWorldOnline/Aktionen.h
  3. 2 0
      StickmanWorldOnline/Reader.cpp

+ 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

@@ -65,6 +65,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();