home · contact · privacy
Refactor server code; remove now unused PLAYER_POS message.
authorChristian Heller <c.heller@plomlompom.de>
Wed, 27 Feb 2019 07:41:22 +0000 (08:41 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Wed, 27 Feb 2019 07:41:22 +0000 (08:41 +0100)
new/plomrogue/commands.py
new/plomrogue/game.py

index 280b73603e7b5f14e3dbe4424b4c33f567ecf211..35ced5cb0314d89cea9fbf51fbd3a9db7dad2cd9 100644 (file)
@@ -60,10 +60,9 @@ def cmd_TURN(game, n):
 cmd_TURN.argtypes = 'int:nonneg'
 
 def cmd_SWITCH_PLAYER(game):
 cmd_TURN.argtypes = 'int:nonneg'
 
 def cmd_SWITCH_PLAYER(game):
-    player = game.world.get_player()
-    player.set_task('WAIT')
+    game.world.player.set_task('WAIT')
     thing_ids = [t.id_ for t in game.world.things]
     thing_ids = [t.id_ for t in game.world.things]
-    player_index = thing_ids.index(player.id_)
+    player_index = thing_ids.index(game.world.player.id_)
     if player_index == len(thing_ids) - 1:
         game.world.player_id = thing_ids[0]
     else:
     if player_index == len(thing_ids) - 1:
         game.world.player_id = thing_ids[0]
     else:
index 9b20cb2e48e78036c6495849d12a3541ebab0843..bc5b8c3a5ec58a4776e6642e76fb7f4353a92e7b 100755 (executable)
@@ -37,6 +37,10 @@ class World(WorldBase):
         super().__init__(*args, **kwargs)
         self.player_id = 0
 
         super().__init__(*args, **kwargs)
         self.player_id = 0
 
+    @property
+    def player(self):
+        return self.get_thing(self.player_id)
+
     def new_thing_id(self):
         if len(self.things) == 0:
             return 0
     def new_thing_id(self):
         if len(self.things) == 0:
             return 0
@@ -58,20 +62,16 @@ class World(WorldBase):
         the player's task is finished, the loop breaks.
         """
         while True:
         the player's task is finished, the loop breaks.
         """
         while True:
-            player = self.get_player()
-            player_i = self.things.index(player)
+            player_i = self.things.index(self.player)
             for thing in self.things[player_i+1:]:
                 thing.proceed()
             self.turn += 1
             for thing in self.things[:player_i]:
                 thing.proceed()
             for thing in self.things[player_i+1:]:
                 thing.proceed()
             self.turn += 1
             for thing in self.things[:player_i]:
                 thing.proceed()
-            player.proceed(is_AI=False)
-            if player.task is None:
+            self.player.proceed(is_AI=False)
+            if self.player.task is None:
                 break
 
                 break
 
-    def get_player(self):
-        return self.get_thing(self.player_id)
-
     def make_new(self, yx, seed):
         import random
 
     def make_new(self, yx, seed):
         import random
 
@@ -140,22 +140,20 @@ class Game:
 
         self.io.send('TURN ' + str(self.world.turn))
         self.io.send('MAP ' + stringify_yx(self.world.map_.size))
 
         self.io.send('TURN ' + str(self.world.turn))
         self.io.send('MAP ' + stringify_yx(self.world.map_.size))
-        visible_map = self.world.get_player().get_visible_map()
+        visible_map = self.world.player.get_visible_map()
         for y, line in visible_map.lines():
             self.io.send('VISIBLE_MAP_LINE %5s %s' % (y, quote(line)))
         for y, line in visible_map.lines():
             self.io.send('VISIBLE_MAP_LINE %5s %s' % (y, quote(line)))
-        visible_things = self.world.get_player().get_visible_things()
+        visible_things = self.world.player.get_visible_things()
         for thing in visible_things:
             self.io.send('THING_TYPE %s %s' % (thing.id_, thing.type_))
             self.io.send('THING_POS %s %s' % (thing.id_,
                                               stringify_yx(thing.position)))
         for thing in visible_things:
             self.io.send('THING_TYPE %s %s' % (thing.id_, thing.type_))
             self.io.send('THING_POS %s %s' % (thing.id_,
                                               stringify_yx(thing.position)))
-        player = self.world.get_player()
-        self.io.send('PLAYER_POS %s' % (stringify_yx(player.position)))
-        if len(player.inventory) > 0:
-            self.io.send('PLAYER_INVENTORY %s' % ','.join([str(i) for i in
-                                                           player.inventory]))
+        if len(self.world.player.inventory) > 0:
+            self.io.send('PLAYER_INVENTORY %s' %
+                         ','.join([str(i) for i in self.world.player.inventory]))
         else:
             self.io.send('PLAYER_INVENTORY ,')
         else:
             self.io.send('PLAYER_INVENTORY ,')
-        for id_ in player.inventory:
+        for id_ in self.world.player.inventory:
             thing = self.world.get_thing(id_)
             self.io.send('THING_TYPE %s %s' % (thing.id_, thing.type_))
             self.io.send('THING_POS %s %s' % (thing.id_,
             thing = self.world.get_thing(id_)
             self.io.send('THING_TYPE %s %s' % (thing.id_, thing.type_))
             self.io.send('THING_POS %s %s' % (thing.id_,
@@ -170,7 +168,7 @@ class Game:
         """
         self.io.send('TURN_FINISHED ' + str(self.world.turn))
         self.world.proceed_to_next_player_turn()
         """
         self.io.send('TURN_FINISHED ' + str(self.world.turn))
         self.world.proceed_to_next_player_turn()
-        msg = str(self.world.get_player()._last_task_result)
+        msg = str(self.world.player._last_task_result)
         self.io.send('LAST_PLAYER_TASK_RESULT ' + quote(msg))
         self.send_gamestate()
 
         self.io.send('LAST_PLAYER_TASK_RESULT ' + quote(msg))
         self.send_gamestate()
 
@@ -183,7 +181,7 @@ class Game:
             return p
 
         def cmd_TASK_colon(task_name, game, *args):
             return p
 
         def cmd_TASK_colon(task_name, game, *args):
-            game.world.get_player().set_task(task_name, args)
+            game.world.player.set_task(task_name, args)
             game.proceed()
 
         def cmd_SET_TASK_colon(task_name, game, thing_id, todo, *args):
             game.proceed()
 
         def cmd_SET_TASK_colon(task_name, game, thing_id, todo, *args):