mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-20 02:27:36 +01:00
Also adds a proc nifty for SDQL fans, which grants greater control over spawning atoms. Also fixes deserialization to make hair show up again
605 lines
26 KiB
Plaintext
605 lines
26 KiB
Plaintext
//STRIKE TEAMS
|
|
//Thanks to Kilakk for the admin-button portion of this code.
|
|
|
|
#define ERT_TYPE_AMBER 1
|
|
#define ERT_TYPE_RED 2
|
|
#define ERT_TYPE_GAMMA 3
|
|
|
|
var/list/response_team_members = list()
|
|
var/responseteam_age = 21 // Minimum account age to play as an ERT member
|
|
var/datum/response_team/active_team = null
|
|
var/send_emergency_team
|
|
var/ert_request_answered = 0
|
|
|
|
/client/proc/response_team()
|
|
set name = "Dispatch CentComm Response Team"
|
|
set category = "Event"
|
|
set desc = "Send an CentComm response team to the station."
|
|
|
|
if(!check_rights(R_EVENT))
|
|
return
|
|
|
|
if(!ticker)
|
|
to_chat(usr, "\red The game hasn't started yet!")
|
|
return
|
|
|
|
if(ticker.current_state == 1)
|
|
to_chat(usr, "\red The round hasn't started yet!")
|
|
return
|
|
|
|
if(send_emergency_team)
|
|
to_chat(usr, "\red Central Command has already dispatched an emergency response team!")
|
|
return
|
|
|
|
if(alert("Do you want to dispatch an Emergency Response Team?",,"Yes","No") != "Yes")
|
|
return
|
|
|
|
if(get_security_level() != "red") // Allow admins to reconsider if the alert level isn't Red
|
|
switch(alert("The station is not in red alert. Do you still want to dispatch a response team?",,"Yes","No"))
|
|
if("No")
|
|
return
|
|
|
|
if(send_emergency_team)
|
|
to_chat(usr, "\red Central Command has already dispatched an emergency response team!")
|
|
return
|
|
|
|
var/ert_type = pick_ert_type()
|
|
|
|
if(!ert_type)
|
|
return
|
|
|
|
ert_request_answered = 1
|
|
message_admins("[key_name_admin(usr)] is dispatching an Emergency Response Team", 1)
|
|
log_admin("[key_name(usr)] used Dispatch Emergency Response Team..")
|
|
trigger_armed_response_team(ert_type)
|
|
|
|
/client/proc/pick_ert_type()
|
|
switch(alert("Please select the ERT type you wish to deploy.", "Emergency Response Team", "Code Amber", "Code Red", "Code Gamma", "Cancel"))
|
|
if("Code Amber")
|
|
if(alert("Confirm: Deploy code 'AMBER' light ERT?", "Emergency Response Team", "Confirm", "Cancel") == "Confirm")
|
|
return new /datum/response_team/amber
|
|
else
|
|
return pick_ert_type()
|
|
if("Code Red")
|
|
if(alert("Confirm: Deploy code 'RED' medium ERT?", "Emergency Response Team", "Confirm", "Cancel") == "Confirm")
|
|
return new /datum/response_team/red
|
|
else
|
|
return pick_ert_type()
|
|
if("Code Gamma")
|
|
if(alert("Confirm: Deploy code 'GAMMA' elite ERT?", "Emergency Response Team", "Confirm", "Cancel") == "Confirm")
|
|
return new /datum/response_team/gamma
|
|
else
|
|
return pick_ert_type()
|
|
return 0
|
|
|
|
/mob/dead/observer/proc/JoinResponseTeam()
|
|
|
|
if(!send_emergency_team)
|
|
to_chat(src, "No emergency response team is currently being sent.")
|
|
return 0
|
|
|
|
if(jobban_isbanned(src, ROLE_ERT))
|
|
to_chat(src, "<span class='warning'>You are jobbanned from the emergency reponse team!</span>")
|
|
return 0
|
|
|
|
var/player_age_check = check_client_age(src.client, responseteam_age)
|
|
if(player_age_check && config.use_age_restriction_for_antags)
|
|
to_chat(src, "<span class='warning'>This role is not yet available to you. You need to wait another [player_age_check] days.</span>")
|
|
return 0
|
|
|
|
if(src.has_enabled_antagHUD == 1 && config.antag_hud_restricted)
|
|
to_chat(src, "<span class='boldnotice'>Upon using the antagHUD you forfeited the ability to join the round.</span>")
|
|
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
|
|
|
|
/proc/trigger_armed_response_team(var/datum/response_team/response_team_type)
|
|
|
|
active_team = response_team_type
|
|
|
|
send_emergency_team = 1
|
|
var/list/ert_candidates = pollCandidates("Join the Emergency Response Team?",, responseteam_age, 600, 1)
|
|
if(!ert_candidates.len)
|
|
active_team.cannot_send_team()
|
|
send_emergency_team = 0
|
|
return
|
|
var/teamsize = 0
|
|
// Respawnable players get first dibs
|
|
for(var/mob/dead/observer/M in (ert_candidates & respawnable_list))
|
|
teamsize += M.JoinResponseTeam()
|
|
// 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)
|
|
active_team.cannot_send_team()
|
|
return
|
|
active_team.announce_team()
|
|
|
|
/client/proc/create_response_team(obj/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")
|
|
|
|
var/class = 0
|
|
while(!class)
|
|
class = input(src, "Which loadout would you like to choose?") in active_team.get_slot_list()
|
|
if(!active_team.check_slot_available(class)) // Because the prompt does not update automatically when a slot gets filled.
|
|
class = 0
|
|
|
|
if(new_gender)
|
|
if(new_gender == "Male")
|
|
M.change_gender(MALE)
|
|
else
|
|
M.change_gender(FEMALE)
|
|
|
|
M.set_species("Human",1)
|
|
M.dna.ready_dna(M)
|
|
|
|
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 = hex2num(copytext(hair_c, 2, 4))
|
|
head_organ.g_facial = hex2num(copytext(hair_c, 4, 6))
|
|
head_organ.b_facial = hex2num(copytext(hair_c, 6, 8))
|
|
head_organ.r_hair = hex2num(copytext(hair_c, 2, 4))
|
|
head_organ.g_hair = hex2num(copytext(hair_c, 4, 6))
|
|
head_organ.b_hair = hex2num(copytext(hair_c, 6, 8))
|
|
var/eyes_red = hex2num(copytext(eye_c, 2, 4))
|
|
var/eyes_green = hex2num(copytext(eye_c, 4, 6))
|
|
var/eyes_blue = hex2num(copytext(eye_c, 6, 8))
|
|
M.change_eye_color(eyes_red, eyes_green, eyes_blue)
|
|
M.s_tone = skin_tone
|
|
head_organ.h_style = hair_style
|
|
head_organ.f_style = facial_hair_style
|
|
|
|
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)
|
|
|
|
//Creates mind stuff.
|
|
M.mind = new
|
|
M.mind.current = M
|
|
M.mind.original = M
|
|
M.mind.assigned_role = "MODE"
|
|
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
|
|
|
|
active_team.equip_officer(class, M)
|
|
|
|
return M
|
|
|
|
|
|
/datum/response_team
|
|
var/command_slots = 1
|
|
var/engineer_slots = 3
|
|
var/medical_slots = 3
|
|
var/security_slots = 3
|
|
|
|
/datum/response_team/proc/get_slot_list()
|
|
var/list/slots_available = list()
|
|
if(command_slots)
|
|
slots_available |= "Commander"
|
|
if(security_slots)
|
|
slots_available |= "Security"
|
|
if(engineer_slots)
|
|
slots_available |= "Engineer"
|
|
if(medical_slots)
|
|
slots_available |= "Medic"
|
|
|
|
return slots_available
|
|
|
|
/datum/response_team/proc/check_slot_available(var/slot)
|
|
switch(slot)
|
|
if("Commander")
|
|
return command_slots
|
|
if("Security")
|
|
return security_slots
|
|
if("Engineer")
|
|
return engineer_slots
|
|
if("Medic")
|
|
return medical_slots
|
|
return 0
|
|
|
|
/datum/response_team/proc/equip_officer(var/officer_type, var/mob/living/carbon/human/M)
|
|
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert/alt(src), slot_l_ear)
|
|
|
|
var/obj/item/weapon/implant/loyalty/L = new/obj/item/weapon/implant/loyalty(M)
|
|
L.imp_in = M
|
|
L.implanted = 1
|
|
M.sec_hud_set_implants()
|
|
|
|
switch(officer_type)
|
|
if("Engineer")
|
|
engineer_slots -= 1
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/engineer(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/ert/engineer(M), slot_back)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/responseteam(M), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full/multitool(M), slot_belt)
|
|
|
|
var/obj/item/weapon/card/id/W = new(src)
|
|
W.assignment = "Emergency Response Team Member"
|
|
W.registered_name = M.real_name
|
|
W.name = "[M.real_name]'s ID Card (Emergency Response Team Engineer)"
|
|
W.icon_state = "ERT_engineering"
|
|
W.access = get_centcom_access(W.assignment)
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
|
|
var/obj/item/device/pda/heads/pda = new(src)
|
|
pda.owner = M.real_name
|
|
pda.ownjob = "Emergency Response Team Member"
|
|
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
|
pda.icon_state = "pda-engineer"
|
|
M.equip_to_slot_or_del(pda, slot_wear_pda)
|
|
|
|
|
|
if("Security")
|
|
security_slots -= 1
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/security(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/ert/security(M), slot_back)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/responseteam(M), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/security/response_team(M), slot_belt)
|
|
|
|
var/obj/item/weapon/card/id/W = new(src)
|
|
W.assignment = "Emergency Response Team Member"
|
|
W.registered_name = M.real_name
|
|
W.name = "[M.real_name]'s ID Card (Emergency Response Team Officer)"
|
|
W.icon_state = "ERT_security"
|
|
W.access = get_centcom_access(W.assignment)
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
|
|
var/obj/item/device/pda/heads/pda = new(src)
|
|
pda.owner = M.real_name
|
|
pda.ownjob = "Emergency Response Team Member"
|
|
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
|
pda.icon_state = "pda-security"
|
|
M.equip_to_slot_or_del(pda, slot_wear_pda)
|
|
|
|
|
|
if("Medic")
|
|
medical_slots -= 1
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/medical(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/ert/medical(M), slot_back)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/responseteam(M), slot_in_backpack)
|
|
|
|
var/obj/item/weapon/card/id/W = new(src)
|
|
W.assignment = "Emergency Response Team Member"
|
|
W.registered_name = M.real_name
|
|
W.name = "[M.real_name]'s ID Card (Emergency Response Team Medic)"
|
|
W.icon_state = "ERT_medical"
|
|
W.access = get_centcom_access(W.assignment)
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
|
|
var/obj/item/device/pda/heads/pda = new(src)
|
|
pda.owner = M.real_name
|
|
pda.ownjob = "Emergency Response Team Member"
|
|
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
|
pda.icon_state = "pda-medical"
|
|
M.equip_to_slot_or_del(pda, slot_wear_pda)
|
|
|
|
|
|
if("Commander")
|
|
command_slots = 0
|
|
|
|
// Override name and age for the commander
|
|
M.real_name = "[pick("Lieutenant", "Captain", "Major")] [pick(last_names)]"
|
|
M.name = M.real_name
|
|
M.age = rand(35,45)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/ert/commander(M), slot_back)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/responseteam(M), slot_in_backpack)
|
|
|
|
var/obj/item/weapon/card/id/W = new(src)
|
|
W.assignment = "Emergency Response Team Leader"
|
|
W.registered_name = M.real_name
|
|
W.name = "[M.real_name]'s ID Card (Emergency Response Team Leader)"
|
|
W.icon_state = "ERT_leader"
|
|
W.access = get_centcom_access(W.assignment)
|
|
M.equip_to_slot_or_del(W, slot_wear_id)
|
|
|
|
var/obj/item/device/pda/heads/pda = new(src)
|
|
pda.owner = M.real_name
|
|
pda.ownjob = "Emergency Response Team Leader"
|
|
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
|
|
M.equip_to_slot_or_del(pda, slot_wear_pda)
|
|
|
|
/datum/response_team/proc/cannot_send_team()
|
|
command_announcement.Announce("[station_name()], we are unfortunately unable to send you an Emergency Response Team at this time.", "ERT Unavailable")
|
|
|
|
/datum/response_team/proc/announce_team()
|
|
command_announcement.Announce("Attention, [station_name()]. We are sending a team of highly trained assistants to aid(?) you. Standby.", "ERT En-Route")
|
|
|
|
// -- AMBER TEAM --
|
|
|
|
/datum/response_team/amber
|
|
|
|
/datum/response_team/amber/announce_team()
|
|
command_announcement.Announce("Attention, [station_name()]. We are sending a code AMBER light Emergency Response Team. Standby.", "ERT En-Route")
|
|
|
|
/datum/response_team/amber/equip_officer(var/officer_type, var/mob/living/carbon/human/M)
|
|
..()
|
|
|
|
switch(officer_type)
|
|
if("Engineer")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/yellow(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/ert/engineer(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/engi(M), slot_s_store)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(M), slot_glasses)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/ert/engineer(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/stack/sheet/glass(M, amount=50), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/stack/sheet/metal(M, amount=50), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/device/t_scanner(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_r_store)
|
|
|
|
if("Security")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/ert/security(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/advtaser(M), slot_s_store)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(M), slot_glasses)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/ert/security(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/zipties(M), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/laser(M), slot_r_hand)
|
|
|
|
if("Medic")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/latex(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/ert/medical(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health(M), slot_glasses)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/medical/response_team(M), slot_belt)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/ert/medical(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/o2(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/brute(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(M), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/hypospray/CMO(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_r_store)
|
|
|
|
if("Commander")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/armor/vest/ert/command(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(M), slot_glasses)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_belt)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/ert/command(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/lockbox/loyalty(M), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/pinpointer(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_r_store)
|
|
|
|
// -- RED TEAM --
|
|
|
|
/datum/response_team/red
|
|
|
|
/datum/response_team/red/announce_team()
|
|
command_announcement.Announce("Attention, [station_name()]. We are sending a code RED Emergency Response Team. Standby.", "ERT En-Route")
|
|
|
|
/datum/response_team/red/equip_officer(var/officer_type, var/mob/living/carbon/human/M)
|
|
..()
|
|
|
|
switch(officer_type)
|
|
if("Engineer")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/yellow(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/ert/engineer(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/engi(M), slot_s_store)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(M), slot_glasses)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/ert/engineer(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas(M), slot_in_backpack)
|
|
var/obj/item/weapon/rcd/R = new /obj/item/weapon/rcd(src)
|
|
R.matter = 100
|
|
M.equip_to_slot_or_del(R, slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/rcd_ammo(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/rcd_ammo(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/rcd_ammo(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/device/t_scanner/extended_range(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_r_store)
|
|
|
|
if("Security")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/black(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/ert/security(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/advtaser(M), slot_s_store)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(M), slot_glasses)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/ert/security(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/handcuffs(M), slot_in_backpack)
|
|
if(prob(50))
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/teargas(M), slot_in_backpack)
|
|
else
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/flashbangs(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/ionrifle/carbine(M), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/lasercannon(M), slot_r_hand)
|
|
|
|
if("Medic")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/white(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/latex/nitrile(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/ert/medical(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/health_advanced(M), slot_glasses)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/defibrillator/compact/loaded(M), slot_belt)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/ert/medical(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/surgical(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/o2(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/toxin(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/surgery(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/hypospray/CMO(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_r_store)
|
|
|
|
if("Commander")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/ert/commander(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/sunglasses(M), slot_glasses)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/nuclear(M), slot_belt)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/ert/commander(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/lockbox/loyalty(M), slot_in_backpack)
|
|
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/pinpointer(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_r_store)
|
|
|
|
// -- GAMMA TEAM --
|
|
|
|
/datum/response_team/gamma
|
|
|
|
/datum/response_team/gamma/announce_team()
|
|
command_announcement.Announce("Attention, [station_name()]. We are sending a code GAMMA elite Emergency Response Team. Standby.", "ERT En-Route")
|
|
|
|
/datum/response_team/gamma/equip_officer(var/officer_type, var/mob/living/carbon/human/M)
|
|
..()
|
|
|
|
switch(officer_type)
|
|
if("Engineer")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/magboots/advance(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/color/yellow(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/ert/engineer(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(M), slot_s_store)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson/night(M), slot_glasses)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/ert/engineer(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/rcd/combat, slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/rcd_ammo/large(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/rcd_ammo/large(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/rcd_ammo/large(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/device/t_scanner/extended_range(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_r_store)
|
|
|
|
if("Security")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/ert/security(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/nuclear(M), slot_s_store)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/night(M), slot_glasses)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/ert/security(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/handcuffs(M), slot_in_backpack)
|
|
if(prob(50))
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/teargas(M), slot_in_backpack)
|
|
else
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/flashbangs(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/ionrifle/carbine(M), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/carbine(M), slot_r_hand)
|
|
|
|
if("Medic")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/ert/medical(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/night(M), slot_glasses)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/defibrillator/compact/loaded(M), slot_belt)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/ert/medical(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/surgery(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/hypospray/combat/nanites(src), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_r_store)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/medbeam(M), slot_r_hand)
|
|
|
|
if("Commander")
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/combat/swat(M), slot_shoes)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/combat(M), slot_gloves)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/ert/commander(M), slot_wear_suit)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/night(M), slot_glasses)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/nuclear(M), slot_belt)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/head/helmet/space/rig/ert/commander(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/sechailer/swat(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/restraints/handcuffs(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/storage/lockbox/loyalty(M), slot_in_backpack)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/pulse/pistol(M), slot_in_backpack)
|
|
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/pinpointer(M), slot_l_store)
|
|
M.equip_to_slot_or_del(new /obj/item/weapon/melee/classic_baton/telescopic(M), slot_r_store)
|
|
|
|
|
|
/obj/item/device/radio/centcom
|
|
name = "centcomm bounced radio"
|
|
frequency = ERT_FREQ
|
|
icon_state = "radio"
|
|
|
|
/obj/item/weapon/storage/box/responseteam/
|
|
name = "boxed survival kit"
|
|
|
|
/obj/item/weapon/storage/box/responseteam/New()
|
|
..()
|
|
contents = list()
|
|
sleep(1)
|
|
new /obj/item/clothing/mask/breath( src )
|
|
new /obj/item/weapon/tank/emergency_oxygen/engi( src )
|
|
new /obj/item/device/flashlight/flare( src )
|
|
new /obj/item/weapon/kitchen/knife/combat( src )
|
|
new /obj/item/device/radio/centcom( src )
|
|
new /obj/item/weapon/reagent_containers/food/pill/salicylic( src )
|
|
new /obj/item/weapon/reagent_containers/food/pill/patch/synthflesh( src )
|
|
return
|