Beispiel #1
0
 def generate_bonus(self):
     if len(self.available_bonuses) > 0:
         if random.randint(1, BONUS_CHANCE) == 1 and len(
                 self.bonuses) < BONUSES_MAX_COUNT:
             coors = Bonus.generate_coordinates(self.players,
                                                self.get_busy_points())
             bonus = random.choice(self.available_bonuses)(coors)
             self.bonuses.append(bonus)
Beispiel #2
0
if args.replay:
    visio = json.load(gzip.open(args.replay))
    assert (visio.get('visio_version', 0) >= 2)
    start_game = visio['visio_info'][0]
    assert (start_game['type'] == 'start_game')

    CONSTS.SPEED = start_game['speed']
    CONSTS.WIDTH = start_game['width']
    CONSTS.X_CELLS_COUNT = start_game['x_cells_count']
    CONSTS.Y_CELLS_COUNT = start_game['y_cells_count']
    CONSTS.WINDOW_HEIGHT = CONSTS.Y_CELLS_COUNT * CONSTS.WIDTH
    CONSTS.WINDOW_WIDTH = CONSTS.X_CELLS_COUNT * CONSTS.WIDTH

    last_tick = 0
    BONUS_CLASSES = {bc.visio_name: bc for bc in Bonus.__subclasses__()}
    org_send_game_tick = Game.send_game_tick

    def send_game_tick(self: Game):
        global last_tick
        last_tick = self.tick
        try:
            self.bonuses = []
            for b in visio['visio_info'][self.tick]['bonuses']:
                bb = BONUS_CLASSES[b['type']](b['position'])
                bb.active_ticks = b['active_ticks']
                self.bonuses.append(bb)
        except:
            pass
        org_send_game_tick(self)