Bug fix for intensity 3 + enemizer (just taking it out for now)

Lobbies added to spoiler
This commit is contained in:
aerinon
2020-10-23 15:07:55 -06:00
parent d89801c72c
commit c0f6c3fd52
5 changed files with 32 additions and 13 deletions

View File

@@ -1760,9 +1760,10 @@ class Spoiler(object):
def __init__(self, world): def __init__(self, world):
self.world = world self.world = world
self.hashes = {} self.hashes = {}
self.entrances = OrderedDict() self.entrances = {}
self.doors = OrderedDict() self.doors = {}
self.doorTypes = OrderedDict() self.doorTypes = {}
self.lobbies = {}
self.medallions = {} self.medallions = {}
self.playthrough = {} self.playthrough = {}
self.unreachables = [] self.unreachables = []
@@ -1785,6 +1786,12 @@ class Spoiler(object):
else: else:
self.doors[(entrance, direction, player)] = OrderedDict([('player', player), ('entrance', entrance), ('exit', exit), ('direction', direction), ('dname', d_name)]) self.doors[(entrance, direction, player)] = OrderedDict([('player', player), ('entrance', entrance), ('exit', exit), ('direction', direction), ('dname', d_name)])
def set_lobby(self, lobby_name, door_name, player):
if self.world.players == 1:
self.lobbies[(lobby_name, player)] = {'lobby_name': lobby_name, 'door_name': door_name}
else:
self.lobbies[(lobby_name, player)] = {'player': player, 'lobby_name': lobby_name, 'door_name': door_name}
def set_door_type(self, doorNames, type, player): def set_door_type(self, doorNames, type, player):
if self.world.players == 1: if self.world.players == 1:
self.doorTypes[(doorNames, player)] = OrderedDict([('doorNames', doorNames), ('type', type)]) self.doorTypes[(doorNames, player)] = OrderedDict([('doorNames', doorNames), ('type', type)])
@@ -1864,6 +1871,11 @@ class Spoiler(object):
if self.world.players == 1: if self.world.players == 1:
self.bosses = self.bosses["1"] self.bosses = self.bosses["1"]
for player in range(1, self.world.players + 1):
if self.world.intensity[player] >= 3:
for portal in self.world.dungeon_portals[player]:
self.set_lobby(portal.name, portal.door.name, player)
from Main import __version__ as ERVersion from Main import __version__ as ERVersion
self.metadata = {'version': ERVersion, self.metadata = {'version': ERVersion,
'logic': self.world.logic, 'logic': self.world.logic,
@@ -1899,6 +1911,7 @@ class Spoiler(object):
out = OrderedDict() out = OrderedDict()
out['Entrances'] = list(self.entrances.values()) out['Entrances'] = list(self.entrances.values())
out['Doors'] = list(self.doors.values()) out['Doors'] = list(self.doors.values())
out['Lobbies'] = list(self.lobbies.values())
out['DoorTypes'] = list(self.doorTypes.values()) out['DoorTypes'] = list(self.doorTypes.values())
out.update(self.locations) out.update(self.locations)
out['Starting Inventory'] = self.startinventory out['Starting Inventory'] = self.startinventory
@@ -1960,6 +1973,12 @@ class Spoiler(object):
self.world.fish.translate("meta","doors",entry['exit']), self.world.fish.translate("meta","doors",entry['exit']),
'({0})'.format(entry['dname']) if self.world.doorShuffle[entry['player']] == 'crossed' else '') for '({0})'.format(entry['dname']) if self.world.doorShuffle[entry['player']] == 'crossed' else '') for
entry in self.doors.values()])) entry in self.doors.values()]))
if self.lobbies:
outfile.write('\n\nDungeon Lobbies:\n\n')
outfile.write('\n'.join(
[f"{'Player {0}: '.format(entry['player']) if self.world.players > 1 else ''}{entry['lobby_name']}: {entry['door_name']}"
for
entry in self.lobbies.values()]))
if self.doorTypes: if self.doorTypes:
# doorNames: For some reason these come in combined, somehow need to split on the thing to translate # doorNames: For some reason these come in combined, somehow need to split on the thing to translate
# doorTypes: Small Key, Bombable, Bonkable # doorTypes: Small Key, Bombable, Bonkable

View File

