Example #1
0
 def drawPaths(self):
     if len(self.path_list) == 0:
         return
         
     path_start = self.path_list[0]
     
     for path_end in self.path_list[1:]:
         start_pix_pos = mapLocToPixelPos(path_start)
         start_pix_pos[0] -= self.cam_pos[0]
         start_pix_pos[1] += self.cam_pos[1]
         
         end_pix_pos = mapLocToPixelPos(path_end)
         end_pix_pos[0] -= self.cam_pos[0]
         end_pix_pos[1] += self.cam_pos[1]
         
         pyglet.graphics.draw(
                 2, pyglet.gl.GL_LINES,
                 ('v2f',
                     (start_pix_pos[0] , start_pix_pos[1],
                     end_pix_pos[0], end_pix_pos[1],
                     )))
         
         path_start = path_end
     
     if self.move_labels:
         for label in self.move_labels:
             label.draw()
Example #2
0
    def centerCameraOnSprite(self, sprite):
        pos = [0,0]
        pos = mapLocToPixelPos(sprite.map_pos)

        pos[0] -= MAP_DISPLAY_WIDTH/2
        pos[1] = -pos[1]
        #adjust for odd columns
        if not isEven(sprite.map_pos[0]):
            pos[1] += 36
        pos[1] += MAP_DISPLAY_HEIGHT/2

        self.cam_pos = pos
Example #3
0
    def __init__(self, pos, terr=Terrain.WATER, feature=None, unit=None, ui=None):
        self.pos = deepcopy(pos)
        self.abs_pixel_pos = mapLocToPixelPos(self.pos)
        
        self.move_cost = 0
        
        
        self.setTerrain(terr)
        self.feature = None
        self.setFeature(feature)
        self.unit_list = list()
        self.ui_element = ui

        self.terrain_sprite = None
        self.feature_sprite = None
        self.unit_sprite = None
        
        self.neighbors = [None] * HexDir.LENGTH
        #for graph operations
        self.visited = False
        self.distance = MAX_DISTANCE
        self.prev_tile = None
Example #4
0
 def __init__(self, sprite_type, map_pos, *args, **kwargs):
     super(TileSprite, self).__init__(*args, **kwargs)
     self.map_pos = map_pos
     self.pix_pos = mapLocToPixelPos(self.map_pos)
     self.sprite_type = sprite_type
Example #5
0
 def moveToMapIdx(self, idx):
     self.map_pos = idx
     self.pix_pos = mapLocToPixelPos(self.map_pos)
Example #6
0
 def createMoveLabels(self):
     units = self.selected_unit_tile.unit_list
     if len(units) == 0:
         return
     
     group_moves_left = units[0].moves_left
     group_move_speed = units[0].move_speed
     
     for unit in units[1:]:
         if unit.moves_left < group_moves_left:
             group_moves_left = unit.moves_left
         if unit.move_speed < group_move_speed:
             group_move_speed = unit.move_speed
     
     start_pos = units[0].map_idx
     group_path = units[0].move_list
     
     if group_moves_left > 0:
         turn_count = 0
     else:
         turn_count = 1
     
     label_list = list()
     
     group_moves = group_move_speed
     for tile_pos in group_path[1:]:
         
         
         next_tile = self.map.tileAt(tile_pos)
         tile_cost = next_tile.move_cost
         group_moves -= tile_cost
         
         if group_moves <= 0:
             group_moves = group_move_speed
             #draw a turn label here
             label_pix_pos = mapLocToPixelPos(tile_pos)
             label_x = label_pix_pos[0] - self.cam_pos[0]
             label_y = label_pix_pos[1] + self.cam_pos[1]
             label = pyglet.text.Label(
                 str(turn_count), font_name='Arial',
                 font_size=16, x=label_x,
                 y=label_y,
                 anchor_x='center', anchor_y='center',
                 color = (255,255,0,255)
             )
             label_list.append(label)
             turn_count += 1
         elif tile_pos == group_path[-1]:
             label_pix_pos = mapLocToPixelPos(tile_pos)
             label_x = label_pix_pos[0] - self.cam_pos[0]
             label_y = label_pix_pos[1] + self.cam_pos[1]
             label = pyglet.text.Label(
                 str(turn_count), font_name='Arial',
                 font_size=16, x=label_x,
                 y=label_y,
                 anchor_x='center', anchor_y='center',
                 color = (255,255,0,255)
             )
             label_list.append(label)
             break
                 
     return label_list