Subnautica: add free samples option

This commit is contained in:
Fabian Dill 2023-04-24 15:49:19 +02:00 committed by Fabian Dill
parent b704070de5
commit 9d40471dee
2 changed files with 10 additions and 2 deletions

View File

@ -1,6 +1,6 @@
import typing import typing
from Options import Choice, Range, DeathLink, DefaultOnToggle, StartInventoryPool from Options import Choice, Range, DeathLink, Toggle, DefaultOnToggle, StartInventoryPool
from .Creatures import all_creatures, Definitions from .Creatures import all_creatures, Definitions
@ -35,6 +35,12 @@ class EarlySeaglide(DefaultOnToggle):
display_name = "Early Seaglide" display_name = "Early Seaglide"
class FreeSamples(Toggle):
"""Get free items with your blueprints.
Items that can go into your inventory are awarded when you unlock their blueprint through Archipelago."""
display_name = "Free Samples"
class Goal(Choice): class Goal(Choice):
"""Goal to complete. """Goal to complete.
Launch: Leave the planet. Launch: Leave the planet.
@ -100,6 +106,7 @@ class SubnauticaDeathLink(DeathLink):
options = { options = {
"swim_rule": SwimRule, "swim_rule": SwimRule,
"early_seaglide": EarlySeaglide, "early_seaglide": EarlySeaglide,
"free_samples": FreeSamples,
"goal": Goal, "goal": Goal,
"creature_scans": CreatureScans, "creature_scans": CreatureScans,
"creature_scan_logic": AggressiveScanLogic, "creature_scan_logic": AggressiveScanLogic,

View File

@ -45,7 +45,7 @@ class SubnauticaWorld(World):
option_definitions = Options.options option_definitions = Options.options
data_version = 9 data_version = 9
required_client_version = (0, 3, 9) required_client_version = (0, 4, 0)
creatures_to_scan: List[str] creatures_to_scan: List[str]
@ -129,6 +129,7 @@ class SubnauticaWorld(World):
"vanilla_tech": vanilla_tech, "vanilla_tech": vanilla_tech,
"creatures_to_scan": self.creatures_to_scan, "creatures_to_scan": self.creatures_to_scan,
"death_link": self.multiworld.death_link[self.player].value, "death_link": self.multiworld.death_link[self.player].value,
"free_samples": self.multiworld.free_samples[self.player].value,
} }
return slot_data return slot_data