core: fix: matchmaking and game
This commit is contained in:
@ -6,6 +6,8 @@ from .ASpectator import ASpectator
|
||||
|
||||
from ..models import GameModel
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
class AGame(AbstractRoom):
|
||||
|
||||
def __init__(self, game_type: str, game_id: int, game_manager):
|
||||
@ -16,23 +18,23 @@ class AGame(AbstractRoom):
|
||||
|
||||
self.model: GameModel = GameModel.objects.get(pk = game_id, game_type = game_type)
|
||||
|
||||
players_id: list[int] = self.model.get_players_id()
|
||||
players: list[User] = self.model.get_players()
|
||||
|
||||
self.players: list[APlayer] = [APlayer(player_id, None, self) for player_id in players_id]
|
||||
self.players: list[APlayer] = [APlayer(player.pk, None, self) for player in players]
|
||||
|
||||
self.spectators: list[ASpectator] = []
|
||||
|
||||
self.game_id: int = game_id
|
||||
|
||||
def get_players_id(self) -> list[int]:
|
||||
return [player.user_id for player in self.players]
|
||||
return [player.pk for player in self.players]
|
||||
|
||||
def get_players_connected(self) -> list[APlayer]:
|
||||
return [player for player in self.players if player.is_connected()]
|
||||
|
||||
def get_player_by_user_id(self, user_id: int) -> APlayer:
|
||||
for player in self.players:
|
||||
if (player.user_id == user_id):
|
||||
if (player.user.pk == user_id):
|
||||
return player
|
||||
return None
|
||||
|
||||
|
Reference in New Issue
Block a user