game: core: change player to player.isconnected
befort: if a player is disconnected he doesn't have an object after: he have un object with a socket == None
This commit is contained in:
@ -17,9 +17,7 @@ class Player(Spectator):
|
||||
|
||||
def __init__(self, game: Game, user_id: int, socket: WebsocketConsumer, rail_start_x: float, rail_start_y: float, rail_stop_x: float, rail_stop_y: float) -> None:
|
||||
|
||||
super().__init__(user_id, socket)
|
||||
|
||||
self.game: Game = game
|
||||
super().__init__(user_id, socket, game)
|
||||
|
||||
self.position: Position = Position(0.5, 0)
|
||||
|
||||
@ -29,7 +27,7 @@ class Player(Spectator):
|
||||
self.rail_start_y: float = rail_start_y
|
||||
self.rail_stop_x: float = rail_stop_x
|
||||
self.rail_stop_y: float = rail_stop_y
|
||||
|
||||
|
||||
def receive(self, data: dict):
|
||||
|
||||
detail: str = data.get("detail")
|
||||
@ -52,8 +50,6 @@ class Player(Spectator):
|
||||
|
||||
def update_position(self, data: dict):
|
||||
|
||||
print(data)
|
||||
|
||||
new_position: Position = Position()
|
||||
|
||||
new_position.position: float = data.get("position")
|
||||
@ -83,7 +79,6 @@ class Player(Spectator):
|
||||
new_position_verified: Position = new_position.copy()
|
||||
|
||||
if (distance > max_distance):
|
||||
print(max_distance, distance, time_difference, self.position.position, new_position.position)
|
||||
new_position_verified.position = self.position.position + max_distance * sign
|
||||
|
||||
if (not config.PADDLE_POSITION_MIN <= new_position_verified.position <= config.PADDLE_POSITION_MAX):
|
||||
@ -92,15 +87,27 @@ class Player(Spectator):
|
||||
new_position_verified.position = min(new_position_verified.position, config.PADDLE_POSITION_MAX)
|
||||
|
||||
invalid_pos: bool = new_position.position != new_position_verified.position
|
||||
|
||||
if (new_position != self.position):
|
||||
self.game._update_player(self)
|
||||
|
||||
self.position = new_position
|
||||
|
||||
if (invalid_pos):
|
||||
self.send("update_paddle", self.to_dict())
|
||||
|
||||
self.game.broadcast("update_paddle", self.to_dict(), [self])
|
||||
|
||||
|
||||
def connect(self, socket: WebsocketConsumer):
|
||||
self.socket = socket
|
||||
self.accept()
|
||||
self.game._update_player(self)
|
||||
|
||||
def is_connected(self):
|
||||
return self.socket != None
|
||||
|
||||
def disconnect(self, code: int = 1000):
|
||||
self.socket = None
|
||||
self.game.leave(self)
|
||||
|
||||
def to_dict(self):
|
||||
|
||||
data = {
|
||||
@ -112,6 +119,8 @@ class Player(Spectator):
|
||||
"rail_start_y": self.rail_start_y,
|
||||
"rail_stop_x": self.rail_stop_x,
|
||||
"rail_stop_y": self.rail_stop_y,
|
||||
|
||||
"is_connected": self.is_connected(),
|
||||
}
|
||||
|
||||
return data
|
Reference in New Issue
Block a user