-
Notifications
You must be signed in to change notification settings - Fork 516
Dynamic Maps
Dynamic Maps are also called "Away Missions" due to them usually being reachable via the expedition shuttle.
At round-start the Map Finalization
subsystem iterates through the sub-directories in the dynamic_maps
directory.
If a directory contains a config.json file, this configuration file is parsed and if valid a /datum/away_mission
is created from the configuration file.
Once all away missions have been parsed, the subsystem performs a weighted pick among all /datum/away_mission
with autoselect set to TRUE.
It is also possible to enforce that a specific /datum/away_mission
is loaded.
To do that, the SSpersist_config.forced_awaymission
variable needs to be set to the name of the away mission, that should be loaded.
The following folder structure is required for the map selection to work.
The dynamic maps folder must contain a sub-folder for each dynamic map.
Each sub-folder must contain a config.json
-file and at least one map file.
A sub-folder can contain multiple map files.
Example:
dynamic_maps
- mission_1
-- config.json
-- map_1.dmm
-- map_2.dmm
- mission_2
-- config.json
-- map_1.dmm
...
The config.json
-file for the dynamic maps must contain the following attributes:
name | type | description |
---|---|---|
name | string | name of the dynamic map |
weight | float | weight used by pickweight() when selecting the dynamic map |
autoselect | bool | If the map should be in the automatic rotation or if it can only loaded manually |
map_files | array(string) | Array of the map-files that are part of the away mission |
valid_maps | array(string) | Array of the maps (i.e. aurora, exodus) where the away mission can be loaded. |
characteristics | object | Object with the attributes -key: attribute name -value: %-chance of the attribute showing up on the report |
Example:
{
"name": "mission_1",
"weight": 1,
"autoselect": 1,
"map_files": ["map1.dmm","map2.dmm"],
"valid maps": ["aurora"],
"characteristics": {
"Biological Lifeforms": 20,
"Unrecognizable Signals": 100
}
}
A collection of standards and guidelines applied to the codebase.
Documentation regarding common APIs which speed up feature implementation and should be known by all coders.
- Atom Initialization
- Garbage, Queued Deletion, and Destroy
- Callbacks
- Timers
- Lazy Lists
- Overlays
- Processing APIs
- Common Helpers
- Global Listeners
- Singletons
Documentation for less used APIs that are not often needed.
Documentation regarding our implementation of StonedMC (SMC).
Decrepit or unused systems.
- Dynamic Maps (Not to be confused with the newer away mission implementation.)