change spectator logic
This commit is contained in:
parent
49987b2c5a
commit
ce1c1ec62b
@ -81,7 +81,7 @@ def get_me(sid, room):
|
|||||||
sio.emit('role', room=sid, data=json.dumps(bot.role, default=lambda o: o.__dict__))
|
sio.emit('role', room=sid, data=json.dumps(bot.role, default=lambda o: o.__dict__))
|
||||||
bot.notify_self()
|
bot.notify_self()
|
||||||
else: #spectate
|
else: #spectate
|
||||||
de_games[0].dead_players.append(sio.get_session(sid))
|
de_games[0].spectators.append(sio.get_session(sid))
|
||||||
sio.get_session(sid).game = de_games[0]
|
sio.get_session(sid).game = de_games[0]
|
||||||
sio.enter_room(sid, de_games[0].name)
|
sio.enter_room(sid, de_games[0].name)
|
||||||
de_games[0].notify_room(sid)
|
de_games[0].notify_room(sid)
|
||||||
|
@ -17,7 +17,7 @@ class Game:
|
|||||||
self.sio = sio
|
self.sio = sio
|
||||||
self.name = name
|
self.name = name
|
||||||
self.players: List[pl.Player] = []
|
self.players: List[pl.Player] = []
|
||||||
self.dead_players: List[pl.Player] = []
|
self.spectators: List[pl.Player] = []
|
||||||
self.deck: Deck = None
|
self.deck: Deck = None
|
||||||
self.started = False
|
self.started = False
|
||||||
self.turn = 0
|
self.turn = 0
|
||||||
@ -357,7 +357,9 @@ class Game:
|
|||||||
|
|
||||||
def handle_disconnect(self, player: pl.Player):
|
def handle_disconnect(self, player: pl.Player):
|
||||||
print(f'player {player.name} left the game {self.name}')
|
print(f'player {player.name} left the game {self.name}')
|
||||||
# if player in self.players:
|
if player in self.spectators:
|
||||||
|
self.spectators.remove(player)
|
||||||
|
return
|
||||||
if self.disconnect_bot and self.started:
|
if self.disconnect_bot and self.started:
|
||||||
player.is_bot = True
|
player.is_bot = True
|
||||||
eventlet.sleep(15) # he may reconnect
|
eventlet.sleep(15) # he may reconnect
|
||||||
@ -367,11 +369,11 @@ class Game:
|
|||||||
# else:
|
# else:
|
||||||
# player.lives = 0
|
# player.lives = 0
|
||||||
# self.players.remove(player)
|
# self.players.remove(player)
|
||||||
if len([p for p in self.players if not p.is_bot])+len([p for p in self.dead_players if not p.is_bot]) == 0:
|
if len([p for p in self.players if not p.is_bot]) == 0:
|
||||||
print(f'no players left in game {self.name}')
|
print(f'no players left in game {self.name}')
|
||||||
self.shutting_down = True
|
self.shutting_down = True
|
||||||
self.players = []
|
self.players = []
|
||||||
self.dead_players = []
|
self.spectators = []
|
||||||
self.deck = None
|
self.deck = None
|
||||||
return True
|
return True
|
||||||
else: return False
|
else: return False
|
||||||
@ -395,11 +397,14 @@ class Game:
|
|||||||
self.responders_did_respond_resume_turn()
|
self.responders_did_respond_resume_turn()
|
||||||
|
|
||||||
if player.is_dead: return
|
if player.is_dead: return
|
||||||
# if not player in self.players: return
|
if not self.started:
|
||||||
# index = self.players.index(player)
|
self.players.remove(player)
|
||||||
# died_in_his_turn = self.started and index == self.turn
|
elif disconnected:
|
||||||
# if self.started and index <= self.turn:
|
index = self.players.index(player)
|
||||||
# self.turn -= 1
|
if self.started and index <= self.turn:
|
||||||
|
self.turn -= 1
|
||||||
|
self.players.remove(player)
|
||||||
|
self.players_map = {c.name: i for i, c in enumerate(self.players)}
|
||||||
player.lives = 0
|
player.lives = 0
|
||||||
player.is_dead = True
|
player.is_dead = True
|
||||||
player.death_turn = self.incremental_turn
|
player.death_turn = self.incremental_turn
|
||||||
@ -471,8 +476,8 @@ class Game:
|
|||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
print('resetting lobby')
|
print('resetting lobby')
|
||||||
self.players.extend(self.dead_players)
|
self.players.extend(self.spectators)
|
||||||
self.dead_players = []
|
self.spectators = []
|
||||||
self.players = [p for p in self.players if not p.is_bot]
|
self.players = [p for p in self.players if not p.is_bot]
|
||||||
print(self.players)
|
print(self.players)
|
||||||
self.started = False
|
self.started = False
|
||||||
|
@ -43,8 +43,8 @@
|
|||||||
</div>
|
</div>
|
||||||
<h3>{{$t('mods')}}</h3>
|
<h3>{{$t('mods')}}</h3>
|
||||||
<PrettyCheck @click.native="toggleCompetitive" :disabled="!isRoomOwner" v-model="is_competitive" class="p-switch p-fill" style="margin-top:5px; margin-bottom:3px;">{{$t('mod_comp')}}</PrettyCheck>
|
<PrettyCheck @click.native="toggleCompetitive" :disabled="!isRoomOwner" v-model="is_competitive" class="p-switch p-fill" style="margin-top:5px; margin-bottom:3px;">{{$t('mod_comp')}}</PrettyCheck>
|
||||||
<br>
|
<!-- <br> -->
|
||||||
<PrettyCheck @click.native="toggleReplaceWithBot" :disabled="!isRoomOwner" v-model="disconnect_bot" class="p-switch p-fill" style="margin-top:5px; margin-bottom:3px;">{{$t('disconnect_bot')}}</PrettyCheck>
|
<!-- <PrettyCheck @click.native="toggleReplaceWithBot" :disabled="!isRoomOwner" v-model="disconnect_bot" class="p-switch p-fill" style="margin-top:5px; margin-bottom:3px;">{{$t('disconnect_bot')}}</PrettyCheck> -->
|
||||||
</div>
|
</div>
|
||||||
<div v-if="started">
|
<div v-if="started">
|
||||||
<deck :endTurnAction="()=>{wantsToEndTurn = true}"/>
|
<deck :endTurnAction="()=>{wantsToEndTurn = true}"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user