Example #1
0
class ClientCommander(Character):
    def __init__(self, screen, server_commander):
        super(Character, self).__init__()
        self.screen = screen
        self.t = Transform(screen, (0, 100, 0, 100))
        self.server_commander = server_commander

    def key_control(self, key, event):
        Character.key_control(self, key, event)
        # Custom comamnder control

    def mouse_control(self, mouse_pos):
        pass

    def click_control(self, mouse_pos, button):
        removed = False
        wp = self.t.inv_transform_coord(mouse_pos)
        for waypoint in self.server_commander.waypoints:
            if dist(waypoint[0], waypoint[1], wp[0], wp[1]) < 0.25:
                self.server_commander.rmwp(waypoint[0], waypoint[1])
                removed = True
                break
        if not removed:
            self.server_commander.addwp(wp[0], wp[1])

    def update(self, game_map):
        pass

    def draw(self, game_map):
        self.t.update_viewport((0, game_map.rows, 0, game_map.cols))
        draw_bg(self.screen, self.t)
        draw_walls(self.screen, self.t, game_map)
        draw_hero(self.screen, self.t, game_map)
        draw_units(self.screen, self.t, game_map)
        draw_bullets(self.screen, self.t, game_map)
        draw_waypoints(self.screen, self.t, game_map)
        draw_letterbox(self.screen, self.t)