diff --git a/code/_globalvars/mapping.dm b/code/_globalvars/mapping.dm
index 44b678a8f67..ae26485208b 100644
--- a/code/_globalvars/mapping.dm
+++ b/code/_globalvars/mapping.dm
@@ -18,7 +18,6 @@ var/global/list/global_map = null
//3 - AI satellite
//5 - empty space
-var/list/monkeystart = list()
var/list/wizardstart = list()
var/list/newplayer_start = list()
var/list/latejoin = list()
@@ -26,10 +25,9 @@ var/list/latejoin_gateway = list()
var/list/latejoin_cryo = list()
var/list/latejoin_cyborg = list()
var/list/prisonwarp = list() //prisoners go to these
-var/list/holdingfacility = list() //captured people go here
var/list/xeno_spawn = list()//Aliens spawn at these.
var/list/ertdirector = list()
-// list/mazewarp = list()
+var/list/emergencyresponseteamspawn = list()
var/list/tdome1 = list()
var/list/tdome2 = list()
var/list/team_alpha = list()
diff --git a/code/_globalvars/unused.dm b/code/_globalvars/unused.dm
index d3945b68eab..e55794c3dc9 100644
--- a/code/_globalvars/unused.dm
+++ b/code/_globalvars/unused.dm
@@ -31,10 +31,4 @@ var/endicon = null
var/datum/air_tunnel/air_tunnel1/SS13_airtunnel = null
var/going = 1.0
var/datum/engine_eject/engine_eject_control = null
-// list/traitors = list() //traitor list
-// list/traitobj = list( )
-var/airtunnel_start = 68 // default
-var/airtunnel_stop = 68 // default
-var/airtunnel_bottom = 72 // default
-// reverse_dir[dir] = reverse of dir
diff --git a/code/game/gamemodes/nuclear/nuclear.dm b/code/game/gamemodes/nuclear/nuclear.dm
index 25ad0d234da..43892b6c474 100644
--- a/code/game/gamemodes/nuclear/nuclear.dm
+++ b/code/game/gamemodes/nuclear/nuclear.dm
@@ -150,16 +150,6 @@ proc/issyndicate(mob/living/M as mob)
var/hair_c = pick("#8B4513","#000000","#FF4500","#FFD700") // Brown, black, red, blonde
var/eye_c = pick("#000000","#8B4513","1E90FF") // Black, brown, blue
var/skin_tone = pick(-50, -30, -10, 0, 0, 0, 10) // Caucasian/black
- var/hair_style = "Bald"
- var/facial_hair_style = "Shaved"
- if(M.gender == MALE)
- hair_style = pick(hair_styles_male_list)
- facial_hair_style = pick(facial_hair_styles_list)
- else
- hair_style = pick(hair_styles_female_list)
- if(prob(5))
- facial_hair_style = pick(facial_hair_styles_list)
-
head_organ.r_facial = color2R(hair_c)
head_organ.g_facial = color2G(hair_c)
head_organ.b_facial = color2B(hair_c)
@@ -168,9 +158,11 @@ proc/issyndicate(mob/living/M as mob)
head_organ.b_hair = color2B(hair_c)
M.change_eye_color(color2R(eye_c), color2G(eye_c), color2B(eye_c))
M.s_tone = skin_tone
- head_organ.h_style = hair_style
- head_organ.f_style = facial_hair_style
+ head_organ.h_style = random_hair_style(M.gender, head_organ.species.name)
+ head_organ.f_style = random_facial_hair_style(M.gender, head_organ.species.name)
M.body_accessory = null
+ M.regenerate_icons()
+ M.update_body()
/datum/game_mode/proc/prepare_syndicate_leader(var/datum/mind/synd_mind, var/nuke_code)
var/leader_title = pick("Czar", "Boss", "Commander", "Chief", "Kingpin", "Director", "Overlord")
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index ecb8590c103..43fd8ad3dc7 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -12,22 +12,6 @@
invisibility = 101
switch(name) //some of these are probably obsolete
- if("shuttle")
- log_runtime(EXCEPTION("Obsolete landmark '[name]' at ([x],[y],[z])"), src)
- qdel(src)
-
- if("airtunnel_stop")
- airtunnel_stop = x
-
- if("airtunnel_start")
- airtunnel_start = x
-
- if("airtunnel_bottom")
- airtunnel_bottom = y
-
- if("monkey")
- monkeystart += loc
- qdel(src)
if("start")
newplayer_start += loc
qdel(src)
@@ -52,29 +36,28 @@
latejoin_cyborg += loc
qdel(src)
- //prisoners
if("prisonwarp")
prisonwarp += loc
qdel(src)
- // if("mazewarp")
- // mazewarp += loc
- if("Holding Facility")
- holdingfacility += loc
- if("tdome1")
- tdome1 += loc
- if("tdome2")
- tdome2 += loc
- if("tdomeadmin")
- tdomeadmin += loc
- if("tdomeobserve")
- tdomeobserve += loc
- if("aroomwarp")
- aroomwarp += loc
-
- //not prisoners
+
if("prisonsecuritywarp")
prisonsecuritywarp += loc
qdel(src)
+
+ if("tdome1")
+ tdome1 += loc
+
+ if("tdome2")
+ tdome2 += loc
+
+ if("tdomeadmin")
+ tdomeadmin += loc
+
+ if("tdomeobserve")
+ tdomeobserve += loc
+
+ if("aroomwarp")
+ aroomwarp += loc
if("blobstart")
blobstart += loc
@@ -96,6 +79,11 @@
if("ERT Director")
ertdirector += loc
+ qdel(src)
+
+ if("Response Team")
+ emergencyresponseteamspawn += loc
+ qdel(src)
landmarks_list += src
return 1
diff --git a/code/game/response_team.dm b/code/game/response_team.dm
index 121228b4d3f..a4ca220e5dd 100644
--- a/code/game/response_team.dm
+++ b/code/game/response_team.dm
@@ -73,7 +73,6 @@ var/ert_request_answered = 0
return 0
/mob/dead/observer/proc/JoinResponseTeam()
-
if(!send_emergency_team)
to_chat(src, "No emergency response team is currently being sent.")
return 0
@@ -82,35 +81,23 @@ var/ert_request_answered = 0
to_chat(src, "You are jobbanned from the emergency reponse team!")
return 0
- var/player_age_check = check_client_age(src.client, responseteam_age)
+ var/player_age_check = check_client_age(client, responseteam_age)
if(player_age_check && config.use_age_restriction_for_antags)
to_chat(src, "This role is not yet available to you. You need to wait another [player_age_check] days.")
return 0
- if(src.has_enabled_antagHUD == 1 && config.antag_hud_restricted)
+ if(has_enabled_antagHUD == 1 && config.antag_hud_restricted)
to_chat(src, "Upon using the antagHUD you forfeited the ability to join the round.")
return 0
if(response_team_members.len > 6)
to_chat(src, "The emergency response team is already full!")
return 0
-
- for(var/obj/effect/landmark/L in landmarks_list)
- if(L.name == "Response Team")
- L.name = null
- if(!src.client)
- return
- spawn(-1)
- var/client/C = src.client
- var/mob/living/carbon/human/new_commando = C.create_response_team(L.loc)
- qdel(L)
- new_commando.mind.key = src.key
- new_commando.key = src.key
- new_commando.update_icons()
- return 1
+
+ return 1
/proc/trigger_armed_response_team(var/datum/response_team/response_team_type)
-
+ response_team_members = list()
active_team = response_team_type
send_emergency_team = 1
@@ -118,24 +105,41 @@ var/ert_request_answered = 0
if(!ert_candidates.len)
active_team.cannot_send_team()
send_emergency_team = 0
- return
- var/teamsize = 0
+ return 0
+
// Respawnable players get first dibs
- for(var/mob/dead/observer/M in (ert_candidates & respawnable_list))
- teamsize += M.JoinResponseTeam()
+ for(var/mob/dead/observer/M in ert_candidates)
+ if((M in respawnable_list) && M.JoinResponseTeam())
+ response_team_members |= M
// If there's still open slots, non-respawnable players can fill them
for(var/mob/dead/observer/M in (ert_candidates - respawnable_list))
- teamsize += M.JoinResponseTeam()
- send_emergency_team = 0
- if (!teamsize)
+ if(M.JoinResponseTeam())
+ response_team_members |= M
+
+ if(!response_team_members.len)
active_team.cannot_send_team()
- return
- active_team.announce_team()
+ send_emergency_team = 0
+ return 0
-/client/proc/create_response_team(obj/spawn_location)
+ var/index = 1
+ for(var/mob/M in response_team_members)
+ if(index > emergencyresponseteamspawn.len)
+ index = 1
+
+ var/client/C = M.client
+ var/mob/living/carbon/human/new_commando = C.create_response_team(emergencyresponseteamspawn[index])
+ new_commando.mind.key = M.key
+ new_commando.key = M.key
+ new_commando.update_icons()
+ index++
+
+ send_emergency_team = 0
+ active_team.announce_team()
+ return 1
+
+/client/proc/create_response_team(var/turf/spawn_location)
var/mob/living/carbon/human/M = new(null)
var/obj/item/organ/external/head/head_organ = M.get_organ("head")
- response_team_members |= M
var/new_gender = alert(src, "Please select your gender.", "ERT Character Generation", "Male", "Female")
@@ -157,15 +161,6 @@ var/ert_request_answered = 0
var/hair_c = pick("#8B4513","#000000","#FF4500","#FFD700") // Brown, black, red, blonde
var/eye_c = pick("#000000","#8B4513","1E90FF") // Black, brown, blue
var/skin_tone = pick(-50, -30, -10, 0, 0, 0, 10) // Caucasian/black
- var/hair_style = "Bald"
- var/facial_hair_style = "Shaved"
- if(M.gender == MALE)
- hair_style = pick(hair_styles_male_list)
- facial_hair_style = pick(facial_hair_styles_list)
- else
- hair_style = pick(hair_styles_female_list)
- if(prob(5))
- facial_hair_style = pick(facial_hair_styles_list)
head_organ.r_facial = color2R(hair_c)
head_organ.g_facial = color2G(hair_c)
@@ -175,12 +170,14 @@ var/ert_request_answered = 0
head_organ.b_hair = color2B(hair_c)
M.change_eye_color(color2R(eye_c), color2G(eye_c), color2B(eye_c))
M.s_tone = skin_tone
- head_organ.h_style = hair_style
- head_organ.f_style = facial_hair_style
+ head_organ.h_style = random_hair_style(M.gender, head_organ.species.name)
+ head_organ.f_style = random_facial_hair_style(M.gender, head_organ.species.name)
M.real_name = "[pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant First Class", "Master Sergeant", "Sergeant Major")] [pick(last_names)]"
M.name = M.real_name
M.age = rand(23,35)
+ M.regenerate_icons()
+ M.update_body()
//Creates mind stuff.
M.mind = new
@@ -190,7 +187,7 @@ var/ert_request_answered = 0
M.mind.special_role = SPECIAL_ROLE_ERT
if(!(M.mind in ticker.minds))
ticker.minds += M.mind //Adds them to regular mind list.
- M.loc = spawn_location
+ M.forceMove(spawn_location)
active_team.equip_officer(class, M)