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
test_data.CardInfo("slash", 1, card.CLUB), test_data.CardInfo("slash", 1, card.CLUB), test_data.CardInfo("slash", 1, card.CLUB), test_data.CardInfo("slash", 1, card.CLUB), test_data.CardInfo("steal", 9, card.HEART), test_data.CardInfo("steal", 10, card.CLUB), test_data.CardInfo("steal", 9, card.HEART), test_data.CardInfo("steal", 10, card.CLUB), ] ) ), pc, ActionStack(), ) players = [Player(19, 3), Player(91, 4), Player(1729, 4)] map(lambda p: pc.add_player(p), players) gc.start() last_event_id = len(gc.get_events(players[0].token, 0)) # until getting cards # cards: # name | rank | id | suit # -chitu | 5 | 0 | HEART # -dawan | 13 | 1 | SPADE # +jueying | 5 | 2 | SPADE # slash | 1 | 3 | CLUB # steal | 9 | 12 | HEART <- use this # steal | 10 | 13 | CLUB # steal | 7 | 4 | CLUB
gc = GameControl(EventList(), test_data.CardPool(test_data.gen_cards([ test_data.CardInfo('duel', 1, card.SPADE), test_data.CardInfo('fire attack', 2, card.HEART), test_data.CardInfo('slash', 3, card.DIAMOND), test_data.CardInfo('duel', 4, card.SPADE), test_data.CardInfo('slash', 5, card.CLUB), test_data.CardInfo('fire attack', 6, card.HEART), test_data.CardInfo('dodge', 7, card.DIAMOND), test_data.CardInfo('slash', 8, card.DIAMOND), test_data.CardInfo('duel', 9, card.SPADE), test_data.CardInfo('slash', 10, card.SPADE), ])), pc, ActionStack()) players = [Player(91, 4), Player(1729, 4)] map(lambda p: pc.add_player(p), players) gc.start() last_event_id = len(gc.get_events(players[0].token, 0)) # until getting cards # cards: # name | rank (id = rank - 1) | suit # duel | 1 | SPADE <- use this to duel # fire attack | 2 | HEART # slash | 3 | DIAMOND # duel | 4 | SPADE # duel | 9 | SPADE # slash | 10 | SPADE # slash | 5 | CLUB
from ext.src.players_control import PlayersControl from ext.test.fake_player import Player from test_common import * pc = PlayersControl() players = [Player(i, 1) for i in range(10000, 10008)] for p in players: pc.add_player(p) assert_eq(players[0], pc.current_player()) assert_eq([players[i] for i in range(1, 8)], pc.succeeding_players()) pc.next_player() assert_eq(players[1], pc.current_player()) assert_eq([players[i] for i in range(2, 8)] + [players[0]], pc.succeeding_players()) players[3].alive = False assert_eq(players[1], pc.current_player()) assert_eq([players[2]] + [players[i] for i in range(4, 8)] + [players[0]], pc.succeeding_players()) pc.next_player() assert_eq(players[2], pc.current_player()) assert_eq([players[i] for i in range(4, 8)] + [players[0], players[1]], pc.succeeding_players()) pc.next_player() assert_eq(players[4], pc.current_player()) assert_eq([players[i] for i in range(5, 8)] + [players[i] for i in range(0, 3)], pc.succeeding_players()) players[4].alive = False assert_eq([players[i] for i in range(5, 8)] + [players[i] for i in range(0, 3)], pc.succeeding_players())
from ext.src.players_control import PlayersControl from ext.src.player import Player from test_common import * pc = PlayersControl() players = [Player(i, 1) for i in range(10000, 10008)] for p in players: pc.add_player(p) assert_eq(players[0], pc.current_player()) assert_eq([players[i] for i in range(1, 8)], pc.succeeding_players()) pc.next_player() assert_eq(players[1], pc.current_player()) assert_eq([players[i] for i in range(2, 8)] + [players[0]], pc.succeeding_players()) players[3].alive = False assert_eq(players[1], pc.current_player()) assert_eq([players[2]] + [players[i] for i in range(4, 8)] + [players[0]], pc.succeeding_players()) pc.next_player() assert_eq(players[2], pc.current_player()) assert_eq([players[i] for i in range(4, 8)] + [players[0], players[1]], pc.succeeding_players()) pc.next_player() assert_eq(players[4], pc.current_player()) assert_eq([players[i] for i in range(5, 8)] + [players[i] for i in range(0, 3)], pc.succeeding_players())
from ext.src.players_control import PlayersControl from ext.src.player import Player from test_common import * pc = PlayersControl() players = [Player(i, 1) for i in range(10000, 10008)] for p in players: pc.add_player(p) assert_eq(players[0], pc.current_player()) assert_eq([players[i] for i in range(1, 8)], pc.succeeding_players()) pc.next_player() assert_eq(players[1], pc.current_player()) assert_eq([players[i] for i in range(2, 8)] + [players[0]], pc.succeeding_players()) players[3].alive = False assert_eq(players[1], pc.current_player()) assert_eq([players[2]] + [players[i] for i in range(4, 8)] + [players[0]], pc.succeeding_players()) pc.next_player() assert_eq(players[2], pc.current_player()) assert_eq([players[i] for i in range(4, 8)] + [players[0], players[1]], pc.succeeding_players()) pc.next_player() assert_eq(players[4], pc.current_player()) assert_eq([players[i]