add: morpion: backend disconnect

This commit is contained in:
Namonay 2024-05-01 21:29:23 +02:00
parent d0a8d12934
commit d00d2231a4
2 changed files with 10 additions and 5 deletions

View File

@ -36,18 +36,19 @@ class TicTacToe
async onReceive(messageData) async onReceive(messageData)
{ {
console.log(messageData)
switch (messageData.detail) switch (messageData.detail)
{ {
case 'x': case 'x':
case 'o': case 'o':
this.sign = messageData.detail; this.sign = messageData.detail;
this.turn = messageData.detail == "x"; this.turn = messageData.detail == "x";
if (this.turn && this.game.started == false)
this.setOutline(4, false);
break; break;
case 'game_start': case 'game_start':
this.game.started = true; this.game.started = true;
if (this.turn)
this.setOutline(4, false);
break; break;
case 'game_move': case 'game_move':

View File

@ -38,9 +38,10 @@ class TicTacToeWebSocket(WebsocketConsumer):
self.game: TicTacToeGame = game_manager.get(self.game_id, "tictactoe") self.game: TicTacToeGame = game_manager.get(self.game_id, "tictactoe")
if (self.game is None):
return
self.member = self.game.join(self.user.pk, self) self.member = self.game.join(self.user.pk, self)
self.lastmovetimer = time.time()
if (isinstance(self.member, TicTacToePlayer)): if (isinstance(self.member, TicTacToePlayer)):
self.member.send(self.member.sign) self.member.send(self.member.sign)
@ -61,13 +62,16 @@ class TicTacToeWebSocket(WebsocketConsumer):
return return
if (self.game.checkWin() != False): if (self.game.checkWin() != False):
self.winner = self.game.checkWin() self.winner = self.game.checkWin()
self.game.model.finish(self.user)
self.game.broadcast("game_end", {"winning_sign": self.winner}) self.game.broadcast("game_end", {"winning_sign": self.winner})
self.game.broadcast("game_move", data, [self.member]) self.game.broadcast("game_move", data, [self.member])
pass pass
def disconnect(self, event): def disconnect(self, event):
self.member.socket = None try:
self.game.broadcast("opponent_leave_timer") self.member.socket = None
except:
pass
class PongWebSocket(WebsocketConsumer): class PongWebSocket(WebsocketConsumer):