def statuses_mode(players_tokens): if len(players_tokens) < 2: raise ValueError('too few players, need at least 2') if 8 < len(players_tokens): raise ValueError('too much players, need at most 8') random.shuffle(players_tokens) players = [Player(t) for t in players_tokens] pc = PlayersControl() for p in players: pc.add_player(p) gc = GameControl(EventList(), CardPool.create(), pc, ActionStack()) gc.game_init(players) host = players[0] others = players[1:] def after_host_selected(): gc.push_frame(_SelectCharacter( gc, others, { p.token: characters_select_dict(random_pick_characters(3)) for p in others }, gc.start)) gc.push_frame(_SelectCharacter( gc, [host], { host.token: characters_select_dict(random_pick_characters(3)) }, after_host_selected)) return gc