BS12 -> Ponies merge

This commit is contained in:
ZomgPonies
2013-09-09 10:51:16 -04:00
parent b389395c0e
commit c1222034ee
125 changed files with 18129 additions and 1673 deletions
+6
View File
@@ -497,26 +497,32 @@ proc/process_ghost_teleport_locs()
/area/vox_station/transit
name = "\improper hyperspace"
icon_state = "shuttle"
requires_power = 0
/area/vox_station/southwest_solars
name = "\improper aft port solars"
icon_state = "southwest"
requires_power = 0
/area/vox_station/northwest_solars
name = "\improper fore port solars"
icon_state = "northwest"
requires_power = 0
/area/vox_station/northeast_solars
name = "\improper fore starboard solars"
icon_state = "northeast"
requires_power = 0
/area/vox_station/southeast_solars
name = "\improper aft starboard solars"
icon_state = "southeast"
requires_power = 0
/area/vox_station/mining
name = "\improper nearby mining asteroid"
icon_state = "north"
requires_power = 0
//PRISON
/area/prison
+1 -1
View File
@@ -10,7 +10,7 @@ var/global/datum/controller/gameticker/ticker
var/const/restart_timeout = 600
var/current_state = GAME_STATE_PREGAME
var/hide_mode = 0
var/hide_mode = 1
var/datum/game_mode/mode = null
var/event_time = null
var/event = 0
+10 -1
View File
@@ -836,6 +836,8 @@ datum/objective/heist/loot
for(var/obj/O in locate(/area/shuttle/vox/station))
if(istype(O,target)) total_amount++
for(var/obj/I in O.contents)
if(istype(I,target)) total_amount++
if(total_amount >= target_amount) return 1
var/datum/game_mode/heist/H = ticker.mode
@@ -883,10 +885,17 @@ datum/objective/heist/salvage
var/total_amount = 0
for(var/obj/item/O in locate(/area/shuttle/vox/station))
var/obj/item/stack/sheet/S
if(istype(O,/obj/item/stack/sheet))
if(O.name == target)
var/obj/item/stack/sheet/S = O
S = O
total_amount += S.amount
for(var/obj/I in O.contents)
if(istype(I,/obj/item/stack/sheet))
if(I.name == target)
S = I
total_amount += S.amount
var/datum/game_mode/heist/H = ticker.mode
for(var/datum/mind/raider in H.raiders)
+4
View File
@@ -15,6 +15,10 @@
if(!H) return 0
H.equip_to_slot_or_del(new /obj/item/clothing/under/color/grey(H), slot_w_uniform)
H.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(H), slot_shoes)
if(H.backbag == 1)
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H), slot_r_hand)
else
H.equip_to_slot_or_del(new /obj/item/weapon/storage/box/survival(H.back), slot_in_backpack)
return 1
/datum/job/assistant/get_access()
+1
View File
@@ -353,6 +353,7 @@
equip(var/mob/living/carbon/human/H)
if(!H) return 0
H.equip_to_slot_or_del(new /obj/item/device/radio/headset/headset_sec(H), slot_ears)
switch(H.backbag)
if(2) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack(H), slot_back)
if(3) H.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel_norm(H), slot_back)
+34 -16
View File
@@ -91,10 +91,10 @@
/obj/machinery/optable/proc/check_victim()
if(locate(/mob/living/carbon/human, src.loc))
var/mob/M = locate(/mob/living/carbon/human, src.loc)
var/mob/living/carbon/human/M = locate(/mob/living/carbon/human, src.loc)
if(M.resting)
src.victim = M
icon_state = "table2-active"
icon_state = M.pulse ? "table2-active" : "table2-idle"
return 1
src.victim = null
icon_state = "table2-idle"
@@ -103,22 +103,40 @@
/obj/machinery/optable/process()
check_victim()
/obj/machinery/optable/attackby(obj/item/weapon/W as obj, mob/living/carbon/user as mob)
/obj/machinery/optable/proc/take_victim(mob/living/carbon/human/H, mob/living/carbon/user as mob)
if (H == user)
user.visible_message("[user] climbs on the operating table.","You climb on the operating table.")
else
visible_message("\red [H] has been laid on the operating table by [user].", 3)
if (H.client)
H.client.perspective = EYE_PERSPECTIVE
H.client.eye = src
H.resting = 1
H.loc = src.loc
for(var/obj/O in src)
O.loc = src.loc
src.add_fingerprint(user)
icon_state = H.pulse ? "table2-active" : "table2-idle"
src.victim = H
/obj/machinery/optable/verb/climb_on()
set name = "Climb On Table"
set category = "Object"
set src in oview(1)
if(usr.stat || !ishuman(usr) || usr.buckled || usr.restrained())
return
if(src.victim)
usr << "\blue <B>The table is already occupied!</B>"
return
take_victim(usr,usr)
/obj/machinery/optable/attackby(obj/item/weapon/W as obj, mob/living/carbon/user as mob)
if (istype(W, /obj/item/weapon/grab))
if(ismob(W:affecting))
var/mob/M = W:affecting
if (M.client)
M.client.perspective = EYE_PERSPECTIVE
M.client.eye = src
M.resting = 1
M.loc = src.loc
visible_message("\red [M] has been laid on the operating table by [user].", 3)
for(var/obj/O in src)
O.loc = src.loc
src.add_fingerprint(user)
icon_state = "table2-active"
src.victim = M
if(ishuman(W:affecting))
take_victim(W:affecting,usr)
del(W)
return
user.drop_item()
+1 -1
View File
@@ -200,4 +200,4 @@
name = "Engineering Cameras"
desc = "Used to monitor fires and breaches."
icon_state = "engineeringcameras"
network = list("Power Alarms","Atmosphere Alarms","Fire Alarms")
network = list("Engineering","Power Alarms","Atmosphere Alarms","Fire Alarms")
+37 -2
View File
@@ -1,8 +1,37 @@
#define VOX_SHUTTLE_MOVE_TIME 260
#define VOX_SHUTTLE_COOLDOWN 460
#define VOX_SHUTTLE_MOVE_TIME 400
#define VOX_SHUTTLE_COOLDOWN 1200
//Copied from Syndicate shuttle.
var/global/vox_shuttle_location
var/global/announce_vox_departure = 1 //Stealth systems - give an announcement or not.
/obj/machinery/computer/vox_stealth
name = "skipjack cloaking field terminal"
icon = 'icons/obj/computer.dmi'
icon_state = "syndishuttle"
req_access = list(access_syndicate)
/obj/machinery/computer/vox_stealth/attackby(obj/item/I as obj, mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/vox_stealth/attack_ai(mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/vox_stealth/attack_paw(mob/user as mob)
return attack_hand(user)
/obj/machinery/computer/vox_stealth/attack_hand(mob/user as mob)
if(!allowed(user))
user << "\red Access Denied"
return
if(announce_vox_departure)
user << "\red Shuttle stealth systems have been activated. The Exodus will not be warned of our arrival."
announce_vox_departure = 0
else
user << "\red Shuttle stealth systems have been deactivated. The Exodus will be warned of our arrival."
announce_vox_departure = 1
/obj/machinery/computer/vox_station
name = "vox skipjack terminal"
@@ -24,6 +53,12 @@ var/global/vox_shuttle_location
var/area/dest_location = locate(destination)
if(curr_location == dest_location) return
if(announce_vox_departure)
if(curr_location == locate(/area/shuttle/vox/station))
command_alert("Attention, Exodus, we just tracked a small target bypassing our defensive perimeter. Can't fire on it without hitting the station - you've got incoming visitors, like it or not.", "NSV Icarus")
else if(dest_location == locate(/area/shuttle/vox/station))
command_alert("Your guests are pulling away, Exodus - moving too fast for us to draw a bead on them. Looks like they're heading out of Tau Ceti at a rapid clip.", "NSV Icarus")
moving = 1
lastMove = world.time
+62 -33
View File
@@ -1,11 +1,11 @@
/obj/machinery/atmospherics/unary/cryo_cell
name = "cryo cell"
name = "Cryo Cell"
icon = 'icons/obj/cryogenics.dmi'
icon_state = "cell-off"
density = 1
anchored = 1.0
layer = 2.8
var/on = 0
var/temperature_archived
var/mob/living/carbon/occupant = null
@@ -61,37 +61,66 @@
go_out()
return
/obj/machinery/atmospherics/unary/cryo_cell/attack_hand(mob/user as mob)
user.set_machine(src)
var/beaker_text = ""
var/health_text = ""
var/temp_text = ""
if(occupant)
if(occupant.health <= -100)
health_text = "<FONT color=red>Dead</FONT>"
else if(occupant.health < 0)
health_text = "<FONT color=red>[round(occupant.health,0.1)]</FONT>"
else
health_text = "[round(occupant.health,0.1)]"
if(air_contents.temperature > T0C)
temp_text = "<FONT color=red>[air_contents.temperature]</FONT>"
/obj/machinery/atmospherics/unary/cryo_cell/attack_hand(mob/user)
ui_interact(user)
/obj/machinery/atmospherics/unary/cryo_cell/ui_interact(mob/user, ui_key = "main")
var/data[0]
data["isOperating"] = on
data["hasOccupant"] = occupant ? 1 : 0
var/occupantData[0]
if (!occupant)
occupantData["name"] = null
occupantData["stat"] = null
occupantData["health"] = null
occupantData["bruteLoss"] = null
occupantData["oxyLoss"] = null
occupantData["toxLoss"] = null
occupantData["fireLoss"] = null
occupantData["bodyTemperature"] = null
else
occupantData["name"] = occupant.name
occupantData["stat"] = occupant.stat
occupantData["health"] = round(occupant.health)
occupantData["bruteLoss"] = round(occupant.getBruteLoss())
occupantData["oxyLoss"] = round(occupant.getOxyLoss())
occupantData["toxLoss"] = round(occupant.getToxLoss())
occupantData["fireLoss"] = round(occupant.getFireLoss())
occupantData["bodyTemperature"] = round(occupant.bodytemperature)
data["occupant"] = occupantData;
data["cellTemperature"] = round(air_contents.temperature)
data["cellTemperatureStatus"] = "good"
if(air_contents.temperature > T0C) // if greater than 273.15 kelvin (0 celcius)
data["cellTemperatureStatus"] = "bad"
else if(air_contents.temperature > 225)
temp_text = "<FONT color=black>[air_contents.temperature]</FONT>"
data["cellTemperatureStatus"] = "average"
data["isBeakerLoaded"] = beaker ? 1 : 0
var beakerContents[0]
if(beaker && beaker:reagents && beaker:reagents.reagent_list.len)
for(var/datum/reagent/R in beaker:reagents.reagent_list)
beakerContents.Add(list(list("name" = R.name, "volume" = R.volume))) // list in a list because Byond merges the first list...
data["beakerContents"] = beakerContents
//user << list2json(data)
var/datum/nanoui/ui = nanomanager.get_open_ui(user, src, ui_key)
if (!ui)
ui = new(user, src, ui_key, "cryo.tmpl", "Cryo Cell Control System", 520, 410)
// When the UI is first opened this is the data it will use
ui.set_initial_data(data)
ui.open()
// Auto update every Master Controller tick
ui.set_auto_update(1)
else
temp_text = "<FONT color=blue>[air_contents.temperature]</FONT>"
if(beaker)
beaker_text = "<B>Beaker:</B> <A href='?src=\ref[src];eject=1'>Eject</A>"
else
beaker_text = "<B>Beaker:</B> <FONT color=red>No beaker loaded</FONT>"
var/dat = {"<B>Cryo cell control system</B><BR>
<B>Current cell temperature:</B> [temp_text]K<BR>
<B>Cryo status:</B> [ on ? "<A href='?src=\ref[src];start=1'>Off</A> <B>On</B>" : "<B>Off</B> <A href='?src=\ref[src];start=1'>On</A>"]<BR>
[beaker_text]<BR><BR>
<B>Current occupant:</B> [occupant ? "<BR>Name: [occupant]<BR>Health: [health_text]<BR>Oxygen deprivation: [round(occupant.getOxyLoss(),0.1)]<BR>Brute damage: [round(occupant.getBruteLoss(),0.1)]<BR>Fire damage: [round(occupant.getFireLoss(),0.1)]<BR>Toxin damage: [round(occupant.getToxLoss(),0.1)]<BR>Body temperature: [occupant.bodytemperature]<BR>Heartbeat rate: [occupant.get_pulse(GETPULSE_TOOL)]" : "<FONT color=red>None</FONT>"]<BR>
"}
user.set_machine(src)
user << browse(dat, "window=cryo")
onclose(user, "cryo")
// The UI is already open so push the new data to it
ui.push_data(data)
return
//user.set_machine(src)
/obj/machinery/atmospherics/unary/cryo_cell/Topic(href, href_list)
if ((get_dist(src, usr) <= 1) || istype(usr, /mob/living/silicon/ai))
@@ -102,9 +131,9 @@
if (beaker)
var/obj/item/weapon/reagent_containers/glass/B = beaker
B.loc = get_step(loc, SOUTH)
beaker = null
beaker = null
updateUsrDialog()
nanomanager.update_uis(src) // update all UIs attached to this object
add_fingerprint(usr)
return
+3 -8
View File
@@ -113,7 +113,7 @@ Growing it to term with nothing injected will grab a ghost from the observers. *
found_player = 1
var/mob/living/carbon/human/podman = new /mob/living/carbon/human(parent.loc)
var/mob/living/carbon/monkey/diona/podman = new(parent.loc)
podman.ckey = player.ckey
if(player.mob && player.mob.mind)
@@ -122,14 +122,9 @@ Growing it to term with nothing injected will grab a ghost from the observers. *
if(realName)
podman.real_name = realName
else
podman.real_name = "Diona [rand(0,999)]"
podman.real_name = "diona nymph ([rand(100,999)])"
podman.gender = NEUTER
podman.dna = new /datum/dna()
podman.dna.real_name = podman.real_name
podman.set_species("Diona")
podman.dna.mutantrace = "plant"
podman.update_mutantrace()
// Update mode specific HUD icons.
switch(ticker.mode.name)
@@ -158,5 +153,5 @@ Growing it to term with nothing injected will grab a ghost from the observers. *
if (newname != "")
podman.real_name = newname
parent.visible_message("\blue The pod disgorges a fully-formed plant person!")
parent.visible_message("\blue The pod disgorges a fully-formed plant creature!")
parent.update_tray()
@@ -473,7 +473,6 @@ var/message_delay = 0 // To make sure restarting the recentmessages list is kept
R.show_message(rendered, 2)
/* --- Process all the mobs that heard the voice normally (did not understand) --- */
// Does not display message; displayes the mob's voice_message (ie "chimpers")
if (length(heard_voice))
var/rendered = "[part_a][vname][part_b][vmessage][part_c]"
@@ -1021,6 +1021,8 @@ var/global/list/obj/item/device/pda/PDAs = list()
switch(scanmode)
if(3)
if(!isobj(A))
return
if(!isnull(A.reagents))
if(A.reagents.reagent_list.len > 0)
var/reagents_length = A.reagents.reagent_list.len
@@ -324,7 +324,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
"name" = displayname, // the mob's display name
"job" = jobname, // the mob's job
"key" = mobkey, // the mob's key
"vmessage" = M.voice_message, // the message to display if the voice wasn't understood
"vmessage" = pick(M.speak_emote), // the message to display if the voice wasn't understood
"vname" = M.voice_name, // the name to display if the voice wasn't understood
"vmask" = voicemask, // 1 if the mob is using a voice gas mask
@@ -381,7 +381,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
"name" = displayname, // the mob's display name
"job" = jobname, // the mob's job
"key" = mobkey, // the mob's key
"vmessage" = M.voice_message, // the message to display if the voice wasn't understood
"vmessage" = pick(M.speak_emote), // the message to display if the voice wasn't understood
"vname" = M.voice_name, // the name to display if the voice wasn't understood
"vmask" = voicemask, // 1 if the mob is using a voice gas mas
@@ -414,7 +414,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
//THIS IS TEMPORARY.
if(!connection) return //~Carn
Broadcast_Message(connection, M, voicemask, M.voice_message,
Broadcast_Message(connection, M, voicemask, pick(M.speak_emote),
src, message, displayname, jobname, real_name, M.voice_name,
filter_type, signal.data["compression"], list(position.z), connection.frequency)
@@ -477,10 +477,7 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
else
heard_normal += R
else
if (M.voice_message)
heard_voice += R
else
heard_garbled += R
heard_voice += R
if (length(heard_masked) || length(heard_normal) || length(heard_voice) || length(heard_garbled))
var/part_a = "<span class='radio'><span class='name'>"
@@ -574,11 +571,11 @@ var/GLOBAL_RADIO_TYPE = 1 // radio type to use
R.show_message(rendered, 2)
if (length(heard_voice))
var/rendered = "[part_a][M.voice_name][part_b][M.voice_message][part_c]"
var/rendered = "[part_a][M.voice_name][part_b][pick(M.speak_emote)][part_c]"
for (var/mob/R in heard_voice)
if(istype(R, /mob/living/silicon/ai))
R.show_message("[part_a]<a href='byond://?src=\ref[src];track2=\ref[R];track=\ref[M]'>[M.voice_name] ([eqjobname]) </a>[part_b][M.voice_message][part_c]", 2)
R.show_message("[part_a]<a href='byond://?src=\ref[src];track2=\ref[R];track=\ref[M]'>[M.voice_name] ([eqjobname]) </a>[part_b][pick(M.speak_emote)][part_c]", 2)
else
R.show_message(rendered, 2)
+59 -1
View File
@@ -6,7 +6,7 @@ HEALTH ANALYZER
GAS ANALYZER
PLANT ANALYZER
MASS SPECTROMETER
REAGENT SCANNER
*/
/obj/item/device/t_scanner
name = "T-ray scanner"
@@ -337,3 +337,61 @@ MASS SPECTROMETER
icon_state = "adv_spectrometer"
details = 1
origin_tech = "magnets=4;biotech=2"
/obj/item/device/reagent_scanner
name = "reagent scanner"
desc = "A hand-held reagent scanner which identifies chemical agents."
icon_state = "spectrometer"
item_state = "analyzer"
w_class = 2.0
flags = FPRINT | TABLEPASS | CONDUCT
slot_flags = SLOT_BELT
throwforce = 5
throw_speed = 4
throw_range = 20
m_amt = 30
g_amt = 20
origin_tech = "magnets=2;biotech=2"
var/details = 0
var/recent_fail = 0
/obj/item/device/reagent_scanner/afterattack(obj/O, mob/user as mob)
if (user.stat)
return
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
user << "\red You don't have the dexterity to do this!"
return
if(!istype(O))
return
if (crit_fail)
user << "\red This device has critically failed and is no longer functional!"
return
if(!isnull(O.reagents))
var/dat = ""
if(O.reagents.reagent_list.len > 0)
var/one_percent = O.reagents.total_volume / 100
for (var/datum/reagent/R in O.reagents.reagent_list)
if(prob(reliability))
dat += "\n \t \blue [R][details ? ": [R.volume / one_percent]%" : ""]"
recent_fail = 0
else if(recent_fail)
crit_fail = 1
dat = null
break
else
recent_fail = 1
if(dat)
user << "\blue Chemicals found: [dat]"
else
user << "\blue No active chemical agents found in [O]."
else
user << "\blue No significant chemical agents found in [O]."
return
/obj/item/device/reagent_scanner/adv
name = "advanced reagent scanner"
icon_state = "adv_spectrometer"
details = 1
origin_tech = "magnets=4;biotech=2"
@@ -30,10 +30,9 @@
R.uneq_all()
R.hands.icon_state = "nomod"
R.icon_state = "robot"
R.base_icon = "robot"
del(R.module)
R.module = null
R.camera.network.Remove(list("Medical","MINE"))
R.camera.network.Remove(list("Engineering","Medical","MINE"))
R.updatename("Default")
R.status_flags |= CANPUSH
R.updateicon()
@@ -54,6 +54,14 @@
/*
* ID CARDS
*/
/obj/item/weapon/card/emag_broken
desc = "It's a card with a magnetic strip attached to some circuitry. It looks too busted to be used for anything but salvage."
name = "broken cryptographic sequencer"
icon_state = "emag"
item_state = "card-id"
origin_tech = "magnets=2;syndicate=2"
/obj/item/weapon/card/emag
desc = "It's a card with a magnetic strip attached to some circuitry."
name = "cryptographic sequencer"
@@ -61,6 +69,56 @@
item_state = "card-id"
origin_tech = "magnets=2;syndicate=2"
var/uses = 10
// List of devices that cost a use to emag.
var/list/devices = list(
/obj/item/robot_parts,
/obj/item/weapon/storage/lockbox,
/obj/item/weapon/storage/secure,
/obj/item/weapon/circuitboard,
/obj/item/device/eftpos,
/obj/item/device/lightreplacer,
/obj/item/device/taperecorder,
/obj/item/device/hailer,
/obj/item/clothing/tie/holobadge,
/obj/structure/closet/crate/secure,
/obj/structure/closet/secure_closet,
/obj/machinery/librarycomp,
/obj/machinery/computer,
/obj/machinery/power,
/obj/machinery/suspension_gen,
/obj/machinery/shield_capacitor,
/obj/machinery/shield_gen,
/obj/machinery/zero_point_emitter,
/obj/machinery/clonepod,
/obj/machinery/deployable,
/obj/machinery/door_control,
/obj/machinery/porta_turret,
/obj/machinery/shieldgen,
/obj/machinery/turretid,
/obj/machinery/vending,
/obj/machinery/bot,
/obj/machinery/door,
/obj/machinery/telecomms,
/obj/machinery/mecha_part_fabricator
)
/obj/item/weapon/card/emag/afterattack(var/obj/item/weapon/O as obj, mob/user as mob)
for(var/type in devices)
if(istype(O,type))
uses--
break
if(uses<1)
user.visible_message("[src] fizzles and sparks - it seems it's been used once too often, and is now broken.")
user.drop_item()
var/obj/item/weapon/card/emag_broken/junk = new(user.loc)
junk.add_fingerprint(user)
del(src)
return
..()
/obj/item/weapon/card/id
name = "identification card"
@@ -69,7 +69,7 @@
/obj/structure/closet/secure_closet/engineering_welding
name = "Welding Supplies"
req_access = list(access_engine_equip)
req_access = list(access_construction)
icon_state = "secureengweld1"
icon_closed = "secureengweld"
icon_locked = "secureengweld1"
@@ -113,14 +113,42 @@
new /obj/item/clothing/tie/storage/brown_vest(src)
else
new /obj/item/clothing/tie/storage/webbing(src)
new /obj/item/clothing/under/rank/engineer(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/weapon/storage/toolbox/mechanical(src)
// new /obj/item/weapon/cartridge/engineering(src)
new /obj/item/device/radio/headset/headset_eng(src)
new /obj/item/clothing/suit/storage/hazardvest(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/glasses/meson(src)
new /obj/item/taperoll/engineering(src)
new /obj/item/weapon/cartridge/engineering(src)
new /obj/item/taperoll/engineering(src)
return
/obj/structure/closet/secure_closet/atmos_personal
name = "Technician's Locker"
req_access = list(access_atmospherics)
icon_state = "secureeng1"
icon_closed = "secureeng"
icon_locked = "secureeng1"
icon_opened = "secureengopen"
icon_broken = "secureengbroken"
icon_off = "secureengoff"
New()
..()
sleep(2)
if(prob(50))
new /obj/item/weapon/storage/backpack/industrial(src)
else
new /obj/item/weapon/storage/backpack/satchel_eng(src)
if (prob(70))
new /obj/item/clothing/tie/storage/brown_vest(src)
else
new /obj/item/clothing/tie/storage/webbing(src)
new /obj/item/clothing/suit/fire/firefighter(src)
new /obj/item/device/flashlight(src)
new /obj/item/weapon/extinguisher(src)
new /obj/item/device/radio/headset/headset_eng(src)
new /obj/item/clothing/suit/storage/hazardvest(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/weapon/cartridge/atmos(src)
new /obj/item/taperoll/engineering(src)
return
@@ -106,7 +106,9 @@
new /obj/item/clothing/head/helmet/HoS(src)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/clothing/under/rank/head_of_security/jensen(src)
new /obj/item/clothing/under/rank/head_of_security/corp(src)
new /obj/item/clothing/suit/armor/hos/jensen(src)
new /obj/item/clothing/suit/armor/hos(src)
new /obj/item/clothing/head/helmet/HoS/dermal(src)
new /obj/item/weapon/cartridge/hos(src)
new /obj/item/device/radio/headset/heads/hos(src)
@@ -145,6 +147,7 @@
new /obj/item/weapon/storage/backpack/satchel_sec(src)
new /obj/item/clothing/suit/armor/vest/security(src)
new /obj/item/clothing/under/rank/warden(src)
new /obj/item/clothing/under/rank/warden/corp(src)
new /obj/item/clothing/suit/armor/vest/warden(src)
new /obj/item/clothing/head/helmet/warden(src)
// new /obj/item/weapon/cartridge/security(src)
@@ -192,6 +195,8 @@
new /obj/item/taperoll/police(src)
new /obj/item/device/hailer(src)
new /obj/item/clothing/tie/storage/black_vest(src)
new /obj/item/clothing/head/soft/sec/corp(src)
new /obj/item/clothing/under/rank/security/corp(src)
return
@@ -202,6 +202,16 @@
density = 0
wall_mounted = 1
/obj/structure/closet/hydrant/New()
..()
sleep(2)
new /obj/item/clothing/suit/fire/firefighter(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/device/flashlight(src)
new /obj/item/weapon/tank/oxygen/red(src)
new /obj/item/weapon/extinguisher(src)
new /obj/item/clothing/head/hardhat/red(src)
/*
* First Aid
*/
@@ -162,6 +162,12 @@
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/shoes/black(src)
new /obj/item/clothing/head/hardhat/red(src)
new /obj/item/clothing/head/hardhat/red(src)
new /obj/item/clothing/head/hardhat/red(src)
new /obj/item/clothing/head/beret/eng(src)
new /obj/item/clothing/head/beret/eng(src)
new /obj/item/clothing/head/beret/eng(src)
return
@@ -178,6 +184,12 @@
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/clothing/head/hardhat(src)
new /obj/item/clothing/head/hardhat(src)
new /obj/item/clothing/head/hardhat(src)
new /obj/item/clothing/head/beret/eng(src)
new /obj/item/clothing/head/beret/eng(src)
new /obj/item/clothing/head/beret/eng(src)
return