The Messenger: Fix some transition plando issues (#4720)
* don't allow one-way and two-way entrances to be connected to each other * add special handling for the tower hq nodes since they share the same parent region
This commit is contained in:
@@ -51,6 +51,12 @@ class TransitionPlando(PlandoConnections):
|
|||||||
entrances = frozenset(RANDOMIZED_CONNECTIONS.keys())
|
entrances = frozenset(RANDOMIZED_CONNECTIONS.keys())
|
||||||
exits = frozenset(RANDOMIZED_CONNECTIONS.values())
|
exits = frozenset(RANDOMIZED_CONNECTIONS.values())
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def can_connect(cls, entrance: str, exit: str) -> bool:
|
||||||
|
if entrance != "Glacial Peak - Left" and entrance.lower() in cls.exits:
|
||||||
|
return exit.lower() in cls.entrances
|
||||||
|
return exit.lower() not in cls.entrances
|
||||||
|
|
||||||
|
|
||||||
class Logic(Choice):
|
class Logic(Choice):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -30,10 +30,19 @@ def connect_plando(world: "MessengerWorld", plando_connections: TransitionPlando
|
|||||||
|
|
||||||
for plando_connection in plando_connections:
|
for plando_connection in plando_connections:
|
||||||
# get the connecting regions
|
# get the connecting regions
|
||||||
reg1 = world.get_region(plando_connection.entrance)
|
# need to handle these special because the names are unique but have the same parent region
|
||||||
|
if plando_connection.entrance in ("Artificer", "Tower HQ"):
|
||||||
|
reg1 = world.get_region("Tower HQ")
|
||||||
|
if plando_connection.entrance == "Artificer":
|
||||||
|
dangling_exit = world.get_entrance("Artificer's Portal")
|
||||||
|
else:
|
||||||
|
dangling_exit = world.get_entrance("Artificer's Challenge")
|
||||||
|
reg1.exits.remove(dangling_exit)
|
||||||
|
else:
|
||||||
|
reg1 = world.get_region(plando_connection.entrance)
|
||||||
|
remove_dangling_exit(reg1)
|
||||||
|
|
||||||
reg2 = world.get_region(plando_connection.exit)
|
reg2 = world.get_region(plando_connection.exit)
|
||||||
|
|
||||||
remove_dangling_exit(reg1)
|
|
||||||
remove_dangling_entrance(reg2)
|
remove_dangling_entrance(reg2)
|
||||||
# connect the regions
|
# connect the regions
|
||||||
reg1.connect(reg2)
|
reg1.connect(reg2)
|
||||||
|
|||||||
Reference in New Issue
Block a user