@@ -247,7 +247,7 @@ def create_doors(world, player):
create_door(player, 'Desert Tiles 2 NE', Intr).dir(No, 0x43, Right, High).small_key().pos(1), create_door(player, 'Desert Tiles 2 NE', Intr).dir(No, 0x43, Right, High).small_key().pos(1),
create_door(player, 'Desert Wall Slide SE', Intr).dir(So, 0x43, Right, High).small_key().pos(1), create_door(player, 'Desert Wall Slide SE', Intr).dir(So, 0x43, Right, High).small_key().pos(1),
create_door(player, 'Desert Wall Slide NW', Nrml).dir(No, 0x43, Left, High).big_key().pos(0).no_entrance(), create_door(player, 'Desert Wall Slide NW', Nrml).dir(No, 0x43, Left, High).big_key().pos(0).no_entrance(),
create_door(player, 'Desert Boss SW', Nrml).dir(So, 0x33, Left, High).no_exit().trap(0x4).pos(0).portal(Z, 0x00), create_door(player, 'Desert Boss SW', Nrml).dir(So, 0x33, Left, High).no_exit().trap(0x4).pos(0), # .portal(Z, 0x00), problem with enemizer
# Hera # Hera
create_door(player, 'Hera Lobby S', Nrml).dir(So, 0x77, Mid, Low).pos(0).portal(Z, 0x22, 1), create_door(player, 'Hera Lobby S', Nrml).dir(So, 0x77, Mid, Low).pos(0).portal(Z, 0x22, 1),
@@ -935,7 +935,7 @@ def create_doors(world, player):
create_door(player, 'TR Crystal Maze North Stairs', StrS).dir(No, 0xc4, Mid, High), create_door(player, 'TR Crystal Maze North Stairs', StrS).dir(No, 0xc4, Mid, High),
create_door(player, 'TR Final Abyss South Stairs', StrS).dir(So, 0xb4, Mid, High), create_door(player, 'TR Final Abyss South Stairs', StrS).dir(So, 0xb4, Mid, High),
create_door(player, 'TR Final Abyss NW', Nrml).dir(No, 0xb4, Left, High).big_key().pos(0), create_door(player, 'TR Final Abyss NW', Nrml).dir(No, 0xb4, Left, High).big_key().pos(0),
create_door(player, 'TR Boss SW', Nrml).dir(So, 0xa4, Left, High).no_exit().trap(0x4).pos(0).portal(Z, 0x00), create_door(player, 'TR Boss SW', Nrml).dir(So, 0xa4, Left, High).no_exit().trap(0x4).pos(0), # .portal(Z, 0x00), -enemizer doesn't work
create_door(player, 'GT Lobby S', Nrml).dir(So, 0x0c, Mid, High).pos(0).portal(Z, 0x22), create_door(player, 'GT Lobby S', Nrml).dir(So, 0x0c, Mid, High).pos(0).portal(Z, 0x22),
create_door(player, 'GT Lobby Left Down Stairs', Sprl).dir(Dn, 0x0c, 1, HTL).ss(A, 0x0f, 0x80), create_door(player, 'GT Lobby Left Down Stairs', Sprl).dir(Dn, 0x0c, 1, HTL).ss(A, 0x0f, 0x80),
@@ -1303,8 +1303,8 @@ def create_doors(world, player):
world.get_door('TR Big Chest Entrance SE', player).passage = False world.get_door('TR Big Chest Entrance SE', player).passage = False
world.get_door('Sewers Secret Room Key Door S', player).dungeonLink = 'Hyrule Castle' world.get_door('Sewers Secret Room Key Door S', player).dungeonLink = 'Hyrule Castle'
world.get_door('Desert Cannonball S', player).dead_end() world.get_door('Desert Cannonball S', player).dead_end()
world.get_door('Desert Boss SW', player).dead_end() # world.get_door('Desert Boss SW', player).dead_end()
world.get_door('Desert Boss SW', player).dungeonLink = 'Desert Palace' # world.get_door('Desert Boss SW', player).dungeonLink = 'Desert Palace'
world.get_door('Skull 1 Lobby S', player).dungeonLink = 'Skull Woods' world.get_door('Skull 1 Lobby S', player).dungeonLink = 'Skull Woods'
world.get_door('Skull Map Room SE', player).dungeonLink = 'Skull Woods' world.get_door('Skull Map Room SE', player).dungeonLink = 'Skull Woods'
world.get_door('Skull Spike Corner SW', player).dungeonLink = 'Skull Woods' world.get_door('Skull Spike Corner SW', player).dungeonLink = 'Skull Woods'
@@ -1314,8 +1314,8 @@ def create_doors(world, player):
world.get_door('Mire Right Bridge SE', player).dead_end(allowPassage=True) world.get_door('Mire Right Bridge SE', player).dead_end(allowPassage=True)
world.get_door('TR Roller Room SW', player).dead_end() world.get_door('TR Roller Room SW', player).dead_end()
world.get_door('TR Tile Room SE', player).dead_end() world.get_door('TR Tile Room SE', player).dead_end()
world.get_door('TR Boss SW', player).dead_end() # world.get_door('TR Boss SW', player).dead_end()
world.get_door('TR Boss SW', player).dungeonLink = 'Turtle Rock' # world.get_door('TR Boss SW', player).dungeonLink = 'Turtle Rock'
world.get_door('GT Petting Zoo SE', player).dead_end() world.get_door('GT Petting Zoo SE', player).dead_end()
world.get_door('GT DMs Room SW', player).dead_end() world.get_door('GT DMs Room SW', player).dead_end()
world.get_door("GT Bob\'s Room SE", player).passage = False world.get_door("GT Bob\'s Room SE", player).passage = False

2
Rom.py
View File

@@ -22,7 +22,7 @@ from EntranceShuffle import door_addresses, exit_ids
JAP10HASH = '03a63945398191337e896e5771f77173' JAP10HASH = '03a63945398191337e896e5771f77173'
RANDOMIZERBASEHASH = '78aac1dbdce621865572e06cfcd3c112' RANDOMIZERBASEHASH = '890bac9433ffda07aeeb858cfdb41e4a'
class JsonRom(object): class JsonRom(object):

View File

@@ -88,10 +88,10 @@ SuctionOverworldFix:
+ rtl + rtl
; TT Alcove, Mire bridges, pod falling, SW torch room, TR Pipe room, Bob's Room, Ice Many Pots, Mire Hub ; TT Alcove, Mire bridges, pod falling, SW torch room, TR Pipe room, Bob's Room, Ice Many Pots, Mire Hub
; swamp waterfall, Gauntlet 3 ; swamp waterfall, Gauntlet 3, Eastern Push block
CutoffRooms: CutoffRooms:
db $bc, $a2, $1a, $49, $14, $8c, $9f, $c2 db $bc, $a2, $1a, $49, $14, $8c, $9f, $c2
db $66, $5d db $66, $5d, $a8
CutoffEntranceRug: CutoffEntranceRug:
pha : phx pha : phx

File diff suppressed because one or more lines are too long