mirror of
https://github.com/ArchipelagoMW/Archipelago.git
synced 2026-03-27 16:33:27 -07:00
91 lines
3.4 KiB
Python
91 lines
3.4 KiB
Python
from BaseClasses import ItemClassification
|
|
from Fill import distribute_items_restrictive
|
|
from ..Enum import CivVICheckType
|
|
from . import CivVITestBase
|
|
|
|
|
|
class TestStartingHints(CivVITestBase):
|
|
run_default_tests = False
|
|
auto_construct = False
|
|
options = {
|
|
"progressive_eras": "true",
|
|
"death_link": "true",
|
|
"death_link_effect": "unit_killed",
|
|
"progressive_districts": "true",
|
|
"pre_hint_items": "all",
|
|
}
|
|
|
|
def test_all_tech_civic_items_are_hinted_default(self) -> None:
|
|
self.world_setup()
|
|
distribute_items_restrictive(self.multiworld)
|
|
self.world.post_fill()
|
|
start_location_hints = self.world.options.start_location_hints.value
|
|
for location_name, location_data in self.world.location_table.items():
|
|
if location_data.location_type == CivVICheckType.CIVIC or location_data.location_type == CivVICheckType.TECH:
|
|
self.assertIn(location_name, start_location_hints)
|
|
else:
|
|
self.assertNotIn(location_name, start_location_hints)
|
|
|
|
|
|
class TestOnlyProgressionItemsHinted(CivVITestBase):
|
|
run_default_tests = False
|
|
auto_construct = False
|
|
options = {
|
|
"progressive_eras": "true",
|
|
"death_link": "true",
|
|
"death_link_effect": "unit_killed",
|
|
"progressive_districts": "true",
|
|
"pre_hint_items": "progression_items",
|
|
}
|
|
|
|
def test_only_progression_items_are_hinted(self) -> None:
|
|
self.world_setup()
|
|
distribute_items_restrictive(self.multiworld)
|
|
self.world.post_fill()
|
|
start_location_hints = self.world.options.start_location_hints.value
|
|
self.assertTrue(len(start_location_hints) > 0)
|
|
for hint in start_location_hints:
|
|
location_data = self.world.get_location(hint)
|
|
self.assertTrue(location_data.item.classification == ItemClassification.progression)
|
|
|
|
|
|
class TestNoJunkItemsHinted(CivVITestBase):
|
|
run_default_tests = False
|
|
auto_construct = False
|
|
options = {
|
|
"progressive_eras": "true",
|
|
"death_link": "true",
|
|
"death_link_effect": "unit_killed",
|
|
"progressive_districts": "true",
|
|
"pre_hint_items": "no_junk",
|
|
}
|
|
|
|
def test_no_junk_items_are_hinted(self) -> None:
|
|
self.world_setup()
|
|
distribute_items_restrictive(self.multiworld)
|
|
self.world.post_fill()
|
|
start_location_hints = self.world.options.start_location_hints.value
|
|
self.assertTrue(len(start_location_hints) > 0)
|
|
for hint in start_location_hints:
|
|
location_data = self.world.get_location(hint)
|
|
self.assertTrue(location_data.item.classification == ItemClassification.progression or location_data.item.classification == ItemClassification.useful)
|
|
|
|
|
|
class TestNoItemsHinted(CivVITestBase):
|
|
run_default_tests = False
|
|
auto_construct = False
|
|
options = {
|
|
"progressive_eras": "true",
|
|
"death_link": "true",
|
|
"death_link_effect": "unit_killed",
|
|
"progressive_districts": "true",
|
|
"pre_hint_items": "none",
|
|
}
|
|
|
|
def test_no_items_are_hinted(self) -> None:
|
|
self.world_setup()
|
|
distribute_items_restrictive(self.multiworld)
|
|
self.world.post_fill()
|
|
start_location_hints = self.world.options.start_location_hints.value
|
|
self.assertEqual(len(start_location_hints), 0)
|