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:
parent
7fdf38b2ad
commit
b1599c557f
|
@ -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,
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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)
|
Loading…
Reference in New Issue