Options: change displayname to display_name
This commit is contained in:
parent
0f20888563
commit
dc4b064c73
|
@ -1206,9 +1206,9 @@ class Spoiler():
|
||||||
|
|
||||||
def write_option(option_key: str, option_obj: type(Options.Option)):
|
def write_option(option_key: str, option_obj: type(Options.Option)):
|
||||||
res = getattr(self.world, option_key)[player]
|
res = getattr(self.world, option_key)[player]
|
||||||
displayname = getattr(option_obj, "displayname", option_key)
|
display_name = getattr(option_obj, "display_name", option_key)
|
||||||
try:
|
try:
|
||||||
outfile.write(f'{displayname + ":":33}{res.get_current_option_name()}\n')
|
outfile.write(f'{display_name + ":":33}{res.get_current_option_name()}\n')
|
||||||
except:
|
except:
|
||||||
raise Exception
|
raise Exception
|
||||||
|
|
||||||
|
|
2
Fill.py
2
Fill.py
|
@ -157,7 +157,7 @@ def distribute_items_restrictive(world: MultiWorld):
|
||||||
localrestitempool, nonlocalrestitempool, restitempool, fill_locations)
|
localrestitempool, nonlocalrestitempool, restitempool, fill_locations)
|
||||||
|
|
||||||
locations: typing.Dict[LocationProgressType, typing.List[Location]] = {
|
locations: typing.Dict[LocationProgressType, typing.List[Location]] = {
|
||||||
type: [] for type in LocationProgressType}
|
loc_type: [] for loc_type in LocationProgressType}
|
||||||
|
|
||||||
for loc in fill_locations:
|
for loc in fill_locations:
|
||||||
locations[loc.progress_type].append(loc)
|
locations[loc.progress_type].append(loc)
|
||||||
|
|
9
Main.py
9
Main.py
|
@ -47,13 +47,6 @@ def main(args, seed=None, baked_server_options: Optional[Dict[str, object]] = No
|
||||||
world.item_functionality = args.item_functionality.copy()
|
world.item_functionality = args.item_functionality.copy()
|
||||||
world.timer = args.timer.copy()
|
world.timer = args.timer.copy()
|
||||||
world.goal = args.goal.copy()
|
world.goal = args.goal.copy()
|
||||||
|
|
||||||
if hasattr(args, "algorithm"): # current GUI options
|
|
||||||
world.algorithm = args.algorithm
|
|
||||||
world.shuffleganon = args.shuffleganon
|
|
||||||
world.custom = args.custom
|
|
||||||
world.customitemarray = args.customitemarray
|
|
||||||
|
|
||||||
world.open_pyramid = args.open_pyramid.copy()
|
world.open_pyramid = args.open_pyramid.copy()
|
||||||
world.boss_shuffle = args.shufflebosses.copy()
|
world.boss_shuffle = args.shufflebosses.copy()
|
||||||
world.enemy_health = args.enemy_health.copy()
|
world.enemy_health = args.enemy_health.copy()
|
||||||
|
@ -318,7 +311,7 @@ def main(args, seed=None, baked_server_options: Optional[Dict[str, object]] = No
|
||||||
multidata = zlib.compress(pickle.dumps(multidata), 9)
|
multidata = zlib.compress(pickle.dumps(multidata), 9)
|
||||||
|
|
||||||
with open(os.path.join(temp_dir, f'{outfilebase}.archipelago'), 'wb') as f:
|
with open(os.path.join(temp_dir, f'{outfilebase}.archipelago'), 'wb') as f:
|
||||||
f.write(bytes([2])) # version of format
|
f.write(bytes([3])) # version of format
|
||||||
f.write(multidata)
|
f.write(multidata)
|
||||||
|
|
||||||
multidata_task = pool.submit(write_multidata)
|
multidata_task = pool.submit(write_multidata)
|
||||||
|
|
|
@ -263,7 +263,7 @@ class Context:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def decompress(data: bytes) -> dict:
|
def decompress(data: bytes) -> dict:
|
||||||
format_version = data[0]
|
format_version = data[0]
|
||||||
if format_version > 2:
|
if format_version > 3:
|
||||||
raise Utils.VersionException("Incompatible multidata.")
|
raise Utils.VersionException("Incompatible multidata.")
|
||||||
return restricted_loads(zlib.decompress(data[1:]))
|
return restricted_loads(zlib.decompress(data[1:]))
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,7 @@ def adjustGUI():
|
||||||
option = sfx_options[option_name]
|
option = sfx_options[option_name]
|
||||||
optionFrame = Frame(romSettingsFrame)
|
optionFrame = Frame(romSettingsFrame)
|
||||||
optionFrame.grid(row=row, column=column, sticky=E)
|
optionFrame.grid(row=row, column=column, sticky=E)
|
||||||
optionLabel = Label(optionFrame, text=option.displayname)
|
optionLabel = Label(optionFrame, text=option.display_name)
|
||||||
optionLabel.pack(side=LEFT)
|
optionLabel.pack(side=LEFT)
|
||||||
setattr(opts, option_name, StringVar())
|
setattr(opts, option_name, StringVar())
|
||||||
getattr(opts, option_name).set(option.name_lookup[option.default])
|
getattr(opts, option_name).set(option.name_lookup[option.default])
|
||||||
|
@ -143,7 +143,7 @@ def adjustGUI():
|
||||||
option = cosmetic_options['sword_trail_duration']
|
option = cosmetic_options['sword_trail_duration']
|
||||||
optionFrame = Frame(romSettingsFrame)
|
optionFrame = Frame(romSettingsFrame)
|
||||||
optionFrame.grid(row=8, column=2, sticky=E)
|
optionFrame.grid(row=8, column=2, sticky=E)
|
||||||
optionLabel = Label(optionFrame, text=option.displayname)
|
optionLabel = Label(optionFrame, text=option.display_name)
|
||||||
optionLabel.pack(side=LEFT)
|
optionLabel.pack(side=LEFT)
|
||||||
setattr(opts, 'sword_trail_duration', StringVar())
|
setattr(opts, 'sword_trail_duration', StringVar())
|
||||||
getattr(opts, 'sword_trail_duration').set(option.default)
|
getattr(opts, 'sword_trail_duration').set(option.default)
|
||||||
|
|
33
Options.py
33
Options.py
|
@ -41,9 +41,9 @@ class Option(metaclass=AssembleOptions):
|
||||||
name_lookup: typing.Dict[int, str]
|
name_lookup: typing.Dict[int, str]
|
||||||
default = 0
|
default = 0
|
||||||
|
|
||||||
# convert option_name_long into Name Long as displayname, otherwise name_long is the result.
|
# convert option_name_long into Name Long as display_name, otherwise name_long is the result.
|
||||||
# Handled in get_option_name()
|
# Handled in get_option_name()
|
||||||
autodisplayname = False
|
auto_display_name = False
|
||||||
|
|
||||||
# can be weighted between selections
|
# can be weighted between selections
|
||||||
supports_weighting = True
|
supports_weighting = True
|
||||||
|
@ -64,7 +64,7 @@ class Option(metaclass=AssembleOptions):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_option_name(cls, value: typing.Any) -> str:
|
def get_option_name(cls, value: typing.Any) -> str:
|
||||||
if cls.autodisplayname:
|
if cls.auto_display_name:
|
||||||
return cls.name_lookup[value].replace("_", " ").title()
|
return cls.name_lookup[value].replace("_", " ").title()
|
||||||
else:
|
else:
|
||||||
return cls.name_lookup[value]
|
return cls.name_lookup[value]
|
||||||
|
@ -133,7 +133,7 @@ class DefaultOnToggle(Toggle):
|
||||||
|
|
||||||
|
|
||||||
class Choice(Option):
|
class Choice(Option):
|
||||||
autodisplayname = True
|
auto_display_name = True
|
||||||
|
|
||||||
def __init__(self, value: int):
|
def __init__(self, value: int):
|
||||||
self.value: int = value
|
self.value: int = value
|
||||||
|
@ -372,7 +372,7 @@ class Accessibility(Choice):
|
||||||
Locations: ensure everything can be reached and acquired.
|
Locations: ensure everything can be reached and acquired.
|
||||||
Items: ensure all logically relevant items can be acquired.
|
Items: ensure all logically relevant items can be acquired.
|
||||||
Minimal: ensure what is needed to reach your goal can be acquired."""
|
Minimal: ensure what is needed to reach your goal can be acquired."""
|
||||||
displayname = "Accessibility"
|
display_name = "Accessibility"
|
||||||
option_locations = 0
|
option_locations = 0
|
||||||
option_items = 1
|
option_items = 1
|
||||||
option_minimal = 2
|
option_minimal = 2
|
||||||
|
@ -382,7 +382,7 @@ class Accessibility(Choice):
|
||||||
|
|
||||||
class ProgressionBalancing(DefaultOnToggle):
|
class ProgressionBalancing(DefaultOnToggle):
|
||||||
"""A system that moves progression earlier, to try and prevent the player from getting stuck and bored early."""
|
"""A system that moves progression earlier, to try and prevent the player from getting stuck and bored early."""
|
||||||
displayname = "Progression Balancing"
|
display_name = "Progression Balancing"
|
||||||
|
|
||||||
|
|
||||||
common_options = {
|
common_options = {
|
||||||
|
@ -398,45 +398,50 @@ class ItemSet(OptionSet):
|
||||||
|
|
||||||
class LocalItems(ItemSet):
|
class LocalItems(ItemSet):
|
||||||
"""Forces these items to be in their native world."""
|
"""Forces these items to be in their native world."""
|
||||||
displayname = "Local Items"
|
display_name = "Local Items"
|
||||||
|
|
||||||
|
|
||||||
class NonLocalItems(ItemSet):
|
class NonLocalItems(ItemSet):
|
||||||
"""Forces these items to be outside their native world."""
|
"""Forces these items to be outside their native world."""
|
||||||
displayname = "Not Local Items"
|
display_name = "Not Local Items"
|
||||||
|
|
||||||
|
|
||||||
class StartInventory(ItemDict):
|
class StartInventory(ItemDict):
|
||||||
"""Start with these items."""
|
"""Start with these items."""
|
||||||
verify_item_name = True
|
verify_item_name = True
|
||||||
displayname = "Start Inventory"
|
display_name = "Start Inventory"
|
||||||
|
|
||||||
|
|
||||||
|
class ItemLinks(OptionList):
|
||||||
|
"""Share these items with players of the same game."""
|
||||||
|
display_name = "Shared Items"
|
||||||
|
|
||||||
|
|
||||||
class StartHints(ItemSet):
|
class StartHints(ItemSet):
|
||||||
"""Start with these item's locations prefilled into the !hint command."""
|
"""Start with these item's locations prefilled into the !hint command."""
|
||||||
displayname = "Start Hints"
|
display_name = "Start Hints"
|
||||||
|
|
||||||
|
|
||||||
class StartLocationHints(OptionSet):
|
class StartLocationHints(OptionSet):
|
||||||
"""Start with these locations and their item prefilled into the !hint command"""
|
"""Start with these locations and their item prefilled into the !hint command"""
|
||||||
displayname = "Start Location Hints"
|
display_name = "Start Location Hints"
|
||||||
|
|
||||||
|
|
||||||
class ExcludeLocations(OptionSet):
|
class ExcludeLocations(OptionSet):
|
||||||
"""Prevent these locations from having an important item"""
|
"""Prevent these locations from having an important item"""
|
||||||
displayname = "Excluded Locations"
|
display_name = "Excluded Locations"
|
||||||
verify_location_name = True
|
verify_location_name = True
|
||||||
|
|
||||||
|
|
||||||
class PriorityLocations(OptionSet):
|
class PriorityLocations(OptionSet):
|
||||||
"""Prevent these locations from having an unimportant item"""
|
"""Prevent these locations from having an unimportant item"""
|
||||||
displayname = "Priority Locations"
|
display_name = "Priority Locations"
|
||||||
verify_location_name = True
|
verify_location_name = True
|
||||||
|
|
||||||
|
|
||||||
class DeathLink(Toggle):
|
class DeathLink(Toggle):
|
||||||
"""When you die, everyone dies. Of course the reverse is true too."""
|
"""When you die, everyone dies. Of course the reverse is true too."""
|
||||||
displayname = "Death Link"
|
display_name = "Death Link"
|
||||||
|
|
||||||
|
|
||||||
per_game_common_options = {
|
per_game_common_options = {
|
||||||
|
|
|
@ -69,7 +69,7 @@ def create():
|
||||||
elif option.options:
|
elif option.options:
|
||||||
game_options[option_name] = this_option = {
|
game_options[option_name] = this_option = {
|
||||||
"type": "select",
|
"type": "select",
|
||||||
"displayName": option.displayname if hasattr(option, "displayname") else option_name,
|
"displayName": option.display_name if hasattr(option, "display_name") else option_name,
|
||||||
"description": option.__doc__ if option.__doc__ else "Please document me!",
|
"description": option.__doc__ if option.__doc__ else "Please document me!",
|
||||||
"defaultValue": None,
|
"defaultValue": None,
|
||||||
"options": []
|
"options": []
|
||||||
|
@ -92,7 +92,7 @@ def create():
|
||||||
elif hasattr(option, "range_start") and hasattr(option, "range_end"):
|
elif hasattr(option, "range_start") and hasattr(option, "range_end"):
|
||||||
game_options[option_name] = {
|
game_options[option_name] = {
|
||||||
"type": "range",
|
"type": "range",
|
||||||
"displayName": option.displayname if hasattr(option, "displayname") else option_name,
|
"displayName": option.display_name if hasattr(option, "display_name") else option_name,
|
||||||
"description": option.__doc__ if option.__doc__ else "Please document me!",
|
"description": option.__doc__ if option.__doc__ else "Please document me!",
|
||||||
"defaultValue": option.default if hasattr(option, "default") else option.range_start,
|
"defaultValue": option.default if hasattr(option, "default") else option.range_start,
|
||||||
"min": option.range_start,
|
"min": option.range_start,
|
||||||
|
@ -102,14 +102,14 @@ def create():
|
||||||
elif getattr(option, "verify_item_name", False):
|
elif getattr(option, "verify_item_name", False):
|
||||||
game_options[option_name] = {
|
game_options[option_name] = {
|
||||||
"type": "items-list",
|
"type": "items-list",
|
||||||
"displayName": option.displayname if hasattr(option, "displayname") else option_name,
|
"displayName": option.display_name if hasattr(option, "display_name") else option_name,
|
||||||
"description": option.__doc__ if option.__doc__ else "Please document me!",
|
"description": option.__doc__ if option.__doc__ else "Please document me!",
|
||||||
}
|
}
|
||||||
|
|
||||||
elif getattr(option, "verify_location_name", False):
|
elif getattr(option, "verify_location_name", False):
|
||||||
game_options[option_name] = {
|
game_options[option_name] = {
|
||||||
"type": "locations-list",
|
"type": "locations-list",
|
||||||
"displayName": option.displayname if hasattr(option, "displayname") else option_name,
|
"displayName": option.display_name if hasattr(option, "display_name") else option_name,
|
||||||
"description": option.__doc__ if option.__doc__ else "Please document me!",
|
"description": option.__doc__ if option.__doc__ else "Please document me!",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ def create():
|
||||||
if option.valid_keys:
|
if option.valid_keys:
|
||||||
game_options[option_name] = {
|
game_options[option_name] = {
|
||||||
"type": "custom-list",
|
"type": "custom-list",
|
||||||
"displayName": option.displayname if hasattr(option, "displayname") else option_name,
|
"displayName": option.display_name if hasattr(option, "display_name") else option_name,
|
||||||
"description": option.__doc__ if option.__doc__ else "Please document me!",
|
"description": option.__doc__ if option.__doc__ else "Please document me!",
|
||||||
"options": list(option.valid_keys),
|
"options": list(option.valid_keys),
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,26 +46,26 @@ class DungeonItem(Choice):
|
||||||
class bigkey_shuffle(DungeonItem):
|
class bigkey_shuffle(DungeonItem):
|
||||||
"""Big Key Placement"""
|
"""Big Key Placement"""
|
||||||
item_name_group = "Big Keys"
|
item_name_group = "Big Keys"
|
||||||
displayname = "Big Key Shuffle"
|
display_name = "Big Key Shuffle"
|
||||||
|
|
||||||
|
|
||||||
class smallkey_shuffle(DungeonItem):
|
class smallkey_shuffle(DungeonItem):
|
||||||
"""Small Key Placement"""
|
"""Small Key Placement"""
|
||||||
option_universal = 5
|
option_universal = 5
|
||||||
item_name_group = "Small Keys"
|
item_name_group = "Small Keys"
|
||||||
displayname = "Small Key Shuffle"
|
display_name = "Small Key Shuffle"
|
||||||
|
|
||||||
|
|
||||||
class compass_shuffle(DungeonItem):
|
class compass_shuffle(DungeonItem):
|
||||||
"""Compass Placement"""
|
"""Compass Placement"""
|
||||||
item_name_group = "Compasses"
|
item_name_group = "Compasses"
|
||||||
displayname = "Compass Shuffle"
|
display_name = "Compass Shuffle"
|
||||||
|
|
||||||
|
|
||||||
class map_shuffle(DungeonItem):
|
class map_shuffle(DungeonItem):
|
||||||
"""Map Placement"""
|
"""Map Placement"""
|
||||||
item_name_group = "Maps"
|
item_name_group = "Maps"
|
||||||
displayname = "Map Shuffle"
|
display_name = "Map Shuffle"
|
||||||
|
|
||||||
|
|
||||||
class Crystals(Range):
|
class Crystals(Range):
|
||||||
|
@ -118,7 +118,7 @@ class Enemies(Choice):
|
||||||
|
|
||||||
|
|
||||||
class Progressive(Choice):
|
class Progressive(Choice):
|
||||||
displayname = "Progressive Items"
|
display_name = "Progressive Items"
|
||||||
option_off = 0
|
option_off = 0
|
||||||
option_grouped_random = 1
|
option_grouped_random = 1
|
||||||
option_on = 2
|
option_on = 2
|
||||||
|
@ -137,24 +137,24 @@ class Swordless(Toggle):
|
||||||
can be opened without a sword. Hammer damages Ganon.
|
can be opened without a sword. Hammer damages Ganon.
|
||||||
Ether and Bombos Tablet can be activated with Hammer
|
Ether and Bombos Tablet can be activated with Hammer
|
||||||
(and Book)."""
|
(and Book)."""
|
||||||
displayname = "Swordless"
|
display_name = "Swordless"
|
||||||
|
|
||||||
|
|
||||||
class Retro(Toggle):
|
class Retro(Toggle):
|
||||||
"""Zelda-1 like mode. You have to purchase a quiver to shoot arrows using rupees
|
"""Zelda-1 like mode. You have to purchase a quiver to shoot arrows using rupees
|
||||||
and there are randomly placed take-any caves that contain one Sword and choices of Heart Container/Blue Potion."""
|
and there are randomly placed take-any caves that contain one Sword and choices of Heart Container/Blue Potion."""
|
||||||
displayname = "Retro"
|
display_name = "Retro"
|
||||||
|
|
||||||
|
|
||||||
class RestrictBossItem(Toggle):
|
class RestrictBossItem(Toggle):
|
||||||
"""Don't place dungeon-native items on the dungeon's boss."""
|
"""Don't place dungeon-native items on the dungeon's boss."""
|
||||||
displayname = "Prevent Dungeon Item on Boss"
|
display_name = "Prevent Dungeon Item on Boss"
|
||||||
|
|
||||||
|
|
||||||
class Hints(Choice):
|
class Hints(Choice):
|
||||||
"""Vendors: King Zora and Bottle Merchant say what they're selling.
|
"""Vendors: King Zora and Bottle Merchant say what they're selling.
|
||||||
On/Full: Put item and entrance placement hints on telepathic tiles and some NPCs, Full removes joke hints."""
|
On/Full: Put item and entrance placement hints on telepathic tiles and some NPCs, Full removes joke hints."""
|
||||||
displayname = "Hints"
|
display_name = "Hints"
|
||||||
option_off = 0
|
option_off = 0
|
||||||
option_vendors = 1
|
option_vendors = 1
|
||||||
option_on = 2
|
option_on = 2
|
||||||
|
@ -167,27 +167,27 @@ class Hints(Choice):
|
||||||
class EnemyShuffle(Toggle):
|
class EnemyShuffle(Toggle):
|
||||||
"""Randomize every enemy spawn.
|
"""Randomize every enemy spawn.
|
||||||
If mode is Standard, Hyrule Castle is left out (may result in visually wrong enemy sprites in that area.)"""
|
If mode is Standard, Hyrule Castle is left out (may result in visually wrong enemy sprites in that area.)"""
|
||||||
displayname = "Enemy Shuffle"
|
display_name = "Enemy Shuffle"
|
||||||
|
|
||||||
|
|
||||||
class KillableThieves(Toggle):
|
class KillableThieves(Toggle):
|
||||||
"""Makes Thieves killable."""
|
"""Makes Thieves killable."""
|
||||||
displayname = "Killable Thieves"
|
display_name = "Killable Thieves"
|
||||||
|
|
||||||
|
|
||||||
class BushShuffle(Toggle):
|
class BushShuffle(Toggle):
|
||||||
"""Randomize chance that a bush contains an enemy as well as which enemy may spawn."""
|
"""Randomize chance that a bush contains an enemy as well as which enemy may spawn."""
|
||||||
displayname = "Bush Shuffle"
|
display_name = "Bush Shuffle"
|
||||||
|
|
||||||
|
|
||||||
class TileShuffle(Toggle):
|
class TileShuffle(Toggle):
|
||||||
"""Randomize flying tiles floor patterns."""
|
"""Randomize flying tiles floor patterns."""
|
||||||
displayname = "Tile Shuffle"
|
display_name = "Tile Shuffle"
|
||||||
|
|
||||||
|
|
||||||
class PotShuffle(Toggle):
|
class PotShuffle(Toggle):
|
||||||
"""Shuffle contents of pots within "supertiles" (item will still be nearby original placement)."""
|
"""Shuffle contents of pots within "supertiles" (item will still be nearby original placement)."""
|
||||||
displayname = "Pot Shuffle"
|
display_name = "Pot Shuffle"
|
||||||
|
|
||||||
|
|
||||||
class Palette(Choice):
|
class Palette(Choice):
|
||||||
|
@ -203,31 +203,31 @@ class Palette(Choice):
|
||||||
|
|
||||||
|
|
||||||
class OWPalette(Palette):
|
class OWPalette(Palette):
|
||||||
displayname = "Overworld Palette"
|
display_name = "Overworld Palette"
|
||||||
|
|
||||||
|
|
||||||
class UWPalette(Palette):
|
class UWPalette(Palette):
|
||||||
displayname = "Underworld Palette"
|
display_name = "Underworld Palette"
|
||||||
|
|
||||||
|
|
||||||
class HUDPalette(Palette):
|
class HUDPalette(Palette):
|
||||||
displayname = "Menu Palette"
|
display_name = "Menu Palette"
|
||||||
|
|
||||||
|
|
||||||
class SwordPalette(Palette):
|
class SwordPalette(Palette):
|
||||||
displayname = "Sword Palette"
|
display_name = "Sword Palette"
|
||||||
|
|
||||||
|
|
||||||
class ShieldPalette(Palette):
|
class ShieldPalette(Palette):
|
||||||
displayname = "Shield Palette"
|
display_name = "Shield Palette"
|
||||||
|
|
||||||
|
|
||||||
class LinkPalette(Palette):
|
class LinkPalette(Palette):
|
||||||
displayname = "Link Palette"
|
display_name = "Link Palette"
|
||||||
|
|
||||||
|
|
||||||
class HeartBeep(Choice):
|
class HeartBeep(Choice):
|
||||||
displayname = "Heart Beep Rate"
|
display_name = "Heart Beep Rate"
|
||||||
option_normal = 0
|
option_normal = 0
|
||||||
option_double = 1
|
option_double = 1
|
||||||
option_half = 2
|
option_half = 2
|
||||||
|
@ -237,7 +237,7 @@ class HeartBeep(Choice):
|
||||||
|
|
||||||
|
|
||||||
class HeartColor(Choice):
|
class HeartColor(Choice):
|
||||||
displayname = "Heart Color"
|
display_name = "Heart Color"
|
||||||
option_red = 0
|
option_red = 0
|
||||||
option_blue = 1
|
option_blue = 1
|
||||||
option_green = 2
|
option_green = 2
|
||||||
|
@ -245,11 +245,11 @@ class HeartColor(Choice):
|
||||||
|
|
||||||
|
|
||||||
class QuickSwap(DefaultOnToggle):
|
class QuickSwap(DefaultOnToggle):
|
||||||
displayname = "L/R Quickswapping"
|
display_name = "L/R Quickswapping"
|
||||||
|
|
||||||
|
|
||||||
class MenuSpeed(Choice):
|
class MenuSpeed(Choice):
|
||||||
displayname = "Menu Speed"
|
display_name = "Menu Speed"
|
||||||
option_normal = 0
|
option_normal = 0
|
||||||
option_instant = 1,
|
option_instant = 1,
|
||||||
option_double = 2
|
option_double = 2
|
||||||
|
@ -259,7 +259,7 @@ class MenuSpeed(Choice):
|
||||||
|
|
||||||
|
|
||||||
class Music(DefaultOnToggle):
|
class Music(DefaultOnToggle):
|
||||||
displayname = "Play music"
|
display_name = "Play music"
|
||||||
|
|
||||||
|
|
||||||
class ReduceFlashing(DefaultOnToggle):
|
class ReduceFlashing(DefaultOnToggle):
|
||||||
|
|
|
@ -11,7 +11,7 @@ LuaBool = Or(bool, And(int, lambda n: n in (0, 1)))
|
||||||
|
|
||||||
class MaxSciencePack(Choice):
|
class MaxSciencePack(Choice):
|
||||||
"""Maximum level of science pack required to complete the game."""
|
"""Maximum level of science pack required to complete the game."""
|
||||||
displayname = "Maximum Required Science Pack"
|
display_name = "Maximum Required Science Pack"
|
||||||
option_automation_science_pack = 0
|
option_automation_science_pack = 0
|
||||||
option_logistic_science_pack = 1
|
option_logistic_science_pack = 1
|
||||||
option_military_science_pack = 2
|
option_military_science_pack = 2
|
||||||
|
@ -35,7 +35,7 @@ class MaxSciencePack(Choice):
|
||||||
|
|
||||||
class Goal(Choice):
|
class Goal(Choice):
|
||||||
"""Goal required to complete the game."""
|
"""Goal required to complete the game."""
|
||||||
displayname = "Goal"
|
display_name = "Goal"
|
||||||
option_rocket = 0
|
option_rocket = 0
|
||||||
option_satellite = 1
|
option_satellite = 1
|
||||||
default = 0
|
default = 0
|
||||||
|
@ -43,7 +43,7 @@ class Goal(Choice):
|
||||||
|
|
||||||
class TechCost(Choice):
|
class TechCost(Choice):
|
||||||
"""How expensive are the technologies."""
|
"""How expensive are the technologies."""
|
||||||
displayname = "Technology Cost Scale"
|
display_name = "Technology Cost Scale"
|
||||||
option_very_easy = 0
|
option_very_easy = 0
|
||||||
option_easy = 1
|
option_easy = 1
|
||||||
option_kind = 2
|
option_kind = 2
|
||||||
|
@ -56,7 +56,7 @@ class TechCost(Choice):
|
||||||
|
|
||||||
class Silo(Choice):
|
class Silo(Choice):
|
||||||
"""Ingredients to craft rocket silo or auto-place if set to spawn."""
|
"""Ingredients to craft rocket silo or auto-place if set to spawn."""
|
||||||
displayname = "Rocket Silo"
|
display_name = "Rocket Silo"
|
||||||
option_vanilla = 0
|
option_vanilla = 0
|
||||||
option_randomize_recipe = 1
|
option_randomize_recipe = 1
|
||||||
option_spawn = 2
|
option_spawn = 2
|
||||||
|
@ -65,7 +65,7 @@ class Silo(Choice):
|
||||||
|
|
||||||
class Satellite(Choice):
|
class Satellite(Choice):
|
||||||
"""Ingredients to craft satellite."""
|
"""Ingredients to craft satellite."""
|
||||||
displayname = "Satellite"
|
display_name = "Satellite"
|
||||||
option_vanilla = 0
|
option_vanilla = 0
|
||||||
option_randomize_recipe = 1
|
option_randomize_recipe = 1
|
||||||
default = 0
|
default = 0
|
||||||
|
@ -73,7 +73,7 @@ class Satellite(Choice):
|
||||||
|
|
||||||
class FreeSamples(Choice):
|
class FreeSamples(Choice):
|
||||||
"""Get free items with your technologies."""
|
"""Get free items with your technologies."""
|
||||||
displayname = "Free Samples"
|
display_name = "Free Samples"
|
||||||
option_none = 0
|
option_none = 0
|
||||||
option_single_craft = 1
|
option_single_craft = 1
|
||||||
option_half_stack = 2
|
option_half_stack = 2
|
||||||
|
@ -83,7 +83,7 @@ class FreeSamples(Choice):
|
||||||
|
|
||||||
class TechTreeLayout(Choice):
|
class TechTreeLayout(Choice):
|
||||||
"""Selects how the tech tree nodes are interwoven."""
|
"""Selects how the tech tree nodes are interwoven."""
|
||||||
displayname = "Technology Tree Layout"
|
display_name = "Technology Tree Layout"
|
||||||
option_single = 0
|
option_single = 0
|
||||||
option_small_diamonds = 1
|
option_small_diamonds = 1
|
||||||
option_medium_diamonds = 2
|
option_medium_diamonds = 2
|
||||||
|
@ -101,7 +101,7 @@ class TechTreeLayout(Choice):
|
||||||
|
|
||||||
class TechTreeInformation(Choice):
|
class TechTreeInformation(Choice):
|
||||||
"""How much information should be displayed in the tech tree."""
|
"""How much information should be displayed in the tech tree."""
|
||||||
displayname = "Technology Tree Information"
|
display_name = "Technology Tree Information"
|
||||||
option_none = 0
|
option_none = 0
|
||||||
option_advancement = 1
|
option_advancement = 1
|
||||||
option_full = 2
|
option_full = 2
|
||||||
|
@ -119,7 +119,7 @@ class RecipeTime(Choice):
|
||||||
New Normal: 0.25 - 10 seconds
|
New Normal: 0.25 - 10 seconds
|
||||||
New Slow: 5 - 10 seconds
|
New Slow: 5 - 10 seconds
|
||||||
"""
|
"""
|
||||||
displayname = "Recipe Time"
|
display_name = "Recipe Time"
|
||||||
option_vanilla = 0
|
option_vanilla = 0
|
||||||
option_fast = 1
|
option_fast = 1
|
||||||
option_normal = 2
|
option_normal = 2
|
||||||
|
@ -133,7 +133,7 @@ class RecipeTime(Choice):
|
||||||
class Progressive(Choice):
|
class Progressive(Choice):
|
||||||
"""Merges together Technologies like "automation-1" to "automation-3" into 3 copies of "Progressive Automation",
|
"""Merges together Technologies like "automation-1" to "automation-3" into 3 copies of "Progressive Automation",
|
||||||
which awards them in order."""
|
which awards them in order."""
|
||||||
displayname = "Progressive Technologies"
|
display_name = "Progressive Technologies"
|
||||||
option_off = 0
|
option_off = 0
|
||||||
option_grouped_random = 1
|
option_grouped_random = 1
|
||||||
option_on = 2
|
option_on = 2
|
||||||
|
@ -147,26 +147,26 @@ class Progressive(Choice):
|
||||||
|
|
||||||
class RecipeIngredients(Choice):
|
class RecipeIngredients(Choice):
|
||||||
"""Select if rocket, or rocket + science pack ingredients should be random."""
|
"""Select if rocket, or rocket + science pack ingredients should be random."""
|
||||||
displayname = "Random Recipe Ingredients Level"
|
display_name = "Random Recipe Ingredients Level"
|
||||||
option_rocket = 0
|
option_rocket = 0
|
||||||
option_science_pack = 1
|
option_science_pack = 1
|
||||||
|
|
||||||
|
|
||||||
class FactorioStartItems(ItemDict):
|
class FactorioStartItems(ItemDict):
|
||||||
"""Mapping of Factorio internal item-name to amount granted on start."""
|
"""Mapping of Factorio internal item-name to amount granted on start."""
|
||||||
displayname = "Starting Items"
|
display_name = "Starting Items"
|
||||||
verify_item_name = False
|
verify_item_name = False
|
||||||
default = {"burner-mining-drill": 19, "stone-furnace": 19}
|
default = {"burner-mining-drill": 19, "stone-furnace": 19}
|
||||||
|
|
||||||
|
|
||||||
class FactorioFreeSampleBlacklist(OptionSet):
|
class FactorioFreeSampleBlacklist(OptionSet):
|
||||||
"""Set of items that should never be granted from Free Samples"""
|
"""Set of items that should never be granted from Free Samples"""
|
||||||
displayname = "Free Sample Blacklist"
|
display_name = "Free Sample Blacklist"
|
||||||
|
|
||||||
|
|
||||||
class FactorioFreeSampleWhitelist(OptionSet):
|
class FactorioFreeSampleWhitelist(OptionSet):
|
||||||
"""Overrides any free sample blacklist present. This may ruin the balance of the mod, be warned."""
|
"""Overrides any free sample blacklist present. This may ruin the balance of the mod, be warned."""
|
||||||
displayname = "Free Sample Whitelist"
|
display_name = "Free Sample Whitelist"
|
||||||
|
|
||||||
|
|
||||||
class TrapCount(Range):
|
class TrapCount(Range):
|
||||||
|
@ -175,19 +175,19 @@ class TrapCount(Range):
|
||||||
|
|
||||||
class AttackTrapCount(TrapCount):
|
class AttackTrapCount(TrapCount):
|
||||||
"""Trap items that when received trigger an attack on your base."""
|
"""Trap items that when received trigger an attack on your base."""
|
||||||
displayname = "Attack Traps"
|
display_name = "Attack Traps"
|
||||||
|
|
||||||
|
|
||||||
class EvolutionTrapCount(TrapCount):
|
class EvolutionTrapCount(TrapCount):
|
||||||
"""Trap items that when received increase the enemy evolution."""
|
"""Trap items that when received increase the enemy evolution."""
|
||||||
displayname = "Evolution Traps"
|
display_name = "Evolution Traps"
|
||||||
|
|
||||||
|
|
||||||
class EvolutionTrapIncrease(Range):
|
class EvolutionTrapIncrease(Range):
|
||||||
"""How much an Evolution Trap increases the enemy evolution.
|
"""How much an Evolution Trap increases the enemy evolution.
|
||||||
Increases scale down proportionally to the session's current evolution factor
|
Increases scale down proportionally to the session's current evolution factor
|
||||||
(40 increase at 0.50 will add 0.20... 40 increase at 0.75 will add 0.10...)"""
|
(40 increase at 0.50 will add 0.20... 40 increase at 0.75 will add 0.10...)"""
|
||||||
displayname = "Evolution Trap % Effect"
|
display_name = "Evolution Trap % Effect"
|
||||||
range_start = 1
|
range_start = 1
|
||||||
default = 10
|
default = 10
|
||||||
range_end = 100
|
range_end = 100
|
||||||
|
@ -196,7 +196,7 @@ class EvolutionTrapIncrease(Range):
|
||||||
class FactorioWorldGen(OptionDict):
|
class FactorioWorldGen(OptionDict):
|
||||||
"""World Generation settings. Overview of options at https://wiki.factorio.com/Map_generator,
|
"""World Generation settings. Overview of options at https://wiki.factorio.com/Map_generator,
|
||||||
with in-depth documentation at https://lua-api.factorio.com/latest/Concepts.html#MapGenSettings"""
|
with in-depth documentation at https://lua-api.factorio.com/latest/Concepts.html#MapGenSettings"""
|
||||||
displayname = "World Generation"
|
display_name = "World Generation"
|
||||||
# FIXME: do we want default be a rando-optimized default or in-game DS?
|
# FIXME: do we want default be a rando-optimized default or in-game DS?
|
||||||
value: typing.Dict[str, typing.Dict[str, typing.Any]]
|
value: typing.Dict[str, typing.Dict[str, typing.Any]]
|
||||||
default = {
|
default = {
|
||||||
|
@ -330,7 +330,7 @@ class FactorioWorldGen(OptionDict):
|
||||||
|
|
||||||
class ImportedBlueprint(DefaultOnToggle):
|
class ImportedBlueprint(DefaultOnToggle):
|
||||||
"""Allow or Disallow Blueprints from outside the current savegame."""
|
"""Allow or Disallow Blueprints from outside the current savegame."""
|
||||||
displayname = "Blueprints"
|
display_name = "Blueprints"
|
||||||
|
|
||||||
|
|
||||||
factorio_options: typing.Dict[str, type(Option)] = {
|
factorio_options: typing.Dict[str, type(Option)] = {
|
||||||
|
|
|
@ -74,7 +74,6 @@ class Factorio(World):
|
||||||
|
|
||||||
self.sending_visible = self.world.tech_tree_information[player] == TechTreeInformation.option_full
|
self.sending_visible = self.world.tech_tree_information[player] == TechTreeInformation.option_full
|
||||||
|
|
||||||
|
|
||||||
generate_output = generate_mod
|
generate_output = generate_mod
|
||||||
|
|
||||||
def create_regions(self):
|
def create_regions(self):
|
||||||
|
@ -205,7 +204,8 @@ class Factorio(World):
|
||||||
new_ingredient = pool.pop()
|
new_ingredient = pool.pop()
|
||||||
liquids_used += 1
|
liquids_used += 1
|
||||||
new_ingredients[new_ingredient] = 1
|
new_ingredients[new_ingredient] = 1
|
||||||
return Recipe(original.name, self.get_category(original.category, liquids_used), new_ingredients, original.products, original.energy)
|
return Recipe(original.name, self.get_category(original.category, liquids_used), new_ingredients,
|
||||||
|
original.products, original.energy)
|
||||||
|
|
||||||
def make_balanced_recipe(self, original: Recipe, pool: list, factor: float = 1, allow_liquids: int = 2) -> \
|
def make_balanced_recipe(self, original: Recipe, pool: list, factor: float = 1, allow_liquids: int = 2) -> \
|
||||||
Recipe:
|
Recipe:
|
||||||
|
@ -292,7 +292,8 @@ class Factorio(World):
|
||||||
if remaining_num_ingredients > 1:
|
if remaining_num_ingredients > 1:
|
||||||
logging.warning("could not randomize recipe")
|
logging.warning("could not randomize recipe")
|
||||||
|
|
||||||
return Recipe(original.name, self.get_category(original.category, liquids_used), new_ingredients, original.products, original.energy)
|
return Recipe(original.name, self.get_category(original.category, liquids_used), new_ingredients,
|
||||||
|
original.products, original.energy)
|
||||||
|
|
||||||
def set_custom_technologies(self):
|
def set_custom_technologies(self):
|
||||||
custom_technologies = {}
|
custom_technologies = {}
|
||||||
|
|
|
@ -4,15 +4,15 @@ from Options import OptionDict
|
||||||
|
|
||||||
|
|
||||||
class Locations(OptionDict):
|
class Locations(OptionDict):
|
||||||
displayname = "locations"
|
display_name = "locations"
|
||||||
|
|
||||||
|
|
||||||
class Items(OptionDict):
|
class Items(OptionDict):
|
||||||
displayname = "items"
|
display_name = "items"
|
||||||
|
|
||||||
|
|
||||||
class Rules(OptionDict):
|
class Rules(OptionDict):
|
||||||
displayname = "rules"
|
display_name = "rules"
|
||||||
|
|
||||||
|
|
||||||
ff1_options: Dict[str, OptionDict] = {
|
ff1_options: Dict[str, OptionDict] = {
|
||||||
|
|
|
@ -4,7 +4,7 @@ from Options import Choice, Option, Toggle, Range, OptionList, DeathLink
|
||||||
|
|
||||||
class AdvancementGoal(Range):
|
class AdvancementGoal(Range):
|
||||||
"""Number of advancements required to spawn bosses."""
|
"""Number of advancements required to spawn bosses."""
|
||||||
displayname = "Advancement Goal"
|
display_name = "Advancement Goal"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 92
|
range_end = 92
|
||||||
default = 40
|
default = 40
|
||||||
|
@ -12,7 +12,7 @@ class AdvancementGoal(Range):
|
||||||
|
|
||||||
class EggShardsRequired(Range):
|
class EggShardsRequired(Range):
|
||||||
"""Number of dragon egg shards to collect to spawn bosses."""
|
"""Number of dragon egg shards to collect to spawn bosses."""
|
||||||
displayname = "Egg Shards Required"
|
display_name = "Egg Shards Required"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 40
|
range_end = 40
|
||||||
default = 0
|
default = 0
|
||||||
|
@ -20,7 +20,7 @@ class EggShardsRequired(Range):
|
||||||
|
|
||||||
class EggShardsAvailable(Range):
|
class EggShardsAvailable(Range):
|
||||||
"""Number of dragon egg shards available to collect."""
|
"""Number of dragon egg shards available to collect."""
|
||||||
displayname = "Egg Shards Available"
|
display_name = "Egg Shards Available"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 40
|
range_end = 40
|
||||||
default = 0
|
default = 0
|
||||||
|
@ -28,7 +28,7 @@ class EggShardsAvailable(Range):
|
||||||
|
|
||||||
class BossGoal(Choice):
|
class BossGoal(Choice):
|
||||||
"""Bosses which must be defeated to finish the game."""
|
"""Bosses which must be defeated to finish the game."""
|
||||||
displayname = "Required Bosses"
|
display_name = "Required Bosses"
|
||||||
option_none = 0
|
option_none = 0
|
||||||
option_ender_dragon = 1
|
option_ender_dragon = 1
|
||||||
option_wither = 2
|
option_wither = 2
|
||||||
|
@ -38,19 +38,19 @@ class BossGoal(Choice):
|
||||||
|
|
||||||
class ShuffleStructures(Toggle):
|
class ShuffleStructures(Toggle):
|
||||||
"""Enables shuffling of villages, outposts, fortresses, bastions, and end cities."""
|
"""Enables shuffling of villages, outposts, fortresses, bastions, and end cities."""
|
||||||
displayname = "Shuffle Structures"
|
display_name = "Shuffle Structures"
|
||||||
default = 1
|
default = 1
|
||||||
|
|
||||||
|
|
||||||
class StructureCompasses(Toggle):
|
class StructureCompasses(Toggle):
|
||||||
"""Adds structure compasses to the item pool, which point to the nearest indicated structure."""
|
"""Adds structure compasses to the item pool, which point to the nearest indicated structure."""
|
||||||
displayname = "Structure Compasses"
|
display_name = "Structure Compasses"
|
||||||
default = 1
|
default = 1
|
||||||
|
|
||||||
|
|
||||||
class BeeTraps(Range):
|
class BeeTraps(Range):
|
||||||
"""Replaces a percentage of junk items with bee traps, which spawn multiple angered bees around every player when received."""
|
"""Replaces a percentage of junk items with bee traps, which spawn multiple angered bees around every player when received."""
|
||||||
displayname = "Bee Trap Percentage"
|
display_name = "Bee Trap Percentage"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 0
|
default = 0
|
||||||
|
@ -58,7 +58,7 @@ class BeeTraps(Range):
|
||||||
|
|
||||||
class CombatDifficulty(Choice):
|
class CombatDifficulty(Choice):
|
||||||
"""Modifies the level of items logically required for exploring dangerous areas and fighting bosses."""
|
"""Modifies the level of items logically required for exploring dangerous areas and fighting bosses."""
|
||||||
displayname = "Combat Difficulty"
|
display_name = "Combat Difficulty"
|
||||||
option_easy = 0
|
option_easy = 0
|
||||||
option_normal = 1
|
option_normal = 1
|
||||||
option_hard = 2
|
option_hard = 2
|
||||||
|
@ -67,31 +67,31 @@ class CombatDifficulty(Choice):
|
||||||
|
|
||||||
class HardAdvancements(Toggle):
|
class HardAdvancements(Toggle):
|
||||||
"""Enables certain RNG-reliant or tedious advancements."""
|
"""Enables certain RNG-reliant or tedious advancements."""
|
||||||
displayname = "Include Hard Advancements"
|
display_name = "Include Hard Advancements"
|
||||||
default = 0
|
default = 0
|
||||||
|
|
||||||
|
|
||||||
class UnreasonableAdvancements(Toggle):
|
class UnreasonableAdvancements(Toggle):
|
||||||
"""Enables the extremely difficult advancements "How Did We Get Here?" and "Adventuring Time.\""""
|
"""Enables the extremely difficult advancements "How Did We Get Here?" and "Adventuring Time.\""""
|
||||||
displayname = "Include Unreasonable Advancements"
|
display_name = "Include Unreasonable Advancements"
|
||||||
default = 0
|
default = 0
|
||||||
|
|
||||||
|
|
||||||
class PostgameAdvancements(Toggle):
|
class PostgameAdvancements(Toggle):
|
||||||
"""Enables advancements that require spawning and defeating the required bosses."""
|
"""Enables advancements that require spawning and defeating the required bosses."""
|
||||||
displayname = "Include Postgame Advancements"
|
display_name = "Include Postgame Advancements"
|
||||||
default = 0
|
default = 0
|
||||||
|
|
||||||
|
|
||||||
class SendDefeatedMobs(Toggle):
|
class SendDefeatedMobs(Toggle):
|
||||||
"""Send killed mobs to other Minecraft worlds which have this option enabled."""
|
"""Send killed mobs to other Minecraft worlds which have this option enabled."""
|
||||||
displayname = "Send Defeated Mobs"
|
display_name = "Send Defeated Mobs"
|
||||||
default = 0
|
default = 0
|
||||||
|
|
||||||
|
|
||||||
class StartingItems(OptionList):
|
class StartingItems(OptionList):
|
||||||
"""Start with these items. Each entry should be of this format: {item: "item_name", amount: #, nbt: "nbt_string"}"""
|
"""Start with these items. Each entry should be of this format: {item: "item_name", amount: #, nbt: "nbt_string"}"""
|
||||||
displayname = "Starting Items"
|
display_name = "Starting Items"
|
||||||
|
|
||||||
|
|
||||||
minecraft_options: typing.Dict[str, type(Option)] = {
|
minecraft_options: typing.Dict[str, type(Option)] = {
|
||||||
|
|
|
@ -4,7 +4,7 @@ from Options import Choice
|
||||||
|
|
||||||
class kokiri_color(Choice):
|
class kokiri_color(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Kokiri Tunic"
|
display_name = "Kokiri Tunic"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_kokiri_green = 2
|
option_kokiri_green = 2
|
||||||
|
@ -43,7 +43,7 @@ class kokiri_color(Choice):
|
||||||
|
|
||||||
class goron_color(Choice):
|
class goron_color(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Goron Tunic"
|
display_name = "Goron Tunic"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_kokiri_green = 2
|
option_kokiri_green = 2
|
||||||
|
@ -82,7 +82,7 @@ class goron_color(Choice):
|
||||||
|
|
||||||
class zora_color(Choice):
|
class zora_color(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Zora Tunic"
|
display_name = "Zora Tunic"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_kokiri_green = 2
|
option_kokiri_green = 2
|
||||||
|
@ -121,7 +121,7 @@ class zora_color(Choice):
|
||||||
|
|
||||||
class silver_gauntlets_color(Choice):
|
class silver_gauntlets_color(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Silver Gauntlets Color"
|
display_name = "Silver Gauntlets Color"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_silver = 2
|
option_silver = 2
|
||||||
|
@ -142,7 +142,7 @@ class silver_gauntlets_color(Choice):
|
||||||
|
|
||||||
class golden_gauntlets_color(Choice):
|
class golden_gauntlets_color(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Golden Gauntlets Color"
|
display_name = "Golden Gauntlets Color"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_silver = 2
|
option_silver = 2
|
||||||
|
@ -163,7 +163,7 @@ class golden_gauntlets_color(Choice):
|
||||||
|
|
||||||
class mirror_shield_frame_color(Choice):
|
class mirror_shield_frame_color(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Mirror Shield Frame Color"
|
display_name = "Mirror Shield Frame Color"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_red = 2
|
option_red = 2
|
||||||
|
@ -181,7 +181,7 @@ class mirror_shield_frame_color(Choice):
|
||||||
|
|
||||||
class navi_color_default_inner(Choice):
|
class navi_color_default_inner(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Navi Idle Inner"
|
display_name = "Navi Idle Inner"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
@ -209,7 +209,7 @@ class navi_color_default_inner(Choice):
|
||||||
|
|
||||||
class navi_color_default_outer(Choice):
|
class navi_color_default_outer(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code. "match_inner" copies the inner color for this option."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code. "match_inner" copies the inner color for this option."""
|
||||||
displayname = "Navi Idle Outer"
|
display_name = "Navi Idle Outer"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
@ -238,7 +238,7 @@ class navi_color_default_outer(Choice):
|
||||||
|
|
||||||
class navi_color_enemy_inner(Choice):
|
class navi_color_enemy_inner(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Navi Targeting Enemy Inner"
|
display_name = "Navi Targeting Enemy Inner"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
@ -266,7 +266,7 @@ class navi_color_enemy_inner(Choice):
|
||||||
|
|
||||||
class navi_color_enemy_outer(Choice):
|
class navi_color_enemy_outer(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code. "match_inner" copies the inner color for this option."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code. "match_inner" copies the inner color for this option."""
|
||||||
displayname = "Navi Targeting Enemy Outer"
|
display_name = "Navi Targeting Enemy Outer"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
@ -295,7 +295,7 @@ class navi_color_enemy_outer(Choice):
|
||||||
|
|
||||||
class navi_color_npc_inner(Choice):
|
class navi_color_npc_inner(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Navi Targeting NPC Inner"
|
display_name = "Navi Targeting NPC Inner"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
@ -323,7 +323,7 @@ class navi_color_npc_inner(Choice):
|
||||||
|
|
||||||
class navi_color_npc_outer(Choice):
|
class navi_color_npc_outer(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code. "match_inner" copies the inner color for this option."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code. "match_inner" copies the inner color for this option."""
|
||||||
displayname = "Navi Targeting NPC Outer"
|
display_name = "Navi Targeting NPC Outer"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
@ -352,7 +352,7 @@ class navi_color_npc_outer(Choice):
|
||||||
|
|
||||||
class navi_color_prop_inner(Choice):
|
class navi_color_prop_inner(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Navi Targeting Prop Inner"
|
display_name = "Navi Targeting Prop Inner"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
@ -380,7 +380,7 @@ class navi_color_prop_inner(Choice):
|
||||||
|
|
||||||
class navi_color_prop_outer(Choice):
|
class navi_color_prop_outer(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code. "match_inner" copies the inner color for this option."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code. "match_inner" copies the inner color for this option."""
|
||||||
displayname = "Navi Targeting Prop Outer"
|
display_name = "Navi Targeting Prop Outer"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
@ -409,7 +409,7 @@ class navi_color_prop_outer(Choice):
|
||||||
|
|
||||||
class sword_trail_color_inner(Choice):
|
class sword_trail_color_inner(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Sword Trail Inner"
|
display_name = "Sword Trail Inner"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
@ -428,7 +428,7 @@ class sword_trail_color_inner(Choice):
|
||||||
|
|
||||||
class sword_trail_color_outer(Choice):
|
class sword_trail_color_outer(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code. "match_inner" copies the inner color for this option."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code. "match_inner" copies the inner color for this option."""
|
||||||
displayname = "Sword Trail Outer"
|
display_name = "Sword Trail Outer"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
@ -448,7 +448,7 @@ class sword_trail_color_outer(Choice):
|
||||||
|
|
||||||
class bombchu_trail_color_inner(Choice):
|
class bombchu_trail_color_inner(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Bombchu Trail Inner"
|
display_name = "Bombchu Trail Inner"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
@ -466,7 +466,7 @@ class bombchu_trail_color_inner(Choice):
|
||||||
|
|
||||||
class bombchu_trail_color_outer(Choice):
|
class bombchu_trail_color_outer(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code. "match_inner" copies the inner color for this option."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code. "match_inner" copies the inner color for this option."""
|
||||||
displayname = "Bombchu Trail Outer"
|
display_name = "Bombchu Trail Outer"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
@ -485,7 +485,7 @@ class bombchu_trail_color_outer(Choice):
|
||||||
|
|
||||||
class boomerang_trail_color_inner(Choice):
|
class boomerang_trail_color_inner(Choice):
|
||||||
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
"""Choose a color. "random_choice" selects a random option. "completely_random" generates a random hex code."""
|
||||||
displayname = "Boomerang Trail Inner"
|
display_name = "Boomerang Trail Inner"
|
||||||
option_random_choice = 0
|
option_random_choice = 0
|
||||||
option_completely_random = 1
|
option_completely_random = 1
|
||||||
option_rainbow = 2
|
option_rainbow = 2
|
||||||
|
|
|
@ -6,7 +6,7 @@ from .ColorSFXOptions import *
|
||||||
|
|
||||||
class Logic(Choice):
|
class Logic(Choice):
|
||||||
"""Set the logic used for the generator."""
|
"""Set the logic used for the generator."""
|
||||||
displayname = "Logic Rules"
|
display_name = "Logic Rules"
|
||||||
option_glitchless = 0
|
option_glitchless = 0
|
||||||
option_glitched = 1
|
option_glitched = 1
|
||||||
option_no_logic = 2
|
option_no_logic = 2
|
||||||
|
@ -14,12 +14,12 @@ class Logic(Choice):
|
||||||
|
|
||||||
class NightTokens(Toggle):
|
class NightTokens(Toggle):
|
||||||
"""Nighttime skulltulas will logically require Sun's Song."""
|
"""Nighttime skulltulas will logically require Sun's Song."""
|
||||||
displayname = "Nighttime Skulltulas Expect Sun's Song"
|
display_name = "Nighttime Skulltulas Expect Sun's Song"
|
||||||
|
|
||||||
|
|
||||||
class Forest(Choice):
|
class Forest(Choice):
|
||||||
"""Set the state of Kokiri Forest and the path to Deku Tree."""
|
"""Set the state of Kokiri Forest and the path to Deku Tree."""
|
||||||
displayname = "Forest"
|
display_name = "Forest"
|
||||||
option_open = 0
|
option_open = 0
|
||||||
option_closed_deku = 1
|
option_closed_deku = 1
|
||||||
option_closed = 2
|
option_closed = 2
|
||||||
|
@ -29,7 +29,7 @@ class Forest(Choice):
|
||||||
|
|
||||||
class Gate(Choice):
|
class Gate(Choice):
|
||||||
"""Set the state of the Kakariko Village gate."""
|
"""Set the state of the Kakariko Village gate."""
|
||||||
displayname = "Kakariko Gate"
|
display_name = "Kakariko Gate"
|
||||||
option_open = 0
|
option_open = 0
|
||||||
option_zelda = 1
|
option_zelda = 1
|
||||||
option_closed = 2
|
option_closed = 2
|
||||||
|
@ -37,12 +37,12 @@ class Gate(Choice):
|
||||||
|
|
||||||
class DoorOfTime(DefaultOnToggle):
|
class DoorOfTime(DefaultOnToggle):
|
||||||
"""Open the Door of Time by default, without the Song of Time."""
|
"""Open the Door of Time by default, without the Song of Time."""
|
||||||
displayname = "Open Door of Time"
|
display_name = "Open Door of Time"
|
||||||
|
|
||||||
|
|
||||||
class Fountain(Choice):
|
class Fountain(Choice):
|
||||||
"""Set the state of King Zora, blocking the way to Zora's Fountain."""
|
"""Set the state of King Zora, blocking the way to Zora's Fountain."""
|
||||||
displayname = "Zora's Fountain"
|
display_name = "Zora's Fountain"
|
||||||
option_open = 0
|
option_open = 0
|
||||||
option_adult = 1
|
option_adult = 1
|
||||||
option_closed = 2
|
option_closed = 2
|
||||||
|
@ -51,7 +51,7 @@ class Fountain(Choice):
|
||||||
|
|
||||||
class Fortress(Choice):
|
class Fortress(Choice):
|
||||||
"""Set the requirements for access to Gerudo Fortress."""
|
"""Set the requirements for access to Gerudo Fortress."""
|
||||||
displayname = "Gerudo Fortress"
|
display_name = "Gerudo Fortress"
|
||||||
option_normal = 0
|
option_normal = 0
|
||||||
option_fast = 1
|
option_fast = 1
|
||||||
option_open = 2
|
option_open = 2
|
||||||
|
@ -60,7 +60,7 @@ class Fortress(Choice):
|
||||||
|
|
||||||
class Bridge(Choice):
|
class Bridge(Choice):
|
||||||
"""Set the requirements for the Rainbow Bridge."""
|
"""Set the requirements for the Rainbow Bridge."""
|
||||||
displayname = "Rainbow Bridge Requirement"
|
display_name = "Rainbow Bridge Requirement"
|
||||||
option_open = 0
|
option_open = 0
|
||||||
option_vanilla = 1
|
option_vanilla = 1
|
||||||
option_stones = 2
|
option_stones = 2
|
||||||
|
@ -72,7 +72,7 @@ class Bridge(Choice):
|
||||||
|
|
||||||
class Trials(Range):
|
class Trials(Range):
|
||||||
"""Set the number of required trials in Ganon's Castle."""
|
"""Set the number of required trials in Ganon's Castle."""
|
||||||
displayname = "Ganon's Trials Count"
|
display_name = "Ganon's Trials Count"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 6
|
range_end = 6
|
||||||
|
|
||||||
|
@ -90,14 +90,14 @@ open_options: typing.Dict[str, type(Option)] = {
|
||||||
|
|
||||||
class StartingAge(Choice):
|
class StartingAge(Choice):
|
||||||
"""Choose which age Link will start as."""
|
"""Choose which age Link will start as."""
|
||||||
displayname = "Starting Age"
|
display_name = "Starting Age"
|
||||||
option_child = 0
|
option_child = 0
|
||||||
option_adult = 1
|
option_adult = 1
|
||||||
|
|
||||||
|
|
||||||
class InteriorEntrances(Choice):
|
class InteriorEntrances(Choice):
|
||||||
"""Shuffles interior entrances. "Simple" shuffles houses and Great Fairies; "All" includes Windmill, Link's House, Temple of Time, and Kak potion shop."""
|
"""Shuffles interior entrances. "Simple" shuffles houses and Great Fairies; "All" includes Windmill, Link's House, Temple of Time, and Kak potion shop."""
|
||||||
displayname = "Shuffle Interior Entrances"
|
display_name = "Shuffle Interior Entrances"
|
||||||
option_off = 0
|
option_off = 0
|
||||||
option_simple = 1
|
option_simple = 1
|
||||||
option_all = 2
|
option_all = 2
|
||||||
|
@ -107,37 +107,37 @@ class InteriorEntrances(Choice):
|
||||||
|
|
||||||
class GrottoEntrances(Toggle):
|
class GrottoEntrances(Toggle):
|
||||||
"""Shuffles grotto and grave entrances."""
|
"""Shuffles grotto and grave entrances."""
|
||||||
displayname = "Shuffle Grotto/Grave Entrances"
|
display_name = "Shuffle Grotto/Grave Entrances"
|
||||||
|
|
||||||
|
|
||||||
class DungeonEntrances(Toggle):
|
class DungeonEntrances(Toggle):
|
||||||
"""Shuffles dungeon entrances, excluding Ganon's Castle. Opens Deku, Fire and BotW to both ages."""
|
"""Shuffles dungeon entrances, excluding Ganon's Castle. Opens Deku, Fire and BotW to both ages."""
|
||||||
displayname = "Shuffle Dungeon Entrances"
|
display_name = "Shuffle Dungeon Entrances"
|
||||||
|
|
||||||
|
|
||||||
class OverworldEntrances(Toggle):
|
class OverworldEntrances(Toggle):
|
||||||
"""Shuffles overworld loading zones."""
|
"""Shuffles overworld loading zones."""
|
||||||
displayname = "Shuffle Overworld Entrances"
|
display_name = "Shuffle Overworld Entrances"
|
||||||
|
|
||||||
|
|
||||||
class OwlDrops(Toggle):
|
class OwlDrops(Toggle):
|
||||||
"""Randomizes owl drops from Lake Hylia or Death Mountain Trail as child."""
|
"""Randomizes owl drops from Lake Hylia or Death Mountain Trail as child."""
|
||||||
displayname = "Randomize Owl Drops"
|
display_name = "Randomize Owl Drops"
|
||||||
|
|
||||||
|
|
||||||
class WarpSongs(Toggle):
|
class WarpSongs(Toggle):
|
||||||
"""Randomizes warp song destinations."""
|
"""Randomizes warp song destinations."""
|
||||||
displayname = "Randomize Warp Songs"
|
display_name = "Randomize Warp Songs"
|
||||||
|
|
||||||
|
|
||||||
class SpawnPositions(Toggle):
|
class SpawnPositions(Toggle):
|
||||||
"""Randomizes the starting position on loading a save. Consistent between savewarps."""
|
"""Randomizes the starting position on loading a save. Consistent between savewarps."""
|
||||||
displayname = "Randomize Spawn Positions"
|
display_name = "Randomize Spawn Positions"
|
||||||
|
|
||||||
|
|
||||||
class MixEntrancePools(Choice):
|
class MixEntrancePools(Choice):
|
||||||
"""Shuffles entrances into a mixed pool instead of separate ones. "indoor" keeps overworld entrances separate; "all" mixes them in."""
|
"""Shuffles entrances into a mixed pool instead of separate ones. "indoor" keeps overworld entrances separate; "all" mixes them in."""
|
||||||
displayname = "Mix Entrance Pools"
|
display_name = "Mix Entrance Pools"
|
||||||
option_off = 0
|
option_off = 0
|
||||||
option_indoor = 1
|
option_indoor = 1
|
||||||
option_all = 2
|
option_all = 2
|
||||||
|
@ -146,17 +146,17 @@ class MixEntrancePools(Choice):
|
||||||
|
|
||||||
class DecoupleEntrances(Toggle):
|
class DecoupleEntrances(Toggle):
|
||||||
"""Decouple entrances when shuffling them. Also adds the one-way entrance from Gerudo Valley to Lake Hylia if overworld is shuffled."""
|
"""Decouple entrances when shuffling them. Also adds the one-way entrance from Gerudo Valley to Lake Hylia if overworld is shuffled."""
|
||||||
displayname = "Decouple Entrances"
|
display_name = "Decouple Entrances"
|
||||||
|
|
||||||
|
|
||||||
class TriforceHunt(Toggle):
|
class TriforceHunt(Toggle):
|
||||||
"""Gather pieces of the Triforce scattered around the world to complete the game."""
|
"""Gather pieces of the Triforce scattered around the world to complete the game."""
|
||||||
displayname = "Triforce Hunt"
|
display_name = "Triforce Hunt"
|
||||||
|
|
||||||
|
|
||||||
class TriforceGoal(Range):
|
class TriforceGoal(Range):
|
||||||
"""Number of Triforce pieces required to complete the game."""
|
"""Number of Triforce pieces required to complete the game."""
|
||||||
displayname = "Required Triforce Pieces"
|
display_name = "Required Triforce Pieces"
|
||||||
range_start = 1
|
range_start = 1
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 20
|
default = 20
|
||||||
|
@ -164,7 +164,7 @@ class TriforceGoal(Range):
|
||||||
|
|
||||||
class ExtraTriforces(Range):
|
class ExtraTriforces(Range):
|
||||||
"""Percentage of additional Triforce pieces in the pool, separate from the item pool setting."""
|
"""Percentage of additional Triforce pieces in the pool, separate from the item pool setting."""
|
||||||
displayname = "Percentage of Extra Triforce Pieces"
|
display_name = "Percentage of Extra Triforce Pieces"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 50
|
default = 50
|
||||||
|
|
|
@ -17,7 +17,7 @@ def assemble_color_option(f, internal_name: str, func, display_name: str, defaul
|
||||||
|
|
||||||
f.write(f"class {internal_name}(Choice):\n")
|
f.write(f"class {internal_name}(Choice):\n")
|
||||||
f.write(f" \"\"\"{docstring}\"\"\"\n")
|
f.write(f" \"\"\"{docstring}\"\"\"\n")
|
||||||
f.write(f" displayname = \"{display_name}\"\n")
|
f.write(f" display_name = \"{display_name}\"\n")
|
||||||
for color, id in color_to_id.items():
|
for color, id in color_to_id.items():
|
||||||
f.write(f" option_{color} = {id}\n")
|
f.write(f" option_{color} = {id}\n")
|
||||||
f.write(f" default = {color_options.index(default_option)}")
|
f.write(f" default = {color_options.index(default_option)}")
|
||||||
|
@ -31,7 +31,7 @@ def assemble_sfx_option(f, internal_name: str, sound_hook: sfx.SoundHooks, displ
|
||||||
|
|
||||||
f.write(f"class {internal_name}(Choice):\n")
|
f.write(f"class {internal_name}(Choice):\n")
|
||||||
f.write(f" \"\"\"{docstring}\"\"\"\n")
|
f.write(f" \"\"\"{docstring}\"\"\"\n")
|
||||||
f.write(f" displayname = \"{display_name}\"\n")
|
f.write(f" display_name = \"{display_name}\"\n")
|
||||||
for sound, id in sfx_to_id.items():
|
for sound, id in sfx_to_id.items():
|
||||||
f.write(f" option_{sound} = {id}\n")
|
f.write(f" option_{sound} = {id}\n")
|
||||||
f.write(f"\n\n\n")
|
f.write(f"\n\n\n")
|
||||||
|
|
|
@ -2,18 +2,18 @@ from Options import Range, Toggle, DefaultOnToggle, Choice
|
||||||
|
|
||||||
class UseResourcePacks(DefaultOnToggle):
|
class UseResourcePacks(DefaultOnToggle):
|
||||||
"""Uses Resource Packs to fill out the item pool from Raft. Resource Packs have basic earlygame items such as planks, plastic, or food."""
|
"""Uses Resource Packs to fill out the item pool from Raft. Resource Packs have basic earlygame items such as planks, plastic, or food."""
|
||||||
displayname = "Use resource packs"
|
display_name = "Use resource packs"
|
||||||
|
|
||||||
class MinimumResourcePackAmount(Range):
|
class MinimumResourcePackAmount(Range):
|
||||||
"""The minimum amount of resources available in a resource pack"""
|
"""The minimum amount of resources available in a resource pack"""
|
||||||
displayname = "Minimum resource pack amount"
|
display_name = "Minimum resource pack amount"
|
||||||
range_start = 1
|
range_start = 1
|
||||||
range_end = 15
|
range_end = 15
|
||||||
default = 1
|
default = 1
|
||||||
|
|
||||||
class MaximumResourcePackAmount(Range):
|
class MaximumResourcePackAmount(Range):
|
||||||
"""The maximum amount of resources available in a resource pack"""
|
"""The maximum amount of resources available in a resource pack"""
|
||||||
displayname = "Maximum resource pack amount"
|
display_name = "Maximum resource pack amount"
|
||||||
range_start = 1
|
range_start = 1
|
||||||
range_end = 15
|
range_end = 15
|
||||||
default = 5
|
default = 5
|
||||||
|
@ -22,7 +22,7 @@ class DuplicateItems(Choice):
|
||||||
"""Adds duplicates of items to the item pool. These will be selected alongside
|
"""Adds duplicates of items to the item pool. These will be selected alongside
|
||||||
Resource Packs (if configured). Note that there are not many progression items,
|
Resource Packs (if configured). Note that there are not many progression items,
|
||||||
and selecting Progression may produce many of the same duplicate item."""
|
and selecting Progression may produce many of the same duplicate item."""
|
||||||
displayname = "Duplicate items"
|
display_name = "Duplicate items"
|
||||||
option_disabled = 0
|
option_disabled = 0
|
||||||
option_progression = 1
|
option_progression = 1
|
||||||
option_non_progression = 2
|
option_non_progression = 2
|
||||||
|
@ -30,7 +30,7 @@ class DuplicateItems(Choice):
|
||||||
|
|
||||||
class IslandFrequencyLocations(Choice):
|
class IslandFrequencyLocations(Choice):
|
||||||
"""Sets where frequencies for story islands are located."""
|
"""Sets where frequencies for story islands are located."""
|
||||||
displayname = "Frequency locations"
|
display_name = "Frequency locations"
|
||||||
option_vanilla = 0
|
option_vanilla = 0
|
||||||
option_random_on_island = 1
|
option_random_on_island = 1
|
||||||
option_progressive = 2
|
option_progressive = 2
|
||||||
|
@ -39,15 +39,15 @@ class IslandFrequencyLocations(Choice):
|
||||||
|
|
||||||
class ProgressiveItems(DefaultOnToggle):
|
class ProgressiveItems(DefaultOnToggle):
|
||||||
"""Makes some items, like the Bow and Arrow, progressive rather than raw unlocks."""
|
"""Makes some items, like the Bow and Arrow, progressive rather than raw unlocks."""
|
||||||
displayname = "Progressive items"
|
display_name = "Progressive items"
|
||||||
|
|
||||||
class BigIslandEarlyCrafting(Toggle):
|
class BigIslandEarlyCrafting(Toggle):
|
||||||
"""Allows recipes that require items from big islands (eg leather) to lock earlygame items like the Receiver, Bolt, or Smelter."""
|
"""Allows recipes that require items from big islands (eg leather) to lock earlygame items like the Receiver, Bolt, or Smelter."""
|
||||||
displayname = "Early recipes behind big islands"
|
display_name = "Early recipes behind big islands"
|
||||||
|
|
||||||
class PaddleboardMode(Toggle):
|
class PaddleboardMode(Toggle):
|
||||||
"""Sets later story islands to in logic without an Engine or Steering Wheel. May require lots of paddling. Not recommended."""
|
"""Sets later story islands to in logic without an Engine or Steering Wheel. May require lots of paddling. Not recommended."""
|
||||||
displayname = "Paddleboard Mode"
|
display_name = "Paddleboard Mode"
|
||||||
|
|
||||||
raft_options = {
|
raft_options = {
|
||||||
"use_resource_packs": UseResourcePacks,
|
"use_resource_packs": UseResourcePacks,
|
||||||
|
|
|
@ -7,7 +7,7 @@ class StartingGender(Choice):
|
||||||
"""
|
"""
|
||||||
Determines the gender of your initial 'Sir Lee' character.
|
Determines the gender of your initial 'Sir Lee' character.
|
||||||
"""
|
"""
|
||||||
displayname = "Starting Gender"
|
display_name = "Starting Gender"
|
||||||
option_sir = 0
|
option_sir = 0
|
||||||
option_lady = 1
|
option_lady = 1
|
||||||
alias_male = 0
|
alias_male = 0
|
||||||
|
@ -19,7 +19,7 @@ class StartingClass(Choice):
|
||||||
"""
|
"""
|
||||||
Determines the starting class of your initial 'Sir Lee' character.
|
Determines the starting class of your initial 'Sir Lee' character.
|
||||||
"""
|
"""
|
||||||
displayname = "Starting Class"
|
display_name = "Starting Class"
|
||||||
option_knight = 0
|
option_knight = 0
|
||||||
option_mage = 1
|
option_mage = 1
|
||||||
option_barbarian = 2
|
option_barbarian = 2
|
||||||
|
@ -36,7 +36,7 @@ class NewGamePlus(Choice):
|
||||||
Puts the castle in new game plus mode which vastly increases enemy level, but increases gold gain by 50%. Not
|
Puts the castle in new game plus mode which vastly increases enemy level, but increases gold gain by 50%. Not
|
||||||
recommended for those inexperienced to Rogue Legacy!
|
recommended for those inexperienced to Rogue Legacy!
|
||||||
"""
|
"""
|
||||||
displayname = "New Game Plus"
|
display_name = "New Game Plus"
|
||||||
option_normal = 0
|
option_normal = 0
|
||||||
option_new_game_plus = 1
|
option_new_game_plus = 1
|
||||||
option_new_game_plus_2 = 2
|
option_new_game_plus_2 = 2
|
||||||
|
@ -51,7 +51,7 @@ class LevelScaling(Range):
|
||||||
100% level scaling (normal). Setting this too high will result in enemies with absurdly high levels, you have been
|
100% level scaling (normal). Setting this too high will result in enemies with absurdly high levels, you have been
|
||||||
warned.
|
warned.
|
||||||
"""
|
"""
|
||||||
displayname = "Enemy Level Scaling Percentage"
|
display_name = "Enemy Level Scaling Percentage"
|
||||||
range_start = 1
|
range_start = 1
|
||||||
range_end = 300
|
range_end = 300
|
||||||
default = 100
|
default = 100
|
||||||
|
@ -62,7 +62,7 @@ class FairyChestsPerZone(Range):
|
||||||
Determines the number of Fairy Chests in a given zone that contain items. After these have been checked, only stat
|
Determines the number of Fairy Chests in a given zone that contain items. After these have been checked, only stat
|
||||||
bonuses can be found in Fairy Chests.
|
bonuses can be found in Fairy Chests.
|
||||||
"""
|
"""
|
||||||
displayname = "Fairy Chests Per Zone"
|
display_name = "Fairy Chests Per Zone"
|
||||||
range_start = 5
|
range_start = 5
|
||||||
range_end = 15
|
range_end = 15
|
||||||
default = 5
|
default = 5
|
||||||
|
@ -73,7 +73,7 @@ class ChestsPerZone(Range):
|
||||||
Determines the number of Non-Fairy Chests in a given zone that contain items. After these have been checked, only
|
Determines the number of Non-Fairy Chests in a given zone that contain items. After these have been checked, only
|
||||||
gold or stat bonuses can be found in Chests.
|
gold or stat bonuses can be found in Chests.
|
||||||
"""
|
"""
|
||||||
displayname = "Chests Per Zone"
|
display_name = "Chests Per Zone"
|
||||||
range_start = 15
|
range_start = 15
|
||||||
range_end = 30
|
range_end = 30
|
||||||
default = 15
|
default = 15
|
||||||
|
@ -83,21 +83,21 @@ class UniversalFairyChests(Toggle):
|
||||||
"""
|
"""
|
||||||
Determines if fairy chests should be combined into one pool instead of per zone, similar to Risk of Rain 2.
|
Determines if fairy chests should be combined into one pool instead of per zone, similar to Risk of Rain 2.
|
||||||
"""
|
"""
|
||||||
displayname = "Universal Fairy Chests"
|
display_name = "Universal Fairy Chests"
|
||||||
|
|
||||||
|
|
||||||
class UniversalChests(Toggle):
|
class UniversalChests(Toggle):
|
||||||
"""
|
"""
|
||||||
Determines if non-fairy chests should be combined into one pool instead of per zone, similar to Risk of Rain 2.
|
Determines if non-fairy chests should be combined into one pool instead of per zone, similar to Risk of Rain 2.
|
||||||
"""
|
"""
|
||||||
displayname = "Universal Non-Fairy Chests"
|
display_name = "Universal Non-Fairy Chests"
|
||||||
|
|
||||||
|
|
||||||
class Vendors(Choice):
|
class Vendors(Choice):
|
||||||
"""
|
"""
|
||||||
Determines where to place the Blacksmith and Enchantress unlocks in logic (or start with them unlocked).
|
Determines where to place the Blacksmith and Enchantress unlocks in logic (or start with them unlocked).
|
||||||
"""
|
"""
|
||||||
displayname = "Vendors"
|
display_name = "Vendors"
|
||||||
option_start_unlocked = 0
|
option_start_unlocked = 0
|
||||||
option_early = 1
|
option_early = 1
|
||||||
option_normal = 2
|
option_normal = 2
|
||||||
|
@ -109,7 +109,7 @@ class Architect(Choice):
|
||||||
"""
|
"""
|
||||||
Determines where the Architect sits in the item pool.
|
Determines where the Architect sits in the item pool.
|
||||||
"""
|
"""
|
||||||
displayname = "Architect"
|
display_name = "Architect"
|
||||||
option_start_unlocked = 0
|
option_start_unlocked = 0
|
||||||
option_normal = 2
|
option_normal = 2
|
||||||
option_disabled = 3
|
option_disabled = 3
|
||||||
|
@ -121,7 +121,7 @@ class ArchitectFee(Range):
|
||||||
Determines how large of a percentage the architect takes from the player when utilizing his services. 100 means he
|
Determines how large of a percentage the architect takes from the player when utilizing his services. 100 means he
|
||||||
takes all your gold. 0 means his services are free.
|
takes all your gold. 0 means his services are free.
|
||||||
"""
|
"""
|
||||||
displayname = "Architect Fee Percentage"
|
display_name = "Architect Fee Percentage"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 40
|
default = 40
|
||||||
|
@ -131,7 +131,7 @@ class DisableCharon(Toggle):
|
||||||
"""
|
"""
|
||||||
Prevents Charon from taking your money when you re-enter the castle. Also removes Haggling from the Item Pool.
|
Prevents Charon from taking your money when you re-enter the castle. Also removes Haggling from the Item Pool.
|
||||||
"""
|
"""
|
||||||
displayname = "Disable Charon"
|
display_name = "Disable Charon"
|
||||||
|
|
||||||
|
|
||||||
class RequirePurchasing(DefaultOnToggle):
|
class RequirePurchasing(DefaultOnToggle):
|
||||||
|
@ -139,7 +139,7 @@ class RequirePurchasing(DefaultOnToggle):
|
||||||
Determines where you will be required to purchase equipment and runes from the Blacksmith and Enchantress before
|
Determines where you will be required to purchase equipment and runes from the Blacksmith and Enchantress before
|
||||||
equipping them. If you disable require purchasing, Manor Renovations are scaled to take this into account.
|
equipping them. If you disable require purchasing, Manor Renovations are scaled to take this into account.
|
||||||
"""
|
"""
|
||||||
displayname = "Require Purchasing"
|
display_name = "Require Purchasing"
|
||||||
|
|
||||||
|
|
||||||
class ProgressiveBlueprints(Toggle):
|
class ProgressiveBlueprints(Toggle):
|
||||||
|
@ -147,14 +147,14 @@ class ProgressiveBlueprints(Toggle):
|
||||||
Instead of shuffling blueprints randomly into the pool, blueprint unlocks are progressively unlocked. You would get
|
Instead of shuffling blueprints randomly into the pool, blueprint unlocks are progressively unlocked. You would get
|
||||||
Squire first, then Knight, etc., until finally Dark.
|
Squire first, then Knight, etc., until finally Dark.
|
||||||
"""
|
"""
|
||||||
displayname = "Progressive Blueprints"
|
display_name = "Progressive Blueprints"
|
||||||
|
|
||||||
|
|
||||||
class GoldGainMultiplier(Choice):
|
class GoldGainMultiplier(Choice):
|
||||||
"""
|
"""
|
||||||
Adjusts the multiplier for gaining gold from all sources.
|
Adjusts the multiplier for gaining gold from all sources.
|
||||||
"""
|
"""
|
||||||
displayname = "Gold Gain Multiplier"
|
display_name = "Gold Gain Multiplier"
|
||||||
option_normal = 0
|
option_normal = 0
|
||||||
option_quarter = 1
|
option_quarter = 1
|
||||||
option_half = 2
|
option_half = 2
|
||||||
|
@ -167,7 +167,7 @@ class NumberOfChildren(Range):
|
||||||
"""
|
"""
|
||||||
Determines the number of offspring you can choose from on the lineage screen after a death.
|
Determines the number of offspring you can choose from on the lineage screen after a death.
|
||||||
"""
|
"""
|
||||||
displayname = "Number of Children"
|
display_name = "Number of Children"
|
||||||
range_start = 1
|
range_start = 1
|
||||||
range_end = 5
|
range_end = 5
|
||||||
default = 3
|
default = 3
|
||||||
|
@ -179,7 +179,7 @@ class AdditionalNames(OptionList):
|
||||||
of names your children can have. The first value will also be your initial character's name depending on Starting
|
of names your children can have. The first value will also be your initial character's name depending on Starting
|
||||||
Gender.
|
Gender.
|
||||||
"""
|
"""
|
||||||
displayname = "Additional Names"
|
display_name = "Additional Names"
|
||||||
|
|
||||||
|
|
||||||
class AllowDefaultNames(DefaultOnToggle):
|
class AllowDefaultNames(DefaultOnToggle):
|
||||||
|
@ -187,7 +187,7 @@ class AllowDefaultNames(DefaultOnToggle):
|
||||||
Determines if the default names defined in the vanilla game are allowed to be used. Warning: Your world will not
|
Determines if the default names defined in the vanilla game are allowed to be used. Warning: Your world will not
|
||||||
generate if the number of Additional Names defined is less than the Number of Children value.
|
generate if the number of Additional Names defined is less than the Number of Children value.
|
||||||
"""
|
"""
|
||||||
displayname = "Allow Default Names"
|
display_name = "Allow Default Names"
|
||||||
|
|
||||||
|
|
||||||
class CastleScaling(Range):
|
class CastleScaling(Range):
|
||||||
|
|
|
@ -4,7 +4,7 @@ from Options import Option, DefaultOnToggle, Range, Choice
|
||||||
|
|
||||||
class TotalLocations(Range):
|
class TotalLocations(Range):
|
||||||
"""Number of location checks which are added to the Risk of Rain playthrough."""
|
"""Number of location checks which are added to the Risk of Rain playthrough."""
|
||||||
displayname = "Total Locations"
|
display_name = "Total Locations"
|
||||||
range_start = 10
|
range_start = 10
|
||||||
range_end = 500
|
range_end = 500
|
||||||
default = 20
|
default = 20
|
||||||
|
@ -12,7 +12,7 @@ class TotalLocations(Range):
|
||||||
|
|
||||||
class TotalRevivals(Range):
|
class TotalRevivals(Range):
|
||||||
"""Total Percentage of `Dio's Best Friend` item put in the item pool."""
|
"""Total Percentage of `Dio's Best Friend` item put in the item pool."""
|
||||||
displayname = "Total Percentage Revivals Available"
|
display_name = "Total Percentage Revivals Available"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 10
|
range_end = 10
|
||||||
default = 4
|
default = 4
|
||||||
|
@ -22,7 +22,7 @@ class ItemPickupStep(Range):
|
||||||
"""Number of items to pick up before an AP Check is completed.
|
"""Number of items to pick up before an AP Check is completed.
|
||||||
Setting to 1 means every other pickup.
|
Setting to 1 means every other pickup.
|
||||||
Setting to 2 means every third pickup. So on..."""
|
Setting to 2 means every third pickup. So on..."""
|
||||||
displayname = "Item Pickup Step"
|
display_name = "Item Pickup Step"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 5
|
range_end = 5
|
||||||
default = 2
|
default = 2
|
||||||
|
@ -30,17 +30,17 @@ class ItemPickupStep(Range):
|
||||||
|
|
||||||
class AllowLunarItems(DefaultOnToggle):
|
class AllowLunarItems(DefaultOnToggle):
|
||||||
"""Allows Lunar items in the item pool."""
|
"""Allows Lunar items in the item pool."""
|
||||||
displayname = "Enable Lunar Item Shuffling"
|
display_name = "Enable Lunar Item Shuffling"
|
||||||
|
|
||||||
|
|
||||||
class StartWithRevive(DefaultOnToggle):
|
class StartWithRevive(DefaultOnToggle):
|
||||||
"""Start the game with a `Dio's Best Friend` item."""
|
"""Start the game with a `Dio's Best Friend` item."""
|
||||||
displayname = "Start with a Revive"
|
display_name = "Start with a Revive"
|
||||||
|
|
||||||
|
|
||||||
class GreenScrap(Range):
|
class GreenScrap(Range):
|
||||||
"""Weight of Green Scraps in the item pool."""
|
"""Weight of Green Scraps in the item pool."""
|
||||||
displayname = "Green Scraps"
|
display_name = "Green Scraps"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 16
|
default = 16
|
||||||
|
@ -48,7 +48,7 @@ class GreenScrap(Range):
|
||||||
|
|
||||||
class RedScrap(Range):
|
class RedScrap(Range):
|
||||||
"""Weight of Red Scraps in the item pool."""
|
"""Weight of Red Scraps in the item pool."""
|
||||||
displayname = "Red Scraps"
|
display_name = "Red Scraps"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 4
|
default = 4
|
||||||
|
@ -56,7 +56,7 @@ class RedScrap(Range):
|
||||||
|
|
||||||
class YellowScrap(Range):
|
class YellowScrap(Range):
|
||||||
"""Weight of yellow scraps in the item pool."""
|
"""Weight of yellow scraps in the item pool."""
|
||||||
displayname = "Yellow Scraps"
|
display_name = "Yellow Scraps"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 1
|
default = 1
|
||||||
|
@ -64,7 +64,7 @@ class YellowScrap(Range):
|
||||||
|
|
||||||
class WhiteScrap(Range):
|
class WhiteScrap(Range):
|
||||||
"""Weight of white scraps in the item pool."""
|
"""Weight of white scraps in the item pool."""
|
||||||
displayname = "White Scraps"
|
display_name = "White Scraps"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 32
|
default = 32
|
||||||
|
@ -72,7 +72,7 @@ class WhiteScrap(Range):
|
||||||
|
|
||||||
class CommonItem(Range):
|
class CommonItem(Range):
|
||||||
"""Weight of common items in the item pool."""
|
"""Weight of common items in the item pool."""
|
||||||
displayname = "Common Items"
|
display_name = "Common Items"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 64
|
default = 64
|
||||||
|
@ -80,7 +80,7 @@ class CommonItem(Range):
|
||||||
|
|
||||||
class UncommonItem(Range):
|
class UncommonItem(Range):
|
||||||
"""Weight of uncommon items in the item pool."""
|
"""Weight of uncommon items in the item pool."""
|
||||||
displayname = "Uncommon Items"
|
display_name = "Uncommon Items"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 32
|
default = 32
|
||||||
|
@ -88,7 +88,7 @@ class UncommonItem(Range):
|
||||||
|
|
||||||
class LegendaryItem(Range):
|
class LegendaryItem(Range):
|
||||||
"""Weight of legendary items in the item pool."""
|
"""Weight of legendary items in the item pool."""
|
||||||
displayname = "Legendary Items"
|
display_name = "Legendary Items"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 8
|
default = 8
|
||||||
|
@ -96,7 +96,7 @@ class LegendaryItem(Range):
|
||||||
|
|
||||||
class BossItem(Range):
|
class BossItem(Range):
|
||||||
"""Weight of boss items in the item pool."""
|
"""Weight of boss items in the item pool."""
|
||||||
displayname = "Boss Items"
|
display_name = "Boss Items"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 4
|
default = 4
|
||||||
|
@ -104,7 +104,7 @@ class BossItem(Range):
|
||||||
|
|
||||||
class LunarItem(Range):
|
class LunarItem(Range):
|
||||||
"""Weight of lunar items in the item pool."""
|
"""Weight of lunar items in the item pool."""
|
||||||
displayname = "Lunar Items"
|
display_name = "Lunar Items"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 16
|
default = 16
|
||||||
|
@ -112,7 +112,7 @@ class LunarItem(Range):
|
||||||
|
|
||||||
class Equipment(Range):
|
class Equipment(Range):
|
||||||
"""Weight of equipment items in the item pool."""
|
"""Weight of equipment items in the item pool."""
|
||||||
displayname = "Equipment"
|
display_name = "Equipment"
|
||||||
range_start = 0
|
range_start = 0
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 32
|
default = 32
|
||||||
|
@ -120,7 +120,7 @@ class Equipment(Range):
|
||||||
|
|
||||||
class ItemPoolPresetToggle(DefaultOnToggle):
|
class ItemPoolPresetToggle(DefaultOnToggle):
|
||||||
"""Will use the item weight presets when set to true, otherwise will use the custom set item pool weights."""
|
"""Will use the item weight presets when set to true, otherwise will use the custom set item pool weights."""
|
||||||
displayname = "Item Weight Presets"
|
display_name = "Item Weight Presets"
|
||||||
|
|
||||||
class ItemWeights(Choice):
|
class ItemWeights(Choice):
|
||||||
"""Preset choices for determining the weights of the item pool.<br>
|
"""Preset choices for determining the weights of the item pool.<br>
|
||||||
|
@ -132,7 +132,7 @@ class ItemWeights(Choice):
|
||||||
No Scraps removes all scrap items from the item pool.<br>
|
No Scraps removes all scrap items from the item pool.<br>
|
||||||
Even generates the item pool with every item having an even weight.<br>
|
Even generates the item pool with every item having an even weight.<br>
|
||||||
Scraps Only will be only scrap items in the item pool."""
|
Scraps Only will be only scrap items in the item pool."""
|
||||||
displayname = "Item Weights"
|
display_name = "Item Weights"
|
||||||
option_default = 0
|
option_default = 0
|
||||||
option_new = 1
|
option_new = 1
|
||||||
option_uncommon = 2
|
option_uncommon = 2
|
||||||
|
|
|
@ -2,11 +2,11 @@ import typing
|
||||||
from Options import Choice, Range, OptionDict, OptionList, Option, Toggle, DefaultOnToggle
|
from Options import Choice, Range, OptionDict, OptionList, Option, Toggle, DefaultOnToggle
|
||||||
|
|
||||||
class StartItemsRemovesFromPool(Toggle):
|
class StartItemsRemovesFromPool(Toggle):
|
||||||
displayname = "StartItems Removes From Item Pool"
|
display_name = "StartItems Removes From Item Pool"
|
||||||
|
|
||||||
class Preset(Choice):
|
class Preset(Choice):
|
||||||
"""choose one of the preset or specify "varia_custom" to use varia_custom_preset option or specify "custom" to use custom_preset option"""
|
"""choose one of the preset or specify "varia_custom" to use varia_custom_preset option or specify "custom" to use custom_preset option"""
|
||||||
displayname = "Preset"
|
display_name = "Preset"
|
||||||
option_newbie = 0
|
option_newbie = 0
|
||||||
option_casual = 1
|
option_casual = 1
|
||||||
option_regular = 2
|
option_regular = 2
|
||||||
|
@ -22,7 +22,7 @@ class Preset(Choice):
|
||||||
default = 2
|
default = 2
|
||||||
|
|
||||||
class StartLocation(Choice):
|
class StartLocation(Choice):
|
||||||
displayname = "Start Location"
|
display_name = "Start Location"
|
||||||
option_Ceres = 0
|
option_Ceres = 0
|
||||||
option_Landing_Site = 1
|
option_Landing_Site = 1
|
||||||
option_Gauntlet_Top = 2
|
option_Gauntlet_Top = 2
|
||||||
|
@ -42,7 +42,7 @@ class StartLocation(Choice):
|
||||||
|
|
||||||
class DeathLink(Choice):
|
class DeathLink(Choice):
|
||||||
"""When DeathLink is enabled and someone dies, you will die. With survive reserve tanks can save you."""
|
"""When DeathLink is enabled and someone dies, you will die. With survive reserve tanks can save you."""
|
||||||
displayname = "Death Link"
|
display_name = "Death Link"
|
||||||
option_disable = 0
|
option_disable = 0
|
||||||
option_enable = 1
|
option_enable = 1
|
||||||
option_enable_survive = 3
|
option_enable_survive = 3
|
||||||
|
@ -51,7 +51,7 @@ class DeathLink(Choice):
|
||||||
default = 0
|
default = 0
|
||||||
|
|
||||||
class MaxDifficulty(Choice):
|
class MaxDifficulty(Choice):
|
||||||
displayname = "Maximum Difficulty"
|
display_name = "Maximum Difficulty"
|
||||||
option_easy = 0
|
option_easy = 0
|
||||||
option_medium = 1
|
option_medium = 1
|
||||||
option_hard = 2
|
option_hard = 2
|
||||||
|
@ -62,40 +62,40 @@ class MaxDifficulty(Choice):
|
||||||
default = 4
|
default = 4
|
||||||
|
|
||||||
class MorphPlacement(Choice):
|
class MorphPlacement(Choice):
|
||||||
displayname = "Morph Placement"
|
display_name = "Morph Placement"
|
||||||
option_early = 0
|
option_early = 0
|
||||||
option_normal = 1
|
option_normal = 1
|
||||||
default = 0
|
default = 0
|
||||||
|
|
||||||
class StrictMinors(Toggle):
|
class StrictMinors(Toggle):
|
||||||
displayname = "Strict Minors"
|
display_name = "Strict Minors"
|
||||||
|
|
||||||
class MissileQty(Range):
|
class MissileQty(Range):
|
||||||
displayname = "Missile Quantity"
|
display_name = "Missile Quantity"
|
||||||
range_start = 10
|
range_start = 10
|
||||||
range_end = 90
|
range_end = 90
|
||||||
default = 30
|
default = 30
|
||||||
|
|
||||||
class SuperQty(Range):
|
class SuperQty(Range):
|
||||||
displayname = "Super Quantity"
|
display_name = "Super Quantity"
|
||||||
range_start = 10
|
range_start = 10
|
||||||
range_end = 90
|
range_end = 90
|
||||||
default = 20
|
default = 20
|
||||||
|
|
||||||
class PowerBombQty(Range):
|
class PowerBombQty(Range):
|
||||||
displayname = "Power Bomb Quantity"
|
display_name = "Power Bomb Quantity"
|
||||||
range_start = 10
|
range_start = 10
|
||||||
range_end = 90
|
range_end = 90
|
||||||
default = 10
|
default = 10
|
||||||
|
|
||||||
class MinorQty(Range):
|
class MinorQty(Range):
|
||||||
displayname = "Minor Quantity"
|
display_name = "Minor Quantity"
|
||||||
range_start = 7
|
range_start = 7
|
||||||
range_end = 100
|
range_end = 100
|
||||||
default = 100
|
default = 100
|
||||||
|
|
||||||
class EnergyQty(Choice):
|
class EnergyQty(Choice):
|
||||||
displayname = "Energy Quantity"
|
display_name = "Energy Quantity"
|
||||||
option_ultra_sparse = 0
|
option_ultra_sparse = 0
|
||||||
option_sparse = 1
|
option_sparse = 1
|
||||||
option_medium = 2
|
option_medium = 2
|
||||||
|
@ -103,7 +103,7 @@ class EnergyQty(Choice):
|
||||||
default = 3
|
default = 3
|
||||||
|
|
||||||
class AreaRandomization(Choice):
|
class AreaRandomization(Choice):
|
||||||
displayname = "Area Randomization"
|
display_name = "Area Randomization"
|
||||||
option_off = 0
|
option_off = 0
|
||||||
option_light = 1
|
option_light = 1
|
||||||
option_on = 2
|
option_on = 2
|
||||||
|
@ -112,47 +112,47 @@ class AreaRandomization(Choice):
|
||||||
default = 0
|
default = 0
|
||||||
|
|
||||||
class AreaLayout(Toggle):
|
class AreaLayout(Toggle):
|
||||||
displayname = "Area Layout"
|
display_name = "Area Layout"
|
||||||
|
|
||||||
class DoorsColorsRando(Toggle):
|
class DoorsColorsRando(Toggle):
|
||||||
displayname = "Doors Colors Rando"
|
display_name = "Doors Colors Rando"
|
||||||
|
|
||||||
class AllowGreyDoors(Toggle):
|
class AllowGreyDoors(Toggle):
|
||||||
displayname = "Allow Grey Doors"
|
display_name = "Allow Grey Doors"
|
||||||
|
|
||||||
class BossRandomization(Toggle):
|
class BossRandomization(Toggle):
|
||||||
displayname = "Boss Randomization"
|
display_name = "Boss Randomization"
|
||||||
|
|
||||||
class FunCombat(Toggle):
|
class FunCombat(Toggle):
|
||||||
"""if used, might force 'items' accessibility"""
|
"""if used, might force 'items' accessibility"""
|
||||||
displayname = "Fun Combat"
|
display_name = "Fun Combat"
|
||||||
|
|
||||||
class FunMovement(Toggle):
|
class FunMovement(Toggle):
|
||||||
"""if used, might force 'items' accessibility"""
|
"""if used, might force 'items' accessibility"""
|
||||||
displayname = "Fun Movement"
|
display_name = "Fun Movement"
|
||||||
|
|
||||||
class FunSuits(Toggle):
|
class FunSuits(Toggle):
|
||||||
"""if used, might force 'items' accessibility"""
|
"""if used, might force 'items' accessibility"""
|
||||||
displayname = "Fun Suits"
|
display_name = "Fun Suits"
|
||||||
|
|
||||||
class LayoutPatches(DefaultOnToggle):
|
class LayoutPatches(DefaultOnToggle):
|
||||||
displayname = "Layout Patches"
|
display_name = "Layout Patches"
|
||||||
|
|
||||||
class VariaTweaks(Toggle):
|
class VariaTweaks(Toggle):
|
||||||
displayname = "Varia Tweaks"
|
display_name = "Varia Tweaks"
|
||||||
|
|
||||||
class NerfedCharge(Toggle):
|
class NerfedCharge(Toggle):
|
||||||
displayname = "Nerfed Charge"
|
display_name = "Nerfed Charge"
|
||||||
|
|
||||||
class GravityBehaviour(Choice):
|
class GravityBehaviour(Choice):
|
||||||
displayname = "Gravity Behaviour"
|
display_name = "Gravity Behaviour"
|
||||||
option_Vanilla = 0
|
option_Vanilla = 0
|
||||||
option_Balanced = 1
|
option_Balanced = 1
|
||||||
option_Progressive = 2
|
option_Progressive = 2
|
||||||
default = 1
|
default = 1
|
||||||
|
|
||||||
class ElevatorsDoorsSpeed(DefaultOnToggle):
|
class ElevatorsDoorsSpeed(DefaultOnToggle):
|
||||||
displayname = "Elevators doors speed"
|
display_name = "Elevators doors speed"
|
||||||
|
|
||||||
class SpinJumpRestart(Toggle):
|
class SpinJumpRestart(Toggle):
|
||||||
displayname = "Spin Jump Restart"
|
displayname = "Spin Jump Restart"
|
||||||
|
|
|
@ -3,11 +3,11 @@ from Options import Option, DefaultOnToggle, Range
|
||||||
|
|
||||||
class EnableCoinStars(DefaultOnToggle):
|
class EnableCoinStars(DefaultOnToggle):
|
||||||
"""Disable to Ignore 100 Coin Stars. You can still collect them, but they don't do anything"""
|
"""Disable to Ignore 100 Coin Stars. You can still collect them, but they don't do anything"""
|
||||||
displayname = "Enable 100 Coin Stars"
|
display_name = "Enable 100 Coin Stars"
|
||||||
|
|
||||||
class StrictCapRequirements(DefaultOnToggle):
|
class StrictCapRequirements(DefaultOnToggle):
|
||||||
"""If disabled, Stars that expect special caps may have to be acquired without the caps"""
|
"""If disabled, Stars that expect special caps may have to be acquired without the caps"""
|
||||||
displayname = "Strict Cap Requirements"
|
display_name = "Strict Cap Requirements"
|
||||||
|
|
||||||
class StarsToFinish(Range):
|
class StarsToFinish(Range):
|
||||||
"""How many stars are required at the infinite stairs"""
|
"""How many stars are required at the infinite stairs"""
|
||||||
|
|
|
@ -27,7 +27,7 @@ class OffOnFullChoice(Choice):
|
||||||
|
|
||||||
class Difficulty(EvermizerFlags, Choice):
|
class Difficulty(EvermizerFlags, Choice):
|
||||||
"""Changes relative spell cost and stuff"""
|
"""Changes relative spell cost and stuff"""
|
||||||
displayname = "Difficulty"
|
display_name = "Difficulty"
|
||||||
option_easy = 0
|
option_easy = 0
|
||||||
option_normal = 1
|
option_normal = 1
|
||||||
option_hard = 2
|
option_hard = 2
|
||||||
|
@ -39,7 +39,7 @@ class Difficulty(EvermizerFlags, Choice):
|
||||||
|
|
||||||
class MoneyModifier(Range):
|
class MoneyModifier(Range):
|
||||||
"""Money multiplier in %"""
|
"""Money multiplier in %"""
|
||||||
displayname = "Money Modifier"
|
display_name = "Money Modifier"
|
||||||
range_start = 1
|
range_start = 1
|
||||||
range_end = 2500
|
range_end = 2500
|
||||||
default = 200
|
default = 200
|
||||||
|
@ -47,7 +47,7 @@ class MoneyModifier(Range):
|
||||||
|
|
||||||
class ExpModifier(Range):
|
class ExpModifier(Range):
|
||||||
"""EXP multiplier for Weapons, Characters and Spells in %"""
|
"""EXP multiplier for Weapons, Characters and Spells in %"""
|
||||||
displayname = "Exp Modifier"
|
display_name = "Exp Modifier"
|
||||||
range_start = 1
|
range_start = 1
|
||||||
range_end = 2500
|
range_end = 2500
|
||||||
default = 200
|
default = 200
|
||||||
|
@ -55,76 +55,76 @@ class ExpModifier(Range):
|
||||||
|
|
||||||
class FixSequence(EvermizerFlag, DefaultOnToggle):
|
class FixSequence(EvermizerFlag, DefaultOnToggle):
|
||||||
"""Fix some sequence breaks"""
|
"""Fix some sequence breaks"""
|
||||||
displayname = "Fix Sequence"
|
display_name = "Fix Sequence"
|
||||||
flag = '1'
|
flag = '1'
|
||||||
|
|
||||||
|
|
||||||
class FixCheats(EvermizerFlag, DefaultOnToggle):
|
class FixCheats(EvermizerFlag, DefaultOnToggle):
|
||||||
"""Fix cheats left in by the devs (not desert skip)"""
|
"""Fix cheats left in by the devs (not desert skip)"""
|
||||||
displayname = "Fix Cheats"
|
display_name = "Fix Cheats"
|
||||||
flag = '2'
|
flag = '2'
|
||||||
|
|
||||||
|
|
||||||
class FixInfiniteAmmo(EvermizerFlag, Toggle):
|
class FixInfiniteAmmo(EvermizerFlag, Toggle):
|
||||||
"""Fix infinite ammo glitch"""
|
"""Fix infinite ammo glitch"""
|
||||||
displayname = "Fix Infinite Ammo"
|
display_name = "Fix Infinite Ammo"
|
||||||
flag = '5'
|
flag = '5'
|
||||||
|
|
||||||
|
|
||||||
class FixAtlasGlitch(EvermizerFlag, Toggle):
|
class FixAtlasGlitch(EvermizerFlag, Toggle):
|
||||||
"""Fix atlas underflowing stats"""
|
"""Fix atlas underflowing stats"""
|
||||||
displayname = "Fix Atlas Glitch"
|
display_name = "Fix Atlas Glitch"
|
||||||
flag = '6'
|
flag = '6'
|
||||||
|
|
||||||
|
|
||||||
class FixWingsGlitch(EvermizerFlag, Toggle):
|
class FixWingsGlitch(EvermizerFlag, Toggle):
|
||||||
"""Fix wings making you invincible in some areas"""
|
"""Fix wings making you invincible in some areas"""
|
||||||
displayname = "Fix Wings Glitch"
|
display_name = "Fix Wings Glitch"
|
||||||
flag = '7'
|
flag = '7'
|
||||||
|
|
||||||
|
|
||||||
class ShorterDialogs(EvermizerFlag, DefaultOnToggle):
|
class ShorterDialogs(EvermizerFlag, DefaultOnToggle):
|
||||||
"""Cuts some dialogs"""
|
"""Cuts some dialogs"""
|
||||||
displayname = "Shorter Dialogs"
|
display_name = "Shorter Dialogs"
|
||||||
flag = '9'
|
flag = '9'
|
||||||
|
|
||||||
|
|
||||||
class ShortBossRush(EvermizerFlag, DefaultOnToggle):
|
class ShortBossRush(EvermizerFlag, DefaultOnToggle):
|
||||||
"""Start boss rush at Metal Magmar, cut enemy HP in half"""
|
"""Start boss rush at Metal Magmar, cut enemy HP in half"""
|
||||||
displayname = "Short Boss Rush"
|
display_name = "Short Boss Rush"
|
||||||
flag = 'f'
|
flag = 'f'
|
||||||
|
|
||||||
|
|
||||||
class Ingredienizer(EvermizerFlags, OffOnFullChoice):
|
class Ingredienizer(EvermizerFlags, OffOnFullChoice):
|
||||||
"""On Shuffles, Full randomizes spell ingredients"""
|
"""On Shuffles, Full randomizes spell ingredients"""
|
||||||
displayname = "Ingredienizer"
|
display_name = "Ingredienizer"
|
||||||
default = 1
|
default = 1
|
||||||
flags = ['i', '', 'I']
|
flags = ['i', '', 'I']
|
||||||
|
|
||||||
|
|
||||||
class Sniffamizer(EvermizerFlags, OffOnFullChoice):
|
class Sniffamizer(EvermizerFlags, OffOnFullChoice):
|
||||||
"""On Shuffles, Full randomizes drops in sniff locations"""
|
"""On Shuffles, Full randomizes drops in sniff locations"""
|
||||||
displayname = "Sniffamizer"
|
display_name = "Sniffamizer"
|
||||||
default = 1
|
default = 1
|
||||||
flags = ['s', '', 'S']
|
flags = ['s', '', 'S']
|
||||||
|
|
||||||
|
|
||||||
class Callbeadamizer(EvermizerFlags, OffOnFullChoice):
|
class Callbeadamizer(EvermizerFlags, OffOnFullChoice):
|
||||||
"""On Shuffles call bead characters, Full shuffles individual spells"""
|
"""On Shuffles call bead characters, Full shuffles individual spells"""
|
||||||
displayname = "Callbeadamizer"
|
display_name = "Callbeadamizer"
|
||||||
default = 1
|
default = 1
|
||||||
flags = ['c', '', 'C']
|
flags = ['c', '', 'C']
|
||||||
|
|
||||||
|
|
||||||
class Musicmizer(EvermizerFlag, Toggle):
|
class Musicmizer(EvermizerFlag, Toggle):
|
||||||
"""Randomize music for some rooms"""
|
"""Randomize music for some rooms"""
|
||||||
displayname = "Musicmizer"
|
display_name = "Musicmizer"
|
||||||
flag = 'm'
|
flag = 'm'
|
||||||
|
|
||||||
|
|
||||||
class Doggomizer(EvermizerFlags, OffOnFullChoice):
|
class Doggomizer(EvermizerFlags, OffOnFullChoice):
|
||||||
"""On shuffles dog per act, Full randomizes dog per screen, Pupdunk gives you Everpupper everywhere"""
|
"""On shuffles dog per act, Full randomizes dog per screen, Pupdunk gives you Everpupper everywhere"""
|
||||||
displayname = "Doggomizer"
|
display_name = "Doggomizer"
|
||||||
option_pupdunk = 3
|
option_pupdunk = 3
|
||||||
default = 0
|
default = 0
|
||||||
flags = ['', 'd', 'D', 'p']
|
flags = ['', 'd', 'D', 'p']
|
||||||
|
@ -132,7 +132,7 @@ class Doggomizer(EvermizerFlags, OffOnFullChoice):
|
||||||
|
|
||||||
class TurdoMode(EvermizerFlag, Toggle):
|
class TurdoMode(EvermizerFlag, Toggle):
|
||||||
"""Replace offensive spells by Turd Balls with varying strength and make weapons weak"""
|
"""Replace offensive spells by Turd Balls with varying strength and make weapons weak"""
|
||||||
displayname = "Turdo Mode"
|
display_name = "Turdo Mode"
|
||||||
flag = 't'
|
flag = 't'
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue