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)):
|
||||
res = getattr(self.world, option_key)[player]
|
||||
displayname = getattr(option_obj, "displayname", option_key)
|
||||
display_name = getattr(option_obj, "display_name", option_key)
|
||||
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:
|
||||
raise Exception
|
||||
|
||||
|
|
2
Fill.py
2
Fill.py
|
@ -157,7 +157,7 @@ def distribute_items_restrictive(world: MultiWorld):
|
|||
localrestitempool, nonlocalrestitempool, restitempool, fill_locations)
|
||||
|
||||
locations: typing.Dict[LocationProgressType, typing.List[Location]] = {
|
||||
type: [] for type in LocationProgressType}
|
||||
loc_type: [] for loc_type in LocationProgressType}
|
||||
|
||||
for loc in fill_locations:
|
||||
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.timer = args.timer.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.boss_shuffle = args.shufflebosses.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)
|
||||
|
||||
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)
|
||||
|
||||
multidata_task = pool.submit(write_multidata)
|
||||
|
|
|
@ -263,7 +263,7 @@ class Context:
|
|||
@staticmethod
|
||||
def decompress(data: bytes) -> dict:
|
||||
format_version = data[0]
|
||||
if format_version > 2:
|
||||
if format_version > 3:
|
||||
raise Utils.VersionException("Incompatible multidata.")
|
||||
return restricted_loads(zlib.decompress(data[1:]))
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ def adjustGUI():
|
|||
option = sfx_options[option_name]
|
||||
optionFrame = Frame(romSettingsFrame)
|
||||
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)
|
||||
setattr(opts, option_name, StringVar())
|
||||
getattr(opts, option_name).set(option.name_lookup[option.default])
|
||||
|
@ -143,7 +143,7 @@ def adjustGUI():
|
|||
option = cosmetic_options['sword_trail_duration']
|
||||
optionFrame = Frame(romSettingsFrame)
|
||||
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)
|
||||
setattr(opts, 'sword_trail_duration', StringVar())
|
||||
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]
|
||||
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()
|
||||
autodisplayname = False
|
||||
auto_display_name = False
|
||||
|
||||
# can be weighted between selections
|
||||
supports_weighting = True
|
||||
|
@ -64,7 +64,7 @@ class Option(metaclass=AssembleOptions):
|
|||
|
||||
@classmethod
|
||||
def get_option_name(cls, value: typing.Any) -> str:
|
||||
if cls.autodisplayname:
|
||||
if cls.auto_display_name:
|
||||
return cls.name_lookup[value].replace("_", " ").title()
|
||||
else:
|
||||
return cls.name_lookup[value]
|
||||
|
@ -133,7 +133,7 @@ class DefaultOnToggle(Toggle):
|
|||
|
||||
|
||||
class Choice(Option):
|
||||
autodisplayname = True
|
||||
auto_display_name = True
|
||||
|
||||
def __init__(self, value: int):
|
||||
self.value: int = value
|
||||
|
@ -372,7 +372,7 @@ class Accessibility(Choice):
|
|||
Locations: ensure everything can be reached and acquired.
|
||||
Items: ensure all logically relevant items can be acquired.
|
||||
Minimal: ensure what is needed to reach your goal can be acquired."""
|
||||
displayname = "Accessibility"
|
||||
display_name = "Accessibility"
|
||||
option_locations = 0
|
||||
option_items = 1
|
||||
option_minimal = 2
|
||||
|
@ -382,7 +382,7 @@ class Accessibility(Choice):
|
|||
|
||||
class ProgressionBalancing(DefaultOnToggle):
|
||||
"""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 = {
|
||||
|
@ -398,45 +398,50 @@ class ItemSet(OptionSet):
|
|||
|
||||
class LocalItems(ItemSet):
|
||||
"""Forces these items to be in their native world."""
|
||||
displayname = "Local Items"
|
||||
display_name = "Local Items"
|
||||
|
||||
|
||||
class NonLocalItems(ItemSet):
|
||||
"""Forces these items to be outside their native world."""
|
||||
displayname = "Not Local Items"
|
||||
display_name = "Not Local Items"
|
||||
|
||||
|
||||
class StartInventory(ItemDict):
|
||||
"""Start with these items."""
|
||||
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):
|
||||
"""Start with these item's locations prefilled into the !hint command."""
|
||||
displayname = "Start Hints"
|
||||
display_name = "Start Hints"
|
||||
|
||||
|
||||
class StartLocationHints(OptionSet):
|
||||
"""Start with these locations and their item prefilled into the !hint command"""
|
||||
displayname = "Start Location Hints"
|
||||
display_name = "Start Location Hints"
|
||||
|
||||
|
||||
class ExcludeLocations(OptionSet):
|
||||
"""Prevent these locations from having an important item"""
|
||||
displayname = "Excluded Locations"
|
||||
display_name = "Excluded Locations"
|
||||
verify_location_name = True
|
||||
|
||||
|
||||
class PriorityLocations(OptionSet):
|
||||
"""Prevent these locations from having an unimportant item"""
|
||||
displayname = "Priority Locations"
|
||||
display_name = "Priority Locations"
|
||||
verify_location_name = True
|
||||
|
||||
|
||||
class DeathLink(Toggle):
|
||||
"""When you die, everyone dies. Of course the reverse is true too."""
|
||||
displayname = "Death Link"
|
||||
display_name = "Death Link"
|
||||
|
||||
|
||||
per_game_common_options = {
|
||||
|
|
|
@ -69,7 +69,7 @@ def create():
|
|||
elif option.options:
|
||||
game_options[option_name] = this_option = {
|
||||
"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!",
|
||||
"defaultValue": None,
|
||||
"options": []
|
||||
|
@ -92,7 +92,7 @@ def create():
|
|||
elif hasattr(option, "range_start") and hasattr(option, "range_end"):
|
||||
game_options[option_name] = {
|
||||
"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!",
|
||||
"defaultValue": option.default if hasattr(option, "default") else option.range_start,
|
||||
"min": option.range_start,
|
||||
|
@ -102,14 +102,14 @@ def create():
|
|||
elif getattr(option, "verify_item_name", False):
|
||||
game_options[option_name] = {
|
||||
"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!",
|
||||
}
|
||||
|
||||
elif getattr(option, "verify_location_name", False):
|
||||
game_options[option_name] = {
|
||||
"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!",
|
||||
}
|
||||
|
||||
|
@ -117,7 +117,7 @@ def create():
|
|||
if option.valid_keys:
|
||||
game_options[option_name] = {
|
||||
"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!",
|
||||
"options": list(option.valid_keys),
|
||||
}
|
||||
|
|
|
@ -46,26 +46,26 @@ class DungeonItem(Choice):
|
|||
class bigkey_shuffle(DungeonItem):
|
||||
"""Big Key Placement"""
|
||||
item_name_group = "Big Keys"
|
||||
displayname = "Big Key Shuffle"
|
||||
display_name = "Big Key Shuffle"
|
||||
|
||||
|
||||
class smallkey_shuffle(DungeonItem):
|
||||
"""Small Key Placement"""
|
||||
option_universal = 5
|
||||
item_name_group = "Small Keys"
|
||||
displayname = "Small Key Shuffle"
|
||||
display_name = "Small Key Shuffle"
|
||||
|
||||
|
||||
class compass_shuffle(DungeonItem):
|
||||
"""Compass Placement"""
|
||||
item_name_group = "Compasses"
|
||||
displayname = "Compass Shuffle"
|
||||
display_name = "Compass Shuffle"
|
||||
|
||||
|
||||
class map_shuffle(DungeonItem):
|
||||
"""Map Placement"""
|
||||
item_name_group = "Maps"
|
||||
displayname = "Map Shuffle"
|
||||
display_name = "Map Shuffle"
|
||||
|
||||
|
||||
class Crystals(Range):
|
||||
|
@ -118,7 +118,7 @@ class Enemies(Choice):
|
|||
|
||||
|
||||
class Progressive(Choice):
|
||||
displayname = "Progressive Items"
|
||||
display_name = "Progressive Items"
|
||||
option_off = 0
|
||||
option_grouped_random = 1
|
||||
option_on = 2
|
||||
|
@ -137,24 +137,24 @@ class Swordless(Toggle):
|
|||
can be opened without a sword. Hammer damages Ganon.
|
||||
Ether and Bombos Tablet can be activated with Hammer
|
||||
(and Book)."""
|
||||
displayname = "Swordless"
|
||||
display_name = "Swordless"
|
||||
|
||||
|
||||
class Retro(Toggle):
|
||||
"""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."""
|
||||
displayname = "Retro"
|
||||
display_name = "Retro"
|
||||
|
||||
|
||||
class RestrictBossItem(Toggle):
|
||||
"""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):
|
||||
"""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."""
|
||||
displayname = "Hints"
|
||||
display_name = "Hints"
|
||||
option_off = 0
|
||||
option_vendors = 1
|
||||
option_on = 2
|
||||
|
@ -167,27 +167,27 @@ class Hints(Choice):
|
|||
class EnemyShuffle(Toggle):
|
||||
"""Randomize every enemy spawn.
|
||||
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):
|
||||
"""Makes Thieves killable."""
|
||||
displayname = "Killable Thieves"
|
||||
display_name = "Killable Thieves"
|
||||
|
||||
|
||||
class BushShuffle(Toggle):
|
||||
"""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):
|
||||
"""Randomize flying tiles floor patterns."""
|
||||
displayname = "Tile Shuffle"
|
||||
display_name = "Tile Shuffle"
|
||||
|
||||
|
||||
class PotShuffle(Toggle):
|
||||
"""Shuffle contents of pots within "supertiles" (item will still be nearby original placement)."""
|
||||
displayname = "Pot Shuffle"
|
||||
display_name = "Pot Shuffle"
|
||||
|
||||
|
||||
class Palette(Choice):
|
||||
|
@ -203,31 +203,31 @@ class Palette(Choice):
|
|||
|
||||
|
||||
class OWPalette(Palette):
|
||||
displayname = "Overworld Palette"
|
||||
display_name = "Overworld Palette"
|
||||
|
||||
|
||||
class UWPalette(Palette):
|
||||
displayname = "Underworld Palette"
|
||||
display_name = "Underworld Palette"
|
||||
|
||||
|
||||
class HUDPalette(Palette):
|
||||
displayname = "Menu Palette"
|
||||
display_name = "Menu Palette"
|
||||
|
||||
|
||||
class SwordPalette(Palette):
|
||||
displayname = "Sword Palette"
|
||||
display_name = "Sword Palette"
|
||||
|
||||
|
||||
class ShieldPalette(Palette):
|
||||
displayname = "Shield Palette"
|
||||
display_name = "Shield Palette"
|
||||
|
||||
|
||||
class LinkPalette(Palette):
|
||||
displayname = "Link Palette"
|
||||
display_name = "Link Palette"
|
||||
|
||||
|
||||
class HeartBeep(Choice):
|
||||
displayname = "Heart Beep Rate"
|
||||
display_name = "Heart Beep Rate"
|
||||
option_normal = 0
|
||||
option_double = 1
|
||||
option_half = 2
|
||||
|
@ -237,7 +237,7 @@ class HeartBeep(Choice):
|
|||
|
||||
|
||||
class HeartColor(Choice):
|
||||
displayname = "Heart Color"
|
||||
display_name = "Heart Color"
|
||||
option_red = 0
|
||||
option_blue = 1
|
||||
option_green = 2
|
||||
|
@ -245,11 +245,11 @@ class HeartColor(Choice):
|
|||
|
||||
|
||||
class QuickSwap(DefaultOnToggle):
|
||||
displayname = "L/R Quickswapping"
|
||||
display_name = "L/R Quickswapping"
|
||||
|
||||
|
||||
class MenuSpeed(Choice):
|
||||
displayname = "Menu Speed"
|
||||
display_name = "Menu Speed"
|
||||
option_normal = 0
|
||||
option_instant = 1,
|
||||
option_double = 2
|
||||
|
@ -259,7 +259,7 @@ class MenuSpeed(Choice):
|
|||
|
||||
|
||||
class Music(DefaultOnToggle):
|
||||
displayname = "Play music"
|
||||
display_name = "Play music"
|
||||
|
||||
|
||||
class ReduceFlashing(DefaultOnToggle):
|
||||
|
|
|
@ -11,7 +11,7 @@ LuaBool = Or(bool, And(int, lambda n: n in (0, 1)))
|
|||
|
||||
class MaxSciencePack(Choice):
|
||||
"""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_logistic_science_pack = 1
|
||||
option_military_science_pack = 2
|
||||
|
@ -35,7 +35,7 @@ class MaxSciencePack(Choice):
|
|||
|
||||
class Goal(Choice):
|
||||
"""Goal required to complete the game."""
|
||||
displayname = "Goal"
|
||||
display_name = "Goal"
|
||||
option_rocket = 0
|
||||
option_satellite = 1
|
||||
default = 0
|
||||
|
@ -43,7 +43,7 @@ class Goal(Choice):
|
|||
|
||||
class TechCost(Choice):
|
||||
"""How expensive are the technologies."""
|
||||
displayname = "Technology Cost Scale"
|
||||
display_name = "Technology Cost Scale"
|
||||
option_very_easy = 0
|
||||
option_easy = 1
|
||||
option_kind = 2
|
||||
|
@ -56,7 +56,7 @@ class TechCost(Choice):
|
|||
|
||||
class Silo(Choice):
|
||||
"""Ingredients to craft rocket silo or auto-place if set to spawn."""
|
||||
displayname = "Rocket Silo"
|
||||
display_name = "Rocket Silo"
|
||||
option_vanilla = 0
|
||||
option_randomize_recipe = 1
|
||||
option_spawn = 2
|
||||
|
@ -65,7 +65,7 @@ class Silo(Choice):
|
|||
|
||||
class Satellite(Choice):
|
||||
"""Ingredients to craft satellite."""
|
||||
displayname = "Satellite"
|
||||
display_name = "Satellite"
|
||||
option_vanilla = 0
|
||||
option_randomize_recipe = 1
|
||||
default = 0
|
||||
|
@ -73,7 +73,7 @@ class Satellite(Choice):
|
|||
|
||||
class FreeSamples(Choice):
|
||||
"""Get free items with your technologies."""
|
||||
displayname = "Free Samples"
|
||||
display_name = "Free Samples"
|
||||
option_none = 0
|
||||
option_single_craft = 1
|
||||
option_half_stack = 2
|
||||
|
@ -83,7 +83,7 @@ class FreeSamples(Choice):
|
|||
|
||||
class TechTreeLayout(Choice):
|
||||
"""Selects how the tech tree nodes are interwoven."""
|
||||
displayname = "Technology Tree Layout"
|
||||
display_name = "Technology Tree Layout"
|
||||
option_single = 0
|
||||
option_small_diamonds = 1
|
||||
option_medium_diamonds = 2
|
||||
|
@ -101,7 +101,7 @@ class TechTreeLayout(Choice):
|
|||
|
||||
class TechTreeInformation(Choice):
|
||||
"""How much information should be displayed in the tech tree."""
|
||||
displayname = "Technology Tree Information"
|
||||
display_name = "Technology Tree Information"
|
||||
option_none = 0
|
||||
option_advancement = 1
|
||||
option_full = 2
|
||||
|
@ -119,7 +119,7 @@ class RecipeTime(Choice):
|
|||
New Normal: 0.25 - 10 seconds
|
||||
New Slow: 5 - 10 seconds
|
||||
"""
|
||||
displayname = "Recipe Time"
|
||||
display_name = "Recipe Time"
|
||||
option_vanilla = 0
|
||||
option_fast = 1
|
||||
option_normal = 2
|
||||
|
@ -133,7 +133,7 @@ class RecipeTime(Choice):
|
|||
class Progressive(Choice):
|
||||
"""Merges together Technologies like "automation-1" to "automation-3" into 3 copies of "Progressive Automation",
|
||||
which awards them in order."""
|
||||
displayname = "Progressive Technologies"
|
||||
display_name = "Progressive Technologies"
|
||||
option_off = 0
|
||||
option_grouped_random = 1
|
||||
option_on = 2
|
||||
|
@ -147,26 +147,26 @@ class Progressive(Choice):
|
|||
|
||||
class RecipeIngredients(Choice):
|
||||
"""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_science_pack = 1
|
||||
|
||||
|
||||
class FactorioStartItems(ItemDict):
|
||||
"""Mapping of Factorio internal item-name to amount granted on start."""
|
||||
displayname = "Starting Items"
|
||||
display_name = "Starting Items"
|
||||
verify_item_name = False
|
||||
default = {"burner-mining-drill": 19, "stone-furnace": 19}
|
||||
|
||||
|
||||
class FactorioFreeSampleBlacklist(OptionSet):
|
||||
"""Set of items that should never be granted from Free Samples"""
|
||||
displayname = "Free Sample Blacklist"
|
||||
display_name = "Free Sample Blacklist"
|
||||
|
||||
|
||||
class FactorioFreeSampleWhitelist(OptionSet):
|
||||
"""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):
|
||||
|
@ -175,19 +175,19 @@ class TrapCount(Range):
|
|||
|
||||
class AttackTrapCount(TrapCount):
|
||||
"""Trap items that when received trigger an attack on your base."""
|
||||
displayname = "Attack Traps"
|
||||
display_name = "Attack Traps"
|
||||
|
||||
|
||||
class EvolutionTrapCount(TrapCount):
|
||||
"""Trap items that when received increase the enemy evolution."""
|
||||
displayname = "Evolution Traps"
|
||||
display_name = "Evolution Traps"
|
||||
|
||||
|
||||
class EvolutionTrapIncrease(Range):
|
||||
"""How much an Evolution Trap increases the enemy evolution.
|
||||
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...)"""
|
||||
displayname = "Evolution Trap % Effect"
|
||||
display_name = "Evolution Trap % Effect"
|
||||
range_start = 1
|
||||
default = 10
|
||||
range_end = 100
|
||||
|
@ -196,7 +196,7 @@ class EvolutionTrapIncrease(Range):
|
|||
class FactorioWorldGen(OptionDict):
|
||||
"""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"""
|
||||
displayname = "World Generation"
|
||||
display_name = "World Generation"
|
||||
# FIXME: do we want default be a rando-optimized default or in-game DS?
|
||||
value: typing.Dict[str, typing.Dict[str, typing.Any]]
|
||||
default = {
|
||||
|
@ -330,7 +330,7 @@ class FactorioWorldGen(OptionDict):
|
|||
|
||||
class ImportedBlueprint(DefaultOnToggle):
|
||||
"""Allow or Disallow Blueprints from outside the current savegame."""
|
||||
displayname = "Blueprints"
|
||||
display_name = "Blueprints"
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
generate_output = generate_mod
|
||||
|
||||
def create_regions(self):
|
||||
|
@ -205,7 +204,8 @@ class Factorio(World):
|
|||
new_ingredient = pool.pop()
|
||||
liquids_used += 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) -> \
|
||||
Recipe:
|
||||
|
@ -292,7 +292,8 @@ class Factorio(World):
|
|||
if remaining_num_ingredients > 1:
|
||||
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):
|
||||
custom_technologies = {}
|
||||
|
|
|
@ -4,15 +4,15 @@ from Options import OptionDict
|
|||
|
||||
|
||||
class Locations(OptionDict):
|
||||
displayname = "locations"
|
||||
display_name = "locations"
|
||||
|
||||
|
||||
class Items(OptionDict):
|
||||
displayname = "items"
|
||||
display_name = "items"
|
||||
|
||||
|
||||
class Rules(OptionDict):
|
||||
displayname = "rules"
|
||||
display_name = "rules"
|
||||
|
||||
|
||||
ff1_options: Dict[str, OptionDict] = {
|
||||
|
|
|
@ -4,7 +4,7 @@ from Options import Choice, Option, Toggle, Range, OptionList, DeathLink
|
|||
|
||||
class AdvancementGoal(Range):
|
||||
"""Number of advancements required to spawn bosses."""
|
||||
displayname = "Advancement Goal"
|
||||
display_name = "Advancement Goal"
|
||||
range_start = 0
|
||||
range_end = 92
|
||||
default = 40
|
||||
|
@ -12,7 +12,7 @@ class AdvancementGoal(Range):
|
|||
|
||||
class EggShardsRequired(Range):
|
||||
"""Number of dragon egg shards to collect to spawn bosses."""
|
||||
displayname = "Egg Shards Required"
|
||||
display_name = "Egg Shards Required"
|
||||
range_start = 0
|
||||
range_end = 40
|
||||
default = 0
|
||||
|
@ -20,7 +20,7 @@ class EggShardsRequired(Range):
|
|||
|
||||
class EggShardsAvailable(Range):
|
||||
"""Number of dragon egg shards available to collect."""
|
||||
displayname = "Egg Shards Available"
|
||||
display_name = "Egg Shards Available"
|
||||
range_start = 0
|
||||
range_end = 40
|
||||
default = 0
|
||||
|
@ -28,7 +28,7 @@ class EggShardsAvailable(Range):
|
|||
|
||||
class BossGoal(Choice):
|
||||
"""Bosses which must be defeated to finish the game."""
|
||||
displayname = "Required Bosses"
|
||||
display_name = "Required Bosses"
|
||||
option_none = 0
|
||||
option_ender_dragon = 1
|
||||
option_wither = 2
|
||||
|
@ -38,19 +38,19 @@ class BossGoal(Choice):
|
|||
|
||||
class ShuffleStructures(Toggle):
|
||||
"""Enables shuffling of villages, outposts, fortresses, bastions, and end cities."""
|
||||
displayname = "Shuffle Structures"
|
||||
display_name = "Shuffle Structures"
|
||||
default = 1
|
||||
|
||||
|
||||
class StructureCompasses(Toggle):
|
||||
"""Adds structure compasses to the item pool, which point to the nearest indicated structure."""
|
||||
displayname = "Structure Compasses"
|
||||
display_name = "Structure Compasses"
|
||||
default = 1
|
||||
|
||||
|
||||
class BeeTraps(Range):
|
||||
"""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_end = 100
|
||||
default = 0
|
||||
|
@ -58,7 +58,7 @@ class BeeTraps(Range):
|
|||
|
||||
class CombatDifficulty(Choice):
|
||||
"""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_normal = 1
|
||||
option_hard = 2
|
||||
|
@ -67,31 +67,31 @@ class CombatDifficulty(Choice):
|
|||
|
||||
class HardAdvancements(Toggle):
|
||||
"""Enables certain RNG-reliant or tedious advancements."""
|
||||
displayname = "Include Hard Advancements"
|
||||
display_name = "Include Hard Advancements"
|
||||
default = 0
|
||||
|
||||
|
||||
class UnreasonableAdvancements(Toggle):
|
||||
"""Enables the extremely difficult advancements "How Did We Get Here?" and "Adventuring Time.\""""
|
||||
displayname = "Include Unreasonable Advancements"
|
||||
display_name = "Include Unreasonable Advancements"
|
||||
default = 0
|
||||
|
||||
|
||||
class PostgameAdvancements(Toggle):
|
||||
"""Enables advancements that require spawning and defeating the required bosses."""
|
||||
displayname = "Include Postgame Advancements"
|
||||
display_name = "Include Postgame Advancements"
|
||||
default = 0
|
||||
|
||||
|
||||
class SendDefeatedMobs(Toggle):
|
||||
"""Send killed mobs to other Minecraft worlds which have this option enabled."""
|
||||
displayname = "Send Defeated Mobs"
|
||||
display_name = "Send Defeated Mobs"
|
||||
default = 0
|
||||
|
||||
|
||||
class StartingItems(OptionList):
|
||||
"""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)] = {
|
||||
|
|
|
@ -4,7 +4,7 @@ from Options import Choice
|
|||
|
||||
class kokiri_color(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_kokiri_green = 2
|
||||
|
@ -43,7 +43,7 @@ class kokiri_color(Choice):
|
|||
|
||||
class goron_color(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_kokiri_green = 2
|
||||
|
@ -82,7 +82,7 @@ class goron_color(Choice):
|
|||
|
||||
class zora_color(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_kokiri_green = 2
|
||||
|
@ -121,7 +121,7 @@ class zora_color(Choice):
|
|||
|
||||
class silver_gauntlets_color(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_silver = 2
|
||||
|
@ -142,7 +142,7 @@ class silver_gauntlets_color(Choice):
|
|||
|
||||
class golden_gauntlets_color(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_silver = 2
|
||||
|
@ -163,7 +163,7 @@ class golden_gauntlets_color(Choice):
|
|||
|
||||
class mirror_shield_frame_color(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_red = 2
|
||||
|
@ -181,7 +181,7 @@ class mirror_shield_frame_color(Choice):
|
|||
|
||||
class navi_color_default_inner(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
@ -209,7 +209,7 @@ class navi_color_default_inner(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."""
|
||||
displayname = "Navi Idle Outer"
|
||||
display_name = "Navi Idle Outer"
|
||||
option_random_choice = 0
|
||||
option_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
@ -238,7 +238,7 @@ class navi_color_default_outer(Choice):
|
|||
|
||||
class navi_color_enemy_inner(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
@ -266,7 +266,7 @@ class navi_color_enemy_inner(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."""
|
||||
displayname = "Navi Targeting Enemy Outer"
|
||||
display_name = "Navi Targeting Enemy Outer"
|
||||
option_random_choice = 0
|
||||
option_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
@ -295,7 +295,7 @@ class navi_color_enemy_outer(Choice):
|
|||
|
||||
class navi_color_npc_inner(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
@ -323,7 +323,7 @@ class navi_color_npc_inner(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."""
|
||||
displayname = "Navi Targeting NPC Outer"
|
||||
display_name = "Navi Targeting NPC Outer"
|
||||
option_random_choice = 0
|
||||
option_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
@ -352,7 +352,7 @@ class navi_color_npc_outer(Choice):
|
|||
|
||||
class navi_color_prop_inner(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
@ -380,7 +380,7 @@ class navi_color_prop_inner(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."""
|
||||
displayname = "Navi Targeting Prop Outer"
|
||||
display_name = "Navi Targeting Prop Outer"
|
||||
option_random_choice = 0
|
||||
option_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
@ -409,7 +409,7 @@ class navi_color_prop_outer(Choice):
|
|||
|
||||
class sword_trail_color_inner(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
@ -428,7 +428,7 @@ class sword_trail_color_inner(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."""
|
||||
displayname = "Sword Trail Outer"
|
||||
display_name = "Sword Trail Outer"
|
||||
option_random_choice = 0
|
||||
option_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
@ -448,7 +448,7 @@ class sword_trail_color_outer(Choice):
|
|||
|
||||
class bombchu_trail_color_inner(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
@ -466,7 +466,7 @@ class bombchu_trail_color_inner(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."""
|
||||
displayname = "Bombchu Trail Outer"
|
||||
display_name = "Bombchu Trail Outer"
|
||||
option_random_choice = 0
|
||||
option_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
@ -485,7 +485,7 @@ class bombchu_trail_color_outer(Choice):
|
|||
|
||||
class boomerang_trail_color_inner(Choice):
|
||||
"""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_completely_random = 1
|
||||
option_rainbow = 2
|
||||
|
|
|
@ -6,7 +6,7 @@ from .ColorSFXOptions import *
|
|||
|
||||
class Logic(Choice):
|
||||
"""Set the logic used for the generator."""
|
||||
displayname = "Logic Rules"
|
||||
display_name = "Logic Rules"
|
||||
option_glitchless = 0
|
||||
option_glitched = 1
|
||||
option_no_logic = 2
|
||||
|
@ -14,12 +14,12 @@ class Logic(Choice):
|
|||
|
||||
class NightTokens(Toggle):
|
||||
"""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):
|
||||
"""Set the state of Kokiri Forest and the path to Deku Tree."""
|
||||
displayname = "Forest"
|
||||
display_name = "Forest"
|
||||
option_open = 0
|
||||
option_closed_deku = 1
|
||||
option_closed = 2
|
||||
|
@ -29,7 +29,7 @@ class Forest(Choice):
|
|||
|
||||
class Gate(Choice):
|
||||
"""Set the state of the Kakariko Village gate."""
|
||||
displayname = "Kakariko Gate"
|
||||
display_name = "Kakariko Gate"
|
||||
option_open = 0
|
||||
option_zelda = 1
|
||||
option_closed = 2
|
||||
|
@ -37,12 +37,12 @@ class Gate(Choice):
|
|||
|
||||
class DoorOfTime(DefaultOnToggle):
|
||||
"""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):
|
||||
"""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_adult = 1
|
||||
option_closed = 2
|
||||
|
@ -51,7 +51,7 @@ class Fountain(Choice):
|
|||
|
||||
class Fortress(Choice):
|
||||
"""Set the requirements for access to Gerudo Fortress."""
|
||||
displayname = "Gerudo Fortress"
|
||||
display_name = "Gerudo Fortress"
|
||||
option_normal = 0
|
||||
option_fast = 1
|
||||
option_open = 2
|
||||
|
@ -60,7 +60,7 @@ class Fortress(Choice):
|
|||
|
||||
class Bridge(Choice):
|
||||
"""Set the requirements for the Rainbow Bridge."""
|
||||
displayname = "Rainbow Bridge Requirement"
|
||||
display_name = "Rainbow Bridge Requirement"
|
||||
option_open = 0
|
||||
option_vanilla = 1
|
||||
option_stones = 2
|
||||
|
@ -72,7 +72,7 @@ class Bridge(Choice):
|
|||
|
||||
class Trials(Range):
|
||||
"""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_end = 6
|
||||
|
||||
|
@ -90,14 +90,14 @@ open_options: typing.Dict[str, type(Option)] = {
|
|||
|
||||
class StartingAge(Choice):
|
||||
"""Choose which age Link will start as."""
|
||||
displayname = "Starting Age"
|
||||
display_name = "Starting Age"
|
||||
option_child = 0
|
||||
option_adult = 1
|
||||
|
||||
|
||||
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."""
|
||||
displayname = "Shuffle Interior Entrances"
|
||||
display_name = "Shuffle Interior Entrances"
|
||||
option_off = 0
|
||||
option_simple = 1
|
||||
option_all = 2
|
||||
|
@ -107,37 +107,37 @@ class InteriorEntrances(Choice):
|
|||
|
||||
class GrottoEntrances(Toggle):
|
||||
"""Shuffles grotto and grave entrances."""
|
||||
displayname = "Shuffle Grotto/Grave Entrances"
|
||||
display_name = "Shuffle Grotto/Grave Entrances"
|
||||
|
||||
|
||||
class DungeonEntrances(Toggle):
|
||||
"""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):
|
||||
"""Shuffles overworld loading zones."""
|
||||
displayname = "Shuffle Overworld Entrances"
|
||||
display_name = "Shuffle Overworld Entrances"
|
||||
|
||||
|
||||
class OwlDrops(Toggle):
|
||||
"""Randomizes owl drops from Lake Hylia or Death Mountain Trail as child."""
|
||||
displayname = "Randomize Owl Drops"
|
||||
display_name = "Randomize Owl Drops"
|
||||
|
||||
|
||||
class WarpSongs(Toggle):
|
||||
"""Randomizes warp song destinations."""
|
||||
displayname = "Randomize Warp Songs"
|
||||
display_name = "Randomize Warp Songs"
|
||||
|
||||
|
||||
class SpawnPositions(Toggle):
|
||||
"""Randomizes the starting position on loading a save. Consistent between savewarps."""
|
||||
displayname = "Randomize Spawn Positions"
|
||||
display_name = "Randomize Spawn Positions"
|
||||
|
||||
|
||||
class MixEntrancePools(Choice):
|
||||
"""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_indoor = 1
|
||||
option_all = 2
|
||||
|
@ -146,17 +146,17 @@ class MixEntrancePools(Choice):
|
|||
|
||||
class DecoupleEntrances(Toggle):
|
||||
"""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):
|
||||
"""Gather pieces of the Triforce scattered around the world to complete the game."""
|
||||
displayname = "Triforce Hunt"
|
||||
display_name = "Triforce Hunt"
|
||||
|
||||
|
||||
class TriforceGoal(Range):
|
||||
"""Number of Triforce pieces required to complete the game."""
|
||||
displayname = "Required Triforce Pieces"
|
||||
display_name = "Required Triforce Pieces"
|
||||
range_start = 1
|
||||
range_end = 100
|
||||
default = 20
|
||||
|
@ -164,7 +164,7 @@ class TriforceGoal(Range):
|
|||
|
||||
class ExtraTriforces(Range):
|
||||
"""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_end = 100
|
||||
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" \"\"\"{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():
|
||||
f.write(f" option_{color} = {id}\n")
|
||||
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" \"\"\"{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():
|
||||
f.write(f" option_{sound} = {id}\n")
|
||||
f.write(f"\n\n\n")
|
||||
|
|
|
@ -2,18 +2,18 @@ from Options import Range, Toggle, DefaultOnToggle, Choice
|
|||
|
||||
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."""
|
||||
displayname = "Use resource packs"
|
||||
display_name = "Use resource packs"
|
||||
|
||||
class MinimumResourcePackAmount(Range):
|
||||
"""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_end = 15
|
||||
default = 1
|
||||
|
||||
class MaximumResourcePackAmount(Range):
|
||||
"""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_end = 15
|
||||
default = 5
|
||||
|
@ -22,7 +22,7 @@ class DuplicateItems(Choice):
|
|||
"""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,
|
||||
and selecting Progression may produce many of the same duplicate item."""
|
||||
displayname = "Duplicate items"
|
||||
display_name = "Duplicate items"
|
||||
option_disabled = 0
|
||||
option_progression = 1
|
||||
option_non_progression = 2
|
||||
|
@ -30,7 +30,7 @@ class DuplicateItems(Choice):
|
|||
|
||||
class IslandFrequencyLocations(Choice):
|
||||
"""Sets where frequencies for story islands are located."""
|
||||
displayname = "Frequency locations"
|
||||
display_name = "Frequency locations"
|
||||
option_vanilla = 0
|
||||
option_random_on_island = 1
|
||||
option_progressive = 2
|
||||
|
@ -39,15 +39,15 @@ class IslandFrequencyLocations(Choice):
|
|||
|
||||
class ProgressiveItems(DefaultOnToggle):
|
||||
"""Makes some items, like the Bow and Arrow, progressive rather than raw unlocks."""
|
||||
displayname = "Progressive items"
|
||||
display_name = "Progressive items"
|
||||
|
||||
class BigIslandEarlyCrafting(Toggle):
|
||||
"""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):
|
||||
"""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 = {
|
||||
"use_resource_packs": UseResourcePacks,
|
||||
|
|
|
@ -7,7 +7,7 @@ class StartingGender(Choice):
|
|||
"""
|
||||
Determines the gender of your initial 'Sir Lee' character.
|
||||
"""
|
||||
displayname = "Starting Gender"
|
||||
display_name = "Starting Gender"
|
||||
option_sir = 0
|
||||
option_lady = 1
|
||||
alias_male = 0
|
||||
|
@ -19,7 +19,7 @@ class StartingClass(Choice):
|
|||
"""
|
||||
Determines the starting class of your initial 'Sir Lee' character.
|
||||
"""
|
||||
displayname = "Starting Class"
|
||||
display_name = "Starting Class"
|
||||
option_knight = 0
|
||||
option_mage = 1
|
||||
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
|
||||
recommended for those inexperienced to Rogue Legacy!
|
||||
"""
|
||||
displayname = "New Game Plus"
|
||||
display_name = "New Game Plus"
|
||||
option_normal = 0
|
||||
option_new_game_plus = 1
|
||||
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
|
||||
warned.
|
||||
"""
|
||||
displayname = "Enemy Level Scaling Percentage"
|
||||
display_name = "Enemy Level Scaling Percentage"
|
||||
range_start = 1
|
||||
range_end = 300
|
||||
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
|
||||
bonuses can be found in Fairy Chests.
|
||||
"""
|
||||
displayname = "Fairy Chests Per Zone"
|
||||
display_name = "Fairy Chests Per Zone"
|
||||
range_start = 5
|
||||
range_end = 15
|
||||
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
|
||||
gold or stat bonuses can be found in Chests.
|
||||
"""
|
||||
displayname = "Chests Per Zone"
|
||||
display_name = "Chests Per Zone"
|
||||
range_start = 15
|
||||
range_end = 30
|
||||
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.
|
||||
"""
|
||||
displayname = "Universal Fairy Chests"
|
||||
display_name = "Universal Fairy Chests"
|
||||
|
||||
|
||||
class UniversalChests(Toggle):
|
||||
"""
|
||||
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):
|
||||
"""
|
||||
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_early = 1
|
||||
option_normal = 2
|
||||
|
@ -109,7 +109,7 @@ class Architect(Choice):
|
|||
"""
|
||||
Determines where the Architect sits in the item pool.
|
||||
"""
|
||||
displayname = "Architect"
|
||||
display_name = "Architect"
|
||||
option_start_unlocked = 0
|
||||
option_normal = 2
|
||||
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
|
||||
takes all your gold. 0 means his services are free.
|
||||
"""
|
||||
displayname = "Architect Fee Percentage"
|
||||
display_name = "Architect Fee Percentage"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
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.
|
||||
"""
|
||||
displayname = "Disable Charon"
|
||||
display_name = "Disable Charon"
|
||||
|
||||
|
||||
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
|
||||
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):
|
||||
|
@ -147,14 +147,14 @@ class ProgressiveBlueprints(Toggle):
|
|||
Instead of shuffling blueprints randomly into the pool, blueprint unlocks are progressively unlocked. You would get
|
||||
Squire first, then Knight, etc., until finally Dark.
|
||||
"""
|
||||
displayname = "Progressive Blueprints"
|
||||
display_name = "Progressive Blueprints"
|
||||
|
||||
|
||||
class GoldGainMultiplier(Choice):
|
||||
"""
|
||||
Adjusts the multiplier for gaining gold from all sources.
|
||||
"""
|
||||
displayname = "Gold Gain Multiplier"
|
||||
display_name = "Gold Gain Multiplier"
|
||||
option_normal = 0
|
||||
option_quarter = 1
|
||||
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.
|
||||
"""
|
||||
displayname = "Number of Children"
|
||||
display_name = "Number of Children"
|
||||
range_start = 1
|
||||
range_end = 5
|
||||
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
|
||||
Gender.
|
||||
"""
|
||||
displayname = "Additional Names"
|
||||
display_name = "Additional Names"
|
||||
|
||||
|
||||
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
|
||||
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):
|
||||
|
|
|
@ -4,7 +4,7 @@ from Options import Option, DefaultOnToggle, Range, Choice
|
|||
|
||||
class TotalLocations(Range):
|
||||
"""Number of location checks which are added to the Risk of Rain playthrough."""
|
||||
displayname = "Total Locations"
|
||||
display_name = "Total Locations"
|
||||
range_start = 10
|
||||
range_end = 500
|
||||
default = 20
|
||||
|
@ -12,7 +12,7 @@ class TotalLocations(Range):
|
|||
|
||||
class TotalRevivals(Range):
|
||||
"""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_end = 10
|
||||
default = 4
|
||||
|
@ -22,7 +22,7 @@ class ItemPickupStep(Range):
|
|||
"""Number of items to pick up before an AP Check is completed.
|
||||
Setting to 1 means every other pickup.
|
||||
Setting to 2 means every third pickup. So on..."""
|
||||
displayname = "Item Pickup Step"
|
||||
display_name = "Item Pickup Step"
|
||||
range_start = 0
|
||||
range_end = 5
|
||||
default = 2
|
||||
|
@ -30,17 +30,17 @@ class ItemPickupStep(Range):
|
|||
|
||||
class AllowLunarItems(DefaultOnToggle):
|
||||
"""Allows Lunar items in the item pool."""
|
||||
displayname = "Enable Lunar Item Shuffling"
|
||||
display_name = "Enable Lunar Item Shuffling"
|
||||
|
||||
|
||||
class StartWithRevive(DefaultOnToggle):
|
||||
"""Start the game with a `Dio's Best Friend` item."""
|
||||
displayname = "Start with a Revive"
|
||||
display_name = "Start with a Revive"
|
||||
|
||||
|
||||
class GreenScrap(Range):
|
||||
"""Weight of Green Scraps in the item pool."""
|
||||
displayname = "Green Scraps"
|
||||
display_name = "Green Scraps"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 16
|
||||
|
@ -48,7 +48,7 @@ class GreenScrap(Range):
|
|||
|
||||
class RedScrap(Range):
|
||||
"""Weight of Red Scraps in the item pool."""
|
||||
displayname = "Red Scraps"
|
||||
display_name = "Red Scraps"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 4
|
||||
|
@ -56,7 +56,7 @@ class RedScrap(Range):
|
|||
|
||||
class YellowScrap(Range):
|
||||
"""Weight of yellow scraps in the item pool."""
|
||||
displayname = "Yellow Scraps"
|
||||
display_name = "Yellow Scraps"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 1
|
||||
|
@ -64,7 +64,7 @@ class YellowScrap(Range):
|
|||
|
||||
class WhiteScrap(Range):
|
||||
"""Weight of white scraps in the item pool."""
|
||||
displayname = "White Scraps"
|
||||
display_name = "White Scraps"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 32
|
||||
|
@ -72,7 +72,7 @@ class WhiteScrap(Range):
|
|||
|
||||
class CommonItem(Range):
|
||||
"""Weight of common items in the item pool."""
|
||||
displayname = "Common Items"
|
||||
display_name = "Common Items"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 64
|
||||
|
@ -80,7 +80,7 @@ class CommonItem(Range):
|
|||
|
||||
class UncommonItem(Range):
|
||||
"""Weight of uncommon items in the item pool."""
|
||||
displayname = "Uncommon Items"
|
||||
display_name = "Uncommon Items"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 32
|
||||
|
@ -88,7 +88,7 @@ class UncommonItem(Range):
|
|||
|
||||
class LegendaryItem(Range):
|
||||
"""Weight of legendary items in the item pool."""
|
||||
displayname = "Legendary Items"
|
||||
display_name = "Legendary Items"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 8
|
||||
|
@ -96,7 +96,7 @@ class LegendaryItem(Range):
|
|||
|
||||
class BossItem(Range):
|
||||
"""Weight of boss items in the item pool."""
|
||||
displayname = "Boss Items"
|
||||
display_name = "Boss Items"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 4
|
||||
|
@ -104,7 +104,7 @@ class BossItem(Range):
|
|||
|
||||
class LunarItem(Range):
|
||||
"""Weight of lunar items in the item pool."""
|
||||
displayname = "Lunar Items"
|
||||
display_name = "Lunar Items"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 16
|
||||
|
@ -112,7 +112,7 @@ class LunarItem(Range):
|
|||
|
||||
class Equipment(Range):
|
||||
"""Weight of equipment items in the item pool."""
|
||||
displayname = "Equipment"
|
||||
display_name = "Equipment"
|
||||
range_start = 0
|
||||
range_end = 100
|
||||
default = 32
|
||||
|
@ -120,7 +120,7 @@ class Equipment(Range):
|
|||
|
||||
class ItemPoolPresetToggle(DefaultOnToggle):
|
||||
"""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):
|
||||
"""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>
|
||||
Even generates the item pool with every item having an even weight.<br>
|
||||
Scraps Only will be only scrap items in the item pool."""
|
||||
displayname = "Item Weights"
|
||||
display_name = "Item Weights"
|
||||
option_default = 0
|
||||
option_new = 1
|
||||
option_uncommon = 2
|
||||
|
|
|
@ -2,11 +2,11 @@ import typing
|
|||
from Options import Choice, Range, OptionDict, OptionList, Option, Toggle, DefaultOnToggle
|
||||
|
||||
class StartItemsRemovesFromPool(Toggle):
|
||||
displayname = "StartItems Removes From Item Pool"
|
||||
display_name = "StartItems Removes From Item Pool"
|
||||
|
||||
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"""
|
||||
displayname = "Preset"
|
||||
display_name = "Preset"
|
||||
option_newbie = 0
|
||||
option_casual = 1
|
||||
option_regular = 2
|
||||
|
@ -22,7 +22,7 @@ class Preset(Choice):
|
|||
default = 2
|
||||
|
||||
class StartLocation(Choice):
|
||||
displayname = "Start Location"
|
||||
display_name = "Start Location"
|
||||
option_Ceres = 0
|
||||
option_Landing_Site = 1
|
||||
option_Gauntlet_Top = 2
|
||||
|
@ -42,7 +42,7 @@ class StartLocation(Choice):
|
|||
|
||||
class DeathLink(Choice):
|
||||
"""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_enable = 1
|
||||
option_enable_survive = 3
|
||||
|
@ -51,7 +51,7 @@ class DeathLink(Choice):
|
|||
default = 0
|
||||
|
||||
class MaxDifficulty(Choice):
|
||||
displayname = "Maximum Difficulty"
|
||||
display_name = "Maximum Difficulty"
|
||||
option_easy = 0
|
||||
option_medium = 1
|
||||
option_hard = 2
|
||||
|
@ -62,40 +62,40 @@ class MaxDifficulty(Choice):
|
|||
default = 4
|
||||
|
||||
class MorphPlacement(Choice):
|
||||
displayname = "Morph Placement"
|
||||
display_name = "Morph Placement"
|
||||
option_early = 0
|
||||
option_normal = 1
|
||||
default = 0
|
||||
|
||||
class StrictMinors(Toggle):
|
||||
displayname = "Strict Minors"
|
||||
display_name = "Strict Minors"
|
||||
|
||||
class MissileQty(Range):
|
||||
displayname = "Missile Quantity"
|
||||
display_name = "Missile Quantity"
|
||||
range_start = 10
|
||||
range_end = 90
|
||||
default = 30
|
||||
|
||||
class SuperQty(Range):
|
||||
displayname = "Super Quantity"
|
||||
display_name = "Super Quantity"
|
||||
range_start = 10
|
||||
range_end = 90
|
||||
default = 20
|
||||
|
||||
class PowerBombQty(Range):
|
||||
displayname = "Power Bomb Quantity"
|
||||
display_name = "Power Bomb Quantity"
|
||||
range_start = 10
|
||||
range_end = 90
|
||||
default = 10
|
||||
|
||||
class MinorQty(Range):
|
||||
displayname = "Minor Quantity"
|
||||
display_name = "Minor Quantity"
|
||||
range_start = 7
|
||||
range_end = 100
|
||||
default = 100
|
||||
|
||||
class EnergyQty(Choice):
|
||||
displayname = "Energy Quantity"
|
||||
display_name = "Energy Quantity"
|
||||
option_ultra_sparse = 0
|
||||
option_sparse = 1
|
||||
option_medium = 2
|
||||
|
@ -103,7 +103,7 @@ class EnergyQty(Choice):
|
|||
default = 3
|
||||
|
||||
class AreaRandomization(Choice):
|
||||
displayname = "Area Randomization"
|
||||
display_name = "Area Randomization"
|
||||
option_off = 0
|
||||
option_light = 1
|
||||
option_on = 2
|
||||
|
@ -112,47 +112,47 @@ class AreaRandomization(Choice):
|
|||
default = 0
|
||||
|
||||
class AreaLayout(Toggle):
|
||||
displayname = "Area Layout"
|
||||
display_name = "Area Layout"
|
||||
|
||||
class DoorsColorsRando(Toggle):
|
||||
displayname = "Doors Colors Rando"
|
||||
display_name = "Doors Colors Rando"
|
||||
|
||||
class AllowGreyDoors(Toggle):
|
||||
displayname = "Allow Grey Doors"
|
||||
display_name = "Allow Grey Doors"
|
||||
|
||||
class BossRandomization(Toggle):
|
||||
displayname = "Boss Randomization"
|
||||
display_name = "Boss Randomization"
|
||||
|
||||
class FunCombat(Toggle):
|
||||
"""if used, might force 'items' accessibility"""
|
||||
displayname = "Fun Combat"
|
||||
display_name = "Fun Combat"
|
||||
|
||||
class FunMovement(Toggle):
|
||||
"""if used, might force 'items' accessibility"""
|
||||
displayname = "Fun Movement"
|
||||
display_name = "Fun Movement"
|
||||
|
||||
class FunSuits(Toggle):
|
||||
"""if used, might force 'items' accessibility"""
|
||||
displayname = "Fun Suits"
|
||||
display_name = "Fun Suits"
|
||||
|
||||
class LayoutPatches(DefaultOnToggle):
|
||||
displayname = "Layout Patches"
|
||||
display_name = "Layout Patches"
|
||||
|
||||
class VariaTweaks(Toggle):
|
||||
displayname = "Varia Tweaks"
|
||||
display_name = "Varia Tweaks"
|
||||
|
||||
class NerfedCharge(Toggle):
|
||||
displayname = "Nerfed Charge"
|
||||
display_name = "Nerfed Charge"
|
||||
|
||||
class GravityBehaviour(Choice):
|
||||
displayname = "Gravity Behaviour"
|
||||
display_name = "Gravity Behaviour"
|
||||
option_Vanilla = 0
|
||||
option_Balanced = 1
|
||||
option_Progressive = 2
|
||||
default = 1
|
||||
|
||||
class ElevatorsDoorsSpeed(DefaultOnToggle):
|
||||
displayname = "Elevators doors speed"
|
||||
display_name = "Elevators doors speed"
|
||||
|
||||
class SpinJumpRestart(Toggle):
|
||||
displayname = "Spin Jump Restart"
|
||||
|
|
|
@ -3,11 +3,11 @@ from Options import Option, DefaultOnToggle, Range
|
|||
|
||||
class EnableCoinStars(DefaultOnToggle):
|
||||
"""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):
|
||||
"""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):
|
||||
"""How many stars are required at the infinite stairs"""
|
||||
|
|
|
@ -27,7 +27,7 @@ class OffOnFullChoice(Choice):
|
|||
|
||||
class Difficulty(EvermizerFlags, Choice):
|
||||
"""Changes relative spell cost and stuff"""
|
||||
displayname = "Difficulty"
|
||||
display_name = "Difficulty"
|
||||
option_easy = 0
|
||||
option_normal = 1
|
||||
option_hard = 2
|
||||
|
@ -39,7 +39,7 @@ class Difficulty(EvermizerFlags, Choice):
|
|||
|
||||
class MoneyModifier(Range):
|
||||
"""Money multiplier in %"""
|
||||
displayname = "Money Modifier"
|
||||
display_name = "Money Modifier"
|
||||
range_start = 1
|
||||
range_end = 2500
|
||||
default = 200
|
||||
|
@ -47,7 +47,7 @@ class MoneyModifier(Range):
|
|||
|
||||
class ExpModifier(Range):
|
||||
"""EXP multiplier for Weapons, Characters and Spells in %"""
|
||||
displayname = "Exp Modifier"
|
||||
display_name = "Exp Modifier"
|
||||
range_start = 1
|
||||
range_end = 2500
|
||||
default = 200
|
||||
|
@ -55,76 +55,76 @@ class ExpModifier(Range):
|
|||
|
||||
class FixSequence(EvermizerFlag, DefaultOnToggle):
|
||||
"""Fix some sequence breaks"""
|
||||
displayname = "Fix Sequence"
|
||||
display_name = "Fix Sequence"
|
||||
flag = '1'
|
||||
|
||||
|
||||
class FixCheats(EvermizerFlag, DefaultOnToggle):
|
||||
"""Fix cheats left in by the devs (not desert skip)"""
|
||||
displayname = "Fix Cheats"
|
||||
display_name = "Fix Cheats"
|
||||
flag = '2'
|
||||
|
||||
|
||||
class FixInfiniteAmmo(EvermizerFlag, Toggle):
|
||||
"""Fix infinite ammo glitch"""
|
||||
displayname = "Fix Infinite Ammo"
|
||||
display_name = "Fix Infinite Ammo"
|
||||
flag = '5'
|
||||
|
||||
|
||||
class FixAtlasGlitch(EvermizerFlag, Toggle):
|
||||
"""Fix atlas underflowing stats"""
|
||||
displayname = "Fix Atlas Glitch"
|
||||
display_name = "Fix Atlas Glitch"
|
||||
flag = '6'
|
||||
|
||||
|
||||
class FixWingsGlitch(EvermizerFlag, Toggle):
|
||||
"""Fix wings making you invincible in some areas"""
|
||||
displayname = "Fix Wings Glitch"
|
||||
display_name = "Fix Wings Glitch"
|
||||
flag = '7'
|
||||
|
||||
|
||||
class ShorterDialogs(EvermizerFlag, DefaultOnToggle):
|
||||
"""Cuts some dialogs"""
|
||||
displayname = "Shorter Dialogs"
|
||||
display_name = "Shorter Dialogs"
|
||||
flag = '9'
|
||||
|
||||
|
||||
class ShortBossRush(EvermizerFlag, DefaultOnToggle):
|
||||
"""Start boss rush at Metal Magmar, cut enemy HP in half"""
|
||||
displayname = "Short Boss Rush"
|
||||
display_name = "Short Boss Rush"
|
||||
flag = 'f'
|
||||
|
||||
|
||||
class Ingredienizer(EvermizerFlags, OffOnFullChoice):
|
||||
"""On Shuffles, Full randomizes spell ingredients"""
|
||||
displayname = "Ingredienizer"
|
||||
display_name = "Ingredienizer"
|
||||
default = 1
|
||||
flags = ['i', '', 'I']
|
||||
|
||||
|
||||
class Sniffamizer(EvermizerFlags, OffOnFullChoice):
|
||||
"""On Shuffles, Full randomizes drops in sniff locations"""
|
||||
displayname = "Sniffamizer"
|
||||
display_name = "Sniffamizer"
|
||||
default = 1
|
||||
flags = ['s', '', 'S']
|
||||
|
||||
|
||||
class Callbeadamizer(EvermizerFlags, OffOnFullChoice):
|
||||
"""On Shuffles call bead characters, Full shuffles individual spells"""
|
||||
displayname = "Callbeadamizer"
|
||||
display_name = "Callbeadamizer"
|
||||
default = 1
|
||||
flags = ['c', '', 'C']
|
||||
|
||||
|
||||
class Musicmizer(EvermizerFlag, Toggle):
|
||||
"""Randomize music for some rooms"""
|
||||
displayname = "Musicmizer"
|
||||
display_name = "Musicmizer"
|
||||
flag = 'm'
|
||||
|
||||
|
||||
class Doggomizer(EvermizerFlags, OffOnFullChoice):
|
||||
"""On shuffles dog per act, Full randomizes dog per screen, Pupdunk gives you Everpupper everywhere"""
|
||||
displayname = "Doggomizer"
|
||||
display_name = "Doggomizer"
|
||||
option_pupdunk = 3
|
||||
default = 0
|
||||
flags = ['', 'd', 'D', 'p']
|
||||
|
@ -132,7 +132,7 @@ class Doggomizer(EvermizerFlags, OffOnFullChoice):
|
|||
|
||||
class TurdoMode(EvermizerFlag, Toggle):
|
||||
"""Replace offensive spells by Turd Balls with varying strength and make weapons weak"""
|
||||
displayname = "Turdo Mode"
|
||||
display_name = "Turdo Mode"
|
||||
flag = 't'
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue