Fix for intensity 3 inverted lobbies if lobbies are chosen to be vanilla

Flooded pots not actually able to be flooded in some potshuffles
This commit is contained in:
randall.rupper
2021-03-16 14:23:52 -06:00
parent 7ef186134a
commit 3c81e377e5
5 changed files with 21 additions and 3 deletions

View File

@@ -586,7 +586,8 @@ class CollectionState(object):
for event in reachable_events: for event in reachable_events:
if event.name in flooded_keys.keys(): if event.name in flooded_keys.keys():
flood_location = self.world.get_location(flooded_keys[event.name], event.player) flood_location = self.world.get_location(flooded_keys[event.name], event.player)
if flood_location.item and flood_location not in self.locations_checked: if (flood_location.item and flood_location not in self.locations_checked
and self.location_can_be_flooded(flood_location)):
adjusted_checks.remove(event) adjusted_checks.remove(event)
if len(adjusted_checks) < len(reachable_events): if len(adjusted_checks) < len(reachable_events):
return adjusted_checks return adjusted_checks
@@ -597,9 +598,14 @@ class CollectionState(object):
flood_location = world.get_location(flooded_keys[location.name], location.player) flood_location = world.get_location(flooded_keys[location.name], location.player)
item = flood_location.item item = flood_location.item
item_is_important = False if not item else item.advancement or item.bigkey or item.smallkey item_is_important = False if not item else item.advancement or item.bigkey or item.smallkey
return flood_location in self.locations_checked or not item_is_important return (flood_location in self.locations_checked or not item_is_important
or not self.location_can_be_flooded(flood_location))
return True return True
@staticmethod
def location_can_be_flooded(location):
return location.parent_region.name in ['Swamp Trench 1 Alcove', 'Swamp Trench 2 Alcove']
def has(self, item, player, count=1): def has(self, item, player, count=1):
if count == 1: if count == 1:
return (item, player) in self.prog_items return (item, player) in self.prog_items

View File

@@ -26,7 +26,7 @@ from Fill import sell_potions, sell_keys, balance_multiworld_progression, balanc
from ItemList import generate_itempool, difficulties, fill_prizes, customize_shops from ItemList import generate_itempool, difficulties, fill_prizes, customize_shops
from Utils import output_path, parse_player_names from Utils import output_path, parse_player_names
__version__ = '0.3.1.5-u' __version__ = '0.3.1.6-u'
class EnemizerError(RuntimeError): class EnemizerError(RuntimeError):

View File

@@ -128,6 +128,12 @@ New item counter modified to show total
# Bug Fixes and Notes. # Bug Fixes and Notes.
* 0.3.1.6-u
* Fix for inverted. AT or GT vanilla lobby in intensity 3 should not softlock on exit in non-ER modes.
* Backward compatibility for "chaos" enemizer flags. (Thanks krebel)
* Fix for potshuffle and swamp trench generation errors (Thanks StructuralMike)
* Fix for TFH playthrough (Thanks StructuralMike)
* Fix for Standard+Retro (Thanks StructuralMike)
* 0.3.1.5-u * 0.3.1.5-u
* Ganon hints fixed for shops * Ganon hints fixed for shops
* Added support for a settings file so SahasrahBot and the main website can use it easier. (Thanks Synack) * Added support for a settings file so SahasrahBot and the main website can use it easier. (Thanks Synack)

2
Rom.py
View File

@@ -729,6 +729,8 @@ def patch_rom(world, rom, player, team, enemized, is_mystery=False):
aga_portal = world.get_portal('Agahnims Tower', player) aga_portal = world.get_portal('Agahnims Tower', player)
gt_portal = world.get_portal('Ganons Tower', player) gt_portal = world.get_portal('Ganons Tower', player)
aga_portal.exit_offset, gt_portal.exit_offset = gt_portal.exit_offset, aga_portal.exit_offset aga_portal.exit_offset, gt_portal.exit_offset = gt_portal.exit_offset, aga_portal.exit_offset
aga_portal.default = False
gt_portal.default = False
for portal in world.dungeon_portals[player]: for portal in world.dungeon_portals[player]:
if not portal.default: if not portal.default:

View File

@@ -44,6 +44,10 @@
mc: 3 mc: 3
mcs: 2 mcs: 2
full: 5 full: 5
dungeon_counters:
on: 5
off: 0
default: 5
experimental: experimental:
on: 1 on: 1
off: 0 off: 0