Options for amount of time given in timer modes
(Primarily to make Timed OHKO a viable multiworld and/or mystery option, but also works with other timer modes as well)
This commit is contained in:
parent
b1fe3d3e7b
commit
41a58084f1
|
@ -119,6 +119,10 @@ class World(object):
|
||||||
set_player_attr('treasure_hunt_icon', 'Triforce Piece')
|
set_player_attr('treasure_hunt_icon', 'Triforce Piece')
|
||||||
set_player_attr('treasure_hunt_count', 0)
|
set_player_attr('treasure_hunt_count', 0)
|
||||||
set_player_attr('clock_mode', False)
|
set_player_attr('clock_mode', False)
|
||||||
|
set_player_attr('countdown_start_time', 10)
|
||||||
|
set_player_attr('red_clock_time', -2)
|
||||||
|
set_player_attr('blue_clock_time', 2)
|
||||||
|
set_player_attr('green_clock_time', 4)
|
||||||
set_player_attr('can_take_damage', True)
|
set_player_attr('can_take_damage', True)
|
||||||
set_player_attr('glitch_boots', True)
|
set_player_attr('glitch_boots', True)
|
||||||
set_player_attr('progression_balancing', True)
|
set_player_attr('progression_balancing', True)
|
||||||
|
|
|
@ -129,6 +129,14 @@ def parse_arguments(argv, no_defaults=False):
|
||||||
Timed mode. If time runs out, you lose (but can
|
Timed mode. If time runs out, you lose (but can
|
||||||
still keep playing).
|
still keep playing).
|
||||||
''')
|
''')
|
||||||
|
parser.add_argument('--countdown_start_time', default=defval(10), type=int,
|
||||||
|
help='''Set amount of time, in minutes, to start with in Timed Countdown and Timed OHKO modes''')
|
||||||
|
parser.add_argument('--red_clock_time', default=defval(-2), type=int,
|
||||||
|
help='''Set amount of time, in minutes, to add from picking up red clocks; negative removes time instead''')
|
||||||
|
parser.add_argument('--blue_clock_time', default=defval(2), type=int,
|
||||||
|
help='''Set amount of time, in minutes, to add from picking up blue clocks; negative removes time instead''')
|
||||||
|
parser.add_argument('--green_clock_time', default=defval(4), type=int,
|
||||||
|
help='''Set amount of time, in minutes, to add from picking up green clocks; negative removes time instead''')
|
||||||
parser.add_argument('--dungeon_counters', default=defval('default'), const='default', nargs='?', choices=['default', 'on', 'pickup', 'off'],
|
parser.add_argument('--dungeon_counters', default=defval('default'), const='default', nargs='?', choices=['default', 'on', 'pickup', 'off'],
|
||||||
help='''\
|
help='''\
|
||||||
Select dungeon counter display settings. (default: %(default)s)
|
Select dungeon counter display settings. (default: %(default)s)
|
||||||
|
@ -366,6 +374,7 @@ def parse_arguments(argv, no_defaults=False):
|
||||||
|
|
||||||
for name in ['logic', 'mode', 'swords', 'goal', 'difficulty', 'item_functionality',
|
for name in ['logic', 'mode', 'swords', 'goal', 'difficulty', 'item_functionality',
|
||||||
'shuffle', 'crystals_ganon', 'crystals_gt', 'open_pyramid', 'timer',
|
'shuffle', 'crystals_ganon', 'crystals_gt', 'open_pyramid', 'timer',
|
||||||
|
'countdown_start_time', 'red_clock_time', 'blue_clock_time', 'green_clock_time',
|
||||||
'mapshuffle', 'compassshuffle', 'keyshuffle', 'bigkeyshuffle', 'startinventory',
|
'mapshuffle', 'compassshuffle', 'keyshuffle', 'bigkeyshuffle', 'startinventory',
|
||||||
'local_items', 'retro', 'accessibility', 'hints', 'beemizer',
|
'local_items', 'retro', 'accessibility', 'hints', 'beemizer',
|
||||||
'shufflebosses', 'enemy_shuffle', 'enemy_health', 'enemy_damage', 'shufflepots',
|
'shufflebosses', 'enemy_shuffle', 'enemy_health', 'enemy_damage', 'shufflepots',
|
||||||
|
|
68
Gui.py
68
Gui.py
|
@ -120,6 +120,56 @@ def guiMain(args=None):
|
||||||
balancingCheckbutton.pack(expand=True, anchor=W)
|
balancingCheckbutton.pack(expand=True, anchor=W)
|
||||||
patchesCheckbutton.pack(expand=True, anchor=W)
|
patchesCheckbutton.pack(expand=True, anchor=W)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
timerOptionsFrame = LabelFrame(rightHalfFrame, text="Timer options")
|
||||||
|
for i in range(3):
|
||||||
|
timerOptionsFrame.columnconfigure(i, weight=1)
|
||||||
|
timerOptionsFrame.rowconfigure(i, weight=1)
|
||||||
|
|
||||||
|
timerModeFrame = Frame(timerOptionsFrame)
|
||||||
|
timerModeFrame.grid(row=0, column=0, columnspan=3, sticky=E, padx=3)
|
||||||
|
timerVar = StringVar()
|
||||||
|
timerVar.set('none')
|
||||||
|
timerModeMenu = OptionMenu(timerModeFrame, timerVar, 'none', 'display', 'timed', 'timed-ohko', 'ohko', 'timed-countdown')
|
||||||
|
timerLabel = Label(timerModeFrame, text='Timer setting')
|
||||||
|
timerLabel.pack(side=LEFT)
|
||||||
|
timerModeMenu.pack(side=LEFT)
|
||||||
|
|
||||||
|
timerCountdownFrame = Frame(timerOptionsFrame)
|
||||||
|
timerCountdownFrame.grid(row=1, column=0, columnspan=3, sticky=E, padx=3)
|
||||||
|
timerCountdownLabel = Label(timerCountdownFrame, text='Countdown starting time')
|
||||||
|
timerCountdownLabel.pack(side=LEFT)
|
||||||
|
timerCountdownVar = IntVar(value=10)
|
||||||
|
timerCountdownSpinbox = Spinbox(timerCountdownFrame, from_=0, to=480, width=3, textvariable=timerCountdownVar)
|
||||||
|
timerCountdownSpinbox.pack(side=LEFT)
|
||||||
|
|
||||||
|
timerRedFrame = Frame(timerOptionsFrame)
|
||||||
|
timerRedFrame.grid(row=2, column=0, sticky=E, padx=3)
|
||||||
|
timerRedLabel = Label(timerRedFrame, text='Clock adjustments: Red')
|
||||||
|
timerRedLabel.pack(side=LEFT)
|
||||||
|
timerRedVar = IntVar(value=-2)
|
||||||
|
timerRedSpinbox = Spinbox(timerRedFrame, from_=-60, to=60, width=3, textvariable=timerRedVar)
|
||||||
|
timerRedSpinbox.pack(side=LEFT)
|
||||||
|
|
||||||
|
timerBlueFrame = Frame(timerOptionsFrame)
|
||||||
|
timerBlueFrame.grid(row=2, column=1, sticky=E, padx=3)
|
||||||
|
timerBlueLabel = Label(timerBlueFrame, text='Blue')
|
||||||
|
timerBlueLabel.pack(side=LEFT)
|
||||||
|
timerBlueVar = IntVar(value=2)
|
||||||
|
timerBlueSpinbox = Spinbox(timerBlueFrame, from_=-60, to=60, width=3, textvariable=timerBlueVar)
|
||||||
|
timerBlueSpinbox.pack(side=LEFT)
|
||||||
|
|
||||||
|
timerGreenFrame = Frame(timerOptionsFrame)
|
||||||
|
timerGreenFrame.grid(row=2, column=2, sticky=E, padx=3)
|
||||||
|
timerGreenLabel = Label(timerGreenFrame, text='Green')
|
||||||
|
timerGreenLabel.pack(side=LEFT)
|
||||||
|
timerGreenVar = IntVar(value=4)
|
||||||
|
timerGreenSpinbox = Spinbox(timerGreenFrame, from_=-60, to=60, width=3, textvariable=timerGreenVar)
|
||||||
|
timerGreenSpinbox.pack(side=LEFT)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
romOptionsFrame = LabelFrame(rightHalfFrame, text="Rom options")
|
romOptionsFrame = LabelFrame(rightHalfFrame, text="Rom options")
|
||||||
romOptionsFrame.columnconfigure(0, weight=1)
|
romOptionsFrame.columnconfigure(0, weight=1)
|
||||||
romOptionsFrame.columnconfigure(1, weight=1)
|
romOptionsFrame.columnconfigure(1, weight=1)
|
||||||
|
@ -266,6 +316,7 @@ def guiMain(args=None):
|
||||||
romSelectButton.pack(side=LEFT)
|
romSelectButton.pack(side=LEFT)
|
||||||
|
|
||||||
checkBoxFrame.pack(side=TOP, anchor=W, padx=5, pady=10)
|
checkBoxFrame.pack(side=TOP, anchor=W, padx=5, pady=10)
|
||||||
|
timerOptionsFrame.pack(expand=True, fill=BOTH, padx=3)
|
||||||
romOptionsFrame.pack(expand=True, fill=BOTH, padx=3)
|
romOptionsFrame.pack(expand=True, fill=BOTH, padx=3)
|
||||||
|
|
||||||
drowDownFrame = Frame(topFrame)
|
drowDownFrame = Frame(topFrame)
|
||||||
|
@ -344,14 +395,6 @@ def guiMain(args=None):
|
||||||
itemfunctionLabel = Label(itemfunctionFrame, text='Difficulty: item functionality')
|
itemfunctionLabel = Label(itemfunctionFrame, text='Difficulty: item functionality')
|
||||||
itemfunctionLabel.pack(side=LEFT)
|
itemfunctionLabel.pack(side=LEFT)
|
||||||
|
|
||||||
timerFrame = Frame(drowDownFrame)
|
|
||||||
timerVar = StringVar()
|
|
||||||
timerVar.set('none')
|
|
||||||
timerOptionMenu = OptionMenu(timerFrame, timerVar, 'none', 'display', 'timed', 'timed-ohko', 'ohko', 'timed-countdown')
|
|
||||||
timerOptionMenu.pack(side=RIGHT)
|
|
||||||
timerLabel = Label(timerFrame, text='Timer setting')
|
|
||||||
timerLabel.pack(side=LEFT)
|
|
||||||
|
|
||||||
dungeonCounterFrame = Frame(drowDownFrame)
|
dungeonCounterFrame = Frame(drowDownFrame)
|
||||||
dungeonCounterVar = StringVar()
|
dungeonCounterVar = StringVar()
|
||||||
dungeonCounterVar.set('auto')
|
dungeonCounterVar.set('auto')
|
||||||
|
@ -412,7 +455,6 @@ def guiMain(args=None):
|
||||||
swordFrame.pack(expand=True, anchor=E)
|
swordFrame.pack(expand=True, anchor=E)
|
||||||
difficultyFrame.pack(expand=True, anchor=E)
|
difficultyFrame.pack(expand=True, anchor=E)
|
||||||
itemfunctionFrame.pack(expand=True, anchor=E)
|
itemfunctionFrame.pack(expand=True, anchor=E)
|
||||||
timerFrame.pack(expand=True, anchor=E)
|
|
||||||
dungeonCounterFrame.pack(expand=True, anchor=E)
|
dungeonCounterFrame.pack(expand=True, anchor=E)
|
||||||
progressiveFrame.pack(expand=True, anchor=E)
|
progressiveFrame.pack(expand=True, anchor=E)
|
||||||
accessibilityFrame.pack(expand=True, anchor=E)
|
accessibilityFrame.pack(expand=True, anchor=E)
|
||||||
|
@ -538,6 +580,10 @@ def guiMain(args=None):
|
||||||
guiargs.difficulty = difficultyVar.get()
|
guiargs.difficulty = difficultyVar.get()
|
||||||
guiargs.item_functionality = itemfunctionVar.get()
|
guiargs.item_functionality = itemfunctionVar.get()
|
||||||
guiargs.timer = timerVar.get()
|
guiargs.timer = timerVar.get()
|
||||||
|
guiargs.countdown_start_time = timerCountdownVar.get()
|
||||||
|
guiargs.red_clock_time = timerRedVar.get()
|
||||||
|
guiargs.blue_clock_time = timerBlueVar.get()
|
||||||
|
guiargs.green_clock_time = timerGreenVar.get()
|
||||||
guiargs.skip_progression_balancing = not balancingVar.get()
|
guiargs.skip_progression_balancing = not balancingVar.get()
|
||||||
if guiargs.timer == "none":
|
if guiargs.timer == "none":
|
||||||
guiargs.timer = False
|
guiargs.timer = False
|
||||||
|
@ -1424,6 +1470,10 @@ def guiMain(args=None):
|
||||||
difficultyVar.set(args.difficulty)
|
difficultyVar.set(args.difficulty)
|
||||||
itemfunctionVar.set(args.item_functionality)
|
itemfunctionVar.set(args.item_functionality)
|
||||||
timerVar.set(args.timer)
|
timerVar.set(args.timer)
|
||||||
|
timerCountdownVar.set(args.countdown_start_time)
|
||||||
|
timerRedVar.set(args.red_clock_time)
|
||||||
|
timerBlueVar.set(args.blue_clock_time)
|
||||||
|
timerGreenVar.set(args.green_clock_time)
|
||||||
progressiveVar.set(args.progressive)
|
progressiveVar.set(args.progressive)
|
||||||
accessibilityVar.set(args.accessibility)
|
accessibilityVar.set(args.accessibility)
|
||||||
goalVar.set(args.goal)
|
goalVar.set(args.goal)
|
||||||
|
|
4
Main.py
4
Main.py
|
@ -72,6 +72,10 @@ def main(args, seed=None):
|
||||||
world.tile_shuffle = args.tile_shuffle.copy()
|
world.tile_shuffle = args.tile_shuffle.copy()
|
||||||
world.beemizer = args.beemizer.copy()
|
world.beemizer = args.beemizer.copy()
|
||||||
world.timer = args.timer.copy()
|
world.timer = args.timer.copy()
|
||||||
|
world.countdown_start_time = args.countdown_start_time.copy()
|
||||||
|
world.red_clock_time = args.red_clock_time.copy()
|
||||||
|
world.blue_clock_time = args.blue_clock_time.copy()
|
||||||
|
world.green_clock_time = args.green_clock_time.copy()
|
||||||
world.shufflepots = args.shufflepots.copy()
|
world.shufflepots = args.shufflepots.copy()
|
||||||
world.progressive = args.progressive.copy()
|
world.progressive = args.progressive.copy()
|
||||||
world.dungeon_counters = args.dungeon_counters.copy()
|
world.dungeon_counters = args.dungeon_counters.copy()
|
||||||
|
|
|
@ -444,6 +444,11 @@ def roll_settings(weights):
|
||||||
'timed_countdown': 'timed-countdown',
|
'timed_countdown': 'timed-countdown',
|
||||||
'display': 'display'}[get_choice('timer', weights, False)]
|
'display': 'display'}[get_choice('timer', weights, False)]
|
||||||
|
|
||||||
|
ret.countdown_start_time = int(get_choice('countdown_start_time', weights, 10))
|
||||||
|
ret.red_clock_time = int(get_choice('red_clock_time', weights, -2))
|
||||||
|
ret.blue_clock_time = int(get_choice('blue_clock_time', weights, 2))
|
||||||
|
ret.green_clock_time = int(get_choice('green_clock_time', weights, 4))
|
||||||
|
|
||||||
ret.dungeon_counters = get_choice('dungeon_counters', weights, 'default')
|
ret.dungeon_counters = get_choice('dungeon_counters', weights, 'default')
|
||||||
|
|
||||||
ret.progressive = convert_to_on_off(get_choice('progressive', weights, 'on'))
|
ret.progressive = convert_to_on_off(get_choice('progressive', weights, 'on'))
|
||||||
|
|
59
Rom.py
59
Rom.py
|
@ -1021,47 +1021,30 @@ def patch_rom(world, rom, player, team, enemized):
|
||||||
rom.write_byte(0x180044, 0x01) # hammer activates tablets
|
rom.write_byte(0x180044, 0x01) # hammer activates tablets
|
||||||
|
|
||||||
# set up clocks for timed modes
|
# set up clocks for timed modes
|
||||||
if world.shuffle[player] == 'vanilla':
|
if world.clock_mode[player] in ['ohko', 'countdown-ohko']:
|
||||||
ERtimeincrease = 0
|
|
||||||
elif world.shuffle[player] in ['dungeonssimple', 'dungeonsfull']:
|
|
||||||
ERtimeincrease = 10
|
|
||||||
else:
|
|
||||||
ERtimeincrease = 20
|
|
||||||
if world.keyshuffle[player] or world.bigkeyshuffle[player] or world.mapshuffle[player]:
|
|
||||||
ERtimeincrease = ERtimeincrease + 15
|
|
||||||
if world.clock_mode[player] == False:
|
|
||||||
rom.write_bytes(0x180190, [0x00, 0x00, 0x00]) # turn off clock mode
|
|
||||||
rom.write_int32(0x180200, 0) # red clock adjustment time (in frames, sint32)
|
|
||||||
rom.write_int32(0x180204, 0) # blue clock adjustment time (in frames, sint32)
|
|
||||||
rom.write_int32(0x180208, 0) # green clock adjustment time (in frames, sint32)
|
|
||||||
rom.write_int32(0x18020C, 0) # starting time (in frames, sint32)
|
|
||||||
elif world.clock_mode[player] == 'ohko':
|
|
||||||
rom.write_bytes(0x180190, [0x01, 0x02, 0x01]) # ohko timer with resetable timer functionality
|
rom.write_bytes(0x180190, [0x01, 0x02, 0x01]) # ohko timer with resetable timer functionality
|
||||||
rom.write_int32(0x180200, 0) # red clock adjustment time (in frames, sint32)
|
elif world.clock_mode[player] == 'stopwatch':
|
||||||
rom.write_int32(0x180204, 0) # blue clock adjustment time (in frames, sint32)
|
|
||||||
rom.write_int32(0x180208, 0) # green clock adjustment time (in frames, sint32)
|
|
||||||
rom.write_int32(0x18020C, 0) # starting time (in frames, sint32)
|
|
||||||
elif world.clock_mode[player] == 'countdown-ohko':
|
|
||||||
rom.write_bytes(0x180190, [0x01, 0x02, 0x01]) # ohko timer with resetable timer functionality
|
|
||||||
rom.write_int32(0x180200, -100 * 60 * 60 * 60) # red clock adjustment time (in frames, sint32)
|
|
||||||
rom.write_int32(0x180204, 2 * 60 * 60) # blue clock adjustment time (in frames, sint32)
|
|
||||||
rom.write_int32(0x180208, 4 * 60 * 60) # green clock adjustment time (in frames, sint32)
|
|
||||||
if world.difficulty_adjustments[player] in ['easy', 'normal']:
|
|
||||||
rom.write_int32(0x18020C, (10 + ERtimeincrease) * 60 * 60) # starting time (in frames, sint32)
|
|
||||||
else:
|
|
||||||
rom.write_int32(0x18020C, int((5 + ERtimeincrease / 2) * 60 * 60)) # starting time (in frames, sint32)
|
|
||||||
if world.clock_mode[player] == 'stopwatch':
|
|
||||||
rom.write_bytes(0x180190, [0x02, 0x01, 0x00]) # set stopwatch mode
|
rom.write_bytes(0x180190, [0x02, 0x01, 0x00]) # set stopwatch mode
|
||||||
rom.write_int32(0x180200, -2 * 60 * 60) # red clock adjustment time (in frames, sint32)
|
elif world.clock_mode[player] == 'countdown':
|
||||||
rom.write_int32(0x180204, 2 * 60 * 60) # blue clock adjustment time (in frames, sint32)
|
|
||||||
rom.write_int32(0x180208, 4 * 60 * 60) # green clock adjustment time (in frames, sint32)
|
|
||||||
rom.write_int32(0x18020C, 0) # starting time (in frames, sint32)
|
|
||||||
if world.clock_mode[player] == 'countdown':
|
|
||||||
rom.write_bytes(0x180190, [0x01, 0x01, 0x00]) # set countdown, with no reset available
|
rom.write_bytes(0x180190, [0x01, 0x01, 0x00]) # set countdown, with no reset available
|
||||||
rom.write_int32(0x180200, -2 * 60 * 60) # red clock adjustment time (in frames, sint32)
|
else:
|
||||||
rom.write_int32(0x180204, 2 * 60 * 60) # blue clock adjustment time (in frames, sint32)
|
rom.write_bytes(0x180190, [0x00, 0x00, 0x00]) # turn off clock mode
|
||||||
rom.write_int32(0x180208, 4 * 60 * 60) # green clock adjustment time (in frames, sint32)
|
|
||||||
rom.write_int32(0x18020C, (40 + ERtimeincrease) * 60 * 60) # starting time (in frames, sint32)
|
# Set up requested clock settings
|
||||||
|
if world.clock_mode[player] in ['countdown-ohko', 'stopwatch', 'countdown']:
|
||||||
|
rom.write_int32(0x180200, world.red_clock_time[player] * 60 * 60) # red clock adjustment time (in frames, sint32)
|
||||||
|
rom.write_int32(0x180204, world.blue_clock_time[player] * 60 * 60) # blue clock adjustment time (in frames, sint32)
|
||||||
|
rom.write_int32(0x180208, world.green_clock_time[player] * 60 * 60) # green clock adjustment time (in frames, sint32)
|
||||||
|
else:
|
||||||
|
rom.write_int32(0x180200, 0) # red clock adjustment time (in frames, sint32)
|
||||||
|
rom.write_int32(0x180204, 0) # blue clock adjustment time (in frames, sint32)
|
||||||
|
rom.write_int32(0x180208, 0) # green clock adjustment time (in frames, sint32)
|
||||||
|
|
||||||
|
# Set up requested start time for countdown modes
|
||||||
|
if world.clock_mode[player] in ['countdown-ohko', 'countdown']:
|
||||||
|
rom.write_int32(0x18020C, world.countdown_start_time[player] * 60 * 60) # starting time (in frames, sint32)
|
||||||
|
else:
|
||||||
|
rom.write_int32(0x18020C, 0) # starting time (in frames, sint32)
|
||||||
|
|
||||||
# set up goals for treasure hunt
|
# set up goals for treasure hunt
|
||||||
rom.write_bytes(0x180165, [0x0E, 0x28] if world.treasure_hunt_icon[player] == 'Triforce Piece' else [0x0D, 0x28])
|
rom.write_bytes(0x180165, [0x0E, 0x28] if world.treasure_hunt_icon[player] == 'Triforce Piece' else [0x0D, 0x28])
|
||||||
|
|
|
@ -1206,6 +1206,110 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"countdown_start_time": {
|
||||||
|
"keyString": "countdown_start_time",
|
||||||
|
"friendlyName": "Countdown Starting Time",
|
||||||
|
"description": "The amount of time, in minutes, to start with in Timed Countdown and Timed OHKO modes.",
|
||||||
|
"inputType": "range",
|
||||||
|
"subOptions": {
|
||||||
|
"0": {
|
||||||
|
"keyString": "countdown_start_time.0",
|
||||||
|
"friendlyName": 0,
|
||||||
|
"description": "Start with no time on the timer. In Timed OHKO mode, start in OHKO mode.",
|
||||||
|
"defaultValue": 0
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"keyString": "countdown_start_time.10",
|
||||||
|
"friendlyName": 10,
|
||||||
|
"description": "Start with 10 minutes on the timer.",
|
||||||
|
"defaultValue": 50
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"keyString": "countdown_start_time.20",
|
||||||
|
"friendlyName": 20,
|
||||||
|
"description": "Start with 20 minutes on the timer.",
|
||||||
|
"defaultValue": 0
|
||||||
|
},
|
||||||
|
"30": {
|
||||||
|
"keyString": "countdown_start_time.30",
|
||||||
|
"friendlyName": 30,
|
||||||
|
"description": "Start with 30 minutes on the timer.",
|
||||||
|
"defaultValue": 0
|
||||||
|
},
|
||||||
|
"60": {
|
||||||
|
"keyString": "countdown_start_time.60",
|
||||||
|
"friendlyName": 60,
|
||||||
|
"description": "Start with an hour on the timer.",
|
||||||
|
"defaultValue": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"red_clock_time": {
|
||||||
|
"keyString": "red_clock_time",
|
||||||
|
"friendlyName": "Red Clock Time",
|
||||||
|
"description": "The amount of time, in minutes, to add to or subtract from the timer upon picking up a red clock.",
|
||||||
|
"inputType": "range",
|
||||||
|
"subOptions": {
|
||||||
|
"-2": {
|
||||||
|
"keyString": "red_clock_time.-2",
|
||||||
|
"friendlyName": -2,
|
||||||
|
"description": "Subtract 2 minutes from the timer upon picking up a red clock.",
|
||||||
|
"defaultValue": 0
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"keyString": "red_clock_time.1",
|
||||||
|
"friendlyName": 1,
|
||||||
|
"description": "Add a minute to the timer upon picking up a red clock.",
|
||||||
|
"defaultValue": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"blue_clock_time": {
|
||||||
|
"keyString": "blue_clock_time",
|
||||||
|
"friendlyName": "Blue Clock Time",
|
||||||
|
"description": "The amount of time, in minutes, to add to or subtract from the timer upon picking up a blue clock.",
|
||||||
|
"inputType": "range",
|
||||||
|
"subOptions": {
|
||||||
|
"1": {
|
||||||
|
"keyString": "blue_clock_time.1",
|
||||||
|
"friendlyName": 1,
|
||||||
|
"description": "Add a minute to the timer upon picking up a blue clock.",
|
||||||
|
"defaultValue": 0
|
||||||
|
},
|
||||||
|
"2": {
|
||||||
|
"keyString": "blue_clock_time.2",
|
||||||
|
"friendlyName": 2,
|
||||||
|
"description": "Add 2 minutes to the timer upon picking up a blue clock.",
|
||||||
|
"defaultValue": 50
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"green_clock_time": {
|
||||||
|
"keyString": "green_clock_time",
|
||||||
|
"friendlyName": "Green Clock Time",
|
||||||
|
"description": "The amount of time, in minutes, to add to or subtract from the timer upon picking up a green clock.",
|
||||||
|
"inputType": "range",
|
||||||
|
"subOptions": {
|
||||||
|
"4": {
|
||||||
|
"keyString": "green_clock_time.4",
|
||||||
|
"friendlyName": 4,
|
||||||
|
"description": "Add 4 minutes to the timer upon picking up a green clock.",
|
||||||
|
"defaultValue": 50
|
||||||
|
},
|
||||||
|
"10": {
|
||||||
|
"keyString": "green_clock_time.10",
|
||||||
|
"friendlyName": 10,
|
||||||
|
"description": "Add 10 minutes to the timer upon picking up a green clock.",
|
||||||
|
"defaultValue": 0
|
||||||
|
},
|
||||||
|
"15": {
|
||||||
|
"keyString": "green_clock_time.15",
|
||||||
|
"friendlyName": 15,
|
||||||
|
"description": "Add 15 minutes to the timer upon picking up a green clock.",
|
||||||
|
"defaultValue": 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"glitch_boots": {
|
"glitch_boots": {
|
||||||
"keyString": "glitch_boots",
|
"keyString": "glitch_boots",
|
||||||
"friendlyName": "Glitch Boots",
|
"friendlyName": "Glitch Boots",
|
||||||
|
|
|
@ -232,6 +232,22 @@ timer:
|
||||||
ohko: 0 # Timer always at zero. Permanent OHKO.
|
ohko: 0 # Timer always at zero. Permanent OHKO.
|
||||||
timed_countdown: 0 # Starts the clock with forty minutes. Same clocks as timed mode, but if the clock hits zero you lose. You can still keep playing, though.
|
timed_countdown: 0 # Starts the clock with forty minutes. Same clocks as timed mode, but if the clock hits zero you lose. You can still keep playing, though.
|
||||||
display: 0 # Displays a timer, but otherwise does not affect gameplay or the item pool.
|
display: 0 # Displays a timer, but otherwise does not affect gameplay or the item pool.
|
||||||
|
countdown_start_time: # For timed_ohko and timed_countdown timer modes, the amount of time in minutes to start with
|
||||||
|
0: 0 # For timed_ohko, starts in OHKO mode when starting the game
|
||||||
|
10: 50
|
||||||
|
20: 0
|
||||||
|
30: 0
|
||||||
|
60: 0
|
||||||
|
red_clock_time: # For all timer modes, the amount of time in minutes to gain or lose when picking up a red clock
|
||||||
|
-2: 50
|
||||||
|
1: 0
|
||||||
|
blue_clock_time: # For all timer modes, the amount of time in minutes to gain or lose when picking up a blue clock
|
||||||
|
1: 0
|
||||||
|
2: 50
|
||||||
|
green_clock_time: # For all timer modes, the amount of time in minutes to gain or lose when picking up a green clock
|
||||||
|
4: 50
|
||||||
|
10: 0
|
||||||
|
15: 0
|
||||||
# Can be uncommented to use it
|
# Can be uncommented to use it
|
||||||
# local_items: # Force certain items to appear in your world only, not across the multiworld. Recognizes some group names, like "Swords"
|
# local_items: # Force certain items to appear in your world only, not across the multiworld. Recognizes some group names, like "Swords"
|
||||||
# - "Moon Pearl"
|
# - "Moon Pearl"
|
||||||
|
|
|
@ -232,6 +232,22 @@ timer:
|
||||||
ohko: 0 # Timer always at zero. Permanent OHKO.
|
ohko: 0 # Timer always at zero. Permanent OHKO.
|
||||||
timed_countdown: 0 # Starts the clock with forty minutes. Same clocks as timed mode, but if the clock hits zero you lose. You can still keep playing, though.
|
timed_countdown: 0 # Starts the clock with forty minutes. Same clocks as timed mode, but if the clock hits zero you lose. You can still keep playing, though.
|
||||||
display: 0 # Displays a timer, but otherwise does not affect gameplay or the item pool.
|
display: 0 # Displays a timer, but otherwise does not affect gameplay or the item pool.
|
||||||
|
countdown_start_time: # For timed_ohko and timed_countdown timer modes, the amount of time in minutes to start with
|
||||||
|
0: 0 # For timed_ohko, starts in OHKO mode when starting the game
|
||||||
|
10: 50
|
||||||
|
20: 0
|
||||||
|
30: 0
|
||||||
|
60: 0
|
||||||
|
red_clock_time: # For all timer modes, the amount of time in minutes to gain or lose when picking up a red clock
|
||||||
|
-2: 50
|
||||||
|
1: 0
|
||||||
|
blue_clock_time: # For all timer modes, the amount of time in minutes to gain or lose when picking up a blue clock
|
||||||
|
1: 0
|
||||||
|
2: 50
|
||||||
|
green_clock_time: # For all timer modes, the amount of time in minutes to gain or lose when picking up a green clock
|
||||||
|
4: 50
|
||||||
|
10: 0
|
||||||
|
15: 0
|
||||||
# Can be uncommented to use it
|
# Can be uncommented to use it
|
||||||
# local_items: # Force certain items to appear in your world only, not across the multiworld. Recognizes some group names, like "Swords"
|
# local_items: # Force certain items to appear in your world only, not across the multiworld. Recognizes some group names, like "Swords"
|
||||||
# - "Moon Pearl"
|
# - "Moon Pearl"
|
||||||
|
|
Loading…
Reference in New Issue