Esempio n. 1
0
    def test_set_sprite_to_monitor(self, _init_pygame, default_ui_manager):
        healthy_sprite = HealthySprite()
        health_bar = UIScreenSpaceHealthBar(relative_rect=pygame.Rect(100, 100, 150, 30),
                                            sprite_to_monitor=None,
                                            manager=default_ui_manager)

        health_bar.set_sprite_to_monitor(healthy_sprite)
Esempio n. 2
0
 def test_set_sprite_to_monitor_no_current_health(self, _init_pygame, default_ui_manager):
     healthy_sprite = HealthySpriteNoCurrentHealth()
     health_bar = UIScreenSpaceHealthBar(relative_rect=pygame.Rect(100, 100, 150, 30),
                                         sprite_to_monitor=None,
                                         manager=default_ui_manager)
     with pytest.raises(AttributeError, match="Sprite does not have current_health attribute"):
         health_bar.set_sprite_to_monitor(healthy_sprite)
Esempio n. 3
0
 def test_update(self, _init_pygame, default_ui_manager):
     healthy_sprite = HealthySprite()
     health_bar = UIScreenSpaceHealthBar(relative_rect=pygame.Rect(100, 100, 150, 30),
                                         sprite_to_monitor=healthy_sprite,
                                         manager=default_ui_manager)
     healthy_sprite.current_health = 10
     health_bar.update(0.01)
     assert health_bar.image is not None
Esempio n. 4
0
    def test_hide(self, _init_pygame, default_ui_manager, _display_surface_return_none):
        healthy_sprite = HealthySprite()
        health_bar = UIScreenSpaceHealthBar(relative_rect=pygame.Rect(100, 100, 150, 30),
                                            sprite_to_monitor=healthy_sprite,
                                            manager=default_ui_manager)

        assert health_bar.visible == 1
        health_bar.hide()
        assert health_bar.visible == 0
Esempio n. 5
0
    def test_set_relative_position(self, _init_pygame, default_ui_manager):
        healthy_sprite = HealthySprite()
        test_container = UIContainer(relative_rect=pygame.Rect(50, 50, 300, 250), manager=default_ui_manager)
        screen_space_health_bar = UIScreenSpaceHealthBar(relative_rect=pygame.Rect(100, 100, 150, 30),
                                                         sprite_to_monitor=healthy_sprite,
                                                         container=test_container,
                                                         manager=default_ui_manager)

        screen_space_health_bar.set_relative_position((50.0, 30.0))

        assert screen_space_health_bar.rect.topleft == (100, 80)
Esempio n. 6
0
    def test_set_dimensions(self, _init_pygame, default_ui_manager):
        healthy_sprite = HealthySprite()
        test_container = UIContainer(relative_rect=pygame.Rect(50, 50, 300, 250), manager=default_ui_manager)
        health_bar = UIScreenSpaceHealthBar(relative_rect=pygame.Rect(100, 100, 150, 30),
                                            sprite_to_monitor=healthy_sprite,
                                            container=test_container,
                                            manager=default_ui_manager)

        health_bar.set_dimensions((250.0, 60.0))

        assert health_bar.drawable_shape.containing_rect.size == (250, 60)
        assert health_bar.rect.size == (250, 60)
        assert health_bar.relative_rect.size == (250, 60)
Esempio n. 7
0
 def test_rebuild_from_theme_data_bad_values(self, _init_pygame):
     manager = UIManager((800, 600), os.path.join("tests", "data", "themes", "ui_screen_health_bar_bad_values.json"))
     healthy_sprite = HealthySprite()
     health_bar = UIScreenSpaceHealthBar(relative_rect=pygame.Rect(100, 100, 150, 30),
                                         sprite_to_monitor=healthy_sprite,
                                         manager=manager)
     assert health_bar.image is not None
Esempio n. 8
0
 def test_creation_sprite_no_capacity(self, _init_pygame,
                                      default_ui_manager):
     healthy_sprite = HealthySpriteNoCapacity()
     with pytest.raises(
             AttributeError,
             match="Sprite does not have health_capacity attribute"):
         UIScreenSpaceHealthBar(relative_rect=pygame.Rect(
             100, 100, 150, 30),
                                sprite_to_monitor=healthy_sprite,
                                manager=default_ui_manager)
    def test_show_hide_rendering(self, _init_pygame, default_ui_manager,
                                 _display_surface_return_none):
        resolution = (400, 400)
        empty_surface = pygame.Surface(resolution)
        empty_surface.fill(pygame.Color(0, 0, 0))

        surface = empty_surface.copy()
        manager = UIManager(resolution)

        healthy_sprite = HealthySprite()
        health_bar = UIScreenSpaceHealthBar(relative_rect=pygame.Rect(
            25, 25, 375, 150),
                                            sprite_to_monitor=healthy_sprite,
                                            manager=manager,
                                            visible=0)
        manager.update(0.01)
        manager.draw_ui(surface)
        assert compare_surfaces(empty_surface, surface)

        surface.fill(pygame.Color(0, 0, 0))
        health_bar.show()
        manager.update(0.01)
        manager.draw_ui(surface)
        assert not compare_surfaces(empty_surface, surface)

        surface.fill(pygame.Color(0, 0, 0))
        health_bar.hide()
        manager.update(0.01)
        manager.draw_ui(surface)
        assert compare_surfaces(empty_surface, surface)
