diff --git a/backend/bang/game.py b/backend/bang/game.py
index 7845820..7c69cbe 100644
--- a/backend/bang/game.py
+++ b/backend/bang/game.py
@@ -64,7 +64,13 @@ class Game:
self.readyCount += 1
self.notify_room()
if self.readyCount == len(self.players):
- self.distribute_roles()
+ for i in range(len(self.players)):
+ self.sio.emit('chat_message', room=self.name, data=f'{self.players[i].name} ha come personaggio {self.players[i].character.name}, la sua abilità speciale è: {self.players[i].character.desc}')
+ self.players[i].prepare()
+ for k in range(self.players[i].max_lives):
+ self.players[i].hand.append(self.deck.draw())
+ self.players[i].notify_self()
+ self.players[self.turn].play_turn()
def choose_characters(self):
char_cards = random.sample(characters.all_characters(), len(self.players)*2)
@@ -81,6 +87,7 @@ class Game:
self.started = True
self.deck = Deck(self)
self.initial_players = len(self.players)
+ self.distribute_roles()
self.choose_characters()
def distribute_roles(self):
@@ -96,17 +103,12 @@ class Game:
available_roles = available_roles[:len(self.players)]
random.shuffle(available_roles)
for i in range(len(self.players)):
- self.sio.emit('chat_message', room=self.name, data=f'{self.players[i].name} ha come personaggio {self.players[i].character.name}, la sua abilità speciale è: {self.players[i].character.desc}')
self.players[i].set_role(available_roles[i])
if isinstance(available_roles[i], roles.Sheriff) or (len(available_roles) == 3 and isinstance(available_roles[i], roles.Vice)):
if isinstance(available_roles[i], roles.Sheriff):
self.sio.emit('chat_message', room=self.name, data=f'{self.players[i].name} È lo sceriffo')
self.turn = i
- self.players[i].prepare()
- for k in range(self.players[i].max_lives):
- self.players[i].hand.append(self.deck.draw())
self.players[i].notify_self()
- self.play_turn()
def attack_others(self, attacker: players.Player):
attacker.pending_action = players.PendingAction.WAIT
diff --git a/frontend/src/components/Lobby.vue b/frontend/src/components/Lobby.vue
index 9976d0f..8457c6e 100644
--- a/frontend/src/components/Lobby.vue
+++ b/frontend/src/components/Lobby.vue
@@ -39,7 +39,6 @@
-
@@ -74,7 +73,6 @@ export default {
players: [],
messages: [],
distances: {},
- availableCharacters: [],
self: {},
hasToChoose: false,
target_p: '',
@@ -99,9 +97,6 @@ export default {
}
})
},
- characters(data) {
- this.availableCharacters = JSON.parse(data)
- },
start() {
this.started = true;
},
@@ -130,9 +125,6 @@ export default {
}
return null;
},
- showChooser() {
- return this.availableCharacters.length > 0;
- },
playersTable() {
console.log('update players')
return this.players.map((x,i) => {
@@ -174,10 +166,6 @@ export default {
this.started = true;
this.$socket.emit('start_game')
},
- setCharacter(char) {
- this.availableCharacters = []
- this.$socket.emit('set_character', char.name)
- },
choose(player_name) {
console.log('choose from' + player_name)
this.target_p = player_name
diff --git a/frontend/src/components/Player.vue b/frontend/src/components/Player.vue
index a7da1f0..f996dba 100644
--- a/frontend/src/components/Player.vue
+++ b/frontend/src/components/Player.vue
@@ -33,6 +33,7 @@
+
@@ -60,6 +61,7 @@ export default {
data: () => ({
my_role: null,
character: null,
+ availableCharacters: [],
equipment: [],
hand: [],
lives: 0,
@@ -93,6 +95,9 @@ export default {
this.my_role.is_back = true
this.show_role = true
},
+ characters(data) {
+ this.availableCharacters = JSON.parse(data)
+ },
self(self) {
self = JSON.parse(self)
this.name = self.name
@@ -190,6 +195,10 @@ export default {
}
},
methods: {
+ setCharacter(char) {
+ this.availableCharacters = []
+ this.$socket.emit('set_character', char.name)
+ },
sidScrap(c) {
this.sidScrapForHealth.push(this.hand.indexOf(c))
if (this.sidScrapForHealth.length == 2) {