62 lines
2.0 KiB
Python
62 lines
2.0 KiB
Python
|
from dataclasses import dataclass
|
||
|
|
||
|
from Options import Choice, DefaultOnToggle, PerGameCommonOptions, Toggle
|
||
|
|
||
|
|
||
|
class Goal(Choice):
|
||
|
"""
|
||
|
Determines the victory condition
|
||
|
|
||
|
Three Artifacts: Retrieve the three artifacts of magic and place them in the walking castle
|
||
|
"""
|
||
|
display_name: str = "Goal"
|
||
|
|
||
|
default: int = 0
|
||
|
option_three_artifacts: int = 0
|
||
|
|
||
|
|
||
|
class QuickPortFoozle(DefaultOnToggle):
|
||
|
"""If true, the items needed to go down the well will be found in early locations for a smoother early game"""
|
||
|
|
||
|
display_name: str = "Quick Port Foozle"
|
||
|
|
||
|
|
||
|
class StartWithHotspotItems(DefaultOnToggle):
|
||
|
"""
|
||
|
If true, the player will be given all the hotspot items at the start of the game, effectively removing the need
|
||
|
to enable the important hotspots in the game before interacting with them. Recommended for beginners
|
||
|
|
||
|
Note: The spots these hotspot items would have occupied in the item pool will instead be filled with junk items.
|
||
|
Expect a higher volume of filler items if you enable this option
|
||
|
"""
|
||
|
|
||
|
display_name: str = "Start with Hotspot Items"
|
||
|
|
||
|
|
||
|
class Deathsanity(Toggle):
|
||
|
"""If true, adds 16 player death locations to the world"""
|
||
|
|
||
|
display_name: str = "Deathsanity"
|
||
|
|
||
|
|
||
|
class GrantMissableLocationChecks(Toggle):
|
||
|
"""
|
||
|
If true, performing an irreversible action will grant the locations checks that would have become unobtainable as a
|
||
|
result of that action when you meet the item requirements
|
||
|
|
||
|
Otherwise, the player is expected to potentially have to use the save system to reach those location checks. If you
|
||
|
don't like the idea of rarely having to reload an earlier save to get a location check, make sure this option is
|
||
|
enabled
|
||
|
"""
|
||
|
|
||
|
display_name: str = "Grant Missable Checks"
|
||
|
|
||
|
|
||
|
@dataclass
|
||
|
class ZorkGrandInquisitorOptions(PerGameCommonOptions):
|
||
|
goal: Goal
|
||
|
quick_port_foozle: QuickPortFoozle
|
||
|
start_with_hotspot_items: StartWithHotspotItems
|
||
|
deathsanity: Deathsanity
|
||
|
grant_missable_location_checks: GrantMissableLocationChecks
|