Пример #1
0
def get_players_locations(playroom) -> Dict[str, str]:
    all_players = Player.objects.filter(
        playroom=playroom).prefetch_related('location')
    return {
        get_player_id(player): get_location_id(player.location)
        for player in all_players
    }
Пример #2
0
    def start_game(self):
        self.players = controller.players.get_players(self.playroom)
        self.player_roles = controller.players.get_player_roles(self.playroom)
        self.player_locations = controller.players.get_players_locations(self.playroom)
        self.player_hands = controller.cards.get_players_hands(self.playroom)
        self.locations_disease_count = controller.maplocations.get_disease_count(self.playroom)
        self.locations_research_center = controller.maplocations.get_research_center(self.playroom)
        self.disease_status = controller.maplocations.get_disease_status(self.playroom)
        self.location_deck = controller.cards.get_location_deck(self.playroom)
        self.infection_deck = controller.cards.get_infection_deck(self.playroom)
        self.location_dump = controller.cards.get_location_dump(self.playroom)
        self.infection_dump = controller.cards.get_infection_dump(self.playroom)
        self.epidemics = self.playroom.epidemics
        self.outbreaks = self.playroom.outbreaks
        self.phase = PlayPhases.player_action.value

        self.epidemics_to_solve = self.playroom.epidemics_to_solve
        self.player_actions = self.playroom.player_actions
        self.location_network = get_location_graph(self.playroom)
        self.locations_types = get_location_types(self.playroom)

        self.current_player = get_player_id(self.playroom.current_player)

        self.nuit_tranquille = self.playroom.nuit_tranquille
        return self.serialize()
Пример #3
0
def get_players_hands(playroom) -> Dict[str, List[str]]:
    hands = defaultdict(list)
    all_player = playroom.players.all()
    cards = CardLocation.objects.filter(position=CardPosition.hand.value, player__in=all_player) \
        .prefetch_related('player', 'card')
    for card in cards:
        hands[get_player_id(card.player)].append(get_card_id(card.card))
    return hands
Пример #4
0
def get_players(playroom) -> List:
    all_players = Player.objects.filter(playroom=playroom).order_by('order')
    return [get_player_id(player) for player in all_players]
Пример #5
0
def get_player_roles(playroom) -> Dict[str, int]:
    all_players = Player.objects.filter(playroom=playroom)
    return {get_player_id(player): player.role for player in all_players}
Пример #6
0
 def apply_action(self, player, game_action):
     dict_game_state_changes = game_action.apply_to_game_state(get_player_id(player), self.game_state)
     dict_game_state_changes['cancellable'] = game_action.cancellable
     return dict_game_state_changes
Пример #7
0
 def get_next_infections(self, player, n, need_card):
     next_infections = self.game_state.get_next_infections(get_player_id(player), n, need_card)
     self.actions = []
     return next_infections