forked from NikolajDanger/APSly3
130 lines
2.4 KiB
Python
130 lines
2.4 KiB
Python
from Options import (
|
|
DeathLink,
|
|
StartInventoryPool,
|
|
PerGameCommonOptions,
|
|
Choice,
|
|
Toggle,
|
|
DefaultOnToggle,
|
|
Range,
|
|
OptionGroup
|
|
)
|
|
from dataclasses import dataclass
|
|
|
|
class StartingEpisode(Choice):
|
|
"""
|
|
Select Which episode to start with.
|
|
"""
|
|
|
|
display_name = "Starting Episode"
|
|
option_An_Opera_of_Fear = 0
|
|
option_Rumble_Down_Under = 1
|
|
option_Flight_of_Fancy = 2
|
|
option_A_Cold_Alliance = 3
|
|
option_Dead_Men_Tell_No_Tales = 4
|
|
default = 0
|
|
|
|
class Goal(Choice):
|
|
"""
|
|
Which boss you must defeat to goal.
|
|
"""
|
|
display_name = "Goal"
|
|
option_Don_Octavio = 0
|
|
option_Dark_Mask = 1
|
|
option_Black_Baron = 2
|
|
option_General_Tsao = 3
|
|
option_Captain_LeFwee = 4
|
|
option_Dr_M = 5
|
|
option_All_Bosses = 6
|
|
default = 5
|
|
|
|
|
|
class IncludeMegaJump(Toggle):
|
|
"""
|
|
Add the Mega Jump ability to the pool.
|
|
"""
|
|
|
|
display_name = "Include Mega Jump"
|
|
|
|
|
|
class CoinsMinimum(Range):
|
|
"""
|
|
The minimum number of coins you'll receive when you get a "Coins" filler
|
|
item.
|
|
"""
|
|
|
|
display_name = "Coins Minimum"
|
|
range_start = 0
|
|
range_end = 1000
|
|
default = 50
|
|
|
|
|
|
class CoinsMaximum(Range):
|
|
"""
|
|
The maximum number of coins you'll receive when you get a "Coins" filler
|
|
item.
|
|
"""
|
|
|
|
display_name = "Coins Maximum"
|
|
range_start = 0
|
|
range_end = 1000
|
|
default = 200
|
|
|
|
class ThiefNetLocations(Range):
|
|
"""
|
|
The number ThiefNet locations.
|
|
"""
|
|
|
|
display_name = "ThiefNet Locations"
|
|
range_start = 0
|
|
range_end = 37
|
|
default = 25
|
|
|
|
class ThiefNetCostMinimum(Range):
|
|
"""
|
|
The minimum number of coins items on ThiefNet will cost.
|
|
"""
|
|
|
|
display_name = "ThiefNet Cost Minimum"
|
|
range_start = 0
|
|
range_end = 9999
|
|
default = 200
|
|
|
|
|
|
class ThiefNetCostMaximum(Range):
|
|
"""
|
|
The maximum number of coins items on ThiefNet will cost.
|
|
"""
|
|
|
|
display_name = "ThiefNet Cost Maximum"
|
|
range_start = 0
|
|
range_end = 9999
|
|
default = 2000
|
|
|
|
@dataclass
|
|
class Sly3Options(PerGameCommonOptions):
|
|
start_inventory_from_pool: StartInventoryPool
|
|
death_link: DeathLink
|
|
starting_episode: StartingEpisode
|
|
goal: Goal
|
|
include_mega_jump: IncludeMegaJump
|
|
coins_minimum: CoinsMinimum
|
|
coins_maximum: CoinsMaximum
|
|
thiefnet_locations: ThiefNetLocations
|
|
thiefnet_minimum: ThiefNetCostMinimum
|
|
thiefnet_maximum: ThiefNetCostMaximum
|
|
|
|
sly3_option_groups = [
|
|
OptionGroup("Goal",[
|
|
Goal
|
|
]),
|
|
OptionGroup("Items",[
|
|
IncludeMegaJump,
|
|
CoinsMinimum,
|
|
CoinsMaximum
|
|
]),
|
|
OptionGroup("Locations",[
|
|
ThiefNetLocations,
|
|
ThiefNetCostMinimum,
|
|
ThiefNetCostMaximum
|
|
])
|
|
] |