DKC3: Option Groups (#3322)

* DKC3: Option Groups

* Retarget OptionGroup import
This commit is contained in:
PoryGone 2024-05-21 18:19:37 -04:00 committed by GitHub
parent 61be79b7ea
commit a1c2e8715e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 43 additions and 15 deletions

View File

@ -1,13 +1,15 @@
from dataclasses import dataclass
import typing
from Options import Choice, Range, Option, Toggle, DeathLink, DefaultOnToggle, OptionList, PerGameCommonOptions
from Options import Choice, Range, Toggle, DeathLink, DefaultOnToggle, OptionGroup, PerGameCommonOptions
class Goal(Choice):
"""
Determines the goal of the seed
Knautilus: Scuttle the Knautilus in Krematoa and defeat Baron K. Roolenstein
Banana Bird Hunt: Find a certain number of Banana Birds and rescue their mother
"""
display_name = "Goal"
@ -26,6 +28,7 @@ class IncludeTradeSequence(Toggle):
class DKCoinsForGyrocopter(Range):
"""
How many DK Coins are needed to unlock the Gyrocopter
Note: Achieving this number before unlocking the Turbo Ski will cause the game to grant you a
one-time upgrade to the next non-unlocked boat, until you return to Funky. Logic does not assume
that you will use this.
@ -93,6 +96,7 @@ class LevelShuffle(Toggle):
class Difficulty(Choice):
"""
Which Difficulty Level to use
NORML: The Normal Difficulty
HARDR: Many DK Barrels are removed
TUFST: Most DK Barrels and all Midway Barrels are removed
@ -159,19 +163,40 @@ class StartingLifeCount(Range):
default = 5
dkc3_option_groups = [
OptionGroup("Goal Options", [
Goal,
KrematoaBonusCoinCost,
PercentageOfExtraBonusCoins,
NumberOfBananaBirds,
PercentageOfBananaBirds,
]),
OptionGroup("Aesthetics", [
Autosave,
MERRY,
MusicShuffle,
KongPaletteSwap,
StartingLifeCount,
]),
]
@dataclass
class DKC3Options(PerGameCommonOptions):
#death_link: DeathLink # Disabled
goal: Goal
#include_trade_sequence: IncludeTradeSequence # Disabled
dk_coins_for_gyrocopter: DKCoinsForGyrocopter
goal: Goal
krematoa_bonus_coin_cost: KrematoaBonusCoinCost
percentage_of_extra_bonus_coins: PercentageOfExtraBonusCoins
number_of_banana_birds: NumberOfBananaBirds
percentage_of_banana_birds: PercentageOfBananaBirds
dk_coins_for_gyrocopter: DKCoinsForGyrocopter
kongsanity: KONGsanity
level_shuffle: LevelShuffle
difficulty: Difficulty
autosave: Autosave
merry: MERRY
music_shuffle: MusicShuffle

View File

@ -4,20 +4,21 @@ import typing
import math
import threading
import settings
from BaseClasses import Item, MultiWorld, Tutorial, ItemClassification
from Options import PerGameCommonOptions
from .Items import DKC3Item, ItemData, item_table, inventory_table, junk_table
from .Locations import DKC3Location, all_locations, setup_locations
from .Options import DKC3Options
from .Regions import create_regions, connect_regions
from .Levels import level_list
from .Rules import set_rules
from .Names import ItemName, LocationName
from .Client import DKC3SNIClient
from worlds.AutoWorld import WebWorld, World
from .Rom import LocalRom, patch_rom, get_base_rom_path, DKC3DeltaPatch
import Patch
import settings
from worlds.AutoWorld import WebWorld, World
from .Client import DKC3SNIClient
from .Items import DKC3Item, ItemData, item_table, inventory_table, junk_table
from .Levels import level_list
from .Locations import DKC3Location, all_locations, setup_locations
from .Names import ItemName, LocationName
from .Options import DKC3Options, dkc3_option_groups
from .Regions import create_regions, connect_regions
from .Rom import LocalRom, patch_rom, get_base_rom_path, DKC3DeltaPatch
from .Rules import set_rules
class DK3Settings(settings.Group):
@ -41,9 +42,11 @@ class DKC3Web(WebWorld):
"setup/en",
["PoryGone"]
)
tutorials = [setup_en]
option_groups = dkc3_option_groups
class DKC3World(World):
"""