forked from mirror/Archipelago
Some checks failed
Analyze modified files / flake8 (push) Failing after 2m28s
Build / build-win (push) Has been cancelled
Build / build-ubuntu2204 (push) Has been cancelled
ctest / Test C++ ubuntu-latest (push) Has been cancelled
ctest / Test C++ windows-latest (push) Has been cancelled
Analyze modified files / mypy (push) Has been cancelled
Build and Publish Docker Images / Push Docker image to Docker Hub (push) Successful in 5m4s
Native Code Static Analysis / scan-build (push) Failing after 5m2s
type check / pyright (push) Successful in 1m7s
unittests / Test Python 3.11.2 ubuntu-latest (push) Failing after 16m23s
unittests / Test Python 3.12 ubuntu-latest (push) Failing after 28m19s
unittests / Test Python 3.13 ubuntu-latest (push) Failing after 14m49s
unittests / Test hosting with 3.13 on ubuntu-latest (push) Successful in 5m0s
unittests / Test Python 3.13 macos-latest (push) Has been cancelled
unittests / Test Python 3.11 windows-latest (push) Has been cancelled
unittests / Test Python 3.13 windows-latest (push) Has been cancelled
110 lines
3.9 KiB
Python
110 lines
3.9 KiB
Python
from BaseClasses import Region
|
|
|
|
from ..base_classes import D3DLevel
|
|
|
|
|
|
class E2L11(D3DLevel):
|
|
name = "Lunatic Fringe"
|
|
levelnum = 10
|
|
volumenum = 1
|
|
keys = []
|
|
location_defs = [
|
|
{"id": 28, "name": "Center Ring Shrinker", "type": "sprite", "density": 0},
|
|
{"id": 58, "name": "Top Ledge Devastator", "type": "sprite", "density": 0},
|
|
{
|
|
"id": 63,
|
|
"name": "MP Center Ring Night Vision Goggles",
|
|
"type": "sprite",
|
|
"density": 5,
|
|
},
|
|
{"id": 92, "name": "Bottom Ring Holo Duke", "type": "sprite", "density": 0},
|
|
{"id": 93, "name": "Center Ring RPG", "type": "sprite", "density": 0},
|
|
{"id": 96, "name": "Bottom Ring Armor", "type": "sprite", "density": 0},
|
|
{"id": 99, "name": "MP Center Ring Jetpack", "type": "sprite", "density": 5},
|
|
{
|
|
"id": 102,
|
|
"name": "Center Ring Atomic Health",
|
|
"type": "sprite",
|
|
"density": 0,
|
|
},
|
|
{"id": 104, "name": "Top Ledge Pipebombs", "type": "sprite", "density": 3},
|
|
{"id": 109, "name": "Center Ring Steroids", "type": "sprite", "density": 3},
|
|
{"id": 111, "name": "Bottom Ring Tripmine", "type": "sprite", "density": 4},
|
|
{"id": 112, "name": "Top Ledge Medkit", "type": "sprite", "density": 4},
|
|
{"id": 113, "name": "MP Top Ledge Shrinker", "type": "sprite", "density": 5},
|
|
{"id": 115, "name": "Center Ring Chaingun", "type": "sprite", "density": 0},
|
|
{"id": 123, "name": "Center Ring Shotgun", "type": "sprite", "density": 4},
|
|
{
|
|
"id": 124,
|
|
"name": "Bottom Ring Freezethrower",
|
|
"type": "sprite",
|
|
"density": 0,
|
|
},
|
|
{"id": 125, "name": "Bottom Ring Shotgun", "type": "sprite"},
|
|
{"id": 127, "name": "Center Ring Pipebombs", "type": "sprite", "density": 3},
|
|
{
|
|
"id": 180,
|
|
"name": "Center Top Atomic Health 1",
|
|
"type": "sprite",
|
|
"density": 3,
|
|
},
|
|
{
|
|
"id": 181,
|
|
"name": "Center Top Atomic Health 2",
|
|
"type": "sprite",
|
|
"density": 4,
|
|
},
|
|
{"id": 0, "name": "Exit", "type": "exit"},
|
|
]
|
|
|
|
def main_region(self) -> Region:
|
|
r = self.rules
|
|
ret = self.region(
|
|
self.name,
|
|
[],
|
|
)
|
|
|
|
past_door = self.region(
|
|
"Past Door",
|
|
[
|
|
"Top Ledge Devastator",
|
|
"Top Ledge Pipebombs",
|
|
"MP Top Ledge Shrinker",
|
|
"Top Ledge Medkit",
|
|
"Bottom Ring Holo Duke",
|
|
"Bottom Ring Armor",
|
|
"Bottom Ring Tripmine",
|
|
"Bottom Ring Freezethrower",
|
|
"Bottom Ring Shotgun",
|
|
"Center Ring Shotgun",
|
|
],
|
|
)
|
|
self.connect(ret, past_door, r.can_use)
|
|
self.restrict("Bottom Ring Holo Duke", r.can_open | r.fast_crouch_jump)
|
|
self.restrict("Bottom Ring Armor", r.can_open | r.fast_crouch_jump)
|
|
|
|
center_ring = self.region(
|
|
"Center Top Ring",
|
|
[
|
|
"Center Ring RPG",
|
|
"MP Center Ring Night Vision Goggles",
|
|
"Center Ring Chaingun",
|
|
"Center Ring Steroids",
|
|
"Center Ring Pipebombs",
|
|
"Center Ring Atomic Health",
|
|
"MP Center Ring Jetpack",
|
|
"Center Ring Shrinker",
|
|
"Exit",
|
|
],
|
|
)
|
|
# can walk across a lizard trooper from the start
|
|
self.connect(past_door, center_ring, r.jump | r.difficulty("medium"))
|
|
self.restrict("Exit", r.can_use & (r.can_shrink | r.crouch_jump))
|
|
|
|
center_top = self.region(
|
|
"Center Top Platform",
|
|
["Center Top Atomic Health 1", "Center Top Atomic Health 2"],
|
|
)
|
|
self.connect(center_ring, center_top, r.jump)
|
|
return ret
|