Fix inverted checks

Fix superbunny / dungeon revive rules due to late binding
Fix inverted swamp patch
Fix most unit tests (dungeons still broken)
This commit is contained in:
compiling
2021-04-27 23:51:12 +10:00
parent df2b12774d
commit 639a3ec383
15 changed files with 103 additions and 159 deletions

View File

@@ -82,7 +82,7 @@ class TestDungeons(TestInvertedOWG):
#["Ice Palace - Compass Chest", True, ['Fire Rod']],
#["Ice Palace - Compass Chest", True, ['Bombos', 'Progressive Sword']],
["Ice Palace - Compass Chest", True, ['Pegasus Boots', 'Fire Rod']],
["Ice Palace - Compass Chest", True, ['Pegasus Boots', 'Bombos', 'Progressive Sword']],
["Ice Palace - Compass Chest", True, ['Pegasus Boots', 'Bombos', 'Progressive Sword', 'Small Key (Ice Palace)']],
["Misery Mire - Bridge Chest", False, []],
["Misery Mire - Bridge Chest", False, [], ['Ether']],
@@ -109,7 +109,8 @@ class TestDungeons(TestInvertedOWG):
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 5']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 6']],
["Ganons Tower - Hope Room - Left", False, [], ['Crystal 7']],
["Ganons Tower - Hope Room - Left", True, ['Beat Agahnim 1', 'Hookshot', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7']],
["Ganons Tower - Hope Room - Left", True, ['Pegasus Boots', 'Magic Mirror', 'Hookshot', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7']],
#todo: smarter dungeon revive logic
#["Ganons Tower - Hope Room - Left", True, ['Beat Agahnim 1', 'Hookshot', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7']],
#["Ganons Tower - Hope Room - Left", True, ['Pegasus Boots', 'Magic Mirror', 'Hookshot', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7']],
["Ganons Tower - Hope Room - Left", True, ['Pegasus Boots', 'Moon Pearl', 'Hookshot', 'Crystal 1', 'Crystal 2', 'Crystal 3', 'Crystal 4', 'Crystal 5', 'Crystal 6', 'Crystal 7']],
])

View File

@@ -1,23 +1,33 @@
from BaseClasses import World
from DoorShuffle import link_doors
from Doors import create_doors
from Dungeons import create_dungeons, get_dungeon_item_pool
from EntranceShuffle import link_inverted_entrances
from InvertedRegions import create_inverted_regions
from ItemList import generate_itempool, difficulties
from Items import ItemFactory
from Regions import mark_light_world_regions
from OverworldGlitchRules import create_owg_connections
from Regions import mark_light_world_regions, create_dungeon_regions, create_shops
from RoomData import create_rooms
from Rules import set_rules
from test.TestBase import TestBase
class TestInvertedOWG(TestBase):
def setUp(self):
self.world = World(1, 'vanilla', 'owglitches', 'inverted', 'random', 'normal', 'normal', 'none', 'on', 'ganon', 'balanced',
True, False, False, False, False, False, False, False, False, None,
'none', False)
self.world.difficulty_requirements = difficulties['normal']
self.world = World(1, {1: 'vanilla'}, {1: 'vanilla'}, {1: 'owglitches'}, {1: 'inverted'}, {1: 'random'}, {1: 'normal'}, {1: 'normal'}, 'none', 'on', {1: 'ganon'}, 'balanced', {1: 'items'},
{1: True}, {1: False}, False, None, {1: False})
self.world.difficulty_requirements[1] = difficulties['normal']
self.world.intensity = {1: 1}
create_inverted_regions(self.world, 1)
create_dungeon_regions(self.world, 1)
create_shops(self.world, 1)
create_doors(self.world, 1)
create_rooms(self.world, 1)
create_dungeons(self.world, 1)
create_owg_connections(self.world, 1)
link_inverted_entrances(self.world, 1)
link_doors(self.world, 1)
generate_itempool(self.world, 1)
self.world.required_medallions[1] = ['Ether', 'Quake']
self.world.itempool.extend(get_dungeon_item_pool(self.world))
@@ -26,5 +36,5 @@ class TestInvertedOWG(TestBase):
self.world.get_location('Agahnim 2', 1).item = None
self.world.precollected_items.clear()
self.world.itempool.append(ItemFactory('Pegasus Boots', 1))
mark_light_world_regions(self.world)
mark_light_world_regions(self.world, 1)
set_rules(self.world, 1)