Пример #1
0
 def ask_company_name(self, label, function_parameter, give_warning=False):
     pygame.draw.rect(self.window, (212, 212, 212), self.gui_rect)
     title = global_variables.standard_font.render("Name of company:", True,
                                                   (0, 0, 0))
     self.window.blit(title, (self.gui_rect[0] + 10, self.gui_rect[1] + 10))
     self.text_receiver = gui_components.entry(
         self.window, (self.gui_rect[0] + 10, self.gui_rect[1] + 45),
         self.gui_rect[2] - 20,
         global_variables.max_letters_in_company_names)
     self.buttons = {}
     self.buttons["ok"] = gui_components.button(
         "ok",
         self.window,
         self.ask_company_capital,
         function_parameter=None,
         topleft=(self.gui_rect[0] + self.gui_rect[2] - 100,
                  self.gui_rect[1] + self.gui_rect[3] - 40),
         fixed_size=None)
     self.buttons["cancel"] = gui_components.button(
         "cancel",
         self.window,
         self.create_intro_gui,
         function_parameter=None,
         topleft=(self.gui_rect[0] + self.gui_rect[2] - 65,
                  self.gui_rect[1] + self.gui_rect[3] - 40),
         fixed_size=None)
     if give_warning:
         warning_label = global_variables.standard_font_small.render(
             "No double space, no blanks", True, (0, 0, 0))
         self.window.blit(warning_label,
                          (self.gui_rect[0] + 10, self.gui_rect[1] + 90))
         pygame.display.flip()
Пример #2
0
    def ask_country_name(self, label, function_parameter):
        self.gui_rect = pygame.Rect(global_variables.window_size[0] / 2 - 150,
                                    global_variables.window_size[1] / 3 - 50,
                                    300, 300)
        pygame.draw.rect(self.window, (212, 212, 212), self.gui_rect)

        country_window = gui_components.fast_list(
            self.window,
            self.countries,
            rect=pygame.Rect(self.gui_rect[0], self.gui_rect[1],
                             self.gui_rect[2], self.gui_rect[3] - 50))
        self.buttons = {}
        self.buttons["country_window"] = country_window
        self.buttons["ok"] = gui_components.button(
            "ok",
            self.window,
            self.ask_company_capital,
            function_parameter=None,
            topleft=(self.gui_rect[0] + self.gui_rect[2] - 100,
                     self.gui_rect[1] + self.gui_rect[3] - 40),
            fixed_size=None)
        self.buttons["cancel"] = gui_components.button(
            "cancel",
            self.window,
            self.create_intro_gui,
            function_parameter=None,
            topleft=(self.gui_rect[0] + self.gui_rect[2] - 65,
                     self.gui_rect[1] + self.gui_rect[3] - 40),
            fixed_size=None)
Пример #3
0
    def ask_company_type(self, label, function_parameter):
        pygame.draw.rect(self.window, (212, 212, 212), self.gui_rect)
        title = global_variables.standard_font.render("Type of company:", True,
                                                      (0, 0, 0))
        self.window.blit(title, (self.gui_rect[0] + 10, self.gui_rect[1] + 10))

        def dummy_function_for_radiobuttons(label, function_parameter):
            pass

        self.buttons = {}
        self.buttons["type_selector"] = gui_components.radiobuttons(
            ["Private company", "Country"],
            surface=self.window,
            function=dummy_function_for_radiobuttons,
            function_parameter=None,
            topleft=(self.gui_rect[0] + 10, self.gui_rect[1] + 40),
            selected=None)
        self.buttons["ok"] = gui_components.button(
            "ok",
            self.window,
            self.decide_company_type,
            function_parameter=None,
            topleft=(self.gui_rect[0] + self.gui_rect[2] - 100,
                     self.gui_rect[1] + self.gui_rect[3] - 40),
            fixed_size=None)
        self.buttons["cancel"] = gui_components.button(
            "cancel",
            self.window,
            self.create_intro_gui,
            function_parameter=None,
            topleft=(self.gui_rect[0] + self.gui_rect[2] - 65,
                     self.gui_rect[1] + self.gui_rect[3] - 40),
            fixed_size=None)
