def test_state_must_be_starting(skip_qtbot, echoes_item_database,
                                echoes_resource_database):
    item = [
        item for item in echoes_item_database.major_items.values()
        if item.must_be_starting
    ][0]
    state = MajorItemState(
        include_copy_in_original_location=False,
        num_shuffled_pickups=1,
        num_included_in_starting_items=0,
        included_ammo=(),
    )

    # Run
    popup = ItemConfigurationWidget(None, item, state,
                                    echoes_resource_database)
    skip_qtbot.addWidget(popup)

    # Assert
    assert popup.state == MajorItemState(
        include_copy_in_original_location=False,
        num_shuffled_pickups=0,
        num_included_in_starting_items=1,
        included_ammo=(),
    )
def test_state_change_to_starting(skip_qtbot, echoes_item_database,
                                  echoes_resource_database):
    item = [
        item for item in echoes_item_database.major_items.values()
        if not item.must_be_starting
    ][0]
    state = MajorItemState(
        include_copy_in_original_location=False,
        num_shuffled_pickups=1,
        num_included_in_starting_items=0,
        included_ammo=(),
    )

    # Run
    popup = ItemConfigurationWidget(None, item, state,
                                    echoes_resource_database)
    skip_qtbot.addWidget(popup)
    popup.state_case_combo.setCurrentIndex(
        popup.state_case_combo.findData(MajorItemStateCase.STARTING_ITEM))

    # Assert
    assert popup.state == MajorItemState(
        include_copy_in_original_location=False,
        num_shuffled_pickups=0,
        num_included_in_starting_items=1,
        priority=1.0,
        included_ammo=(),
    )
Example #3
0
def test_state_change_to_starting(skip_qtbot, echoes_item_database,
                                  echoes_resource_database):
    item = [
        item for item in echoes_item_database.major_items.values()
        if not item.required
    ][0]
    state = MajorItemState(
        include_copy_in_original_location=False,
        num_shuffled_pickups=1,
        num_included_in_starting_items=0,
        included_ammo=(),
    )

    # Run
    popup = ItemConfigurationWidget(None, item, state,
                                    echoes_resource_database)
    skip_qtbot.addWidget(popup)
    skip_qtbot.mouseClick(popup.starting_radio, QtCore.Qt.LeftButton)

    # Assert
    assert popup.state == MajorItemState(
        include_copy_in_original_location=False,
        num_shuffled_pickups=0,
        num_included_in_starting_items=1,
        included_ammo=(),
    )
Example #4
0
    def _create_major_item_boxes(self, item_database: ItemDatabase, resource_database: ResourceDatabase):
        for major_item in item_database.major_items.values():
            if major_item.required or major_item.item_category == ItemCategory.ENERGY_TANK:
                continue

            category_box, category_layout, elements = self._boxes_for_category[major_item.item_category]
            widget = ItemConfigurationWidget(None, major_item, MajorItemState(), resource_database)
            widget.Changed.connect(partial(self._on_major_item_updated, widget))

            row = category_layout.rowCount()
            category_layout.addWidget(widget, row, 0, 1, -1)

            elements[major_item] = widget
Example #5
0
    def _create_major_item_boxes(self, item_database: ItemDatabase, resource_database: ResourceDatabase):
        for major_item in item_database.major_items.values():
            if major_item.hide_from_gui or major_item.item_category.name == "energy_tank":
                continue

            category_box, category_layout, elements = self._boxes_for_category[major_item.item_category.name]
            widget = ItemConfigurationWidget(None, major_item, MajorItemState(), resource_database)
            widget.Changed.connect(partial(self._on_major_item_updated, widget))

            row = category_layout.rowCount()
            if row > 1:
                # Show the transparent separator line if it's not the first element
                widget.separator_line.show()

            category_layout.addWidget(widget, row, 0, 1, 2)
            elements[major_item] = widget