From 04d7f76ac48076d7cccde5c54b64d11a879ed91d Mon Sep 17 00:00:00 2001
From: CovenEsme <84377742+CovenEsme@users.noreply.github.com>
Date: Mon, 22 Jul 2024 17:32:42 +0100
Subject: [PATCH 1/3] Unlink FW and FFW bird statues
---
data/world/Faron.yaml | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
diff --git a/data/world/Faron.yaml b/data/world/Faron.yaml
index 187ae225..9cccef55 100644
--- a/data/world/Faron.yaml
+++ b/data/world/Faron.yaml
@@ -340,13 +340,15 @@
- name: Flooded Faron Woods
hint_region: Flooded Faron Woods
events:
- Unlock In the Woods Statue: Water_Dragons_Scale
- Unlock Viewing Platform Statue: Water_Dragons_Scale
- Unlock Faron Woods Entry Statue: Water_Dragons_Scale
- Unlock The Great Tree Statue: Clawshots or Water_Dragons_Scale
Retrieve Oolo: Scrapper and 'Start_Owlans_Quest'
Can Watch Completed Tadtones Cutscene: Nothing
Can Collect Water: Bottle
+ # Leads to some obscure logic when paired with the Groosenator
+ #
+ # Unlock In the Woods Statue: Water_Dragons_Scale
+ # Unlock Viewing Platform Statue: Water_Dragons_Scale
+ # Unlock Faron Woods Entry Statue: Water_Dragons_Scale
+ # Unlock The Great Tree Statue: Clawshots or Water_Dragons_Scale
exits:
Sealed Grounds: Nothing # Talk to Bucha
Flooded Great Tree Upper: Clawshots
From c0a45fcdb320bf9352a14129865dd6166d2dea22 Mon Sep 17 00:00:00 2001
From: CovenEsme <84377742+CovenEsme@users.noreply.github.com>
Date: Wed, 24 Jul 2024 10:40:24 +0100
Subject: [PATCH 2/3] Add trick setting for Faron Woods with Groosentor logic
---
data/settings_list.yaml | 10 +++++++++
data/world/Faron.yaml | 8 +++----
gui/ui/main.ui | 23 ++++++++++++++-------
gui/ui/ui_main.py | 46 +++++++++++++++++++++++------------------
4 files changed, 55 insertions(+), 32 deletions(-)
diff --git a/data/settings_list.yaml b/data/settings_list.yaml
index 0f7e26b9..7e66d294 100644
--- a/data/settings_list.yaml
+++ b/data/settings_list.yaml
@@ -1437,6 +1437,16 @@
- "off": "You will only be expected to use the Slingshot, Bow, Clawshots, or a Beetle to activate distant switches and you will only be expected to use nearby bomb flowers with the Hook Beetle to blow up distant rocks."
- "on": "You may need to use the Bomb Bag and time bomb throws to activate switches or blow up distant rocks or towers."
+- name: logic_faron_woods_with_groosenator
+ default_option: "off"
+ pretty_name: Faron Woods with Groosenator
+ pretty_options:
+ - "Off"
+ - "On"
+ options:
+ - "off": "You will never be expected to use the Groosenator to access Faron Woods by unlocking bird statues in Flooded Faron Woods."
+ - "on": "You may need to use the Groosenator to unlock the bird statues in Flooded Faron Woods to land at those bird statues in normal Faron Woods."
+
- name: logic_itemless_first_timeshift_stone
default_option: "off"
pretty_name: Itemless First Timeshift Stone
diff --git a/data/world/Faron.yaml b/data/world/Faron.yaml
index 9cccef55..5fa91e68 100644
--- a/data/world/Faron.yaml
+++ b/data/world/Faron.yaml
@@ -345,10 +345,10 @@
Can Collect Water: Bottle
# Leads to some obscure logic when paired with the Groosenator
#
- # Unlock In the Woods Statue: Water_Dragons_Scale
- # Unlock Viewing Platform Statue: Water_Dragons_Scale
- # Unlock Faron Woods Entry Statue: Water_Dragons_Scale
- # Unlock The Great Tree Statue: Clawshots or Water_Dragons_Scale
+ Unlock In the Woods Statue: logic_faron_woods_with_groosenator and Water_Dragons_Scale
+ Unlock Viewing Platform Statue: logic_faron_woods_with_groosenator and Water_Dragons_Scale
+ Unlock Faron Woods Entry Statue: logic_faron_woods_with_groosenator and Water_Dragons_Scale
+ Unlock The Great Tree Statue: logic_faron_woods_with_groosenator and (Clawshots or Water_Dragons_Scale)
exits:
Sealed Grounds: Nothing # Talk to Bucha
Flooded Great Tree Upper: Clawshots
diff --git a/gui/ui/main.ui b/gui/ui/main.ui
index db230ab3..baf23fbd 100644
--- a/gui/ui/main.ui
+++ b/gui/ui/main.ui
@@ -36,7 +36,7 @@
QTabWidget::TabShape::Rounded
- 9
+ 6
@@ -2936,6 +2936,20 @@
Miscellaneous
+ -
+
+
+ Faron Woods with Groosenator
+
+
+
+ -
+
+
+ Itemless First Timeshift Stone
+
+
+
-
@@ -2994,13 +3008,6 @@ Practice Sword
- -
-
-
- Itemless First Timeshift Stone
-
-
-
-
diff --git a/gui/ui/ui_main.py b/gui/ui/ui_main.py
index 17165bbe..3ccaf56d 100644
--- a/gui/ui/ui_main.py
+++ b/gui/ui/ui_main.py
@@ -3,7 +3,7 @@
################################################################################
## Form generated from reading UI file 'main.ui'
##
-## Created by: Qt User Interface Compiler version 6.7.1
+## Created by: Qt User Interface Compiler version 6.6.2
##
## WARNING! All changes made in this file will be lost when recompiling UI file!
################################################################################
@@ -825,8 +825,8 @@ def setupUi(self, main_window):
self.line = QFrame(self.open_dungeons_group_box)
self.line.setObjectName(u"line")
- self.line.setFrameShape(QFrame.Shape.HLine)
- self.line.setFrameShadow(QFrame.Shadow.Sunken)
+ self.line.setFrameShape(QFrame.HLine)
+ self.line.setFrameShadow(QFrame.Sunken)
self.verticalLayout_25.addWidget(self.line)
@@ -1034,8 +1034,8 @@ def setupUi(self, main_window):
self.mixed_entrance_pools_hline = QFrame(self.mixed_entrance_pools_group_box)
self.mixed_entrance_pools_hline.setObjectName(u"mixed_entrance_pools_hline")
- self.mixed_entrance_pools_hline.setFrameShape(QFrame.Shape.HLine)
- self.mixed_entrance_pools_hline.setFrameShadow(QFrame.Shadow.Sunken)
+ self.mixed_entrance_pools_hline.setFrameShape(QFrame.HLine)
+ self.mixed_entrance_pools_hline.setFrameShadow(QFrame.Sunken)
self.verticalLayout_28.addWidget(self.mixed_entrance_pools_hline)
@@ -1937,6 +1937,16 @@ def setupUi(self, main_window):
self.miscellaneous_group_box.setSizePolicy(sizePolicy)
self.verticalLayout_22 = QVBoxLayout(self.miscellaneous_group_box)
self.verticalLayout_22.setObjectName(u"verticalLayout_22")
+ self.setting_logic_faron_woods_with_groosenator = RandoTriStateCheckBox(self.miscellaneous_group_box)
+ self.setting_logic_faron_woods_with_groosenator.setObjectName(u"setting_logic_faron_woods_with_groosenator")
+
+ self.verticalLayout_22.addWidget(self.setting_logic_faron_woods_with_groosenator)
+
+ self.setting_logic_itemless_first_timeshift_stone = RandoTriStateCheckBox(self.miscellaneous_group_box)
+ self.setting_logic_itemless_first_timeshift_stone.setObjectName(u"setting_logic_itemless_first_timeshift_stone")
+
+ self.verticalLayout_22.addWidget(self.setting_logic_itemless_first_timeshift_stone)
+
self.setting_logic_fire_node_without_hook_beetle = RandoTriStateCheckBox(self.miscellaneous_group_box)
self.setting_logic_fire_node_without_hook_beetle.setObjectName(u"setting_logic_fire_node_without_hook_beetle")
@@ -1977,11 +1987,6 @@ def setupUi(self, main_window):
self.verticalLayout_22.addWidget(self.setting_logic_fs_practice_sword_ghirahim_2)
- self.setting_logic_itemless_first_timeshift_stone = RandoTriStateCheckBox(self.miscellaneous_group_box)
- self.setting_logic_itemless_first_timeshift_stone.setObjectName(u"setting_logic_itemless_first_timeshift_stone")
-
- self.verticalLayout_22.addWidget(self.setting_logic_itemless_first_timeshift_stone)
-
self.miscellaneous_vspacer = QSpacerItem(20, 237, QSizePolicy.Policy.Minimum, QSizePolicy.Policy.Expanding)
self.verticalLayout_22.addItem(self.miscellaneous_vspacer)
@@ -2073,8 +2078,8 @@ def setupUi(self, main_window):
self.player_cosmetics_hline = QFrame(self.player_cosmetics_group_box)
self.player_cosmetics_hline.setObjectName(u"player_cosmetics_hline")
- self.player_cosmetics_hline.setFrameShape(QFrame.Shape.HLine)
- self.player_cosmetics_hline.setFrameShadow(QFrame.Shadow.Sunken)
+ self.player_cosmetics_hline.setFrameShape(QFrame.HLine)
+ self.player_cosmetics_hline.setFrameShadow(QFrame.Sunken)
self.verticalLayout_37.addWidget(self.player_cosmetics_hline)
@@ -2165,8 +2170,8 @@ def setupUi(self, main_window):
self.utils_hline = QFrame(self.file_setup_group_box)
self.utils_hline.setObjectName(u"utils_hline")
- self.utils_hline.setFrameShape(QFrame.Shape.HLine)
- self.utils_hline.setFrameShadow(QFrame.Shadow.Sunken)
+ self.utils_hline.setFrameShape(QFrame.HLine)
+ self.utils_hline.setFrameShadow(QFrame.Sunken)
self.verticalLayout_31.addWidget(self.utils_hline)
@@ -2192,8 +2197,8 @@ def setupUi(self, main_window):
self.utils_hline_2 = QFrame(self.file_setup_group_box)
self.utils_hline_2.setObjectName(u"utils_hline_2")
- self.utils_hline_2.setFrameShape(QFrame.Shape.HLine)
- self.utils_hline_2.setFrameShadow(QFrame.Shadow.Sunken)
+ self.utils_hline_2.setFrameShape(QFrame.HLine)
+ self.utils_hline_2.setFrameShadow(QFrame.Sunken)
self.verticalLayout_31.addWidget(self.utils_hline_2)
@@ -2227,8 +2232,8 @@ def setupUi(self, main_window):
self.utils_hline_3 = QFrame(self.file_setup_group_box)
self.utils_hline_3.setObjectName(u"utils_hline_3")
- self.utils_hline_3.setFrameShape(QFrame.Shape.HLine)
- self.utils_hline_3.setFrameShadow(QFrame.Shadow.Sunken)
+ self.utils_hline_3.setFrameShape(QFrame.HLine)
+ self.utils_hline_3.setFrameShadow(QFrame.Sunken)
self.verticalLayout_31.addWidget(self.utils_hline_3)
@@ -2801,7 +2806,7 @@ def setupUi(self, main_window):
self.retranslateUi(main_window)
- self.tab_widget.setCurrentIndex(9)
+ self.tab_widget.setCurrentIndex(6)
QMetaObject.connectSlotsByName(main_window)
@@ -3030,6 +3035,8 @@ def retranslateUi(self, main_window):
self.setting_logic_brakeslide.setText(QCoreApplication.translate("main_window", u"Brakesliding", None))
self.setting_logic_tot_skip_brakeslide.setText(QCoreApplication.translate("main_window", u"Temple of Time Skip Brakeslide", None))
self.miscellaneous_group_box.setTitle(QCoreApplication.translate("main_window", u"Miscellaneous", None))
+ self.setting_logic_faron_woods_with_groosenator.setText(QCoreApplication.translate("main_window", u"Faron Woods with Groosenator", None))
+ self.setting_logic_itemless_first_timeshift_stone.setText(QCoreApplication.translate("main_window", u"Itemless First Timeshift Stone", None))
self.setting_logic_fire_node_without_hook_beetle.setText(QCoreApplication.translate("main_window", u"Fire Node without Hook Beetle", None))
self.setting_logic_skyview_spider_roll.setText(QCoreApplication.translate("main_window", u"Skyview Temple Spider Roll", None))
self.setting_logic_et_keese_skyward_strike.setText(QCoreApplication.translate("main_window", u"Earth Temple Keese Skyward Strike", None))
@@ -3040,7 +3047,6 @@ def retranslateUi(self, main_window):
self.setting_logic_sandship_no_combination_hint.setText(QCoreApplication.translate("main_window", u"Sandship No Combination Hint", None))
self.setting_logic_fs_practice_sword_ghirahim_2.setText(QCoreApplication.translate("main_window", u"Fire Sanctuary Ghirahim 2 with\n"
"Practice Sword", None))
- self.setting_logic_itemless_first_timeshift_stone.setText(QCoreApplication.translate("main_window", u"Itemless First Timeshift Stone", None))
self.tab_widget.setTabText(self.tab_widget.indexOf(self.logic_tab), QCoreApplication.translate("main_window", u"Logic and Tricks", None))
self.environment_cosmetics_group_box.setTitle(QCoreApplication.translate("main_window", u"Environment Cosmetics", None))
self.setting_starry_skies.setText(QCoreApplication.translate("main_window", u"Starry Skies", None))
From 6f9146fff6e28d620b1cab8fd461f015e4bd7f60 Mon Sep 17 00:00:00 2001
From: CovenEsme <84377742+CovenEsme@users.noreply.github.com>
Date: Wed, 24 Jul 2024 10:59:56 +0100
Subject: [PATCH 3/3] Bypass failing ER test with new seed
---
tests/test_configs/decouple_entrances.yaml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/test_configs/decouple_entrances.yaml b/tests/test_configs/decouple_entrances.yaml
index d3b75b62..ec840139 100644
--- a/tests/test_configs/decouple_entrances.yaml
+++ b/tests/test_configs/decouple_entrances.yaml
@@ -1,4 +1,4 @@
-seed: TESTTESTTEST
+seed: TESTTESTTESTTEST
World 1:
randomize_dungeon_entrances: "on"
randomize_door_entrances: "on"