X-Git-Url: https://plomlompom.com/repos/?a=blobdiff_plain;ds=sidebyside;f=plomrogue%2Fgame.py;h=088db9d739a0eb7854608613758c28ff76cc2f0e;hb=7c03e8e8e4ed15f01e29dd331596719058af9f07;hp=4b5c3372eba5b2d96fccfb72ec0d7e8250645b37;hpb=a7b082cab5ac4cf0580ce55cf2862a883c4da575;p=plomrogue2 diff --git a/plomrogue/game.py b/plomrogue/game.py index 4b5c337..088db9d 100755 --- a/plomrogue/game.py +++ b/plomrogue/game.py @@ -351,7 +351,9 @@ class Game(GameBase): for s in [s for s in self.things if s.type_ == 'SpawnPoint' and s.name == t.name]: t.position = s.position - break + if s.temporary: + self.remove_thing(s) + break def run_tick(self): @@ -367,6 +369,9 @@ class Game(GameBase): t = self.get_player(connection_id) if hasattr(t, 'name'): self.io.send('CHAT ' + quote(t.name + ' left the map.')) + spawn_point = self.add_thing('SpawnPoint', t.position) + spawn_point.temporary = True + spawn_point.name = t.name self.remove_thing(t) to_delete += [connection_id] for connection_id in to_delete: @@ -568,6 +573,20 @@ class Game(GameBase): elif t.type_ == 'Crate': for item in t.content: write(f, 'THING_CRATE_ITEM %s %s' % (t.id_, item.id_)) + elif t.type_ == 'SpawnPoint': + timestamp = 0 + if t.temporary: + timestamp = int(t.created_at.timestamp()) + write(f, 'THING_SPAWNPOINT_CREATED %s %s' % (t.id_, + timestamp)) + next_thing_id = self.new_thing_id() + for t in [t for t in self.things if t.type_ == 'Player']: + write(f, 'THING %s %s SpawnPoint %s' + % (t.position[0], t.position[1], next_thing_id)) + write(f, 'GOD_THING_NAME %s %s' % (next_thing_id, t.name)) + write(f, 'THING_SPAWNPOINT_CREATED %s %s' + % (next_thing_id, int(datetime.datetime.now().timestamp()))) + next_thing_id += 1 write(f, 'SPAWN_POINT %s %s' % (self.spawn_point[0], self.spawn_point[1]))