Spike Cave v29 adjustment

This makes spike cave correctly understand that potions in v29 will refill full magic independent of difficulty setting.
This commit is contained in:
AmazingAmpharos 2018-01-29 18:56:15 -06:00 committed by GitHub
parent ffe8df3304
commit b8778385ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 17 deletions

View File

@ -387,17 +387,17 @@ class CollectionState(object):
def can_lift_heavy_rocks(self):
return self.has('Titans Mitts')
def can_extend_magic(self, smallmagic=8): #This reflects the total magic Link has, not the total extra he has.
def can_extend_magic(self, smallmagic=8, fullrefill=False): #This reflects the total magic Link has, not the total extra he has.
basemagic = 8
if self.has('Quarter Magic'):
basemagic = 32
elif self.has('Half Magic'):
basemagic = 16
if self.world.difficulty == 'hard':
if self.world.difficulty == 'hard' and fullrefill == False:
basemagic = basemagic + int(basemagic * 0.5 * self.bottle_count())
elif self.world.difficulty == 'expert':
elif self.world.difficulty == 'expert' and fullrefill == False:
basemagic = basemagic + int(basemagic * 0.25 * self.bottle_count())
elif self.world.difficulty == 'insane':
elif self.world.difficulty == 'insane' and fullrefill == False:
basemagic = basemagic
else:
basemagic = basemagic + basemagic * self.bottle_count()

View File

@ -185,21 +185,12 @@ def global_rules(world):
set_rule(world.get_entrance('Isolated Ledge Mirror Spot'), lambda state: state.has_Mirror())
set_rule(world.get_entrance('Superbunny Cave Exit (Bottom)'), lambda state: False) # Cannot get to bottom exit from top. Just exists for shuffling
# Todo: Update the below to reflect that latest ROM has full strengh potions in all difficulties in spike cave
set_rule(world.get_location('Spike Cave'), lambda state:
state.has('Hammer') and state.can_lift_rocks() and
(
(
state.has('Cape')
and (state.can_extend_magic(16)
or (state.can_extend_magic(12) and (state.world.can_take_damage or state.has_Boots()))
or (state.can_extend_magic(10) and state.world.can_take_damage and state.has_Boots()))
) or (
state.has('Cane of Byrna')
and (state.can_extend_magic(12)
or (state.can_extend_magic(10) and (state.has_Boots() or state.world.can_take_damage))
or (state.world.can_take_damage and (state.has_Boots() or state.has_hearts(4)))))
)
((state.has('Cape') and state.can_extend_magic(16, True)) or
(state.has('Cane of Byrna') and
(state.can_extend_magic(12, True) or
(state.world.can_take_damage and (state.has_Boots() or state.has_hearts(4))))))
)
set_rule(world.get_location('Hookshot Cave - Top Right'), lambda state: state.has('Hookshot'))