Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing connections #24

Open
SiriusAshling opened this issue Jan 3, 2022 · 10 comments · Fixed by #97
Open

Missing connections #24

SiriusAshling opened this issue Jan 3, 2022 · 10 comments · Fixed by #97

Comments

@SiriusAshling
Copy link
Member

Some anchors assume the player comes from a certain direction, and omit "backwards" paths in that direction.
Since those anchors can be spawned on, this is a faulty assumption, and the connections will be logical gaps if the player spawns there.

The kii branch parser can detect anchors with no outgoing anchor connections. (This is only a subset of the problematic anchors).
Currently these are:

  • HowlsDen.SecretRoom (since pre-rustgen)
  • MidnightBurrows.LeverRoom (1da09c6)
  • WestHollow.FarLeftRoom (since pre-rustgen)
  • LowerWastes.ThirstyGorlek (654dac6)

Scanning the logic visualizer would probably yield further missing connections.

For all of these either the missing connections should be implemented, or the anchor should be marked as nospawn.

@SiriusAshling
Copy link
Member Author

Quick notes on potentially incomplete anchors after a glance over the visualizer:

  • WestHollow.HollowDrainMiddle + WestHollow.HollowDrainLower
  • InnerWellspring.ShortcutLever
  • InnerWellspring.PastSpinPuzzle + InnerWellspring.TopSecondRoom
  • LowerReach.OutsideTPRoom
  • UpperReach.OutsideTreeRoom (useless connection)
  • LowerReach.HalfwayIceCavern
  • LowerReach.ArenaArea (don't understand the shaft connections)
  • UpperDepths.BelowHive
  • UpperDepths.SecondKSRoom
  • PoolsApproach.LeftOfWheel
  • LowerWastes.TreeArea
  • UpperWastes.OutsideRuins

WestHollow.FarLeftRoom is actually correct, no way out through the pressure plate door

@Foopyo
Copy link
Member

Foopyo commented Jan 10, 2022

These anchors do need more connections in kii or bellow:

  • InnerWellspring.PastSpinPuzzle needs a connection toward InnerWellspring.EastDoor. That one could be weird because it has to solve with InnerWellspring.SpinPuzzleSolved but that state won't be solved at the start of the seed so the state should probably be added from that anchor too.
  • InnerWellspring.TopSecondRoom needs a connection to InnerWellspring.PastSpinPuzzle
  • LowerReach.OutsideTPRoom needs a connection toward LowerReach.Teleporter
  • LowerReach.ArenaArea paths are actually correct but the connection toward LowerReach.LowerWispPath should be toward LowerReach.WindSpinners instead
  • UpperDepths.SecondKSRoom need a connection towards LowerDepths.East (which requires a ShurikenBreak). On top of that, there might be a need for an additional UpperDepths.SecondKSRoom <-> LowerDepths.Central connection if they aren't redundant with the UpperDepths.SecondKSRoom <-> LowerDepths.East connections
  • LowerWastes.ThirstyGorlek needs a connection toward LowerWastes.TreeArea (and LowerWastes.TreeArea probably need to be renamed)
  • LowerWastes.TreeArea connection toward LowerWastes.LeverArea need to go toward MuncherClimb instead
  • LowerReach.HalfwayIceCavern needs a connection towards LowerReach.PastSnowball
  • LowerReach.HalfwayIceCavern needs a connection towards LowerReach.RoofRightEX
  • LowerReach.SwimmingPool needs a connection towards LowerReach.HalfwayIceCavern
  • MidnightBurrows.LeverRoom needs connections towards MidnightBurrows.East, MidnightBurrows.BelowUpperKS and MidnightBurrows.Central
  • HowlsDen.SecretRoom needs connection towards HowlsDen.BoneBridge and HowlsDen.AboveBoneBridge
  • WillowsEnd.GrappleHeartMidPoint need a connection towards WillowsEnd.Entry

These anchors will need more connections in difficulties above kii:

  • WestHollow.HollowDrainLower needs a connection toward WestHollow.HollowDrainMiddle and one toward WestHollow.RockPuzzle (both would need to resolve first WestHollow.FullyDrained or include dirty swim, which is impossible without adding headers or being in unsafe)
  • UpperWastes.OutsideRuinsis needs a connection toward NorthTP (this won't matter before unsafe because it's only allowing you to get the NonGladesTeleporter state)

At least in kii, those anchor don't have any missing connections:

  • InnerWellspring.ShortcutLever have connections to both InnerWellspring.EntranceDoor and InnerWellspring.WestDoor, which are the only possible connections
  • UpperReach.OutsideTreeRoom is missing connections to some of the Frozenvariant of UpperReach.UpperSoup but since you need UpperReach.ThawFurnace in order to pass the waterfall, that anchor isn't accessible from here. the UpperReach.UpperSoup connection should probably be connecting to UpperReach.UpperSoupThawed instead.
  • UpperDepths.BelowHive seems to be connected to everything beside maybe the Mora path, if there is some ShurikenBreak that wouldn't be redundant with paths from the teleporter
  • PoolsApproach.LeftOfWheel have connections to PoolsApproach.RightOfWheel, EastPools.LeverRoom. The connection toward MarshSpawn.Main need to go toward MarshSpawn.PoolsPath instead.

@SiriusAshling
Copy link
Member Author

Just adding a note since it doesn't seem to be present here yet: A path to the ShriekTP would also be relevant in unsafe because it could give the NonGladesTeleporter state

@Foopyo
Copy link
Member

Foopyo commented Jun 6, 2022

Just adding a note since it doesn't seem to be present here yet: A path to the ShriekTP would also be relevant in unsafe because it could give the NonGladesTeleporter state

The Shriek TP path is a pretty massive one to pathfind for because you need to destroy all willow's hearts and these have been disreguarded since gorlek's pathfinding

@Foopyo
Copy link
Member

Foopyo commented Jun 6, 2022

It can also be noted that if you can get logical access to all willow's hearts, you can also access WillowsEnd.InnerTP, which would be a less restrictive way to get the NonGladesTeleporter state. So this will only be useful when using headers which can grant the Shriek teleporter pickup or when playing with No willows Hearts.

@SiriusAshling
Copy link
Member Author

Yeah No Willow Hearts + Spawn in front of the Shriek door + Spawn with Glades TP would be a simple example

@Foopyo
Copy link
Member

Foopyo commented Jun 6, 2022

Doesn't fully random spawn solves the issue? You'll get a point on your map on which you tp to, so you don't need the teleporter in order to get the pickup.

@SiriusAshling
Copy link
Member Author

That's an interesting implication. We'd need a way to communicate this to logic, then it should indeed render a connection towards ShriekTP redundant.

@Foopyo
Copy link
Member

Foopyo commented Jun 6, 2022

logic could probably just set that state to true if you spawn somewhere else than at glades TP

@Foopyo
Copy link
Member

Foopyo commented Dec 17, 2022

Closing the issue since all the pathfinding has been done. All the paths validation can get done during the kii validation process, except for MidnightBurrows for which the issue #107 got created.

@Foopyo Foopyo closed this as completed Dec 17, 2022
@Foopyo Foopyo reopened this Dec 17, 2022
@Foopyo Foopyo linked a pull request Dec 17, 2022 that will close this issue
Merged
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants