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)