Files
Aurora.3/code/controllers/subsystems/cult.dm
Geeves 2b81cdd077 Better UIs (#9355)
Improved the UIs of: Memories/Notes, cult tomes, autolathes, biogenerators, chem heaters, wizard spellbooks, cryopods, soulstones, space heaters.
2020-07-18 00:10:28 +03:00

47 lines
1.4 KiB
Plaintext

#define DEFAULT_MAX_RUNES 25
/var/datum/controller/subsystem/cult/SScult
/datum/controller/subsystem/cult
name = "Cult"
flags = SS_NO_FIRE
var/list/runes_by_name = list()
var/list/rune_list = list()
var/list/teleport_runes = list()
var/list/static/teleport_network = list("Vernuth", "Koglan", "Irgros", "Akon")
var/rune_limit = DEFAULT_MAX_RUNES //in the SS so admins can easily modify it if needed
var/rune_boost = 0
var/tome_data = ""
/datum/controller/subsystem/cult/New()
NEW_SS_GLOBAL(SScult)
/datum/controller/subsystem/cult/Initialize()
. = ..()
for(var/rune in subtypesof(/datum/rune))
var/datum/rune/R = new rune
runes_by_name[R.name] = rune
tome_data += "<div class='rune-block'>"
tome_data += "<b>[capitalize_first_letters(R.name)]</b>: <i>[R.desc]</i><br>"
tome_data += "This rune <b><i>[R.can_be_talisman() ? "can" : "cannot"]</i></b> be turned into a talisman.<br><hr>"
tome_data += "</div>"
/datum/controller/subsystem/cult/proc/add_rune(var/datum/rune/R)
if(check_rune_limit())
return FALSE
else
rune_list += R
return TRUE
/datum/controller/subsystem/cult/proc/check_rune_limit()
return ((length(rune_list) + rune_boost + length(cult.current_antagonists)) >= rune_limit)
/datum/controller/subsystem/cult/proc/remove_rune(var/datum/rune/R)
if(R in rune_list)
rune_list -= R
return TRUE
else
return FALSE