示例#1
0
文件: game.py 项目: wqsemc/ForcAD
def construct_latest_game_state(round: int) -> Optional[models.GameState]:
    """Get game state from latest teamtasks from redis stream"""
    teamtasks = storage.tasks.get_last_teamtasks()
    teamtasks = storage.tasks.filter_teamtasks_for_participants(teamtasks)

    round_start = get_round_start(round)
    state = models.GameState(round_start=round_start, round=round, team_tasks=teamtasks)
    return state
示例#2
0
文件: game.py 项目: wqsemc/ForcAD
def construct_game_state_from_db(round: int) -> Optional[models.GameState]:
    """Get game state for specified round with teamtasks from db"""
    teamtasks = storage.tasks.get_teamtasks_from_db()
    teamtasks = storage.tasks.filter_teamtasks_for_participants(teamtasks)

    round_start = get_round_start(round)
    state = models.GameState(round_start=round_start, round=round, team_tasks=teamtasks)
    return state
示例#3
0
def get_game_state(round: Optional[int] = None) -> Optional[models.GameState]:
    """Get game state for current round

        :param round: specify round to query manually. Otherwise, it'll be taken from cache
    """
    if round is None:
        round = get_current_round()
        if not round:
            return None

    team_tasks = storage.tasks.get_teamtasks_for_participants(round)
    if not team_tasks:
        return None

    state = models.GameState(round=round, team_tasks=team_tasks)
    return state