From 92cd4652b210f1364cbbb37e098c7167936af639 Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Mon, 10 Jun 2024 20:59:15 -0400 Subject: [PATCH 1/6] Create new options --- worlds/tunic/options.py | 83 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 73 insertions(+), 10 deletions(-) diff --git a/worlds/tunic/options.py b/worlds/tunic/options.py index ff9872ab48..ae13b89bc5 100644 --- a/worlds/tunic/options.py +++ b/worlds/tunic/options.py @@ -180,6 +180,59 @@ class TunicPlandoConnections(PlandoConnections): duplicate_exits = True +class LaurelsZips(Toggle): + """ + Choose whether to include using the Hero's Laurels to zip through gates, doors, and tricky spots. + """ + internal_name = "laurels_zips" + display_name = "Laurels Zips Logic" + + +class IceGrappling(Choice): + """ + Choose whether grappling frozen enemies is in logic. + Easy includes ice grappling enemies that are in range without luring them. + Medium includes using ice grapples to push enemies through doors or off ledges. Also includes bringing an enemy over to the Temple Door to grapple through it. + Hard includes luring or grappling enemies to get to where you want to go. + Note: You will still be expected to ice grapple to the slime in East Forest. + """ + internal_name = "ice_grappling" + display_name = "Ice Grapple Logic" + option_off = 0 + option_easy = 1 + option_medium = 2 + option_hard = 3 + default = 0 + + +class LadderStorage(Choice): + """ + Choose whether Ladder Storage is in logic. + Easy includes uses of Ladder Storage to get to open doors over a long distance without too much difficulty. + Medium includes changing your elevation using the environment. + Hard includes going behind the map to enter closed doors from behind. + """ + internal_name = "ladder_storage" + display_name = "Ladder Storage Logic" + option_off = 0 + option_easy = 1 + option_medium = 2 + option_hard = 3 + default = 0 + + +class LadderStorageWithoutItems(Toggle): + """ + If disabled, you logically require Stick, Sword, or Magic Orb to Ladder Storage. + If enabled, you will be expected to Ladder Storage without items. + This can be done with a Golden Coin, Prayer, rolling, the plushie code, and many other options. + + This option has no effect if you do not have Ladder Storage Logic enabled + """ + internal_name = "ladder_storage_without_items" + display_name = "Ladder Storage without Items" + + @dataclass class TunicOptions(PerGameCommonOptions): start_inventory_from_pool: StartInventoryPool @@ -199,6 +252,10 @@ class TunicOptions(PerGameCommonOptions): maskless: Maskless laurels_location: LaurelsLocation plando_connections: TunicPlandoConnections + laurels_zips: LaurelsZips + ice_grappling: IceGrappling + ladder_storage: LadderStorage + ladder_storage_without_items: LadderStorageWithoutItems tunic_option_groups = [ @@ -206,26 +263,32 @@ tunic_option_groups = [ LogicRules, Lanternless, Maskless, + LaurelsZips, + IceGrappling, + LadderStorage, + LadderStorageWithoutItems ]) ] tunic_option_presets: Dict[str, Dict[str, Any]] = { "Sync": { - "ability_shuffling": True, + AbilityShuffling.internal_name: True, }, "Async": { "progression_balancing": 0, - "ability_shuffling": True, - "shuffle_ladders": True, - "laurels_location": "10_fairies", + AbilityShuffling.internal_name: True, + ShuffleLadders.internal_name: True, + LaurelsLocation.internal_name: LaurelsLocation.option_10_fairies, }, "Glace Mode": { "accessibility": "minimal", - "ability_shuffling": True, - "entrance_rando": "yes", - "fool_traps": "onslaught", - "logic_rules": "unrestricted", - "maskless": True, - "lanternless": True, + AbilityShuffling.internal_name: True, + EntranceRando.internal_name: EntranceRando.option_yes, + FoolTraps.internal_name: FoolTraps.option_onslaught, + IceGrappling.internal_name: IceGrappling.option_hard, + LadderStorage.internal_name: LadderStorage.option_hard, + LadderStorageWithoutItems: True, + Maskless.internal_name: True, + Lanternless.internal_name: True, }, } From 383d71bb7657265bce76c837c32102b3e29740e3 Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Mon, 10 Jun 2024 23:38:32 -0400 Subject: [PATCH 2/6] Slightly revise ls rule --- worlds/tunic/options.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/tunic/options.py b/worlds/tunic/options.py index ae13b89bc5..e8686074d5 100644 --- a/worlds/tunic/options.py +++ b/worlds/tunic/options.py @@ -209,7 +209,7 @@ class LadderStorage(Choice): """ Choose whether Ladder Storage is in logic. Easy includes uses of Ladder Storage to get to open doors over a long distance without too much difficulty. - Medium includes changing your elevation using the environment. + Medium includes changing your elevation using the environment and getting knocked down by melee enemies mid-LS. Hard includes going behind the map to enter closed doors from behind. """ internal_name = "ladder_storage" From 56557c5f3e947825ccd48f8f2a9fe3a1f0052fde Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Tue, 11 Jun 2024 11:33:12 -0400 Subject: [PATCH 3/6] Update options.py --- worlds/tunic/options.py | 40 +++++++++++++++++++--------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/worlds/tunic/options.py b/worlds/tunic/options.py index e8686074d5..8850086a24 100644 --- a/worlds/tunic/options.py +++ b/worlds/tunic/options.py @@ -41,14 +41,9 @@ class AbilityShuffling(Toggle): class LogicRules(Choice): """ - Set which logic rules to use for your world. - Restricted: Standard logic, no glitches. - No Major Glitches: Sneaky Laurels zips, ice grapples through doors, shooting the west bell, and boss quick kills are included in logic. - * Ice grappling through the Ziggurat door is not in logic since you will get stuck in there without Prayer. - Unrestricted: Logic in No Major Glitches, as well as ladder storage to get to certain places early. - * Torch is given to the player at the start of the game due to the high softlock potential with various tricks. Using the torch is not required in logic. - * Using Ladder Storage to get to individual chests is not in logic to avoid tedium. - * Getting knocked out of the air by enemies during Ladder Storage to reach places is not in logic, except for in Rooted Ziggurat Lower. This is so you're not punished for playing with enemy rando on. + Deprecated, and will be removed in a later version. + If you have this set to NMG, it will set Laurels Zips on and Ice Grappling to medium. + If you have this set to Unrestricted, it will set Laurels Zips on, Ice Grappling to hard, and Ladder Storage to medium. """ internal_name = "logic_rules" display_name = "Logic Rules" @@ -183,6 +178,7 @@ class TunicPlandoConnections(PlandoConnections): class LaurelsZips(Toggle): """ Choose whether to include using the Hero's Laurels to zip through gates, doors, and tricky spots. + Notable inclusions are the Monastery gate, Ruined Passage door, Forest Grave Path gate, and getting from the Back of Swamp to the Middle of Swamp. """ internal_name = "laurels_zips" display_name = "Laurels Zips Logic" @@ -211,6 +207,8 @@ class LadderStorage(Choice): Easy includes uses of Ladder Storage to get to open doors over a long distance without too much difficulty. Medium includes changing your elevation using the environment and getting knocked down by melee enemies mid-LS. Hard includes going behind the map to enter closed doors from behind. + Enabling any of these difficulty options will give the player the Torch item to return to the Overworld checkpoint, to avoid softlocks. + Checks that require you to get softlocked are not in logic. Needing to death warp or quit to menu to escape a situation is not considered a softlock. """ internal_name = "ladder_storage" display_name = "Ladder Storage Logic" @@ -225,7 +223,7 @@ class LadderStorageWithoutItems(Toggle): """ If disabled, you logically require Stick, Sword, or Magic Orb to Ladder Storage. If enabled, you will be expected to Ladder Storage without items. - This can be done with a Golden Coin, Prayer, rolling, the plushie code, and many other options. + This can be done with a Golden Coin, Prayer, the plushie code, and many other options. This option has no effect if you do not have Ladder Storage Logic enabled """ @@ -272,23 +270,23 @@ tunic_option_groups = [ tunic_option_presets: Dict[str, Dict[str, Any]] = { "Sync": { - AbilityShuffling.internal_name: True, + "ability_shuffling": True, }, "Async": { "progression_balancing": 0, - AbilityShuffling.internal_name: True, - ShuffleLadders.internal_name: True, - LaurelsLocation.internal_name: LaurelsLocation.option_10_fairies, + "ability_shuffling": True, + "shuffle_ladders": True, + "laurels_location": "10_fairies", }, "Glace Mode": { "accessibility": "minimal", - AbilityShuffling.internal_name: True, - EntranceRando.internal_name: EntranceRando.option_yes, - FoolTraps.internal_name: FoolTraps.option_onslaught, - IceGrappling.internal_name: IceGrappling.option_hard, - LadderStorage.internal_name: LadderStorage.option_hard, - LadderStorageWithoutItems: True, - Maskless.internal_name: True, - Lanternless.internal_name: True, + "ability_shuffling": True, + "entrance_rando": True, + "fool_traps": "onslaught", + "ice_grappling": "hard", + "ladder_storage": "hard", + "ladder_storage_without_items": True, + "maskless": True, + "lanternless": True, }, } From 934c0f37627ed887cd913392f2d3ec6b1935368a Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Tue, 11 Jun 2024 14:02:55 -0400 Subject: [PATCH 4/6] Update options.py --- worlds/tunic/options.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/worlds/tunic/options.py b/worlds/tunic/options.py index 8850086a24..ee7d39edc5 100644 --- a/worlds/tunic/options.py +++ b/worlds/tunic/options.py @@ -189,7 +189,7 @@ class IceGrappling(Choice): Choose whether grappling frozen enemies is in logic. Easy includes ice grappling enemies that are in range without luring them. Medium includes using ice grapples to push enemies through doors or off ledges. Also includes bringing an enemy over to the Temple Door to grapple through it. - Hard includes luring or grappling enemies to get to where you want to go. + Hard includes luring or grappling enemies to get to where you want to go. Hard difficulty will give the player the Torch item to return to the Overworld checkpoint to avoid softlocks. Note: You will still be expected to ice grapple to the slime in East Forest. """ internal_name = "ice_grappling" @@ -207,8 +207,9 @@ class LadderStorage(Choice): Easy includes uses of Ladder Storage to get to open doors over a long distance without too much difficulty. Medium includes changing your elevation using the environment and getting knocked down by melee enemies mid-LS. Hard includes going behind the map to enter closed doors from behind. - Enabling any of these difficulty options will give the player the Torch item to return to the Overworld checkpoint, to avoid softlocks. + Enabling any of these difficulty options will give the player the Torch item to return to the Overworld checkpoint to avoid softlocks. Checks that require you to get softlocked are not in logic. Needing to death warp or quit to menu to escape a situation is not considered a softlock. + Opening a chest mid-LS is not considered in logic to avoid tedium. """ internal_name = "ladder_storage" display_name = "Ladder Storage Logic" @@ -222,8 +223,8 @@ class LadderStorage(Choice): class LadderStorageWithoutItems(Toggle): """ If disabled, you logically require Stick, Sword, or Magic Orb to Ladder Storage. - If enabled, you will be expected to Ladder Storage without items. - This can be done with a Golden Coin, Prayer, the plushie code, and many other options. + If enabled, you will be expected to Ladder Storage without progression items. + This can be done with the plushie code, a Golden Coin, Prayer, and many other options. This option has no effect if you do not have Ladder Storage Logic enabled """ From 3c955d012e77b0df54094ef8c68e8ce10579126e Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Tue, 11 Jun 2024 15:15:11 -0400 Subject: [PATCH 5/6] Add tedious option for ls --- worlds/tunic/options.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/worlds/tunic/options.py b/worlds/tunic/options.py index ee7d39edc5..aeb9bddb84 100644 --- a/worlds/tunic/options.py +++ b/worlds/tunic/options.py @@ -205,11 +205,11 @@ class LadderStorage(Choice): """ Choose whether Ladder Storage is in logic. Easy includes uses of Ladder Storage to get to open doors over a long distance without too much difficulty. - Medium includes changing your elevation using the environment and getting knocked down by melee enemies mid-LS. - Hard includes going behind the map to enter closed doors from behind. + Medium includes the above as well as changing your elevation using the environment and getting knocked down by melee enemies mid-LS. + Hard includes the above as well as going behind the map to enter closed doors from behind. + Tedious includes the above as well as opening individual chests mid-LS. Enabling any of these difficulty options will give the player the Torch item to return to the Overworld checkpoint to avoid softlocks. Checks that require you to get softlocked are not in logic. Needing to death warp or quit to menu to escape a situation is not considered a softlock. - Opening a chest mid-LS is not considered in logic to avoid tedium. """ internal_name = "ladder_storage" display_name = "Ladder Storage Logic" @@ -217,6 +217,7 @@ class LadderStorage(Choice): option_easy = 1 option_medium = 2 option_hard = 3 + option_tedious = 4 default = 0 From 7bc1744211c19399825e17f532404e6b1b1634a2 Mon Sep 17 00:00:00 2001 From: Scipio Wright Date: Tue, 11 Jun 2024 17:30:12 -0400 Subject: [PATCH 6/6] Update laurels zips description --- worlds/tunic/options.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/worlds/tunic/options.py b/worlds/tunic/options.py index aeb9bddb84..aa7e88cbbe 100644 --- a/worlds/tunic/options.py +++ b/worlds/tunic/options.py @@ -178,7 +178,7 @@ class TunicPlandoConnections(PlandoConnections): class LaurelsZips(Toggle): """ Choose whether to include using the Hero's Laurels to zip through gates, doors, and tricky spots. - Notable inclusions are the Monastery gate, Ruined Passage door, Forest Grave Path gate, and getting from the Back of Swamp to the Middle of Swamp. + Notable inclusions are the Monastery gate, Ruined Passage door, Old House gate, Forest Grave Path gate, and getting from the Back of Swamp to the Middle of Swamp. """ internal_name = "laurels_zips" display_name = "Laurels Zips Logic"