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
140 lines
9.1 KiB
Python
140 lines
9.1 KiB
Python
# fmt: off
|
|
"""Collectible logic file for Frantic Factory."""
|
|
|
|
from randomizer.Enums.Collectibles import Collectibles
|
|
from randomizer.Enums.Events import Events
|
|
from randomizer.Enums.Kongs import Kongs
|
|
from randomizer.Enums.Regions import Regions
|
|
from randomizer.LogicClasses import Collectible
|
|
|
|
LogicRegions = {
|
|
Regions.FranticFactoryStart: [
|
|
Collectible(Collectibles.banana, Kongs.donkey, lambda l: True, None, 5), # First tunnel
|
|
Collectible(Collectibles.bunch, Kongs.lanky, lambda l: True, None, 1), # W2
|
|
Collectible(Collectibles.banana, Kongs.tiny, lambda l: True, None, 3), # Path to Testing
|
|
Collectible(Collectibles.bunch, Kongs.chunky, lambda l: True, None, 1), # W1
|
|
Collectible(Collectibles.banana, Kongs.chunky, lambda l: Events.HatchOpened in l.Events, None, 10), # On pole down the hatch
|
|
Collectible(Collectibles.balloon, Kongs.chunky, lambda l: l.pineapple, None, 1), # Around hatch
|
|
|
|
Collectible(Collectibles.coin, Kongs.chunky, lambda l: True, None, 5), # Around hatch
|
|
],
|
|
Regions.Testing: [
|
|
Collectible(Collectibles.banana, Kongs.donkey, lambda l: True, None, 5), # Path to Numbers game
|
|
Collectible(Collectibles.balloon, Kongs.donkey, lambda l: l.coconut, None, 1), # Numbers game
|
|
Collectible(Collectibles.banana, Kongs.diddy, lambda l: True, None, 3), # Path to Funky
|
|
Collectible(Collectibles.bunch, Kongs.diddy, lambda l: True, None, 1), # W5
|
|
Collectible(Collectibles.bunch, Kongs.diddy, lambda l: l.spring or l.CanMoontail(), None, 5), # Block Tower
|
|
Collectible(Collectibles.banana, Kongs.tiny, lambda l: True, None, 7), # Path to testing room
|
|
Collectible(Collectibles.bunch, Kongs.tiny, lambda l: True, None, 1), # Block tower side of Mini Monkey tunnel
|
|
Collectible(Collectibles.bunch, Kongs.tiny, lambda l: l.mini or l.CanPhase(), None, 1), # Spinning wheel
|
|
Collectible(Collectibles.balloon, Kongs.tiny, lambda l: l.feather, None, 1), # By Snide's HQ
|
|
Collectible(Collectibles.balloon, Kongs.tiny, lambda l: l.feather, None, 1), # By Funky's
|
|
Collectible(Collectibles.bunch, Kongs.chunky, lambda l: True, None, 1), # W3
|
|
Collectible(Collectibles.balloon, Kongs.chunky, lambda l: l.pineapple, None, 1), # Above Snide's room
|
|
|
|
Collectible(Collectibles.coin, Kongs.donkey, lambda l: True, None, 3), # Steps in block tower room
|
|
Collectible(Collectibles.coin, Kongs.donkey, lambda l: True, None, 3), # Number game
|
|
Collectible(Collectibles.coin, Kongs.diddy, lambda l: True, None, 5), # Top of pole to Snide's
|
|
Collectible(Collectibles.coin, Kongs.diddy, lambda l: True, None, 5), # Bottom of pole to R&D
|
|
Collectible(Collectibles.coin, Kongs.lanky, lambda l: True, None, 4), # Behind boxes under spinning wheel
|
|
Collectible(Collectibles.coin, Kongs.tiny, lambda l: True, None, 5), # Bottom of pole to Testing floor
|
|
Collectible(Collectibles.coin, Kongs.chunky, lambda l: True, None, 3), # W3, Snide's side
|
|
Collectible(Collectibles.coin, Kongs.chunky, lambda l: True, None, 4), # Block Tower room, in alcoves
|
|
],
|
|
Regions.RandDUpper: [
|
|
Collectible(Collectibles.balloon, Kongs.donkey, lambda l: l.coconut, None, 1),
|
|
Collectible(Collectibles.balloon, Kongs.diddy, lambda l: l.peanut and (l.guitar or l.CanAccessRNDRoom()), None, 3),
|
|
Collectible(Collectibles.banana, Kongs.lanky, lambda l: True, None, 5), # Around R&D
|
|
Collectible(Collectibles.banana, Kongs.chunky, lambda l: (l.punch and l.triangle and l.climbing) or l.CanAccessRNDRoom(), None, 10), # Toy Monster room
|
|
Collectible(Collectibles.coin, Kongs.diddy, lambda l: True, None, 5), # Around vent to Chunky room
|
|
Collectible(Collectibles.coin, Kongs.chunky, lambda l: (l.grab and l.donkey) or l.CanAccessRNDRoom(), None, 4), # In hole near Diddy's room
|
|
Collectible(Collectibles.balloon, Kongs.chunky, lambda l: ((l.punch and l.triangle and l.climbing) or l.CanAccessRNDRoom()) and l.pineapple, None, 1), # Toy Monster room
|
|
],
|
|
Regions.RandD: [
|
|
Collectible(Collectibles.banana, Kongs.lanky, lambda l: True, None, 5), # Around R&D
|
|
Collectible(Collectibles.bunch, Kongs.lanky, lambda l: True, None, 1), # W2
|
|
Collectible(Collectibles.balloon, Kongs.lanky, lambda l: (l.trombone or l.CanAccessRNDRoom()) and l.grape, None, 1), # Piano game
|
|
Collectible(Collectibles.banana, Kongs.tiny, lambda l: True, None, 10), # To car race
|
|
Collectible(Collectibles.coin, Kongs.donkey, lambda l: True, None, 3), # By lever
|
|
Collectible(Collectibles.coin, Kongs.lanky, lambda l: True, None, 5), # Top of pole to Block Tower room
|
|
],
|
|
Regions.FactoryTinyRaceLobby: [
|
|
|
|
],
|
|
Regions.ChunkyRoomPlatform: [
|
|
|
|
],
|
|
Regions.PowerHut: [
|
|
Collectible(Collectibles.bunch, Kongs.donkey, lambda l: True, None, 3),
|
|
|
|
Collectible(Collectibles.coin, Kongs.donkey, lambda l: True, None, 1),
|
|
],
|
|
Regions.FactoryArcadeTunnel: [
|
|
Collectible(Collectibles.banana, Kongs.diddy, lambda l: True, None, 5), # Path to DK Arcade
|
|
Collectible(Collectibles.bunch, Kongs.diddy, lambda l: True, None, 1), # W5
|
|
Collectible(Collectibles.bunch, Kongs.tiny, lambda l: True, None, 1), # In arcade room
|
|
|
|
Collectible(Collectibles.coin, Kongs.chunky, lambda l: l.punch or l.CanPhase(), None, 3), # Behind Stash Snatch barrel
|
|
],
|
|
Regions.AlcoveBeyondHatch: [
|
|
Collectible(Collectibles.bunch, Kongs.tiny, lambda l: True, None, 2), # Halfway down the hatch
|
|
],
|
|
Regions.BeyondHatch: [
|
|
Collectible(Collectibles.banana, Kongs.donkey, lambda l: True, None, 6), # Tunnel to production room
|
|
Collectible(Collectibles.banana, Kongs.donkey, lambda l: True, None, 4), # Tunnel between production room and Chunky room
|
|
Collectible(Collectibles.balloon, Kongs.donkey, lambda l: l.coconut, None, 1), # By shops
|
|
Collectible(Collectibles.banana, Kongs.diddy, lambda l: True, None, 12), # Around bottom of production room
|
|
Collectible(Collectibles.banana, Kongs.lanky, lambda l: True, None, 5), # Path to shops
|
|
Collectible(Collectibles.banana, Kongs.lanky, lambda l: True, None, 1), # Base of pipe to free Chunky switch
|
|
Collectible(Collectibles.bunch, Kongs.chunky, lambda l: True, None, 1), # W1
|
|
Collectible(Collectibles.bunch, Kongs.chunky, lambda l: l.punch, None, 3), # Dark Room
|
|
|
|
Collectible(Collectibles.coin, Kongs.donkey, lambda l: True, None, 3), # Bottom of pole
|
|
Collectible(Collectibles.coin, Kongs.diddy, lambda l: l.spring or l.CanPhase() or l.CanMoontail(), None, 3), # High ledge in Chunky's room
|
|
Collectible(Collectibles.coin, Kongs.lanky, lambda l: True, None, 3), # On boxes in Chunky's room
|
|
Collectible(Collectibles.coin, Kongs.tiny, lambda l: True, None, 5), # Around Tiny BP
|
|
Collectible(Collectibles.coin, Kongs.chunky, lambda l: True, None, 5), # W1
|
|
],
|
|
Regions.FactoryStoragePipe: [
|
|
Collectible(Collectibles.banana, Kongs.lanky, lambda l: True, None, 4), # Pipe to free Chunky switch
|
|
],
|
|
Regions.FactoryBaboonBlast: [
|
|
Collectible(Collectibles.bunch, Kongs.donkey, lambda l: True, None, 4),
|
|
|
|
],
|
|
Regions.InsideCore: [
|
|
Collectible(Collectibles.bunch, Kongs.donkey, lambda l: l.strongKong, None, 3),
|
|
Collectible(Collectibles.balloon, Kongs.lanky, lambda l: l.grape, None, 1),
|
|
|
|
Collectible(Collectibles.coin, Kongs.lanky, lambda l: True, None, 3),
|
|
],
|
|
Regions.LowerCore: [
|
|
|
|
],
|
|
Regions.SpinningCore: [
|
|
Collectible(Collectibles.bunch, Kongs.lanky, lambda l: True, None, 3), # On steps on middle level
|
|
Collectible(Collectibles.bunch, Kongs.chunky, lambda l: True, None, 4), # on rotating arms but reachable without machine on
|
|
|
|
Collectible(Collectibles.coin, Kongs.lanky, lambda l: True, None, 2), # First two coins on elevators by W4
|
|
Collectible(Collectibles.coin, Kongs.tiny, lambda l: True, None, 5), # W4
|
|
Collectible(Collectibles.coin, Kongs.chunky, lambda l: True, None, 4), # On middle level
|
|
],
|
|
Regions.MiddleCore: [
|
|
Collectible(Collectibles.balloon, Kongs.tiny, lambda l: l.feather, None, 1), # On middle level
|
|
],
|
|
Regions.UpperCore: [
|
|
Collectible(Collectibles.bunch, Kongs.diddy, lambda l: True, None, 3), # On cylinders and Simian Spring pad
|
|
Collectible(Collectibles.bunch, Kongs.lanky, lambda l: True, None, 1), # On pipe to production room GB (bottom bunch)
|
|
Collectible(Collectibles.bunch, Kongs.lanky, lambda l: l.handstand or l.CanPhase(), None, 4), # On pipe to production room GB
|
|
Collectible(Collectibles.balloon, Kongs.lanky, lambda l: l.grape, None, 1), # By T&S portal
|
|
Collectible(Collectibles.bunch, Kongs.tiny, lambda l: True, None, 4), # On conveyors to Bonus Barrel
|
|
Collectible(Collectibles.bunch, Kongs.tiny, lambda l: l.twirl, None, 1), # On platform past Bonus Barrel
|
|
|
|
Collectible(Collectibles.coin, Kongs.lanky, lambda l: True, None, 1), # High coin on elevators by W4
|
|
Collectible(Collectibles.coin, Kongs.tiny, lambda l: l.twirl, None, 3), # Past Tiny Bonus Barrel
|
|
],
|
|
Regions.FactoryTinyRace: [
|
|
|
|
]
|
|
}
|