78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import typing
 | 
						|
 | 
						|
from Options import Choice, Range, Option, Toggle, DeathLink, DefaultOnToggle, OptionList
 | 
						|
 | 
						|
 | 
						|
class IncludeMissions(Range):
 | 
						|
    """
 | 
						|
    Allows logic to place items in a range of Missions for each level
 | 
						|
    Each mission setting includes lower settings
 | 
						|
    1: Base Story Missions
 | 
						|
    2: 100 Ring Missions
 | 
						|
    3: Lost Chao Missions
 | 
						|
    4: Timer Missions
 | 
						|
    5: Hard Mode Missions
 | 
						|
    """
 | 
						|
    display_name = "Include Missions"
 | 
						|
    range_start = 1
 | 
						|
    range_end = 5
 | 
						|
    default = 2
 | 
						|
 | 
						|
 | 
						|
class EmblemPercentageForCannonsCore(Range):
 | 
						|
    """
 | 
						|
    Allows logic to gate the final mission behind a number of Emblems
 | 
						|
    """
 | 
						|
    display_name = "Emblem Percentage for Cannons Core"
 | 
						|
    range_start = 0
 | 
						|
    range_end = 75
 | 
						|
    default = 50
 | 
						|
 | 
						|
 | 
						|
class NumberOfLevelGates(Range):
 | 
						|
    """
 | 
						|
    Allows logic to gate some levels behind emblem requirements
 | 
						|
    """
 | 
						|
    display_name = "Number of Level Gates"
 | 
						|
    range_start = 0
 | 
						|
    range_end = 5
 | 
						|
    default = 3
 | 
						|
 | 
						|
 | 
						|
class LevelGateDistribution(Choice):
 | 
						|
    """
 | 
						|
    Determines how levels are distributed between level gate regions
 | 
						|
    Early: Earlier regions will have more levels than later regions
 | 
						|
    Even: Levels will be evenly distributed between all regions
 | 
						|
    Late: Later regions will have more levels than earlier regions
 | 
						|
    """
 | 
						|
    display_name = "Level Gate Distribution"
 | 
						|
    option_early = 0
 | 
						|
    option_even = 1
 | 
						|
    option_late = 2
 | 
						|
    default = 1
 | 
						|
 | 
						|
 | 
						|
class MusicShuffle(Choice):
 | 
						|
    """
 | 
						|
    What type of Music Shuffle is used
 | 
						|
    Off: No music is shuffled.
 | 
						|
    Levels: Level music is shuffled.
 | 
						|
    Full: Level, Menu, and Additional music is shuffled.
 | 
						|
    """
 | 
						|
    display_name = "Music Shuffle Type"
 | 
						|
    option_none = 0
 | 
						|
    option_levels = 1
 | 
						|
    option_full = 2
 | 
						|
    default = 0
 | 
						|
 | 
						|
 | 
						|
sa2b_options: typing.Dict[str, type(Option)] = {
 | 
						|
    "DeathLink": DeathLink,
 | 
						|
    "MusicShuffle": MusicShuffle,
 | 
						|
    "IncludeMissions": IncludeMissions,
 | 
						|
    "EmblemPercentageForCannonsCore": EmblemPercentageForCannonsCore,
 | 
						|
    "NumberOfLevelGates": NumberOfLevelGates,
 | 
						|
    "LevelGateDistribution": LevelGateDistribution,
 | 
						|
}
 |