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

TUNIC: Logic Rules Redux #3544

Merged
merged 125 commits into from
Sep 8, 2024

Conversation

ScipioWright
Copy link
Collaborator

@ScipioWright ScipioWright commented Jun 15, 2024

What is this fixing or adding?

Splits the logic option into a few different individual trick options, and added more tricks to the logic accordingly.

Instead of a single Logic Rules option, there are now the following:
Laurels Zips: A toggle to say if you would like zip through gates, doors, or to tricky spots in logic.
Ice Grappling: Decide whether you want ice grappling to be in logic, and which difficulties of it you want to include. Hard difficulty on this is very mean.
Ladder Storage: Decide whether you want ladder storage to be in logic, and which difficulties of it you want to include.
Ladder Storage Without Items: For those who just really like the plushie code.

This PR contains this other PR: #3356 and so, it has the waiting on: other tag until that other PR is merged. It would be easier to review this PR when compared to that one instead of main.

It also contains this fairly minor PR: #3620

How was this tested?

Many many test gens with varied options. Some test games. Unit tests.

If this makes graphical changes, please attach screenshots.

N/A

Copy link

@hesto2 hesto2 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, this looks like it was a ton of work and well implemented. I wish I had more constructive feedback here other than "Wow, this looks great" but this has clearly been through a lot of iteration 😅

worlds/tunic/er_data.py Show resolved Hide resolved
worlds/tunic/er_data.py Show resolved Hide resolved
def vanilla_portals() -> Dict[Portal, Portal]:
# all shops are the same shop. however, you cannot get to all shops from the same shop entrance.
# so, we need a bunch of shop regions that connect to the actual shop, but the actual shop cannot connect back
def create_shop_region(world: "TunicWorld", regions: Dict[str, Region]) -> None:
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clever 🔥

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What would happen if you made entrances to the shop a one way door since it is a dead end? I imagine it doesn't have any logical pathing through it but there could be some glitches/tricks I'm not aware of

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glitch/trick reasons, mostly. There's a glitch called Ladder Storage which effectively makes it so that, if there's a ladder in the scene and you have a coin/sword/stick/other thing, you can get to most other entrances at the same or at a higher elevation, but you can't just "drop" out of the air whenever -- most of the time, you have to cancel ladder storage by going through a load zone.

So, sometimes you have to ladder storage to an entrance that is a shop, and the logic needs to know you can walk back out to get to wherever the shop entrance was.

Also, decoupled needs this (which is 2 PRs ahead of this one, but might as well solve that issue now)

worlds/tunic/options.py Show resolved Hide resolved
@ScipioWright ScipioWright added waiting-on: core-review Issue/PR has been peer-reviewed and is ready to be merged or needs input from a core maintainer. and removed waiting-on: peer-review Issue/PR has not been reviewed by enough people yet. labels Aug 28, 2024
Copy link
Member

@NewSoupVi NewSoupVi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Didn't really review ladder storage very thoroughly, good luck

@NewSoupVi NewSoupVi merged commit dad228c into ArchipelagoMW:main Sep 8, 2024
17 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is: enhancement Issues requesting new features or pull requests implementing new features. is: refactor/cleanup Improvements to code/output readability or organizization. waiting-on: core-review Issue/PR has been peer-reviewed and is ready to be merged or needs input from a core maintainer.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants