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