Zillion: fix unreproducible seeds (#1166)

* fix zillion unreproducible seeds

* world to multiworld merge
This commit is contained in:
Doug Hoskisson
2022-11-01 06:45:17 -07:00
committed by GitHub
parent 95ea0541e6
commit 962e48c078
4 changed files with 32 additions and 2 deletions

View File

@@ -9,7 +9,7 @@ from worlds.AutoWorld import call_all
class WorldTestBase(unittest.TestCase):
options: typing.Dict[str, typing.Any] = {}
world: MultiWorld
multiworld: MultiWorld
game: typing.ClassVar[str] # define game name in subclass, example "Secret of Evermore"
auto_construct: typing.ClassVar[bool] = True

View File

@@ -0,0 +1,29 @@
from typing import cast
from test.worlds.zillion import ZillionTestBase
from worlds.zillion import ZillionWorld
class SeedTest(ZillionTestBase):
auto_construct = False
def test_reproduce_seed(self) -> None:
self.world_setup(42)
z_world = cast(ZillionWorld, self.multiworld.worlds[1])
r = z_world.zz_system.randomizer
assert r
randomized_requirements_first = tuple(
location.req.gun
for location in r.locations.values()
)
self.world_setup(42)
z_world = cast(ZillionWorld, self.multiworld.worlds[1])
r = z_world.zz_system.randomizer
assert r
randomized_requirements_second = tuple(
location.req.gun
for location in r.locations.values()
)
assert randomized_requirements_first == randomized_requirements_second