The Witness: Death Link + Small bug fixes (#1515)

* Fully functional DeathLink implementation. But it's always on right now :D

* Death Link options. Last commit: All entity names being sent through slot_data

* Tutorial Gate Close logic fix

* Improved option tooltip wording

* Fixed shuffle_postgame: false not excluding some locations

* Link to latest stable client rather than full releases page
This commit is contained in:
NewSoupVi 2023-03-10 07:58:00 +01:00 committed by GitHub
parent 7fdf38b2ad
commit b1599c557f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 22 additions and 12 deletions

View File

@ -158,6 +158,12 @@ class HintAmount(Range):
default = 10
class DeathLink(Toggle):
"""If on: Whenever you fail a puzzle (with some exceptions), everyone who is also on Death Link dies.
The effect of a "death" in The Witness is a Power Surge."""
display_name = "Death Link"
the_witness_options: Dict[str, type] = {
"puzzle_randomization": PuzzleRandomization,
"shuffle_symbols": ShuffleSymbols,
@ -176,6 +182,7 @@ the_witness_options: Dict[str, type] = {
"trap_percentage": TrapPercentage,
"puzzle_skip_amount": PuzzleSkipAmount,
"hint_amount": HintAmount,
"death_link": DeathLink,
}

View File

@ -14,7 +14,7 @@ Tutorial (Tutorial) - Outside Tutorial - 0x03629:
158005 - 0x0A3B5 (Back Left) - True - True
158006 - 0x0A3B2 (Back Right) - True - True
158007 - 0x03629 (Gate Open) - 0x002C2 & 0x0A3B5 & 0x0A3B2 - True
158008 - 0x03505 (Gate Close) - 0x2FAF6 - True
158008 - 0x03505 (Gate Close) - 0x2FAF6 & 0x03629 - True
158009 - 0x0C335 (Pillar) - True - Triangles
158010 - 0x0C373 (Patio Floor) - 0x0C335 - Dots
159512 - 0x33530 (Cloud EP) - True - True

View File

@ -14,7 +14,7 @@ Tutorial (Tutorial) - Outside Tutorial - True:
158005 - 0x0A3B5 (Back Left) - True - Dots & Full Dots
158006 - 0x0A3B2 (Back Right) - True - Dots & Full Dots
158007 - 0x03629 (Gate Open) - 0x002C2 - Symmetry & Dots
158008 - 0x03505 (Gate Close) - 0x2FAF6 - False
158008 - 0x03505 (Gate Close) - 0x2FAF6 & 0x03629 - False
158009 - 0x0C335 (Pillar) - True - Triangles
158010 - 0x0C373 (Patio Floor) - 0x0C335 - Dots
159512 - 0x33530 (Cloud EP) - True - True

View File

@ -14,7 +14,7 @@ Tutorial (Tutorial) - Outside Tutorial - 0x03629:
158005 - 0x0A3B5 (Back Left) - True - True
158006 - 0x0A3B2 (Back Right) - True - True
158007 - 0x03629 (Gate Open) - 0x002C2 & 0x0A3B5 & 0x0A3B2 - True
158008 - 0x03505 (Gate Close) - 0x2FAF6 - True
158008 - 0x03505 (Gate Close) - 0x2FAF6 & 0x03629 - True
158009 - 0x0C335 (Pillar) - True - Triangles - True
158010 - 0x0C373 (Patio Floor) - 0x0C335 - Dots
159512 - 0x33530 (Cloud EP) - True - True

View File

@ -67,7 +67,7 @@ class WitnessWorld(World):
'progressive_item_lists': self.items.MULTI_LISTS_BY_CODE,
'obelisk_side_id_to_EPs': self.static_logic.OBELISK_SIDE_ID_TO_EP_HEXES,
'precompleted_puzzles': {int(h, 16) for h in self.player_logic.PRECOMPLETED_LOCATIONS},
'ep_to_name': self.static_logic.EP_ID_TO_NAME,
'entity_to_name': self.static_logic.ENTITY_ID_TO_NAME,
}
def generate_early(self):

View File

@ -3,7 +3,7 @@
## Required Software
- [The Witness for 64-bit Windows (e.g. Steam version)](https://store.steampowered.com/app/210970/The_Witness/)
- [The Witness Archipelago Randomizer](https://github.com/NewSoupVi/The-Witness-Randomizer-for-Archipelago/releases)
- [The Witness Archipelago Randomizer](https://github.com/NewSoupVi/The-Witness-Randomizer-for-Archipelago/releases/latest)
## Optional Software
@ -14,7 +14,7 @@
1. Launch The Witness
2. Start a fresh save
3. Launch [The Witness Archipelago Randomizer](https://github.com/NewSoupVi/The-Witness-Randomizer-for-Archipelago)
3. Launch [The Witness Archipelago Randomizer](https://github.com/NewSoupVi/The-Witness-Randomizer-for-Archipelago/releases/latest)
4. Enter the Archipelago address, slot name and password
5. Press "Connect"
6. Enjoy!
@ -23,7 +23,7 @@ To continue an earlier game:
1. Launch The Witness
2. Load the save you last played this world on, if it's not the one you loaded into automatically
3. Launch [The Witness Archipelago Randomizer](https://github.com/NewSoupVi/The-Witness-Randomizer-for-Archipelago)
3. Launch [The Witness Archipelago Randomizer](https://github.com/NewSoupVi/The-Witness-Randomizer-for-Archipelago/releases/latest)
4. Press "Load Credentials" (or type them in manually)
5. Press "Connect"

View File

@ -387,6 +387,9 @@ class StaticWitnessLocations:
"Mountain Floor 2 Near Row 5",
"Mountain Floor 2 Far Row 6",
"Mountain Floor 2 Light Bridge Controller Near",
"Mountain Floor 2 Light Bridge Controller Far",
"Mountain Bottom Floor Yellow Bridge EP",
"Mountain Bottom Floor Blue Bridge EP",
"Mountain Floor 2 Pink Bridge EP",

View File

@ -81,8 +81,6 @@ class StaticWitnessLogicObj:
full_check_name = check_name
elif "EP" in check_name:
location_type = "EP"
self.EP_ID_TO_NAME[check_hex] = full_check_name
else:
location_type = "General"
@ -114,6 +112,8 @@ class StaticWitnessLogicObj:
"panelType": location_type
}
self.ENTITY_ID_TO_NAME[check_hex] = full_check_name
self.CHECKS_BY_NAME[self.CHECKS_BY_HEX[check_hex]["checkName"]] = self.CHECKS_BY_HEX[check_hex]
self.STATIC_DEPENDENT_REQUIREMENTS_BY_HEX[check_hex] = requirement
@ -132,7 +132,7 @@ class StaticWitnessLogicObj:
self.EP_TO_OBELISK_SIDE = dict()
self.EP_ID_TO_NAME = dict()
self.ENTITY_ID_TO_NAME = dict()
self.read_logic_file(file_path)
@ -159,7 +159,7 @@ class StaticWitnessLogic:
EP_TO_OBELISK_SIDE = dict()
EP_ID_TO_NAME = dict()
ENTITY_ID_TO_NAME = dict()
def parse_items(self):
"""
@ -235,4 +235,4 @@ class StaticWitnessLogic:
self.EP_TO_OBELISK_SIDE.update(self.sigma_normal.EP_TO_OBELISK_SIDE)
self.EP_ID_TO_NAME.update(self.sigma_normal.EP_ID_TO_NAME)
self.ENTITY_ID_TO_NAME.update(self.sigma_normal.ENTITY_ID_TO_NAME)