fix replays
This commit is contained in:
parent
13ab981c59
commit
699c976c75
@ -82,6 +82,7 @@ class Game:
|
|||||||
self.rng = random.Random()
|
self.rng = random.Random()
|
||||||
self.rpc_log = []
|
self.rpc_log = []
|
||||||
self.is_replay = False
|
self.is_replay = False
|
||||||
|
self.replay_speed = 1
|
||||||
|
|
||||||
def shuffle_players(self):
|
def shuffle_players(self):
|
||||||
if not self.started:
|
if not self.started:
|
||||||
@ -173,7 +174,7 @@ class Game:
|
|||||||
if i == fast_forward:
|
if i == fast_forward:
|
||||||
self.replay_speed = 1.0
|
self.replay_speed = 1.0
|
||||||
self.notify_room()
|
self.notify_room()
|
||||||
eventlet.sleep(max(self.replay_speed, 0.1))
|
eventlet.sleep(max(self.replay_speed, 0.001))
|
||||||
eventlet.sleep(6)
|
eventlet.sleep(6)
|
||||||
if self.is_replay:
|
if self.is_replay:
|
||||||
self.reset()
|
self.reset()
|
||||||
@ -835,7 +836,7 @@ class Game:
|
|||||||
return [p for p in self.players if p.is_dead and (include_ghosts or not p.is_ghost)]
|
return [p for p in self.players if p.is_dead and (include_ghosts or not p.is_ghost)]
|
||||||
|
|
||||||
def notify_all(self):
|
def notify_all(self):
|
||||||
if self.started:
|
if self.started and self.replay_speed > 0:
|
||||||
data = [{
|
data = [{
|
||||||
'name': p.name,
|
'name': p.name,
|
||||||
'ncards': len(p.hand),
|
'ncards': len(p.hand),
|
||||||
|
@ -159,7 +159,7 @@ def get_me(sid, room):
|
|||||||
if 'ffw' not in room:
|
if 'ffw' not in room:
|
||||||
sid.game.replay(log)
|
sid.game.replay(log)
|
||||||
else:
|
else:
|
||||||
sid.game.replay(log, speed=0.1, fast_forward=int(room['ffw']))
|
sid.game.replay(log, speed=0, fast_forward=int(room['ffw']))
|
||||||
return
|
return
|
||||||
de_games = [g for g in games if g.name == room['name']]
|
de_games = [g for g in games if g.name == room['name']]
|
||||||
if len(de_games) == 1 and not de_games[0].started:
|
if len(de_games) == 1 and not de_games[0].started:
|
||||||
@ -471,7 +471,7 @@ def chat_message(sid, msg, pl=None):
|
|||||||
ses.game.replay(log)
|
ses.game.replay(log)
|
||||||
if len(_cmd) == 3:
|
if len(_cmd) == 3:
|
||||||
line = int(_cmd[2])
|
line = int(_cmd[2])
|
||||||
ses.game.replay(log, speed=0.1, fast_forward=line)
|
ses.game.replay(log, speed=0, fast_forward=line)
|
||||||
return
|
return
|
||||||
if '/replayspeed' in msg:
|
if '/replayspeed' in msg:
|
||||||
_cmd = msg.split()
|
_cmd = msg.split()
|
||||||
@ -484,11 +484,8 @@ def chat_message(sid, msg, pl=None):
|
|||||||
name = ' '.join(_cmd[1:])
|
name = ' '.join(_cmd[1:])
|
||||||
for p in ses.game.players:
|
for p in ses.game.players:
|
||||||
if p.sid == ses.sid:
|
if p.sid == ses.sid:
|
||||||
from tests.dummy_socket import DummySocket
|
|
||||||
p.sio = DummySocket()
|
|
||||||
p.sid = ''
|
p.sid = ''
|
||||||
pl = ses.game.get_player_named(name)
|
pl = ses.game.get_player_named(name)
|
||||||
pl.sio = sio
|
|
||||||
pl.sid = ses.sid
|
pl.sid = ses.sid
|
||||||
pl.set_role(pl.role)
|
pl.set_role(pl.role)
|
||||||
pl.notify_self()
|
pl.notify_self()
|
||||||
@ -812,7 +809,7 @@ def save_games():
|
|||||||
if not save_lock:
|
if not save_lock:
|
||||||
sio.sleep(2)
|
sio.sleep(2)
|
||||||
with open('games.pickle', 'wb') as f:
|
with open('games.pickle', 'wb') as f:
|
||||||
pickle.dump([g for g in games if g.started], f)
|
pickle.dump([g for g in games if g.started and not g.is_replay], f)
|
||||||
save_games()
|
save_games()
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
|
Loading…
Reference in New Issue
Block a user