Guide to mapping/Exploration ruins
Mapping Randomly Generated Rooms
The room must have the dimensions 4a+1 by 4b+1, where a and b are positive integers (5, 9, 13, 17, 21 etc.). Note that the width and height of the rooms do not have to be the same, so rooms of size 5x17 would be accepted.
The room must also have at least 1 connection point. There are 2 type of connection points: hallways and doors.
These connection points must be placed on the border of the map at intervals of 4n + 3 (3, 7, 11, 15 etc.) so that the connections are in the center of a hallway / doorway point.
Additionally, the connection points must be pointing towards the edge of the map, if a connection point is placed on the north wall, the arrow indicator in the map editor should point north towards the void above.
Hallways (//TODO ADD THE MARKER TYPEPATH)
Hallway connection points indicate that the connection space is a 3-wide hallway. These will connect to other hallway connection points and will not have anything placed where the marker is.
Rooms / Doorways (//TODO ADD THE MARKER TYPEPATH)
Doorway connection points are placed in a 1 wide space at the edge of the room. These will connect to other doorway connection points, and will have doors and firelocks automatically placed at the marker.
The edge of the room must contain no structures / items, only turfs and connection points. (Do not put windows on the edge of rooms, as they could overlay with walls and other windows causing strange looking ruins).
//TODO ADD EXAMPLE IMAGES
Adding the ruin in code
To add your ruin room into the code, you need to create a room template datum. This is an object that holds important metadata about your room, allowing it to be spawned in game.
Create a new datum. The datum must start with /datum/map_template/ruin_part and then have a unique name on the end. For example
You can now override the following variables on the room:
- file_name (Required): Specifies the name of your map file. This must be exactly the same as whatever you called the map file, without the .dmm on the end. Exaple: "5x5_0_hallwaycross"
- weight (Required): The weight of your room. The higher this value, the more chance your room has of spawning. For best results, hallways should have a low value of around 1, while rooms should have a higher value between 2-4. If your room is somewhat special or contains good items, then it is better to put it with a lower weight.
- max_occurances: An optional variable that allows you to specify how any times the roo can appear at most.
- loot_room: This should be set to 'TRUE' for any maps that have decent loot in it. This marks the room as a loot room, of which only 1 can spawn per ruin.
/datum/map_template/ruin_part/chapel file_name = "13x17_chapel" weight = 3 max_occurances = 1 //Multiple Nar'sie worshipping chaplain incidents would be wacky on one station.
/datum/map_template/ruin_part/corgasteroid file_name = "41x41_corgasteroid" weight = 1 max_occurances = 1
/datum/map_template/ruin_part/medstorage file_name = "9x13_medstorage" weight = 3
Currently, all ruin map templates are stored in code/modules/shuttle/super_cruise/orbital_poi_generator/ruin_generator/ruin_part_types.dm