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

The Witness: Big™ new™ content update™ #2114

Merged
merged 252 commits into from
Nov 24, 2023

Conversation

NewSoupVi
Copy link
Member

@NewSoupVi NewSoupVi commented Aug 20, 2023

It's important to note that while this does contain fixes, they are fixes to non game breaking issues. . I've been PRing those seperately.
(e.g. I've been PRing fixes to logic that is too loose and thus creates unbeatable seeds, but when logic is more restrictive than necessary, it went in this PR)

Anyway. Too much to really list in the title, so here goes

Fixes to API access

  • Move to self.options
  • Fix many instances of "world: Multiworld"
  • LogicMixin begone
  • get_option_value begone

Refactor

  • Basically, I got rid of events in favor of indirect_connections, and it's beautiful and made my code both better and shorter AND generation much faster

Door Shuffle Update
Door Shuffle is now split into two settings.

  • Shuffle Doors now has the choices "off", "panels", "doors", "mixed". These correspond to 0.4.1 off, panels, complex, max.
  • There is a new option called "Door Groupings" with the choices "off" and "regional". Regional corresponds to the old "doors_simple" setting, except now it can also be paired with "Shuffle Doors: panels" to get ""simple panels"", and it can be paired with "Shuffle Doors: mixed" to get ""simple max"".
  • Shuffle Boat is now its own option instead of being tied to your doors mode.

Other new settings and settings choices

  • Early Caves now has the following choices: "Start with" (which is the old behavior with the Caves Shortcuts item in your starting inventory), and "Add to Pool" which adds the "Caves Shortcuts" item into your itempool instead so you do not necessarily have immediate access to Caves, but don't necessarily need to play a remote doors mode to get to do the Caves either.
  • "More Bridges/Elevators come to you": A lot of elevators and bridges in The Witness automatically come to the player if you walk up to them from another floor / the other side, as to not softlock you. There are some notable exceptions: Quarry Elevator, Bunker Elevator and Swamp Long Bridge. This new setting makes it so those bridges/elevators adopt this behavior as well, allowing new kinds of logical backwards access into their respective areas.

General Features/Changes

  • Non trivial door panels are now in the location pool by default, even if not playing a doors mode.
  • Expanded on the "disabled" system. Any panel type that is excluded due to your settings, e.g. Discards or Vaults, is now considered "disabled". This will visually mark them on the client side and/or make them completely unsolvable (the exact desired behavior is a customisable client-side setting). Also, door items for doors in disabled areas will no longer show up in the item pool.
  • Some items and locations have been renamed.
  • No more duplicate hints, more items added to priority and always hints
  • Many more small changes I forgot by now, like documentation changes, better variable names, better errors etc

Additional things of note

  • Witness now has some inaccessible regions in default settings, which has been addressed in the unit test exclusion list.

There's also several cool new client side changes, mostly for accessibility. :)
A client that is compatible with current seeds & new seeds has been released.

Blastron is seperately also working on some features, so that PR may come soon™ as well.

@NewSoupVi
Copy link
Member Author

NewSoupVi commented Nov 6, 2023

Ok, I'm actually done now, promise. Lol
Everything from here on will be necessary bugfixes / changes you guys ask for
"I need to rewrite this" turned into "wow this is bad too I need to rewrite this as well" turned into "how was this implementation ever allowed in in the first place, time to rip it all out and rewrite most of it"

test/general/test_reachability.py Outdated Show resolved Hide resolved
@ThePhar
Copy link
Member

ThePhar commented Nov 24, 2023

Failures are related to issue awaiting another PR for fix which I'll merge in tomorrow at latest. Going to merge as is as none of failures are related to this PR.

@ThePhar ThePhar merged commit e93842a into ArchipelagoMW:main Nov 24, 2023
8 of 12 checks passed
Jouramie pushed a commit to Jouramie/Archipelago that referenced this pull request Feb 28, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
is: bug/fix Issues that are reporting bugs or pull requests that are fixing bugs. is: enhancement Issues requesting new features or pull requests implementing new features. is: refactor/cleanup Improvements to code/output readability or organizization.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants