diff --git a/backend/game.py b/backend/game.py
index 5f86d17..93904b2 100644
--- a/backend/game.py
+++ b/backend/game.py
@@ -133,6 +133,18 @@ class Game:
for p in self.players:
p.notify_self()
self.players_map = {c.name: i for i, c in enumerate(self.players)}
+
+ def notify_all(self):
+ data = [{
+ 'name': p.name,
+ 'ncards': len(p.hand),
+ 'equipment': [e.__dict__ for e in p.equipment],
+ 'lives': p.lives,
+ 'max_lives': p.max_lives,
+ 'is_sheriff': isinstance(p.role, roles.Sheriff)
+ } for p in self.players]
+ self.sio.emit('players_update', room=self.name, data=data)
+
# game = Game()
diff --git a/backend/players.py b/backend/players.py
index c377c5a..abcd372 100644
--- a/backend/players.py
+++ b/backend/players.py
@@ -80,6 +80,7 @@ class Player:
ser.pop('expected_response')
self.sio.emit('self', room=self.sid, data=json.dumps(ser, default=lambda o: o.__dict__))
self.sio.emit('self_vis', room=self.sid, data=json.dumps(self.game.get_visible_players(self), default=lambda o: o.__dict__))
+ self.game.notify_all()
def play_turn(self):
if self.lives == 0:
diff --git a/frontend/src/components/Lobby.vue b/frontend/src/components/Lobby.vue
index e3f8a0f..a7161a2 100644
--- a/frontend/src/components/Lobby.vue
+++ b/frontend/src/components/Lobby.vue
@@ -3,11 +3,14 @@
Lobby: {{ lobbyName }}
Giocatori (tu sei {{username}})
@@ -26,6 +29,7 @@ import Chooser from './Chooser.vue'
import Chat from './Chat.vue'
import Player from './Player.vue'
import Deck from './Deck.vue'
+import TinyHand from './TinyHand.vue'
export default {
name: 'Lobby',
@@ -35,6 +39,7 @@ export default {
Chat,
Player,
Deck,
+ TinyHand,
},
props: {
username: String
@@ -54,21 +59,26 @@ export default {
this.started = data.started
this.players = data.players.map(x => {
return {
- name:x,
+ name: x,
+ ncards: 0,
}
})
},
- characters(data){
+ characters(data) {
this.availableCharacters = JSON.parse(data)
},
start() {
this.started = true;
},
- self_vis(vis) {
- console.log('received visibility update')
- console.log(vis)
- this.players = JSON.parse(vis)
+ players_update(data) {
+ console.log(data)
+ this.players = data
},
+ // self_vis(vis) {
+ // console.log('received visibility update')
+ // console.log(vis)
+ // this.players = JSON.parse(vis)
+ // },
},
computed: {
startGameCard() {
@@ -91,7 +101,11 @@ export default {
let offsetAngle = 360.0 / this.players.length
let rotateAngle = (i) * offsetAngle
let size = 130
- return {card:this.getPlayerCard(x), style: `position:absolute;transform: rotate(${rotateAngle}deg) translate(0, -${size}pt) rotate(-${rotateAngle}deg) translate(${size}pt,${size}pt)`}
+ return {
+ card:this.getPlayerCard(x),
+ style: `position:absolute;transform: rotate(${rotateAngle}deg) translate(0, -${size}pt) rotate(-${rotateAngle}deg) translate(${size}pt,${size}pt)`,
+ ...x
+ }
})
}
},
diff --git a/frontend/src/components/TinyHand.vue b/frontend/src/components/TinyHand.vue
new file mode 100644
index 0000000..e623d41
--- /dev/null
+++ b/frontend/src/components/TinyHand.vue
@@ -0,0 +1,20 @@
+
+
+
+
+
+
\ No newline at end of file