diff --git a/.gitignore b/.gitignore index 6256d6ff5..41dbdef3d 100644 --- a/.gitignore +++ b/.gitignore @@ -245,4 +245,8 @@ base-hack/modelling/*.obj *.i4 *.ia4 *.i8 -*.ia8 \ No newline at end of file +*.ia8 +seed.textproto +tools/dump_lanky.py +tools/pack_lanky.py +base-hack/src/minigames/rom_cache.txt diff --git a/dumper.py b/dumper.py index 65a2cd0b6..7f4fe032c 100644 --- a/dumper.py +++ b/dumper.py @@ -682,4 +682,4 @@ def dump_plando_colors(format: str): arg_f = globals()[f"dump_{arg}"] arg_f(sys.argv[1]) print("Dumping complete") -subprocess.call(["python", "./update_wiki.py"]) +subprocess.call(["python3" if sys.platform.startswith("linux") else "python", "./update_wiki.py"]) diff --git a/randomizer/CollectibleLogicFiles/FungiForest.py b/randomizer/CollectibleLogicFiles/FungiForest.py index c9c0d4a38..d8dc7cba5 100644 --- a/randomizer/CollectibleLogicFiles/FungiForest.py +++ b/randomizer/CollectibleLogicFiles/FungiForest.py @@ -139,7 +139,6 @@ Regions.MillArea: [ Collectible(Collectibles.banana, Kongs.lanky, lambda _: True, None, 1), # Mill roof Collectible(Collectibles.balloon, Kongs.donkey, lambda l: l.coconut, None, 1), # Behind Barn - Collectible(Collectibles.balloon, Kongs.diddy, lambda l: l.peanut and (l.TimeAccess(Regions.MillArea, Time.Day) or l.monkey_maneuvers), None, 1), # Snide Collectible(Collectibles.banana, Kongs.diddy, lambda _: True, None, 3), # Near Rafter Barn Collectible(Collectibles.bunch, Kongs.diddy, lambda l: l.spring or l.CanMoontail(), None, 1), # Near Rafter Barn Collectible(Collectibles.banana, Kongs.tiny, lambda l: l.swim, None, 17), # Underwater @@ -149,6 +148,9 @@ Collectible(Collectibles.coin, Kongs.lanky, lambda l: l.climbing, None, 3), # On mushroom near rafters attic Collectible(Collectibles.coin, Kongs.chunky, lambda l: l.climbing, None, 3), # On mushroom near Chunky minecart exit ], + Regions.SnideArea: [ + Collectible(Collectibles.balloon, Kongs.diddy, lambda l: l.peanut, None, 1) # Near Snide + ], Regions.MillChunkyTinyArea: [ Collectible(Collectibles.bunch, Kongs.chunky, lambda l: l.punch, None, 1), Collectible(Collectibles.bunch, Kongs.tiny, lambda _: True, None, 2), # Near Spider diff --git a/randomizer/CompileHints.py b/randomizer/CompileHints.py index d02975e3c..7c8e52091 100644 --- a/randomizer/CompileHints.py +++ b/randomizer/CompileHints.py @@ -1939,6 +1939,7 @@ def compileHints(spoiler: Spoiler) -> bool: Regions.MillArea, Regions.ThornvineArea, Regions.MushroomVeryTopExterior, + Regions.SnideArea, ], [Regions.CrystalCavesEntryHandler, Regions.CrystalCavesMain, Regions.IglooArea, Regions.CabinArea], [Regions.CreepyCastleEntryHandler, Regions.CreepyCastleMain, Regions.CastleWaterfall], diff --git a/randomizer/Enums/Regions.jsonc b/randomizer/Enums/Regions.jsonc index 7f240b4b0..316486f75 100644 --- a/randomizer/Enums/Regions.jsonc +++ b/randomizer/Enums/Regions.jsonc @@ -315,6 +315,7 @@ "SnideFourthGroup": 289, "SnideLastGroup": 290, "FactoryArcadePole": 291, - "MushroomVeryTopExterior": 292 + "MushroomVeryTopExterior": 292, + "SnideArea": 293 } } diff --git a/randomizer/Lists/BananaCoinLocations.py b/randomizer/Lists/BananaCoinLocations.py index 8739d0830..bbb483c9f 100644 --- a/randomizer/Lists/BananaCoinLocations.py +++ b/randomizer/Lists/BananaCoinLocations.py @@ -5400,14 +5400,13 @@ def __init__( map_id=Maps.FungiForest, name="In the Snide's area", konglist=[Kongs.donkey, Kongs.diddy, Kongs.lanky, Kongs.tiny, Kongs.chunky], - region=Regions.MillArea, + region=Regions.SnideArea, locations=[ [1.0, 3337, 270, 3714], [1.0, 3312, 243, 3603], [1.0, 3287, 235, 3462], [1.0, 3251, 268, 3363], ], - logic=lambda l: (l.TimeAccess(Regions.MillArea, Time.Day)), ), BananaCoinGroup( group=32, diff --git a/randomizer/Lists/CBLocations/FungiForestCBLocations.py b/randomizer/Lists/CBLocations/FungiForestCBLocations.py index 2098fd4d9..548f864f2 100644 --- a/randomizer/Lists/CBLocations/FungiForestCBLocations.py +++ b/randomizer/Lists/CBLocations/FungiForestCBLocations.py @@ -3207,7 +3207,7 @@ name="In front of Snide (Diddy)", speed=9, konglist=[Kongs.donkey, Kongs.diddy, Kongs.lanky, Kongs.tiny, Kongs.chunky], - region=Regions.MillArea, + region=Regions.SnideArea, vanilla=True, points=[[3233, 349, 3638], [3242, 327, 3550], [3180, 345, 3477]], ), diff --git a/randomizer/Lists/CustomLocations.py b/randomizer/Lists/CustomLocations.py index 669fb3ab4..f9d07cddd 100644 --- a/randomizer/Lists/CustomLocations.py +++ b/randomizer/Lists/CustomLocations.py @@ -2957,9 +2957,8 @@ class LocationTypes(IntEnum): y=268, z=3682, max_size=56, - logic_region=Regions.MillArea, + logic_region=Regions.SnideArea, group=2, - logic=lambda l: (l.TimeAccess(Regions.MillArea, Time.Day)), ), CustomLocation( map=Maps.FungiForest, diff --git a/randomizer/Lists/DoorLocations.py b/randomizer/Lists/DoorLocations.py index 0e189815e..3b96a9e80 100644 --- a/randomizer/Lists/DoorLocations.py +++ b/randomizer/Lists/DoorLocations.py @@ -2656,11 +2656,9 @@ def isBarrierRemoved(spoiler, barrier_id: RemovedBarriersSelected): DoorData( name="Near Mills Shop", map=Maps.FungiForest, - logicregion=Regions.MillArea, + logicregion=Regions.SnideArea, location=[3240.033, 268.5, 3718.017, 178.0], group=4, - moveless=False, - logic=lambda l: Events.Day in l.Events, placed=DoorType.boss, door_type=[DoorType.boss, DoorType.wrinkly], dk_portal_logic=lambda s: s.settings.fungi_time_internal in (FungiTimeSetting.dusk, FungiTimeSetting.progressive), diff --git a/randomizer/Lists/MapsAndExits.py b/randomizer/Lists/MapsAndExits.py index 2a4060a08..44c874d0b 100644 --- a/randomizer/Lists/MapsAndExits.py +++ b/randomizer/Lists/MapsAndExits.py @@ -185,6 +185,7 @@ Regions.ForestTopOfMill: Maps.FungiForest, Regions.ForestVeryTopOfMill: Maps.FungiForest, Regions.ForestMillTopOfNightCage: Maps.FungiForest, + Regions.SnideArea: Maps.FungiForest, # Caves Regions.CrystalCavesEntryHandler: Maps.CrystalCaves, Regions.CrystalCavesMain: Maps.CrystalCaves, diff --git a/randomizer/LogicFiles/FungiForest.py b/randomizer/LogicFiles/FungiForest.py index 943a1d041..7468e8922 100644 --- a/randomizer/LogicFiles/FungiForest.py +++ b/randomizer/LogicFiles/FungiForest.py @@ -347,14 +347,19 @@ TransitionFront(Regions.MillRafters, lambda l: (l.spring or l.CanMoontail()) and l.isdiddy, Transitions.ForestMainToRafters, time=Time.Night), TransitionFront(Regions.ThornvineArea, lambda _: True, time=Time.Night), TransitionFront(Regions.ThornvineArea, lambda l: l.CanPhaseswim()), - TransitionFront(Regions.Snide, lambda l: l.snideAccess, time=Time.Day), - TransitionFront(Regions.ForestBossLobby, lambda l: not l.settings.tns_location_rando, time=Time.Day), + TransitionFront(Regions.SnideArea, lambda _: True, time=Time.Day), TransitionFront(Regions.ThornvineBarn, lambda l: l.CanPhaseswim(), Transitions.ForestMainToBarn, isGlitchTransition=True), TransitionFront(Regions.ForestVeryTopOfMill, lambda l: l.climbing), TransitionFront(Regions.ForestTopOfMill, lambda l: l.balloon and l.islanky), TransitionFront(Regions.ForestMillTopOfNightCage, lambda l: l.isdiddy or l.istiny or l.ischunky), ]), + Regions.SnideArea: Region("Snide Area", HintRegion.Mills, Levels.FungiForest, False, None, [], [], [ + TransitionFront(Regions.MillArea, lambda _: True, time=Time.Day), + TransitionFront(Regions.Snide, lambda l: l.snideAccess), + TransitionFront(Regions.ForestBossLobby, lambda l: not l.settings.tns_location_rando), + ]), + Regions.MillChunkyTinyArea: Region("Mill Back Room", HintRegion.Mills, Levels.FungiForest, False, -1, [ LocationLogic(Locations.ForestMillRearEnemy_Enemy, lambda _: True), LocationLogic(Locations.KremKap_ForestMillRearEnemy_Enemy, lambda l: l.camera), diff --git a/randomizer/ShufflePorts.py b/randomizer/ShufflePorts.py index 3d6b64e7b..da4e77207 100644 --- a/randomizer/ShufflePorts.py +++ b/randomizer/ShufflePorts.py @@ -174,7 +174,7 @@ def isCustomLocationValid(spoiler, location: CustomLocation, map_id: Maps, level Regions.Lighthouse: [Regions.LighthouseAboveLadder], Regions.MushroomUpperExterior: [Regions.MushroomNightExterior], Regions.MushroomLowerExterior: [Regions.MushroomUpperMidExterior, Regions.MushroomBlastLevelExterior, Regions.GiantMushroomArea], - Regions.MillArea: [Regions.ForestTopOfMill, Regions.ForestVeryTopOfMill, Regions.ForestMillTopOfNightCage], + Regions.MillArea: [Regions.ForestTopOfMill, Regions.ForestVeryTopOfMill, Regions.ForestMillTopOfNightCage, Regions.SnideArea], Regions.CrystalCavesMain: [Regions.CavesBlueprintPillar, Regions.CavesBananaportSpire, Regions.CavesBonusCave], Regions.CabinArea: [Regions.CavesGGRoom, Regions.CavesRotatingCabinRoof, Regions.CavesSprintCabinRoof], Regions.CastleTree: [Regions.CastleTreePastPunch], diff --git a/randomizer/ShuffleShopLocations.py b/randomizer/ShuffleShopLocations.py index c703af36e..ed325426f 100644 --- a/randomizer/ShuffleShopLocations.py +++ b/randomizer/ShuffleShopLocations.py @@ -57,7 +57,7 @@ def setShop(self, shop): Levels.FungiForest: [ ShopLocation(Regions.CrankyGeneric, Maps.FungiForest, Regions.GiantMushroomArea, Regions.CrankyForest), ShopLocation(Regions.FunkyGeneric, Maps.FungiForest, Regions.WormArea, Regions.FunkyForest), - ShopLocation(Regions.Snide, Maps.FungiForest, Regions.MillArea, Regions.Snide), + ShopLocation(Regions.Snide, Maps.FungiForest, Regions.SnideArea, Regions.Snide), ], Levels.CrystalCaves: [ ShopLocation(Regions.CrankyGeneric, Maps.CrystalCaves, Regions.CrystalCavesMain, Regions.CrankyCaves), diff --git a/requirement_data.js b/requirement_data.js index d73e3236f..4e8887f0b 100644 --- a/requirement_data.js +++ b/requirement_data.js @@ -282,7 +282,7 @@ const requirement_data = { ], "Diddy": [ new Requirement(28, [[Moves.Moveless]]), // 1 bunch, 2 bunches in FungiForestStart; 2 bunches in GiantMushroomArea; 3 bananas in MillArea - new Requirement(10, [[Moves.Peanut]]), // 1 balloon in MillArea + new Requirement(10, [[Moves.Peanut]]), // 1 balloon in SnideArea new Requirement(5, [[Moves.Spring]]), // 1 bunch in MillArea new Requirement(15, [[Moves.ForestYellowTunnel]]), // 1 bunch, 10 bananas in HollowTreeArea new Requirement(5, [[Moves.Rocket, Moves.ForestYellowTunnel]]), // 1 bunch in HollowTreeArea diff --git a/typings/randomizer/Enums/Regions.d.ts b/typings/randomizer/Enums/Regions.d.ts index a4c8f628d..47357e696 100644 --- a/typings/randomizer/Enums/Regions.d.ts +++ b/typings/randomizer/Enums/Regions.d.ts @@ -291,4 +291,5 @@ export enum Regions { SnideLastGroup = 290, FactoryArcadePole = 291, MushroomVeryTopExterior = 292, + SnideArea = 293, } diff --git a/typings/randomizer/Enums/Regions.pyi b/typings/randomizer/Enums/Regions.pyi index c67d50c69..0ea9e31d3 100644 --- a/typings/randomizer/Enums/Regions.pyi +++ b/typings/randomizer/Enums/Regions.pyi @@ -293,3 +293,4 @@ class Regions(IntEnum): SnideLastGroup = 290 FactoryArcadePole = 291 MushroomVeryTopExterior = 292 + SnideArea = 293 diff --git a/wiki/article_markdown/custom_locations/CustomLocationsCoins.MD b/wiki/article_markdown/custom_locations/CustomLocationsCoins.MD index b32ef081f..f096c96bc 100644 --- a/wiki/article_markdown/custom_locations/CustomLocationsCoins.MD +++ b/wiki/article_markdown/custom_locations/CustomLocationsCoins.MD @@ -565,7 +565,7 @@ | On the Green Tunnel Roof | 3 | `l.twirl and l.istiny` | | On a mushroom in the Worm Area | 4 | `self.logic = lambda _: True` | | On the waterwheel | 5 | `self.logic = lambda _: True` | -| In the Snide's area | 4 | `(l.TimeAccess(Regions.MillArea, Time.Day))` | +| In the Snide's area | 4 | `self.logic = lambda _: True` | | Near the entrance to the Dark Rafters | 4 | `self.logic = lambda _: True` | | Hanging off the mill roof | 3 | `self.logic = lambda _: True` | | In front of the mill in the air | 3 | `l.balloon and l.islanky` | diff --git a/wiki/article_markdown/custom_locations/CustomLocationsDoors.MD b/wiki/article_markdown/custom_locations/CustomLocationsDoors.MD index 13b35120c..3b4680e6b 100644 --- a/wiki/article_markdown/custom_locations/CustomLocationsDoors.MD +++ b/wiki/article_markdown/custom_locations/CustomLocationsDoors.MD @@ -266,7 +266,7 @@ | Fungi Forest Lobby | Forest Lobby - Near Entrance | Wrinkly | `self.logic = lambda _: True` | | Fungi Forest | Behind Thornvine Barn | Boss, Wrinkly | `self.logic = lambda _: True` | | Fungi Forest | Beanstalk Area Alcove | Boss, Wrinkly | `Events.Night in l.Events` | -| Fungi Forest | Near Mills Shop | Boss, Wrinkly | `Events.Day in l.Events` | +| Fungi Forest | Near Mills Shop | Boss, Wrinkly | `self.logic = lambda _: True` | | Fungi Forest | Top of Giant Mushroom | Boss, Dk_Portal, Wrinkly | `self.logic = lambda _: True` | | Fungi Forest | Owl Area Clearing | Boss, Wrinkly | `self.logic = lambda _: True` | | Fungi Forest | On top of Mill Crusher Output | Boss, Dk_Portal, Wrinkly | `self.logic = lambda _: True` | diff --git a/wiki/article_markdown/custom_locations/CustomLocationsMiscellaneous.MD b/wiki/article_markdown/custom_locations/CustomLocationsMiscellaneous.MD index 52acd07b8..570f00956 100644 --- a/wiki/article_markdown/custom_locations/CustomLocationsMiscellaneous.MD +++ b/wiki/article_markdown/custom_locations/CustomLocationsMiscellaneous.MD @@ -251,7 +251,7 @@ | Fungi Forest | Behind Clock | | `self.logic = lambda _: True` | | Fungi Forest | In front of Clock | | `self.logic = lambda _: True` | | Fungi Forest | Near Blue Tunnel | | `self.logic = lambda _: True` | -| Fungi Forest | Near Mills shop | | `(l.TimeAccess(Regions.MillArea, Time.Day))` | +| Fungi Forest | Near Mills shop | | `self.logic = lambda _: True` | | Fungi Forest | Behind rafters barn | | `self.logic = lambda _: True` | | Fungi Forest | Left of rafters barn | | `self.logic = lambda _: True` | | Fungi Forest | Next to Diddy Pad | | `self.logic = lambda _: True` | diff --git a/wiki/articles.json b/wiki/articles.json index 4c9be0352..8103017ad 100644 --- a/wiki/articles.json +++ b/wiki/articles.json @@ -133,6 +133,10 @@ "name": "Wiki Editing", "link": "WikiEditing" }, + { + "name": "Random Settings: Easy", + "link": "RandomSettingsEasy" + }, { "name": "Custom Locations: Coins", "link": "CustomLocationsCoins" @@ -141,6 +145,10 @@ "name": "Custom Locations: Colored Bananas", "link": "CustomLocationsColoredBananas" }, + { + "name": "Custom Locations: Kasplats", + "link": "CustomLocationsKasplats" + }, { "name": "Custom Locations: Doors", "link": "CustomLocationsDoors" @@ -150,31 +158,23 @@ "link": "CustomLocationsFairies" }, { - "name": "Custom Locations: Kasplats", - "link": "CustomLocationsKasplats" + "name": "Random Settings: Standard", + "link": "RandomSettingsStandard" }, { - "name": "Custom Locations: Miscellaneous", - "link": "CustomLocationsMiscellaneous" + "name": "Random Settings: Difficult", + "link": "RandomSettingsDifficult" }, { "name": "Plando Colors", "link": "PlandoColors" }, { - "name": "Random Settings: Difficult", - "link": "RandomSettingsDifficult" + "name": "Custom Locations: Miscellaneous", + "link": "CustomLocationsMiscellaneous" }, { "name": "Random Settings: Difficult With Qol Shuffle", "link": "RandomSettingsDifficultWithQolShuffle" - }, - { - "name": "Random Settings: Easy", - "link": "RandomSettingsEasy" - }, - { - "name": "Random Settings: Standard", - "link": "RandomSettingsStandard" } ] \ No newline at end of file