Пример #4
0
 def load_callback(self, label, function_parameter):
     self.gui_rect = pygame.Rect(global_variables.window_size[0] / 2 - 150,
                                 global_variables.window_size[1] / 3 - 50,
                                 300, 300)
     pygame.draw.rect(self.window, (212, 212, 212), self.gui_rect)
     load_window = gui_components.fast_list(
         self.window,
         os.listdir("savegames"),
         rect=pygame.Rect(self.gui_rect[0], self.gui_rect[1],
                          self.gui_rect[2], self.gui_rect[3] - 50))
     self.buttons = {}
     self.buttons["load_window"] = load_window
     self.buttons["ok"] = gui_components.button(
         "ok",
         self.window,
         self.load_game,
         function_parameter=load_window,
         topleft=(self.gui_rect[0] + self.gui_rect[2] - 100,
                  self.gui_rect[1] + self.gui_rect[3] - 40),
         fixed_size=None)
     self.buttons["cancel"] = gui_components.button(
         "cancel",
         self.window,
         self.create_intro_gui,
         function_parameter=None,
         topleft=(self.gui_rect[0] + self.gui_rect[2] - 65,
                  self.gui_rect[1] + self.gui_rect[3] - 40),
         fixed_size=None)
Пример #5
0
    def create_intro_gui(self, label=None, function_parameter=None):
        self.gui_rect = pygame.Rect(global_variables.window_size[0] / 2 - 90,
                                    global_variables.window_size[1] / 3, 180,
                                    180)
        self.text_receiver = None
        pygame.draw.rect(self.window, (212, 212, 212), self.gui_rect)

        pygame.draw.line(
            self.window, (255, 255, 255), (self.gui_rect[0], self.gui_rect[1]),
            (self.gui_rect[0] + self.gui_rect[2], self.gui_rect[1]), 2)
        pygame.draw.line(
            self.window, (255, 255, 255), (self.gui_rect[0], self.gui_rect[1]),
            (self.gui_rect[0], self.gui_rect[1] + self.gui_rect[3]), 2)
        button_names = ["New game", "Load game", "Game settings", "Quit game"]
        button_functions = [
            self.ask_company_type, self.load_callback,
            self.game_settings_callback, self.quit_callback
        ]
        self.buttons = {}
        for i, button_name in enumerate(button_names):
            self.buttons[button_name] = gui_components.button(
                button_name,
                self.window,
                button_functions[i],
                function_parameter=None,
                topleft=(self.gui_rect[0] + 25,
                         self.gui_rect[1] + i * 35 + 25),
                fixed_size=(130, 30))
Пример #6
0
 def ask_company_capital(self,
                         label,
                         function_parameter,
                         give_warning=False):
     if "country_window" in self.buttons and self.is_country:
         company_name = self.buttons["country_window"].selected
     elif self.text_receiver is not None and not self.is_country:
         company_name = self.text_receiver.text
     else:
         raise Exception(
             "Could not figure out whether country or private company was selected"
         )
     all_ok = True
     if not (0 < len(company_name) <=
             global_variables.max_letters_in_company_names):
         all_ok = False
     if company_name.find(
             "  "
     ) != -1:  #somewhere it is used that there are two double spaces, so we can't allow that in a companyname
         all_ok = False
     if company_name in self.countries and not self.is_country:
         all_ok = False
     if all_ok:
         pygame.draw.rect(self.window, (212, 212, 212), self.gui_rect)
         title = global_variables.standard_font.render(
             "Starting capital:", True, (0, 0, 0))
         self.window.blit(title,
                          (self.gui_rect[0] + 10, self.gui_rect[1] + 10))
         self.text_receiver = gui_components.entry(
             self.window, (self.gui_rect[0] + 10, self.gui_rect[1] + 45),
             self.gui_rect[2] - 20,
             global_variables.max_letters_in_company_names,
             starting_text="10000000")
         self.buttons = {}
         self.buttons["ok"] = gui_components.button(
             "ok",
             self.window,
             self.start_new_game,
             function_parameter=None,
             topleft=(self.gui_rect[0] + self.gui_rect[2] - 100,
                      self.gui_rect[1] + self.gui_rect[3] - 40),
             fixed_size=None)
         self.buttons["cancel"] = gui_components.button(
             "cancel",
             self.window,
             self.create_intro_gui,
             function_parameter=None,
             topleft=(self.gui_rect[0] + self.gui_rect[2] - 65,
                      self.gui_rect[1] + self.gui_rect[3] - 40),
             fixed_size=None)
         self.company_name = company_name
         if give_warning:
             warning_label = global_variables.standard_font_small.render(
                 "Starting capital must be an", True, (0, 0, 0))
             self.window.blit(
                 warning_label,
                 (self.gui_rect[0] + 10, self.gui_rect[1] + 90))
             warning_label2 = global_variables.standard_font_small.render(
                 "integer above zero", True, (0, 0, 0))
             self.window.blit(
                 warning_label2,
                 (self.gui_rect[0] + 10, self.gui_rect[1] + 100))
             pygame.display.flip()
     else:
         self.ask_company_name(None, None, give_warning=True)