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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user