Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 39 additions & 1 deletion EntranceShuffle.py
Original file line number Diff line number Diff line change
Expand Up @@ -472,8 +472,9 @@ def shuffle_random_entrances(worlds: list[World]) -> None:

if worlds[0].settings.warp_songs:
one_way_entrance_pools['WarpSong'] = world.get_shufflable_entrances(type='WarpSong')
if worlds[0].settings.reachable_locations != 'beatable' and worlds[0].settings.logic_rules == 'glitchless':
if worlds[0].settings.reachable_locations != 'beatable' and worlds[0].settings.logic_rules != 'none':
# In glitchless, there aren't any other ways to access these areas
# This also applies in Advanced logic when specific tricks aren't enabled
wincons = {worlds[0].settings.bridge, worlds[0].settings.shuffle_ganon_bosskey}
if worlds[0].settings.shuffle_ganon_bosskey == 'on_lacs':
wincons.add(worlds[0].settings.lacs_condition)
Expand All @@ -482,19 +483,56 @@ def shuffle_random_entrances(worlds: list[World]) -> None:
or worlds[0].mixed_pools_bosses
):
wincons -= {'dungeons', 'stones', 'medallions'}

if (
worlds[0].settings.reachable_locations == 'all'
or ('tokens' in wincons and worlds[0].settings.tokensanity in ('off', 'dungeons'))
):
one_way_priorities['Bolero'] = priority_entrance_table['Bolero']

if (
worlds[0].settings.logic_rules == 'glitchless'
or (
worlds[0].settings.logic_rules == 'advanced'
and not (
'glitch_isg' in worlds[0].settings.advanced_allowed_tricks
and (
(
'glitch_graveyard_shadow_early_hover' in worlds[0].settings.advanced_allowed_tricks
and 'glitch_hovering' in worlds[0].settings.advanced_allowed_tricks
)
or
'glitch_graveyard_shadow_early_hookshot' in worlds[0].settings.advanced_allowed_tricks
)
)
)
) and (
worlds[0].settings.reachable_locations == 'all'
or 'dungeons' in wincons
or ('stones' in wincons and 'medallions' in wincons)
or ('tokens' in wincons and worlds[0].settings.tokensanity in ('off', 'overworld'))
):
one_way_priorities['Nocturne'] = priority_entrance_table['Nocturne']

