@@ -76,6 +76,10 @@ def _region_access_rule(
76
76
if side == CelesteSide .A_SIDE :
77
77
if level == CelesteLevel .FORSAKEN_CITY :
78
78
return None
79
+ if level .previous () == CelesteLevel .EPILOGUE :
80
+ return lambda state : state .has (
81
+ BaseData .item_name (CelesteItemType .COMPLETION , level .previous (), CelesteSide .A_SIDE ), player
82
+ )
79
83
return lambda state : state .has_any (
80
84
{
81
85
BaseData .item_name (CelesteItemType .COMPLETION , level .previous (), CelesteSide .A_SIDE ),
@@ -102,20 +106,14 @@ def _region_access_rule(
102
106
def _location_access_rule (
103
107
self , player : int , level : CelesteLevel , side : CelesteSide
104
108
) -> Optional [Callable [[CollectionState ], bool ]]:
105
- if level == CelesteLevel .CORE :
106
- if side == CelesteSide .A_SIDE :
107
- return lambda state : state .has_group ("hearts" , player , 4 )
108
- elif side == CelesteSide .B_SIDE :
109
- return lambda state : state .has_group ("hearts" , player , 15 )
110
- elif side == CelesteSide .C_SIDE :
111
- return lambda state : state .has_group ("hearts" , player , 23 )
112
-
113
109
if level == self ._goal_level () and side == self ._goal_side ():
114
110
return lambda state : (
115
111
state .has_group (
116
112
"hearts" ,
117
113
player ,
118
- self .get_option ("hearts_required" ),
114
+ self .get_option ("hearts_required" )
115
+ if level != CelesteLevel .CORE
116
+ else max (4 , self .get_option ("hearts_required" )),
119
117
)
120
118
and state .has (
121
119
"Strawberry" ,
@@ -134,6 +132,14 @@ def _location_access_rule(
134
132
)
135
133
)
136
134
135
+ if level == CelesteLevel .CORE :
136
+ if side == CelesteSide .A_SIDE :
137
+ return lambda state : state .has_group ("hearts" , player , 4 )
138
+ elif side == CelesteSide .B_SIDE :
139
+ return lambda state : state .has_group ("hearts" , player , 15 )
140
+ elif side == CelesteSide .C_SIDE :
141
+ return lambda state : state .has_group ("hearts" , player , 23 )
142
+
137
143
return lambda state : True
138
144
139
145
def victory_item_name (self ) -> str :
0 commit comments