[MIRROR] Create ERT refactor (#5924)

* Create ERT refactor (#36321)

cl Naksu
admin: ERT creation has been refactored to allow for easier customization and deployment via templates and settings
/cl

* Create ERT refactor
This commit is contained in:
CitadelStationBot
2018-03-12 07:30:03 -05:00
committed by Poojawa
parent 6a65ed49d0
commit c91006c27f
13 changed files with 446 additions and 178 deletions
+21 -3
View File
@@ -312,8 +312,9 @@
/datum/browser/modal/preflikepicker
var/settings = list()
var/icon/preview_icon = null
var/datum/callback/preview_update
/datum/browser/modal/preflikepicker/New(User,Message,Title,Button1="Ok",Button2,Button3,StealFocus = 1, Timeout = FALSE,list/settings,inputtype="checkbox", width = 400, height, slidecolor)
/datum/browser/modal/preflikepicker/New(User,Message,Title,Button1="Ok",Button2,Button3,StealFocus = 1, Timeout = FALSE,list/settings,inputtype="checkbox", width = 600, height, slidecolor)
if (!User)
return
src.settings = settings
@@ -322,12 +323,20 @@
set_content(ShowChoices(User))
/datum/browser/modal/preflikepicker/proc/ShowChoices(mob/user)
if (settings["preview_callback"])
var/datum/callback/callback = settings["preview_callback"]
preview_icon = callback.Invoke(settings)
if (preview_icon)
user << browse_rsc(preview_icon, "previewicon.png")
var/dat = ""
for (var/name in settings["mainsettings"])
var/setting = settings["mainsettings"][name]
if (setting["type"] == "datum")
dat += "<b>[setting["desc"]]:</b> <a href='?src=[REF(src)];setting=[name];task=input;type=datum;path=[setting["path"]]'>[setting["value"]]</a><BR>"
if (setting["subtypesonly"])
dat += "<b>[setting["desc"]]:</b> <a href='?src=[REF(src)];setting=[name];task=input;subtypesonly=1;type=datum;path=[setting["path"]]'>[setting["value"]]</a><BR>"
else
dat += "<b>[setting["desc"]]:</b> <a href='?src=[REF(src)];setting=[name];task=input;type=datum;path=[setting["path"]]'>[setting["value"]]</a><BR>"
else
dat += "<b>[setting["desc"]]:</b> <a href='?src=[REF(src)];setting=[name];task=input;type=[setting["type"]]'>[setting["value"]]</a><BR>"
@@ -354,7 +363,13 @@
var/setting = href_list["setting"]
switch (href_list["type"])
if ("datum")
settings["mainsettings"][setting]["value"] = pick_closest_path(null, make_types_fancy(typesof(text2path(href_list["path"]))))
var/oldval = settings["mainsettings"][setting]["value"]
if (href_list["subtypesonly"])
settings["mainsettings"][setting]["value"] = pick_closest_path(null, make_types_fancy(subtypesof(text2path(href_list["path"]))))
else
settings["mainsettings"][setting]["value"] = pick_closest_path(null, make_types_fancy(typesof(text2path(href_list["path"]))))
if (isnull(settings["mainsettings"][setting]["value"]))
settings["mainsettings"][setting]["value"] = oldval
if ("string")
settings["mainsettings"][setting]["value"] = stripped_input(user, "Enter new value for [settings["mainsettings"][setting]["desc"]]", "Enter new value for [settings["mainsettings"][setting]["desc"]]")
if ("number")
@@ -363,6 +378,9 @@
settings["mainsettings"][setting]["value"] = input(user, "[settings["mainsettings"][setting]["desc"]]?") in list("Yes","No")
if ("ckey")
settings["mainsettings"][setting]["value"] = input(user, "[settings["mainsettings"][setting]["desc"]]?") in list("none") + GLOB.directory
if (settings["mainsettings"][setting]["callback"])
var/datum/callback/callback = settings["mainsettings"][setting]["callback"]
settings = callback.Invoke(settings)
if (href_list["button"])
var/button = text2num(href_list["button"])
if (button <= 3 && button >= 1)
+55
View File
@@ -0,0 +1,55 @@
/datum/ert
var/mobtype = /mob/living/carbon/human
var/team = /datum/team/ert
var/opendoors = TRUE
var/leader_role = /datum/antagonist/ert/commander
var/enforce_human = TRUE
var/roles = list(/datum/antagonist/ert/security, /datum/antagonist/ert/medic, /datum/antagonist/ert/engineer) //List of possible roles to be assigned to ERT members.
var/rename_team
var/code
var/mission = "Assist the station."
var/teamsize = 5
var/polldesc
/datum/ert/New()
if (!polldesc)
polldesc = "a Code [code] Nanotrasen Emergency Response Team"
/datum/ert/blue
opendoors = FALSE
code = "Blue"
/datum/ert/amber
code = "Amber"
/datum/ert/red
leader_role = /datum/antagonist/ert/commander/red
roles = list(/datum/antagonist/ert/security/red, /datum/antagonist/ert/medic/red, /datum/antagonist/ert/engineer/red)
code = "Red"
/datum/ert/deathsquad
roles = list(/datum/antagonist/ert/deathsquad)
leader_role = /datum/antagonist/ert/deathsquad/leader
rename_team = "Deathsquad"
code = "Delta"
mission = "Leave no witnesses."
polldesc = "an elite Nanotrasen Strike Team"
/datum/ert/centcom_official
code = "Green"
teamsize = 1
opendoors = FALSE
leader_role = /datum/antagonist/official
roles = list(/datum/antagonist/official)
rename_team = "CentCom Officials"
polldesc = "a CentCom Official"
/datum/ert/centcom_official/New()
mission = "Conduct a routine performance review of [station_name()] and its Captain."
/datum/ert/inquisition
roles = list(/datum/antagonist/ert/chaplain/inquisitor, /datum/antagonist/ert/security/inquisitor, /datum/antagonist/ert/medic/inquisitor)
leader_role = /datum/antagonist/ert/commander/inquisitor
rename_team = "Inquisition"
mission = "Destroy any traces of paranormal activity aboard the station."
polldesc = "a Nanotrasen paranormal response team"