toggle espansione
This commit is contained in:
parent
24f7a68024
commit
7ba1b0c7b9
@ -69,6 +69,11 @@ def private(sid):
|
||||
g.set_private()
|
||||
advertise_lobbies()
|
||||
|
||||
@sio.event
|
||||
def toggle_expansion(sid, expansion_name):
|
||||
g = sio.get_session(sid).game
|
||||
g.toggle_expansion(expansion_name)
|
||||
|
||||
@sio.event
|
||||
def join_room(sid, room):
|
||||
room_name = room['name']
|
||||
|
@ -22,13 +22,31 @@ class Game:
|
||||
self.password = ''
|
||||
self.expansions = []
|
||||
|
||||
def notify_room(self):
|
||||
self.sio.emit('room', room=self.name, data={
|
||||
'name': self.name,
|
||||
'started': self.started,
|
||||
'players': [{'name':p.name, 'ready': False} for p in self.players],
|
||||
'password': self.password,
|
||||
'expansions': self.expansions,
|
||||
})
|
||||
|
||||
def toggle_expansion(self, expansion_name):
|
||||
if not self.started:
|
||||
print('toggling', expansion_name)
|
||||
if expansion_name in self.expansions:
|
||||
self.expansions.remove(expansion_name)
|
||||
else:
|
||||
self.expansions.append(expansion_name)
|
||||
self.notify_room()
|
||||
|
||||
def add_player(self, player: players.Player):
|
||||
if player in self.players or len(self.players) >= 7:
|
||||
return
|
||||
player.join_game(self)
|
||||
self.players.append(player)
|
||||
print(f'Added player {player.name} to game')
|
||||
self.sio.emit('room', room=self.name, data={'name': self.name, 'started': self.started, 'players': [{'name':p.name, 'ready': False} for p in self.players], 'password': self.password})
|
||||
self.notify_room()
|
||||
self.sio.emit('chat_message', room=self.name, data=f'{player.name} è entrato nella lobby.')
|
||||
|
||||
def set_private(self):
|
||||
@ -37,11 +55,11 @@ class Game:
|
||||
print(self.name, 'is now private pwd', self.password)
|
||||
else:
|
||||
self.password = ''
|
||||
self.sio.emit('room', room=self.name, data={'name': self.name, 'started': self.started, 'players': [{'name':p.name, 'ready': False} for p in self.players], 'password': self.password})
|
||||
self.notify_room()
|
||||
|
||||
def notify_character_selection(self):
|
||||
self.readyCount += 1
|
||||
self.sio.emit('room', room=self.name, data={'name': self.name, 'started': self.started, 'players': [{'name':p.name, 'ready': p.character!=None} for p in self.players], 'password': self.password})
|
||||
self.notify_room()
|
||||
if self.readyCount == len(self.players):
|
||||
self.distribute_roles()
|
||||
|
||||
@ -214,7 +232,7 @@ class Game:
|
||||
if self.started and index <= self.turn:
|
||||
self.turn -= 1
|
||||
self.players.pop(index)
|
||||
self.sio.emit('room', room=self.name, data={'name': self.name, 'started': self.started, 'players': [p.name for p in self.players]})
|
||||
self.notify_room()
|
||||
self.sio.emit('chat_message', room=self.name, data=f'{player.name} è morto.')
|
||||
if self.started:
|
||||
self.sio.emit('chat_message', room=self.name, data=f'{player.name} era {player.role.name}!')
|
||||
|
@ -27,6 +27,10 @@
|
||||
<!-- :style="p.style"/> -->
|
||||
<!-- </div> -->
|
||||
</div>
|
||||
<div v-if="!started">
|
||||
<h3>Espansioni</h3>
|
||||
<PrettyCheck @click.native="toggleExpansions('dodge_city')" :disabled="!isRoomOwner" v-model="useDodgeCity" class="p-switch p-fill" style="margin-top:5px; margin-bottom:3px;">Dodge City</PrettyCheck>
|
||||
</div>
|
||||
<div v-if="started">
|
||||
<deck :endTurnAction="()=>{wantsToEndTurn = true}"/>
|
||||
<player :isEndingTurn="wantsToEndTurn" :cancelEndingTurn="()=>{wantsToEndTurn = false}" :chooseCardFromPlayer="choose"/>
|
||||
@ -78,12 +82,14 @@ export default {
|
||||
selectedInfo: null,
|
||||
privateRoom: false,
|
||||
password: '',
|
||||
useDodgeCity: false,
|
||||
}),
|
||||
sockets: {
|
||||
room(data) {
|
||||
this.lobbyName = data.name
|
||||
this.started = data.started
|
||||
this.password = data.password
|
||||
this.useDodgeCity = data.expansions.indexOf('dodge_city') !== -1
|
||||
this.players = data.players.map(x => {
|
||||
return {
|
||||
name: x.name,
|
||||
@ -141,6 +147,10 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
toggleExpansions(name) {
|
||||
if (!this.isRoomOwner) return;
|
||||
this.$socket.emit('toggle_expansion', name)
|
||||
},
|
||||
getActionEmoji(p) {
|
||||
if (p.is_my_turn === undefined || p.pending_action === undefined) return '';
|
||||
if (p.pending_action != 4) {
|
||||
|
Loading…
Reference in New Issue
Block a user