[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:
committed by
Poojawa
parent
6a65ed49d0
commit
c91006c27f
+21
-3
@@ -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)
|
||||
|
||||
@@ -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"
|
||||
Reference in New Issue
Block a user