Skip to content
Werner edited this page Feb 23, 2020 · 1 revision

Dynamic Maps / Away Missions

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.

Folder Structure

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
...

Configuration File Example

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
	}
}

Standards and Guidelines

A collection of standards and guidelines applied to the codebase.

Common API Documentation

Documentation regarding common APIs which speed up feature implementation and should be known by all coders.

Less Common APIs

Documentation for less used APIs that are not often needed.

Subsystems

Documentation regarding our implementation of StonedMC (SMC).

Decrepit

Decrepit or unused systems.

  • Dynamic Maps (Not to be confused with the newer away mission implementation.)
Clone this wiki locally