Super Mario 64: Option groups (#4161)

* sm64ex: add option groups

* sm64ex: rename sanity options group to item options

* sm64ex: rename sanity options group to logic options

* sm64ex: seperate star costs from goal options and add entrance rando to logic options

* sm64ex: seperate ability options from logic options group
This commit is contained in:
josephwhite 2024-11-28 19:45:26 -05:00 committed by GitHub
parent 1ba7700283
commit faeb54224e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 30 additions and 2 deletions

View File

@ -1,6 +1,6 @@
import typing
from dataclasses import dataclass
from Options import DefaultOnToggle, Range, Toggle, DeathLink, Choice, PerGameCommonOptions, OptionSet
from Options import DefaultOnToggle, Range, Toggle, DeathLink, Choice, PerGameCommonOptions, OptionSet, OptionGroup
from .Items import action_item_table
class EnableCoinStars(DefaultOnToggle):
@ -127,6 +127,32 @@ class MoveRandomizerActions(OptionSet):
valid_keys = [action for action in action_item_table if action != 'Double Jump']
default = valid_keys
sm64_options_groups = [
OptionGroup("Logic Options", [
AreaRandomizer,
BuddyChecks,
ExclamationBoxes,
ProgressiveKeys,
EnableCoinStars,
StrictCapRequirements,
StrictCannonRequirements,
]),
OptionGroup("Ability Options", [
EnableMoveRandomizer,
MoveRandomizerActions,
StrictMoveRequirements,
]),
OptionGroup("Star Options", [
AmountOfStars,
FirstBowserStarDoorCost,
BasementStarDoorCost,
SecondFloorStarDoorCost,
MIPS1Cost,
MIPS2Cost,
StarsToFinish,
]),
]
@dataclass
class SM64Options(PerGameCommonOptions):
area_rando: AreaRandomizer

View File

@ -3,7 +3,7 @@ import os
import json
from .Items import item_table, action_item_table, cannon_item_table, SM64Item
from .Locations import location_table, SM64Location
from .Options import SM64Options
from .Options import sm64_options_groups, SM64Options
from .Rules import set_rules
from .Regions import create_regions, sm64_level_to_entrances, SM64Levels
from BaseClasses import Item, Tutorial, ItemClassification, Region
@ -20,6 +20,8 @@ class SM64Web(WebWorld):
["N00byKing"]
)]
option_groups = sm64_options_groups
class SM64World(World):
"""