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,
|
|
}
|
|
|