diff --git a/CHANGELOG.md b/CHANGELOG.md index b4adbbb1b..8d7256e1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ -## [Unreleased](https://github.com/LostArtefacts/TR-Rando/compare/V1.8.3...master) - xxxx-xx-xx +## [Unreleased](https://github.com/LostArtefacts/TR-Rando/compare/V1.8.4...master) - xxxx-xx-xx + +## [V1.8.4](https://github.com/LostArtefacts/TR-Rando/compare/V1.8.3...V1.8.4) - 2024-02-12 - fixed item locking logic so that secrets that rely on specific enemies will always be obtainable (#570) +- fixed a crash at the end of Diving Area if a skidoo driver is replaced by a pickup (#604) +- fixed the submarine in the Diving Area cutscene using Lara's meshes (#605) +- fixed some awkwardly placed enemies in TR2, which could either block puzzle slots/keyholes or otherwise prove difficult to kill (#606) +- fixed pickup item lighting in TR2 (#607) +- fixed a secret in Temple of Xian that requires a glitch but was marked as glitchless (#608) +- fixed an item location in Wreck of the Maria Doria that required forced flame damage (#609) ## [V1.8.3](https://github.com/LostArtefacts/TR-Rando/compare/V1.8.2...V1.8.3) - 2024-01-21 - fixed incorrect items sometimes being allocated as secret rewards in Thames Wharf (#597) diff --git a/TRLevelControl/Model/TR2/Enums/TR2Type.cs b/TRLevelControl/Model/TR2/Enums/TR2Type.cs index f11ef7412..11bd4f7f3 100644 --- a/TRLevelControl/Model/TR2/Enums/TR2Type.cs +++ b/TRLevelControl/Model/TR2/Enums/TR2Type.cs @@ -106,9 +106,9 @@ public enum TR2Type UnderwaterPropeller = 94, AirFan = 95, SwingingBoxOrBall = 96, - MeshSwap1 = 97, - MeshSwap2 = 98, - MeshSwap3 = 99, + CutsceneActor1 = 97, + CutsceneActor2 = 98, + CutsceneActor3 = 99, UIFrame_H = 100, RollingStorageDrums = 101, ZiplineHandle = 102, @@ -132,16 +132,16 @@ public enum TR2Type JadeSecret_M_H = 120, SilverSecret_M_H = 121, LaraHomePhoto_M_H = 122, - CutsceneActor1 = 123, - CutsceneActor2 = 124, - CutsceneActor3 = 125, - CutsceneActor4 = 126, - CutsceneActor5 = 127, - CutsceneActor6 = 128, - CutsceneActor7 = 129, - CutsceneActor8 = 130, - CutsceneActor9 = 131, - CutsceneActor10 = 132, + CutsceneActor4 = 123, + CutsceneActor5 = 124, + CutsceneActor6 = 125, + CutsceneActor7 = 126, + CutsceneActor8 = 127, + CutsceneActor9 = 128, + CutsceneActor10 = 129, + CutsceneActor11 = 130, + Unknown1 = 131, + Unknown2 = 132, PassportClosed_M_H = 133, Map_M_U = 134, Pistols_S_P = 135, diff --git a/TRRandomizerCore/Randomizers/TR2/TR2ItemRandomizer.cs b/TRRandomizerCore/Randomizers/TR2/TR2ItemRandomizer.cs index cbba0da64..7f9aadb43 100644 --- a/TRRandomizerCore/Randomizers/TR2/TR2ItemRandomizer.cs +++ b/TRRandomizerCore/Randomizers/TR2/TR2ItemRandomizer.cs @@ -213,6 +213,7 @@ public void RandomizeItemLocations(TR2CombinedLevel level) } _picker.RandomizePickupLocation(entity); + entity.Intensity1 = entity.Intensity2 = -1; } } @@ -245,6 +246,7 @@ private void RandomizeKeyItems(TR2CombinedLevel level) _picker.RandomizeKeyItemLocation( entity, LocationUtilities.HasPickupTriger(entity, i, level.Data, floorData), level.Script.OriginalSequence, level.Data.Rooms[entity.Room].Info); + entity.Intensity1 = entity.Intensity2 = -1; } } diff --git a/TRRandomizerCore/Resources/TR2/Environment/DECK.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/DECK.TR2-Environment.json index 44e2148c1..f1b2ddd13 100644 --- a/TRRandomizerCore/Resources/TR2/Environment/DECK.TR2-Environment.json +++ b/TRRandomizerCore/Resources/TR2/Environment/DECK.TR2-Environment.json @@ -1056,6 +1056,27 @@ } } ] + }, + { + "Condition": { + "Comments": "If enemy 103's type has been randomized, move him outside for some breathing space.", + "ConditionType": 0, + "EntityIndex": 103, + "EntityType": 32 + }, + "OnFalse": [ + { + "EMType": 44, + "EntityIndex": 103, + "TargetLocation": { + "X": 43520, + "Y": -10240, + "Z": 69120, + "Room": 114, + "Angle": 16384 + } + } + ] } ], "ConditionalOneOf": [], diff --git a/TRRandomizerCore/Resources/TR2/Environment/KEEL.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/KEEL.TR2-Environment.json index dcf4a8e53..9d5c8bde9 100644 --- a/TRRandomizerCore/Resources/TR2/Environment/KEEL.TR2-Environment.json +++ b/TRRandomizerCore/Resources/TR2/Environment/KEEL.TR2-Environment.json @@ -1894,6 +1894,47 @@ "NewDoorType": 111 } ] + }, + { + "Condition": { + "Comments": "If enemy 46 is a t-rex or chicken, drain the nearby pool and put him there.", + "ConditionType": 0, + "Or": [ + { + "ConditionType": 0, + "EntityIndex": 46, + "EntityType": 46 + } + ], + "EntityIndex": 46, + "EntityType": 214 + }, + "OnTrue": [ + { + "EMType": 3, + "RoomNumbers": [ + 85, + 94 + ], + "WaterTextures": [ + 1730, + 1764, + 1769, + 1770 + ] + }, + { + "EMType": 44, + "EntityIndex": 46, + "TargetLocation": { + "X": 58880, + "Y": 4480, + "Z": 33280, + "Room": 94, + "Angle": -16384 + } + } + ] } ], "ConditionalOneOf": [], diff --git a/TRRandomizerCore/Resources/TR2/Environment/PLATFORM.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/PLATFORM.TR2-Environment.json index ab50110f0..fb3401204 100644 --- a/TRRandomizerCore/Resources/TR2/Environment/PLATFORM.TR2-Environment.json +++ b/TRRandomizerCore/Resources/TR2/Environment/PLATFORM.TR2-Environment.json @@ -2597,6 +2597,34 @@ } } ] + }, + { + "Condition": { + "Comments": "If enemy 59 is an eel, rotate it to avoid blocking puzzle slots.", + "ConditionType": 0, + "Or": [ + { + "ConditionType": 0, + "EntityIndex": 59, + "EntityType": 26 + } + ], + "EntityIndex": 59, + "EntityType": 27 + }, + "OnTrue": [ + { + "EMType": 44, + "EntityIndex": 59, + "TargetLocation": { + "X": 59904, + "Y": -3584, + "Z": 75264, + "Room": 30, + "Angle": -32768 + } + } + ] } ], "ConditionalOneOf": [], diff --git a/TRRandomizerCore/Resources/TR2/Environment/RIG.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/RIG.TR2-Environment.json index a0ca40ed6..2a1eb596e 100644 --- a/TRRandomizerCore/Resources/TR2/Environment/RIG.TR2-Environment.json +++ b/TRRandomizerCore/Resources/TR2/Environment/RIG.TR2-Environment.json @@ -1494,13 +1494,13 @@ "Condition": { "Comments": "If neither rooms 2 nor 96 contain a secret, drain the plane area.", "ConditionType": 1, - "RoomIndex": 2, "Or": [ { "ConditionType": 1, "RoomIndex": 96 } - ] + ], + "RoomIndex": 2 }, "OnFalse": { "Leader": [ diff --git a/TRRandomizerCore/Resources/TR2/Locations/invalid_item_locations.json b/TRRandomizerCore/Resources/TR2/Locations/invalid_item_locations.json index a81438390..edda11e7c 100644 --- a/TRRandomizerCore/Resources/TR2/Locations/invalid_item_locations.json +++ b/TRRandomizerCore/Resources/TR2/Locations/invalid_item_locations.json @@ -1715,6 +1715,12 @@ "Z": 91648, "Room": 68 }, + { + "X": 52736, + "Y": -4096, + "Z": 35328, + "Room": 21 + }, { "X": 67072, "Y": 4352, diff --git a/TRRandomizerCore/Resources/TR2/Locations/locations.json b/TRRandomizerCore/Resources/TR2/Locations/locations.json index c2ab8b396..bf69c00d9 100644 --- a/TRRandomizerCore/Resources/TR2/Locations/locations.json +++ b/TRRandomizerCore/Resources/TR2/Locations/locations.json @@ -6465,7 +6465,8 @@ "Y": -5632, "Z": 69633, "Room": 92, - "Difficulty": "Hard" + "Difficulty": "Hard", + "RequiresGlitch": true }, { "X": 33718, diff --git a/TRRandomizerCore/Resources/TR2/Restrictions/enemy_restrictions_default.json b/TRRandomizerCore/Resources/TR2/Restrictions/enemy_restrictions_default.json index 166b1178b..a31b4205c 100644 --- a/TRRandomizerCore/Resources/TR2/Restrictions/enemy_restrictions_default.json +++ b/TRRandomizerCore/Resources/TR2/Restrictions/enemy_restrictions_default.json @@ -36,16 +36,6 @@ 102 ] }, - "PLATFORM.TR2": { - "52": [ - 17, - 29, - 31, - 46, - 65, - 77 - ] - }, "UNWATER.TR2": { "52": [ 20, diff --git a/TRRandomizerCore/Resources/TR2/Restrictions/enemy_restrictions_technical.json b/TRRandomizerCore/Resources/TR2/Restrictions/enemy_restrictions_technical.json index b89f6fb9b..c9369b88c 100644 --- a/TRRandomizerCore/Resources/TR2/Restrictions/enemy_restrictions_technical.json +++ b/TRRandomizerCore/Resources/TR2/Restrictions/enemy_restrictions_technical.json @@ -31,6 +31,13 @@ "PLATFORM.TR2": { "40": [ 83 + ], + "52": [ + 17, + 29, + 31, + 46, + 65 ] }, "UNWATER.TR2": { diff --git a/TRRandomizerView/TRRandomizerView.csproj b/TRRandomizerView/TRRandomizerView.csproj index 134c4a844..14afae90e 100644 --- a/TRRandomizerView/TRRandomizerView.csproj +++ b/TRRandomizerView/TRRandomizerView.csproj @@ -20,7 +20,7 @@ false Resources\rando.ico - 1.8.3 + 1.8.4 Tomb Raider Randomizer Copyright © Tomb Raider Community 2023