OOT: Have beehives that only appear as a child not be in logic if only adult can break beehives (#4646)

* Change the logic for the 3 Zora's Domain Beehives to support new rule

Implement new logic changes to these 3 locations

* Update LogicHelpers.json with new rule for beehives that only appear for child link

Added below the "can_break_upper_beehive" a new helper called "can_break_upper_beehive_child" which removes the requirement for hookshot to avoid a logic error in the Zora Domain Beehives where it checks whether child or adult can break beehives, even though these beehives do not appear as an adult.

* Update LogicHelpers.json moving the call for is_child

As is_child is already called for can_use (Boomerang), it's a bit redundant to include the check for using the Boomerang, so it's being moved to be with the Bombchu check to ensure that it's not expected if the Bombchu Logic Rule is turned on that Adult can use bombchus to break the beehives. This effectively does the same thing, but should be better on performance.
This commit is contained in:
justinspatz
2025-03-10 12:39:45 -04:00
committed by GitHub
parent d83294efa7
commit 06111ac6cf
2 changed files with 4 additions and 3 deletions

View File

@@ -66,6 +66,7 @@
"can_break_heated_crate": "deadly_bonks != 'ohko' or (Fairy and (can_use(Goron_Tunic) or damage_multiplier != 'ohko')) or can_use(Nayrus_Love) or can_blast_or_smash", "can_break_heated_crate": "deadly_bonks != 'ohko' or (Fairy and (can_use(Goron_Tunic) or damage_multiplier != 'ohko')) or can_use(Nayrus_Love) or can_blast_or_smash",
"can_break_lower_beehive": "can_use(Boomerang) or can_use(Hookshot) or Bombs or (logic_beehives_bombchus and has_bombchus)", "can_break_lower_beehive": "can_use(Boomerang) or can_use(Hookshot) or Bombs or (logic_beehives_bombchus and has_bombchus)",
"can_break_upper_beehive": "can_use(Boomerang) or can_use(Hookshot) or (logic_beehives_bombchus and has_bombchus)", "can_break_upper_beehive": "can_use(Boomerang) or can_use(Hookshot) or (logic_beehives_bombchus and has_bombchus)",
"can_break_upper_beehive_child": "can_use(Boomerang) or (logic_beehives_bombchus and has_bombchus and is_child)",
# can_use and helpers # can_use and helpers
# The parser reduces this to smallest form based on item category. # The parser reduces this to smallest form based on item category.
# Note that can_use(item) is False for any item not covered here. # Note that can_use(item) is False for any item not covered here.

View File

@@ -2233,8 +2233,8 @@
"ZD Pot 3": "True", "ZD Pot 3": "True",
"ZD Pot 4": "True", "ZD Pot 4": "True",
"ZD Pot 5": "True", "ZD Pot 5": "True",
"ZD In Front of King Zora Beehive 1": "is_child and can_break_upper_beehive", "ZD In Front of King Zora Beehive 1": "can_break_upper_beehive_child",
"ZD In Front of King Zora Beehive 2": "is_child and can_break_upper_beehive", "ZD In Front of King Zora Beehive 2": "can_break_upper_beehive_child",
"ZD GS Frozen Waterfall": " "ZD GS Frozen Waterfall": "
is_adult and at_night and is_adult and at_night and
(Hookshot or Bow or Magic_Meter or logic_domain_gs)", (Hookshot or Bow or Magic_Meter or logic_domain_gs)",
@@ -2259,7 +2259,7 @@
"scene": "Zoras Domain", "scene": "Zoras Domain",
"hint": "ZORAS_DOMAIN", "hint": "ZORAS_DOMAIN",
"locations": { "locations": {
"ZD Behind King Zora Beehive": "is_child and can_break_upper_beehive" "ZD Behind King Zora Beehive": "can_break_upper_beehive_child"
}, },
"exits": { "exits": {
"Zoras Domain": " "Zoras Domain": "