if (
worlds[0].settings.logic_rules == 'glitchless'
or (
worlds[0].settings.logic_rules == 'advanced'
and not (
'logic_wasteland_crossing' in worlds[0].settings.allowed_tricks
and (
(
'glitch_isg' in worlds[0].settings.advanced_allowed_tricks
and 'glitch_hovering' in worlds[0].settings.advanced_allowed_tricks
)
or
'adv_cucco_jump' in worlds[0].settings.advanced_allowed_tricks
or
'glitch_megaflip' in worlds[0].settings.advanced_allowed_tricks
)
)
)
) and (
not worlds[0].shuffle_dungeon_entrances
and not worlds[0].settings.shuffle_overworld_entrances
and not worlds[0].shuffle_special_interior_entrances
Expand Down
1 change: 1 addition & 0 deletions data/Glitched World/Bottom of the Well MQ.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
or (can_gdv and can_isg))
)
or can_use(Boomerang)",
"Bottom of the Well MQ GS Basement": "can_child_attack or is_adult",
"Bottom of the Well MQ GS Coffin Room": "
(Small_Key_Bottom_of_the_Well, 2) and (can_child_attack or is_adult)",
"Wall Fairy": "has_bottle and can_use(Slingshot)",
Expand Down
3 changes: 2 additions & 1 deletion data/Glitched World/Ganons Castle MQ.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@
"Ganons Castle Shadow Trial": "True",
"Ganons Castle Fire Trial": "logic_fewer_tunic_requirements or can_use(Goron_Tunic)",
"Ganons Castle Light Trial": "can_use(Golden_Gauntlets) or
(has_explosives and can_live_dmg(0.5,False) and is_adult)",
(is_adult and glitch_clipping and has_explosives and can_live_dmg(0.5,False))
or (glitch_clipping and can_superslide and Bombs)",
"Ganons Castle Spirit Trial": "True",
"Ganons Castle Deku Scrubs": "logic_lens_castle_mq or can_use(Lens_of_Truth)",
"Ganons Castle Tower": "(glitch_igc_trials_skip and can_hover) or (
Expand Down
5 changes: 3 additions & 2 deletions data/Glitched World/Ganons Castle.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@
"Ganons Castle Shadow Trial": "True",
"Ganons Castle Fire Trial": "logic_fewer_tunic_requirements or can_use(Goron_Tunic)",
"Ganons Castle Light Trial": "can_use(Golden_Gauntlets) or
(has_explosives and can_live_dmg(0.5,False) and is_adult)",
(is_adult and glitch_clipping and has_explosives and can_live_dmg(0.5,False))
or (glitch_clipping and can_superslide and Bombs)",
"Ganons Castle Spirit Trial": "True",
"Ganons Castle Deku Scrubs": "logic_lens_castle or can_use(Lens_of_Truth)",
"Ganons Castle Tower": "(glitch_igc_trials_skip and can_hover) or (
Expand Down Expand Up @@ -227,7 +228,7 @@
"Ganons Castle Light Trial Boulder Pot": "True",
"Ganons Castle Light Trial Silver Rupee Right Alcove": "True",
"Ganons Castle Light Trial Silver Rupee Left Alcove": "True",
"Ganons Castle Light Trial Silver Rupee Center Top": "Hookshot",
"Ganons Castle Light Trial Silver Rupee Center Top": "can_use(Hookshot)",
"Ganons Castle Light Trial Silver Rupee Center Right": "True",
"Ganons Castle Light Trial Silver Rupee Center Left": "True"
},
Expand Down
22 changes: 12 additions & 10 deletions data/Glitched World/Overworld.json
Original file line number Diff line number Diff line change
Expand Up @@ -206,8 +206,7 @@
or can_mega or can_superslide or can_hess or can_hover",
"Lost Woods": "True",
"LW Bridge From Forest": "can_leave_forest",
"KF Storms Grotto": "can_open_storm_grotto",
"Deku Tree Lobby": "can_hover or (can_use(Hover_Boots) and (can_megajump or can_superslide or can_hess))"
"KF Storms Grotto": "can_open_storm_grotto"
}
},
{
Expand All @@ -234,7 +233,8 @@
is_child
or (shuffle_dungeon_entrances and (open_forest == 'open' or 'Showed Mido Sword & Shield'))
or (glitch_moustache_clip)
or (can_hess and can_use(Hover_Boots))",
or (can_hess and can_use(Hover_Boots))
or at('Kokiri Forest', can_hover or (can_use(Hover_Boots) and (can_megajump or can_superslide or can_hess)))",
"Kokiri Forest": "is_adult or open_forest == 'open' or 'Showed Mido Sword & Shield' or can_hess
or can_superslide or can_mega"
}
Expand Down Expand Up @@ -868,7 +868,10 @@
or
(is_child and
(glitch_gtg_child_groundclip and can_jumpslash)
)",
)
or at('Gerudo Fortress Archery Range', adv_gf_unload)
or at('GF Kitchen Roof Access', glitch_ledge_clip and is_adult)
",
"GF Balcony": "can_use(Hookshot) and glitch_clipping",
"GF Kitchen Roof Access": "can_use(Longshot) and can_weirdshot"
}
Expand Down Expand Up @@ -911,7 +914,6 @@
},
"exits": {
"GF Kitchen Roof Access": "can_use(Longshot) and Gerudo_Membership_Card",
"Gerudo Training Ground Lobby": "adv_gf_unload",
"GF Outside Gate": "adv_gf_unload"
}
},
Expand Down Expand Up @@ -940,8 +942,7 @@
# child can damage boost from the GS alcove, but it's really precise
# got it once, will have to find a setup
"GF Break Room Entrance": "can_hover or can_mega or (is_adult and (logic_gf_break_room_jump or Hover_Boots))",
"Gerudo Fortress Archery Range": "adv_gf_archery_no_card",
"Gerudo Training Ground Lobby": "glitch_ledge_clip and is_adult"
"Gerudo Fortress Archery Range": "adv_gf_archery_no_card"
}
},
{
Expand Down Expand Up @@ -2237,8 +2238,6 @@
"Graveyard Dampes House": "is_adult or at_dampe_time",
"Kakariko Village": "True",
"Graveyard Warp Pad Region": "(is_adult and glitch_graveyard_shadow_early_hookshot and Hookshot
and can_isg) or (glitch_graveyard_shadow_early_hover and can_hover)",
"Shadow Temple Entryway": "(is_adult and glitch_graveyard_shadow_early_hookshot and Hookshot
and can_isg) or (glitch_graveyard_shadow_early_hover and can_hover)"
}
},
Expand Down Expand Up @@ -2353,7 +2352,10 @@
"Shadow Temple Entryway": "
can_use(Dins_Fire) or (logic_shadow_fire_arrow_entry and can_use(Fire_Arrows)) or
can_gdv or (is_adult and glitch_graveyard_shadow_early_bomb_push and Bombs and can_shield)
or (is_adult and glitch_ledge_clip)"
or (is_adult and glitch_ledge_clip)
or at('Graveyard', (is_adult and glitch_graveyard_shadow_early_hookshot and Hookshot
and can_isg) or (glitch_graveyard_shadow_early_hover and can_hover))
"
}
},
{
Expand Down
1 change: 0 additions & 1 deletion data/Glitched World/Water Temple MQ.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,6 @@
"locations": {},
"exits": {
"Water Temple East Column": "True",
"Water Temple Storage Room": "True",
"Water Temple South Basement": "glitch_water_south_basement_clip or (Zora_Tunic and Iron_Boots)",
"Water Temple North Basement": "
(glitch_water_bk_area_antigrav and can_live_dmg(0.5))
Expand Down