This project intends to represent Super Metroid's layout and navigation in a format that is handy for software to read and interpret. The primary goal is to eventually be used by the SMZ3 combo randomizer (https://github.com/tewtal/alttp_sm_combo_randomizer) to build its logic, expanding that project's possibilities.
However, the intent is for the data model to also be usable for other projects related to Super Metroid.
This project's representation of Super Metroid is split-up between different folders, each with their own data. Here's a breakdown:
A folder that details the game's rooms
A folder that details connections between the game's rooms
A folder that details the game's enemies
A folder that details possible types of attacks
A file that defines helper functions. They are logical requirement expressions that are used frequently, and prevent having to copy the same thing all over the place.
A file that contains a lot of the initial game state configuration. It contains all existing items and game flags, as well as starting items, resources, game flags, open locks, and location.
A file that contains techs and their logical requirements. Techs are in-game techniques that players might want to be able to logically turn off.
This section lists key concepts and links to deeper explanations of them.
Logical requirements define what Samus needs to have and to do in order to perform actions
Strats represent a series of maneuvers that need to be executed in a room.