diff --git a/backend/__init__.py b/backend/__init__.py
index 14ced17..c0873f9 100644
--- a/backend/__init__.py
+++ b/backend/__init__.py
@@ -33,10 +33,16 @@ def connect(sid, environ):
@sio.event
def set_username(sid, username):
global online_players
- online_players += 1
- sio.save_session(sid, Player(username, sid, sio))
- print(f'{sid} is now {username}')
- advertise_lobbies()
+ if not isinstance(sio.get_session(sid), Player):
+ online_players += 1
+ sio.save_session(sid, Player(username, sid, sio))
+ print(f'{sid} is now {username}')
+ advertise_lobbies()
+ elif sio.get_session(sid).game == None or not sio.get_session(sid).game.started:
+ print(f'{sid} changed username to {username}')
+ sio.get_session(sid).name = username
+ sio.emit('me', data=sio.get_session(sid).name, room=sid)
+ sio.get_session(sid).game.notify_room()
@sio.event
def get_me(sid, room):
@@ -55,6 +61,7 @@ def get_me(sid, room):
sio.emit('me', data={'error':'Wrong password/Cannot connect'}, room=sid)
else:
sio.emit('me', data=sio.get_session(sid).name, room=sid)
+ sio.emit('change_username', room=sid)
@sio.event
def disconnect(sid):
diff --git a/backend/bang/game.py b/backend/bang/game.py
index db79c77..c790ebf 100644
--- a/backend/bang/game.py
+++ b/backend/bang/game.py
@@ -23,6 +23,7 @@ class Game:
self.expansions = []
def notify_room(self):
+ print([p.name for p in self.players])
if len([p for p in self.players if p.character == None]) != 0:
self.sio.emit('room', room=self.name, data={
'name': self.name,
diff --git a/frontend/src/components/FullScreenInput.vue b/frontend/src/components/FullScreenInput.vue
new file mode 100644
index 0000000..e76ac42
--- /dev/null
+++ b/frontend/src/components/FullScreenInput.vue
@@ -0,0 +1,108 @@
+
+
+
{{text}}
+
+
{{hintText}}
+
{{realCancelText}}
+
{{desc}}
+
+
+
+
+
+
+
diff --git a/frontend/src/components/Lobby.vue b/frontend/src/components/Lobby.vue
index 90e35bf..be1e1e4 100644
--- a/frontend/src/components/Lobby.vue
+++ b/frontend/src/components/Lobby.vue
@@ -40,6 +40,7 @@
+
@@ -52,6 +53,7 @@ import Chat from './Chat.vue'
import Player from './Player.vue'
import Deck from './Deck.vue'
import TinyHand from './TinyHand.vue'
+import FullScreenInput from './FullScreenInput.vue'
export default {
name: 'Lobby',
@@ -63,6 +65,7 @@ export default {
Deck,
TinyHand,
PrettyCheck,
+ FullScreenInput
},
data: () => ({
username: '',
@@ -80,6 +83,7 @@ export default {
privateRoom: false,
password: '',
useDodgeCity: false,
+ hasToSetUsername: false,
}),
sockets: {
room(data) {
@@ -109,6 +113,9 @@ export default {
}
this.username = username
},
+ change_username() {
+ this.hasToSetUsername = true
+ }
},
computed: {
isRoomOwner() {
@@ -196,6 +203,13 @@ export default {
console.log(name)
this.$socket.emit('draw', name)
},
+ setUsername(name){
+ if (name.trim().length > 0){
+ localStorage.setItem('username', name)
+ this.hasToSetUsername = false
+ this.$socket.emit('set_username', name)
+ }
+ },
},
watch: {
privateRoom() {