diff --git a/worlds/kdl3/Options.py b/worlds/kdl3/Options.py index c09c09deda..9d11b38bf6 100644 --- a/worlds/kdl3/Options.py +++ b/worlds/kdl3/Options.py @@ -1,6 +1,8 @@ import random from dataclasses import dataclass +from typing import List +from BaseClasses import OptionGroup from Options import DeathLinkMixin, Choice, Toggle, OptionDict, Range, PlandoBosses, DefaultOnToggle, \ PerGameCommonOptions from .Names import LocationName @@ -440,3 +442,15 @@ class KDL3Options(PerGameCommonOptions, DeathLinkMixin): gooey_flavor: GooeyFlavor music_shuffle: MusicShuffle virtual_console: VirtualConsoleChanges + + +kdl3_option_groups: List[OptionGroup] = [ + OptionGroup("Goal Options", [Goal, GoalSpeed, TotalHeartStars, HeartStarsRequired, JumpingTarget, ]), + OptionGroup("World Options", [RemoteItems, StrictBosses, OpenWorld, OpenWorldBossRequirement, ConsumableChecks, + StarChecks, FillerPercentage, TrapPercentage, GooeyTrapPercentage, + SlowTrapPercentage, AbilityTrapPercentage, LevelShuffle, BossShuffle, + AnimalRandomization, CopyAbilityRandomization, BossRequirementRandom, + Gifting, ]), + OptionGroup("Cosmetic Options", [GameLanguage, BossShuffleAllowBB, KirbyFlavorPreset, KirbyFlavor, + GooeyFlavorPreset, GooeyFlavor, MusicShuffle, VirtualConsoleChanges, ]), +] diff --git a/worlds/kdl3/Presets.py b/worlds/kdl3/Presets.py index d3a7146ded..491ad9dca9 100644 --- a/worlds/kdl3/Presets.py +++ b/worlds/kdl3/Presets.py @@ -25,6 +25,7 @@ all_random = { "ow_boss_requirement": "random", "boss_requirement_random": "random", "consumables": "random", + "starsanity": "random", "kirby_flavor_preset": "random", "gooey_flavor_preset": "random", "music_shuffle": "random", diff --git a/worlds/kdl3/__init__.py b/worlds/kdl3/__init__.py index d02ca7af77..716d7e31e6 100644 --- a/worlds/kdl3/__init__.py +++ b/worlds/kdl3/__init__.py @@ -12,7 +12,7 @@ from .Locations import location_table, KDL3Location, level_consumables, consumab from .Names.AnimalFriendSpawns import animal_friend_spawns from .Names.EnemyAbilities import vanilla_enemies, enemy_mapping, enemy_restrictive from .Regions import create_levels, default_levels -from .Options import KDL3Options +from .Options import KDL3Options, kdl3_option_groups from .Presets import kdl3_options_presets from .Names import LocationName from .Room import KDL3Room @@ -54,6 +54,7 @@ class KDL3WebWorld(WebWorld): ) ] options_presets = kdl3_options_presets + option_groups = kdl3_option_groups class KDL3World(World):