Skip to content

Commit

Permalink
.
Browse files Browse the repository at this point in the history
  • Loading branch information
Ixrec committed Mar 17, 2024
1 parent 7668189 commit 84dfc05
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 3 deletions.
42 changes: 42 additions & 0 deletions test/general/test_ids.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import random
import unittest

from Fill import distribute_items_restrictive
Expand Down Expand Up @@ -118,3 +119,44 @@ def test_postgen_datapackage(self):
f"{loc_name} is not a valid item name for location_name_to_id")
self.assertIsInstance(loc_id, int,
f"{loc_id} for {loc_name} should be an int")
def get_form_level_max(self, state, amount):
forms_available = 0
x = lambda: True
y = lambda: False
z = lambda: True
forms_available += sum([1 for func(state) in [
self.kh2_has_valor_form,
] if func])
return forms_available >= amount

def kh2_has_valor_form(self):
return True

def test_world_determinism(sel):
"""Tests that the state of a generated multiworld is the same per world."""
for game_name, world_type in AutoWorldRegister.world_types.items():
with self.subTest(game=game_name):
multi_one = setup_solo_multiworld(world_type, seed=0)
multi_two = setup_solo_multiworld(world_type, seed=0)
self.assertEqual(multi_one.random.randrange(99999), multi_two.random.randrange(99999))
for region_name in multi_one.regions.region_cache:
self.assertIn(region_name, multi_two.regions.region_cache)
self.assertEqual(list(multi_one.regions.region_cache.keys()).index(region_name),
list(multi_two.regions.region_cache.keys()).index(region_name),
"regions were created in a separate order")
for entrance_name in multi_one.regions.entrance_cache:
self.assertIn(region_name, multi_two.regions.entrance_cache)
self.assertEqual(list(multi_one.regions.entrance_cache.keys()).index(entrance_name),
list(multi_two.regions.entrance_cache.keys()).index(entrance_name),
"entrances were created in a different order")
for location_name in multi_one.regions.location_cache:
self.assertIn(region_name, multi_two.regions.location_cache)
self.assertEqual(list(multi_one.regions.location_cache.keys()).index(location_name),
list(multi_two.regions.location_cache.keys()).index(location_name),
"locations were created in a different order")
for multi_one_loc in multi_one.get_filled_locations():
multi_two_loc = multi_two.get_location(multi_one_loc.name, 1)
self.assertEqual(multi_one_loc.item, multi_two_loc.item,
f"{multi_one_loc} has a different item placed on it between seeds: "
f"{multi_one_loc.item}, {multi_two_loc.item}")
self.assertEqual(multi_one.itempool, multi_two.itempool)
5 changes: 3 additions & 2 deletions worlds/adventure/Regions.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
from BaseClasses import MultiWorld, Region, Entrance, LocationProgressType
from .Locations import location_table, LocationData, AdventureLocation, dragon_room_to_region
from random import Random


def connect(world: MultiWorld, player: int, source: str, target: str, rule: callable = lambda state: True,
Expand All @@ -24,9 +25,9 @@ def connect(world: MultiWorld, player: int, source: str, target: str, rule: call
connect(world, player, target, source, rule, True)


def create_regions(multiworld: MultiWorld, player: int, dragon_rooms: []) -> None:
def create_regions(random: Random, multiworld: MultiWorld, player: int, dragon_rooms: []) -> None:
for name, locdata in location_table.items():
locdata.get_position(multiworld.random)
locdata.get_position(random)

menu = Region("Menu", player, multiworld)

Expand Down
2 changes: 1 addition & 1 deletion worlds/adventure/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,7 @@ def create_dragon_slow_items(self, min_speed: int, speed: int, item_name: str, m
self.created_items += 1

def create_regions(self) -> None:
create_regions(self.multiworld, self.player, self.dragon_rooms)
create_regions(self.multiworld.random, self.multiworld, self.player, self.dragon_rooms)

set_rules = set_rules

Expand Down

0 comments on commit 84dfc05

Please sign in to comment.