Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Further Dragon Improvements #322

Merged
merged 4 commits into from
Apr 11, 2022
Merged

Further Dragon Improvements #322

merged 4 commits into from
Apr 11, 2022

Conversation

lahm86
Copy link
Collaborator

@lahm86 lahm86 commented Apr 10, 2022

#310 Multiple Dragons

The dragon can now appear in every level. This is achieved by making suitable rooms available in levels that otherwise couldn't previously support it - these are:

  • Venice
  • Bartoli's Hideout
  • Diving Area
  • Living Quarters
  • Floating Islands

With the maximum dragon appearance option enabled, 18 dragons are not guaranteed as we still rely on environment mods for some levels (such as 40F draining) and texture import may still fail for various combinations, so standard cross-level enemy randomization will still take place. But overall, the chance of getting an 18-dragon run is greatly increased.

Environment Updates

  • EMRoomDefinition holds an exported room from another level along with any necessary floor data (slants for example, but not triggers). Currently there is only one room available (Resources\TR2\Rooms).
  • EMImportRoomFunction has been implemented to read in a specific room ID from JSON and merge it into the current level. Other standard environment mods make portals, triggers etc. The imported room is retextured to suit the level - this carries out a blanket replacement of face texture values, but EMRefaceFunction could be used here to make more interesting designs.
  • EMCopyRoomFunction has been implemented for TR2 (previously TR3 only for reward rooms).
  • EMCopyRoomFunction has been amended to correctly set the size of newly added Boxes (there was a previous issue of either XMin being the same as XMax or ZMin the same as ZMax).
  • EMCameraTriggerFunction has been updated to allow attaching to every trigger in a room and to allow reusing an existing camera index.
  • EMRemoveTriggerActionFunction has been added to allow removing a specific entry from a trigger's action list.
  • EMTriggerFunction has been updated to allow placing a trigger on every sector in a specific room.
  • Various Marco placement amendments have been put in place for better spawns.

Enemy Randomization

  • The unused Marco model has been removed from Floating Islands to free-up space, and to ensure textures are randomized if he is being added as an entity.
  • There is now an enemy pool adjustment count based on whether or not Marco is included (for example in Bartoli's to increase the likelihood of successful import).
  • The final packing attempt when we are maximising the dragon's appearance will fall back to standard enemy pool randomization (i.e. not necessarily including Marco) to avoid original enemy pool from being selected. If the final import fails, original enemy randomization will continue as normal.
  • Docile bird monsters are now correctly honoured when a level has a restricted pool of enemies that work with Marco (e.g. Barkhang).

#314 Enemy Meshes

Adds a chance of Marco looking like Winston if they're both in the same level.

#320 Secret Adjustments

Moves a secret in Tibet if room 19 has been flooded so that it can still be collected, and another in room 17 in 40F if it has been drained (this one was still reachable but only with a glitch, so this ensures it remains glitchless).
Closes #320.

#321 Model Import Issue

It was possible if importing two enemies that each had a LaraMiscAnim dependency, and if the level already contained another LaraMiscAnim alias, that while the model would correctly be replaced, any new textures would not be imported. Textures for these prioritised aliases will now always be replaced.
Closes #321.

lahm86 added 4 commits April 10, 2022 13:26
Fixes a secret in Tibet and also in 40F when water levels are adjusted.
Ensures that prioritised aliases when imported will always import required textures.
The dragon can now appear in every level. This is done by importing a suitable room into the levels that otherwise cannot support a dragon fight. Several updates are in place as a result of this.

Environment:
- EMRoomDefinition holds an exported room from another level along with any necessary floor data (slants for example, but not triggers).
- ImportRoom function implemented to read in a specific room ID from JSON and merge into the level. Other standard environment mods make portals, triggers etc. The imported room is retextured to suit the level.
- CopyRoom function implemented for TR2 (previously TR3 only).
- Fix to CopyRoom function to correctly set the size of newly added Boxes.
- CameraTrigger function updated to allow attaching to every trigger in a room and to allow reusing an existing camera index.
- RemoveTriggerAction function added to allow removing a specific entry from a trigger's action list.
- Trigger function updated to allow placing on every sector in a specific room.
- Various Marco placement amendments for better spawns.

Enemy Randomization:
- Unused Marco model removed from Floating Islands to free-up space.
- Enemy pool adjustment count based on whether or not Marco is included (for example in Bartoli's to increase likelihood of successful import).
- Final packing attempt when we are maximising dragon appearance will fall back to standard enemy pool rando to avoid original enemy pool from being selected.
- Docile bird monsters honoured when a level has a restricted pool of enemies that work with Marco (e.g. Barkhang).
- Adds a chance of Marco becoming Winston for LostArtefacts#314.
@DanzaG DanzaG merged commit cb06e31 into LostArtefacts:master Apr 11, 2022
@lahm86 lahm86 mentioned this pull request Apr 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

TR2 - Missing Model Textures TR2 - Inaccessible secret in Tibet
2 participants