Exemplo n.º 1
0
    def game_reload(self, replay_file):
        #self.game_status.log("Reloading game")
        self.msg_controller.prompt("Reloading game")

        self.dump_to_replay = replaydump.ReplayDump(filename=replay_file, save=False)
        isserver = self.dump_to_replay.read()
        seed = self.dump_to_replay.read()
        player1_name = self.dump_to_replay.read()
        my_deck = self.dump_to_replay.read()
        my_avatar = self.dump_to_replay.read_raw()
        player2_name = self.dump_to_replay.read()
        other_deck = self.dump_to_replay.read()
        other_avatar = self.dump_to_replay.read_raw()
        player_data = [(player1_name,my_deck,my_avatar), (player2_name,other_deck,other_avatar)]

        random.seed(seed)
        players = []
        for name, deck, avatar in player_data: players.append(GamePlayer(name, deck))

        player1, player2 = players[:2]

        for player in players:
            player.dirty_input = self.replay_input
        self.player_hand.set_hidden(False)
        self.otherplayer_hand.set_hidden(False)

        Keeper.init(players)
        self.make_connections((player1, None, my_avatar), (player2, None, other_avatar))

        # XXX This is hacky - need to change it
        replaydump.players = dict([(player.name,player) for player in players])
        replaydump.stack = Keeper.stack

        self.client = None
        self.start_rules_engine()
Exemplo n.º 2
0
    def game_start(self, player_name, seed, player_data, client=None):
        #self.game_status.log("Starting game")
        self.msg_controller.prompt("Starting game")

        self.dump_to_replay = replaydump.ReplayDump(save=True)
        self.dump_to_replay.write(True)
        self.dump_to_replay.write(seed)
        for name, deck, avatar in player_data:
            self.dump_to_replay.write(name)
            self.dump_to_replay.write(deck)
            self.dump_to_replay.write_raw(avatar)

        random.seed(seed)
        players = []
        for name, deck, avatar in player_data: players.append(GamePlayer(name, deck))

        player1, player2 = players[:2]
        if player1.name != player_name: 
            player1, player2 = player2, player1
            player_data.reverse()

        for player in players:
            if not client or player.name == player_name:
                player.dirty_input = self.greenlet_input
                self.player_hand.set_hidden(False)
                if not client: self.otherplayer_hand.set_hidden(False)
            else: player.dirty_input = self.network_input

        Keeper.init(players)
        self.make_connections((player1, None, player_data[0][2]), (player2, None, player_data[1][2]))

        # XXX This is hacky - need to change it
        replaydump.players = dict([(player.name,player) for player in players])
        replaydump.stack = Keeper.stack

        self.client = client
        if client:
            client.call_action = lambda result, self=self: self.switch_to_rules_engine(result)
            client.ready_to_play()
        self.start_rules_engine()
Exemplo n.º 3
0
    def game_start(self, player_name, seed, player_data, client=None):
        #self.game_status.log("Starting game")
        self.msg_controller.prompt("Starting game")

        self.dump_to_replay = replaydump.ReplayDump(save=True)
        self.dump_to_replay.write(True)
        self.dump_to_replay.write(seed)
        for name, deck, avatar in player_data:
            self.dump_to_replay.write(name)
            self.dump_to_replay.write(deck)
            self.dump_to_replay.write_raw(avatar)

        random.seed(seed)
        players = []
        for name, deck, avatar in player_data: players.append(GamePlayer(name, deck))

        player1, player2 = players[:2]
        if player1.name != player_name: 
            player1, player2 = player2, player1
            player_data.reverse()

        for player in players:
            if not client or player.name == player_name:
                player.dirty_input = self.greenlet_input
                self.player_hand.set_hidden(False)
                if not client: self.otherplayer_hand.set_hidden(False)
            else: player.dirty_input = self.network_input

        Keeper.init(players)
        self.make_connections((player1, None, player_data[0][2]), (player2, None, player_data[1][2]))

        # XXX This is hacky - need to change it
        replaydump.players = dict([(player.name,player) for player in players])
        replaydump.stack = Keeper.stack

        self.client = client
        if client:
            client.call_action = lambda result, self=self: self.switch_to_rules_engine(result)
            client.ready_to_play()
        self.start_rules_engine()
Exemplo n.º 4
0
 def __call__(self, card):
     from engine.GameKeeper import Keeper
     return Keeper.isSorceryTiming(card.controller)
Exemplo n.º 5
0
        if not result is False: return result
    except:
        debug.set_trace()

dump = replaydump.ReplayDump(replayfile, False)

sserver = dump.read()
seed = dump.read()
player1_name = dump.read()
my_deck = dump.read()
player2_name = dump.read()
other_deck = dump.read()

player1 = Player(player1_name, my_deck)
player2 = Player(player2_name, other_deck)
player1.dirty_input = userinput
player2.dirty_input = userinput

# Choose starting player
random.seed(seed)

dispatcher.reset()
Keeper.init([player1, player2])

# This is hacky
replaydump.players = dict([(player.name,player) for player in [player1, player2]])
replaydump.stack = Keeper.stack

msg = Keeper.start()
print msg
Exemplo n.º 6
0
        seed = dump_to_replay.read()
        player1 = dump_to_replay.read()
        my_deck = dump_to_replay.read()
        player2 = dump_to_replay.read()
        other_deck = dump_to_replay.read()
        input = replayInput
    else:
        dump_to_replay = replaydump.ReplayDump(filename=replay_file, save=True)
        seed = time.time()
        player1 = conf.get("main", "playername")
        player2 = conf.get("solitaire", "playername")
        my_deck, sideboard = read_deckfile(conf.get("main", "deckfile"))
        other_deck, other_sideboard = read_deckfile(
            conf.get("solitaire", "deckfile"))
        input = playerInput

        dump_to_replay.write(True)
        dump_to_replay.write(seed)
        for name, deck in [(player1, my_deck), (player2, other_deck)]:
            dump_to_replay.write(name)
            dump_to_replay.write(deck)

    players = [Player(player1, my_deck), Player(player2, other_deck)]
    random.seed(seed)
    for player in players:
        player.dirty_input = input
        replaydump.players[player.name] = player

    Keeper.init(players)
    Keeper.start()
Exemplo n.º 7
0
 def __call__(self, card):
     from engine.GameKeeper import Keeper
     return Keeper.isSorceryTiming(card.controller)
Exemplo n.º 8
0
        player1 = dump_to_replay.read()
        my_deck = dump_to_replay.read()
        player2 = dump_to_replay.read()
        other_deck = dump_to_replay.read()
        input = replayInput
    else:
        dump_to_replay = replaydump.ReplayDump(filename=replay_file, save=True)
        seed = time.time()
        player1 = conf.get("main", "playername")
        player2 = conf.get("solitaire", "playername")
        my_deck, sideboard = read_deckfile(conf.get("main", "deckfile"))
        other_deck, other_sideboard = read_deckfile(conf.get("solitaire", "deckfile"))
        input = playerInput

        dump_to_replay.write(True)
        dump_to_replay.write(seed)
        for name, deck in [(player1, my_deck), (player2, other_deck)]:
            dump_to_replay.write(name)
            dump_to_replay.write(deck)

    players = [Player(player1, my_deck)
             , Player(player2, other_deck)
             ]
    random.seed(seed)
    for player in players:
        player.dirty_input = input
        replaydump.players[player.name] = player

    Keeper.init(players)
    Keeper.start()