133 lines
3.3 KiB
Python
133 lines
3.3 KiB
Python
import typing
|
|
|
|
from Options import Choice, Range, Option, Toggle, DeathLink, DefaultOnToggle, OptionList
|
|
|
|
|
|
class Goal(Choice):
|
|
"""
|
|
Determines the goal of the seed
|
|
Knautilus: Reach the Knautilus and defeat Baron K. Roolenstein
|
|
Banana Bird Hunt: Find a certain number of Banana Birds and rescue their mother
|
|
"""
|
|
display_name = "Goal"
|
|
option_knautilus = 0
|
|
option_banana_bird_hunt = 1
|
|
default = 0
|
|
|
|
|
|
class IncludeTradeSequence(Toggle):
|
|
"""
|
|
Allows logic to place items at the various steps of the trade sequence
|
|
"""
|
|
display_name = "Include Trade Sequence"
|
|
|
|
|
|
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.
|
|
"""
|
|
display_name = "DK Coins for Gyrocopter"
|
|
range_start = 10
|
|
range_end = 41
|
|
default = 30
|
|
|
|
|
|
class KrematoaBonusCoinCost(Range):
|
|
"""
|
|
How many Bonus Coins are needed to unlock each level in Krematoa
|
|
"""
|
|
display_name = "Krematoa Bonus Coins Cost"
|
|
range_start = 1
|
|
range_end = 17
|
|
default = 15
|
|
|
|
|
|
class PercentageOfExtraBonusCoins(Range):
|
|
"""
|
|
What Percentage of unneeded Bonus Coins are included in the item pool
|
|
"""
|
|
display_name = "Percentage of Extra Bonus Coins"
|
|
range_start = 0
|
|
range_end = 100
|
|
default = 100
|
|
|
|
|
|
class NumberOfBananaBirds(Range):
|
|
"""
|
|
How many Banana Birds are put into the item pool
|
|
"""
|
|
display_name = "Number of Banana Birds"
|
|
range_start = 5
|
|
range_end = 15
|
|
default = 15
|
|
|
|
|
|
class PercentageOfBananaBirds(Range):
|
|
"""
|
|
What Percentage of Banana Birds in the item pool are required for Banana Bird Hunt
|
|
"""
|
|
display_name = "Percentage of Banana Birds"
|
|
range_start = 20
|
|
range_end = 100
|
|
default = 100
|
|
|
|
|
|
class LevelShuffle(Toggle):
|
|
"""
|
|
Whether levels are shuffled
|
|
"""
|
|
display_name = "Level Shuffle"
|
|
|
|
|
|
class MusicShuffle(Toggle):
|
|
"""
|
|
Whether music is shuffled
|
|
"""
|
|
display_name = "Music Shuffle"
|
|
|
|
|
|
class KongPaletteSwap(Choice):
|
|
"""
|
|
Which Palette to use for the Kongs
|
|
"""
|
|
display_name = "Kong Palette Swap"
|
|
option_default = 0
|
|
option_purple = 1
|
|
option_spooky = 2
|
|
option_dark = 3
|
|
option_chocolate = 4
|
|
option_shadow = 5
|
|
option_red_gold = 6
|
|
option_gbc = 7
|
|
option_halloween = 8
|
|
default = 0
|
|
|
|
|
|
class StartingLifeCount(Range):
|
|
"""
|
|
How many extra lives to start the game with
|
|
"""
|
|
display_name = "Starting Life Count"
|
|
range_start = 1
|
|
range_end = 99
|
|
default = 5
|
|
|
|
|
|
dkc3_options: typing.Dict[str, type(Option)] = {
|
|
#"death_link": DeathLink, # Disabled
|
|
"goal": Goal,
|
|
#"include_trade_sequence": IncludeTradeSequence, # Disabled
|
|
"dk_coins_for_gyrocopter": DKCoinsForGyrocopter,
|
|
"krematoa_bonus_coin_cost": KrematoaBonusCoinCost,
|
|
"percentage_of_extra_bonus_coins": PercentageOfExtraBonusCoins,
|
|
"number_of_banana_birds": NumberOfBananaBirds,
|
|
"percentage_of_banana_birds": PercentageOfBananaBirds,
|
|
"level_shuffle": LevelShuffle,
|
|
"music_shuffle": MusicShuffle,
|
|
"kong_palette_swap": KongPaletteSwap,
|
|
"starting_life_count": StartingLifeCount,
|
|
}
|