def __init__(self, radius): super().__init__() self.radius = radius self.board = {} for tile in GameTile.all_tiles(radius): self.board[tile] = SimpleSprite('tiles/GreyTile.png') self.board[tile].rect.move_ip(*tile.display_location()) self.subsprites = list(self.board.values())
def spawn_creatures(self, pcs, mobs): i = 0 for pc, gt in pcs: if pc.health > 0: pc.set_in_combat(self, GameTile(*gt), i) i += 2 i = 1 mob_zone = [ gt for gt in GameTile.all_tiles(self.MAP_RADIUS) if gt.y < -3.25 ] for mobdef in mobs: gt = random.choice(mob_zone) mob_zone.remove(gt) c = Creature(mobdef) c.set_in_combat(self, gt, i) i += 2
def get_splash_hint(self, creature, ability, selected): valid_range = [ tile for tile in GameTile.all_tiles(self.MAP_RADIUS) if ability.splash_hint(creature, selected, tile) ] return valid_range
def get_range_hint(self, creature, ability): valid_range = [ tile for tile in GameTile.all_tiles(self.MAP_RADIUS) if ability.range_hint(creature, tile) ] return valid_range
def get_valid_targets(self, creature, ability): valid_targets = [ tile for tile in GameTile.all_tiles(self.MAP_RADIUS) if ability.is_valid_target(creature, tile) ] return valid_targets