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
6503 lines
190 KiB
Python
6503 lines
190 KiB
Python
"""Crown Location List."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from enum import IntEnum, auto
|
|
from typing import TYPE_CHECKING
|
|
|
|
from randomizer.Enums.Events import Events
|
|
from randomizer.Enums.Kongs import Kongs
|
|
from randomizer.Enums.Levels import Levels
|
|
from randomizer.Enums.Regions import Regions
|
|
from randomizer.Enums.Settings import HelmSetting, RemovedBarriersSelected, ShufflePortLocations, KasplatRandoSetting
|
|
from randomizer.Enums.Switches import Switches
|
|
from randomizer.Enums.Time import Time
|
|
from randomizer.Enums.Maps import Maps
|
|
|
|
|
|
class CustomLocation:
|
|
"""Class to store information pertaining to a custom location for objects, such as crown pads, dirt patches and melon crates."""
|
|
|
|
def __init__(
|
|
self,
|
|
*,
|
|
map=0,
|
|
name="",
|
|
x=0,
|
|
y=0,
|
|
z=0,
|
|
rot_x=0,
|
|
rot_y=0,
|
|
rot_z=0,
|
|
max_size=160,
|
|
logic_region=0,
|
|
logic=None,
|
|
group=0,
|
|
vanilla_crown=False,
|
|
vanilla_crate=False,
|
|
vanilla_patch=False,
|
|
vanilla_port=False,
|
|
is_rotating_room=False,
|
|
is_fungi_hidden_patch=False,
|
|
is_galleon_floating_crate=False,
|
|
banned_types: list = [],
|
|
default_index=0,
|
|
tied_warp_event: Events = None,
|
|
) -> None:
|
|
"""Initialize with given data."""
|
|
self.map = map
|
|
self.name = name
|
|
self.coords = [x, y, z]
|
|
self.rot_x = rot_x
|
|
self.rot_y = rot_y
|
|
self.rot_z = rot_z
|
|
self.max_size = max_size
|
|
self.logic = logic
|
|
self.logic_region = logic_region
|
|
self.group = group
|
|
self.vanilla_crown = vanilla_crown
|
|
self.vanilla_crate = vanilla_crate
|
|
self.vanilla_patch = vanilla_patch
|
|
self.vanilla_port = vanilla_port
|
|
self.selected = vanilla_crown or vanilla_patch or vanilla_port or vanilla_crate
|
|
self.is_rotating_room = is_rotating_room
|
|
self.is_fungi_hidden_patch = is_fungi_hidden_patch
|
|
self.is_galleon_floating_crate = is_galleon_floating_crate
|
|
self.banned_types = banned_types
|
|
self.default_index = default_index
|
|
self.placement_subindex = default_index
|
|
self.tied_warp_event = tied_warp_event
|
|
if logic is None:
|
|
self.has_access_logic = False
|
|
self.logic = lambda l: True
|
|
else:
|
|
self.has_access_logic = True
|
|
self.logic = logic
|
|
|
|
def setCustomLocation(self, value: bool) -> None:
|
|
"""Set location's state regarding rando."""
|
|
self.selected = value
|
|
|
|
def isValidLocation(self, placement_type: LocationTypes) -> bool:
|
|
"""Determine whether the location is valid for placement of a certain object."""
|
|
if self.selected:
|
|
return False
|
|
if placement_type in self.banned_types:
|
|
return False
|
|
return True
|
|
|
|
|
|
def getBannedWarps(spoiler) -> list[Events]:
|
|
"""Get list of banned warp events based on settings."""
|
|
lst = [
|
|
# All of these float on water, lets make these static
|
|
Events.GalleonW2bTagged,
|
|
Events.GalleonW4bTagged,
|
|
Events.GalleonW5bTagged,
|
|
# Only way to ensure 2 hidden warps don't link to eachother
|
|
Events.CavesW3bTagged,
|
|
Events.CavesW4bTagged,
|
|
Events.CavesW5aTagged,
|
|
# Locations with extra logic
|
|
Events.JapesW5bTagged,
|
|
Events.AztecW5bTagged,
|
|
Events.GalleonW4aTagged,
|
|
]
|
|
WARP_SHUFFLE_SETTING = spoiler.settings.bananaport_placement_rando
|
|
PLATFORMING_SETTING = spoiler.LogicVariables.advanced_platforming
|
|
if WARP_SHUFFLE_SETTING in [ShufflePortLocations.on, ShufflePortLocations.half_vanilla]:
|
|
# Access to the Lanky Kasplat and potential coins or coloured bananas
|
|
lst.append(Events.LlamaW2bTagged)
|
|
if not PLATFORMING_SETTING:
|
|
# Access to Blueprint Pillar or Bonus Cave for not [Diddy or Tiny]
|
|
lst.append(Events.CavesW4aTagged)
|
|
if WARP_SHUFFLE_SETTING == ShufflePortLocations.half_vanilla:
|
|
lst.extend(
|
|
[
|
|
# Japes
|
|
Events.JapesW1aTagged, # W1 Portal
|
|
Events.JapesW2aTagged, # W2 Entrance
|
|
Events.JapesW3aTagged, # W3 Painting
|
|
Events.JapesW4aTagged, # W4 Tunnel
|
|
# Aztec
|
|
Events.AztecW1aTagged, # W1 Portal
|
|
Events.AztecW2aTagged, # W2 Oasis
|
|
Events.AztecW3aTagged, # W3 Totem
|
|
Events.AztecW4aTagged, # W4 Totem
|
|
# Llama
|
|
Events.LlamaW1aTagged, # W1 Near Entrance
|
|
# Factory
|
|
Events.FactoryW1aTagged, # W1 Lobby
|
|
Events.FactoryW2aTagged, # W2 Lobby
|
|
Events.FactoryW3aTagged, # W3 Lobby
|
|
Events.FactoryW4aTagged, # W4 Prod Bottom
|
|
Events.FactoryW5bTagged, # W5 Funky
|
|
# Galleon
|
|
Events.GalleonW1aTagged, # W1 Main Area
|
|
Events.GalleonW3aTagged, # W3 Main Area
|
|
# Fungi
|
|
Events.ForestW1aTagged, # W1 Clock
|
|
Events.ForestW2aTagged, # W2 Clock
|
|
Events.ForestW3aTagged, # W3 Clock
|
|
Events.ForestW4aTagged, # W4 Clock
|
|
Events.ForestW5bTagged, # W5 Low
|
|
# Caves
|
|
Events.CavesW1aTagged, # W1 Start
|
|
Events.CavesW2aTagged, # W2 Start
|
|
# Castle
|
|
Events.CastleW1aTagged, # W1 Start
|
|
Events.CastleW2aTagged, # W2 Start
|
|
Events.CastleW3aTagged, # W3 Start
|
|
Events.CastleW4aTagged, # W4 Start
|
|
Events.CastleW5aTagged, # W5 Start
|
|
# Crypt
|
|
Events.CryptW1aTagged, # W1 Start
|
|
Events.CryptW2aTagged, # W2 Start
|
|
Events.CryptW3aTagged, # W3 Start
|
|
# Isles
|
|
Events.IslesW1aTagged, # W1 Ring
|
|
Events.IslesW2aTagged, # W2 Ring
|
|
Events.IslesW3aTagged, # W3 Ring
|
|
Events.IslesW4aTagged, # W4 Ring
|
|
Events.IslesW5aTagged, # W5 Ring
|
|
]
|
|
)
|
|
return lst
|
|
|
|
|
|
def resetCustomLocations(spoiler) -> None:
|
|
"""Reset all locations to their default selection-state."""
|
|
BANNED_WARPS = getBannedWarps(spoiler)
|
|
for key in CustomLocations.keys():
|
|
for location in CustomLocations[key]:
|
|
location.selected = location.vanilla_crown or location.vanilla_crate or location.vanilla_patch or location.vanilla_port
|
|
if spoiler.settings.crown_placement_rando and location.vanilla_crown and not location.is_rotating_room:
|
|
location.selected = False
|
|
if spoiler.settings.random_patches and location.vanilla_patch and not location.is_fungi_hidden_patch:
|
|
location.selected = False
|
|
if spoiler.settings.random_crates and location.vanilla_crate and not location.is_galleon_floating_crate:
|
|
location.selected = False
|
|
if spoiler.settings.bananaport_placement_rando not in [ShufflePortLocations.off, ShufflePortLocations.vanilla_only] and location.vanilla_port:
|
|
location.selected = False
|
|
if location.tied_warp_event in BANNED_WARPS:
|
|
# Make sure these warps cannot be selected by anything
|
|
location.selected = True
|
|
|
|
|
|
WARP_MAX_SIZE = 56
|
|
|
|
|
|
class LocationTypes(IntEnum):
|
|
"""Location type Enum."""
|
|
|
|
CrownPad = auto()
|
|
DirtPatch = auto()
|
|
MelonCrate = auto()
|
|
Bananaport = auto()
|
|
|
|
|
|
CustomLocations = {
|
|
Levels.JungleJapes: [
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Near Funky",
|
|
x=1989.7,
|
|
y=520,
|
|
z=2086.71,
|
|
max_size=72,
|
|
logic_region=Regions.JapesHill,
|
|
vanilla_crown=True,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="On Painting Hill",
|
|
map=Maps.JungleJapes,
|
|
x=550.814,
|
|
y=370.167,
|
|
z=1873.436,
|
|
rot_y=1070,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.JapesPaintingRoomHill,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Next to level entrance",
|
|
map=Maps.JungleJapes,
|
|
x=754.0,
|
|
y=286.0,
|
|
z=824.0,
|
|
rot_y=796,
|
|
max_size=64,
|
|
logic_region=Regions.JungleJapesStart,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="On Tree (Starting Area)",
|
|
x=1101,
|
|
y=478,
|
|
z=266,
|
|
max_size=40,
|
|
logic_region=Regions.JungleJapesStart,
|
|
logic=lambda l: l.climbing,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Next to first tunnel entrance",
|
|
map=Maps.JungleJapes,
|
|
x=1357.0,
|
|
y=283.0,
|
|
z=205.0,
|
|
rot_y=3572,
|
|
max_size=64,
|
|
logic_region=Regions.JungleJapesStart,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Diddy Cavern",
|
|
x=2381,
|
|
y=280,
|
|
z=392,
|
|
max_size=56,
|
|
logic_region=Regions.JapesBeyondPeanutGate,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Inside Diddy's Cavern",
|
|
map=Maps.JungleJapes,
|
|
x=2475.0,
|
|
y=280.0,
|
|
z=508.0,
|
|
rot_y=2427,
|
|
max_size=64,
|
|
logic_region=Regions.JapesBeyondPeanutGate,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Inside the first tunnel - later half",
|
|
map=Maps.JungleJapes,
|
|
x=1812.0,
|
|
y=280.0,
|
|
z=797.0,
|
|
rot_y=1171,
|
|
max_size=64,
|
|
logic_region=Regions.JungleJapesStart,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Painting Hill",
|
|
x=554,
|
|
y=370,
|
|
z=1804,
|
|
max_size=56,
|
|
logic_region=Regions.JapesPaintingRoomHill,
|
|
group=1,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Shellhive Island",
|
|
x=2337,
|
|
y=551,
|
|
z=3156,
|
|
rot_y=1160,
|
|
max_size=96,
|
|
logic_region=Regions.JapesBeyondFeatherGate,
|
|
group=6,
|
|
),
|
|
# CrownLocation(
|
|
# name="Under Chunky's Barrel",
|
|
# map=Maps.JungleJapes,
|
|
# x=2345.0,
|
|
# y=551.0,
|
|
# z=3152.0,
|
|
# rot_y=1160,
|
|
# max_size=64,
|
|
# logic_region=Regions.JapesBeyondFeatherGate,
|
|
# group=6,
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Near Stump",
|
|
x=1912,
|
|
y=539,
|
|
z=3289,
|
|
max_size=72,
|
|
logic_region=Regions.JapesBeyondFeatherGate,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Near Log",
|
|
x=2419,
|
|
y=539,
|
|
z=2834,
|
|
max_size=72,
|
|
logic_region=Regions.JapesBeyondFeatherGate,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
name="Near the Vine Pit",
|
|
map=Maps.JungleJapes,
|
|
x=796.0,
|
|
y=284.0,
|
|
z=2471.0,
|
|
rot_y=2480,
|
|
max_size=64,
|
|
logic_region=Regions.JapesBeyondCoconutGate2,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Vine Pit",
|
|
x=1150,
|
|
y=230,
|
|
z=2613,
|
|
max_size=72,
|
|
logic_region=Regions.JapesBeyondCoconutGate2,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Lanky Alcove Hill",
|
|
x=2209,
|
|
y=339,
|
|
z=3205,
|
|
max_size=64,
|
|
logic_region=Regions.JapesUselessSlope,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="On the useless Lanky ramp",
|
|
map=Maps.JungleJapes,
|
|
x=2263.0,
|
|
y=338.0,
|
|
z=3158.0,
|
|
rot_y=3305,
|
|
max_size=64,
|
|
logic_region=Regions.JapesUselessSlope,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Cranky-tunnel Crossing",
|
|
map=Maps.JungleJapes,
|
|
x=1633.0,
|
|
y=210.0,
|
|
z=3015.0,
|
|
rot_y=2161,
|
|
max_size=64,
|
|
logic_region=Regions.JapesBeyondCoconutGate2,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="In the Rambi Cave",
|
|
x=715.62884521484,
|
|
y=280,
|
|
z=3758.80859375,
|
|
rot_y=41,
|
|
max_size=64,
|
|
logic_region=Regions.BeyondRambiGate,
|
|
vanilla_crate=True,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.Bananaport],
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Fairy Pool",
|
|
x=597,
|
|
y=240,
|
|
z=3123,
|
|
max_size=64,
|
|
logic_region=Regions.BeyondRambiGate,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Behind Lanky Hut",
|
|
x=2052,
|
|
y=280,
|
|
z=4350,
|
|
max_size=56,
|
|
logic_region=Regions.JapesBeyondCoconutGate2,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Behind DK Hut (1)",
|
|
x=1307,
|
|
y=280,
|
|
z=4327,
|
|
max_size=56,
|
|
logic_region=Regions.JapesBeyondCoconutGate2,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Next to DK hut (2)",
|
|
map=Maps.JungleJapes,
|
|
x=1409.0,
|
|
y=280.0,
|
|
z=4367.0,
|
|
rot_y=2142,
|
|
max_size=64,
|
|
logic_region=Regions.JapesBeyondCoconutGate2,
|
|
group=2,
|
|
),
|
|
# CrownLocation(map=Maps.JungleJapes, name="On Cranky's Lab", x=1696, y=360, z=4002, max_size=40, logic_region=0, group=2), # Doesn't work with shop rando
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Behind Storm Area Shop (1)",
|
|
x=1705,
|
|
y=280,
|
|
z=4233,
|
|
max_size=72,
|
|
logic_region=Regions.JapesBeyondCoconutGate2,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Behind Storm Area Shop (2)",
|
|
map=Maps.JungleJapes,
|
|
x=1697.0,
|
|
y=280.0,
|
|
z=4088.0,
|
|
rot_y=0,
|
|
max_size=64,
|
|
logic_region=Regions.JapesBeyondCoconutGate2,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Minecart Alcove",
|
|
x=1106,
|
|
y=288,
|
|
z=1967,
|
|
rot_y=2707,
|
|
max_size=48,
|
|
logic_region=Regions.JungleJapesMain,
|
|
group=1,
|
|
),
|
|
# CrownLocation(
|
|
# name="Minecart Exit",
|
|
# map=Maps.JungleJapes,
|
|
# x=1108.0,
|
|
# y=288.0,
|
|
# z=1970.0,
|
|
# rot_y=2707,
|
|
# max_size=64,
|
|
# logic_region=Regions.JungleJapesMain,
|
|
# group=1,
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Near High Shop",
|
|
x=2045,
|
|
y=680,
|
|
z=2522,
|
|
max_size=56,
|
|
logic_region=Regions.JapesHillTop,
|
|
group=4,
|
|
),
|
|
# CrownLocation(map=Maps.JungleJapes, name="On Mountain", x=1616, y=989, z=2439, max_size=80, logic_region=Regions.JapesTopOfMountain, group=4),
|
|
CustomLocation(
|
|
name="Behind Diddy's Mountain",
|
|
map=Maps.JungleJapes,
|
|
x=1542.0,
|
|
y=790.0,
|
|
z=2578.0,
|
|
rot_y=2969,
|
|
max_size=64,
|
|
logic_region=Regions.JapesHillTop,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Near Kong Cage",
|
|
x=949,
|
|
y=852,
|
|
z=2384,
|
|
max_size=56,
|
|
logic_region=Regions.JapesHillTop,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Near Cannon to Diddy-freeing cage",
|
|
map=Maps.JungleJapes,
|
|
x=1274.0,
|
|
y=520.0,
|
|
z=2225.0,
|
|
rot_y=2275,
|
|
max_size=64,
|
|
logic_region=Regions.JapesCannonPlatform,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Behind the Mountain",
|
|
x=1586.9215087891,
|
|
y=790.5,
|
|
z=2616.7092285156,
|
|
rot_y=349,
|
|
max_size=64,
|
|
logic_region=Regions.JapesHillTop,
|
|
group=4,
|
|
vanilla_crate=True,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Near Cannon Platform",
|
|
x=1282,
|
|
y=520,
|
|
z=2262,
|
|
max_size=56,
|
|
logic_region=Regions.JapesCannonPlatform,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="In Troff 'n' Scoff Alcove",
|
|
x=770,
|
|
y=538,
|
|
z=2332,
|
|
max_size=56,
|
|
logic_region=Regions.JapesTnSAlcove,
|
|
group=4,
|
|
),
|
|
# CrownLocation(
|
|
# map=Maps.JungleJapes,
|
|
# name="Near Underground Entrance",
|
|
# x=2446,
|
|
# y=280,
|
|
# z=1143,
|
|
# max_size=64,
|
|
# logic_region=Regions.JungleJapesStart,
|
|
# group=1
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.JungleJapes,
|
|
name="Lower River",
|
|
x=2381,
|
|
y=280,
|
|
z=1685,
|
|
max_size=72,
|
|
logic_region=Regions.JungleJapesStart,
|
|
group=1,
|
|
),
|
|
# CrownLocation(map=Maps.JungleJapes, name="Starting Area (Low)", x=742, y=286, z=825, max_size=56, logic_region=Regions.JungleJapesStart, group=1),
|
|
CustomLocation(
|
|
name="Vanilla Near Warp 1",
|
|
map=Maps.JungleJapes,
|
|
x=914.366,
|
|
y=280,
|
|
z=796.257,
|
|
rot_y=3994,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.JungleJapesStart,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.JapesW1aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Hive Warp 5",
|
|
map=Maps.JungleJapes,
|
|
x=2582.048,
|
|
y=539.333,
|
|
z=2948.962,
|
|
rot_y=1343,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.JapesBeyondFeatherGate,
|
|
group=6,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.JapesW5aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Near Warp 2",
|
|
map=Maps.JungleJapes,
|
|
x=1492.371,
|
|
y=280,
|
|
z=1424.4,
|
|
rot_y=2048,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.JungleJapesStart,
|
|
group=2,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.JapesW2aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Painting Warp 3",
|
|
map=Maps.JungleJapes,
|
|
x=1007.791,
|
|
y=288,
|
|
z=2213.355,
|
|
rot_y=2674,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.JungleJapesMain,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.JapesW3aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Far Warp 1",
|
|
map=Maps.JungleJapes,
|
|
x=1515.683,
|
|
y=280,
|
|
z=1202.195,
|
|
rot_y=1957,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.JungleJapesStart,
|
|
group=2,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.JapesW1bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Blast Warp 3",
|
|
map=Maps.JungleJapes,
|
|
x=2457.394,
|
|
y=280,
|
|
z=1494.277,
|
|
rot_y=3391,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.JungleJapesStart,
|
|
group=2,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.JapesW3bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Mountain Warp 2",
|
|
map=Maps.JungleJapes,
|
|
x=1521.21,
|
|
y=790,
|
|
z=2301.499,
|
|
rot_y=2287,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.JapesHillTop,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.JapesW2bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Tunnel Warp 4",
|
|
map=Maps.JungleJapes,
|
|
x=1598.821,
|
|
y=280,
|
|
z=2217.09,
|
|
rot_y=2082,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.JapesBeyondCoconutGate2,
|
|
group=2,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.JapesW4aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Mountain Warp 5",
|
|
map=Maps.JungleJapes,
|
|
x=1615.459,
|
|
y=989.103,
|
|
z=2440.312,
|
|
rot_y=1889,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.JapesTopOfMountain,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.JapesW5bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Cranky Warp 4",
|
|
map=Maps.JungleJapes,
|
|
x=1696.499,
|
|
y=280,
|
|
z=3887.24,
|
|
rot_y=2094,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.JapesBeyondCoconutGate2,
|
|
group=2,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.JapesW4bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Behind Chunky Boulder",
|
|
map=Maps.JungleJapes,
|
|
x=2433.0,
|
|
y=280.0,
|
|
z=1114.0,
|
|
rot_y=3784,
|
|
max_size=64,
|
|
logic_region=Regions.JungleJapesStart,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JapesUnderGround,
|
|
name="Underground: Behind Cannon",
|
|
x=433,
|
|
y=20,
|
|
z=104,
|
|
max_size=40,
|
|
logic_region=Regions.JapesCatacomb,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JapesUnderGround,
|
|
name="Underground: Near Vines",
|
|
x=453,
|
|
y=20,
|
|
z=814,
|
|
max_size=56,
|
|
logic_region=Regions.JapesCatacomb,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JapesLankyCave,
|
|
name="Painting Room: Near Peg",
|
|
x=100,
|
|
y=80,
|
|
z=346,
|
|
max_size=48,
|
|
logic_region=Regions.JapesLankyCave,
|
|
group=1,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JapesMountain,
|
|
name="Mountain: Near Entrance (Ground)",
|
|
x=328,
|
|
y=40,
|
|
z=471,
|
|
max_size=48,
|
|
logic_region=Regions.Mine,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JapesMountain,
|
|
name="Mountain: Near Entrance (High)",
|
|
x=497,
|
|
y=140,
|
|
z=512,
|
|
max_size=56,
|
|
logic_region=Regions.Mine,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JapesMountain,
|
|
name="Mountain: On Barrel",
|
|
x=690,
|
|
y=135,
|
|
z=757,
|
|
rot_y=2013,
|
|
max_size=64,
|
|
logic_region=Regions.Mine,
|
|
group=5,
|
|
),
|
|
# CrownLocation(
|
|
# name="Mountain: On a Barrel",
|
|
# map=Maps.JapesMountain,
|
|
# x=691.0,
|
|
# y=135.0,
|
|
# z=753.0,
|
|
# rot_y=2013,
|
|
# max_size=64,
|
|
# logic_region=Regions.Mine,
|
|
# group=5,
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.JapesMountain, name="Mountain: Near HiLo Machine", x=326, y=133, z=1510, max_size=32, logic_region=Regions.Mine, logic=lambda l: (l.charge and l.isdiddy) or l.CanPhase(), group=5
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JapesMountain,
|
|
name="Mountain: Under Conveyor",
|
|
x=42,
|
|
y=220,
|
|
z=1056,
|
|
max_size=48,
|
|
logic_region=Regions.Mine,
|
|
logic=lambda l: (l.CanSlamSwitch(Levels.JungleJapes, 1) and l.isdiddy) or l.CanPhase(),
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.Bananaport],
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JapesTinyHive,
|
|
name="Shell: Main Room",
|
|
x=1385,
|
|
y=212,
|
|
z=1381,
|
|
max_size=112,
|
|
logic_region=Regions.TinyHive,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JapesTinyHive,
|
|
name="Shell: 1st Room",
|
|
x=610,
|
|
y=130,
|
|
z=1279,
|
|
max_size=96,
|
|
logic_region=Regions.TinyHive,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JapesTinyHive,
|
|
name="Shell: 3rd Room",
|
|
x=2547,
|
|
y=254,
|
|
z=1354,
|
|
max_size=96,
|
|
logic_region=Regions.TinyHive,
|
|
logic=lambda l: (l.CanSlamSwitch(Levels.JungleJapes, 1) or l.CanPhase()) and l.tiny,
|
|
group=6,
|
|
),
|
|
],
|
|
Levels.AngryAztec: [
|
|
CustomLocation(
|
|
map=Maps.AztecTinyTemple,
|
|
name="Tiny Temple: Vulture Room",
|
|
x=1466.42,
|
|
y=305.33,
|
|
z=2340.39,
|
|
max_size=65.6,
|
|
logic_region=Regions.TempleVultureRoom,
|
|
vanilla_crown=True,
|
|
logic=lambda l: l.CanSlamSwitch(Levels.AngryAztec, 1) and l.grape and l.islanky,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Oasis",
|
|
map=Maps.AngryAztec,
|
|
x=2426.34,
|
|
y=115.5,
|
|
z=960.642,
|
|
rot_y=2618,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.AngryAztecOasis,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Chunky 5DT",
|
|
map=Maps.AztecChunky5DTemple,
|
|
x=652.778,
|
|
y=85.0,
|
|
z=1544.845,
|
|
rot_y=1036,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.ChunkyTemple,
|
|
group=7,
|
|
),
|
|
CustomLocation(
|
|
name="Tiny Temple: Main room back-left",
|
|
map=Maps.AztecTinyTemple,
|
|
x=1727.0,
|
|
y=284.0,
|
|
z=649.0,
|
|
rot_y=3417,
|
|
max_size=64,
|
|
logic_region=Regions.TempleStart,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecTinyTemple,
|
|
name="Tiny Temple: Starting Room (Low)",
|
|
x=1802,
|
|
y=283,
|
|
z=611,
|
|
max_size=80,
|
|
logic_region=Regions.TempleStart,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecTinyTemple,
|
|
name="Tiny Temple: Starting Room (High)",
|
|
x=1370,
|
|
y=490,
|
|
z=1126,
|
|
max_size=48,
|
|
logic_region=Regions.TempleStart,
|
|
logic=lambda l: l.CanSlamSwitch(Levels.AngryAztec, 1) and l.diddy,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecTinyTemple,
|
|
name="Tiny Temple: Kong Free Room",
|
|
x=524,
|
|
y=344,
|
|
z=1468,
|
|
max_size=80,
|
|
logic_region=Regions.TempleKONGRoom,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Tiny Temple: Next to Tiny cage",
|
|
map=Maps.AztecTinyTemple,
|
|
x=565.0,
|
|
y=344.0,
|
|
z=1146.0,
|
|
rot_y=3959,
|
|
max_size=64,
|
|
logic_region=Regions.TempleKONGRoom,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Entrance tunnel - near DK door",
|
|
map=Maps.AngryAztec,
|
|
x=1372.0,
|
|
y=120.0,
|
|
z=1125.0,
|
|
rot_y=4084,
|
|
max_size=64,
|
|
logic_region=Regions.AztecTunnelBeforeOasis,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Blueprint Room",
|
|
x=1224,
|
|
y=120,
|
|
z=740,
|
|
max_size=40,
|
|
logic_region=Regions.AztecTunnelBeforeOasis,
|
|
logic=lambda l: l.CanPhase() or (l.hasMoveSwitchsanity(Switches.AztecBlueprintDoor, False) and ((l.strongKong and l.isdonkey) or (l.twirl and l.istiny))),
|
|
group=1,
|
|
banned_types=[LocationTypes.Bananaport], # Hard to detect that it's bad to link to Quicksand Cave, in which case it tricks the seed into assuming any kong can use this port
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Near Oasis Sand",
|
|
x=2151,
|
|
y=120,
|
|
z=983,
|
|
max_size=56,
|
|
logic_region=Regions.AngryAztecOasis,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Behind Tiny Temple",
|
|
x=3345,
|
|
y=153,
|
|
z=507,
|
|
max_size=48,
|
|
logic_region=Regions.AngryAztecOasis,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Tiny Temple - left",
|
|
map=Maps.AngryAztec,
|
|
x=3184.0,
|
|
y=153.0,
|
|
z=343.0,
|
|
rot_y=4009,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecOasis,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Tiny Temple - right",
|
|
map=Maps.AngryAztec,
|
|
x=3489.0,
|
|
y=153.0,
|
|
z=702.0,
|
|
rot_y=3001,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecOasis,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="On Tiny Temple",
|
|
x=3192,
|
|
y=352,
|
|
z=500,
|
|
max_size=48,
|
|
logic_region=Regions.AngryAztecOasis,
|
|
logic=lambda l: ((l.jetpack and l.diddy) or l.CanMoonkick()) and l.climbing,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Near Oasis Shop",
|
|
x=2430,
|
|
y=120,
|
|
z=509,
|
|
rot_y=3492,
|
|
max_size=56,
|
|
logic_region=Regions.AngryAztecOasis,
|
|
group=1,
|
|
),
|
|
# CrownLocation(
|
|
# name="Near Oasis Shop (2)",
|
|
# map=Maps.AngryAztec,
|
|
# x=2421.0,
|
|
# y=120.0,
|
|
# z=489.0,
|
|
# rot_y=3492,
|
|
# max_size=64,
|
|
# logic_region=Regions.AngryAztecOasis,
|
|
# group=1,
|
|
# ),
|
|
CustomLocation(
|
|
name="Behind Llama Cage",
|
|
map=Maps.AngryAztec,
|
|
x=2070.0,
|
|
y=153.0,
|
|
z=1706.0,
|
|
rot_y=3424,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecOasis,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Near Hunky Chunky Barrel",
|
|
x=3216,
|
|
y=120,
|
|
z=1490,
|
|
max_size=56,
|
|
logic_region=Regions.AngryAztecConnectorTunnel,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Next to Chunky Cage (1)",
|
|
x=4276.6,
|
|
y=120,
|
|
z=2266,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecConnectorTunnel,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Next to Chunky Cage (2)",
|
|
x=4283,
|
|
y=120,
|
|
z=2543.6,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecConnectorTunnel,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
name="Behind Chunky Cage",
|
|
map=Maps.AngryAztec,
|
|
x=4395.0,
|
|
y=120.0,
|
|
z=2409.0,
|
|
rot_y=2992,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecConnectorTunnel,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Near Llama Temple (Left)",
|
|
x=2781,
|
|
y=160,
|
|
z=3264,
|
|
max_size=56,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Near Llama Temple (Right)",
|
|
x=3154,
|
|
y=160,
|
|
z=3172,
|
|
max_size=56,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Llama Temple",
|
|
map=Maps.AngryAztec,
|
|
x=3110.0,
|
|
y=160.0,
|
|
z=3193.0,
|
|
rot_y=284,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="On Llama Temple",
|
|
x=2884,
|
|
y=437,
|
|
z=2903,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecMain,
|
|
logic=lambda l: (l.jetpack and l.diddy) or l.CanMoonkick(),
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="On Llama Temple (1)",
|
|
x=2892.8391113281,
|
|
y=437.5,
|
|
z=2952.9016113281,
|
|
rot_y=106,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecMain,
|
|
vanilla_crate=True,
|
|
group=3,
|
|
logic=lambda l: (l.jetpack and l.diddy) or l.CanMoonkick(),
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Near Sealed Quicksand Tunnel Shop",
|
|
x=3000,
|
|
y=120,
|
|
z=4532,
|
|
max_size=56,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="On 5-Door Temple",
|
|
x=2056,
|
|
y=420,
|
|
z=3648,
|
|
max_size=48,
|
|
logic_region=Regions.AngryAztecMain,
|
|
logic=lambda l: (l.jetpack and l.diddy) or l.CanMoonkick(),
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Near Sealed Quicksand Tunnel Exterior Warp",
|
|
x=3422,
|
|
y=120,
|
|
z=4514,
|
|
max_size=56,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Near Vulture Cage",
|
|
x=4013,
|
|
y=226,
|
|
z=4589,
|
|
max_size=28.8,
|
|
logic_region=Regions.AngryAztecMain,
|
|
logic=lambda l: ((l.can_use_vines or l.CanMoonkick()) and l.climbing) or (l.jetpack and l.diddy),
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Under Vulture Cage",
|
|
x=4102,
|
|
y=120,
|
|
z=4548,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Snide",
|
|
map=Maps.AngryAztec,
|
|
x=4028.0,
|
|
y=120.0,
|
|
z=4505.0,
|
|
rot_y=1496,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Behind Gong-tower",
|
|
map=Maps.AngryAztec,
|
|
x=4524.0,
|
|
y=80.0,
|
|
z=2936.0,
|
|
rot_y=3663,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Left of Gong-tower",
|
|
map=Maps.AngryAztec,
|
|
x=4190.0,
|
|
y=80.0,
|
|
z=3011.0,
|
|
rot_y=3902,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
),
|
|
# CrownLocation(map=Maps.AngryAztec, name="Near Gong Tower", x=4212, y=80, z=2959, max_size=64, logic_region=Regions.AngryAztecMain, group=3),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Near Gong Tower",
|
|
x=4679.9067382813,
|
|
y=80,
|
|
z=3202.2341308594,
|
|
rot_y=47,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecMain,
|
|
vanilla_crate=True,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztec,
|
|
name="Sealed Quicksand Tunnel",
|
|
x=2783,
|
|
y=120,
|
|
z=4817,
|
|
max_size=56,
|
|
logic_region=Regions.AztecDonkeyQuicksandCave,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Near Warp 1",
|
|
map=Maps.AngryAztec,
|
|
x=805.376,
|
|
y=120,
|
|
z=785.657,
|
|
rot_y=2048,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.BetweenVinesByPortal,
|
|
group=12,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.AztecW1aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Oasis Warp 2",
|
|
map=Maps.AngryAztec,
|
|
x=2891.304,
|
|
y=154.354,
|
|
z=860.214,
|
|
rot_y=3504,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.AngryAztecOasis,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.AztecW2aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Totem Warp 2",
|
|
map=Maps.AngryAztec,
|
|
x=3501.093,
|
|
y=120,
|
|
z=3071.741,
|
|
rot_y=2014,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.AztecW2bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Totem Warp 5",
|
|
map=Maps.AngryAztec,
|
|
x=3481.304,
|
|
y=120,
|
|
z=4490.359,
|
|
rot_y=2014,
|
|
max_size=int(WARP_MAX_SIZE * 0.92),
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.AztecW5aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Totem Warp 3",
|
|
map=Maps.AngryAztec,
|
|
x=3502.324,
|
|
y=121.082,
|
|
z=3396.902,
|
|
rot_y=1923,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.AztecW3aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Oasis Warp 1",
|
|
map=Maps.AngryAztec,
|
|
x=2365.761,
|
|
y=120,
|
|
z=752.703,
|
|
rot_y=3118,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.AngryAztecOasis,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.AztecW1bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Near Warp 4",
|
|
map=Maps.AngryAztec,
|
|
x=3412.203,
|
|
y=121.381,
|
|
z=3380.916,
|
|
rot_y=1980,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.AztecW4aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Tunnel Warp 3",
|
|
map=Maps.AngryAztec,
|
|
x=2802.317,
|
|
y=120,
|
|
z=2523.051,
|
|
rot_y=1070,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.AngryAztecConnectorTunnel,
|
|
group=5,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.AztecW3bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Funky Warp 4",
|
|
map=Maps.AngryAztec,
|
|
x=2918.319,
|
|
y=120,
|
|
z=4420.91,
|
|
rot_y=1911,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.AngryAztecMain,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.AztecW4bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Tunnel Warp 5",
|
|
map=Maps.AngryAztec,
|
|
x=2778.521,
|
|
y=120,
|
|
z=4752.402,
|
|
rot_y=1081,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.AztecDonkeyQuicksandCave,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.AztecW5bTagged,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecDonkey5DTemple,
|
|
name="DK 5DT: Dead End",
|
|
x=99,
|
|
y=20,
|
|
z=464,
|
|
max_size=64,
|
|
logic_region=Regions.DonkeyTempleDeadEndRight,
|
|
group=7,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecDiddy5DTemple,
|
|
name="Diddy 5DT: Dead End",
|
|
x=1060,
|
|
y=20,
|
|
z=493,
|
|
max_size=64,
|
|
logic_region=Regions.DiddyTemple,
|
|
logic=lambda l: (l.peanut and l.isdiddy) or l.CanPhase(),
|
|
group=7,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecLanky5DTemple,
|
|
name="Lanky 5DT: Dead End",
|
|
x=767,
|
|
y=122,
|
|
z=916,
|
|
max_size=48,
|
|
logic_region=Regions.LankyTemple,
|
|
logic=lambda l: (l.grape and l.islanky) or l.CanPhase(),
|
|
group=7,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecLanky5DTemple,
|
|
name="Lanky 5DT: Near Vanilla Balloon",
|
|
x=180,
|
|
y=47,
|
|
z=658,
|
|
max_size=72,
|
|
logic_region=Regions.LankyTemple,
|
|
group=7,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecTiny5DTemple, name="Tiny 5DT: Dead End", x=329, y=123, z=1420, max_size=48, logic_region=Regions.TinyTemple, logic=lambda l: (l.feather and l.istiny) or l.CanPhase(), group=7
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecChunky5DTemple,
|
|
name="Chunky 5DT: Path Split (1)",
|
|
x=375,
|
|
y=20,
|
|
z=321,
|
|
max_size=72,
|
|
logic_region=Regions.ChunkyTemple,
|
|
group=7,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecChunky5DTemple,
|
|
name="Chunky 5DT: Path Split (2)",
|
|
x=779,
|
|
y=47,
|
|
z=678,
|
|
max_size=72,
|
|
logic_region=Regions.ChunkyTemple,
|
|
group=7,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecLlamaTemple,
|
|
name="Llama Temple: Llama Right",
|
|
x=1737,
|
|
y=472,
|
|
z=2548,
|
|
max_size=72,
|
|
rot_y=608,
|
|
logic_region=Regions.LlamaTemple,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecLlamaTemple,
|
|
name="Llama Temple Entrance",
|
|
x=2634.7512207031,
|
|
y=371.66665649414,
|
|
z=2420.3410644531,
|
|
rot_y=179,
|
|
max_size=64,
|
|
logic_region=Regions.LlamaTemple,
|
|
vanilla_crate=True,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Llama Temple: Next to Llama Right",
|
|
map=Maps.AztecLlamaTemple,
|
|
x=1777.0,
|
|
y=472.0,
|
|
z=2592.0,
|
|
rot_y=608,
|
|
max_size=64,
|
|
logic_region=Regions.LlamaTemple,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Llama Temple: Next to Llama Left",
|
|
map=Maps.AztecLlamaTemple,
|
|
x=1795.0,
|
|
y=472.0,
|
|
z=2158.0,
|
|
rot_y=1649,
|
|
max_size=64,
|
|
logic_region=Regions.LlamaTemple,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecLlamaTemple,
|
|
name="Llama Temple: Llama Left",
|
|
x=1737,
|
|
y=472,
|
|
z=2200,
|
|
rot_y=1649,
|
|
max_size=72,
|
|
logic_region=Regions.LlamaTemple,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecLlamaTemple,
|
|
name="Llama Temple: Matching Room",
|
|
x=1082,
|
|
y=641,
|
|
z=2186,
|
|
max_size=72,
|
|
logic_region=Regions.LlamaTempleMatching,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Llama Temple: Vanilla Close Warp 1",
|
|
map=Maps.AztecLlamaTemple,
|
|
x=2644.013,
|
|
y=371.333,
|
|
z=2185.246,
|
|
rot_y=3186,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.LlamaTemple,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.LlamaW1aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Llama Temple: Vanilla Matching Warp 1",
|
|
map=Maps.AztecLlamaTemple,
|
|
x=1529.909,
|
|
y=641.333,
|
|
z=2407.096,
|
|
rot_y=1024,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.LlamaTemple,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.LlamaW1bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Llama Temple: Vanilla Lava Warp 2",
|
|
map=Maps.AztecLlamaTemple,
|
|
x=1408.806,
|
|
y=420.333,
|
|
z=3754.905,
|
|
rot_y=3254,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.LlamaTempleBack,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.LlamaW2bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Llama Temple: Vanilla Close Warp 2",
|
|
map=Maps.AztecLlamaTemple,
|
|
x=2638.672,
|
|
y=371.333,
|
|
z=2632.833,
|
|
rot_y=2776,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.LlamaTemple,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.LlamaW2aTagged,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecLlamaTemple,
|
|
name="In the Water",
|
|
x=2273,
|
|
y=207,
|
|
z=2385,
|
|
max_size=64,
|
|
logic_region=Regions.LlamaTemple,
|
|
logic=lambda l: Events.AztecLlamaSpit in l.Events and l.HasGun(Kongs.any) and l.swim and l.scope and ((l.istiny and l.isKrushaAdjacent(Kongs.tiny)) or (not l.istiny)),
|
|
group=4,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecLlamaTemple,
|
|
name="Llama Temple: Snoop Switch",
|
|
x=1695,
|
|
y=433,
|
|
z=1704,
|
|
max_size=48,
|
|
logic_region=Regions.LlamaTemple,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AztecLlamaTemple,
|
|
name="Llama Temple: Lava Room",
|
|
x=1227,
|
|
y=420,
|
|
z=3572,
|
|
max_size=56,
|
|
logic_region=Regions.LlamaTempleBack,
|
|
group=4,
|
|
),
|
|
],
|
|
Levels.FranticFactory: [
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Under R and D Grate (1)",
|
|
x=4119,
|
|
y=1313,
|
|
z=1165.81,
|
|
max_size=81.6,
|
|
logic_region=Regions.RandDUpper,
|
|
logic=lambda l: (l.grab and l.donkey) or l.CanAccessRNDRoom(),
|
|
vanilla_crown=True,
|
|
group=3,
|
|
banned_types=[LocationTypes.MelonCrate, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
name="Dark Room",
|
|
map=Maps.FranticFactory,
|
|
x=1850.584,
|
|
y=6.5,
|
|
z=666.077,
|
|
rot_y=3110,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.BeyondHatch,
|
|
logic=lambda l: ((l.punch and l.chunky) or l.CanPhase()),
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Foyer Carpet",
|
|
x=1265,
|
|
y=830,
|
|
z=2504,
|
|
max_size=96,
|
|
logic_region=Regions.FranticFactoryStart,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Middle of Entrance Room",
|
|
map=Maps.FranticFactory,
|
|
x=1264.0,
|
|
y=830.0,
|
|
z=2550.0,
|
|
rot_y=0,
|
|
max_size=64,
|
|
logic_region=Regions.FranticFactoryStart,
|
|
group=1,
|
|
),
|
|
# CrownLocation(map=Maps.FranticFactory, name="Foyer far left", x=1106, y=842, z=2106, max_size=64, logic_region=Regions.FranticFactoryStart, group=1),
|
|
CustomLocation(
|
|
name="Clock-in room left",
|
|
map=Maps.FranticFactory,
|
|
x=1130.0,
|
|
y=842.0,
|
|
z=2130.0,
|
|
rot_y=432,
|
|
max_size=64,
|
|
logic_region=Regions.FranticFactoryStart,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Clock-in room right",
|
|
map=Maps.FranticFactory,
|
|
x=1409.0,
|
|
y=842.0,
|
|
z=2104.0,
|
|
rot_y=3618,
|
|
max_size=64,
|
|
logic_region=Regions.FranticFactoryStart,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Near Hatch",
|
|
x=519,
|
|
y=804,
|
|
z=1958,
|
|
max_size=56,
|
|
logic_region=Regions.FranticFactoryStart,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Hatch Pole Center",
|
|
x=644,
|
|
y=459,
|
|
z=1778,
|
|
rot_y=4073,
|
|
max_size=72,
|
|
logic_region=Regions.AlcoveBeyondHatch,
|
|
group=1,
|
|
),
|
|
# CrownLocation(
|
|
# name="Halfway the hatch near entrance - next to the window",
|
|
# map=Maps.FranticFactory,
|
|
# x=642.0,
|
|
# y=459.0,
|
|
# z=1796.0,
|
|
# rot_y=4073,
|
|
# max_size=64,
|
|
# logic_region=Regions.AlcoveBeyondHatch,
|
|
# group=1,
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Hatch Pole Bottom",
|
|
x=654,
|
|
y=167,
|
|
z=1988,
|
|
max_size=64,
|
|
logic_region=Regions.LowerCore,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Tunnel to production room",
|
|
map=Maps.FranticFactory,
|
|
x=70.0,
|
|
y=6.0,
|
|
z=1350.0,
|
|
rot_y=193,
|
|
max_size=64,
|
|
logic_region=Regions.LowerCore,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Production Room Lower Section",
|
|
x=517,
|
|
y=188,
|
|
z=1331,
|
|
max_size=48,
|
|
logic_region=Regions.MiddleCore,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Under High Conveyors",
|
|
x=783,
|
|
y=677,
|
|
z=970,
|
|
max_size=40,
|
|
logic_region=Regions.UpperCore,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Past Tiny Production Bonus",
|
|
x=400,
|
|
y=858.5,
|
|
z=1615,
|
|
max_size=32,
|
|
logic_region=Regions.UpperCore,
|
|
logic=lambda l: l.twirl and l.tiny,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="On Production outside box",
|
|
x=988,
|
|
y=322,
|
|
z=1175,
|
|
max_size=40,
|
|
logic_region=Regions.UpperCore,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Storage Room Corner",
|
|
x=974,
|
|
y=66.5,
|
|
z=908,
|
|
max_size=32,
|
|
logic_region=Regions.BeyondHatch,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Cranky and Candy Room",
|
|
x=316,
|
|
y=165,
|
|
z=805,
|
|
max_size=64,
|
|
logic_region=Regions.BeyondHatch,
|
|
group=4,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Near Candy",
|
|
x=319.03137207031,
|
|
y=165.5,
|
|
z=596.36285400391,
|
|
rot_y=359,
|
|
max_size=64,
|
|
logic_region=Regions.BeyondHatch,
|
|
vanilla_crate=True,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Dark Room Corner",
|
|
x=1850,
|
|
y=6,
|
|
z=525,
|
|
max_size=72,
|
|
logic_region=Regions.BeyondHatch,
|
|
logic=lambda l: (l.punch and l.chunky) or l.phasewalk,
|
|
group=4,
|
|
),
|
|
CustomLocation(map=Maps.FranticFactory, name="Arcade Room Bench", x=1922, y=1143, z=1515, max_size=40, logic_region=Regions.FactoryArcadeTunnel, group=4),
|
|
CustomLocation(
|
|
name="Next to DK Arcade",
|
|
map=Maps.FranticFactory,
|
|
x=1784.0,
|
|
y=1106.0,
|
|
z=1273.0,
|
|
rot_y=0,
|
|
max_size=64,
|
|
logic_region=Regions.FactoryArcadeTunnel,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Near Snide (1)",
|
|
x=1702,
|
|
y=810,
|
|
z=2240,
|
|
max_size=48,
|
|
logic_region=Regions.Testing,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
name="Near Snide (2)",
|
|
map=Maps.FranticFactory,
|
|
x=1603.0,
|
|
y=810.0,
|
|
z=2210.0,
|
|
rot_y=2163,
|
|
max_size=64,
|
|
logic_region=Regions.Testing,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Right Corridor",
|
|
x=1710,
|
|
y=837,
|
|
z=2328,
|
|
max_size=48,
|
|
logic_region=Regions.FranticFactoryStart,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Number Game",
|
|
x=2666,
|
|
y=1002,
|
|
z=1952,
|
|
max_size=48,
|
|
logic_region=Regions.Testing,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Under Block Tower Stairs",
|
|
x=2014,
|
|
y=1027,
|
|
z=1348,
|
|
rot_y=3026,
|
|
max_size=72,
|
|
logic_region=Regions.Testing,
|
|
group=5,
|
|
),
|
|
# CrownLocation(
|
|
# name="Toy Room Under Stairs",
|
|
# map=Maps.FranticFactory,
|
|
# x=2015.0,
|
|
# y=1026.0,
|
|
# z=1364.0,
|
|
# rot_y=3026,
|
|
# max_size=64,
|
|
# logic_region=Regions.Testing,
|
|
# group=2,
|
|
# ),
|
|
CustomLocation(
|
|
name="On Diddy's Block Tower",
|
|
map=Maps.FranticFactory,
|
|
x=2375.0,
|
|
y=1266.0,
|
|
z=1377.0,
|
|
rot_y=2013,
|
|
max_size=32,
|
|
logic_region=Regions.Testing,
|
|
logic=lambda l: (l.spring or l.CanMoonkick() or l.CanMoontail()),
|
|
group=2,
|
|
banned_types=[LocationTypes.CrownPad],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Block Tower Lower Bonus",
|
|
x=2634,
|
|
y=1026,
|
|
z=1101,
|
|
max_size=80,
|
|
logic_region=Regions.Testing,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Funky Room (1)",
|
|
x=1595,
|
|
y=1113,
|
|
z=760,
|
|
max_size=64,
|
|
logic_region=Regions.Testing,
|
|
group=5,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Funky Room (2)",
|
|
x=1370,
|
|
y=1131,
|
|
z=551,
|
|
max_size=48,
|
|
logic_region=Regions.Testing,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
name="Funky Room (3)",
|
|
map=Maps.FranticFactory,
|
|
x=1656.0,
|
|
y=1113.0,
|
|
z=502.0,
|
|
rot_y=273,
|
|
max_size=64,
|
|
logic_region=Regions.Testing,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Near Funky",
|
|
x=1735.7963867188,
|
|
y=1113.1666259766,
|
|
z=641.83825683594,
|
|
rot_y=0,
|
|
max_size=64,
|
|
logic_region=Regions.Testing,
|
|
vanilla_crate=True,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Piano Room",
|
|
x=3382,
|
|
y=1264,
|
|
z=641,
|
|
max_size=56,
|
|
logic_region=Regions.RandD,
|
|
logic=lambda l: (l.trombone and l.lanky) or l.CanAccessRNDRoom(),
|
|
group=3,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
name="In Lanky's Piano Room",
|
|
map=Maps.FranticFactory,
|
|
x=3470.0,
|
|
y=1264.0,
|
|
z=303.0,
|
|
rot_y=113,
|
|
max_size=64,
|
|
logic_region=Regions.RandD,
|
|
logic=lambda l: ((l.trombone and l.islanky) or l.CanAccessRNDRoom()),
|
|
group=3,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Diddy R and D",
|
|
x=4450,
|
|
y=1336,
|
|
z=735,
|
|
max_size=72,
|
|
logic_region=Regions.RandDUpper,
|
|
logic=lambda l: (l.guitar and l.diddy) or l.CanAccessRNDRoom(),
|
|
group=3,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
name="In Diddy's Pincode enemies room",
|
|
map=Maps.FranticFactory,
|
|
x=4463.0,
|
|
y=1336.0,
|
|
z=551.0,
|
|
rot_y=3528,
|
|
max_size=64,
|
|
logic_region=Regions.RandDUpper,
|
|
logic=lambda l: ((l.guitar and l.isdiddy) or l.CanAccessRNDRoom()),
|
|
group=3,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Chunky R and D",
|
|
x=4574,
|
|
y=1336,
|
|
z=1350,
|
|
max_size=64,
|
|
logic_region=Regions.RandDUpper,
|
|
logic=lambda l: (l.triangle and l.climbing and l.chunky and l.punch) or l.CanAccessRNDRoom(),
|
|
group=3,
|
|
banned_types=[
|
|
LocationTypes.CrownPad,
|
|
LocationTypes.Bananaport,
|
|
], # Entering a crown battle during the Toy Boss fight would break the fight until level re-entry
|
|
),
|
|
CustomLocation(
|
|
name="In front of Chunky's toy boss room",
|
|
map=Maps.FranticFactory,
|
|
x=4345.0,
|
|
y=1416.0,
|
|
z=1354.0,
|
|
rot_y=2654,
|
|
max_size=64,
|
|
logic_region=Regions.RandDUpper,
|
|
logic=lambda l: ((l.punch and l.climbing and l.ischunky) or l.CanAccessRNDRoom()),
|
|
group=3,
|
|
banned_types=[
|
|
LocationTypes.CrownPad,
|
|
LocationTypes.Bananaport,
|
|
], # Entering a crown battle during the Toy Boss fight would break the fight until level re-entry
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Near Car Race",
|
|
x=3553,
|
|
y=1264,
|
|
z=1383,
|
|
max_size=48,
|
|
logic_region=Regions.RandD,
|
|
logic=lambda l: (l.mini and l.istiny) or l.phasewalk,
|
|
),
|
|
CustomLocation(
|
|
name="Tiny race entry area",
|
|
map=Maps.FranticFactory,
|
|
x=3544.0,
|
|
y=1264.0,
|
|
z=1301.0,
|
|
rot_y=95,
|
|
max_size=64,
|
|
logic_region=Regions.FactoryTinyRaceLobby,
|
|
logic=lambda l: ((l.mini and l.istiny) or l.CanPhase()),
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="R and D lever room - by Tiny's barrel",
|
|
map=Maps.FranticFactory,
|
|
x=3693.0,
|
|
y=1263.0,
|
|
z=1412.0,
|
|
rot_y=1604,
|
|
max_size=64,
|
|
logic_region=Regions.RandD,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactory,
|
|
name="Under R and D Grate (2)",
|
|
x=4054,
|
|
y=1313,
|
|
z=776,
|
|
max_size=80,
|
|
logic_region=Regions.RandDUpper,
|
|
logic=lambda l: (l.grab and l.donkey) or l.CanPhase() or l.generalclips,
|
|
group=3,
|
|
banned_types=[LocationTypes.MelonCrate, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Close Warp 2",
|
|
map=Maps.FranticFactory,
|
|
x=1372.674,
|
|
y=845.667,
|
|
z=2501.402,
|
|
rot_y=0,
|
|
max_size=int(WARP_MAX_SIZE * 0.92),
|
|
logic_region=Regions.FranticFactoryStart,
|
|
group=5,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.FactoryW1aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Close Warp 3",
|
|
map=Maps.FranticFactory,
|
|
x=1435.392,
|
|
y=842.667,
|
|
z=2173.301,
|
|
rot_y=3060,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.FranticFactoryStart,
|
|
group=5,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.FactoryW3aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Far Warp 2",
|
|
map=Maps.FranticFactory,
|
|
x=3802.578,
|
|
y=1264,
|
|
z=1143.848,
|
|
rot_y=3902,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.RandD,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.FactoryW2bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Snide Warp 3",
|
|
map=Maps.FranticFactory,
|
|
x=1537.891,
|
|
y=810.667,
|
|
z=2159.589,
|
|
rot_y=68,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.Testing,
|
|
group=5,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.FactoryW3bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Upper Warp 4",
|
|
map=Maps.FranticFactory,
|
|
x=907.894,
|
|
y=422.5,
|
|
z=1535.177,
|
|
rot_y=2628,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.SpinningCore,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.FactoryW4bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Lower Warp 4",
|
|
map=Maps.FranticFactory,
|
|
x=916.314,
|
|
y=0,
|
|
z=1332.135,
|
|
rot_y=1024,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.BeyondHatch,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.FactoryW4aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Funky Warp 5",
|
|
map=Maps.FranticFactory,
|
|
x=1624.949,
|
|
y=1113.167,
|
|
z=649.048,
|
|
rot_y=535,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.Testing,
|
|
group=2,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.FactoryW5bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Near Warp 1",
|
|
map=Maps.FranticFactory,
|
|
x=1153.009,
|
|
y=845.667,
|
|
z=2502.361,
|
|
rot_y=0,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.FranticFactoryStart,
|
|
group=5,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.FactoryW1aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Storage Warp 1",
|
|
map=Maps.FranticFactory,
|
|
x=1576.006,
|
|
y=6.5,
|
|
z=521.252,
|
|
rot_y=4050,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.BeyondHatch,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.FactoryW1bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Arcade Warp 5",
|
|
map=Maps.FranticFactory,
|
|
x=1800.378,
|
|
y=1137.833,
|
|
z=1374.809,
|
|
rot_y=967,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.FactoryArcadeTunnel,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.FactoryW5aTagged,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FactoryCrusher,
|
|
name="Crusher: Central Safehaven",
|
|
x=116,
|
|
y=0.5,
|
|
z=468,
|
|
max_size=72,
|
|
logic_region=Regions.InsideCore,
|
|
logic=lambda l: (l.strongKong and l.isdonkey) or l.CanPhase() or l.generalclips,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FactoryPowerHut,
|
|
name="Power Shed: Corner",
|
|
x=62,
|
|
y=0,
|
|
z=64,
|
|
max_size=48,
|
|
logic_region=Regions.PowerHut,
|
|
group=4,
|
|
),
|
|
],
|
|
Levels.GloomyGalleon: [
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="Under Cranky",
|
|
x=3296.94,
|
|
y=1670,
|
|
z=2450.29,
|
|
max_size=84.8,
|
|
logic_region=Regions.GloomyGalleonStart,
|
|
logic=lambda l: (l.punch and l.chunky) or l.CanPhase() or l.CanSkew(False, False),
|
|
vanilla_crown=True,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Lighthouse: Interior Rear",
|
|
map=Maps.GalleonLighthouse,
|
|
x=457.54,
|
|
y=0.0,
|
|
z=716.299,
|
|
rot_y=18,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.Lighthouse,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Near Cactus",
|
|
map=Maps.GloomyGalleon,
|
|
x=3899.9157714844,
|
|
y=1551.6126708984,
|
|
z=1405.4954833984,
|
|
rot_y=0,
|
|
max_size=64,
|
|
is_galleon_floating_crate=True,
|
|
logic_region=Regions.Shipyard,
|
|
vanilla_crate=True,
|
|
banned_types=[LocationTypes.DirtPatch, LocationTypes.CrownPad, LocationTypes.Bananaport],
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Cannonball - in front",
|
|
map=Maps.GloomyGalleon,
|
|
x=1366.0,
|
|
y=1610.0,
|
|
z=2586.0,
|
|
rot_y=0,
|
|
max_size=64,
|
|
logic_region=Regions.GalleonBeyondPineappleGate,
|
|
logic=lambda l: l.CanGetOnCannonGamePlatform(),
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Cannonball - behind",
|
|
map=Maps.GloomyGalleon,
|
|
x=1261.0,
|
|
y=1610.0,
|
|
z=2588.0,
|
|
rot_y=0,
|
|
max_size=64,
|
|
logic_region=Regions.GalleonBeyondPineappleGate,
|
|
logic=lambda l: l.CanGetOnCannonGamePlatform(),
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Next to cannon in cannonball room",
|
|
map=Maps.GloomyGalleon,
|
|
x=1310.0,
|
|
y=1610.0,
|
|
z=3055.0,
|
|
rot_y=2048,
|
|
max_size=64,
|
|
logic_region=Regions.GalleonBeyondPineappleGate,
|
|
logic=lambda l: l.CanGetOnCannonGamePlatform(),
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Entrance tunnel - under tag barrel",
|
|
map=Maps.GloomyGalleon,
|
|
x=2534.0,
|
|
y=1610.0,
|
|
z=3231.0,
|
|
rot_y=3094,
|
|
max_size=64,
|
|
logic_region=Regions.GloomyGalleonStart,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Near Chest Cannon (1)",
|
|
map=Maps.GloomyGalleon,
|
|
x=3072,
|
|
y=1790,
|
|
z=3501,
|
|
max_size=48,
|
|
logic_region=Regions.GloomyGalleonStart,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="Near Chest Cannon (2)",
|
|
x=3072,
|
|
y=1790,
|
|
z=3360,
|
|
rot_y=2048,
|
|
max_size=72,
|
|
logic_region=Regions.GloomyGalleonStart,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="Near Chest GB Tunnel",
|
|
x=3048,
|
|
y=1670,
|
|
z=3832,
|
|
max_size=64,
|
|
logic_region=Regions.GloomyGalleonStart,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="In Punch GB Chest Room",
|
|
x=3506,
|
|
y=1670,
|
|
z=3802,
|
|
max_size=88,
|
|
logic_region=Regions.GloomyGalleonStart,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Behind Punch GB Chest",
|
|
map=Maps.GloomyGalleon,
|
|
x=3564.0,
|
|
y=1670.0,
|
|
z=3944.0,
|
|
rot_y=2503,
|
|
max_size=64,
|
|
logic_region=Regions.GloomyGalleonStart,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Behind the ship you shoot onto with the cannon",
|
|
map=Maps.GloomyGalleon,
|
|
x=3199.0,
|
|
y=1670.0,
|
|
z=3463.0,
|
|
rot_y=2264,
|
|
max_size=64,
|
|
logic_region=Regions.GloomyGalleonStart,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Galleon2DShip,
|
|
name="Galleon Lanky 2DS Inside Chest",
|
|
x=2423,
|
|
y=2.158,
|
|
z=862,
|
|
rot_y=0,
|
|
max_size=160,
|
|
logic_region=Regions.LankyShip,
|
|
group=8,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="Left of Cranky",
|
|
x=3175,
|
|
y=1670,
|
|
z=2527,
|
|
max_size=56,
|
|
logic_region=Regions.GloomyGalleonStart,
|
|
group=3,
|
|
),
|
|
# CustomLocation(
|
|
# name="On the ship near Cranky",
|
|
# map=Maps.GloomyGalleon,
|
|
# x=3068.0,
|
|
# y=1790.0,
|
|
# z=3386.0,
|
|
# rot_y=2048,
|
|
# max_size=64,
|
|
# logic_region=Regions.GloomyGalleonStart,
|
|
# group=3,
|
|
# ),
|
|
# CrownLocation(
|
|
# map=Maps.GloomyGalleon,
|
|
# name="Front of Cranky",
|
|
# x=3314,
|
|
# y=1790,
|
|
# z=2474,
|
|
# max_size=64,
|
|
# logic_region=Regions.GloomyGalleonStart,
|
|
# group=3,
|
|
# ),
|
|
CustomLocation(
|
|
name="In front of Cranky",
|
|
map=Maps.GloomyGalleon,
|
|
x=3357.0,
|
|
y=1790.0,
|
|
z=2436.0,
|
|
rot_y=3276,
|
|
max_size=64,
|
|
logic_region=Regions.GloomyGalleonStart,
|
|
group=3,
|
|
),
|
|
# CrownLocation(map=Maps.GloomyGalleon, name="On Cranky", x=3290, y=1870, z=2372, max_size=32, logic_region=0, group=0),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="Near Bridge Warp 3",
|
|
x=3116,
|
|
y=1890,
|
|
z=2896,
|
|
max_size=40,
|
|
logic_region=Regions.GalleonPastVines,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="On Lighthouse Platform (Rocketbarrel)",
|
|
x=1396,
|
|
y=1610,
|
|
z=4150,
|
|
max_size=56,
|
|
logic_region=Regions.LighthousePlatform,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="On Lighthouse Platform (Baboon Blast)",
|
|
x=1618,
|
|
y=1610,
|
|
z=4175,
|
|
max_size=56,
|
|
logic_region=Regions.LighthousePlatform,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Lighthouse ladder",
|
|
map=Maps.GloomyGalleon,
|
|
x=1611.0,
|
|
y=1610.0,
|
|
z=3933.0,
|
|
rot_y=3652,
|
|
max_size=64,
|
|
logic_region=Regions.LighthousePlatform,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="Lighthouse: Under Enguarde Box",
|
|
x=1987,
|
|
y=969,
|
|
z=3693,
|
|
max_size=160,
|
|
logic_region=Regions.LighthouseUnderwater,
|
|
group=7,
|
|
logic=lambda l: Events.LighthouseEnguarde in l.Events,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="In Enguarde Alcove",
|
|
x=823.223,
|
|
y=1464.592,
|
|
z=4797.005,
|
|
max_size=160,
|
|
logic_region=Regions.LighthouseEnguardeDoor,
|
|
group=7,
|
|
logic=lambda l: Events.LighthouseEnguarde in l.Events,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="In Front of Mermaid Palace",
|
|
x=964.75,
|
|
y=105,
|
|
z=4371.308,
|
|
max_size=160,
|
|
logic_region=Regions.LighthouseUnderwater,
|
|
group=7,
|
|
logic=lambda l: Events.LighthouseEnguarde in l.Events,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="On Rocketbarrel platform",
|
|
x=1336,
|
|
y=1660,
|
|
z=4071,
|
|
rot_y=910,
|
|
max_size=32,
|
|
logic_region=Regions.LighthousePlatform,
|
|
group=1,
|
|
),
|
|
# CrownLocation(
|
|
# name="Under Diddy Barrel",
|
|
# map=Maps.GloomyGalleon,
|
|
# x=1340.0,
|
|
# y=1660.0,
|
|
# z=4043.0,
|
|
# rot_y=910,
|
|
# max_size=43.52,
|
|
# logic_region=Regions.LighthousePlatform,
|
|
# group=1,
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="Blueprint Alcove",
|
|
x=680,
|
|
y=1564,
|
|
z=3940,
|
|
max_size=88,
|
|
logic_region=Regions.LighthouseSurface,
|
|
group=1,
|
|
logic=lambda l: Events.WaterLowered in l.Events,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="Behind Snide's",
|
|
x=2071,
|
|
y=1610,
|
|
z=4823,
|
|
max_size=48,
|
|
logic_region=Regions.LighthouseSnideAlcove,
|
|
group=1,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="Shipyard: On top of Tiny Submarine",
|
|
x=3918,
|
|
y=442,
|
|
z=1362,
|
|
max_size=160,
|
|
logic_region=Regions.ShipyardUnderwater,
|
|
group=6,
|
|
logic=lambda l: Events.ShipyardEnguarde in l.Events,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="In the Shipwreck with Replenishables",
|
|
x=2319,
|
|
y=639,
|
|
z=2387,
|
|
logic_region=Regions.ShipyardUnderwater,
|
|
group=6,
|
|
logic=lambda l: Events.ShipyardEnguarde in l.Events,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="Behind Musical Cactus",
|
|
x=4470.597,
|
|
y=1298.062,
|
|
z=974.728,
|
|
logic_region=Regions.ShipyardUnderwater,
|
|
group=6,
|
|
logic=lambda l: Events.ShipyardEnguarde in l.Events,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="On Top of Mechfish Grate",
|
|
x=3065.921,
|
|
y=72.238,
|
|
z=529.702,
|
|
logic_region=Regions.ShipyardUnderwater,
|
|
group=6,
|
|
logic=lambda l: Events.ShipyardEnguarde in l.Events,
|
|
banned_types=[LocationTypes.DirtPatch, LocationTypes.CrownPad, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleon,
|
|
name="On Gold Tower",
|
|
x=1660,
|
|
y=2040,
|
|
z=487,
|
|
max_size=40,
|
|
logic_region=Regions.TreasureRoom,
|
|
logic=lambda l: ((l.balloon and l.islanky) and Events.WaterRaised in l.Events or (Events.ShipyardTreasureRoomOpened in l.Events and l.advanced_platforming)) or l.CanMoonkick(),
|
|
group=5,
|
|
banned_types=[LocationTypes.Bananaport], # Hard to detect that it's bad to link to Diddy's tower, in which case it bricks seed gen
|
|
),
|
|
CustomLocation(
|
|
name="Galleon Treasure Room UnderWater",
|
|
map=Maps.GloomyGalleon,
|
|
x=1548,
|
|
y=1458,
|
|
z=708,
|
|
max_size=160,
|
|
logic_region=Regions.TreasureRoom,
|
|
group=5,
|
|
logic=lambda l: Events.ShipyardTreasureRoomOpened in l.Events,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Floating Warp 5",
|
|
map=Maps.GloomyGalleon,
|
|
x=3175.065,
|
|
y=1543.23,
|
|
z=1844.807,
|
|
rot_y=2913,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.Shipyard,
|
|
group=6,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.GalleonW5bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Lighthouse Warp 1",
|
|
map=Maps.GloomyGalleon,
|
|
x=1519.874,
|
|
y=1610.421,
|
|
z=4220.399,
|
|
rot_y=0,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.LighthousePlatform,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.GalleonW1bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Snide Warp 3",
|
|
map=Maps.GloomyGalleon,
|
|
x=1981.99,
|
|
y=1610,
|
|
z=4774.565,
|
|
rot_y=2480,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.LighthouseSnideAlcove,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.GalleonW3bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Lighthouse Warp 5",
|
|
map=Maps.GloomyGalleon,
|
|
x=1395.717,
|
|
y=1609.944,
|
|
z=3969.458,
|
|
rot_y=2731,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.LighthousePlatform,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.GalleonW5aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Start Warp 2",
|
|
map=Maps.GloomyGalleon,
|
|
x=2905.288,
|
|
y=1700,
|
|
z=3367.477,
|
|
rot_y=2094,
|
|
max_size=int(WARP_MAX_SIZE * 0.76),
|
|
logic_region=Regions.GloomyGalleonStart,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.GalleonW2aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Start Warp 3",
|
|
map=Maps.GloomyGalleon,
|
|
x=3067.098,
|
|
y=1890,
|
|
z=2922.948,
|
|
rot_y=0,
|
|
max_size=int(WARP_MAX_SIZE * 1.24),
|
|
logic_region=Regions.GalleonPastVines,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.GalleonW3aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Floating Warp 2",
|
|
map=Maps.GloomyGalleon,
|
|
x=1556.673,
|
|
y=1548.119,
|
|
z=2008.956,
|
|
rot_y=853,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.Shipyard,
|
|
group=6,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.GalleonW2bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Gold Tower Warp 4",
|
|
map=Maps.GloomyGalleon,
|
|
x=2167.65,
|
|
y=1880,
|
|
z=763.183,
|
|
rot_y=2731,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.TreasureRoomDiddyGoldTower,
|
|
group=12,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.GalleonW4aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Start Warp 1",
|
|
map=Maps.GloomyGalleon,
|
|
x=2844.223,
|
|
y=1673.752,
|
|
z=3235.207,
|
|
rot_x=6,
|
|
rot_y=3049,
|
|
rot_z=2,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.GloomyGalleonStart,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.GalleonW1aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Floating Warp 4",
|
|
map=Maps.GloomyGalleon,
|
|
x=2762.929,
|
|
y=1550.856,
|
|
z=1431.044,
|
|
rot_y=0,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.Shipyard,
|
|
group=6,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.GalleonW4bTagged,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GalleonSickBay,
|
|
name="Seasick Ship: Left of Cannon",
|
|
x=718,
|
|
y=20,
|
|
z=129,
|
|
max_size=56,
|
|
logic_region=Regions.SickBay,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Sick Bay: Chunky ship entrance",
|
|
map=Maps.GalleonSickBay,
|
|
x=628.0,
|
|
y=20.0,
|
|
z=229.0,
|
|
rot_y=2048,
|
|
max_size=64,
|
|
logic_region=Regions.SickBay,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GalleonSickBay,
|
|
name="Seasick Ship: Right of Cannon",
|
|
x=544,
|
|
y=20,
|
|
z=129,
|
|
max_size=56,
|
|
logic_region=Regions.SickBay,
|
|
group=2,
|
|
),
|
|
# CrownLocation(
|
|
# map=Maps.GalleonSickBay,
|
|
# name="Seasick Ship: In Corner",
|
|
# x=703,
|
|
# y=20,
|
|
# z=911,
|
|
# max_size=64,
|
|
# logic_region=Regions.SickBay,
|
|
# group=2,
|
|
# ),
|
|
CustomLocation(
|
|
name="Sick Bay: Chunky ship - back left corner",
|
|
map=Maps.GalleonSickBay,
|
|
x=701.0,
|
|
y=20.0,
|
|
z=899.0,
|
|
rot_y=2525,
|
|
max_size=64,
|
|
logic_region=Regions.SickBay,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Sick Bay: Chunky ship - behind the non-alcoholic tower",
|
|
map=Maps.GalleonSickBay,
|
|
x=159.0,
|
|
y=20.0,
|
|
z=920.0,
|
|
rot_y=978,
|
|
max_size=64,
|
|
logic_region=Regions.SickBay,
|
|
logic=lambda l: ((l.punch and l.ischunky) or l.CanPhase()),
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GalleonSickBay,
|
|
name="Seasick Ship: Behind Spinning Barrels",
|
|
x=142,
|
|
y=20,
|
|
z=851,
|
|
max_size=64,
|
|
logic_region=Regions.SickBay,
|
|
logic=lambda l: (l.punch and l.ischunky) or l.CanPhase(),
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GalleonLighthouse,
|
|
name="Lighthouse: Bottom Left",
|
|
x=703,
|
|
y=0,
|
|
z=469,
|
|
max_size=80,
|
|
logic_region=Regions.Lighthouse,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GalleonLighthouse,
|
|
name="Lighthouse: Back Right",
|
|
x=282,
|
|
y=0,
|
|
z=670,
|
|
max_size=80,
|
|
logic_region=Regions.Lighthouse,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Lighthouse: Behind Whomp's Fortress floor 2",
|
|
map=Maps.GalleonLighthouse,
|
|
x=453.0,
|
|
y=200.0,
|
|
z=596.0,
|
|
rot_y=0,
|
|
max_size=64,
|
|
logic_region=Regions.LighthouseAboveLadder,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Lighthouse: On top of Whomp's Fortress",
|
|
map=Maps.GalleonLighthouse,
|
|
x=418.0,
|
|
y=720.0,
|
|
z=497.0,
|
|
rot_y=3572,
|
|
max_size=64,
|
|
logic_region=Regions.LighthouseAboveLadder,
|
|
group=1,
|
|
),
|
|
],
|
|
Levels.FungiForest: [
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Giant Mushroom High Ladder Platform",
|
|
x=1254.33,
|
|
y=1079.33,
|
|
z=1307.16,
|
|
max_size=78.4,
|
|
logic_region=Regions.MushroomUpperExterior,
|
|
vanilla_crown=True,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Front of Beanstalk",
|
|
map=Maps.FungiForest,
|
|
x=2279.848,
|
|
y=228.931,
|
|
z=600.56,
|
|
rot_y=1020,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.WormArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Mill Grass",
|
|
map=Maps.FungiForest,
|
|
x=4674.706,
|
|
y=149.873,
|
|
z=4165.153,
|
|
rot_y=2584,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.MillArea,
|
|
banned_types=[LocationTypes.Bananaport],
|
|
is_fungi_hidden_patch=True,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Well",
|
|
x=2399,
|
|
y=110,
|
|
z=3186,
|
|
max_size=96,
|
|
logic_region=Regions.FungiForestStart,
|
|
group=1,
|
|
banned_types=[LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Behind Clock",
|
|
x=2300,
|
|
y=603,
|
|
z=2322,
|
|
max_size=56,
|
|
logic_region=Regions.FungiForestStart,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="In front of Clock",
|
|
x=2591,
|
|
y=603,
|
|
z=2237,
|
|
max_size=64,
|
|
logic_region=Regions.FungiForestStart,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Blue Tunnel",
|
|
x=3210,
|
|
y=167,
|
|
z=2613,
|
|
max_size=56,
|
|
logic_region=Regions.FungiForestStart,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Snide's HQ",
|
|
x=3154,
|
|
y=268,
|
|
z=3682,
|
|
max_size=56,
|
|
logic_region=Regions.MillArea,
|
|
group=2,
|
|
logic=lambda l: (l.TimeAccess(Regions.MillArea, Time.Day)),
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Behind Diddy Barn",
|
|
x=3139,
|
|
y=272,
|
|
z=4343,
|
|
max_size=64,
|
|
logic_region=Regions.MillArea,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Left of Diddy Barn",
|
|
x=3400,
|
|
y=272,
|
|
z=4652,
|
|
max_size=64,
|
|
logic_region=Regions.MillArea,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Diddy Pad",
|
|
map=Maps.FungiForest,
|
|
x=3396.0,
|
|
y=272.0,
|
|
z=4551.0,
|
|
rot_y=345,
|
|
max_size=64,
|
|
logic_region=Regions.MillArea,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Behind Dark Attic",
|
|
x=3175.0856933594,
|
|
y=272.33334350586,
|
|
z=4425.095703125,
|
|
rot_y=31,
|
|
max_size=64,
|
|
logic_region=Regions.MillArea,
|
|
vanilla_crate=True,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Mill Tag",
|
|
x=4706,
|
|
y=139,
|
|
z=4373,
|
|
max_size=64,
|
|
logic_region=Regions.MillArea,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Well Exit",
|
|
x=5279,
|
|
y=207,
|
|
z=3556,
|
|
max_size=72,
|
|
logic_region=Regions.MillArea,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Winch",
|
|
x=4533,
|
|
y=162,
|
|
z=3372,
|
|
max_size=72,
|
|
logic_region=Regions.MillArea,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Mill Punch Door",
|
|
x=4439,
|
|
y=162,
|
|
z=3853,
|
|
max_size=72,
|
|
logic_region=Regions.MillArea,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Crusher Output",
|
|
map=Maps.FungiForest,
|
|
x=4404.0,
|
|
y=162.0,
|
|
z=3520.0,
|
|
rot_y=1525,
|
|
max_size=64,
|
|
logic_region=Regions.MillArea,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="En route to DK Barn",
|
|
x=4604,
|
|
y=206,
|
|
z=2844,
|
|
max_size=64,
|
|
logic_region=Regions.ThornvineArea,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Right of DK Barn",
|
|
x=4492,
|
|
y=116,
|
|
z=1959,
|
|
max_size=80,
|
|
logic_region=Regions.ThornvineArea,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Far Right of DK Barn",
|
|
x=4147,
|
|
y=115,
|
|
z=1496,
|
|
max_size=64,
|
|
logic_region=Regions.ThornvineArea,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Behind DK Barn",
|
|
x=3486,
|
|
y=115,
|
|
z=1427,
|
|
max_size=56,
|
|
logic_region=Regions.ThornvineArea,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Far Left of DK Barn",
|
|
x=3529,
|
|
y=115,
|
|
z=2035,
|
|
max_size=80,
|
|
logic_region=Regions.ThornvineArea,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near DK Barn",
|
|
x=4151,
|
|
y=115,
|
|
z=1784,
|
|
max_size=64,
|
|
logic_region=Regions.ThornvineArea,
|
|
group=6,
|
|
),
|
|
# CrownLocation(map=Maps.FungiForest, name="Behind Beanstalk Night Gate", x=3621, y=186, z=936, max_size=48, logic_region=0, group=1),
|
|
CustomLocation(
|
|
name="Near Funky with the fenced in Chunky coins",
|
|
map=Maps.FungiForest,
|
|
x=3635.0,
|
|
y=186.0,
|
|
z=936.0,
|
|
rot_y=2947,
|
|
max_size=64,
|
|
logic_region=Regions.WormArea,
|
|
logic=lambda l: (l.TimeAccess(Regions.WormArea, Time.Night) or l.CanPhase()),
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="On the Tomato Field",
|
|
map=Maps.FungiForest,
|
|
x=3158.0,
|
|
y=228.0,
|
|
z=768.0,
|
|
rot_y=989,
|
|
max_size=64,
|
|
logic_region=Regions.WormArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Funky's",
|
|
x=2890,
|
|
y=174,
|
|
z=189,
|
|
max_size=64,
|
|
logic_region=Regions.WormArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Beanstalk Area Entrance",
|
|
x=2721,
|
|
y=200,
|
|
z=982,
|
|
max_size=64,
|
|
logic_region=Regions.WormArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Beanstalk",
|
|
x=1991,
|
|
y=231,
|
|
z=829,
|
|
max_size=72,
|
|
logic_region=Regions.WormArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Beanstalk Mini Monkey",
|
|
x=1902,
|
|
y=227,
|
|
z=369,
|
|
max_size=72,
|
|
logic_region=Regions.WormArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Giant Mushroom",
|
|
x=1642,
|
|
y=234,
|
|
z=867,
|
|
max_size=64,
|
|
logic_region=Regions.GiantMushroomArea,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Yellow Tunnel",
|
|
x=236,
|
|
y=179,
|
|
z=1307,
|
|
max_size=96,
|
|
logic_region=Regions.GiantMushroomArea,
|
|
group=4,
|
|
banned_types=[LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
# CustomLocation( # Clips through the floor
|
|
# map=Maps.FungiForest,
|
|
# name="Near Cranky",
|
|
# x=583,
|
|
# y=182,
|
|
# z=272,
|
|
# max_size=72,
|
|
# logic_region=Regions.GiantMushroomArea,
|
|
# group=4,
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Lower Baboon Blast Ladder",
|
|
x=567,
|
|
y=389,
|
|
z=731,
|
|
max_size=64,
|
|
logic_region=Regions.MushroomLowerExterior,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Near Baboon Blast",
|
|
map=Maps.FungiForest,
|
|
x=752.0,
|
|
y=589.0,
|
|
z=1296.0,
|
|
rot_y=534,
|
|
max_size=64,
|
|
logic_region=Regions.MushroomBlastLevelExterior,
|
|
group=4,
|
|
),
|
|
# CrownLocation(
|
|
# map=Maps.FungiForest,
|
|
# name="Behind Upper Baboon Blast Ladder",
|
|
# x=751,
|
|
# y=589,
|
|
# z=1297,
|
|
# max_size=64,
|
|
# logic_region=Regions.MushroomBlastLevelExterior,
|
|
# group=4,
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Above Upper Baboon Blast Ladder",
|
|
x=671,
|
|
y=779,
|
|
z=1320,
|
|
max_size=56,
|
|
logic_region=Regions.MushroomUpperMidExterior,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Highest Giant Mushroom Platform",
|
|
x=1196,
|
|
y=1250,
|
|
z=1315,
|
|
max_size=64,
|
|
logic_region=Regions.MushroomUpperExterior,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Behind Rabbit",
|
|
x=2408,
|
|
y=142,
|
|
z=3705,
|
|
max_size=80,
|
|
logic_region=Regions.HollowTreeArea,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Rabbit's house",
|
|
map=Maps.FungiForest,
|
|
x=2297.0,
|
|
y=142.0,
|
|
z=3703.0,
|
|
rot_y=2946,
|
|
max_size=64,
|
|
logic_region=Regions.HollowTreeArea,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Under Owl Tree",
|
|
x=1274,
|
|
y=249,
|
|
z=3750,
|
|
max_size=72,
|
|
logic_region=Regions.HollowTreeArea,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
name="Under the Owl Tree",
|
|
map=Maps.FungiForest,
|
|
x=1274.0,
|
|
y=249.0,
|
|
z=3686.0,
|
|
rot_y=2048,
|
|
max_size=64,
|
|
logic_region=Regions.HollowTreeArea,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Owl Tree",
|
|
x=443.95544433594,
|
|
y=189.33332824707,
|
|
z=3946.9885253906,
|
|
rot_y=10,
|
|
max_size=64,
|
|
logic_region=Regions.HollowTreeArea,
|
|
vanilla_crate=True,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Owl Rocketbarrel (1)",
|
|
x=534,
|
|
y=189,
|
|
z=3948,
|
|
rot_y=1080,
|
|
max_size=72,
|
|
logic_region=Regions.HollowTreeArea,
|
|
group=5,
|
|
),
|
|
# CrownLocation(
|
|
# name="near Diddy Barrel",
|
|
# map=Maps.FungiForest,
|
|
# x=549.0,
|
|
# y=189.0,
|
|
# z=3940.0,
|
|
# rot_y=1080,
|
|
# max_size=64,
|
|
# logic_region=Regions.HollowTreeArea,
|
|
# group=5,
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Owl Rocketbarrel (2)",
|
|
x=278,
|
|
y=190,
|
|
z=3707,
|
|
max_size=96,
|
|
logic_region=Regions.HollowTreeArea,
|
|
group=5,
|
|
banned_types=[LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
name="Top of Owl Tree",
|
|
map=Maps.FungiForest,
|
|
x=1268.0,
|
|
y=575.0,
|
|
z=3840.0,
|
|
rot_y=34,
|
|
max_size=64,
|
|
logic_region=Regions.HollowTreeArea,
|
|
logic=lambda l: ((l.jetpack and l.isdiddy) or l.CanMoonkick()),
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="On Mill",
|
|
x=4164,
|
|
y=376,
|
|
z=3526,
|
|
max_size=64,
|
|
logic_region=Regions.MillArea,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Clock Warp 1",
|
|
map=Maps.FungiForest,
|
|
x=2721.163,
|
|
y=275.479,
|
|
z=2346.108,
|
|
rot_x=16,
|
|
rot_y=956,
|
|
rot_z=2,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.FungiForestStart,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.ForestW1aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Mill Warp 1",
|
|
map=Maps.FungiForest,
|
|
x=4135.515,
|
|
y=164.246,
|
|
z=3744.737,
|
|
rot_y=3595,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.MillArea,
|
|
group=5,
|
|
vanilla_port=True,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
tied_warp_event=Events.ForestW1bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Clock Warp 2",
|
|
map=Maps.FungiForest,
|
|
x=2554.467,
|
|
y=281.944,
|
|
z=2113.114,
|
|
rot_x=6,
|
|
rot_y=1843,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.FungiForestStart,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.ForestW2aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Beanstalk Warp 2",
|
|
map=Maps.FungiForest,
|
|
x=3253.749,
|
|
y=182.831,
|
|
z=224.007,
|
|
rot_x=356,
|
|
rot_y=3982,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.WormArea,
|
|
group=1,
|
|
vanilla_port=True,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
tied_warp_event=Events.ForestW2bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Clock Warp 3",
|
|
map=Maps.FungiForest,
|
|
x=2234.942,
|
|
y=273.516,
|
|
z=2227.188,
|
|
rot_x=10,
|
|
rot_y=2742,
|
|
max_size=int(WARP_MAX_SIZE * 1.08),
|
|
logic_region=Regions.FungiForestStart,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.ForestW3aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Clock Warp 4",
|
|
map=Maps.FungiForest,
|
|
x=2483.208,
|
|
y=256.76,
|
|
z=2555.135,
|
|
rot_x=16,
|
|
rot_y=0,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.FungiForestStart,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.ForestW4aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Tree Warp 4",
|
|
map=Maps.FungiForest,
|
|
x=1276.934,
|
|
y=249.333,
|
|
z=3533.974,
|
|
rot_y=2014,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.HollowTreeArea,
|
|
group=5,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.ForestW4bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Lower Warp 5",
|
|
map=Maps.FungiForest,
|
|
x=933.914,
|
|
y=219.5,
|
|
z=1724.376,
|
|
rot_y=1798,
|
|
max_size=int(WARP_MAX_SIZE * 1.24),
|
|
logic_region=Regions.GiantMushroomArea,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.ForestW5bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Upper Warp 5",
|
|
map=Maps.FungiForest,
|
|
x=459.833,
|
|
y=1250,
|
|
z=1200.736,
|
|
rot_y=3334,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.MushroomUpperExterior,
|
|
group=4,
|
|
vanilla_port=True,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
tied_warp_event=Events.ForestW5aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Mushroom Warp 3",
|
|
map=Maps.FungiForest,
|
|
x=1179.775,
|
|
y=179.333,
|
|
z=1242.065,
|
|
rot_y=546,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.GiantMushroomArea,
|
|
group=4,
|
|
vanilla_port=True,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
tied_warp_event=Events.ForestW3bTagged,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestAnthill,
|
|
name="Anthill: Orange Platform",
|
|
x=768,
|
|
y=205,
|
|
z=421,
|
|
max_size=56,
|
|
logic_region=Regions.Anthill,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestWinchRoom,
|
|
name="Winch Room: Opposite Entrance",
|
|
x=310,
|
|
y=0,
|
|
z=342,
|
|
max_size=64,
|
|
logic_region=Regions.WinchRoom,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForest,
|
|
name="Near Thornvine Barn",
|
|
x=4578.4951171875,
|
|
y=115,
|
|
z=1824.7908935547,
|
|
rot_y=52,
|
|
max_size=64,
|
|
logic_region=Regions.ThornvineArea,
|
|
vanilla_crate=True,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestThornvineBarn,
|
|
name="DK Barn: Near Entrance",
|
|
x=537,
|
|
y=4,
|
|
z=143,
|
|
max_size=72,
|
|
logic_region=Regions.ThornvineBarn,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestThornvineBarn,
|
|
name="DK Barn: Near Ladder",
|
|
x=106,
|
|
y=4,
|
|
z=590,
|
|
max_size=64,
|
|
logic_region=Regions.ThornvineBarn,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
name="Thornvine Barn: Next to ladder",
|
|
map=Maps.ForestThornvineBarn,
|
|
x=80.0,
|
|
y=4.0,
|
|
z=627.0,
|
|
rot_y=2048,
|
|
max_size=64,
|
|
logic_region=Regions.ThornvineBarn,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestThornvineBarn,
|
|
name="In Thornvine Barn",
|
|
x=566.02142333984,
|
|
y=4,
|
|
z=524.61657714844,
|
|
rot_y=0,
|
|
max_size=64,
|
|
logic_region=Regions.ThornvineBarn,
|
|
vanilla_crate=True,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestMillFront,
|
|
name="Mill Front: Near Conveyor",
|
|
x=63,
|
|
y=0,
|
|
z=400,
|
|
max_size=48,
|
|
logic_region=Regions.GrinderRoom,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestMillFront,
|
|
name="Mill Front: Near Mini Monkey",
|
|
x=256,
|
|
y=0,
|
|
z=196,
|
|
max_size=80,
|
|
logic_region=Regions.GrinderRoom,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="near DK's levers",
|
|
map=Maps.ForestMillFront,
|
|
x=234.0,
|
|
y=0.0,
|
|
z=229.0,
|
|
rot_y=352,
|
|
max_size=64,
|
|
logic_region=Regions.GrinderRoom,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Mill Back: near Chunky's coins",
|
|
map=Maps.ForestMillBack,
|
|
x=608.0,
|
|
y=0.0,
|
|
z=585.0,
|
|
rot_y=2707,
|
|
max_size=64,
|
|
logic_region=Regions.MillChunkyTinyArea,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestGiantMushroom,
|
|
name="Giant Mushroom: Near Tiny Bonus",
|
|
x=550,
|
|
y=409,
|
|
z=200,
|
|
max_size=72,
|
|
logic_region=Regions.MushroomLowerMid,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestGiantMushroom,
|
|
name="Giant Mushroom: Near Gun Switches",
|
|
x=448,
|
|
y=82,
|
|
z=195,
|
|
max_size=64,
|
|
logic_region=Regions.MushroomLower,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestGiantMushroom,
|
|
name="Giant Mushroom: Near Bottom Cannon",
|
|
x=596,
|
|
y=0,
|
|
z=680,
|
|
max_size=72,
|
|
logic_region=Regions.MushroomLower,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestGiantMushroom,
|
|
name="Giant Mushroom: Near Night Door Vines",
|
|
x=218,
|
|
y=979,
|
|
z=529,
|
|
max_size=64,
|
|
logic_region=Regions.MushroomUpperMid,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Giant Mushroom: Next to a cannon",
|
|
map=Maps.ForestGiantMushroom,
|
|
x=127.0,
|
|
y=1189.0,
|
|
z=532.0,
|
|
rot_y=1137,
|
|
max_size=64,
|
|
logic_region=Regions.MushroomUpperVineFloor,
|
|
logic=lambda l: ((l.istiny and l.twirl) or (l.isdonkey and (not l.isKrushaAdjacent(Kongs.donkey)))),
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
# With reduced fall damage threshold and OHKO, you have to slide off of the night door platform to avoid fall damage
|
|
name="Giant Mushroom: Next to the cannon below the night door",
|
|
map=Maps.ForestGiantMushroom,
|
|
x=763.0,
|
|
y=739.0,
|
|
z=513.0,
|
|
rot_y=3163,
|
|
max_size=64,
|
|
logic_region=Regions.MushroomNightDoor,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestGiantMushroom,
|
|
name="Giant Mushroom: On Top Viney Platform",
|
|
x=543,
|
|
y=1169,
|
|
z=700,
|
|
max_size=80,
|
|
logic_region=Regions.MushroomUpper,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestMillAttic,
|
|
name="Mill Attic: Near Box",
|
|
x=138,
|
|
y=0,
|
|
z=310,
|
|
max_size=64,
|
|
logic_region=Regions.MillAttic,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestLankyZingersRoom,
|
|
name="Mushroom Leap: Opposite Entrance",
|
|
x=414,
|
|
y=0,
|
|
z=282,
|
|
max_size=64,
|
|
logic_region=Regions.MushroomLankyZingersRoom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestLankyMushroomsRoom,
|
|
name="Mushroom Slam: Opposite Entrance",
|
|
x=408,
|
|
y=0,
|
|
z=309,
|
|
max_size=64,
|
|
logic_region=Regions.MushroomLankyMushroomsRoom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestChunkyFaceRoom,
|
|
name="Face Puzzle: Near Puzzle",
|
|
x=229,
|
|
y=0,
|
|
z=441,
|
|
max_size=64,
|
|
logic_region=Regions.MushroomChunkyRoom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestMillBack,
|
|
name="Mill Rear: Near Thatch",
|
|
x=449,
|
|
y=0,
|
|
z=610,
|
|
max_size=80,
|
|
logic_region=Regions.MillChunkyTinyArea,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.ForestSpider,
|
|
name="Spider: Opposite Entrance",
|
|
x=917,
|
|
y=172,
|
|
z=599,
|
|
max_size=72,
|
|
logic_region=Regions.SpiderRoom,
|
|
group=3,
|
|
),
|
|
],
|
|
Levels.CrystalCaves: [
|
|
CustomLocation(
|
|
map=Maps.CavesRotatingCabin,
|
|
name="Rotating Room: Left Portion",
|
|
x=329,
|
|
y=0,
|
|
z=193,
|
|
max_size=56,
|
|
logic_region=Regions.RotatingCabin,
|
|
logic=lambda l: l.Slam and l.isdonkey,
|
|
vanilla_crown=True,
|
|
is_rotating_room=True,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Giant Kosha Room",
|
|
map=Maps.CrystalCaves,
|
|
x=1820.313,
|
|
y=231.833,
|
|
z=3596.593,
|
|
rot_y=2006,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.GiantKosha,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="In Tiny Ice Shield",
|
|
x=311,
|
|
y=48,
|
|
z=1719,
|
|
max_size=32,
|
|
logic_region=Regions.IglooArea,
|
|
logic=lambda l: ((Events.CavesMonkeyportAccess in l.Events or l.CanPhaseswim())),
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="In Chunky Ice Shield",
|
|
x=755,
|
|
y=48,
|
|
z=818,
|
|
max_size=32,
|
|
logic_region=Regions.IglooArea,
|
|
logic=lambda l: Events.CavesLargeBoulderButton in l.Events or l.CanPhaseswim() or l.generalclips,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="On 5DI Pillar",
|
|
x=328,
|
|
y=132.5,
|
|
z=1522,
|
|
max_size=24,
|
|
logic_region=Regions.IglooArea,
|
|
logic=lambda l: (l.jetpack and l.isdiddy) or (l.twirl and l.istiny and (not l.isKrushaAdjacent(Kongs.tiny))),
|
|
group=3,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
),
|
|
CustomLocation(
|
|
name="On top of the Igloo",
|
|
map=Maps.CrystalCaves,
|
|
x=576.0,
|
|
y=142.0,
|
|
z=1285.0,
|
|
rot_y=1092,
|
|
max_size=64,
|
|
logic_region=Regions.IglooArea,
|
|
group=3,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.MelonCrate],
|
|
),
|
|
CustomLocation(
|
|
name="Under tag barrel near igloo",
|
|
map=Maps.CrystalCaves,
|
|
x=221.0,
|
|
y=48.0,
|
|
z=1412.0,
|
|
rot_y=3276,
|
|
max_size=64,
|
|
logic_region=Regions.IglooArea,
|
|
group=3,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="In front of Igloo",
|
|
x=686,
|
|
y=5,
|
|
z=861,
|
|
max_size=64,
|
|
logic_region=Regions.IglooArea,
|
|
group=3,
|
|
logic=lambda l: (l.HasGun(Kongs.any) and ((l.istiny and l.isKrushaAdjacent(Kongs.tiny)) or (not l.istiny))) or l.Slam,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.DirtPatch, LocationTypes.Bananaport],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="In Hidden Bonus Room",
|
|
x=453,
|
|
y=180,
|
|
z=2571,
|
|
max_size=64,
|
|
logic_region=Regions.CavesBonusCave,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Near Primate Punch wall opposite cranky",
|
|
map=Maps.CrystalCaves,
|
|
x=1416.0,
|
|
y=298.0,
|
|
z=2430.0,
|
|
rot_y=2275,
|
|
max_size=64,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="In Giant Boulder Room",
|
|
x=1941,
|
|
y=280,
|
|
z=2338,
|
|
max_size=80,
|
|
logic_region=Regions.BoulderCave,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="In front of Cranky",
|
|
x=1202,
|
|
y=281,
|
|
z=1649,
|
|
max_size=40,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=4,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Ice Castle Tag (1)",
|
|
x=2066,
|
|
y=151,
|
|
z=1145,
|
|
max_size=40,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Ice Castle Tag (2)",
|
|
x=1952,
|
|
y=172,
|
|
z=1181,
|
|
max_size=40,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Ice Castle Tag (3)",
|
|
x=2164,
|
|
y=280,
|
|
z=1304,
|
|
max_size=48,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Ice Castle",
|
|
map=Maps.CrystalCaves,
|
|
x=2125.0,
|
|
y=257.0,
|
|
z=1054.0,
|
|
rot_y=3584,
|
|
max_size=64,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="On Ice Castle",
|
|
x=2176,
|
|
y=343.5,
|
|
z=1002,
|
|
max_size=32,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
logic=lambda l: (l.balloon and l.islanky) or (l.jetpack and l.isdiddy) or l.advanced_platforming,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Small Boulder",
|
|
x=1598,
|
|
y=276,
|
|
z=970,
|
|
max_size=56,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Near Primate Punch wall near snide",
|
|
map=Maps.CrystalCaves,
|
|
x=1473.0,
|
|
y=98.0,
|
|
z=850.0,
|
|
rot_y=375,
|
|
max_size=64,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Snide's HQ",
|
|
x=1220,
|
|
y=64,
|
|
z=587,
|
|
max_size=64,
|
|
logic_region=Regions.CavesSnideArea,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Under Small Boulder",
|
|
x=1412,
|
|
y=90,
|
|
z=1013,
|
|
max_size=64,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=2,
|
|
banned_types=[LocationTypes.DirtPatch, LocationTypes.MelonCrate],
|
|
),
|
|
# CrownLocation(map=Maps.CrystalCaves, name="Near Entrance (OoB)", x=1718, y=-29, z=30, max_size=64, logic_region=0, group=0),
|
|
CustomLocation(
|
|
name="Near Primate Punch wall near entrance",
|
|
map=Maps.CrystalCaves,
|
|
x=2264.0,
|
|
y=13.0,
|
|
z=248.0,
|
|
rot_y=3219,
|
|
max_size=64,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Gorilla Gone Room",
|
|
x=2149,
|
|
y=13,
|
|
z=152,
|
|
max_size=64,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="In Gorilla Gone Room",
|
|
x=2650,
|
|
y=13,
|
|
z=469,
|
|
max_size=64,
|
|
logic_region=Regions.CavesGGRoom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Kasplat Spire",
|
|
x=2700,
|
|
y=152,
|
|
z=772,
|
|
max_size=64,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Funky's",
|
|
x=2543,
|
|
y=172,
|
|
z=1173,
|
|
max_size=40,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Near Funky under Diddy's barrel",
|
|
map=Maps.CrystalCaves,
|
|
x=3013.0,
|
|
y=253.0,
|
|
z=931.0,
|
|
rot_y=3716,
|
|
max_size=64,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Hidden Kasplat Room",
|
|
x=3554,
|
|
y=286,
|
|
z=619,
|
|
max_size=64,
|
|
logic_region=Regions.CavesBlueprintCave,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Near lanky's 1DC - lower",
|
|
map=Maps.CrystalCaves,
|
|
x=2735.0,
|
|
y=162.0,
|
|
z=1795.0,
|
|
rot_y=1103,
|
|
max_size=64,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near 1DC Headphones",
|
|
x=2987,
|
|
y=118,
|
|
z=1615,
|
|
max_size=64,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
),
|
|
# CrownLocation(map=Maps.CrystalCaves, name="Near Ice Tag (Mid-Air)", x=2238, y=394, z=1169, max_size=40, logic_region=0, group=0),
|
|
# CrownLocation(
|
|
# map=Maps.CrystalCaves,
|
|
# name="Near 1DC",
|
|
# x=2412,
|
|
# y=277,
|
|
# z=1960,
|
|
# max_size=64,
|
|
# logic_region=Regions.CabinArea,
|
|
# group=1,
|
|
# ),
|
|
CustomLocation(
|
|
name="Next to Lanky 1DC - upper",
|
|
map=Maps.CrystalCaves,
|
|
x=2404.0,
|
|
y=276.0,
|
|
z=1947.0,
|
|
rot_y=227,
|
|
max_size=64,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Donkey 1DC - left",
|
|
map=Maps.CrystalCaves,
|
|
x=2961.0,
|
|
y=281.0,
|
|
z=2370.0,
|
|
rot_y=2400,
|
|
max_size=64,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Rotating Room (1)",
|
|
x=2903.5,
|
|
y=281.8,
|
|
z=2312,
|
|
rot_y=2400,
|
|
max_size=56,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Rotating Room (2)",
|
|
x=2672,
|
|
y=281,
|
|
z=2500,
|
|
rot_y=2225,
|
|
max_size=56,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
),
|
|
# CrownLocation(
|
|
# name="Next to Donkey 1DC - right",
|
|
# map=Maps.CrystalCaves,
|
|
# x=2666.0,
|
|
# y=282.0,
|
|
# z=2494.0,
|
|
# rot_y=2225,
|
|
# max_size=64,
|
|
# logic_region=Regions.CabinArea,
|
|
# group=1,
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="High Cabin Kasplat Platform",
|
|
x=2984,
|
|
y=379,
|
|
z=1848,
|
|
max_size=64,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Rotating Room Rocketbarrel",
|
|
x=2465,
|
|
y=206.8,
|
|
z=2530,
|
|
max_size=40,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Tiny 5DC",
|
|
x=3551,
|
|
y=260,
|
|
z=1900,
|
|
max_size=48,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Near Tag barrel at 5D Cabin",
|
|
map=Maps.CrystalCaves,
|
|
x=3631.0,
|
|
y=260.0,
|
|
z=1534.0,
|
|
rot_y=3111,
|
|
max_size=64,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCaves,
|
|
name="Near Diddy Upper 5DC",
|
|
x=3684,
|
|
y=343,
|
|
z=1886,
|
|
max_size=40,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Near Diddy top 5D Cabin door",
|
|
map=Maps.CrystalCaves,
|
|
x=3610.0,
|
|
y=343.0,
|
|
z=1761.0,
|
|
rot_y=3072,
|
|
max_size=64,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Close Warp 1",
|
|
map=Maps.CrystalCaves,
|
|
x=2170.177,
|
|
y=64.818,
|
|
z=651.922,
|
|
rot_x=2,
|
|
rot_y=2048,
|
|
rot_z=2,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=2,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CavesW1aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Close Warp 2",
|
|
map=Maps.CrystalCaves,
|
|
x=2259.137,
|
|
y=71.157,
|
|
z=653.479,
|
|
rot_x=4,
|
|
rot_y=2048,
|
|
rot_z=2,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CrystalCavesMain,
|
|
group=2,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CavesW2aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Igloo Warp 1",
|
|
map=Maps.CrystalCaves,
|
|
x=386.949,
|
|
y=48.5,
|
|
z=970.654,
|
|
rot_y=319,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.IglooArea,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CavesW1bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Cabins Warp 2",
|
|
map=Maps.CrystalCaves,
|
|
x=2652.649,
|
|
y=280,
|
|
z=2182.157,
|
|
rot_y=1411,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CavesW2bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Pillar Warp 5",
|
|
map=Maps.CrystalCaves,
|
|
x=2762.267,
|
|
y=366.833,
|
|
z=953.577,
|
|
rot_y=57,
|
|
max_size=int(0.68 * WARP_MAX_SIZE),
|
|
logic_region=Regions.CavesBlueprintPillar,
|
|
group=2,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CavesW5aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Hidden Warp 3",
|
|
map=Maps.CrystalCaves,
|
|
x=539.131,
|
|
y=180.333,
|
|
z=2511.16,
|
|
rot_y=740,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CavesBonusCave,
|
|
group=2,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CavesW3bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Igloo Warp 3",
|
|
map=Maps.CrystalCaves,
|
|
x=176.505,
|
|
y=50.167,
|
|
z=1089.408,
|
|
rot_y=683,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.IglooArea,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CavesW3aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Hidden Warp 4",
|
|
map=Maps.CrystalCaves,
|
|
x=3339.909,
|
|
y=286.667,
|
|
z=569.045,
|
|
rot_y=2697,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CavesBlueprintCave,
|
|
group=2,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CavesW4bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Spire Warp 4",
|
|
map=Maps.CrystalCaves,
|
|
x=1196.707,
|
|
y=133.5,
|
|
z=1923.537,
|
|
rot_y=3948,
|
|
max_size=int(WARP_MAX_SIZE * 0.68),
|
|
logic_region=Regions.CavesBananaportSpire,
|
|
group=2,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CavesW4aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Cabin Warp 5",
|
|
map=Maps.CrystalCaves,
|
|
x=3614.799,
|
|
y=343,
|
|
z=1838.974,
|
|
rot_y=3174,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CabinArea,
|
|
group=1,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CavesW5bTagged,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CavesDiddyIgloo,
|
|
name="Diddy 5DI: Center",
|
|
x=286,
|
|
y=0,
|
|
z=295,
|
|
max_size=64,
|
|
logic_region=Regions.DiddyIgloo,
|
|
group=3,
|
|
banned_types=[LocationTypes.CrownPad],
|
|
), # crown pad removed due to potential crash
|
|
CustomLocation(
|
|
map=Maps.CavesDonkeyIgloo,
|
|
name="DK 5DI: Behind Maze",
|
|
x=469,
|
|
y=0,
|
|
z=177,
|
|
max_size=80,
|
|
logic_region=Regions.DonkeyIgloo,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CavesLankyIgloo,
|
|
name="Lanky 5DI: High Platform",
|
|
x=273,
|
|
y=123.3,
|
|
z=245,
|
|
max_size=40,
|
|
logic_region=Regions.LankyIgloo,
|
|
logic=lambda l: ((l.balloon or l.advanced_platforming) and l.islanky) or (l.advanced_platforming and (l.isdiddy or l.istiny)),
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CavesTinyIgloo,
|
|
name="Tiny 5DI: Opposite Entrance",
|
|
x=385,
|
|
y=0,
|
|
z=200,
|
|
max_size=64,
|
|
logic_region=Regions.TinyIgloo,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CavesLankyCabin,
|
|
name="Lanky 1DC: Carpet",
|
|
x=448,
|
|
y=0,
|
|
z=332,
|
|
max_size=72,
|
|
logic_region=Regions.LankyCabin,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CavesChunkyCabin,
|
|
name="Chunky 5DC: Back Left Corner",
|
|
x=493,
|
|
y=0,
|
|
z=536,
|
|
max_size=56,
|
|
logic_region=Regions.ChunkyCabin,
|
|
group=1,
|
|
banned_types=[LocationTypes.CrownPad],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CavesDiddyUpperCabin,
|
|
name="Diddy Upper 5DC: Right",
|
|
x=106,
|
|
y=0,
|
|
z=353,
|
|
max_size=72,
|
|
logic_region=Regions.DiddyUpperCabin,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CavesDonkeyCabin,
|
|
name="DK 5DC: Opposite Entrance",
|
|
x=165,
|
|
y=0,
|
|
z=463,
|
|
max_size=56,
|
|
logic_region=Regions.DonkeyCabin,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Frozen Castle: Next to Slam Puzzle - left",
|
|
map=Maps.CavesFrozenCastle,
|
|
x=311.0,
|
|
y=0.0,
|
|
z=194.0,
|
|
rot_y=3800,
|
|
max_size=64,
|
|
logic_region=Regions.FrozenCastle,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Frozen Castle: Next to Slam Puzzle - right",
|
|
map=Maps.CavesFrozenCastle,
|
|
x=227.0,
|
|
y=0.0,
|
|
z=404.0,
|
|
rot_y=1786,
|
|
max_size=64,
|
|
logic_region=Regions.FrozenCastle,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CavesTinyCabin,
|
|
name="Tiny Cabin: Interior",
|
|
x=179,
|
|
y=0,
|
|
z=255,
|
|
max_size=56,
|
|
logic_region=Regions.TinyCabin,
|
|
logic=lambda l: l.oranges,
|
|
group=1,
|
|
),
|
|
],
|
|
Levels.CreepyCastle: [
|
|
CustomLocation(
|
|
map=Maps.CastleGreenhouse,
|
|
name="Greenhouse: Center",
|
|
x=503.276,
|
|
y=0,
|
|
z=581.451,
|
|
max_size=52.8,
|
|
logic_region=Regions.Greenhouse,
|
|
logic=lambda l: l.islanky or l.settings.free_trade_items,
|
|
group=5,
|
|
vanilla_crown=True,
|
|
banned_types=[LocationTypes.DirtPatch],
|
|
),
|
|
CustomLocation(
|
|
name="Top of Castle near shop",
|
|
map=Maps.CreepyCastle,
|
|
x=655.9,
|
|
y=1794.167,
|
|
z=1386.9,
|
|
rot_y=3094,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=5,
|
|
),
|
|
# CustomLocation(map=Maps.CastleGreenhouse, name="Greenhouse: Dead End (1)", x=224, y=0, z=494, max_size=32, logic_region=Regions.Greenhouse, group=5, banned_types=[LocationTypes.DirtPatch]),
|
|
# CustomLocation(map=Maps.CastleGreenhouse, name="Greenhouse: Dead End (2)", x=874, y=0, z=522, max_size=32, logic_region=Regions.Greenhouse, group=5, banned_types=[LocationTypes.DirtPatch]),
|
|
CustomLocation(
|
|
map=Maps.CastleGreenhouse,
|
|
name="Greenhouse: GB Box",
|
|
x=170,
|
|
y=0,
|
|
z=227,
|
|
max_size=56,
|
|
logic_region=Regions.Greenhouse,
|
|
group=5,
|
|
banned_types=[LocationTypes.DirtPatch],
|
|
),
|
|
# CustomLocation(map=Maps.CastleGreenhouse, name="Greenhouse: Dead End (3)", x=779, y=0, z=125, max_size=32, logic_region=Regions.Greenhouse, group=5, banned_types=[LocationTypes.DirtPatch]),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Tree",
|
|
x=1201,
|
|
y=471.5,
|
|
z=105,
|
|
max_size=80,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Lanky coin tree (near catacombs door)",
|
|
map=Maps.CreepyCastle,
|
|
x=1691.0,
|
|
y=372.0,
|
|
z=1995.0,
|
|
rot_y=3561,
|
|
max_size=64,
|
|
logic_region=Regions.CastleVeryBottom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Crypt Entrance (1)",
|
|
x=1361,
|
|
y=366,
|
|
z=2108,
|
|
max_size=64,
|
|
logic_region=Regions.CastleVeryBottom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Crypt Entrance (2)",
|
|
x=420,
|
|
y=366,
|
|
z=1934,
|
|
max_size=64,
|
|
logic_region=Regions.CastleVeryBottom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Crypt Entrance (3)",
|
|
x=500,
|
|
y=523,
|
|
z=1660,
|
|
max_size=64,
|
|
logic_region=Regions.CastleGraveyardPlatform,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Between the catacombs door and Tiny Kasplat",
|
|
map=Maps.CreepyCastle,
|
|
x=245.0,
|
|
y=366.0,
|
|
z=1810.0,
|
|
rot_y=3766,
|
|
max_size=64,
|
|
logic_region=Regions.CastleVeryBottom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Near the Catacombs Door",
|
|
map=Maps.CreepyCastle,
|
|
x=1319.0,
|
|
y=523.0,
|
|
z=1885.0,
|
|
rot_y=3151,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Upper Gravestone",
|
|
map=Maps.CreepyCastle,
|
|
x=746.0,
|
|
y=521.0,
|
|
z=1873.0,
|
|
rot_y=3280,
|
|
max_size=64,
|
|
logic_region=Regions.CastleGraveyardPlatform,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Dungeon Tunnel Steps",
|
|
x=1298,
|
|
y=523,
|
|
z=1777,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Dungeon Tunnel",
|
|
x=902,
|
|
y=648,
|
|
z=1620,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Kasplat Pole",
|
|
x=204,
|
|
y=628,
|
|
z=1433,
|
|
max_size=72,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
),
|
|
# CrownLocation(
|
|
# map=Maps.CreepyCastle,
|
|
# name="Near Drawbridge Entrance",
|
|
# x=664,
|
|
# y=548.8,
|
|
# z=532,
|
|
# max_size=80,
|
|
# logic_region=Regions.CreepyCastleMain,
|
|
# group=4,
|
|
# ),
|
|
CustomLocation(
|
|
name="Next to the Drawing Drawbridge",
|
|
map=Maps.CreepyCastle,
|
|
x=662.0,
|
|
y=548.0,
|
|
z=522.0,
|
|
rot_y=2814,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Lower Rocketbarrel",
|
|
x=176,
|
|
y=622,
|
|
z=578,
|
|
max_size=56,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Lower Tag Barrel",
|
|
x=1623,
|
|
y=673,
|
|
z=655,
|
|
max_size=56,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Headphones",
|
|
x=1778,
|
|
y=676,
|
|
z=921,
|
|
max_size=48,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Drawbridge Exit",
|
|
x=763,
|
|
y=673,
|
|
z=1016,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Cranky",
|
|
x=483,
|
|
y=1135,
|
|
z=1379,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Shed",
|
|
x=1688,
|
|
y=1391,
|
|
z=1802,
|
|
max_size=56,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Greenhouse",
|
|
map=Maps.CreepyCastle,
|
|
x=1588.0,
|
|
y=1391.0,
|
|
z=1870.0,
|
|
rot_y=2309,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Wind Tower (1)",
|
|
x=1707,
|
|
y=1731,
|
|
z=1255,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=5,
|
|
),
|
|
# CrownLocation(
|
|
# map=Maps.CreepyCastle,
|
|
# name="Near Wind Tower (2)",
|
|
# x=1707,
|
|
# y=1731,
|
|
# z=1375,
|
|
# max_size=64,
|
|
# logic_region=Regions.CreepyCastleMain,
|
|
# group=5,
|
|
# ),
|
|
CustomLocation(
|
|
name="Top of Castle near fence",
|
|
map=Maps.CreepyCastle,
|
|
x=1696.0,
|
|
y=1731.0,
|
|
z=1384.0,
|
|
rot_y=1479,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="Near Snide's HQ",
|
|
x=713,
|
|
y=1794,
|
|
z=1243,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastle,
|
|
name="On Wind Tower",
|
|
x=1560,
|
|
y=2023,
|
|
z=1322,
|
|
max_size=80,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
logic=lambda l: l.jetpack and l.isdiddy,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Upper Warp 2",
|
|
map=Maps.CreepyCastle,
|
|
x=1899.247,
|
|
y=904.136,
|
|
z=950.597,
|
|
rot_y=3664,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CastleW2bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Upper Warp 5",
|
|
map=Maps.CreepyCastle,
|
|
x=1341.102,
|
|
y=1731.167,
|
|
z=1120.739,
|
|
rot_y=2526,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=5,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CastleW5bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Close Warp 1",
|
|
map=Maps.CreepyCastle,
|
|
x=1532.901,
|
|
y=673.575,
|
|
z=799.607,
|
|
rot_y=1172,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CastleW1aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Close Warp 5",
|
|
map=Maps.CreepyCastle,
|
|
x=938.578,
|
|
y=673.5,
|
|
z=652.779,
|
|
rot_y=2708,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CastleW5aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Rear Warp 1",
|
|
map=Maps.CreepyCastle,
|
|
x=1023.578,
|
|
y=648.279,
|
|
z=1657.753,
|
|
rot_y=46,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CastleW1bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Close Warp 3",
|
|
map=Maps.CreepyCastle,
|
|
x=1214.247,
|
|
y=673.5,
|
|
z=582.991,
|
|
rot_y=2071,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CastleW3aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Close Warp 2",
|
|
map=Maps.CreepyCastle,
|
|
x=1384.938,
|
|
y=673.742,
|
|
z=633.478,
|
|
rot_y=1820,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CastleW2aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Close Warp 4",
|
|
map=Maps.CreepyCastle,
|
|
x=1082.711,
|
|
y=673.5,
|
|
z=583.805,
|
|
rot_y=2094,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CastleW4aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Upper Warp 3",
|
|
map=Maps.CreepyCastle,
|
|
x=389.7,
|
|
y=1135.469,
|
|
z=1394.365,
|
|
rot_y=1138,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CastleW3bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Upper Warp 4",
|
|
map=Maps.CreepyCastle,
|
|
x=1536.106,
|
|
y=1381.167,
|
|
z=1770.412,
|
|
rot_y=1991,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.CreepyCastleMain,
|
|
group=5,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CastleW4bTagged,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleBallroom,
|
|
name="Ballroom: Near Left Candle",
|
|
x=410,
|
|
y=40,
|
|
z=221,
|
|
max_size=88,
|
|
logic_region=Regions.Ballroom,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleBallroom,
|
|
name="Ballroom: Near Right Candle",
|
|
x=847,
|
|
y=40,
|
|
z=454,
|
|
max_size=88,
|
|
logic_region=Regions.Ballroom,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Ballroom - Back Left",
|
|
map=Maps.CastleBallroom,
|
|
x=261.0,
|
|
y=40.0,
|
|
z=241.0,
|
|
rot_y=546,
|
|
max_size=64,
|
|
logic_region=Regions.Ballroom,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Ballroom - Back Right",
|
|
map=Maps.CastleBallroom,
|
|
x=825.0,
|
|
y=40.0,
|
|
z=258.0,
|
|
rot_y=3310,
|
|
max_size=64,
|
|
logic_region=Regions.Ballroom,
|
|
group=1,
|
|
),
|
|
# CrownLocation(map=Maps.CastleDungeon, name="Dungeon: Diddy Room (OoB)", x=403, y=90, z=3307, max_size=72, logic_region=0, group=0),
|
|
CustomLocation(
|
|
map=Maps.CastleDungeon,
|
|
name="Dungeon: Near Diddy Room Entrance",
|
|
x=442,
|
|
y=115,
|
|
z=2595,
|
|
max_size=64,
|
|
logic_region=Regions.Dungeon,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleDungeon,
|
|
name="Dungeon: DK Dungeon Room",
|
|
x=1492,
|
|
y=170,
|
|
z=2000,
|
|
max_size=80,
|
|
logic_region=Regions.Dungeon,
|
|
logic=lambda l: (l.CanSlamSwitch(Levels.CreepyCastle, 3) and l.donkey) or l.CanPhase(),
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Dungeon: Under the chunky balloon without coins",
|
|
map=Maps.CastleDungeon,
|
|
x=316.0,
|
|
y=115.0,
|
|
z=2525.0,
|
|
rot_y=1024,
|
|
max_size=64,
|
|
logic_region=Regions.Dungeon,
|
|
logic=lambda l: ((l.punch and l.ischunky) or l.CanPhase()),
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleShed,
|
|
name="Shed: Near Entrance",
|
|
x=179,
|
|
y=0,
|
|
z=219,
|
|
max_size=64,
|
|
logic_region=Regions.Shed,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleLowerCave,
|
|
name="Crypt Hub: Lower Portion",
|
|
x=559,
|
|
y=90,
|
|
z=1153,
|
|
max_size=64,
|
|
logic_region=Regions.LowerCave,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleLowerCave,
|
|
name="Crypt Hub: Behind Lanky Crypt",
|
|
x=1848,
|
|
y=320,
|
|
z=1186,
|
|
max_size=64,
|
|
logic_region=Regions.LowerCave,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleLowerCave,
|
|
name="Crypt Hub: Near Funky's",
|
|
x=1359,
|
|
y=200,
|
|
z=433,
|
|
max_size=64,
|
|
logic_region=Regions.LowerCave,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleLowerCave,
|
|
name="Behind Mausoleum Entrance",
|
|
x=1889.9437255859,
|
|
y=320,
|
|
z=1260.7548828125,
|
|
rot_y=0,
|
|
max_size=64,
|
|
logic_region=Regions.LowerCave,
|
|
vanilla_crate=True,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="3Kong crypt entrance",
|
|
map=Maps.CastleCrypt,
|
|
x=626.0,
|
|
y=240.0,
|
|
z=1674.0,
|
|
rot_y=3072,
|
|
max_size=64,
|
|
logic_region=Regions.Crypt,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleCrypt,
|
|
name="Chunky Crypt: Near Coffin",
|
|
x=1280,
|
|
y=160,
|
|
z=2867,
|
|
max_size=72,
|
|
logic_region=Regions.CryptChunkyRoom,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleCrypt,
|
|
name="Diddy Crypt: Near Coffin",
|
|
x=2069,
|
|
y=0,
|
|
z=593,
|
|
max_size=72,
|
|
logic_region=Regions.CryptDiddyRoom,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Crypt: Vanilla Far Warp 1",
|
|
map=Maps.CastleCrypt,
|
|
x=1740.353,
|
|
y=0,
|
|
z=379.404,
|
|
rot_y=3038,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.Crypt,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CryptW1bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Crypt: Vanilla Close Warp 1",
|
|
map=Maps.CastleCrypt,
|
|
x=734.276,
|
|
y=240,
|
|
z=1564.207,
|
|
rot_y=3095,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.Crypt,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CryptW1aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Crypt: Vanilla Close Warp 2",
|
|
map=Maps.CastleCrypt,
|
|
x=732.318,
|
|
y=240,
|
|
z=1661.099,
|
|
rot_y=3107,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.Crypt,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CryptW2aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Crypt: Vanilla Close Warp 3",
|
|
map=Maps.CastleCrypt,
|
|
x=731.274,
|
|
y=240,
|
|
z=1768.498,
|
|
rot_y=3083,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.Crypt,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CryptW3aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Crypt: Vanilla Far Warp 3",
|
|
map=Maps.CastleCrypt,
|
|
x=1076.167,
|
|
y=160,
|
|
z=2478.131,
|
|
rot_y=2094,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.Crypt,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CryptW3bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Crypt: Vanilla Far Warp 2",
|
|
map=Maps.CastleCrypt,
|
|
x=1511.406,
|
|
y=80,
|
|
z=2048.463,
|
|
rot_y=2048,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.Crypt,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.CryptW2bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="2kong crypt entrance",
|
|
map=Maps.CastleMausoleum,
|
|
x=731.0,
|
|
y=240.0,
|
|
z=1068.0,
|
|
rot_y=3072,
|
|
max_size=64,
|
|
logic_region=Regions.Mausoleum,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleMausoleum,
|
|
name="Lanky Crypt: Lanky Tunnel",
|
|
x=1186,
|
|
y=160,
|
|
z=130,
|
|
max_size=64,
|
|
logic_region=Regions.Mausoleum,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleUpperCave,
|
|
name="Tunnel: Near Pit",
|
|
x=704,
|
|
y=200,
|
|
z=852,
|
|
max_size=64,
|
|
logic_region=Regions.UpperCave,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleUpperCave,
|
|
name="Tunnel: Near Candy's",
|
|
x=1104,
|
|
y=300,
|
|
z=2241,
|
|
max_size=64,
|
|
logic_region=Regions.UpperCave,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleLibrary,
|
|
name="Library: Enemy Gauntlet Room",
|
|
x=289,
|
|
y=190,
|
|
z=530,
|
|
max_size=80,
|
|
logic_region=Regions.Library,
|
|
group=6,
|
|
banned_types=[LocationTypes.CrownPad],
|
|
), # Crown Disabled - if you do the crown first the enemies don't spawn, locking you in
|
|
CustomLocation(
|
|
map=Maps.CastleLibrary,
|
|
name="Library: Flying Book Room",
|
|
x=2772,
|
|
y=180,
|
|
z=500,
|
|
max_size=64,
|
|
logic_region=Regions.LibraryPastBooks,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleMuseum,
|
|
name="Museum: Near Race",
|
|
x=312,
|
|
y=200,
|
|
z=1784,
|
|
max_size=64,
|
|
logic_region=Regions.MuseumBehindGlass,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Museum - Pillar Front",
|
|
map=Maps.CastleMuseum,
|
|
x=1003.0,
|
|
y=200.0,
|
|
z=1513.0,
|
|
rot_y=2969,
|
|
max_size=64,
|
|
logic_region=Regions.MuseumBehindGlass,
|
|
logic=lambda l: ((l.monkeyport and l.istiny) or l.CanPhase()),
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Museum - Pillar Back Right",
|
|
map=Maps.CastleMuseum,
|
|
x=1238.0,
|
|
y=200.0,
|
|
z=1612.0,
|
|
rot_y=2628,
|
|
max_size=64,
|
|
logic_region=Regions.MuseumBehindGlass,
|
|
logic=lambda l: ((l.monkeyport and l.istiny) or l.CanPhase()),
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleMuseum,
|
|
name="Museum: Behind Pillar",
|
|
x=1265,
|
|
y=200,
|
|
z=1525,
|
|
max_size=64,
|
|
logic_region=Regions.MuseumBehindGlass,
|
|
logic=lambda l: (l.monkeyport and l.istiny) or l.CanPhase(),
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="Museum - Pillar Back Left",
|
|
map=Maps.CastleMuseum,
|
|
x=1236.0,
|
|
y=200.0,
|
|
z=1400.0,
|
|
rot_y=3697,
|
|
max_size=64,
|
|
logic_region=Regions.MuseumBehindGlass,
|
|
logic=lambda l: ((l.monkeyport and l.istiny) or l.CanPhase()),
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleMuseum,
|
|
name="Museum: Main Room",
|
|
x=595,
|
|
y=100,
|
|
z=440,
|
|
max_size=96,
|
|
logic_region=Regions.Museum,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleTrashCan,
|
|
name="Trash Can: Near Cheese",
|
|
x=465,
|
|
y=15,
|
|
z=510,
|
|
max_size=96,
|
|
logic_region=Regions.TrashCan,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CastleTree,
|
|
name="Tree: Starting Room",
|
|
x=972,
|
|
y=400,
|
|
z=884,
|
|
max_size=64,
|
|
logic_region=Regions.CastleTree,
|
|
group=4,
|
|
),
|
|
],
|
|
Levels.DKIsles: [
|
|
CustomLocation(
|
|
map=Maps.IslesSnideRoom,
|
|
name="Snide's Room: Under Rock",
|
|
x=361.02,
|
|
y=0,
|
|
z=280.06,
|
|
max_size=68.8,
|
|
logic_region=Regions.IslesSnideRoom,
|
|
logic=lambda l: l.chunky and l.barrels,
|
|
group=6,
|
|
vanilla_crown=True,
|
|
default_index=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FungiForestLobby,
|
|
name="Fungi Lobby: Gorilla Gone Box",
|
|
x=290.99,
|
|
y=20,
|
|
z=637.07,
|
|
max_size=56,
|
|
logic_region=Regions.FungiForestLobby,
|
|
logic=lambda l: ((l.coconut and l.peanut and l.grape and l.feather and l.pineapple and l.donkey and l.diddy and l.lanky and l.tiny) or l.CanPhase()) and l.chunky and l.gorillaGone,
|
|
group=12,
|
|
vanilla_crown=True,
|
|
),
|
|
CustomLocation(
|
|
name="Front of Fungi Building",
|
|
map=Maps.Isles,
|
|
x=2647.643,
|
|
y=1498.0,
|
|
z=929.797,
|
|
rot_y=748,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.CabinIsle,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
name="On Aztec Building",
|
|
map=Maps.Isles,
|
|
x=3509.673,
|
|
y=1170.0,
|
|
z=1733.509,
|
|
rot_y=1784,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.AztecLobbyRoof,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Under Caves Lobby Entrance",
|
|
map=Maps.Isles,
|
|
x=2401.601,
|
|
y=800.0,
|
|
z=1571.532,
|
|
rot_y=4028,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.IslesHill,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Castle Lobby: Center",
|
|
map=Maps.CreepyCastleLobby,
|
|
x=579.809,
|
|
y=245.5,
|
|
z=681.709,
|
|
rot_y=2074,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.CreepyCastleLobby,
|
|
logic=lambda l: ((l.chunky and l.balloon and l.islanky and l.barrels) or l.CanMoonkick() or (l.advanced_platforming and l.istiny and l.twirl and (not l.isKrushaAdjacent(Kongs.tiny)))),
|
|
group=14,
|
|
),
|
|
CustomLocation(
|
|
name="Banana Hoard",
|
|
map=Maps.TrainingGrounds,
|
|
x=2497.648,
|
|
y=191.0,
|
|
z=1036.583,
|
|
rot_y=0,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.TrainingGrounds,
|
|
logic=lambda l: (l.can_use_vines or l.CanMoonkick()) and l.climbing,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Training Grounds Rear Tunnel",
|
|
map=Maps.TrainingGrounds,
|
|
x=1223.714,
|
|
y=37.208,
|
|
z=2200.538,
|
|
rot_y=1002,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.TrainingGrounds,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Back of Prison",
|
|
map=Maps.KLumsy,
|
|
x=1499.675,
|
|
y=95.0,
|
|
z=1233.831,
|
|
rot_y=2736,
|
|
max_size=64,
|
|
vanilla_patch=True,
|
|
logic_region=Regions.Prison,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
name="Behind Fungi Building",
|
|
map=Maps.Isles,
|
|
x=2436.0,
|
|
y=1498.0,
|
|
z=817.0,
|
|
rot_y=637,
|
|
max_size=64,
|
|
logic_region=Regions.CabinIsle,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Fungi Platform",
|
|
x=2683,
|
|
y=1498,
|
|
z=818,
|
|
max_size=64,
|
|
logic_region=Regions.CabinIsle,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Waterfall Platform",
|
|
x=3049,
|
|
y=1490,
|
|
z=1234,
|
|
max_size=64,
|
|
logic_region=Regions.IslesAboveWaterfall,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Near Caves Lobby Tree (1)",
|
|
x=2497,
|
|
y=507,
|
|
z=1903,
|
|
max_size=64,
|
|
logic_region=Regions.IslesMain,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Near K. Rool",
|
|
x=3005,
|
|
y=500,
|
|
z=855,
|
|
max_size=80,
|
|
logic_region=Regions.IslesMain,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Near Fungi Cannon",
|
|
x=3440,
|
|
y=495,
|
|
z=1222,
|
|
max_size=64,
|
|
logic_region=Regions.IslesMain,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="In Fungi Boulder",
|
|
map=Maps.Isles,
|
|
x=3516.0,
|
|
y=500.0,
|
|
z=633.0,
|
|
rot_y=1934,
|
|
max_size=48,
|
|
logic_region=Regions.IslesMain,
|
|
logic=lambda l: (l.settings.open_lobbies or Events.GalleonKeyTurnedIn in l.Events or l.CanPhase()),
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Near Caves Lobby Tree (2)",
|
|
x=2427,
|
|
y=600,
|
|
z=1822,
|
|
max_size=64,
|
|
logic_region=Regions.IslesMain,
|
|
group=3,
|
|
),
|
|
# CrownLocation(
|
|
# map=Maps.Isles,
|
|
# name="Behind Aztec Building",
|
|
# x=3650,
|
|
# y=1020,
|
|
# z=1776,
|
|
# max_size=64,
|
|
# logic_region=Regions.IslesMainUpper,
|
|
# group=3
|
|
# ),
|
|
CustomLocation(
|
|
name="Isles Boulders",
|
|
map=Maps.Isles,
|
|
x=2813.0,
|
|
y=1058.0,
|
|
z=2054.0,
|
|
rot_y=3959,
|
|
max_size=64,
|
|
logic_region=Regions.IslesMainUpper,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Front of Aztec Building",
|
|
x=3225,
|
|
y=1000,
|
|
z=1613,
|
|
max_size=56,
|
|
logic_region=Regions.IslesMainUpper,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
name="Behind Aztec Building",
|
|
map=Maps.Isles,
|
|
x=3643.0,
|
|
y=1020.0,
|
|
z=1790.0,
|
|
rot_y=2742,
|
|
max_size=64,
|
|
logic_region=Regions.IslesMainUpper,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Outside K. Lumsy",
|
|
x=3107,
|
|
y=520,
|
|
z=3500,
|
|
max_size=48,
|
|
logic_region=Regions.KremIsle,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Near Monkeyport (1)",
|
|
x=2519,
|
|
y=550,
|
|
z=4152,
|
|
max_size=80,
|
|
logic_region=Regions.KremIsle,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Near Monkeyport (2)",
|
|
x=1852,
|
|
y=600,
|
|
z=3920,
|
|
max_size=80,
|
|
logic_region=Regions.KremIsle,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Under DK Caged GB",
|
|
x=2000,
|
|
y=550,
|
|
z=3325,
|
|
max_size=80,
|
|
logic_region=Regions.KremIsle,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
name="Back of Kroc Isle (Lower)",
|
|
map=Maps.Isles,
|
|
x=2019.0,
|
|
y=590.0,
|
|
z=4146.0,
|
|
rot_y=1615,
|
|
max_size=64,
|
|
logic_region=Regions.KremIsle,
|
|
group=6,
|
|
),
|
|
# CustomLocation( # Same location as Behind Factory Lobby Entrance
|
|
# name="Back of Kroc Isle (Middle)",
|
|
# map=Maps.Isles,
|
|
# x=2350.0,
|
|
# y=1199.0,
|
|
# z=3887.0,
|
|
# rot_y=1956,
|
|
# max_size=64,
|
|
# logic_region=Regions.KremIsleBeyondLift,
|
|
# group=6,
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Behind Factory Lobby Entrance",
|
|
x=2395,
|
|
y=1200,
|
|
z=3899,
|
|
max_size=64,
|
|
logic_region=Regions.KremIsleBeyondLift,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Right of Factory Lobby Entrance",
|
|
x=2159,
|
|
y=1200,
|
|
z=3518,
|
|
max_size=64,
|
|
logic_region=Regions.KremIsleBeyondLift,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Behind Helm Lobby Entrance",
|
|
x=2370,
|
|
y=1720,
|
|
z=3809,
|
|
max_size=40,
|
|
logic_region=Regions.KremIsleTopLevel,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Left Kroc Isle Arm (1)",
|
|
x=2218,
|
|
y=1620,
|
|
z=3488,
|
|
max_size=80,
|
|
logic_region=Regions.KremIsleTopLevel,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
name="Left Kroc Isle Arm (2)",
|
|
map=Maps.Isles,
|
|
x=2313.0,
|
|
y=1620.0,
|
|
z=3214.0,
|
|
rot_y=3891,
|
|
max_size=64,
|
|
logic_region=Regions.KremIsleTopLevel,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Right Kroc Isle Arm",
|
|
x=2700,
|
|
y=1620,
|
|
z=3315,
|
|
max_size=80,
|
|
logic_region=Regions.KremIsleTopLevel,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Fairy Isle",
|
|
x=885,
|
|
y=500,
|
|
z=2307,
|
|
max_size=64,
|
|
logic_region=Regions.OuterIsles,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Behind BFI",
|
|
map=Maps.Isles,
|
|
x=754.0,
|
|
y=500.0,
|
|
z=2386.0,
|
|
rot_y=807,
|
|
max_size=64,
|
|
group=4,
|
|
logic_region=Regions.OuterIsles,
|
|
logic=lambda l: True,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.Isles,
|
|
name="Small Island",
|
|
x=965,
|
|
y=500,
|
|
z=1410,
|
|
max_size=80,
|
|
logic_region=Regions.OuterIsles,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Ring Warp 1",
|
|
map=Maps.Isles,
|
|
x=2802.864,
|
|
y=500,
|
|
z=2400.161,
|
|
rot_y=2048,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.IslesMain,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.IslesW1aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla K. Lumsy Warp 1",
|
|
map=Maps.Isles,
|
|
x=3483.24,
|
|
y=500,
|
|
z=3150.5,
|
|
rot_y=1729,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.KremIsle,
|
|
group=6,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.IslesW1bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Ring Warp 2",
|
|
map=Maps.Isles,
|
|
x=2749.802,
|
|
y=500,
|
|
z=2399.598,
|
|
rot_y=2094,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.IslesMain,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.IslesW2aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Upper Warp 2",
|
|
map=Maps.Isles,
|
|
x=3355.592,
|
|
y=1014.464,
|
|
z=1672.928,
|
|
rot_x=8,
|
|
rot_y=2788,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.IslesMainUpper,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.IslesW2bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Waterfall Warp 3",
|
|
map=Maps.Isles,
|
|
x=3044.718,
|
|
y=500,
|
|
z=978.782,
|
|
rot_y=1968,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.IslesMain,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.IslesW3bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Ring Warp 5",
|
|
map=Maps.Isles,
|
|
x=2817.764,
|
|
y=500,
|
|
z=2347.447,
|
|
rot_y=2105,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.IslesMain,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.IslesW5aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Ring Warp 3",
|
|
map=Maps.Isles,
|
|
x=2733.295,
|
|
y=500,
|
|
z=2348.008,
|
|
rot_y=2025,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.IslesMain,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.IslesW3aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Ring Warp 4",
|
|
map=Maps.Isles,
|
|
x=2780.518,
|
|
y=500,
|
|
z=2310.291,
|
|
rot_y=2048,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.IslesMain,
|
|
group=3,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.IslesW4aTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Upper Warp 4",
|
|
map=Maps.Isles,
|
|
x=2494.455,
|
|
y=1200,
|
|
z=3305.243,
|
|
rot_y=1889,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.KremIsleBeyondLift,
|
|
group=6,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.IslesW4bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Vanilla Island Warp 5",
|
|
map=Maps.Isles,
|
|
x=930.92,
|
|
y=500,
|
|
z=2632.983,
|
|
rot_y=0,
|
|
max_size=WARP_MAX_SIZE,
|
|
logic_region=Regions.OuterIsles,
|
|
group=4,
|
|
vanilla_port=True,
|
|
tied_warp_event=Events.IslesW5bTagged,
|
|
),
|
|
CustomLocation(
|
|
name="Jungle Japes Lobby: Near Tag Barrel",
|
|
map=Maps.JungleJapesLobby,
|
|
x=713.0,
|
|
y=4.0,
|
|
z=266.0,
|
|
rot_y=1945,
|
|
max_size=64,
|
|
logic_region=Regions.JungleJapesLobby,
|
|
group=8,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.JungleJapesLobby,
|
|
name="Japes Lobby: Near Portal",
|
|
x=711,
|
|
y=0,
|
|
z=632,
|
|
max_size=64,
|
|
logic_region=Regions.JungleJapesLobby,
|
|
group=8,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztecLobby,
|
|
name="Aztec Lobby: In Front of Feather Door",
|
|
x=680,
|
|
y=0,
|
|
z=439,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecLobby,
|
|
group=9,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.AngryAztecLobby,
|
|
name="Aztec Lobby: Behind Feather Door (1)",
|
|
x=930,
|
|
y=0,
|
|
z=637,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecLobby,
|
|
logic=lambda l: l.hasMoveSwitchsanity(Switches.IslesAztecLobbyFeather, False) or l.CanPhase(),
|
|
group=9,
|
|
),
|
|
CustomLocation(
|
|
name="Aztec Lobby: Behind Feather Door (2)",
|
|
map=Maps.AngryAztecLobby,
|
|
x=1128.0,
|
|
y=0.0,
|
|
z=586.0,
|
|
rot_y=694,
|
|
max_size=64,
|
|
logic_region=Regions.AngryAztecLobby,
|
|
logic=lambda l: l.hasMoveSwitchsanity(Switches.IslesAztecLobbyFeather, False) or l.CanPhase(),
|
|
group=9,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactoryLobby,
|
|
name="Factory Lobby: Near Lever",
|
|
x=280,
|
|
y=0,
|
|
z=292,
|
|
max_size=64,
|
|
logic_region=Regions.FranticFactoryLobby,
|
|
group=10,
|
|
),
|
|
CustomLocation(
|
|
name="Factory Lobby: High Platform",
|
|
map=Maps.FranticFactoryLobby,
|
|
x=664.0,
|
|
y=133.0,
|
|
z=588.0,
|
|
rot_y=2048,
|
|
max_size=64,
|
|
logic_region=Regions.FranticFactoryLobby,
|
|
logic=lambda l: ((l.grab and l.isdonkey) or l.CanMoonkick() or (l.advanced_platforming and (l.isdiddy or l.istiny))),
|
|
group=10,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.FranticFactoryLobby,
|
|
name="Factory Lobby: Above Portal",
|
|
x=677,
|
|
y=134,
|
|
z=367,
|
|
max_size=64,
|
|
logic_region=Regions.FranticFactoryLobby,
|
|
logic=lambda l: ((l.grab and l.donkey) or (l.advanced_platforming and (l.isdiddy or l.istiny))),
|
|
group=10,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleonLobby,
|
|
name="Galleon Lobby: Right of Portal",
|
|
x=429,
|
|
y=139.6,
|
|
z=942,
|
|
max_size=64,
|
|
logic_region=Regions.GloomyGalleonLobby,
|
|
group=11,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.GloomyGalleonLobby,
|
|
name="Galleon Lobby: Left of Portal",
|
|
x=855,
|
|
y=119.6,
|
|
z=886,
|
|
max_size=56,
|
|
logic_region=Regions.GloomyGalleonLobby,
|
|
group=11,
|
|
),
|
|
CustomLocation(
|
|
name="Galleon Lobby: Behind Mini Monkey Gate",
|
|
map=Maps.GloomyGalleonLobby,
|
|
x=838.0,
|
|
y=99.0,
|
|
z=232.0,
|
|
rot_y=978,
|
|
max_size=64,
|
|
logic_region=Regions.GloomyGalleonLobby,
|
|
logic=lambda l: ((l.mini and l.CanSlamSwitch(Levels.GloomyGalleon, 2) and l.istiny and l.chunky and l.swim) or l.CanPhaseswim()) and (not l.IsLavaWater() or l.Melons >= 3),
|
|
group=11,
|
|
banned_types=[LocationTypes.CrownPad], # Crown pad would need testing if it's possible to get up.
|
|
),
|
|
CustomLocation(
|
|
name="Forest Lobby: On Tag Crate",
|
|
map=Maps.FungiForestLobby,
|
|
x=436.0,
|
|
y=46.0,
|
|
z=252.0,
|
|
rot_y=1024,
|
|
max_size=64,
|
|
logic_region=Regions.FungiForestLobby,
|
|
group=12,
|
|
banned_types=[LocationTypes.MelonCrate],
|
|
),
|
|
CustomLocation(
|
|
name="Caves Lobby: On the Lava",
|
|
map=Maps.CrystalCavesLobby,
|
|
x=387.0,
|
|
y=2.0,
|
|
z=207.0,
|
|
rot_y=785,
|
|
max_size=64,
|
|
logic_region=Regions.CrystalCavesLobby,
|
|
logic=lambda l: ((l.punch and l.strongKong and l.isdonkey) or l.CanPhase() or l.ledgeclip),
|
|
group=13,
|
|
banned_types=[LocationTypes.CrownPad],
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCavesLobby,
|
|
name="Caves Lobby: Right of Portal",
|
|
x=1091,
|
|
y=118,
|
|
z=541,
|
|
max_size=64,
|
|
logic_region=Regions.CrystalCavesLobby,
|
|
group=13,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCavesLobby,
|
|
name="Caves Lobby: High Platform",
|
|
x=794,
|
|
y=280.4,
|
|
z=739,
|
|
max_size=56,
|
|
logic_region=Regions.CrystalCavesLobby,
|
|
logic=lambda l: (l.jetpack and l.isdiddy) or l.CanMoonkick(),
|
|
group=13,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CrystalCavesLobby,
|
|
name="Caves Lobby: Blueprint Room",
|
|
x=1751,
|
|
y=13.5,
|
|
z=532,
|
|
max_size=64,
|
|
logic_region=Regions.CrystalCavesLobby,
|
|
logic=lambda l: (l.punch and l.chunky) or l.CanPhase() or l.ledgeclip,
|
|
group=13,
|
|
),
|
|
CustomLocation(
|
|
name="Castle Lobby: Behind the entrance",
|
|
map=Maps.CreepyCastleLobby,
|
|
x=577.0,
|
|
y=60.0,
|
|
z=67.0,
|
|
rot_y=773,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleLobby,
|
|
group=14,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastleLobby,
|
|
name="Castle Lobby: Right of Entrance",
|
|
x=355,
|
|
y=60,
|
|
z=269,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleLobby,
|
|
group=14,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.CreepyCastleLobby,
|
|
name="Castle Lobby: Left of Portal",
|
|
x=803,
|
|
y=60,
|
|
z=1066,
|
|
max_size=64,
|
|
logic_region=Regions.CreepyCastleLobby,
|
|
group=14,
|
|
),
|
|
CustomLocation(
|
|
name="Helm Lobby: Next to Tag Barrel",
|
|
map=Maps.HideoutHelmLobby,
|
|
x=300.0,
|
|
y=191.0,
|
|
z=269.0,
|
|
rot_y=2048,
|
|
max_size=64,
|
|
logic_region=Regions.HideoutHelmLobby,
|
|
group=7,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelmLobby,
|
|
name="Helm Lobby: Bonus Platform",
|
|
x=690,
|
|
y=196.4,
|
|
z=638,
|
|
max_size=48,
|
|
logic_region=Regions.HideoutHelmLobby,
|
|
logic=lambda l: (l.hasMoveSwitchsanity(Switches.IslesHelmLobbyGone, False) and l.can_use_vines) or (l.advanced_platforming and l.istiny and l.twirl),
|
|
group=7,
|
|
),
|
|
CustomLocation(
|
|
name="Helm Lobby: Blueprint Platform",
|
|
map=Maps.HideoutHelmLobby,
|
|
x=325.0,
|
|
y=191.0,
|
|
z=643.0,
|
|
rot_y=0,
|
|
max_size=64,
|
|
logic_region=Regions.HideoutHelmLobby,
|
|
logic=lambda l: ((l.coconut and l.scope) or (l.twirl and l.istiny and l.advanced_platforming)),
|
|
group=7,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.TrainingGrounds,
|
|
name="Training Grounds: Far Mountain",
|
|
x=1153,
|
|
y=252,
|
|
z=1822,
|
|
max_size=72,
|
|
logic_region=Regions.TrainingGrounds,
|
|
logic=lambda l: l.climbing,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Training Grounds: On the rear hill",
|
|
map=Maps.TrainingGrounds,
|
|
x=1086.0,
|
|
y=252.0,
|
|
z=1833.0,
|
|
rot_y=489,
|
|
max_size=64,
|
|
logic_region=Regions.TrainingGrounds,
|
|
logic=lambda l: l.climbing,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Training Grounds: On the entrance hill",
|
|
map=Maps.TrainingGrounds,
|
|
x=1108.0,
|
|
y=220.0,
|
|
z=701.0,
|
|
rot_y=3026,
|
|
max_size=64,
|
|
logic_region=Regions.TrainingGrounds,
|
|
logic=lambda l: l.climbing and ((l.twirl and l.istiny) or (l.advanced_platforming and l.isdonkey and (not l.isKrushaAdjacent(Kongs.donkey)))),
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.TrainingGrounds,
|
|
name="Training Grounds: Near Mountain",
|
|
x=1187,
|
|
y=225,
|
|
z=734,
|
|
max_size=72,
|
|
logic_region=Regions.TrainingGrounds,
|
|
logic=lambda l: l.climbing and ((l.twirl and l.istiny) or (l.advanced_platforming and l.isdonkey and (not l.isKrushaAdjacent(Kongs.donkey)))),
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.TrainingGrounds,
|
|
name="Training Grounds: Rear Cave",
|
|
x=1196,
|
|
y=36.4,
|
|
z=2119,
|
|
max_size=56,
|
|
logic_region=Regions.TrainingGrounds,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.TrainingGrounds,
|
|
name="Training Grounds: Banana Hoard",
|
|
x=2500,
|
|
y=211,
|
|
z=920,
|
|
max_size=56,
|
|
logic_region=Regions.TrainingGrounds,
|
|
logic=lambda l: (l.can_use_vines or l.CanMoonkick()) and l.climbing,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.TrainingGrounds,
|
|
name="Training Grounds: Under Water",
|
|
x=1874,
|
|
y=-176,
|
|
z=1159,
|
|
max_size=64,
|
|
logic_region=Regions.TrainingGrounds,
|
|
logic=lambda l: l.HasGun(Kongs.any) and ((l.istiny and l.isKrushaAdjacent(Kongs.tiny)) or (not l.istiny)) and l.swim and l.scope,
|
|
group=3,
|
|
banned_types=[LocationTypes.CrownPad, LocationTypes.DirtPatch],
|
|
),
|
|
# CustomLocation(
|
|
# map=Maps.TrainingGrounds,
|
|
# name="Training Grounds: Under Water in Corner",
|
|
# x=1962,
|
|
# y=-187,
|
|
# z=1324,
|
|
# max_size=64,
|
|
# logic_region=Regions.TrainingGrounds,
|
|
# logic=lambda l: l.HasGun(Kongs.any) and ((l.istiny and l.isKrushaAdjacent(Kongs.tiny)) or (not l.istiny)) and l.swim and l.scope,
|
|
# group=2,
|
|
# banned_types=[LocationTypes.CrownPad, LocationTypes.DirtPatch],
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.TrainingGrounds,
|
|
name="Training Grounds: Near Pool",
|
|
x=1625,
|
|
y=36,
|
|
z=1585,
|
|
max_size=72,
|
|
logic_region=Regions.TrainingGrounds,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
name="Back of the treehouse",
|
|
map=Maps.Treehouse,
|
|
x=288.0,
|
|
y=85.0,
|
|
z=488.0,
|
|
rot_y=3072,
|
|
max_size=64,
|
|
logic_region=Regions.Treehouse,
|
|
group=1,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.BananaFairyRoom,
|
|
name="Fairy Island: Right of Queen",
|
|
x=648,
|
|
y=37.5,
|
|
z=133,
|
|
max_size=80,
|
|
logic_region=Regions.BananaFairyRoom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.BananaFairyRoom,
|
|
name="Fairy Island: Behind Queen",
|
|
x=1025,
|
|
y=37.5,
|
|
z=508,
|
|
max_size=80,
|
|
logic_region=Regions.BananaFairyRoom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Banana Fairy Room: Behind Fairy Chair",
|
|
map=Maps.BananaFairyRoom,
|
|
x=835.0,
|
|
y=37.0,
|
|
z=563.0,
|
|
rot_y=1080,
|
|
max_size=64,
|
|
logic_region=Regions.BananaFairyRoom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Behind the Rareware Door",
|
|
map=Maps.BananaFairyRoom,
|
|
x=644.0,
|
|
y=37.0,
|
|
z=1085.0,
|
|
rot_y=2048,
|
|
max_size=64,
|
|
logic_region=Regions.RarewareGBRoom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.BananaFairyRoom,
|
|
name="Fairy Island: Rareware Room",
|
|
x=446,
|
|
y=37.5,
|
|
z=1227,
|
|
max_size=96,
|
|
logic_region=Regions.RarewareGBRoom,
|
|
group=4,
|
|
),
|
|
CustomLocation(
|
|
name="Next to Snides",
|
|
map=Maps.IslesSnideRoom,
|
|
x=576.0,
|
|
y=0.0,
|
|
z=450.0,
|
|
rot_y=341,
|
|
max_size=64,
|
|
logic_region=Regions.IslesSnideRoom,
|
|
group=6,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.KLumsy,
|
|
name="K. Lumsy: Back Right",
|
|
x=1580,
|
|
y=95,
|
|
z=868,
|
|
max_size=80,
|
|
logic_region=Regions.Prison,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.KLumsy,
|
|
name="K. Lumsy: Near Left",
|
|
x=560,
|
|
y=95,
|
|
z=1340,
|
|
max_size=80,
|
|
logic_region=Regions.Prison,
|
|
group=5,
|
|
),
|
|
CustomLocation(
|
|
name="Under K. Lumsy",
|
|
map=Maps.KLumsy,
|
|
x=1020.0,
|
|
y=50.0,
|
|
z=1001.0,
|
|
rot_y=682,
|
|
max_size=64,
|
|
logic_region=Regions.Prison,
|
|
logic=lambda l: (l.IsKLumsyFree() or l.CanPhase()),
|
|
group=5,
|
|
),
|
|
],
|
|
Levels.HideoutHelm: [
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="Metal grate by Mini Monkey barrel",
|
|
x=841,
|
|
y=-136,
|
|
z=2545,
|
|
max_size=80,
|
|
logic_region=Regions.HideoutHelmMiniRoom,
|
|
group=1,
|
|
banned_types=[LocationTypes.MelonCrate], # Temporarily disabled due to a bug causing a key to spawn on the ceiling
|
|
),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="Mini Monkey room right side",
|
|
x=1010,
|
|
y=-132,
|
|
z=2243,
|
|
max_size=80,
|
|
logic_region=Regions.HideoutHelmMiniRoom,
|
|
group=1,
|
|
banned_types=[LocationTypes.MelonCrate], # Temporarily disabled due to a bug causing a key to spawn on the ceiling
|
|
),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="Pineapple switch room in ammo alcove",
|
|
x=1077,
|
|
y=-164,
|
|
z=1261,
|
|
max_size=80,
|
|
logic_region=Regions.HideoutHelmSwitchRoom,
|
|
group=1,
|
|
banned_types=[LocationTypes.MelonCrate], # Temporarily disabled due to a bug causing a key to spawn on the ceiling
|
|
),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="First room left of Tag barrel",
|
|
x=2065,
|
|
y=-461,
|
|
z=480,
|
|
max_size=80,
|
|
logic_region=Regions.HideoutHelmStart,
|
|
group=1,
|
|
banned_types=[LocationTypes.MelonCrate], # Temporarily disabled due to a bug causing a key to spawn on the ceiling
|
|
),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="Top of Blast-o-Matic",
|
|
x=1047.6,
|
|
y=448.1,
|
|
z=3391.4,
|
|
max_size=40,
|
|
logic_region=Regions.HideoutHelmMain,
|
|
vanilla_crown=True,
|
|
logic=lambda l: l.jetpack and l.isdiddy,
|
|
group=2,
|
|
),
|
|
# CrownLocation(
|
|
# map=Maps.HideoutHelm,
|
|
# name="DK's room",
|
|
# x=396,
|
|
# y=-132,
|
|
# z=3841,
|
|
# max_size=80,
|
|
# logic_region=Regions.HideoutHelmMain, # FIX ME if uncommented
|
|
# logic=lambda l: Events.HelmDoorsOpened in l.Events and l.punch and l.bongos and l.isdonkey and (
|
|
# l.settings.helm_setting == HelmSetting.skip_all
|
|
# or (
|
|
# Events.HelmDonkeyDone in l.Events
|
|
# and Events.HelmChunkyDone in l.Events
|
|
# and Events.HelmTinyDone in l.Events
|
|
# and Events.HelmLankyDone in l.Events
|
|
# and Events.HelmDiddyDone in l.Events
|
|
# )
|
|
# ),
|
|
# group=2,
|
|
# banned_types=[LocationTypes.CrownPad],
|
|
# ),
|
|
# CrownLocation(
|
|
# map=Maps.HideoutHelm,
|
|
# name="Chunky's room",
|
|
# x=1518,
|
|
# y=-72,
|
|
# z=2761,
|
|
# max_size=80,
|
|
# logic_region=Regions.HideoutHelmMain, # FIX ME if uncommented
|
|
# logic=lambda l: Events.HelmDoorsOpened in l.Events and l.punch and l.triangle and l.ischunky and (
|
|
# l.settings.helm_setting == HelmSetting.skip_all
|
|
# or (
|
|
# Events.HelmDonkeyDone in l.Events
|
|
# and Events.HelmChunkyDone in l.Events
|
|
# and Events.HelmTinyDone in l.Events
|
|
# and Events.HelmLankyDone in l.Events
|
|
# and Events.HelmDiddyDone in l.Events
|
|
# )
|
|
# ),
|
|
# group=2,
|
|
# banned_types=[LocationTypes.CrownPad],
|
|
# ),
|
|
# CrownLocation(
|
|
# map=Maps.HideoutHelm,
|
|
# name="Tiny's room",
|
|
# x=281,
|
|
# y=-32,
|
|
# z=3281,
|
|
# max_size=80,
|
|
# logic_region=Regions.HideoutHelmMain, # FIX ME if uncommented
|
|
# logic=lambda l: Events.HelmDoorsOpened in l.Events and l.punch and l.saxophone and l.istiny and (
|
|
# l.settings.helm_setting == HelmSetting.skip_all
|
|
# or (
|
|
# Events.HelmDonkeyDone in l.Events
|
|
# and Events.HelmChunkyDone in l.Events
|
|
# and Events.HelmTinyDone in l.Events
|
|
# and Events.HelmLankyDone in l.Events
|
|
# and Events.HelmDiddyDone in l.Events
|
|
# )
|
|
# ),
|
|
# group=2,
|
|
# banned_types=[LocationTypes.CrownPad],
|
|
# ),
|
|
# CrownLocation(
|
|
# map=Maps.HideoutHelm,
|
|
# name="Lanky's room",
|
|
# x=1824,
|
|
# y=48,
|
|
# z=3272,
|
|
# max_size=80,
|
|
# logic_region=Regions.HideoutHelmMain, # FIX ME if uncommented
|
|
# logic=lambda l: Events.HelmDoorsOpened in l.Events and l.punch and l.trombone and l.islanky and (
|
|
# l.settings.helm_setting == HelmSetting.skip_all
|
|
# or (
|
|
# Events.HelmDonkeyDone in l.Events
|
|
# and Events.HelmChunkyDone in l.Events
|
|
# and Events.HelmTinyDone in l.Events
|
|
# and Events.HelmLankyDone in l.Events
|
|
# and Events.HelmDiddyDone in l.Events
|
|
# )
|
|
# ),
|
|
# group=2,
|
|
# banned_types=[LocationTypes.CrownPad],
|
|
# ),
|
|
# CrownLocation(
|
|
# map=Maps.HideoutHelm,
|
|
# name="Diddy's room",
|
|
# x=583,
|
|
# y=208,
|
|
# z=2741,
|
|
# max_size=80,
|
|
# logic_region=Regions.HideoutHelmMain, # FIX ME if uncommented
|
|
# logic=lambda l: Events.HelmDoorsOpened in l.Events and l.punch and l.jetpack and l.guitar and l.isdiddy and (
|
|
# l.settings.helm_setting == HelmSetting.skip_all
|
|
# or (
|
|
# Events.HelmDonkeyDone in l.Events
|
|
# and Events.HelmChunkyDone in l.Events
|
|
# and Events.HelmTinyDone in l.Events
|
|
# and Events.HelmLankyDone in l.Events
|
|
# and Events.HelmDiddyDone in l.Events
|
|
# )
|
|
# ),
|
|
# group=2,
|
|
# banned_types=[LocationTypes.CrownPad],
|
|
# ),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="Blast-o-Matic platform left side",
|
|
x=1048,
|
|
y=-2,
|
|
z=3266,
|
|
max_size=64,
|
|
logic_region=Regions.HideoutHelmMain,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="Blast-o-Matic platform right side",
|
|
x=1051,
|
|
y=-2,
|
|
z=3518,
|
|
max_size=64,
|
|
logic_region=Regions.HideoutHelmMain,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="Under K. Rool door",
|
|
x=1054,
|
|
y=-132,
|
|
z=3721,
|
|
max_size=64,
|
|
logic_region=Regions.HideoutHelmMain,
|
|
group=2,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="Navigation room near terminals",
|
|
x=1262,
|
|
y=10,
|
|
z=4467,
|
|
max_size=120,
|
|
logic_region=Regions.HideoutHelmAfterBoM,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="Navigation room near left window",
|
|
x=1584,
|
|
y=10,
|
|
z=4349,
|
|
max_size=80,
|
|
logic_region=Regions.HideoutHelmAfterBoM,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="Navigation room near right window",
|
|
x=1577,
|
|
y=10,
|
|
z=4593,
|
|
max_size=80,
|
|
logic_region=Regions.HideoutHelmAfterBoM,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="K. Rool room near kong faces",
|
|
x=523,
|
|
y=74,
|
|
z=5341,
|
|
max_size=96,
|
|
logic_region=Regions.HideoutHelmThroneRoom,
|
|
group=3,
|
|
),
|
|
CustomLocation(
|
|
map=Maps.HideoutHelm,
|
|
name="K. Rool room in front of chair",
|
|
x=548,
|
|
y=74,
|
|
z=5036,
|
|
max_size=96,
|
|
logic_region=Regions.HideoutHelmThroneRoom,
|
|
group=3,
|
|
),
|
|
],
|
|
}
|