home · contact · privacy
Don't abort initial save file replay on error.
[plomrogue2-experiments] / server.py
index 5847a5439982ecaa02f1673e0cceed948afd75c1..f6dcd35e43d3a915560ab3b8d36fbac474876666 100755 (executable)
--- a/server.py
+++ b/server.py
@@ -106,8 +106,7 @@ class CommandHandler(game_common.Commander, server_.game.Commander):
         self.pool = Pool()
         self.pool_result = None
 
-    def handle_input(self, input_, connection_id=None, abort_on_error=False,
-                     store=True):
+    def handle_input(self, input_, connection_id=None, store=True):
         """Process input_ to command grammar, call command handler if found."""
         from inspect import signature
         try:
@@ -124,12 +123,8 @@ class CommandHandler(game_common.Commander, server_.game.Commander):
                             f.write(input_ + '\n')
         except parser.ArgError as e:
             self.send_to(connection_id, 'ARGUMENT ERROR: ' + str(e))
-            if abort_on_error:
-                exit(1)
         except server_.game.GameError as e:
             self.send_to(connection_id, 'GAME ERROR: ' + str(e))
-            if abort_on_error:
-                exit(1)
 
     def send_to(self, connection_id, msg):
         """Send msg to client of connection_id; if no later, print instead."""
@@ -180,6 +175,8 @@ class CommandHandler(game_common.Commander, server_.game.Commander):
         """
         self.send_all('TURN_FINISHED ' + str(self.world.turn))
         self.world.proceed_to_next_player_turn()
+        msg = str(self.world.get_player().last_task_result)
+        self.send_all('LAST_PLAYER_TASK_RESULT ' + msg)
         self.send_all_gamestate()
 
     def cmd_FIB(self, numbers, connection_id):
@@ -262,7 +259,7 @@ if os.path.exists(game_file_name):
         for i in range(len(lines)):
             line = lines[i]
             print("FILE INPUT LINE %s: %s" % (i, line), end='')
-            commander.handle_input(line, abort_on_error=True, store=False)
+            commander.handle_input(line, store=False)
 else:
     commander.handle_input('MAP_SIZE Y:5,X:5')
     commander.handle_input('TERRAIN_LINE 0 "xxxxx"')