ERT equipment rework

This commit is contained in:
Markolie
2015-03-03 22:51:54 +01:00
parent a497411d89
commit 4ac1007d82
25 changed files with 14456 additions and 14220 deletions
+1 -1
View File
@@ -465,7 +465,7 @@
return all_jobs
/proc/get_all_centcom_jobs()
return list("VIP Guest","Custodian","Thunderdome Overseer","Emergency Response Team","Emergency Response Team Leader","Intel Officer","Medical Officer","Death Commando","Research Officer","BlackOps Commander","Special Operations Officer","Nanotrasen Navy Officer","Nanotrasen Navy Captain","Supreme Commander")
return list("VIP Guest","Custodian","Thunderdome Overseer","Emergency Response Team Member","Emergency Response Team Leader","Intel Officer","Medical Officer","Death Commando","Research Officer","BlackOps Commander","Special Operations Officer","Nanotrasen Navy Officer","Nanotrasen Navy Captain","Supreme Commander")
//gets the actual job rank (ignoring alt titles)
//this is used solely for sechuds
@@ -30,6 +30,10 @@
icon_state = "sheet-glass"
g_amt = 0
created_window = /obj/structure/window/basic
/obj/item/stack/sheet/glass/full/New()
..()
amount = 50
/obj/item/stack/sheet/glass/attack_self(mob/user as mob)
construct_window(user)
@@ -81,6 +81,10 @@ var/global/list/datum/stack_recipe/metal_recipes = list ( \
throwforce = 10.0
flags = CONDUCT
origin_tech = "materials=1"
/obj/item/stack/sheet/metal/full/New()
..()
amount = 50
/obj/item/stack/sheet/metal/cyborg
name = "metal"
@@ -120,8 +124,12 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \
origin_tech = "materials=2"
/obj/item/stack/sheet/plasteel/New(var/loc, var/amount=null)
recipes = plasteel_recipes
return ..()
recipes = plasteel_recipes
return ..()
/obj/item/stack/sheet/plasteel/full/New(var/loc, var/amount=null)
amount = 50
..(loc, amount)
/*
* Wood
@@ -126,8 +126,15 @@
max_combined_w_class = 200 //Doesn't matter what this is, so long as it's more or equal to storage_slots * ore.w_class
max_w_class = 3
can_hold = list("/obj/item/weapon/ore")
/obj/item/weapon/storage/bag/ore/holding //miners, your messiah has arrived
name = "mining satchel of holding"
desc = "A revolution in convenience, this satchel allows for infinite ore storage. It's been outfitted with anti-malfunction safety measures."
storage_slots = INFINITY
max_combined_w_class = INFINITY
origin_tech = "bluespace=3"
icon_state = "satchel_bspace"
// -----------------------------
// Plant bag
// -----------------------------
@@ -59,7 +59,7 @@
new /obj/item/weapon/wirecutters(src)
new /obj/item/stack/cable_coil(src,30,pick("red","yellow","orange"))
/obj/item/weapon/storage/belt/utility/full/response_team/New()
/obj/item/weapon/storage/belt/utility/full/multitool/New()
..()
new /obj/item/device/multitool(src)
@@ -133,6 +133,8 @@
/obj/item/weapon/storage/belt/security/response_team/New()
..()
contents.Cut()
new /obj/item/weapon/kitchenknife/combat(src)
new /obj/item/weapon/grenade/flashbang(src)
new /obj/item/weapon/grenade/flashbang(src)
new /obj/item/weapon/melee/telebaton(src)
@@ -170,7 +172,7 @@
/obj/item/weapon/storage/belt/military
name = "military belt"
desc = "A syndicate belt designed to be used by boarding parties. Its style is modeled after the hardsuits they wear."
desc = "A syndicate belt designed to be used by boarding parties. Its style is modelled after the hardsuits they wear."
icon_state = "militarybelt"
item_state = "military"
@@ -189,6 +191,15 @@
"/obj/item/weapon/soap",
"/obj/item/weapon/holosign_creator"
)
/obj/item/weapon/storage/belt/janitor/full/New()
..()
new /obj/item/device/lightreplacer(src)
new /obj/item/weapon/holosign_creator(src)
new /obj/item/weapon/reagent_containers/spray(src)
new /obj/item/weapon/soap(src)
new /obj/item/weapon/grenade/chem_grenade/cleaner(src)
new /obj/item/weapon/grenade/chem_grenade/cleaner(src)
/obj/item/weapon/storage/belt/bandolier
name = "bandolier"
@@ -61,18 +61,6 @@
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
return
/obj/item/weapon/storage/box/response_team
New()
..()
contents = list()
sleep(1)
new /obj/item/clothing/mask/breath( src )
new /obj/item/weapon/tank/emergency_oxygen/double/full( src )
new /obj/item/clothing/glasses/night( src )
new /obj/item/weapon/kitchenknife/combat( src ) // SURVIVAL KNIFE, FOR CARVING A BOW OUT OF THE BONES OF ASSISTANTS AFTER YOU CRASH-LAND ON THE STATION.
new /obj/item/weapon/reagent_containers/hypospray/autoinjector( src )
return
/obj/item/weapon/storage/box/gloves
name = "box of latex gloves"
desc = "Contains white gloves."
+4 -1
View File
@@ -12,7 +12,10 @@
var/datum/reagents/R = new/datum/reagents(100)
reagents = R
R.my_atom = src
/obj/structure/mopbucket/full/New()
..()
reagents.add_reagent("water", 100)
/obj/structure/mopbucket/examine()
set src in usr
+287 -137
View File
@@ -2,6 +2,9 @@
//Thanks to Kilakk for the admin-button portion of this code.
var/list/response_team_members = list()
var/list/response_team_types = list("Security","Medical","Engineering","Janitorial")
var/list/response_team_chosen_types = list()
var/responseteam_age = 21 // Minimum account age to play as an ERT member
var/global/send_emergency_team = 0 // Used for automagic response teams
// 'admin_emergency_team' for admin-spawned response teams
var/ert_base_chance = 10 // Default base chance. Will be incremented by increment ERT chance.
@@ -10,68 +13,84 @@ var/can_call_ert
/client/proc/response_team()
set name = "Dispatch Emergency Response Team"
set category = "Event"
set desc = "Send an emergency response team to the station"
set desc = "Send an emergency response team to the station."
if(!holder)
usr << "\red Only administrators may use this command."
if(!check_rights(R_EVENT))
return
if(!ticker)
usr << "\red The game hasn't started yet!"
return
if(ticker.current_state == 1)
usr << "\red The round hasn't started yet!"
return
if(send_emergency_team)
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)
usr << "\red Looks like somebody beat you to it!"
usr << "\red Central Command has already dispatched an emergency response team!"
return
if(pick_ert_type())
return
message_admins("[key_name_admin(usr)] is dispatching an Emergency Response Team.", 1)
log_admin("[key_name(usr)] used Dispatch Response Team.")
trigger_armed_response_team(1)
/client/proc/pick_ert_type()
var/erttype = input("Which type of Emergency Response Team would you like to dispatch?","Emergency Response Team Type", "") as null|anything in response_team_types
if(!erttype)
return 1
response_team_chosen_types |= erttype
if(alert(usr, "Would you like to add another Emergency Response Team type?", "Emergency Response Team Type", "Yes", "No") == "Yes")
pick_ert_type()
else
return 0
/mob/dead/observer/verb/JoinResponseTeam()
set category = "Ghost"
set name = "Join Emergency Response Team"
set desc = "Join the Emergency Response Team. Only possible if it has been called by the crew."
if(istype(usr,/mob/dead/observer) || istype(usr,/mob/new_player))
if(!send_emergency_team)
usr << "No emergency response team is currently being sent."
return
/* if(admin_emergency_team)
usr << "An emergency response team has already been sent."
return */
if(jobban_isbanned(usr, "Emergency Response Team"))
usr << "<span class='warning'>You are jobbanned from the emergency reponse team!</span>"
return
if(!istype(usr,/mob/dead/observer) && !istype(usr,/mob/new_player))
usr << "You need to be an observer or new player to use this."
return
if(!send_emergency_team)
usr << "No emergency response team is currently being sent."
return
var/responseteam_age = 21 // 21 days to play as an ERT member
var/player_age_check = check_client_age(usr.client, responseteam_age)
if(player_age_check && config.use_age_restriction_for_antags)
usr << "<span class='warning'>This role is not yet available to you. You need to wait another [player_age_check] days.</span>"
return
if(jobban_isbanned(usr, "Emergency Response Team"))
usr << "<span class='warning'>You are jobbanned from the emergency reponse team!</span>"
return
var/player_age_check = check_client_age(usr.client, responseteam_age)
if(player_age_check && config.use_age_restriction_for_antags)
usr << "<span class='warning'>This role is not yet available to you. You need to wait another [player_age_check] days.</span>"
return
if(response_team_members.len > 6) usr << "The emergency response team is already full!"
if(response_team_members.len > 6)
usr << "The emergency response team is already full!"
return
for (var/obj/effect/landmark/L in landmarks_list) if (L.name == "Response Team")
L.name = null//Reserving the place.
/*var/new_name = alert(usr, "Pick a name","Name") as null|text
if(!new_name)//Somebody changed his mind, place is available again.
L.name = "Commando"
return*/
if(alert(usr, "Join the Emergency Response Team?", "Emergency Response Team", "Yes", "No") == "No")
for (var/obj/effect/landmark/L in landmarks_list)
if (L.name == "Response Team")
L.name = null
if(alert(usr, "Would you like to join the Emergency Response Team?", "Emergency Response Team", "Yes", "No") == "No")
L.name = "Response Team"
return
@@ -80,36 +99,36 @@ var/can_call_ert
return
var/client/C = src.client
var/mob/living/carbon/human/new_commando = C.create_response_team(L.loc, leader_selected)
del(L)
del(L) // Do not qdel landmarks!
new_commando.mind.key = usr.key
new_commando.key = usr.key
new_commando.update_icons()
new_commando << "\blue You are [!leader_selected?"a member":"the <B>LEADER</B>"] of an Emergency Response Team, a type of military division, under CentComm's service. There is a code red alert on [station_name()], you are tasked to go and fix the problem."
new_commando << "<b>You should first gear up and discuss a plan with your team. More members may be joining, don't move out before you're ready."
new_commando << "\blue You are [!leader_selected?"a member":"the <B>LEADER</B>"] of an Emergency Response Team, a type of military division, under Central Command's service. There is an emergency on [station_name()], and you are tasked to go and fix the problem."
new_commando << "<b>You should first gear up and discuss a plan with your team. More members may be joining, so don't move out before you're ready."
if(!leader_selected)
new_commando << "<b>As member of the Emergency Response Team, you answer only to your leader and CentComm officials.</b>"
new_commando << "<b>As member of the Emergency Response Team, you answer only to your leader and Central Command officials.</b>"
else
new_commando << "<b>As leader of the Emergency Response Team, you answer only to CentComm, and have authority to override the Captain where it is necessary to achieve your mission goals. It is recommended that you attempt to cooperate with the captain where possible, however."
new_commando << "<b>As leader of the Emergency Response Team, you answer only to Central Command, and have authority to override the Captain where it is necessary to achieve your mission goals. It is recommended that you attempt to cooperate with the captain where possible, however."
return
else
usr << "You need to be an observer or new player to use this."
// returns a number of dead players in %
proc/percentage_dead()
/proc/percentage_dead()
var/total = 0
var/deadcount = 0
for(var/mob/living/carbon/human/H in mob_list)
if(H.client) // Monkeys and mice don't have a client, amirite?
if(H.stat == 2) deadcount++
if(H.stat == 2)
deadcount++
total++
if(total == 0) return 0
else return round(100 * deadcount / total)
if(total == 0)
return 0
else
return round(100 * deadcount / total)
// counts the number of antagonists in %
proc/percentage_antagonists()
/proc/percentage_antagonists()
var/total = 0
var/antagonists = 0
for(var/mob/living/carbon/human/H in mob_list)
@@ -117,12 +136,14 @@ proc/percentage_antagonists()
antagonists++
total++
if(total == 0) return 0
else return round(100 * antagonists / total)
if(total == 0)
return 0
else
return round(100 * antagonists / total)
// Increments the ERT chance automatically, so that the later it is in the round,
// the more likely an ERT is to be able to be called.
proc/increment_ert_chance()
/proc/increment_ert_chance()
while(send_emergency_team == 0) // There is no ERT at the time.
if(get_security_level() == "green")
ert_base_chance += 1
@@ -138,8 +159,7 @@ proc/increment_ert_chance()
ert_base_chance += 10 // Need those big guns
sleep(600 * 3) // Minute * Number of Minutes
proc/trigger_armed_response_team(var/force = 0)
/proc/trigger_armed_response_team(var/force = 0)
if(!can_call_ert && !force)
return
if(send_emergency_team)
@@ -150,7 +170,8 @@ proc/trigger_armed_response_team(var/force = 0)
send_team_chance += percentage_antagonists() // the more antagonists, the higher the chance
send_team_chance = min(send_team_chance, 100)
if(force) send_team_chance = 100
if(force)
send_team_chance = 100
// there's only a certain chance a team will be sent
if(!prob(send_team_chance))
@@ -159,20 +180,20 @@ proc/trigger_armed_response_team(var/force = 0)
return
command_announcement.Announce("It would appear that an emergency response team was requested for [station_name()]. We will prepare and send one as soon as possible.", "Central Command")
can_call_ert = 0 // Only one call per round, gentleman.
can_call_ert = 0 // Only one call per round, gentlemen.
send_emergency_team = 1
sleep(600 * 5)
send_emergency_team = 0 // Can no longer join the ERT.
/* var/area/security/nuke_storage/nukeloc = locate()//To find the nuke in the vault
/*
var/area/security/nuke_storage/nukeloc = locate() //To find the nuke in the vault
var/obj/machinery/nuclearbomb/nuke = locate() in nukeloc
if(!nuke)
nuke = locate() in world
var/obj/item/weapon/paper/P = new
P.info = "Your orders, Commander, are to use all means necessary to return the station to a survivable condition.<br>To this end, you have been provided with the best tools we can give in the three areas of Medicine, Engineering, and Security. The nuclear authorization code is: <b>[ nuke ? nuke.r_code : "AHH, THE NUKE IS GONE!"]</b>. Be warned, if you detonate this without good reason, we will hold you to account for damages. Memorise this code, and then burn this message."
P.name = "Emergency Nuclear Code, and ERT Orders"
P.info = "Your orders, Commander, are to use all means necessary to return the station to a survivable condition.<br>To this end, you have been provided with the best tools we can give for Security, Medical, Engineering and Janitorial duties. The nuclear authorization code is: <b>[ nuke ? nuke.r_code : "UNKNOWN"]</b>. Be warned, if you detonate this without good reason, we will hold you to account for damages. Memorise this code, and then destroy this message."
P.name = "ERT Orders and Emergency Nuclear Code"
for (var/obj/effect/landmark/A in world)
if (A.name == "nukecode")
P.loc = A.loc
@@ -181,16 +202,11 @@ proc/trigger_armed_response_team(var/force = 0)
*/
/client/proc/create_response_team(obj/spawn_location, leader_selected = 0)
//usr << "\red ERT has been temporarily disabled. Talk to a coder."
//return
var/mob/living/carbon/human/M = new(null)
response_team_members |= M
//todo: god damn this.
//make it a panel, like in character creation
/*var/new_facial = input("Please select facial hair color.", "Character Generation") as color
/*
var/new_facial = input("Please select facial hair color.", "Character Generation") as color
if(new_facial)
M.r_facial = hex2num(copytext(new_facial, 2, 4))
M.g_facial = hex2num(copytext(new_facial, 4, 6))
@@ -208,7 +224,7 @@ proc/trigger_armed_response_team(var/force = 0)
M.g_eyes = hex2num(copytext(new_eyes, 4, 6))
M.b_eyes = hex2num(copytext(new_eyes, 6, 8))
var/new_tone = input("Please select skin tone level: 1-220 (1=albino, 35=caucasian, 150=black, 220='very' black)", "Character Generation") as text
var/new_tone = input("Please select skin tone level: 1-220 (1 = albino, 35 = caucasian, 150 = black, 220 = 'very' black)", "Character Generation") as text
if (!new_tone)
new_tone = 35
@@ -225,19 +241,19 @@ proc/trigger_armed_response_team(var/force = 0)
hairs.Add(H.name) // add hair name to hairs
del(H) // delete the hair after it's all done
// var/new_style = input("Please select hair style", "Character Generation") as null|anything in hairs
// var/new_style = input("Please select hair style.", "Character Generation") as null|anything in hairs
//hair
var/new_hstyle = input(usr, "Select a hair style", "Grooming") as null|anything in hair_styles_list
var/new_hstyle = input(usr, "Select a hair style.", "Grooming") as null|anything in hair_styles_list
if(new_hstyle)
M.h_style = new_hstyle
// facial hair
var/new_fstyle = input(usr, "Select a facial hair style", "Grooming") as null|anything in facial_hair_styles_list
var/new_fstyle = input(usr, "Select a facial hair style.", "Grooming") as null|anything in facial_hair_styles_list
if(new_fstyle)
M.f_style = new_fstyle
// if new style selected (not cancel)
/* if (new_style)
if (new_style)
M.h_style = new_style
for(var/x in all_hairs) // loop through all_hairs again. Might be slightly CPU expensive, but not significantly.
@@ -257,7 +273,7 @@ proc/trigger_armed_response_team(var/force = 0)
fhairs.Add(H.name)
del(H)
new_style = input("Please select facial style", "Character Generation") as null|anything in fhairs
new_style = input("Please select facial hair style.", "Character Generation") as null|anything in fhairs
if(new_style)
M.f_style = new_style
@@ -268,30 +284,50 @@ proc/trigger_armed_response_team(var/force = 0)
break
else
del(H)
*/
var/new_gender = alert(usr, "Please select gender.", "Character Generation", "Male", "Female")
if (new_gender)
if(new_gender == "Male")
M.gender = MALE
else
M.gender = FEMALE*/
M.gender = FEMALE
//M.rebuild_appearance()
*/
M.gender = pick(MALE, FEMALE)
M.set_species("Human",1)
M.dna.ready_dna(M) // Quadriplegic Nuke Ops won't be participating in the paralympics
var/datum/preferences/A = new()//Randomize appearance for the commando.
A.randomize_appearance_for(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)
M.update_hair()
M.update_body()
M.check_dna(M)
M.r_facial = hex2num(copytext(hair_c, 2, 4))
M.g_facial = hex2num(copytext(hair_c, 4, 6))
M.b_facial = hex2num(copytext(hair_c, 6, 8))
M.r_hair = hex2num(copytext(hair_c, 2, 4))
M.g_hair = hex2num(copytext(hair_c, 4, 6))
M.b_hair = hex2num(copytext(hair_c, 6, 8))
M.r_eyes = hex2num(copytext(eye_c, 2, 4))
M.g_eyes = hex2num(copytext(eye_c, 4, 6))
M.b_eyes = hex2num(copytext(eye_c, 6, 8))
M.s_tone = skin_tone
M.h_style = hair_style
M.f_style = facial_hair_style
M.real_name = "[!leader_selected ? pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant 1st Class", "Master Sergeant", "Sergeant Major") : pick("Lieutenant", "Captain", "Major")] [pick(last_names)]"
M.real_name = "[!leader_selected ? pick("Corporal", "Sergeant", "Staff Sergeant", "Sergeant First Class", "Master Sergeant", "Sergeant Major") : pick("Lieutenant", "Captain", "Major")] [pick(last_names)]"
M.name = M.real_name
M.age = !leader_selected ? rand(23,35) : rand(35,45)
M.dna.ready_dna(M)//Creates DNA.
//Creates mind stuff.
M.mind = new
M.mind.current = M
@@ -299,22 +335,18 @@ proc/trigger_armed_response_team(var/force = 0)
M.mind.assigned_role = "MODE"
M.mind.special_role = "Response Team"
if(!(M.mind in ticker.minds))
ticker.minds += M.mind//Adds them to regular mind list.
ticker.minds += M.mind //Adds them to regular mind list.
M.loc = spawn_location
var/class = input("Which class would you like to choose?") in response_team_chosen_types
if(leader_selected)
equip_emergencyresponsesquad(M, "commander")
equip_emergencyresponsesquad(M, "Commander", class)
else
switch(input("Which class?") in list("Security","Engineer","Medical"))
if("Security")
equip_emergencyresponsesquad(M, "sec")
if("Engineer")
equip_emergencyresponsesquad(M, "eng")
if("Medical")
equip_emergencyresponsesquad(M, "med")
equip_emergencyresponsesquad(M, class)
return M
/proc/equip_emergencyresponsesquad(var/mob/living/carbon/human/M, var/ertrole)
/proc/equip_emergencyresponsesquad(var/mob/living/carbon/human/M, var/role, var/role2)
M.equip_to_slot_or_del(new /obj/item/device/radio/headset/ert/alt(src), slot_l_ear)
M.equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(M), slot_w_uniform)
@@ -322,13 +354,21 @@ proc/trigger_armed_response_team(var/force = 0)
L.imp_in = M
L.implanted = 1
switch(ertrole)
if("commander")
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/combat(M), slot_gloves)
switch(role)
if("Commander")
if(role2 == "Janitorial")
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/galoshes(M), slot_shoes)
else
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/suit/space/rig/ert/commander(M), slot_wear_suit)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/captain(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(M), slot_glasses)
var/obj/item/clothing/suit/space/rig/R = M.wear_suit
R.helmet = new /obj/item/clothing/head/helmet/space/rig/ert/commander(M)
M.equip_to_slot_or_del(R.helmet, slot_head)
R.helmet.flags |= NODROP
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/swat(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
var/obj/item/weapon/card/id/W = new(src)
W.assignment = "Emergency Response Team Leader"
@@ -345,23 +385,78 @@ proc/trigger_armed_response_team(var/force = 0)
pda.name = "PDA-[M.real_name] ([pda.ownjob])"
M.equip_to_slot_or_del(pda, slot_wear_pda)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/response_team(M), slot_in_backpack)
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/swat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/pinpointer(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/gun/energy/gun(M), slot_s_store)
M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/pinpointer/advpinpointer(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/security/response_team(M), slot_belt)
switch(role2)
if("Security")
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/glasses/sunglasses/sechud(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/security/response_team(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/night(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/handcuffs(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/nuclear(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/shield/riot/tele(M), slot_in_backpack)
if("Medical")
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/glasses/hud/health/night(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/defibrillator/compact/combat/loaded(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/fire(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/reagent_containers/hypospray/CMO(M), slot_in_backpack)
if("sec")
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(M), slot_r_hand)
if("Engineering")
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/glasses/meson/night(M), slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full/multitool(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/rcd/combat(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/stack/sheet/metal/full(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/stack/sheet/glass/full(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/stack/sheet/plasteel/full(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/briefcase/inflatable(M), slot_r_hand)
if("Janitorial")
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/purple(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/janitor, slot_glasses)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/janitor/full, slot_belt)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/night(src), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/lights/mixed(src), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/spray/plantbgone(src), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/glass/bucket(src), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/mop/advanced(M), slot_r_hand)
new /obj/structure/mopbucket/full(get_turf(M))
if("Security")
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/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/storage/backpack/security(M), slot_back)
var/obj/item/clothing/suit/space/rig/R = M.wear_suit
R.helmet = new /obj/item/clothing/head/helmet/space/rig/ert/security(M)
M.equip_to_slot_or_del(R.helmet, slot_head)
R.helmet.flags |= NODROP
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/swat(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses/sechud(M), slot_glasses)
var/obj/item/weapon/card/id/W = new(src)
W.assignment = "Emergency Response Team"
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 = "centcom"
@@ -371,28 +466,37 @@ proc/trigger_armed_response_team(var/force = 0)
var/obj/item/device/pda/heads/pda = new(src)
pda.owner = M.real_name
pda.ownjob = "Emergency Response Team"
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)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/response_team(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_s_store)
M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/security/night(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/handcuffs(M), slot_in_backpack)
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/swat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun/nuclear(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/shield/riot/tele(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/security/response_team(M), slot_belt)
if("med")
if("Medical")
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/combat(M), slot_gloves)
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/weapon/storage/backpack/medic(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health_advanced(M), slot_glasses)
var/obj/item/clothing/suit/space/rig/R = M.wear_suit
R.helmet = new /obj/item/clothing/head/helmet/space/rig/ert/medical(M)
M.equip_to_slot_or_del(R.helmet, slot_head)
R.helmet.flags |= NODROP
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/swat(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/hud/health/night(M), slot_glasses)
var/obj/item/weapon/card/id/W = new(src)
W.assignment = "Emergency Response Team"
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 = "centcom"
@@ -402,32 +506,39 @@ proc/trigger_armed_response_team(var/force = 0)
var/obj/item/device/pda/heads/pda = new(src)
pda.owner = M.real_name
pda.ownjob = "Emergency Response Team"
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)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/response_team(M), slot_in_backpack)
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/swat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_s_store)
M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/fire(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/reagent_containers/hypospray/CMO(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/defibrillator/compact/combat/loaded(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/firstaid/adv(M), slot_r_hand)
if("eng")
if("Engineering")
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/combat(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/storage/backpack/industrial(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson(M), slot_glasses)
var/obj/item/clothing/suit/space/rig/R = M.wear_suit
R.helmet = new /obj/item/clothing/head/helmet/space/rig/ert/engineer(M)
M.equip_to_slot_or_del(R.helmet, slot_head)
R.helmet.flags |= NODROP
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/swat(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/meson/night(M), slot_glasses)
var/obj/item/weapon/card/id/W = new(src)
W.assignment = "Emergency Response Team"
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 = "centcom"
@@ -437,22 +548,68 @@ proc/trigger_armed_response_team(var/force = 0)
var/obj/item/device/pda/heads/pda = new(src)
pda.owner = M.real_name
pda.ownjob = "Emergency Response Team"
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)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_s_store)
M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/response_team(M), slot_in_backpack)
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/swat(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/rcd/combat(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/gun(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/stack/sheet/metal/full(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/stack/sheet/glass/full(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/stack/sheet/plasteel/full(M), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full/response_team(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/utility/full/multitool(M), slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/briefcase/inflatable(M), slot_l_hand)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/briefcase/inflatable(M), slot_r_hand)
if("Janitorial")
M.equip_to_slot_or_del(new /obj/item/clothing/shoes/galoshes(M), slot_shoes)
M.equip_to_slot_or_del(new /obj/item/clothing/gloves/purple(M), slot_gloves)
M.equip_to_slot_or_del(new /obj/item/clothing/suit/space/rig/ert/janitor(M), slot_wear_suit)
var/obj/item/clothing/suit/space/rig/R = M.wear_suit
R.helmet = new /obj/item/clothing/head/helmet/space/rig/ert/janitor(M)
M.equip_to_slot_or_del(R.helmet, slot_head)
R.helmet.flags |= NODROP
M.equip_to_slot_or_del(new /obj/item/clothing/mask/gas/swat(M), slot_wear_mask)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(M), slot_back)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/janitor(M), slot_glasses)
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 - Janitor)"
W.icon_state = "centcom"
W.access = get_all_accesses()
W.access += list(access_cent_general, access_cent_living, access_cent_storage)
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-janitor"
M.equip_to_slot_or_del(pda, slot_wear_pda)
M.equip_to_slot_or_del(new /obj/item/weapon/gun/energy/gun(M), slot_s_store)
M.equip_to_slot_or_del(new /obj/item/weapon/tank/emergency_oxygen/double/full(M), slot_r_store)
M.equip_to_slot_or_del(new /obj/item/clothing/glasses/night(src), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/box/lights/mixed(src), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/spray/plantbgone(src), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/reagent_containers/glass/bucket(src), slot_in_backpack)
M.equip_to_slot_or_del(new /obj/item/weapon/storage/belt/janitor/full, slot_belt)
M.equip_to_slot_or_del(new /obj/item/weapon/mop/advanced(M), slot_r_hand)
new /obj/structure/mopbucket/full(get_turf(M))
/*/mob/living/carbon/human/proc/equip_strike_team(leader_selected = 0) Old ERT equip verb.
@@ -462,7 +619,6 @@ proc/trigger_armed_response_team(var/force = 0)
//Replaced with new ERT uniform
equip_to_slot_or_del(new /obj/item/clothing/under/rank/centcom_officer(src), slot_w_uniform)
equip_to_slot_or_del(new /obj/item/clothing/shoes/combat(src), slot_shoes)
equip_to_slot_or_del(new /obj/item/device/radio/headset/ert(src), slot_l_ear)
equip_to_slot_or_del(new /obj/item/clothing/glasses/sunglasses(src), slot_glasses)
equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(src), slot_back)
@@ -490,9 +646,3 @@ proc/trigger_armed_response_team(var/force = 0)
L.implanted = 1
return 1*/
//debug verb (That is horribly coded, LEAVE THIS OFF UNLESS PRIVATELY TESTING. Seriously.
/*client/verb/ResponseTeam()
set category = "Admin"
if(!send_emergency_team)
send_emergency_team = 1*/
+14 -1
View File
@@ -20,6 +20,13 @@
sprite_sheets = list(
"Vox" = 'icons/mob/species/vox/eyes.dmi'
)
/obj/item/clothing/glasses/meson/night
name = "Night Vision Optical Meson Scanner"
desc = "An Optical Meson Scanner fitted with an amplified visible light spectrum overlay, providing greater visual clarity in darkness."
icon_state = "nvgmeson"
item_state = "glasses"
darkness_view = 8
/obj/item/clothing/glasses/meson/prescription
name = "prescription mesons"
@@ -42,10 +49,16 @@
desc = "nothing"
icon_state = "purple"
item_state = "glasses"
/obj/item/clothing/glasses/janitor
name = "Janitorial Goggles"
desc = "These'll keep the soap out of your eyes."
icon_state = "purple"
item_state = "glasses"
/obj/item/clothing/glasses/night
name = "Night Vision Goggles"
desc = "You can totally see in the dark now!."
desc = "You can totally see in the dark now!"
icon_state = "night"
item_state = "glasses"
origin_tech = "magnets=2"
+16 -4
View File
@@ -25,7 +25,7 @@
/obj/item/clothing/suit/space/rig/ert
name = "emergency response team suit"
desc = "A suit worn by members of the Nanotrasen Emaergency Response Team. Armoured, space ready, and fire resistant."
desc = "A suit worn by members of the Nanotrasen Emergency Response Team. Armoured, space ready, and fire resistant."
icon_state = "ert_commander"
item_state = "suit-command"
w_class = 3
@@ -69,13 +69,13 @@
//Engineer
/obj/item/clothing/head/helmet/space/rig/ert/engineer
name = "emergency response team engineer helmet"
desc = "A helmet worn by engineering members of a Nanotrasen Emergency Response Team. Has blue highlights. Armoured and space ready."
desc = "A helmet worn by engineers of a Nanotrasen Emergency Response Team. Has yellow highlights. Armoured and space ready."
icon_state = "rig0-ert_engineer"
_color = "ert_engineer"
/obj/item/clothing/suit/space/rig/ert/engineer
name = "emergency response team engineer suit"
desc = "A suit worn by the engineering of a Nanotrasen Emergency Response Team. Has blue highlights. Armoured, space ready, and fire resistant."
desc = "A suit worn by the engineers of a Nanotrasen Emergency Response Team. Has yellow highlights. Armoured, space ready, and fire resistant."
icon_state = "ert_engineer"
//Medical
@@ -88,4 +88,16 @@
/obj/item/clothing/suit/space/rig/ert/medical
name = "emergency response team medical suit"
desc = "A suit worn by medical members of a Nanotrasen Emergency Response Team. Has white highlights. Armoured and space ready."
icon_state = "ert_medical"
icon_state = "ert_medical"
//Janitor
/obj/item/clothing/head/helmet/space/rig/ert/janitor
name = "emergency response team janitor helmet"
desc = "A helmet worn by janitorial members of a Nanotrasen Emergency Response Team. Has purple highlights. Armoured and space ready."
icon_state = "rig0-ert_janitor"
_color = "ert_janitor"
/obj/item/clothing/suit/space/rig/ert/janitor
name = "emergency response team janitor suit"
desc = "A suit worn by the janitorial of a Nanotrasen Emergency Response Team. Has purple highlights. Armoured, space ready, and fire resistant."
icon_state = "ert_janitor"
+1 -1
View File
@@ -245,7 +245,7 @@
if(!helmet)
user << "\The [src] does not have a helmet installed."
else
user << "You detatch \the [helmet] from \the [src]'s helmet mount."
user << "You detach \the [helmet] from \the [src]'s helmet mount."
helmet.loc = get_turf(src)
src.helmet = null
return
+1 -1
View File
@@ -1207,7 +1207,7 @@ obj/item/weapon/organ/head/attackby(obj/item/weapon/W as obj, mob/user as mob, p
user.put_in_hands(B)
B.transfer_identity(brainmob)
else
var/obj/item/brain/B = new(loc)
var/obj/item/brain/B = new()
user.put_in_hands(B)
B.transfer_identity(brainmob)
@@ -54,6 +54,17 @@
materials = list("$metal" = 500, "$glass" = 1000)
build_path = /obj/item/device/gps
category = list("Bluespace")
/datum/design/miningsatchel_holding
name = "Mining Satchel of Holding"
desc = "A mining satchel that can hold an infinite amount of ores."
id = "minerbag_holding"
req_tech = list("bluespace" = 3, "materials" = 4)
build_type = PROTOLATHE
materials = list("$gold" = 250, "$uranium" = 500) //quite cheap, for more convenience
reliability = 100
build_path = /obj/item/weapon/storage/bag/ore/holding
category = list("Bluespace")
/datum/design/telepad_beacon
name = "Telepad Beacon"
@@ -51,6 +51,26 @@
build_path = /obj/item/clothing/glasses/hud/security/night
category = list("Equipment")
/datum/design/nvgmesons
name = "Night Vision Optical Meson Scanners"
desc = "Prototype meson scanners fitted with an extra sensor which amplifies the visible light spectrum and overlays it to the UHD display."
id = "nvgmesons"
req_tech = list("materials" = 5, "magnets" = 5, "engineering" = 4)
build_type = PROTOLATHE
materials = list("$metal" = 300, "$glass" = 400, "$plasma" = 250, "$uranium" = 1000)
build_path = /obj/item/clothing/glasses/meson
category = list("Mining")
/datum/design/mesons
name = "Optical Meson Scanners"
desc = "Used for seeing walls, floors, and stuff through anything."
id = "mesons"
req_tech = list("materials" = 3, "magnets" = 3, "engineering" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 200, "$glass" = 300, "$plasma" = 100)
build_path = /obj/item/clothing/glasses/meson
category = list("Equipment")
/datum/design/security_hud
name = "Security HUD"
desc = "A heads-up display that scans the humans in view and provides accurate data about their ID status."
@@ -32,16 +32,6 @@
build_path = /obj/item/weapon/pickaxe/drill
category = list("Mining")
/datum/design/mesons
name = "Optical Meson Scanners"
desc = "Used for seeing walls, floors, and stuff through anything."
id = "mesons"
req_tech = list("materials" = 3, "magnets" = 3, "engineering" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 200, "$glass" = 300, "$plasma" = 100)
build_path = /obj/item/clothing/glasses/meson
category = list("Mining")
/datum/design/plasmacutter
name = "Plasma Cutter"
desc = "You could use it to cut limbs off of xenos! Or, you know, mine stuff."
@@ -6,6 +6,7 @@
var/active = 0 //This gets set to 1 on all devices except the one where the initial request was made.
var/event = ""
var/screen = 1
var/list/ert_chosen = list()
var/confirmed = 0 //This variable is set by the device that confirms the request.
var/confirm_delay = 20 //(2 seconds)
var/busy = 0 //Busy when waiting for authentication or an event request has been sent from this device.
@@ -41,6 +42,9 @@
event_source.confirmed = 1
event_source.event_confirmed_by = usr
else if(screen == 2)
if(event == "Emergency Response Team" && !ert_chosen.len)
user << "<span class='notice'>Pick the Emergency Response Team type first!</span>"
return
event_triggered_by = usr
broadcast_request() //This is the device making the initial event request. It needs to broadcast to other devices
@@ -67,11 +71,16 @@
var/data[0]
data["screen"] = screen
data["event"] = event
data["src"] = "\ref[src]"
data["erttypes"] = list()
for(var/type in response_team_types)
var/active = 0
if((type in ert_chosen))
active = 1
data["erttypes"] += list(list("name" = type, "active" = active))
ui = nanomanager.try_update_ui(user, src, ui_key, ui, data, force_open)
if (!ui)
ui = new(user, src, ui_key, "keycard_auth.tmpl", "Keycard Authentication Device UI", 520, 260)
ui = new(user, src, ui_key, "keycard_auth.tmpl", "Keycard Authentication Device UI", 520, 320)
ui.set_initial_data(data)
ui.open()
@@ -85,10 +94,17 @@
usr << "This device is without power."
return
if(href_list["triggerevent"])
ert_chosen.Cut()
event = href_list["triggerevent"]
screen = 2
if(href_list["reset"])
reset()
if(href_list["ert"])
var/chosen = href_list["ert"]
if((chosen in response_team_types) && !(chosen in ert_chosen))
ert_chosen |= chosen
else
ert_chosen -= chosen
nanomanager.update_uis(src)
add_fingerprint(usr)
@@ -148,9 +164,10 @@
feedback_inc("alert_keycard_auth_maintRevoke",1)
if("Emergency Response Team")
if(is_ert_blocked())
usr << "\red All emergency response teams are dispatched and can not be called at this time."
usr << "\red All Emergency Response Teams are dispatched and can not be called at this time."
return
response_team_chosen_types += ert_chosen
trigger_armed_response_team(1)
feedback_inc("alert_keycard_auth_ert",1)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 182 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 332 KiB

After

Width:  |  Height:  |  Size: 334 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 116 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

After

Width:  |  Height:  |  Size: 51 KiB

+14021 -14033
View File
File diff suppressed because it is too large Load Diff
+24 -10
View File
@@ -2,23 +2,37 @@
Title: Keycard Authentication Device UI
Used In File(s): \code\modules\security_levels\keycard_authentication.dm
-->
<style type="text/css">
.event {
font-size: 16px;
font-weight: bold;
margin-bottom: 15px;
text-align: center;
}
</style>
<div class="item">
<h1>Keycard Authentication Device</h1>
This device is used to trigger certain high security events. It requires the simultaneous swipe of two high-level ID cards.
<div class="item">
{{if data.screen == 1}}
<h2>Trigger Event</h2>
<div class="itemContents">
{{:helper.link('Red Alert', 'alert', { 'triggerevent' : 'Red Alert', 'source' : data.src })}}
{{:helper.link('Emergency Response Team', 'alert', { 'triggerevent' : 'Emergency Response Team', 'source' : data.src })}}
</div>
<div style="margin-top: 10px;" class="itemContents">
{{:helper.link('Grant Emergency Maintenance Access', 'unlocked', { 'triggerevent' : 'Grant Emergency Maintenance Access', 'source' : data.src })}}
{{:helper.link('Revoke Emergency Maintenance Access', 'locked', { 'triggerevent' : 'Revoke Emergency Maintenance Access', 'source' : data.src })}}
</div>
{{:helper.link('Red Alert', 'alert', { 'triggerevent' : 'Red Alert' })}}
{{:helper.link('Emergency Response Team', 'alert', { 'triggerevent' : 'Emergency Response Team' })}}
{{:helper.link('Grant Emergency Maintenance Access', 'unlocked', { 'triggerevent' : 'Grant Emergency Maintenance Access' })}}
{{:helper.link('Revoke Emergency Maintenance Access', 'locked', { 'triggerevent' : 'Revoke Emergency Maintenance Access' })}}
{{else data.screen == 2}}
<h2>Please swipe your card to authorize the following event:</h2>
<div style="text-align: center; font-size: 16px; font-weight: bold;">{{:data.event}}</div>
{{if data.event == 'Emergency Response Team'}}
<div class="item">
<div class="itemLabel">Select ERT Type:</div>
<div class="itemContent">
{{for data.erttypes}}
{{:helper.link(value.name, value.active ? 'minus' : 'plus', { 'ert' : value.name }, '', value.active ? 'linkOn' : '')}}
{{/for}}
</div>
</div>
{{/if}}
<h2 class="blue-header">Please swipe your card to authorize the following event</h2>
<div class="event">{{:data.event}}</div>
{{:helper.link('Back', 'close', { 'reset' : 1 })}}
{{/if}}
</div>