Skip to content
Merged

dtm #3362

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .bumpversion.cfg
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[bumpversion]
commit = True
tag = False
current_version = 5.14.74
current_version = 5.14.77

[bumpversion:file:version.py]
search = version = "{current_version}"
Expand Down
4 changes: 2 additions & 2 deletions base-hack/src/instances/instances.c
Original file line number Diff line number Diff line change
Expand Up @@ -1439,13 +1439,13 @@ int change_object_scripts(behaviour_data* behaviour_pointer, int id, int index,
}
} else if (behaviour_pointer->current_state == 1) {
if (isPlayerInRangeOfObject(40)) {
if (getPlayerObjectDistance()) {
// if (getPlayerObjectDistance()) { // Patch out the code that makes sure the player is on the front side of the wrinkly door
unkObjFunction2(id, 1, 1);
PauseText = 1;
spawnWrinklyWrapper(behaviour_pointer, id, kong, 0);
playSFXFromObject(id, 19, 255, 127, 20, 0, 0.3f);
behaviour_pointer->next_state = 2;
}
// }
}
} else if (behaviour_pointer->current_state == 2) {
if (isWrinklySpawned()) {
Expand Down
3 changes: 3 additions & 0 deletions randomizer/Lists/DoorLocations.py
Original file line number Diff line number Diff line change
Expand Up @@ -723,6 +723,7 @@ def isBarrierRemoved(spoiler, barrier_id: RemovedBarriersSelected):
location=[1498.8, 438.167, 299, 270],
group=11,
logic=lambda l: l.can_use_vines and l.climbing,
door_type=[DoorType.wrinkly], # Note: revert in 6.0
moveless=False,
),
DoorData(
Expand Down Expand Up @@ -2933,6 +2934,7 @@ def isBarrierRemoved(spoiler, barrier_id: RemovedBarriersSelected):
rx=-54.458709399833616,
rz=-2.2464418296590756,
door_tags=[DoorTags.Season5Door],
door_type=[DoorType.wrinkly], # Note: revert in 6.0
group=4,
),
DoorData(
Expand Down Expand Up @@ -3332,6 +3334,7 @@ def isBarrierRemoved(spoiler, barrier_id: RemovedBarriersSelected):
location=[481.998441919847, 1247.9489978887038, 1112.7816908753691, -68.0916195979442],
rx=-32.23957607313838,
door_tags=[DoorTags.Season5Door],
door_type=[DoorType.wrinkly], # Note: revert in 6.0
group=5,
),
DoorData(
Expand Down
2 changes: 1 addition & 1 deletion randomizer/Settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -1291,7 +1291,7 @@ def resolve_settings(self):
self.wrinkly_location_rando = True
self.dos_door_rando = False
self.vanilla_door_rando = False
self.tns_location_rando = False # T&S shuffle not supported on this initial implementation. It could definitely be done later.
self.tns_location_rando = True # 5.0 Seasonal shuffle also needs to cull T&S doors in Factory for technical reasons
# Dos' Doors requires this to be on - it's a variant on vanilla door shuffle
if self.dos_door_rando:
self.vanilla_door_rando = True
Expand Down
25 changes: 25 additions & 0 deletions randomizer/ShuffleDoors.py
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,7 @@ def ShuffleSpecificDoors(spoiler):
elif spoiler.settings.season5_door_rando:
ShuffleHintDoorSet(spoiler, DoorTags.Season5Door)
shuffled_wrinkly = True
shuffled_tns = True # Temporary until we undo the Factory T&S culling
# DK Portals may be shuffled independently of the specific door shuffles, and that's done here in the main shuffle method
if spoiler.settings.dk_portal_location_rando_v2 != DKPortalRando.off:
ShuffleDoors(spoiler, shuffled_wrinkly, shuffled_tns)
Expand Down Expand Up @@ -382,6 +383,15 @@ def ShuffleHintDoorSet(spoiler, door_tag: DoorTags):
"Crystal Caves": {},
"Creepy Castle": {},
}
human_portal_doors = {
"Jungle Japes": {},
"Angry Aztec": {},
"Frantic Factory": {},
"Gloomy Galleon": {},
"Fungi Forest": {},
"Crystal Caves": {},
"Creepy Castle": {},
}
shuffled_door_data = {
Levels.JungleJapes: [],
Levels.AngryAztec: [],
Expand Down Expand Up @@ -413,11 +423,26 @@ def ShuffleHintDoorSet(spoiler, door_tag: DoorTags):
region = spoiler.RegionList[selected_door.logicregion]
region.locations.append(LocationLogic(doorLocation, lambda l, door=selected_door, lv=level: door.logic(l) and l.canUnlockHintDoor(lv)))
spoiler.LocationList[doorLocation].name = f"{level_to_name[level]} Hint Door ({selected_door.name})"
# TEMPORARY: S5 will retain vanilla T&S doors with the exception of Factory, where all but 1 T&S is culled for technical reasons.
if door_tag == DoorTags.Season5Door:
vanilla_tns_indexes = [idx for idx, door in enumerate(door_locations[level]) if DoorTags.VanillaBoss in door.door_tags]
placed_tns_count = 0
for door_index in vanilla_tns_indexes:
vanilla_tns = door_locations[level][door_index]
if level == Levels.FranticFactory and vanilla_tns.name != "Storage Room":
vanilla_tns.placed = DoorType.null
else:
placed_tns_count += 1
vanilla_tns.assignPortal(spoiler)
human_portal_doors[level_list[level]]["T&S #" + str(placed_tns_count)] = vanilla_tns.name
shuffled_door_data[level].append((door_index, DoorType.boss))
# Track all touched doors in a variable and put it in the spoiler because changes to the static list do not save
spoiler.shuffled_door_data = shuffled_door_data
# Give human text to spoiler log
if spoiler.settings.wrinkly_location_rando:
spoiler.human_hint_doors = human_hint_doors
if spoiler.settings.tns_location_rando:
spoiler.human_portal_doors = human_portal_doors


def ClearHintDoorLogic(spoiler):
Expand Down
Binary file modified static/patches/shrink-dk64.bps
Binary file not shown.
Loading
Loading