119 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			119 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Python
		
	
	
	
| import typing
 | |
| from Options import Toggle, Option, Range, Choice, DeathLink
 | |
| 
 | |
| 
 | |
| class AutoEquipOption(Toggle):
 | |
|     """Automatically equips any received armor or left/right weapons."""
 | |
|     display_name = "Auto-equip"
 | |
| 
 | |
| 
 | |
| class LockEquipOption(Toggle):
 | |
|     """Lock the equipment slots so you cannot change your armor or your left/right weapons. Works great with the
 | |
|     Auto-equip option."""
 | |
|     display_name = "Lock Equipement Slots"
 | |
| 
 | |
| 
 | |
| class NoWeaponRequirementsOption(Toggle):
 | |
|     """Disable the weapon requirements by removing any movement or damage penalties.
 | |
|     Permitting you to use any weapon early"""
 | |
|     display_name = "No Weapon Requirements"
 | |
| 
 | |
| 
 | |
| class NoSpellRequirementsOption(Toggle):
 | |
|     """Disable the spell requirements permitting you to use any spell"""
 | |
|     display_name = "No Spell Requirements"
 | |
| 
 | |
| 
 | |
| class NoEquipLoadOption(Toggle):
 | |
|     """Disable the equip load constraint from the game"""
 | |
|     display_name = "No Equip load"
 | |
| 
 | |
| 
 | |
| class RandomizeWeaponsLevelOption(Choice):
 | |
|     """Enable this option to upgrade a percentage of the pool of weapons to a random value between the minimum and 
 | |
|     maximum levels defined. 
 | |
|     all: All weapons are eligible, both basic and epic
 | |
|     basic: Only weapons that can be upgraded to +10
 | |
|     epic: Only weapons that can be upgraded to +5"""
 | |
|     display_name = "Randomize weapons level"
 | |
|     option_none = 0
 | |
|     option_all = 1
 | |
|     option_basic = 2
 | |
|     option_epic = 3
 | |
| 
 | |
| 
 | |
| class RandomizeWeaponsLevelPercentageOption(Range):
 | |
|     """The percentage of weapons in the pool to be upgraded if randomize weapons level is toggled"""
 | |
|     display_name = "Percentage of randomized weapons"
 | |
|     range_start = 1
 | |
|     range_end = 100
 | |
|     default = 33
 | |
| 
 | |
| 
 | |
| class MinLevelsIn5WeaponPoolOption(Range):
 | |
|     """The minimum upgraded value of a weapon in the pool of weapons that can only reach +5"""
 | |
|     display_name = "Minimum level of +5 weapons"
 | |
|     range_start = 1
 | |
|     range_end = 5
 | |
|     default = 1
 | |
| 
 | |
| 
 | |
| class MaxLevelsIn5WeaponPoolOption(Range):
 | |
|     """The maximum upgraded value of a weapon in the pool of weapons that can only reach +5"""
 | |
|     display_name = "Maximum level of +5 weapons"
 | |
|     range_start = 1
 | |
|     range_end = 5
 | |
|     default = 5
 | |
| 
 | |
| 
 | |
| class MinLevelsIn10WeaponPoolOption(Range):
 | |
|     """The minimum upgraded value of a weapon in the pool of weapons that can reach +10"""
 | |
|     display_name = "Minimum level of +10 weapons"
 | |
|     range_start = 1
 | |
|     range_end = 10
 | |
|     default = 1
 | |
| 
 | |
| 
 | |
| class MaxLevelsIn10WeaponPoolOption(Range):
 | |
|     """The maximum upgraded value of a weapon in the pool of weapons that can reach +10"""
 | |
|     display_name = "Maximum level of +10 weapons"
 | |
|     range_start = 1
 | |
|     range_end = 10
 | |
|     default = 10
 | |
| 
 | |
| 
 | |
| class LateBasinOfVowsOption(Toggle):
 | |
|     """Force the Basin of Vows to be located as a reward of defeating Pontiff Sulyvahn. It permits to ease the
 | |
|     progression by preventing having to kill the Dancer of the Boreal Valley as the first boss"""
 | |
|     display_name = "Late Basin of Vows"
 | |
| 
 | |
| 
 | |
| class EnableProgressiveLocationsOption(Toggle):
 | |
|     """Randomize upgrade materials such as the titanite shards, the estus shards and the consumables"""
 | |
|     display_name = "Randomize materials, Estus shards and consumables (+196 checks/items)"
 | |
| 
 | |
| 
 | |
| class EnableDLCOption(Toggle):
 | |
|     """To use this option, you must own both the ASHES OF ARIANDEL and the RINGED CITY DLC"""
 | |
|     display_name = "Add the DLC Items and Locations to the pool (+81 checks/items)"
 | |
| 
 | |
| 
 | |
| dark_souls_options: typing.Dict[str, type(Option)] = {
 | |
|     "auto_equip": AutoEquipOption,
 | |
|     "lock_equip": LockEquipOption,
 | |
|     "no_weapon_requirements": NoWeaponRequirementsOption,
 | |
|     "randomize_weapons_level": RandomizeWeaponsLevelOption,
 | |
|     "randomize_weapons_percentage": RandomizeWeaponsLevelPercentageOption,
 | |
|     "min_levels_in_5": MinLevelsIn5WeaponPoolOption,
 | |
|     "max_levels_in_5": MaxLevelsIn5WeaponPoolOption,
 | |
|     "min_levels_in_10": MinLevelsIn10WeaponPoolOption,
 | |
|     "max_levels_in_10": MaxLevelsIn10WeaponPoolOption,
 | |
|     "late_basin_of_vows": LateBasinOfVowsOption,
 | |
|     "no_spell_requirements": NoSpellRequirementsOption,
 | |
|     "no_equip_load": NoEquipLoadOption,
 | |
|     "death_link": DeathLink,
 | |
|     "enable_progressive_locations": EnableProgressiveLocationsOption,
 | |
|     "enable_dlc": EnableDLCOption,
 | |
| }
 | |
| 
 |