Skip to content

Commit

Permalink
DOOM 1993: Added pro option
Browse files Browse the repository at this point in the history
  • Loading branch information
Daivuk committed Jul 31, 2023
1 parent f29d5c8 commit 77b1180
Show file tree
Hide file tree
Showing 6 changed files with 237 additions and 178 deletions.
1 change: 1 addition & 0 deletions worlds/doom_1993/Items.py
Original file line number Diff line number Diff line change
Expand Up @@ -1165,6 +1165,7 @@ class ItemDict(TypedDict, total=False):

item_name_groups: Dict[str, Set[str]] = {
'Ammos': {'Box of bullets', 'Box of rockets', 'Box of shotgun shells', 'Energy cell pack', },
'Computer area maps': {'Against Thee Wickedly (E4M6) - Computer area map', 'And Hell Followed (E4M7) - Computer area map', 'Central Processing (E1M6) - Computer area map', 'Command Center (E2M5) - Computer area map', 'Command Control (E1M4) - Computer area map', 'Computer Station (E1M7) - Computer area map', 'Containment Area (E2M2) - Computer area map', 'Deimos Anomaly (E2M1) - Computer area map', 'Deimos Lab (E2M4) - Computer area map', 'Dis (E3M8) - Computer area map', 'Fear (E4M9) - Computer area map', 'Fortress of Mystery (E2M9) - Computer area map', 'Halls of the Damned (E2M6) - Computer area map', 'Hangar (E1M1) - Computer area map', 'Hell Beneath (E4M1) - Computer area map', 'Hell Keep (E3M1) - Computer area map', 'House of Pain (E3M4) - Computer area map', 'Limbo (E3M7) - Computer area map', 'Military Base (E1M9) - Computer area map', 'Mt. Erebus (E3M6) - Computer area map', 'Nuclear Plant (E1M2) - Computer area map', 'Pandemonium (E3M3) - Computer area map', 'Perfect Hatred (E4M2) - Computer area map', 'Phobos Anomaly (E1M8) - Computer area map', 'Phobos Lab (E1M5) - Computer area map', 'Refinery (E2M3) - Computer area map', 'Sever the Wicked (E4M3) - Computer area map', 'Slough of Despair (E3M2) - Computer area map', 'Spawning Vats (E2M7) - Computer area map', 'They Will Repent (E4M5) - Computer area map', 'Tower of Babel (E2M8) - Computer area map', 'Toxin Refinery (E1M3) - Computer area map', 'Unholy Cathedral (E3M5) - Computer area map', 'Unruly Evil (E4M4) - Computer area map', 'Unto the Cruel (E4M8) - Computer area map', 'Warrens (E3M9) - Computer area map', },
'Keys': {'Against Thee Wickedly (E4M6) - Blue skull key', 'Against Thee Wickedly (E4M6) - Red skull key', 'Against Thee Wickedly (E4M6) - Yellow skull key', 'And Hell Followed (E4M7) - Blue skull key', 'And Hell Followed (E4M7) - Red skull key', 'And Hell Followed (E4M7) - Yellow skull key', 'Central Processing (E1M6) - Blue keycard', 'Central Processing (E1M6) - Red keycard', 'Central Processing (E1M6) - Yellow keycard', 'Command Control (E1M4) - Blue keycard', 'Command Control (E1M4) - Yellow keycard', 'Computer Station (E1M7) - Blue keycard', 'Computer Station (E1M7) - Red keycard', 'Computer Station (E1M7) - Yellow keycard', 'Containment Area (E2M2) - Blue keycard', 'Containment Area (E2M2) - Red keycard', 'Containment Area (E2M2) - Yellow keycard', 'Deimos Anomaly (E2M1) - Blue keycard', 'Deimos Anomaly (E2M1) - Red keycard', 'Deimos Lab (E2M4) - Blue keycard', 'Deimos Lab (E2M4) - Yellow keycard', 'Fear (E4M9) - Yellow skull key', 'Fortress of Mystery (E2M9) - Blue skull key', 'Fortress of Mystery (E2M9) - Red skull key', 'Fortress of Mystery (E2M9) - Yellow skull key', 'Halls of the Damned (E2M6) - Blue skull key', 'Halls of the Damned (E2M6) - Red skull key', 'Halls of the Damned (E2M6) - Yellow skull key', 'Hell Beneath (E4M1) - Blue skull key', 'Hell Beneath (E4M1) - Red skull key', 'House of Pain (E3M4) - Blue skull key', 'House of Pain (E3M4) - Red skull key', 'House of Pain (E3M4) - Yellow skull key', 'Limbo (E3M7) - Blue skull key', 'Limbo (E3M7) - Red skull key', 'Limbo (E3M7) - Yellow skull key', 'Military Base (E1M9) - Blue keycard', 'Military Base (E1M9) - Red keycard', 'Military Base (E1M9) - Yellow keycard', 'Mt. Erebus (E3M6) - Blue skull key', 'Nuclear Plant (E1M2) - Red keycard', 'Pandemonium (E3M3) - Blue skull key', 'Perfect Hatred (E4M2) - Blue skull key', 'Perfect Hatred (E4M2) - Yellow skull key', 'Phobos Lab (E1M5) - Blue keycard', 'Phobos Lab (E1M5) - Yellow keycard', 'Refinery (E2M3) - Blue keycard', 'Sever the Wicked (E4M3) - Blue skull key', 'Sever the Wicked (E4M3) - Red skull key', 'Slough of Despair (E3M2) - Blue skull key', 'Spawning Vats (E2M7) - Blue keycard', 'Spawning Vats (E2M7) - Red keycard', 'Spawning Vats (E2M7) - Yellow keycard', 'They Will Repent (E4M5) - Blue skull key', 'They Will Repent (E4M5) - Red skull key', 'They Will Repent (E4M5) - Yellow skull key', 'Toxin Refinery (E1M3) - Blue keycard', 'Toxin Refinery (E1M3) - Yellow keycard', 'Unholy Cathedral (E3M5) - Blue skull key', 'Unholy Cathedral (E3M5) - Yellow skull key', 'Unruly Evil (E4M4) - Red skull key', 'Unto the Cruel (E4M8) - Red skull key', 'Unto the Cruel (E4M8) - Yellow skull key', 'Warrens (E3M9) - Blue skull key', 'Warrens (E3M9) - Red skull key', },
'Levels': {'Against Thee Wickedly (E4M6)', 'And Hell Followed (E4M7)', 'Central Processing (E1M6)', 'Command Center (E2M5)', 'Command Control (E1M4)', 'Computer Station (E1M7)', 'Containment Area (E2M2)', 'Deimos Anomaly (E2M1)', 'Deimos Lab (E2M4)', 'Dis (E3M8)', 'Fear (E4M9)', 'Fortress of Mystery (E2M9)', 'Halls of the Damned (E2M6)', 'Hangar (E1M1)', 'Hell Beneath (E4M1)', 'Hell Keep (E3M1)', 'House of Pain (E3M4)', 'Limbo (E3M7)', 'Military Base (E1M9)', 'Mt. Erebus (E3M6)', 'Nuclear Plant (E1M2)', 'Pandemonium (E3M3)', 'Perfect Hatred (E4M2)', 'Phobos Anomaly (E1M8)', 'Phobos Lab (E1M5)', 'Refinery (E2M3)', 'Sever the Wicked (E4M3)', 'Slough of Despair (E3M2)', 'Spawning Vats (E2M7)', 'They Will Repent (E4M5)', 'Tower of Babel (E2M8)', 'Toxin Refinery (E1M3)', 'Unholy Cathedral (E3M5)', 'Unruly Evil (E4M4)', 'Unto the Cruel (E4M8)', 'Warrens (E3M9)', },
'Powerups': {'Armor', 'Berserk', 'Invulnerability', 'Mega Armor', 'Partial invisibility', 'Supercharge', },
Expand Down
14 changes: 7 additions & 7 deletions worlds/doom_1993/Locations.py
Original file line number Diff line number Diff line change
Expand Up @@ -1968,7 +1968,7 @@ class LocationDict(TypedDict, total=False):
'map': 2,
'index': -1,
'doom_type': -1,
'region': "Containment Area (E2M2) Red"},
'region': "Containment Area (E2M2) Red Exit"},
351326: {'name': 'Deimos Anomaly (E2M1) - Exit',
'episode': 2,
'map': 1,
Expand Down Expand Up @@ -2496,19 +2496,19 @@ class LocationDict(TypedDict, total=False):
'map': 6,
'index': 77,
'doom_type': 38,
'region': "Against Thee Wickedly (E4M6) Yellow"},
'region': "Against Thee Wickedly (E4M6) Magenta"},
351414: {'name': 'Against Thee Wickedly (E4M6) - Invulnerability',
'episode': 4,
'map': 6,
'index': 78,
'doom_type': 2022,
'region': "Against Thee Wickedly (E4M6) Red"},
'region': "Against Thee Wickedly (E4M6) Pink"},
351415: {'name': 'Against Thee Wickedly (E4M6) - Invulnerability 2',
'episode': 4,
'map': 6,
'index': 89,
'doom_type': 2022,
'region': "Against Thee Wickedly (E4M6) Red"},
'region': "Against Thee Wickedly (E4M6) Magenta"},
351416: {'name': 'Against Thee Wickedly (E4M6) - BFG9000',
'episode': 4,
'map': 6,
Expand All @@ -2520,7 +2520,7 @@ class LocationDict(TypedDict, total=False):
'map': 6,
'index': 102,
'doom_type': 8,
'region': "Against Thee Wickedly (E4M6) Red"},
'region': "Against Thee Wickedly (E4M6) Pink"},
351418: {'name': 'Against Thee Wickedly (E4M6) - Berserk',
'episode': 4,
'map': 6,
Expand Down Expand Up @@ -2550,7 +2550,7 @@ class LocationDict(TypedDict, total=False):
'map': 6,
'index': -1,
'doom_type': -1,
'region': "Against Thee Wickedly (E4M6) Red"},
'region': "Against Thee Wickedly (E4M6) Magenta"},
351423: {'name': 'And Hell Followed (E4M7) - Shotgun',
'episode': 4,
'map': 7,
Expand Down Expand Up @@ -2628,7 +2628,7 @@ class LocationDict(TypedDict, total=False):
'map': 7,
'index': 182,
'doom_type': 39,
'region': "And Hell Followed (E4M7) Main"},
'region': "And Hell Followed (E4M7) Blue"},
351436: {'name': 'And Hell Followed (E4M7) - Red skull key',
'episode': 4,
'map': 7,
Expand Down
10 changes: 9 additions & 1 deletion worlds/doom_1993/Options.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import typing

from Options import AssembleOptions, Choice, Toggle, DeathLink, DefaultOnToggle
from Options import AssembleOptions, Choice, Toggle, DeathLink, DefaultOnToggle, StartInventoryPool


class Difficulty(Choice):
Expand Down Expand Up @@ -56,6 +56,12 @@ class AllowDeathLogic(Toggle):
Get killed in the current map. The map will reset, you can now attempt the puzzle again."""
display_name = "Allow Death Logic"


class Pro(Toggle):
"""Include difficult tricks into rules. Mostly employed by speed runners.
i.e.: Leaps across to a locked area, trigger a switch behind a window at the right angle, etc."""
display_name = "Pro Doom"


class StartWithComputerAreaMaps(Toggle):
"""Give the player all Computer Area Map items from the start."""
Expand Down Expand Up @@ -87,10 +93,12 @@ class Episode4(Toggle):


options: typing.Dict[str, AssembleOptions] = {
"start_inventory_from_pool": StartInventoryPool,
"difficulty": Difficulty,
"random_monsters": RandomMonsters,
"random_pickups": RandomPickups,
"allow_death_logic": AllowDeathLogic,
"pro": Pro,
"start_with_computer_area_maps": StartWithComputerAreaMaps,
"death_link": DeathLink,
"episode1": Episode1,
Expand Down
Loading

0 comments on commit 77b1180

Please sign in to comment.