Files
Paradise/code/datums/ruins.dm
T
ToasticalandGitHub c9d96322c4 Adds a megafauna_safe_range var to ruin datums and adds a megafauna exclusion zone to ghost spawn ruins on lavaland. (#29120)
* add exclusion check, change area types, update script

* merged the 2 for loops

* removed commented out section

* rename updatepaths script

* var

* undo area and map edits

* add safe var for ruin datums, add megafauna distance check for safe ruins

* removed unneeded file

* rename variable
2025-05-07 02:09:41 +00:00

36 lines
1.5 KiB
Plaintext

/datum/map_template/ruin
//name = "A Chest of Doubloons"
name = null
var/id = null // For blacklisting purposes, all ruins need an id
var/description = "In the middle of a clearing in the rockface, there's a \
chest filled with gold coins with Spanish engravings. How is there a \
wooden container filled with 18th century coinage in the middle of a \
lavawracked hellscape? It is clearly a mystery."
/// Prevents megafauna spawning within a certain range of ruins.
var/megafauna_safe_range = FALSE
var/unpickable = FALSE //If TRUE these won't be placed automatically (can still be forced or loaded with another ruin)
var/always_place = FALSE //Will skip the whole weighting process and just plop this down, ideally you want the ruins of this kind to have no cost.
var/placement_weight = 1 //How often should this ruin appear
var/allow_duplicates = TRUE
var/list/never_spawn_with = null //If this ruin is spawned these will not eg list(/datum/map_template/ruin/base_alternate)
var/prefix = null
var/suffix = null
/datum/map_template/ruin/New()
if(!name && id)
name = id
mappath = prefix + suffix
..(path = mappath)
/// The cost of a ruin is the square root of the product of its dimensions.
/// This encodes the size of the ruin relative to each other without the
/// numbers getting ridiculous.
/datum/map_template/ruin/proc/get_cost()
if(!width || !height)
CRASH("cost of [name]/[suffix] requested before loaded size")
return floor(sqrt(width * height))