Beispiel #1
0
    def render(self):
        surface = pygame.Surface((self.width, self.height))
        if len(self.teams) == 0:
            counter = text_renderer.render_menu_item("0/0",
                                                     colours.COLOUR_WHITE)
            surface.blit(counter,
                         (self.width - counter.get_width() - 30,
                          (self.header_bottom - counter.get_height()) // 2))
            return surface

        counter = text_renderer.render_menu_item(
            "{}/{}".format(self.selected + 1, len(self.teams)),
            colours.COLOUR_WHITE)
        surface.blit(
            counter,
            ((self.width + self.team_member_width) // 2 - counter.get_width(),
             (self.header_bottom - counter.get_height()) // 2))

        banner = self.banners[self.selected]
        surface.blit(banner,
                     ((self.width - banner.get_width()) // 2,
                      (self.header_bottom - counter.get_height()) // 2))

        x1 = (self.width - self.banner_width) // 2 - 15
        y1 = self.header_bottom // 2

        x2 = x1 + 5
        y2 = y1 + 5

        x3 = x2
        y3 = y1 - 5

        pygame.draw.polygon(surface, colours.COLOUR_WHITE, [(x1, y1), (x2, y2),
                                                            (x3, y3)])

        x1 = (self.width + self.banner_width) // 2 + 15
        x2 = x1 - 5
        x3 = x2

        pygame.draw.polygon(surface, colours.COLOUR_WHITE, [(x1, y1), (x2, y2),
                                                            (x3, y3)])

        for i in range(len(self.teams[self.selected])):
            self.render_team_member(
                surface, self.teams[self.selected][i],
                i * (self.team_member_height + self.team_member_spacing) +
                self.header_bottom)

        return surface
Beispiel #2
0
 def __init__(self, label, height=-1, width=-1):
     self.label = label
     self.surface_label = text_renderer.render_menu_item(
         label, colours.COLOUR_WHITE)
     self.focused = False
     self.height = height
     self.width = width
Beispiel #3
0
    def __init__(self, label, value=False, height=-1, width=-1):
        super(BooleanMenuItem, self).__init__(label, height, width)
        self.value = value
        self.label = label
        self.padding = 30
        self.bottom_margin = 0
        self.surface_values = [
            text_renderer.render_menu_item("Disabled", colours.COLOUR_WHITE),
            text_renderer.render_menu_item("Enabled", colours.COLOUR_WHITE),
        ]

        if self.width < 0:
            self.width = max(self.surface_values[0].get_width(),
                             self.surface_label.get_width()) * 2 + self.padding

        if self.height < 0:
            self.height = max(
                max(self.surface_label.get_height(),
                    self.surface_values[0].get_height()),
                self.surface_values[1].get_height())
Beispiel #4
0
    def __init__(self, label1, label2, callback, height=-1, width=-1):
        super(ChoiceMenuItem, self).__init__(label1, height, width)
        self.label2 = label2
        self.surface_label2 = text_renderer.render_menu_item(
            label2, colours.COLOUR_WHITE)
        self.padding = 80
        self.selected = 0
        self.bottom_margin = 0
        self.callback = callback

        if self.width < 0:
            self.width = max(self.surface_label2.get_width(),
                             self.surface_label.get_width()) * 2 + self.padding

        if self.height < 0:
            self.width = max(self.surface_label2.get_height(),
                             self.surface_label.get_height())
Beispiel #5
0
    def __init__(self, region, teams=[]):
        self.width = region[0]
        self.height = region[1]
        self.callback = None
        self.teams = teams
        self.selected = 0

        self.header_top = 0
        self.header_bottom = 45

        self.banners = []
        self.banner_width = 0
        self.banner_height = 0
        self.team_member_height = 100
        self.team_member_width = 760
        self.team_member_spacing = 10

        self.move_list_offset = (self.width -
                                 self.team_member_width) // 2 + 450
        self.hth_surface = text_renderer.render_text("HTH:",
                                                     colours.COLOUR_WHITE)
        self.atk_surface = text_renderer.render_text("ATK:",
                                                     colours.COLOUR_WHITE)
        self.def_surface = text_renderer.render_text("DEF:",
                                                     colours.COLOUR_WHITE)
        self.spd_surface = text_renderer.render_text("SPD:",
                                                     colours.COLOUR_WHITE)

        for team in teams:
            self.banners.append(
                text_renderer.render_menu_item(team.get_short_name(),
                                               colours.COLOUR_WHITE))
            if self.banners[-1].get_width() > self.banner_width:
                self.banner_width = self.banners[-1].get_width()
            if self.banners[-1].get_height() > self.banner_height:
                self.banner_height = self.banners[-1].get_height()
Beispiel #6
0
    def __init__(self, label, options, selected=0, height=-1, width=-1):
        super(MultiOptionMenuItem, self).__init__(label, height, width)
        self.options = options
        self.selected = selected
        self.padding = 30
        self.bottom_margin = 0
        self.label = label

        max_item_width = 0
        max_item_height = 0
        self.surface_values = []
        for item in options:
            rendered = text_renderer.render_menu_item(item,
                                                      colours.COLOUR_WHITE)
            self.surface_values.append(rendered)

            if rendered.get_width() > max_item_width:
                max_item_width = rendered.get_width()
            if rendered.get_height() > max_item_height:
                max_item_height = rendered.get_height()

        self.width = max(max_item_width,
                         self.surface_label.get_width()) * 2 + self.padding
        self.height = max(max_item_height, self.surface_label.get_height())
Beispiel #7
0
 def __init__(self, text, callback, height=-1, width=-1):
     self.text = text
     self.callback = callback
     self.bottom_margin = 0
     self.surface = text_renderer.render_menu_item(text,
                                                   colours.COLOUR_WHITE)