mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 10:01:40 +00:00
71 lines
1.6 KiB
Plaintext
71 lines
1.6 KiB
Plaintext
var/datum/subsystem/mapping/SSmapping
|
|
|
|
/datum/subsystem/mapping
|
|
name = "Mapping"
|
|
init_order = 13
|
|
flags = SS_NO_FIRE
|
|
display_order = 50
|
|
|
|
var/list/nuke_tiles = list()
|
|
var/list/nuke_threats = list()
|
|
|
|
|
|
/datum/subsystem/mapping/New()
|
|
NEW_SS_GLOBAL(SSmapping)
|
|
return ..()
|
|
|
|
|
|
/datum/subsystem/mapping/Initialize(timeofday)
|
|
preloadTemplates()
|
|
// Pick a random away mission.
|
|
createRandomZlevel()
|
|
// Generate mining.
|
|
|
|
var/mining_type = MINETYPE
|
|
if (mining_type == "lavaland")
|
|
seedRuins(list(5), config.lavaland_budget, /area/lavaland/surface/outdoors, lava_ruins_templates)
|
|
spawn_rivers()
|
|
else
|
|
make_mining_asteroid_secrets()
|
|
|
|
// deep space ruins
|
|
var/space_zlevels = list()
|
|
for(var/i in ZLEVEL_SPACEMIN to ZLEVEL_SPACEMAX)
|
|
switch(i)
|
|
if(ZLEVEL_MINING, ZLEVEL_LAVALAND, ZLEVEL_EMPTY_SPACE)
|
|
continue
|
|
else
|
|
space_zlevels += i
|
|
|
|
seedRuins(space_zlevels, config.space_budget, /area/space, space_ruins_templates)
|
|
|
|
// Set up Z-level transistions.
|
|
setup_map_transitions()
|
|
..()
|
|
|
|
/* Nuke threats, for making the blue tiles on the station go RED
|
|
Used by the AI doomsday and the self destruct nuke.
|
|
*/
|
|
|
|
/datum/subsystem/mapping/proc/add_nuke_threat(datum/nuke)
|
|
nuke_threats[nuke] = TRUE
|
|
check_nuke_threats()
|
|
|
|
/datum/subsystem/mapping/proc/remove_nuke_threat(datum/nuke)
|
|
nuke_threats -= nuke
|
|
check_nuke_threats()
|
|
|
|
/datum/subsystem/mapping/proc/check_nuke_threats()
|
|
for(var/datum/d in nuke_threats)
|
|
if(!istype(d) || QDELETED(d))
|
|
nuke_threats -= d
|
|
|
|
var/threats = nuke_threats.len
|
|
|
|
for(var/N in nuke_tiles)
|
|
var/turf/open/floor/T = N
|
|
T.icon_state = (threats ? "rcircuitanim" : T.icon_regular_floor)
|
|
|
|
/datum/subsystem/mapping/Recover()
|
|
flags |= SS_NO_INIT
|