[OC2] DeathLink (#1470)

This commit is contained in:
toasterparty
2023-02-23 23:32:15 -08:00
committed by GitHub
parent 0b12d80008
commit b8659d28cc
3 changed files with 43 additions and 15 deletions

View File

@@ -1,14 +1,20 @@
from enum import Enum
from enum import IntEnum
from typing import TypedDict
from Options import DefaultOnToggle, Range, Choice
class LocationBalancingMode(Enum):
class LocationBalancingMode(IntEnum):
disabled = 0
compromise = 1
full = 2
class DeathLinkMode(IntEnum):
disabled = 0
death_only = 1
death_and_overcook = 2
class OC2OnToggle(DefaultOnToggle):
@property
def result(self) -> bool:
@@ -31,6 +37,23 @@ class LocationBalancing(Choice):
default = LocationBalancingMode.compromise.value
class DeathLink(Choice):
"""DeathLink is an opt-in feature for Multiworlds where individual death events are propogated to all games with DeathLink enabled.
- Disabled: Death will behave as it does in the original game.
- Death Only: A DeathLink broadcast will be sent every time a chef falls into a stage hazard. All local chefs will be killed when any one perishes.
- Death and Overcook: Same as above, but an additional broadcast will be sent whenever the kitchen catches on fire from burnt food.
"""
auto_display_name = True
display_name = "DeathLink"
option_disabled = DeathLinkMode.disabled.value
option_death_only = DeathLinkMode.death_only.value
option_death_and_overcook = DeathLinkMode.death_and_overcook.value
default = DeathLinkMode.disabled.value
class AlwaysServeOldestOrder(OC2OnToggle):
"""Modifies the game so that serving an expired order doesn't target the ticket with the highest tip. This helps
players dig out of a broken tip combo faster."""
@@ -131,6 +154,9 @@ overcooked_options = {
# generator options
"location_balancing": LocationBalancing,
# deathlink
"deathlink": DeathLink,
# randomization options
"shuffle_level_order": ShuffleLevelOrder,
"include_horde_levels": IncludeHordeLevels,