The Witness: Automatic Postgame & Disabled Panels Calculation (#2698)

* Refactor postgame code to be more readable

* Change all references to options to strings

* oops

* Fix some outdated code related to yaml-disabled EPs

* Small fixes to short/longbox stuff (thanks Medic)

* comment

* fix duplicate

* Removed triplicate lmfao

* Better comment

* added another 'unfun' postgame consideration

* comment

* more option strings

* oops

* Remove an unnecessary comparison

* another string missed

* New classification changes (Credit: Exempt-Medic)

* Don't need to pass world

* Comments

* Replace it with another magic system because why not at this point :DDDDDD

* oops

* Oops

* Another was missed

* Make events conditions. Disable_Non_Randomized will no longer just 'have all events'

* What the fuck? Has this just always been broken?

* Don't have boolean function with 'not' in the name

* Another useful classification

* slight code refactor

* Funny haha booleans

* This would create a really bad merge error

* I can't believe this actually kind of works

* And here's the punchline. + some bugfixes

* Comment dat code

* Comments galore

* LMAO OOPS

* so nice I did it twice

* debug x2

* Careful

* Add more comments

* That comment is a bit unnecessary now

* Fix overriding region connections

* Correct a comment

* Correct again

* Rename variable

* Idk I guess this is in this branch now

* More tweaking of postgame & comments

* This is commit just exists to fix that grammar error

* I think I can just fucking delete this now???

* Forgot to reset something here

* Delete dead codepath

* Obelisk Keys were getting yote erroneously

* More comments

* Fix duplicate connections

* Oopsington III

* performance improvements & cleanup

* More rules cleanup and performance improvements

* Oh cool I can do this huh

* Okay but this is even more swag tho

* Lazy eval

* remove some implicit checks

* Is this too magical yet

* more guard magic

* Maaaaaaaagiccccccccc

* Laaaaaaaaaaaaaaaazzzzzzyyyyyyyyyyy

* Make it docstring

* Newline bc I like that better

* this is a little spooky lol

* lol

* Wait

* spoO

* Better variable name and comment

* Improved comment again

* better API

* oops I deleted a deepcopy

* lol help

* Help???

* player_regionsns lmao

* Add some comments

* Make doors disabled properly again. I hope this works

* Don't disable lasers

* Omega oops

* Make Floor 2 Exit not exist

* Make a fix that's warps compatible

* I think this was an oversight, I tested a seed and it seems to have the same result

* This is definitely less Violet than before

* Does this feel more violet lol

* Exception if a laser gets disabled, cleanup

* Ruff

* >:(

* consistent utils import

* Make autopostgame more reviewable (hopefully)

* more reviewability

* WitnessRule

* replace another instance of it

* lint

* style

* comment

* found the bug

* Move comment

* Get rid of cache and ugly allow_victory

* comments and lint
This commit is contained in:
NewSoupVi
2024-06-01 23:11:28 +02:00
committed by GitHub
parent da33d1576a
commit e49b1f9fbb
19 changed files with 643 additions and 518 deletions

View File

@@ -134,17 +134,3 @@ Disabled Locations:
0x17E67 (Bunker UV Room 2)
0x09DE0 (Bunker Laser)
0x0A079 (Bunker Elevator Control)
0x034A7 (Monastery Left Shutter EP)
0x034AD (Monastery Middle Shutter EP)
0x034AF (Monastery Right Shutter EP)
0x339B6 (Theater Eclipse EP)
0x33A29 (Theater Window EP)
0x33A2A (Theater Door EP)
0x33B06 (Theater Church EP)
0x3352F (Tutorial Gate EP)
0x33600 (Tutorial Patio Flowers EP)
0x035F5 (Bunker Tinted Door EP)
0x000D3 (Bunker Green Room Flowers EP)
0x33A20 (Theater Flowers EP)
0x03BE2 (Monastery Garden Left EP)

View File

@@ -1,31 +1,8 @@
Disabled Locations:
0x033D4 (Outside Tutorial Vault)
0x03481 (Outside Tutorial Vault Box)
0x033D0 (Outside Tutorial Vault Door)
0x0CC7B (Desert Vault)
0x0339E (Desert Vault Box)
0x03444 (Desert Vault Door)
0x00AFB (Shipwreck Vault)
0x03535 (Shipwreck Vault Box)
0x17BB4 (Shipwreck Vault Door)
0x15ADD (Jungle Vault)
0x03702 (Jungle Vault Box)
0x15287 (Jungle Vault Door)
0x002A6 (Mountainside Vault)
0x03542 (Mountainside Vault Box)
0x00085 (Mountainside Vault Door)
0x2FAF6 (Tunnels Vault Box)
0x00815 (Theater Video Input)
0x03553 (Theater Tutorial Video)
0x03552 (Theater Desert Video)
0x0354E (Theater Jungle Video)
0x03549 (Theater Challenge Video)
0x0354F (Theater Shipwreck Video)
0x03545 (Theater Mountain Video)
0x03505 (Tutorial Gate Close)
0x339B6 (Theater clipse EP)
0x33A29 (Theater Window EP)
0x33A2A (Theater Door EP)
0x33B06 (Theater Church EP)
0x33A20 (Theater Flowers EP)
0x3352F (Tutorial Gate EP)

View File

@@ -1,4 +0,0 @@
Disabled Locations:
0x03549 (Challenge Video)
0x339B6 (Eclipse EP)

View File

@@ -1,2 +0,0 @@
Disabled Locations:
0x17FA2 (Mountain Bottom Floor Discard)

View File

@@ -1,6 +0,0 @@
Disabled Locations:
0x17FA2 (Mountain Bottom Floor Discard)
0x17F33 (Rock Open Door)
0x00FF8 (Caves Entry Panel)
0x334E1 (Rock Control)
0x2D77D (Caves Entry Door)

View File

@@ -1,22 +0,0 @@
Disabled Locations:
0x0356B (Challenge Vault Box)
0x04D75 (Vault Door)
0x0A332 (Start Timer)
0x0088E (Small Basic)
0x00BAF (Big Basic)
0x00BF3 (Square)
0x00C09 (Maze Map)
0x00CDB (Stars and Dots)
0x0051F (Symmetry)
0x00524 (Stars and Shapers)
0x00CD4 (Big Basic 2)
0x00CB9 (Choice Squares Right)
0x00CA1 (Choice Squares Middle)
0x00C80 (Choice Squares Left)
0x00C68 (Choice Squares 2 Right)
0x00C59 (Choice Squares 2 Middle)
0x00C22 (Choice Squares 2 Left)
0x034F4 (Maze Hidden 1)
0x034EC (Maze Hidden 2)
0x1C31A (Dots Pillar)
0x1C319 (Squares Pillar)

View File

@@ -1,27 +0,0 @@
Disabled Locations:
0x17F93 (Elevator Discard)
0x09EEB (Elevator Control Panel)
0x09FC1 (Giant Puzzle Bottom Left)
0x09F8E (Giant Puzzle Bottom Right)
0x09F01 (Giant Puzzle Top Right)
0x09EFF (Giant Puzzle Top Left)
0x09FDA (Giant Puzzle)
0x09F89 (Exit Door)
0x01983 (Pillars Room Entry Left)
0x01987 (Pillars Room Entry Right)
0x0C141 (Pillars Room Entry Door)
0x0383A (Right Pillar 1)
0x09E56 (Right Pillar 2)
0x09E5A (Right Pillar 3)
0x33961 (Right Pillar 4)
0x0383D (Left Pillar 1)
0x0383F (Left Pillar 2)
0x03859 (Left Pillar 3)
0x339BB (Left Pillar 4)
0x3D9A6 (Elevator Door Closer Left)
0x3D9A7 (Elevator Door Close Right)
0x3C113 (Elevator Entry Left)
0x3C114 (Elevator Entry Right)
0x3D9AA (Back Wall Left)
0x3D9A8 (Back Wall Right)
0x3D9A9 (Elevator Start)

View File

@@ -1,41 +0,0 @@
Disabled Locations:
0x17C34 (Mountain Entry Panel)
0x09E39 (Light Bridge Controller)
0x09E7A (Right Row 1)
0x09E71 (Right Row 2)
0x09E72 (Right Row 3)
0x09E69 (Right Row 4)
0x09E7B (Right Row 5)
0x09E73 (Left Row 1)
0x09E75 (Left Row 2)
0x09E78 (Left Row 3)
0x09E79 (Left Row 4)
0x09E6C (Left Row 5)
0x09E6F (Left Row 6)
0x09E6B (Left Row 7)
0x33AF5 (Back Row 1)
0x33AF7 (Back Row 2)
0x09F6E (Back Row 3)
0x09EAD (Trash Pillar 1)
0x09EAF (Trash Pillar 2)
0x09E54 (Mountain Floor 1 Exit Door)
0x09FD3 (Near Row 1)
0x09FD4 (Near Row 2)
0x09FD6 (Near Row 3)
0x09FD7 (Near Row 4)
0x09FD8 (Near Row 5)
0x09FFB (Staircase Near Door)
0x09EDD (Elevator Room Entry Door)
0x09E86 (Light Bridge Controller Near)
0x09FCC (Far Row 1)
0x09FCE (Far Row 2)
0x09FCF (Far Row 3)
0x09FD0 (Far Row 4)
0x09FD1 (Far Row 5)
0x09FD2 (Far Row 6)
0x09E07 (Staircase Far Door)
0x09ED8 (Light Bridge Controller Far)
0x09D63 (Pink Bridge EP)
0x09D5D (Yellow Bridge EP)
0x09D5E (Blue Bridge EP)

View File

@@ -1,30 +0,0 @@
Disabled Locations:
0x0356B (Vault Box)
0x04D75 (Vault Door)
0x17F33 (Rock Open Door)
0x00FF8 (Caves Entry Panel)
0x334E1 (Rock Control)
0x2D77D (Caves Entry Door)
0x09DD5 (Lone Pillar)
0x019A5 (Caves Pillar Door)
0x0A16E (Challenge Entry Panel)
0x0A19A (Challenge Entry Door)
0x0A332 (Start Timer)
0x0088E (Small Basic)
0x00BAF (Big Basic)
0x00BF3 (Square)
0x00C09 (Maze Map)
0x00CDB (Stars and Dots)
0x0051F (Symmetry)
0x00524 (Stars and Shapers)
0x00CD4 (Big Basic 2)
0x00CB9 (Choice Squares Right)
0x00CA1 (Choice Squares Middle)
0x00C80 (Choice Squares Left)
0x00C68 (Choice Squares 2 Right)
0x00C59 (Choice Squares 2 Middle)
0x00C22 (Choice Squares 2 Left)
0x034F4 (Maze Hidden 1)
0x034EC (Maze Hidden 2)
0x1C31A (Dots Pillar)
0x1C319 (Squares Pillar)