Esempio n. 10
0
 def test_creation_no_sprite(self, _init_pygame, default_ui_manager):
     UIScreenSpaceHealthBar(relative_rect=pygame.Rect(100, 100, 150, 30),
                            sprite_to_monitor=None,
                            manager=default_ui_manager)
Esempio n. 11
0
 def test_creation_with_sprite(self, _init_pygame, default_ui_manager):
     healthy_sprite = HealthySprite()
     UIScreenSpaceHealthBar(relative_rect=pygame.Rect(100, 100, 150, 30),
                            sprite_to_monitor=healthy_sprite,
                            manager=default_ui_manager)
    def __init__(self, rect, ui_manager):

        element_ids = ['everything_window']

        super().__init__(rect, ui_manager, element_ids=element_ids)

        # create shadow
        shadow_padding = (2, 2)

        self.image = self.ui_manager.get_shadow(self.rect.size)
        self.image.fill(self.ui_manager.get_theme().get_colour(self.object_ids, self.element_ids, 'dark_bg'),
                        pygame.Rect(shadow_padding,
                                    (self.rect.width - shadow_padding[0] * 2,
                                     self.rect.height - shadow_padding[1] * 2)
                                    ))

        self.get_container().relative_rect.width = self.rect.width - shadow_padding[0] * 2
        self.get_container().relative_rect.height = self.rect.height - shadow_padding[1] * 2
        self.get_container().relative_rect.x = self.get_container().relative_rect.x + shadow_padding[0]
        self.get_container().relative_rect.y = self.get_container().relative_rect.y + shadow_padding[1]
        self.get_container().update_containing_rect_position()

        self.close_window_button = UIButton(relative_rect=pygame.Rect((self.get_container().rect.width-20, 0),
                                                                      (20, 20)),
                                            text='╳',
                                            manager=ui_manager,
                                            container=self.get_container(),
                                            parent_element=self
                                            )
        self.menu_bar = UIButton(relative_rect=pygame.Rect((0, 0),
                                                           (self.get_container().rect.width-20, 20)),
                                 text='Everything Container',
                                 manager=ui_manager,
                                 container=self.get_container(),
                                 parent_element=self,
                                 object_id='#message_window_title_bar'
                                 )
        self.menu_bar.set_hold_range((100, 100))

        self.grabbed_window = False
        self.starting_grab_difference = (0, 0)

        self.test_slider = UIHorizontalSlider(pygame.Rect((int(self.rect.width / 2),
                                                           int(self.rect.height * 0.70)),
                                                          (240, 25)),
                                              50.0,
                                              (0.0, 100.0),
                                              self.ui_manager,
                                              container=self.get_container(),
                                              parent_element=self)

        self.slider_label = UILabel(pygame.Rect((int(self.rect.width / 2) + 250,
                                                 int(self.rect.height * 0.70)),
                                                (27, 25)),
                                    str(int(self.test_slider.get_current_value())),
                                    self.ui_manager,
                                    container=self.get_container(),
                                    parent_element=self)

        self.test_text_entry = UITextEntryLine(pygame.Rect((int(self.rect.width / 2),
                                                            int(self.rect.height * 0.50)),
                                                           (200, -1)),
                                               self.ui_manager,
                                               container=self.get_container(),
                                               parent_element=self)
        self.test_text_entry.set_forbidden_characters('numbers')

        current_resolution_string = 'Item 1'
        self.test_drop_down_menu = UIDropDownMenu(['Item 1',
                                                   'Item 2',
                                                   'Item 3',
                                                   'Item 4',
                                                   'Item 5',
                                                   'Item 6'],
                                                  current_resolution_string,
                                                  pygame.Rect((int(self.rect.width / 2),
                                                               int(self.rect.height * 0.3)),
                                                              (200, 25)),
                                                  self.ui_manager,
                                                  container=self.get_container(),
                                                  parent_element=self)

        self.health_bar = UIScreenSpaceHealthBar(pygame.Rect((int(self.rect.width / 9),
                                                              int(self.rect.height * 0.7)),
                                                             (200, 20)),
                                                 self.ui_manager,
                                                 container=self.get_container(),
                                                 parent_element=self)

        loaded_test_image = pygame.image.load('data/images/splat.png').convert_alpha()

        self.test_image = UIImage(pygame.Rect((int(self.rect.width / 9),
                                               int(self.rect.height * 0.3)),
                                              loaded_test_image.get_rect().size),
                                  loaded_test_image, self.ui_manager,
                                  container=self.get_container(),
                                  parent_element=self)
        self.is_selected = False