Simple key logic for Escape

Adds ability to make a location for required keys (enemy drops and pots), so the filler knows about them.

Uses the most pessimistic possible rule to make sure you can't keylock yourself in Escape.
This commit is contained in:
tolmar
2019-09-15 02:28:04 -07:00
parent 3a872723b0
commit 40f345df13
3 changed files with 33 additions and 7 deletions

View File

@@ -898,17 +898,24 @@ class Boss(object):
return self.defeat_rule(state, self.player)
class Location(object):
def __init__(self, player, name='', address=None, crystal=False, hint_text=None, parent=None):
def __init__(self, player, name='', address=None, crystal=False, hint_text=None, parent=None, forced_item=None):
self.name = name
self.parent_region = parent
self.item = None
if forced_item is not None:
from Items import ItemFactory
self.forced_item = ItemFactory([forced_item], player)[0]
self.item = self.forced_item
self.event = True
else:
self.forced_item = None
self.item = None
self.event = False
self.crystal = crystal
self.address = address
self.spot_type = 'Location'
self.hint_text = hint_text if hint_text is not None else 'Hyrule'
self.recursion_count = 0
self.staleness_count = 0
self.event = False
self.locked = True
self.always_allow = lambda item, state: False
self.access_rule = lambda state: True