mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-25 06:00:16 +01:00
[MIRROR] Minor ERT refactor, introduces a few ERT admin options (#3339)
* Minor ERT refactor, introduces a few ERT admin options (#56345) * Minor ERT refactor, introduces a few ERT admin options * Proper Modularisation Protocol * Update preferences.dm Co-authored-by: Ryll Ryll <3589655+Ryll-Ryll@users.noreply.github.com> Co-authored-by: Gandalf2k15 <jzo123@hotmail.com>
This commit is contained in:
co-authored by
Ryll Ryll
Gandalf2k15
parent
7522def83c
commit
39121c53ce
@@ -390,7 +390,7 @@
|
||||
if ("color")
|
||||
settings["mainsettings"][setting]["value"] = input(user, "Enter new value for [settings["mainsettings"][setting]["desc"]]", "Enter new value for [settings["mainsettings"][setting]["desc"]]", settings["mainsettings"][setting]["value"]) as color
|
||||
if ("boolean")
|
||||
settings["mainsettings"][setting]["value"] = input(user, "[settings["mainsettings"][setting]["desc"]]?") in list("Yes","No")
|
||||
settings["mainsettings"][setting]["value"] = (settings["mainsettings"][setting]["value"] == "Yes") ? "No" : "Yes"
|
||||
if ("ckey")
|
||||
settings["mainsettings"][setting]["value"] = input(user, "[settings["mainsettings"][setting]["desc"]]?") in list("none") + GLOB.directory
|
||||
if (settings["mainsettings"][setting]["callback"])
|
||||
|
||||
+16
-2
@@ -10,6 +10,12 @@
|
||||
var/mission = "Assist the station."
|
||||
var/teamsize = 5
|
||||
var/polldesc
|
||||
/// If TRUE, gives the team members "[role] [random last name]" style names
|
||||
var/random_names = TRUE
|
||||
/// If TRUE, the admin who created the response team will be spawned in the briefing room in their preferred briefing outfit (assuming they're a ghost)
|
||||
var/spawn_admin = FALSE
|
||||
/// If TRUE, we try and pick one of the most experienced players who volunteered to fill the leader slot
|
||||
var/leader_experience = TRUE
|
||||
|
||||
/datum/ert/New()
|
||||
if (!polldesc)
|
||||
@@ -39,10 +45,12 @@
|
||||
code = "Green"
|
||||
teamsize = 1
|
||||
opendoors = FALSE
|
||||
leader_role = /datum/antagonist/official
|
||||
roles = list(/datum/antagonist/official)
|
||||
leader_role = /datum/antagonist/ert/official
|
||||
roles = list(/datum/antagonist/ert/official)
|
||||
rename_team = "CentCom Officials"
|
||||
polldesc = "a CentCom Official"
|
||||
random_names = FALSE
|
||||
leader_experience = FALSE
|
||||
|
||||
/datum/ert/centcom_official/New()
|
||||
mission = "Conduct a routine performance review of [station_name()] and its Captain."
|
||||
@@ -71,6 +79,12 @@
|
||||
rename_team = "Horde of Interns"
|
||||
mission = "Assist in conflict resolution."
|
||||
polldesc = "an unpaid internship opportunity with Nanotrasen"
|
||||
random_names = FALSE
|
||||
|
||||
/datum/ert/intern/unarmed
|
||||
roles = list(/datum/antagonist/ert/intern/unarmed)
|
||||
leader_role = /datum/antagonist/ert/intern/leader/unarmed
|
||||
rename_team = "Unarmed Horde of Interns"
|
||||
|
||||
/datum/ert/erp
|
||||
roles = list(/datum/antagonist/ert/security/party, /datum/antagonist/ert/clown/party, /datum/antagonist/ert/engineer/party, /datum/antagonist/ert/janitor/party)
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
/// If we spawn an ERT with the "choose experienced leader" option, select the leader from the top X playtimes
|
||||
#define ERT_EXPERIENCED_LEADER_CHOOSE_TOP 3
|
||||
|
||||
/client/proc/one_click_antag()
|
||||
set name = "Create Antagonist"
|
||||
set desc = "Auto-create an antagonist of your choice"
|
||||
@@ -252,6 +255,9 @@
|
||||
.["mainsettings"]["mission"]["value"] = newtemplate.mission
|
||||
.["mainsettings"]["polldesc"]["value"] = newtemplate.polldesc
|
||||
.["mainsettings"]["open_armory"]["value"] = newtemplate.opendoors ? "Yes" : "No"
|
||||
.["mainsettings"]["leader_experience"]["value"] = newtemplate.leader_experience ? "Yes" : "No"
|
||||
.["mainsettings"]["random_names"]["value"] = newtemplate.random_names ? "Yes" : "No"
|
||||
.["mainsettings"]["spawn_admin"]["value"] = newtemplate.spawn_admin ? "Yes" : "No"
|
||||
|
||||
|
||||
/datum/admins/proc/equipAntagOnDummy(mob/living/carbon/human/dummy/mannequin, datum/antagonist/antag)
|
||||
@@ -260,8 +266,6 @@
|
||||
if (ispath(antag, /datum/antagonist/ert))
|
||||
var/datum/antagonist/ert/ert = antag
|
||||
mannequin.equipOutfit(initial(ert.outfit), TRUE)
|
||||
else if (ispath(antag, /datum/antagonist/official))
|
||||
mannequin.equipOutfit(/datum/outfit/centcom/centcom_official, TRUE)
|
||||
|
||||
/datum/admins/proc/makeERTPreviewIcon(list/settings)
|
||||
// Set up the dummy for its photoshoot
|
||||
@@ -319,6 +323,9 @@
|
||||
"polldesc" = list("desc" = "Ghost poll description", "type" = "string", "value" = ertemplate.polldesc),
|
||||
"enforce_human" = list("desc" = "Enforce human authority", "type" = "boolean", "value" = "[(CONFIG_GET(flag/enforce_human_authority) ? "Yes" : "No")]"),
|
||||
"open_armory" = list("desc" = "Open armory doors", "type" = "boolean", "value" = "[(ertemplate.opendoors ? "Yes" : "No")]"),
|
||||
"leader_experience" = list("desc" = "Pick an experienced leader", "type" = "boolean", "value" = "[(ertemplate.leader_experience ? "Yes" : "No")]"),
|
||||
"random_names" = list("desc" = "Randomize names", "type" = "boolean", "value" = "[(ertemplate.random_names ? "Yes" : "No")]"),
|
||||
"spawn_admin" = list("desc" = "Spawn yourself as briefing officer", "type" = "boolean", "value" = "[(ertemplate.spawn_admin ? "Yes" : "No")]")
|
||||
)
|
||||
)
|
||||
|
||||
@@ -340,77 +347,110 @@
|
||||
ertemplate.teamsize = prefs["teamsize"]["value"]
|
||||
ertemplate.mission = prefs["mission"]["value"]
|
||||
ertemplate.polldesc = prefs["polldesc"]["value"]
|
||||
ertemplate.enforce_human = prefs["enforce_human"]["value"] == "Yes" ? TRUE : FALSE
|
||||
ertemplate.opendoors = prefs["open_armory"]["value"] == "Yes" ? TRUE : FALSE
|
||||
ertemplate.enforce_human = prefs["enforce_human"]["value"] == "Yes" // these next 5 are effectively toggles
|
||||
ertemplate.opendoors = prefs["open_armory"]["value"] == "Yes"
|
||||
ertemplate.leader_experience = prefs["leader_experience"]["value"] == "Yes"
|
||||
ertemplate.random_names = prefs["random_names"]["value"] == "Yes"
|
||||
ertemplate.spawn_admin = prefs["spawn_admin"]["value"] == "Yes"
|
||||
|
||||
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for [ertemplate.polldesc]?", "deathsquad", null)
|
||||
var/list/spawnpoints = GLOB.emergencyresponseteamspawn
|
||||
var/index = 0
|
||||
|
||||
if(ertemplate.spawn_admin)
|
||||
if(isobserver(usr))
|
||||
var/mob/living/carbon/human/admin_officer = new (spawnpoints[1])
|
||||
var/chosen_outfit = usr.client?.prefs?.brief_outfit
|
||||
usr.client.prefs.copy_to(admin_officer)
|
||||
admin_officer.equipOutfit(chosen_outfit)
|
||||
admin_officer.key = usr.key
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>Could not spawn you in as briefing officer as you are not a ghost!</spawn>")
|
||||
|
||||
var/list/mob/dead/observer/candidates = pollGhostCandidates("Do you wish to be considered for [ertemplate.polldesc]?", "deathsquad")
|
||||
var/teamSpawned = FALSE
|
||||
|
||||
if(candidates.len > 0)
|
||||
//Pick the (un)lucky players
|
||||
var/numagents = min(ertemplate.teamsize,candidates.len)
|
||||
|
||||
//Create team
|
||||
var/datum/team/ert/ert_team = new ertemplate.team
|
||||
if(ertemplate.rename_team)
|
||||
ert_team.name = ertemplate.rename_team
|
||||
|
||||
//Asign team objective
|
||||
var/datum/objective/missionobj = new
|
||||
missionobj.team = ert_team
|
||||
missionobj.explanation_text = ertemplate.mission
|
||||
missionobj.completed = TRUE
|
||||
ert_team.objectives += missionobj
|
||||
ert_team.mission = missionobj
|
||||
|
||||
var/list/spawnpoints = GLOB.emergencyresponseteamspawn
|
||||
var/index = 0
|
||||
while(numagents && candidates.len)
|
||||
var/spawnloc = spawnpoints[index+1]
|
||||
//loop through spawnpoints one at a time
|
||||
index = (index + 1) % spawnpoints.len
|
||||
var/mob/dead/observer/chosen_candidate = pick(candidates)
|
||||
candidates -= chosen_candidate
|
||||
if(!chosen_candidate.key)
|
||||
continue
|
||||
|
||||
//Spawn the body
|
||||
var/mob/living/carbon/human/ERTOperative = new ertemplate.mobtype(spawnloc)
|
||||
chosen_candidate.client.prefs.copy_to(ERTOperative)
|
||||
ERTOperative.key = chosen_candidate.key
|
||||
|
||||
if(ertemplate.enforce_human || !ERTOperative.dna.species.changesource_flags & ERT_SPAWN) // Don't want any exploding plasmemes
|
||||
ERTOperative.set_species(/datum/species/human)
|
||||
|
||||
//Give antag datum
|
||||
var/datum/antagonist/ert/ert_antag
|
||||
|
||||
if(numagents == 1)
|
||||
ert_antag = new ertemplate.leader_role
|
||||
else
|
||||
ert_antag = ertemplate.roles[WRAP(numagents,1,length(ertemplate.roles) + 1)]
|
||||
ert_antag = new ert_antag
|
||||
|
||||
ERTOperative.mind.add_antag_datum(ert_antag,ert_team)
|
||||
ERTOperative.mind.assigned_role = ert_antag.name
|
||||
|
||||
//Logging and cleanup
|
||||
log_game("[key_name(ERTOperative)] has been selected as an [ert_antag.name]")
|
||||
numagents--
|
||||
teamSpawned++
|
||||
|
||||
if (teamSpawned)
|
||||
message_admins("[ertemplate.polldesc] has spawned with the mission: [ertemplate.mission]")
|
||||
|
||||
//Open the Armory doors
|
||||
if(ertemplate.opendoors)
|
||||
for(var/obj/machinery/door/poddoor/ert/door in GLOB.airlocks)
|
||||
door.open()
|
||||
CHECK_TICK
|
||||
return TRUE
|
||||
else
|
||||
if(candidates.len == 0)
|
||||
return FALSE
|
||||
|
||||
//Pick the (un)lucky players
|
||||
var/numagents = min(ertemplate.teamsize,candidates.len)
|
||||
|
||||
//Create team
|
||||
var/datum/team/ert/ert_team = new ertemplate.team ()
|
||||
if(ertemplate.rename_team)
|
||||
ert_team.name = ertemplate.rename_team
|
||||
|
||||
//Assign team objective
|
||||
var/datum/objective/missionobj = new ()
|
||||
missionobj.team = ert_team
|
||||
missionobj.explanation_text = ertemplate.mission
|
||||
missionobj.completed = TRUE
|
||||
ert_team.objectives += missionobj
|
||||
ert_team.mission = missionobj
|
||||
|
||||
var/mob/dead/observer/earmarked_leader
|
||||
var/leader_spawned = FALSE // just in case the earmarked leader disconnects or becomes unavailable, we can try giving leader to the last guy to get chosen
|
||||
|
||||
if(ertemplate.leader_experience)
|
||||
var/list/candidate_living_exps = list()
|
||||
for(var/i in candidates)
|
||||
var/mob/dead/observer/potential_leader = i
|
||||
candidate_living_exps[potential_leader] = potential_leader.client?.get_exp_living(TRUE)
|
||||
|
||||
candidate_living_exps = sortList(candidate_living_exps, cmp=/proc/cmp_numeric_dsc)
|
||||
if(candidate_living_exps.len > ERT_EXPERIENCED_LEADER_CHOOSE_TOP)
|
||||
candidate_living_exps = candidate_living_exps.Cut(ERT_EXPERIENCED_LEADER_CHOOSE_TOP+1) // pick from the top ERT_EXPERIENCED_LEADER_CHOOSE_TOP contenders in playtime
|
||||
earmarked_leader = pick(candidate_living_exps)
|
||||
else
|
||||
earmarked_leader = pick(candidates)
|
||||
|
||||
while(numagents && candidates.len)
|
||||
var/spawnloc = spawnpoints[index+1]
|
||||
//loop through spawnpoints one at a time
|
||||
index = (index + 1) % spawnpoints.len
|
||||
var/mob/dead/observer/chosen_candidate = earmarked_leader || pick(candidates) // this way we make sure that our leader gets chosen
|
||||
candidates -= chosen_candidate
|
||||
if(!chosen_candidate?.key)
|
||||
continue
|
||||
|
||||
//Spawn the body
|
||||
var/mob/living/carbon/human/ert_operative = new ertemplate.mobtype(spawnloc)
|
||||
chosen_candidate.client.prefs.copy_to(ert_operative)
|
||||
ert_operative.key = chosen_candidate.key
|
||||
|
||||
if(ertemplate.enforce_human || !ert_operative.dna.species.changesource_flags & ERT_SPAWN) // Don't want any exploding plasmemes
|
||||
ert_operative.set_species(/datum/species/human)
|
||||
|
||||
//Give antag datum
|
||||
var/datum/antagonist/ert/ert_antag
|
||||
|
||||
if((chosen_candidate == earmarked_leader) || (numagents == 1 && !leader_spawned))
|
||||
ert_antag = new ertemplate.leader_role ()
|
||||
earmarked_leader = null
|
||||
leader_spawned = TRUE
|
||||
else
|
||||
ert_antag = ertemplate.roles[WRAP(numagents,1,length(ertemplate.roles) + 1)]
|
||||
ert_antag = new ert_antag ()
|
||||
ert_antag.random_names = ertemplate.random_names
|
||||
|
||||
ert_operative.mind.add_antag_datum(ert_antag,ert_team)
|
||||
ert_operative.mind.assigned_role = ert_antag.name
|
||||
|
||||
//Logging and cleanup
|
||||
log_game("[key_name(ert_operative)] has been selected as an [ert_antag.name]")
|
||||
numagents--
|
||||
teamSpawned++
|
||||
|
||||
if (teamSpawned)
|
||||
message_admins("[ertemplate.polldesc] has spawned with the mission: [ertemplate.mission]")
|
||||
|
||||
//Open the Armory doors
|
||||
if(ertemplate.opendoors)
|
||||
for(var/obj/machinery/door/poddoor/ert/door in GLOB.airlocks)
|
||||
door.open()
|
||||
CHECK_TICK
|
||||
return TRUE
|
||||
|
||||
return
|
||||
|
||||
//Abductors
|
||||
@@ -421,3 +461,5 @@
|
||||
/datum/admins/proc/makeRevenant()
|
||||
new /datum/round_event/ghost_role/revenant(TRUE, TRUE)
|
||||
return 1
|
||||
|
||||
#undef ERT_EXPERIENCED_LEADER_CHOOSE_TOP
|
||||
|
||||
@@ -38,6 +38,33 @@
|
||||
/datum/antagonist/ert/proc/update_name()
|
||||
owner.current.fully_replace_character_name(owner.current.real_name,"[role] [pick(name_source)]")
|
||||
|
||||
/datum/antagonist/ert/official
|
||||
name = "CentCom Official"
|
||||
show_name_in_check_antagonists = TRUE
|
||||
var/datum/objective/mission
|
||||
role = "Inspector"
|
||||
random_names = FALSE
|
||||
outfit = /datum/outfit/centcom/centcom_official
|
||||
|
||||
/datum/antagonist/ert/official/greet()
|
||||
to_chat(owner, "<B><font size=3 color=red>You are a CentCom Official.</font></B>")
|
||||
if (ert_team)
|
||||
to_chat(owner, "Central Command is sending you to [station_name()] with the task: [ert_team.mission.explanation_text]")
|
||||
else
|
||||
to_chat(owner, "Central Command is sending you to [station_name()] with the task: [mission.explanation_text]")
|
||||
|
||||
/datum/antagonist/ert/official/forge_objectives()
|
||||
if (ert_team)
|
||||
return ..()
|
||||
if(mission)
|
||||
return
|
||||
var/datum/objective/missionobj = new ()
|
||||
missionobj.owner = owner
|
||||
missionobj.explanation_text = "Conduct a routine performance review of [station_name()] and its Captain."
|
||||
missionobj.completed = TRUE
|
||||
mission = missionobj
|
||||
objectives |= mission
|
||||
|
||||
/datum/antagonist/ert/security // kinda handled by the base template but here for completion
|
||||
|
||||
/datum/antagonist/ert/security/red
|
||||
@@ -128,8 +155,15 @@
|
||||
/datum/antagonist/ert/intern/leader
|
||||
name = "CentCom Head Intern"
|
||||
outfit = /datum/outfit/centcom/centcom_intern/leader
|
||||
random_names = FALSE
|
||||
role = "Head Intern"
|
||||
|
||||
/datum/antagonist/ert/intern/unarmed
|
||||
outfit = /datum/outfit/centcom/centcom_intern/unarmed
|
||||
|
||||
/datum/antagonist/ert/intern/leader/unarmed
|
||||
outfit = /datum/outfit/centcom/centcom_intern/leader/unarmed
|
||||
|
||||
/datum/antagonist/ert/clown
|
||||
role = "Clown"
|
||||
outfit = /datum/outfit/centcom/ert/clown
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
/datum/antagonist/official
|
||||
name = "CentCom Official"
|
||||
show_name_in_check_antagonists = TRUE
|
||||
show_in_antagpanel = FALSE
|
||||
can_elimination_hijack = ELIMINATION_PREVENT
|
||||
var/datum/objective/mission
|
||||
var/datum/team/ert/ert_team
|
||||
show_to_ghosts = TRUE
|
||||
|
||||
/datum/antagonist/official/greet()
|
||||
to_chat(owner, "<B><font size=3 color=red>You are a CentCom Official.</font></B>")
|
||||
if (ert_team)
|
||||
to_chat(owner, "Central Command is sending you to [station_name()] with the task: [ert_team.mission.explanation_text]")
|
||||
else
|
||||
to_chat(owner, "Central Command is sending you to [station_name()] with the task: [mission.explanation_text]")
|
||||
|
||||
/datum/antagonist/official/proc/equip_official()
|
||||
var/mob/living/carbon/human/H = owner.current
|
||||
if(!istype(H))
|
||||
return
|
||||
H.equipOutfit(/datum/outfit/centcom/centcom_official)
|
||||
|
||||
if(CONFIG_GET(flag/enforce_human_authority))
|
||||
H.set_species(/datum/species/human)
|
||||
|
||||
/datum/antagonist/official/create_team(datum/team/new_team)
|
||||
if(istype(new_team))
|
||||
ert_team = new_team
|
||||
|
||||
/datum/antagonist/official/proc/forge_objectives()
|
||||
if (ert_team)
|
||||
objectives |= ert_team.objectives
|
||||
else if (!mission)
|
||||
var/datum/objective/missionobj = new
|
||||
missionobj.owner = owner
|
||||
missionobj.explanation_text = "Conduct a routine performance review of [station_name()] and its Captain."
|
||||
missionobj.completed = 1
|
||||
mission = missionobj
|
||||
objectives |= mission
|
||||
|
||||
|
||||
/datum/antagonist/official/on_gain()
|
||||
forge_objectives()
|
||||
. = ..()
|
||||
equip_official()
|
||||
@@ -18,6 +18,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/lastchangelog = "" //Saved changlog filesize to detect if there was a change
|
||||
var/ooccolor = "#c43b23"
|
||||
var/asaycolor = "#ff4500" //This won't change the color for current admins, only incoming ones.
|
||||
/// If we spawn an ERT as an admin and choose to spawn as the briefing officer, we'll be given this outfit
|
||||
var/brief_outfit = /datum/outfit/centcom/commander
|
||||
var/enable_tips = TRUE
|
||||
var/tip_delay = 500 //tip delay in milliseconds
|
||||
|
||||
@@ -735,6 +737,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<b>Hide Radio Messages:</b> <a href = '?_src_=prefs;preference=toggle_radio_chatter'>[(chat_toggles & CHAT_RADIO)?"Shown":"Hidden"]</a><br>"
|
||||
dat += "<b>Hide Prayers:</b> <a href = '?_src_=prefs;preference=toggle_prayers'>[(chat_toggles & CHAT_PRAYER)?"Shown":"Hidden"]</a><br>"
|
||||
dat += "<b>Ignore Being Summoned as Cult Ghost:</b> <a href = '?_src_=prefs;preference=toggle_ignore_cult_ghost'>[(toggles & ADMIN_IGNORE_CULT_GHOST)?"Don't Allow Being Summoned":"Allow Being Summoned"]</a><br>"
|
||||
dat += "<b>Briefing Officer Outfit:</b> <a href = '?_src_=prefs;preference=briefoutfit;task=input'>[brief_outfit]</a><br>"
|
||||
if(CONFIG_GET(flag/allow_admin_asaycolor))
|
||||
dat += "<br>"
|
||||
dat += "<b>ASAY Color:</b> <span style='border: 1px solid #161616; background-color: [asaycolor ? asaycolor : "#FF4500"];'> </span> <a href='?_src_=prefs;preference=asaycolor;task=input'>Change</a><br>"
|
||||
@@ -1515,6 +1518,16 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if(new_asaycolor)
|
||||
asaycolor = sanitize_ooccolor(new_asaycolor)
|
||||
|
||||
if("briefoutfit")
|
||||
var/list/valid_paths = list()
|
||||
for(var/datum/outfit/iter_outfit in subtypesof(/datum/outfit))
|
||||
if(initial(iter_outfit.can_be_admin_equipped))
|
||||
valid_paths[initial(iter_outfit.name)] = path
|
||||
var/new_outfit = input(user, "Choose your briefing officer outfit:", "Game Preference") as null|anything in valid_paths
|
||||
new_outfit = valid_paths[new_outfit]
|
||||
if(new_outfit)
|
||||
brief_outfit = new_outfit
|
||||
|
||||
if("bag")
|
||||
var/new_backpack = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in GLOB.backpacklist
|
||||
if(new_backpack)
|
||||
|
||||
@@ -161,6 +161,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
|
||||
//general preferences
|
||||
READ_FILE(S["asaycolor"], asaycolor)
|
||||
READ_FILE(S["brief_outfit"], brief_outfit)
|
||||
READ_FILE(S["ooccolor"], ooccolor)
|
||||
READ_FILE(S["lastchangelog"], lastchangelog)
|
||||
READ_FILE(S["UI_style"], UI_style)
|
||||
@@ -251,6 +252,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
ghost_others = sanitize_inlist(ghost_others, GLOB.ghost_others_options, GHOST_OTHERS_DEFAULT_OPTION)
|
||||
menuoptions = SANITIZE_LIST(menuoptions)
|
||||
be_special = SANITIZE_LIST(be_special)
|
||||
brief_outfit = sanitize_inlist(brief_outfit, subtypesof(/datum/outfit), null)
|
||||
pda_style = sanitize_inlist(pda_style, GLOB.pda_styles, initial(pda_style))
|
||||
pda_color = sanitize_hexcolor(pda_color, 6, 1, initial(pda_color))
|
||||
key_bindings = sanitize_keybindings(key_bindings)
|
||||
@@ -287,6 +289,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
|
||||
//general preferences
|
||||
WRITE_FILE(S["asaycolor"], asaycolor)
|
||||
WRITE_FILE(S["brief_outfit"], brief_outfit)
|
||||
WRITE_FILE(S["ooccolor"], ooccolor)
|
||||
WRITE_FILE(S["lastchangelog"], lastchangelog)
|
||||
WRITE_FILE(S["UI_style"], UI_style)
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
/* //SKYRAT EDIT: Made modular. in ert_skyrat.dm
|
||||
|
||||
/datum/outfit/centcom/ert
|
||||
name = "ERT Common"
|
||||
|
||||
@@ -348,6 +346,13 @@
|
||||
W.registered_name = H.real_name
|
||||
W.update_label()
|
||||
|
||||
/datum/outfit/centcom/centcom_intern/unarmed
|
||||
name = "CentCom Intern (Unarmed)"
|
||||
belt = null
|
||||
l_hand = null
|
||||
l_pocket = null
|
||||
r_pocket = null
|
||||
|
||||
/datum/outfit/centcom/centcom_intern/leader
|
||||
name = "CentCom Head Intern"
|
||||
belt = /obj/item/melee/baton/loaded
|
||||
@@ -356,6 +361,12 @@
|
||||
l_hand = /obj/item/megaphone
|
||||
head = /obj/item/clothing/head/intern
|
||||
|
||||
/datum/outfit/centcom/centcom_intern/leader/unarmed // i'll be nice and let the leader keep their baton and vest
|
||||
name = "CentCom Head Intern (Unarmed)"
|
||||
suit_store = null
|
||||
l_pocket = null
|
||||
r_pocket = null
|
||||
|
||||
/datum/outfit/centcom/ert/janitor/party
|
||||
name = "ERP Cleaning Service"
|
||||
|
||||
@@ -429,5 +440,3 @@
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/storage/box/fireworks=3,\
|
||||
/obj/item/food/cake/birthday=1)
|
||||
|
||||
*/ //SKYRAT EDIT END
|
||||
|
||||
@@ -1,429 +0,0 @@
|
||||
/datum/outfit/centcom/ert
|
||||
name = "ERT Common"
|
||||
|
||||
mask = /obj/item/clothing/mask/gas/sechailer
|
||||
uniform = /obj/item/clothing/under/rank/centcom/officer
|
||||
shoes = /obj/item/clothing/shoes/combat/swat
|
||||
gloves = /obj/item/clothing/gloves/combat
|
||||
ears = /obj/item/radio/headset/headset_cent/alt
|
||||
|
||||
/datum/outfit/centcom/ert/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/radio/R = H.ears
|
||||
R.set_frequency(FREQ_CENTCOM)
|
||||
R.freqlock = TRUE
|
||||
|
||||
var/obj/item/card/id/W = H.wear_id
|
||||
if(W)
|
||||
W.registered_name = H.real_name
|
||||
W.update_label()
|
||||
..()
|
||||
|
||||
/datum/outfit/centcom/ert/commander
|
||||
name = "ERT Commander"
|
||||
|
||||
id = /obj/item/card/id/ert
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert
|
||||
suit_store = /obj/item/gun/energy/e_gun
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
back = /obj/item/storage/backpack/ert
|
||||
belt = /obj/item/storage/belt/security/full
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/melee/baton/loaded=1)
|
||||
l_pocket = /obj/item/switchblade
|
||||
|
||||
/datum/outfit/centcom/ert/commander/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
var/obj/item/radio/R = H.ears
|
||||
R.keyslot = new /obj/item/encryptionkey/heads/captain
|
||||
R.recalculateChannels()
|
||||
|
||||
/datum/outfit/centcom/ert/commander/alert
|
||||
name = "ERT Commander - High Alert"
|
||||
|
||||
mask = /obj/item/clothing/mask/gas/sechailer/swat
|
||||
glasses = /obj/item/clothing/glasses/thermal/eyepatch
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/melee/baton/loaded=1,\
|
||||
/obj/item/gun/energy/pulse/pistol/loyalpin=1)
|
||||
l_pocket = /obj/item/melee/transforming/energy/sword/saber
|
||||
|
||||
/datum/outfit/centcom/ert/security
|
||||
name = "ERT Security"
|
||||
|
||||
id = /obj/item/card/id/ert/security
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/sec
|
||||
suit_store = /obj/item/gun/energy/e_gun/stun
|
||||
glasses = /obj/item/clothing/glasses/hud/security/sunglasses
|
||||
gloves = /obj/item/clothing/gloves/tackler/combat/insulated
|
||||
back = /obj/item/storage/backpack/ert/security
|
||||
belt = /obj/item/storage/belt/security/full
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/storage/box/handcuffs=1,\
|
||||
/obj/item/melee/baton/loaded=1)
|
||||
|
||||
/datum/outfit/centcom/ert/security/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/radio/R = H.ears
|
||||
R.keyslot = new /obj/item/encryptionkey/heads/hos
|
||||
R.recalculateChannels()
|
||||
|
||||
/datum/outfit/centcom/ert/security/alert
|
||||
name = "ERT Security - High Alert"
|
||||
|
||||
mask = /obj/item/clothing/mask/gas/sechailer/swat
|
||||
belt = /obj/item/gun/energy/pulse/carbine/loyalpin
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/storage/box/handcuffs=1,\
|
||||
/obj/item/melee/baton/loaded=1,\
|
||||
/obj/item/storage/belt/security/full=1)
|
||||
|
||||
|
||||
/datum/outfit/centcom/ert/medic
|
||||
name = "ERT Medic"
|
||||
|
||||
id = /obj/item/card/id/ert/medical
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/med
|
||||
suit_store = /obj/item/gun/energy/e_gun
|
||||
glasses = /obj/item/clothing/glasses/hud/health
|
||||
back = /obj/item/storage/backpack/ert/medical
|
||||
belt = /obj/item/storage/belt/medical
|
||||
l_hand = /obj/item/storage/firstaid/regular
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/melee/baton/loaded=1,\
|
||||
/obj/item/reagent_containers/hypospray/combat=1,\
|
||||
/obj/item/gun/medbeam=1)
|
||||
|
||||
/datum/outfit/centcom/ert/medic/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/radio/R = H.ears
|
||||
R.keyslot = new /obj/item/encryptionkey/heads/cmo
|
||||
R.recalculateChannels()
|
||||
|
||||
/datum/outfit/centcom/ert/medic/alert
|
||||
name = "ERT Medic - High Alert"
|
||||
|
||||
mask = /obj/item/clothing/mask/gas/sechailer/swat
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/melee/baton/loaded=1,\
|
||||
/obj/item/gun/energy/pulse/pistol/loyalpin=1,\
|
||||
/obj/item/reagent_containers/hypospray/combat/nanites=1,\
|
||||
/obj/item/gun/medbeam=1)
|
||||
|
||||
/datum/outfit/centcom/ert/engineer
|
||||
name = "ERT Engineer"
|
||||
|
||||
id = /obj/item/card/id/ert/engineer
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/engi
|
||||
suit_store = /obj/item/gun/energy/e_gun
|
||||
glasses = /obj/item/clothing/glasses/meson/engine
|
||||
back = /obj/item/storage/backpack/ert/engineer
|
||||
belt = /obj/item/storage/belt/utility/full/powertools
|
||||
l_pocket = /obj/item/rcd_ammo/large
|
||||
l_hand = /obj/item/storage/firstaid/regular
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/melee/baton/loaded=1,\
|
||||
/obj/item/construction/rcd/loaded/upgraded=1,\
|
||||
/obj/item/pipe_dispenser=1)
|
||||
|
||||
|
||||
/datum/outfit/centcom/ert/engineer/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/radio/R = H.ears
|
||||
R.keyslot = new /obj/item/encryptionkey/heads/ce
|
||||
R.recalculateChannels()
|
||||
|
||||
/datum/outfit/centcom/ert/engineer/alert
|
||||
name = "ERT Engineer - High Alert"
|
||||
|
||||
mask = /obj/item/clothing/mask/gas/sechailer/swat
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/melee/baton/loaded=1,\
|
||||
/obj/item/gun/energy/pulse/pistol/loyalpin=1,\
|
||||
/obj/item/construction/rcd/combat=1,\
|
||||
/obj/item/pipe_dispenser=1)
|
||||
|
||||
|
||||
/datum/outfit/centcom/centcom_official
|
||||
name = "CentCom Official"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/centcom/officer
|
||||
shoes = /obj/item/clothing/shoes/sneakers/black
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
ears = /obj/item/radio/headset/headset_cent
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
belt = /obj/item/gun/energy/e_gun
|
||||
l_pocket = /obj/item/pen
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
r_pocket = /obj/item/pda/heads
|
||||
l_hand = /obj/item/clipboard
|
||||
id = /obj/item/card/id/centcom
|
||||
backpack_contents = list(/obj/item/stamp/centcom=1)
|
||||
|
||||
/datum/outfit/centcom/centcom_official/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/pda/heads/pda = H.r_store
|
||||
pda.owner = H.real_name
|
||||
pda.ownjob = "CentCom Official"
|
||||
pda.update_label()
|
||||
|
||||
var/obj/item/card/id/W = H.wear_id
|
||||
W.access = get_centcom_access("CentCom Official")
|
||||
W.access += ACCESS_WEAPONS
|
||||
W.assignment = "CentCom Official"
|
||||
W.registered_name = H.real_name
|
||||
W.update_label()
|
||||
..()
|
||||
|
||||
/datum/outfit/centcom/ert/commander/inquisitor
|
||||
name = "Inquisition Commander"
|
||||
l_hand = /obj/item/nullrod/scythe/talking/chainsword
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1)
|
||||
|
||||
/datum/outfit/centcom/ert/security/inquisitor
|
||||
name = "Inquisition Security"
|
||||
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor
|
||||
suit_store = /obj/item/gun/energy/e_gun/stun
|
||||
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,
|
||||
/obj/item/storage/box/handcuffs=1,
|
||||
/obj/item/melee/baton/loaded=1,
|
||||
/obj/item/construction/rcd/loaded=1)
|
||||
|
||||
/datum/outfit/centcom/ert/medic/inquisitor
|
||||
name = "Inquisition Medic"
|
||||
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor
|
||||
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,
|
||||
/obj/item/melee/baton/loaded=1,
|
||||
/obj/item/reagent_containers/hypospray/combat=1,
|
||||
/obj/item/reagent_containers/hypospray/combat/heresypurge=1,
|
||||
/obj/item/gun/medbeam=1)
|
||||
|
||||
/datum/outfit/centcom/ert/chaplain
|
||||
name = "ERT Chaplain"
|
||||
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor // Chap role always gets this suit
|
||||
suit_store = /obj/item/gun/energy/e_gun
|
||||
id = /obj/item/card/id/ert/chaplain
|
||||
glasses = /obj/item/clothing/glasses/hud/health
|
||||
back = /obj/item/storage/backpack/cultpack
|
||||
belt = /obj/item/storage/belt/soulstone
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,
|
||||
/obj/item/nullrod=1,
|
||||
)
|
||||
|
||||
/datum/outfit/centcom/ert/chaplain/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
var/obj/item/radio/R = H.ears
|
||||
R.keyslot = new /obj/item/encryptionkey/heads/hop
|
||||
R.recalculateChannels()
|
||||
|
||||
/datum/outfit/centcom/ert/chaplain/inquisitor
|
||||
name = "Inquisition Chaplain"
|
||||
|
||||
belt = /obj/item/storage/belt/soulstone/full/chappy
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,
|
||||
/obj/item/grenade/chem_grenade/holy=1,
|
||||
/obj/item/nullrod=1
|
||||
)
|
||||
|
||||
/datum/outfit/centcom/ert/janitor
|
||||
name = "ERT Janitor"
|
||||
|
||||
id = /obj/item/card/id/ert/janitor
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/jani
|
||||
glasses = /obj/item/clothing/glasses/night
|
||||
back = /obj/item/storage/backpack/ert/janitor
|
||||
belt = /obj/item/storage/belt/janitor/full
|
||||
r_pocket = /obj/item/grenade/chem_grenade/cleaner
|
||||
l_pocket = /obj/item/grenade/chem_grenade/cleaner
|
||||
l_hand = /obj/item/storage/bag/trash/bluespace
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/storage/box/lights/mixed=1,\
|
||||
/obj/item/melee/baton/loaded=1,\
|
||||
/obj/item/mop/advanced=1,\
|
||||
/obj/item/reagent_containers/glass/bucket=1,\
|
||||
/obj/item/grenade/clusterbuster/cleaner=1)
|
||||
|
||||
/datum/outfit/centcom/ert/janitor/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/radio/R = H.ears
|
||||
R.keyslot = new /obj/item/encryptionkey/headset_service
|
||||
R.recalculateChannels()
|
||||
|
||||
/datum/outfit/centcom/ert/janitor/heavy
|
||||
name = "ERT Janitor - Heavy Duty"
|
||||
|
||||
mask = /obj/item/clothing/mask/gas/sechailer/swat
|
||||
l_hand = /obj/item/reagent_containers/spray/chemsprayer/janitor
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/storage/box/lights/mixed=1,\
|
||||
/obj/item/melee/baton/loaded=1,\
|
||||
/obj/item/grenade/clusterbuster/cleaner=3)
|
||||
|
||||
/datum/outfit/centcom/ert/clown
|
||||
name = "ERT Clown"
|
||||
|
||||
suit = /obj/item/clothing/suit/space/hardsuit/ert/clown
|
||||
mask = /obj/item/clothing/mask/gas/clown_hat
|
||||
id = /obj/item/card/id/ert/clown
|
||||
glasses = /obj/item/clothing/glasses/godeye
|
||||
back = /obj/item/storage/backpack/ert/clown
|
||||
belt = /obj/item/storage/belt/champion
|
||||
shoes = /obj/item/clothing/shoes/clown_shoes/combat
|
||||
r_pocket = /obj/item/bikehorn/golden
|
||||
l_pocket = /obj/item/food/grown/banana
|
||||
backpack_contents = list(/obj/item/storage/box/hug/survival=1,\
|
||||
/obj/item/melee/transforming/energy/sword/bananium=1,\
|
||||
/obj/item/shield/energy/bananium=1,\
|
||||
/obj/item/gun/ballistic/revolver/reverse=1)
|
||||
|
||||
/datum/outfit/centcom/ert/clown/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
..()
|
||||
if(visualsOnly)
|
||||
return
|
||||
var/obj/item/radio/R = H.ears
|
||||
R.keyslot = new /obj/item/encryptionkey/headset_service
|
||||
R.recalculateChannels()
|
||||
ADD_TRAIT(H, TRAIT_NAIVE, INNATE_TRAIT)
|
||||
H.dna.add_mutation(CLOWNMUT)
|
||||
for(var/datum/mutation/human/clumsy/M in H.dna.mutations)
|
||||
M.mutadone_proof = TRUE
|
||||
|
||||
/datum/outfit/centcom/centcom_intern
|
||||
name = "CentCom Intern"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/centcom/intern
|
||||
shoes = /obj/item/clothing/shoes/sneakers/black
|
||||
gloves = /obj/item/clothing/gloves/color/black
|
||||
ears = /obj/item/radio/headset/headset_cent
|
||||
glasses = /obj/item/clothing/glasses/sunglasses
|
||||
belt = /obj/item/melee/classic_baton
|
||||
l_hand = /obj/item/gun/ballistic/rifle/boltaction/brand_new
|
||||
back = /obj/item/storage/backpack/satchel
|
||||
l_pocket = /obj/item/ammo_box/a762
|
||||
r_pocket = /obj/item/ammo_box/a762
|
||||
id = /obj/item/card/id/centcom
|
||||
backpack_contents = list(/obj/item/storage/box/survival = 1)
|
||||
|
||||
/datum/outfit/centcom/centcom_intern/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE)
|
||||
if(visualsOnly)
|
||||
return
|
||||
|
||||
var/obj/item/card/id/W = H.wear_id
|
||||
W.access = get_centcom_access(name)
|
||||
W.access += ACCESS_WEAPONS
|
||||
W.assignment = name
|
||||
W.registered_name = H.real_name
|
||||
W.update_label()
|
||||
|
||||
/datum/outfit/centcom/centcom_intern/leader
|
||||
name = "CentCom Head Intern"
|
||||
belt = /obj/item/melee/baton/loaded
|
||||
suit = /obj/item/clothing/suit/armor/vest
|
||||
suit_store = /obj/item/gun/ballistic/rifle/boltaction/brand_new
|
||||
l_hand = /obj/item/megaphone
|
||||
head = /obj/item/clothing/head/intern
|
||||
|
||||
/datum/outfit/centcom/ert/janitor/party
|
||||
name = "ERP Cleaning Service"
|
||||
|
||||
uniform = /obj/item/clothing/under/misc/overalls
|
||||
mask = /obj/item/clothing/mask/bandana/blue
|
||||
suit = /obj/item/clothing/suit/apron
|
||||
suit_store = null
|
||||
glasses = /obj/item/clothing/glasses/meson
|
||||
belt = /obj/item/storage/belt/janitor/full
|
||||
r_pocket = /obj/item/grenade/chem_grenade/cleaner
|
||||
l_pocket = /obj/item/grenade/chem_grenade/cleaner
|
||||
l_hand = /obj/item/storage/bag/trash
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/storage/box/lights/mixed=1,\
|
||||
/obj/item/mop/advanced=1,\
|
||||
/obj/item/reagent_containers/glass/bucket=1)
|
||||
|
||||
/datum/outfit/centcom/ert/security/party
|
||||
name = "ERP Bouncer"
|
||||
|
||||
uniform = /obj/item/clothing/under/misc/bouncer
|
||||
suit = /obj/item/clothing/suit/armor/vest
|
||||
suit_store = null
|
||||
belt = /obj/item/melee/classic_baton/telescopic
|
||||
l_pocket = /obj/item/assembly/flash
|
||||
r_pocket = /obj/item/storage/wallet
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/clothing/head/helmet/police=1,\
|
||||
/obj/item/storage/box/handcuffs=1)
|
||||
|
||||
|
||||
/datum/outfit/centcom/ert/engineer/party
|
||||
name = "ERP Constructor"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/engineering/engineer/hazard
|
||||
mask = /obj/item/clothing/mask/gas/atmos
|
||||
head = /obj/item/clothing/head/hardhat/weldhat
|
||||
suit = /obj/item/clothing/suit/hazardvest
|
||||
suit_store = null
|
||||
l_hand = /obj/item/areaeditor/blueprints
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/stack/sheet/iron/fifty=1,\
|
||||
/obj/item/stack/sheet/glass/fifty=1,\
|
||||
/obj/item/stack/sheet/plasteel/twenty=1,\
|
||||
/obj/item/etherealballdeployer=1,\
|
||||
/obj/item/stack/light_w=30,\
|
||||
/obj/item/construction/rcd/loaded=1)
|
||||
|
||||
/datum/outfit/centcom/ert/clown/party
|
||||
name = "ERP Comedian"
|
||||
|
||||
uniform = /obj/item/clothing/under/rank/civilian/clown
|
||||
head = /obj/item/clothing/head/chameleon
|
||||
suit = /obj/item/clothing/suit/chameleon
|
||||
suit_store = null
|
||||
glasses = /obj/item/clothing/glasses/chameleon
|
||||
backpack_contents = list(/obj/item/storage/box/hug/survival=1,\
|
||||
/obj/item/shield/energy/bananium=1,\
|
||||
/obj/item/instrument/piano_synth=1)
|
||||
|
||||
/datum/outfit/centcom/ert/commander/party
|
||||
name = "ERP Coordinator"
|
||||
|
||||
uniform = /obj/item/clothing/under/misc/coordinator
|
||||
head = /obj/item/clothing/head/coordinator
|
||||
suit = /obj/item/clothing/suit/coordinator
|
||||
suit_store = null
|
||||
belt = /obj/item/storage/belt/sabre
|
||||
l_hand = /obj/item/toy/balloon
|
||||
l_pocket = /obj/item/kitchen/knife
|
||||
backpack_contents = list(/obj/item/storage/box/survival/engineer=1,\
|
||||
/obj/item/storage/box/fireworks=3,\
|
||||
/obj/item/food/cake/birthday=1)
|
||||
@@ -0,0 +1,5 @@
|
||||
//////////////////////////////
|
||||
//SKYRAT MODULAR OUTFITS FILE
|
||||
//PUT ANY NEW ERT OUTFITS HERE
|
||||
//////////////////////////////
|
||||
|
||||
@@ -33,6 +33,8 @@ GLOBAL_LIST_INIT(food, list(
|
||||
var/lastchangelog = "" //Saved changlog filesize to detect if there was a change
|
||||
var/ooccolor = "#c43b23"
|
||||
var/asaycolor = "#ff4500" //This won't change the color for current admins, only incoming ones.
|
||||
/// If we spawn an ERT as an admin and choose to spawn as the briefing officer, we'll be given this outfit
|
||||
var/brief_outfit = /datum/outfit/centcom/commander
|
||||
var/enable_tips = TRUE
|
||||
var/tip_delay = 500 //tip delay in milliseconds
|
||||
|
||||
@@ -1104,6 +1106,7 @@ GLOBAL_LIST_INIT(food, list(
|
||||
dat += "<b>Hide Radio Messages:</b> <a href = '?_src_=prefs;preference=toggle_radio_chatter'>[(chat_toggles & CHAT_RADIO)?"Shown":"Hidden"]</a><br>"
|
||||
dat += "<b>Hide Prayers:</b> <a href = '?_src_=prefs;preference=toggle_prayers'>[(chat_toggles & CHAT_PRAYER)?"Shown":"Hidden"]</a><br>"
|
||||
dat += "<b>Ignore Being Summoned as Cult Ghost:</b> <a href = '?_src_=prefs;preference=toggle_ignore_cult_ghost'>[(toggles & ADMIN_IGNORE_CULT_GHOST)?"Don't Allow Being Summoned":"Allow Being Summoned"]</a><br>"
|
||||
dat += "<b>Briefing Officer Outfit:</b> <a href = '?_src_=prefs;preference=briefoutfit;task=input'>[brief_outfit]</a><br>"
|
||||
if(CONFIG_GET(flag/allow_admin_asaycolor))
|
||||
dat += "<br>"
|
||||
dat += "<b>ASAY Color:</b> <span style='border: 1px solid #161616; background-color: [asaycolor ? asaycolor : "#FF4500"];'> </span> <a href='?_src_=prefs;preference=asaycolor;task=input'>Change</a><br>"
|
||||
@@ -2332,6 +2335,16 @@ GLOBAL_LIST_INIT(food, list(
|
||||
if(new_asaycolor)
|
||||
asaycolor = new_asaycolor
|
||||
|
||||
if("briefoutfit")
|
||||
var/list/valid_paths = list()
|
||||
for(var/datum/outfit/iter_outfit in subtypesof(/datum/outfit))
|
||||
if(initial(iter_outfit.can_be_admin_equipped))
|
||||
valid_paths[initial(iter_outfit.name)] = path
|
||||
var/new_outfit = input(user, "Choose your briefing officer outfit:", "Game Preference") as null|anything in valid_paths
|
||||
new_outfit = valid_paths[new_outfit]
|
||||
if(new_outfit)
|
||||
brief_outfit = new_outfit
|
||||
|
||||
if("bag")
|
||||
var/new_backpack = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in GLOB.backpacklist
|
||||
if(new_backpack)
|
||||
|
||||
+1
-2
@@ -1673,7 +1673,6 @@
|
||||
#include "code\modules\antagonists\nukeop\equipment\nuclear_challenge.dm"
|
||||
#include "code\modules\antagonists\nukeop\equipment\nuclearbomb.dm"
|
||||
#include "code\modules\antagonists\nukeop\equipment\pinpointer.dm"
|
||||
#include "code\modules\antagonists\official\official.dm"
|
||||
#include "code\modules\antagonists\pirate\pirate.dm"
|
||||
#include "code\modules\antagonists\revenant\revenant.dm"
|
||||
#include "code\modules\antagonists\revenant\revenant_abilities.dm"
|
||||
@@ -1913,7 +1912,6 @@
|
||||
#include "code\modules\clothing\masks\miscellaneous.dm"
|
||||
#include "code\modules\clothing\neck\_neck.dm"
|
||||
#include "code\modules\clothing\outfits\ert.dm"
|
||||
#include "code\modules\clothing\outfits\ert_skyrat.dm"
|
||||
#include "code\modules\clothing\outfits\event.dm"
|
||||
#include "code\modules\clothing\outfits\plasmaman.dm"
|
||||
#include "code\modules\clothing\outfits\standard.dm"
|
||||
@@ -3409,6 +3407,7 @@
|
||||
#include "modular_skyrat\master_files\code\game\objects\structures\trash_pile.dm"
|
||||
#include "modular_skyrat\master_files\code\modules\clothing\anthro_clothes.dm"
|
||||
#include "modular_skyrat\master_files\code\modules\clothing\non_anthro_clothes.dm"
|
||||
#include "modular_skyrat\master_files\code\modules\clothing\outfits\ert.dm"
|
||||
#include "modular_skyrat\master_files\code\modules\events\spider_infestation.dm"
|
||||
#include "modular_skyrat\master_files\code\modules\mob\living\emote_popup.dm"
|
||||
#include "modular_skyrat\master_files\code\modules\mob\living\carbon\carbon_say.dm"
|
||||
|
||||
Reference in New Issue
Block a user