def change_of_plans(self):
     self.pick_battery()
     self.pick_target()
     if self.game.proponent.vitalities[self.battery_slot] < 60000:
         self.pick_battery()
         self.sequence = BoostBattery(self.battery_slot)
     elif self.game.opponent.vitalities[self.target_slot] > 0:
         self.pick_target()
         self.sequence = AttackSlot(self.battery_slot, self.target_slot)
     else:
         #print>>sys.stderr, 'blargh', self.battery_slot, self.target_slot
         self.sequence = SequenceBot([], 0)
     self.sequence.set_game(self.game)
class SlotKiller(Bot):
    def __init__(self):
        self.sequence = None

    def set_game(self, game):
        super(SlotKiller, self).set_game(game)
        self.pick_battery()
        self.pick_target()
        self.change_of_plans()

    def choose_move(self):
        move = self.get_next_move()
        if move == None:
            self.change_of_plans()
            move = self.get_next_move()
        if move == None:
            move = (LEFT_APP, 0, cards.I)
        return move

    def get_next_move(self):
        return self.sequence.choose_move()

    def pick_battery(self):
        self.battery_slot = reduce(lambda x, y: x if x[1] >= y[1] else y, zip(range(SLOTS), self.game.proponent.vitalities), (0, 0))[0]

    def pick_target(self):
        self.target_slot = reduce(lambda x, y: y if y[1] <= x[1] and y[1] != 0 else x, zip(range(SLOTS), self.game.opponent.vitalities), (0, 100500))[0]

    def change_of_plans(self):
        self.pick_battery()
        self.pick_target()
        if self.game.proponent.vitalities[self.battery_slot] < 60000:
            self.pick_battery()
            self.sequence = BoostBattery(self.battery_slot)
        elif self.game.opponent.vitalities[self.target_slot] > 0:
            self.pick_target()
            self.sequence = AttackSlot(self.battery_slot, self.target_slot)
        else:
            #print>>sys.stderr, 'blargh', self.battery_slot, self.target_slot
            self.sequence = SequenceBot([], 0)
        self.sequence.set_game(self.game)