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

Outer Wilds: Added "Feldspar Quick Access" logic option #6

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions worlds/outer_wilds/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ def fill_slot_data(self):
"death_link", # a client/mod feature
"goal", "spawn", # affects tons of stuff, but also a client/mod faeture
"logsanity", "enable_eote_dlc", "dlc_only", # changes AP locations, needed by in-game tracker
"feldspar_quick_access", # logic rules change AP location access, needed by in-game tracker
"enable_hn1_mod", "enable_hn2_mod",
"enable_outsider_mod", "enable_ac_mod", "enable_fq_mod",
"split_translator" # changes AP items, and how client/mod implements Translator
Expand Down
10 changes: 8 additions & 2 deletions worlds/outer_wilds/options.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,11 @@ class Logsanity(Toggle):
"""
display_name = "Logsanity"

class FeldsparQuickAccess(Toggle):
"""
There is a method to access Feldspar in a quicker fashion. This option allows for toggling this as a valid "In Logic" path
"""
display_name = "Feldspar Quick Access"

class ShuffleSpacesuit(Toggle):
"""
Expand Down Expand Up @@ -191,7 +196,6 @@ class DLCOnly(Toggle):
"""
display_name = "DLC Only"


class SplitTranslator(Toggle):
"""
Splits the "Translator" item into 6 items: 5 for the main planets and their satellites, plus a
Expand Down Expand Up @@ -245,7 +249,6 @@ class EnableFretsQuestMod(Toggle):
"""
display_name = "Enable Fret's Quest Story Mod"


@dataclass
class OuterWildsGameOptions(PerGameCommonOptions):
start_inventory_from_pool: StartInventoryPool
Expand All @@ -263,6 +266,7 @@ class OuterWildsGameOptions(PerGameCommonOptions):
trap_type_weights: TrapTypeWeights
death_link: DeathLink
logsanity: Logsanity
feldspar_quick_access: FeldsparQuickAccess
shuffle_spacesuit: ShuffleSpacesuit
split_translator: SplitTranslator
enable_hn1_mod: EnableHearthsNeighborMod
Expand All @@ -276,6 +280,8 @@ def get_creation_settings(options: OuterWildsGameOptions) -> Set[str]:
relevant_settings = set()
if options.logsanity.value == 1:
relevant_settings.add("logsanity")
if options.feldspar_quick_access.value == 1:
relevant_settings.add("feldspar_quick_access")
if options.enable_eote_dlc.value == 1:
relevant_settings.add("enable_eote_dlc")
return relevant_settings
5 changes: 4 additions & 1 deletion worlds/outer_wilds/shared_static_logic/connections.jsonc
Original file line number Diff line number Diff line change
Expand Up @@ -84,10 +84,13 @@
// ...or launch a Scout into the DB seed back on TH.
// Since DB can only be reached by Spaceship, we don't need an explicit "can reach TH" condition here.
{ "from": "Dark Bramble", "to": "Feldspar via Scout", "requires": [ { "item": "Scout" } ] },
// ...or if Feldspar Quick Access is enabled
{ "category": "feldspar_quick_access", "from": "Space", "to": "Feldspar via Quick Access", "requires": [ { "item": "Spacesuit" } ] },

// either way you reach the same group of Feldspar-related locations
// any way you reach the same group of Feldspar-related locations
{ "from": "Feldspar via Signal", "to": "Feldspar's Camp", "requires": [] },
{ "from": "Feldspar via Scout", "to": "Feldspar's Camp", "requires": [] },
{ "category": "feldspar_quick_access", "from": "Feldspar via Quick Access", "to": "Feldspar's Camp", "requires": [] },

{ "from": "Dark Bramble", "to": "Nomai Grave", "requires": [
// to follow the Escape Pod 3 signal
Expand Down
Binary file modified worlds/outer_wilds/shared_static_logic/static_logic.pickle
Binary file not shown.
2 changes: 2 additions & 0 deletions worlds/outer_wilds/should_generate.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ def should_generate(category: Optional[str], options: OuterWildsGameOptions) ->
return options.dlc_only.value == 0
elif category == 'dlc': # only generated if enable_eote_dlc is true
return options.enable_eote_dlc.value == 1
elif category == 'feldspar_quick_access': # only generate if logic rule is enabled
return options.feldspar_quick_access.value == 1
elif category == 'hn1':
return options.enable_hn1_mod.value == 1
elif category == 'to':
Expand Down
Loading