64 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			64 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | import typing | ||
|  | from Options import Choice, Option | ||
|  | 
 | ||
|  | class SMLogic(Choice): | ||
|  |     """This option selects what kind of logic to use for item placement inside
 | ||
|  |     Super Metroid. | ||
|  | 
 | ||
|  |     Normal - Normal logic includes only what Super Metroid teaches players | ||
|  |     itself. Anything that's not demonstrated in-game or by the intro cutscenes | ||
|  |     will not be required here. | ||
|  | 
 | ||
|  |     Hard - Hard logic is based upon the "no major glitches" ruleset and | ||
|  |     includes most tricks that are considered minor glitches, with some  | ||
|  |     restrictions. You'll want to be somewhat of a Super Metroid veteran for | ||
|  |     this logic. | ||
|  |      | ||
|  |     See https://samus.link/information for required moves."""
 | ||
|  |     display_name = "SMLogic" | ||
|  |     option_Normal = 0 | ||
|  |     option_Hard = 1 | ||
|  |     default = 0 | ||
|  | 
 | ||
|  | class SwordLocation(Choice): | ||
|  |     """This option decides where the first sword will be placed.
 | ||
|  |     Randomized - The sword can be placed anywhere. | ||
|  |     Early - The sword will be placed in a location accessible from the start of | ||
|  |     the game. | ||
|  |     Unce assured - The sword will always be placed on Link's Uncle.""" | ||
|  |     display_name = "Sword Location" | ||
|  |     option_Randomized = 0 | ||
|  |     option_Early = 1 | ||
|  |     option_Uncle = 2 | ||
|  |     default = 0 | ||
|  | 
 | ||
|  | class MorphLocation(Choice): | ||
|  |     """This option decides where the morph ball will be placed.
 | ||
|  |     Randomized - The morph ball can be placed anywhere. | ||
|  |     Early - The morph ball will be placed in a location accessible from the  | ||
|  |     start of the game. | ||
|  |     Original location - The morph ball will always be placed at its original  | ||
|  |     location."""
 | ||
|  |     display_name = "Morph Location" | ||
|  |     option_Randomized = 0 | ||
|  |     option_Early = 1 | ||
|  |     option_Original = 2 | ||
|  |     default = 0 | ||
|  | 
 | ||
|  | class KeyShuffle(Choice): | ||
|  |     """This option decides how dungeon items such as keys are shuffled.
 | ||
|  |     None - A Link to the Past dungeon items can only be placed inside the  | ||
|  |     dungeon they belong to, and there are no changes to Super Metroid. | ||
|  |     Keysanity - See https://samus.link/information"""
 | ||
|  |     display_name = "Key Shuffle" | ||
|  |     option_None = 0 | ||
|  |     option_Keysanity = 1 | ||
|  |     default = 0 | ||
|  | 
 | ||
|  | smz3_options: typing.Dict[str, type(Option)] = { | ||
|  |     "sm_logic": SMLogic, | ||
|  |     "sword_location": SwordLocation, | ||
|  |     "morph_location": MorphLocation, | ||
|  |     "key_shuffle": KeyShuffle | ||
|  |     } |