You can now interact with belts that are not on your belt slot.

Added Security Belts, 4 slot belt that can carry basic sec gear.
The security shuttle control can now be emag'd.
Removed the old take off and stabilize verbs for the pshuttle. 
Cleaned up some computer defines.
The detective's cabinet is now a secure cabinet.
Most of the secure closets cleaned up a bit.
The captain no longer spawns with an ID box in his backpack.
RD's locker got its flash back.
Added the blob node sprites.
Removed the 2% laser resist that normal jumpsuits gave.  Normal clothing should not be blocking lasers.  Left the 10% special block on each department.
Riot suit slowdown lowered to 1 from 2.5
Repiped the right side of sec and tidied up the powerlines.
Loyalty Implanter moved into the outer rec room checkpoint.


git-svn-id: http://tgstation13.googlecode.com/svn/trunk@2277 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
mport2004@gmail.com
2011-09-27 06:26:45 +00:00
parent d8991f9d25
commit cf0023bbb2
34 changed files with 9526 additions and 9735 deletions
+3 -2
View File
@@ -319,9 +319,10 @@
temp_apc.overload_lighting()
for (var/obj/machinery/computer/prison_shuttle/temp_shuttle in world)
temp_shuttle.prison_break()
for (var/obj/secure_closet/security1/temp_closet in world)
for (var/obj/secure_closet/security/temp_closet in world)
if(istype(get_area(temp_closet), /area/prison))
temp_closet.prison_break()
temp_closet.locked = 0
temp_closet.icon_state = temp_closet.icon_closed
for (var/obj/machinery/door/airlock/security/temp_airlock in world)
if(istype(get_area(temp_airlock), /area/prison))
temp_airlock.prison_open()
+4 -6
View File
@@ -338,8 +338,7 @@
src.equip_if_possible(new /obj/item/device/pda/engineering(src), slot_belt)
src.equip_if_possible(new /obj/item/clothing/shoes/orange(src), slot_shoes)
src.equip_if_possible(new /obj/item/clothing/head/helmet/hardhat(src), slot_head)
src.equip_if_possible(new /obj/item/weapon/storage/utilitybelt/full(src), slot_l_hand) //currently spawns in hand due to traitor assignment requiring a PDA to be on the belt. --Errorage
//src.equip_if_possible(new /obj/item/clothing/gloves/yellow(src), slot_gloves) removed as part of Dangercon 2011, approved by Urist_McDorf --Errorage
src.equip_if_possible(new /obj/item/weapon/storage/belt/utility/full(src), slot_l_hand)
src.equip_if_possible(new /obj/item/device/t_scanner(src), slot_r_store)
if ("Shaft Miner")
@@ -559,14 +558,13 @@
src.equip_if_possible(new /obj/item/weapon/storage/backpack/industrial (src), slot_back)
src.equip_if_possible(new /obj/item/weapon/storage/box/engineer(src.back), slot_in_backpack)
src.equip_if_possible(new /obj/item/device/radio/headset/heads/ce (src), slot_ears)
src.equip_if_possible(new /obj/item/clothing/gloves/black(src), slot_gloves) //changed to black as part of dangercon 2011, approved by Urist_McDorf --Errorage
src.equip_if_possible(new /obj/item/clothing/gloves/black(src), slot_gloves)
src.equip_if_possible(new /obj/item/clothing/shoes/brown(src), slot_shoes)
src.equip_if_possible(new /obj/item/clothing/head/helmet/hardhat/white(src), slot_head)
src.equip_if_possible(new /obj/item/weapon/storage/utilitybelt/full(src), slot_l_hand) //currently spawns in hand due to traitor assignment requiring a PDA to be on the belt. --Errorage
src.equip_if_possible(new /obj/item/weapon/storage/belt/utility/full(src), slot_l_hand)
var/obj/item/clothing/mask/cigarette/CIG = new /obj/item/clothing/mask/cigarette(src)
CIG.light("")
src.equip_if_possible(CIG, slot_wear_mask) // sorry, no more cigar
//src.equip_if_possible(new /obj/item/clothing/glasses/meson(src), slot_glasses) Removed as part of DangerCon 2011, approved by Urist_McDorf, --Errorage
src.equip_if_possible(CIG, slot_wear_mask)
src.equip_if_possible(new /obj/item/clothing/under/rank/chief_engineer(src), slot_w_uniform)
src.equip_if_possible(new /obj/item/device/pda/heads/ce(src), slot_belt)
+1 -1
View File
@@ -177,7 +177,7 @@ proc/setup_jobs()
JOB.equipment_shoes = list(/obj/item/clothing/shoes/orange,/obj/item/clothing/shoes/brown,/obj/item/clothing/shoes/black)
JOB.equipment_suit = list(/obj/item/clothing/suit/hazardvest)
JOB.equipment_under = list(/obj/item/clothing/under/rank/engineer,/obj/item/clothing/under/color/yellow)
JOB.equipment_belt = list(/obj/item/weapon/storage/utilitybelt/full)
JOB.equipment_belt = list(/obj/item/weapon/storage/belt/utility/full)
JOB.equipment_back = list(/obj/item/weapon/storage/backpack/industrial,/obj/item/weapon/storage/backpack)
JOB.equipment_pda = /obj/item/device/pda/engineering
JOB.equipment_id = /obj/item/weapon/card/id
+55 -182
View File
@@ -1,191 +1,64 @@
/obj/machinery/computer/shuttle/attackby(var/obj/item/weapon/card/W as obj, var/mob/user as mob)
if(stat & (BROKEN|NOPOWER))
return
if ((!( istype(W, /obj/item/weapon/card) ) || !( ticker ) || emergency_shuttle.location != 1 || !( user )))
return
/obj/machinery/computer/shuttle
name = "Shuttle"
desc = "For shuttle control."
icon_state = "shuttle"
var/auth_need = 3.0
var/list/authorized = list( )
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (istype(W, /obj/item/device/pda))
var/obj/item/device/pda/pda = W
W = pda.id
if (!W:access) //no access
user << "The access level of [W:registered]\'s card is not high enough. "
return
var/list/cardaccess = W:access
if(!istype(cardaccess, /list) || !cardaccess.len) //no access
user << "The access level of [W:registered]\'s card is not high enough. "
return
if(!(access_heads in W:access)) //doesn't have this access
user << "The access level of [W:registered]\'s card is not high enough. "
return 0
var/choice = alert(user, text("Would you like to (un)authorize a shortened launch time? [] authorization\s are still needed. Use abort to cancel all authorizations.", src.auth_need - src.authorized.len), "Shuttle Launch", "Authorize", "Repeal", "Abort")
switch(choice)
if("Authorize")
src.authorized -= W:registered
src.authorized += W:registered
if (src.auth_need - src.authorized.len > 0)
message_admins("[key_name_admin(user)] has authorized early shuttle launch")
log_game("[user.ckey] has authorized early shuttle launch")
world << text("\blue <B>Alert: [] authorizations needed until shuttle is launched early</B>", src.auth_need - src.authorized.len)
else
message_admins("[key_name_admin(user)] has launched the shuttle")
log_game("[user.ckey] has launched the shuttle early")
world << "\blue <B>Alert: Shuttle launch time shortened to 10 seconds!</B>"
emergency_shuttle.settimeleft(10)
//src.authorized = null
del(src.authorized)
src.authorized = list( )
if("Repeal")
src.authorized -= W:registered
world << text("\blue <B>Alert: [] authorizations needed until shuttle is launched early</B>", src.auth_need - src.authorized.len)
if("Abort")
world << "\blue <B>All authorizations to shorting time for shuttle launch have been revoked!</B>"
src.authorized.len = 0
src.authorized = list( )
else if (istype(W, /obj/item/weapon/card/emag))
var/choice = alert(user, "Would you like to launch the shuttle?","Shuttle control", "Launch", "Cancel")
switch(choice)
if("Launch")
world << "\blue <B>Alert: Shuttle launch time shortened to 10 seconds!</B>"
emergency_shuttle.settimeleft( 10 )
if("Cancel")
attackby(var/obj/item/weapon/card/W as obj, var/mob/user as mob)
if(stat & (BROKEN|NOPOWER)) return
if ((!( istype(W, /obj/item/weapon/card) ) || !( ticker ) || emergency_shuttle.location != 1 || !( user ))) return
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (istype(W, /obj/item/device/pda))
var/obj/item/device/pda/pda = W
W = pda.id
if (!W:access) //no access
user << "The access level of [W:registered]\'s card is not high enough. "
return
return
var/list/cardaccess = W:access
if(!istype(cardaccess, /list) || !cardaccess.len) //no access
user << "The access level of [W:registered]\'s card is not high enough. "
return
/*
/obj/shut_controller/proc/rotate(direct)
if(!(access_heads in W:access)) //doesn't have this access
user << "The access level of [W:registered]\'s card is not high enough. "
return 0
var/SE_X = 1
var/SE_Y = 1
var/SW_X = 1
var/SW_Y = 1
var/NE_X = 1
var/NE_Y = 1
var/NW_X = 1
var/NW_Y = 1
for(var/obj/move/M in src.parts)
if (M.x < SW_X)
SW_X = M.x
if (M.x > SE_X)
SE_X = M.x
if (M.y < SW_Y)
SW_Y = M.y
if (M.y > NW_Y)
NW_Y = M.y
if (M.y > NE_Y)
NE_Y = M.y
if (M.y < SE_Y)
SE_Y = M.y
if (M.x > NE_X)
NE_X = M.x
if (M.x < NW_X)
NW_X = M.y
var/length = abs(NE_X - NW_X)
var/width = abs(NE_Y - SE_Y)
var/obj/random = pick(src.parts)
var/s_direct = null
switch(s_direct)
if(1.0)
switch(direct)
if(90.0)
var/tx = SE_X
var/ty = SE_Y
var/t_z = random.z
for(var/obj/move/M in src.parts)
M.ty = -M.x - tx
M.tx = -M.y - ty
var/T = locate(M.x, M.y, 11)
M.relocate(T)
M.ty = -M.ty
M.tx += length
//Foreach goto(374)
for(var/obj/move/M in src.parts)
M.tx += tx
M.ty += ty
var/T = locate(M.tx, M.ty, t_z)
M.relocate(T, 90)
//Foreach goto(468)
if(-90.0)
var/tx = SE_X
var/ty = SE_Y
var/t_z = random.z
for(var/obj/move/M in src.parts)
M.ty = M.x - tx
M.tx = M.y - ty
var/T = locate(M.x, M.y, 11)
M.relocate(T)
M.ty = -M.ty
M.ty += width
//Foreach goto(571)
for(var/obj/move/M in src.parts)
M.tx += tx
M.ty += ty
var/T = locate(M.tx, M.ty, t_z)
M.relocate(T, -90.0)
//Foreach goto(663)
else
else
return
*/
var/choice = alert(user, text("Would you like to (un)authorize a shortened launch time? [] authorization\s are still needed. Use abort to cancel all authorizations.", src.auth_need - src.authorized.len), "Shuttle Launch", "Authorize", "Repeal", "Abort")
switch(choice)
if("Authorize")
src.authorized -= W:registered
src.authorized += W:registered
if (src.auth_need - src.authorized.len > 0)
message_admins("[key_name_admin(user)] has authorized early shuttle launch")
log_game("[user.ckey] has authorized early shuttle launch")
world << text("\blue <B>Alert: [] authorizations needed until shuttle is launched early</B>", src.auth_need - src.authorized.len)
else
message_admins("[key_name_admin(user)] has launched the shuttle")
log_game("[user.ckey] has launched the shuttle early")
world << "\blue <B>Alert: Shuttle launch time shortened to 10 seconds!</B>"
emergency_shuttle.settimeleft(10)
//src.authorized = null
del(src.authorized)
src.authorized = list( )
/obj/machinery/computer/prison_shuttle/verb/take_off()
set category = "Object"
set name = "Launch Prison Shuttle"
set src in oview(1)
if("Repeal")
src.authorized -= W:registered
world << text("\blue <B>Alert: [] authorizations needed until shuttle is launched early</B>", src.auth_need - src.authorized.len)
if (usr.stat || usr.restrained())
if("Abort")
world << "\blue <B>All authorizations to shorting time for shuttle launch have been revoked!</B>"
src.authorized.len = 0
src.authorized = list( )
else if (istype(W, /obj/item/weapon/card/emag))
var/choice = alert(user, "Would you like to launch the shuttle?","Shuttle control", "Launch", "Cancel")
switch(choice)
if("Launch")
world << "\blue <B>Alert: Shuttle launch time shortened to 10 seconds!</B>"
emergency_shuttle.settimeleft( 10 )
if("Cancel")
return
return
src.add_fingerprint(usr)
if(!src.allowedtocall)
usr << "\red The console seems irreparably damaged!"
return
if(src.z == 3)
usr << "\red Already in transit! Please wait!"
return
var/A = locate(/area/shuttle/prison/)
for(var/mob/M in A)
M.show_message("\red Launch sequence initiated!")
spawn(0) shake_camera(M, 10, 1)
sleep(10)
if(src.z == 2) //This is the laziest proc ever
for(var/atom/movable/AM as mob|obj in A)
AM.z = 3
AM.Move()
sleep(rand(600,1800))
for(var/atom/movable/AM as mob|obj in A)
AM.z = 1
AM.Move()
else
for(var/atom/movable/AM as mob|obj in A)
AM.z = 3
AM.Move()
sleep(rand(600,1800))
for(var/atom/movable/AM as mob|obj in A)
AM.z = 2
AM.Move()
for(var/mob/M in A)
M.show_message("\red Prison shuttle has arrived at destination!")
spawn(0) shake_camera(M, 2, 1)
return
/obj/machinery/computer/prison_shuttle/verb/restabalize()
set category = "Object"
set name = "Restabilize Prison Shuttle"
set src in oview(1)
src.add_fingerprint(usr)
var/A = locate(/area/shuttle/prison/)
for(var/mob/M in A)
M.show_message("\red <B>Restabilizing prison shuttle atmosphere!</B>")
+8 -74
View File
@@ -1,3 +1,11 @@
/obj/machinery/computer/teleporter
name = "Teleporter"
desc = "Used to control a linked teleportation Hub and Station."
icon_state = "teleport"
circuit = "/obj/item/weapon/circuitboard/teleporter"
var/obj/item/locked = null
var/id = null
/obj/machinery/computer/teleporter/New()
src.id = text("[]", rand(1000, 9999))
..()
@@ -304,77 +312,3 @@
/atom/proc/laserhit(L as obj)
return 1
/obj/machinery/computer/data/weapon/log/New()
..()
src.topics["Super-heater"] = "This turns a can of semi-liquid plasma into a super-heated ball of plasma."
src.topics["Amplifier"] = "This increases the intensity of a laser."
src.topics["Class 11 Laser"] = "This creates a very slow laser that is capable of penetrating most objects."
src.topics["Plasma Energizer"] = "This combines super-heated plasma with a laser beam."
src.topics["Generator"] = "This controls the entire power grid."
src.topics["Mirror"] = "this can reflect LOW power lasers. HIGH power goes through it!"
src.topics["Targetting Prism"] = "This focuses a laser coming from any direction forward."
return
/obj/machinery/computer/data/weapon/log/display()
set src in oview(1)
usr << "<B>Research Log:</B>"
..()
return
/obj/machinery/computer/data/weapon/info/New()
..()
src.topics["LOG(001)"] = "System: Deployment successful"
src.topics["LOG(002)"] = "System: Safe orbit at inclination .003 established"
src.topics["LOG(003)"] = "CenCom: Attempting test fire...ALERT(001)"
src.topics["ALERT(001)"] = "System: Cannot attempt test fire"
src.topics["LOG(004)"] = "System: Airlock accessed..."
src.topics["LOG(005)"] = "System: System successfully reset...Generator engaged"
src.topics["LOG(006)"] = "Physical: Super-heater (W005) added to power grid"
src.topics["LOG(007)"] = "Physical: Amplifier (W007) added to power grid"
src.topics["LOG(008)"] = "Physical: Plasma Energizer (W006) added to power grid"
src.topics["LOG(009)"] = "Physical: Laser (W004) added to power grid"
src.topics["LOG(010)"] = "Physical: Laser test firing"
src.topics["LOG(011)"] = "Physical: Plasma added to Super-heater"
src.topics["LOG(012)"] = "Physical: Orient N12.525,E22.124"
src.topics["LOG(013)"] = "System: Location N12.525,E22.124"
src.topics["LOG(014)"] = "Physical: Test fire...successful"
src.topics["LOG(015)"] = "Physical: Airlock accessed..."
src.topics["LOG(016)"] = "******: Disable locater systems"
src.topics["LOG(017)"] = "System: Locater Beacon-Disengaged,CenCom link-Cut...ALERT(002)"
src.topics["ALERT(002)"] = "System: Cannot seem to establish contact with Central Command"
src.topics["LOG(018)"] = "******: Shutting down all systems...ALERT(003)"
src.topics["ALERT(003)"] = "System: Power grid failure-Activating back-up power...ALERT(004)"
src.topics["ALERT(004)"] = "System: Engine failure...All systems deactivated."
return
/obj/machinery/computer/data/weapon/info/display()
set src in oview(1)
usr << "<B>Research Information:</B>"
..()
return
/obj/machinery/computer/data/verb/display()
set name = "Display"
set category = "Object"
set src in oview(1)
for(var/x in src.topics)
usr << text("[], \...", x)
usr << ""
src.add_fingerprint(usr)
return
/obj/machinery/computer/data/verb/read(topic as text)
set name = "Read"
set category = "Object"
set src in oview(1)
if (src.topics[text("[]", topic)])
usr << text("<B>[]</B>\n\t []", topic, src.topics[text("[]", topic)])
else
usr << text("Unable to find- []", topic)
src.add_fingerprint(usr)
return
+1 -1
View File
@@ -58,7 +58,7 @@
if(prob(70))
new /obj/item/device/t_scanner(src)
if(prob(20))
new /obj/item/weapon/storage/utilitybelt(src)
new /obj/item/weapon/storage/belt/utility(src)
if(prob(30))
new /obj/item/weapon/cable_coil(src)
if(prob(30))
-4
View File
@@ -1,7 +1,3 @@
/obj/closet/gimmick/New()
..()
sleep(2)
/obj/closet/gimmick/russian/New()
..()
sleep(2)
@@ -1,10 +0,0 @@
/obj/secure_closet/animal/New()
..()
sleep(2)
new /obj/item/device/radio/signaler( src )
new /obj/item/device/radio/electropack( src )
new /obj/item/device/radio/electropack( src )
new /obj/item/device/radio/electropack( src )
new /obj/item/device/radio/electropack( src )
new /obj/item/device/radio/electropack( src )
return
+19 -14
View File
@@ -1,14 +1,19 @@
/obj/secure_closet/bar/New()
..()
sleep(2)
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
return
/obj/secure_closet/bar
name = "Booze"
req_access = list(access_bar)
New()
..()
sleep(2)
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
new /obj/item/weapon/reagent_containers/food/drinks/beer( src )
return
-6
View File
@@ -1,6 +0,0 @@
/obj/secure_closet/brig/New()
new /obj/item/clothing/under/color/orange( src )
new /obj/item/clothing/under/color/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
return
@@ -1,16 +0,0 @@
/obj/secure_closet/captains/New()
..()
sleep(2)
new /obj/item/weapon/reagent_containers/food/drinks/flask(src)
new /obj/item/device/radio/headset/heads/captain( src )
new /obj/item/weapon/gun/energy( src )
new /obj/item/weapon/storage/id_kit( src )
new /obj/item/clothing/under/rank/captain( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/glasses/sunglasses( src )
new /obj/item/clothing/suit/armor/vest( src )
new /obj/item/clothing/head/helmet/swat( src )
new /obj/item/clothing/suit/captunic( src )
new /obj/item/clothing/head/helmet/cap( src )
new /obj/item/clothing/gloves/captain( src )
return
@@ -1,6 +0,0 @@
/obj/secure_closet/chemtoxin/New()
..()
sleep(2)
new /obj/item/weapon/storage/pillbottlebox(src)
new /obj/item/weapon/storage/pillbottlebox(src)
return
@@ -1,15 +0,0 @@
/obj/secure_closet/courtroom/New()
..()
sleep(2)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/weapon/paper/Court (src)
new /obj/item/weapon/paper/Court (src)
new /obj/item/weapon/paper/Court (src)
new /obj/item/weapon/pen (src)
new /obj/item/clothing/suit/judgerobe (src)
new /obj/item/clothing/head/powdered_wig (src)
new /obj/item/clothing/under/lawyer/red(src)
new /obj/item/clothing/under/lawyer/blue(src)
new /obj/item/clothing/under/lawyer/black(src)
new /obj/item/weapon/storage/briefcase(src)
return
+75 -56
View File
@@ -1,59 +1,78 @@
/obj/secure_closet/engineering_chief/New()
..()
sleep(2)
new /obj/item/blueprints( src )
new /obj/item/device/radio/headset/heads/ce( src )
new /obj/item/clothing/under/rank/chief_engineer( src )
new /obj/item/clothing/gloves/yellow( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/weapon/storage/toolbox/mechanical( src )
//new /obj/item/clothing/shoes/magboots( src ) Moved to RIG suit rack --errorage
//new /obj/item/clothing/ears/earmuffs( src ) useless --errorage
//new /obj/item/clothing/glasses/meson( src ) Moved to his desk --errorage
//new /obj/item/clothing/suit/fire/firefighter( src )
new /obj/item/clothing/suit/hazardvest( src )
new /obj/item/clothing/mask/gas( src )
new /obj/item/clothing/head/helmet/welding( src )
new /obj/item/clothing/head/helmet/hardhat/white( src )
new /obj/item/device/multitool( src )
new /obj/item/device/flash( src )
return
/obj/secure_closet/engineering_chief
name = "Chief Engineer's Locker"
req_access = list(access_ce)
/obj/secure_closet/engineering_electrical/New()
..()
sleep(2)
new /obj/item/clothing/gloves/yellow( src )
new /obj/item/clothing/gloves/yellow( src )
//new /obj/item/clothing/gloves/yellow( src ) --Part of DangerCon 2011, approved by Urist_McDorf, --Errorage
new /obj/item/weapon/storage/toolbox/electrical( src )
new /obj/item/weapon/storage/toolbox/electrical( src )
new /obj/item/weapon/storage/toolbox/electrical( src )
new /obj/item/device/multitool( src )
new /obj/item/device/multitool( src )
new /obj/item/device/multitool( src )
return
/obj/secure_closet/engineering_welding/New()
..()
sleep(2)
new /obj/item/clothing/head/helmet/welding( src )
new /obj/item/clothing/head/helmet/welding( src )
new /obj/item/clothing/head/helmet/welding( src )
new /obj/item/weapon/weldingtool/largetank( src )
new /obj/item/weapon/weldingtool/largetank( src )
new /obj/item/weapon/weldingtool/largetank( src )
return
New()
..()
sleep(2)
new /obj/item/blueprints(src)
new /obj/item/clothing/under/rank/chief_engineer(src)
new /obj/item/clothing/suit/hazardvest(src)
new /obj/item/clothing/head/helmet/hardhat/white(src)
new /obj/item/clothing/head/helmet/welding(src)
new /obj/item/clothing/gloves/yellow(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/device/radio/headset/heads/ce(src)
new /obj/item/weapon/storage/toolbox/mechanical(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/device/multitool(src)
new /obj/item/device/flash(src)
return
/obj/secure_closet/engineering_personal/New()
..()
sleep(2)
new /obj/item/weapon/storage/toolbox/mechanical( src )
new /obj/item/device/radio/headset/headset_eng( src )
new /obj/item/clothing/under/rank/engineer( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/suit/hazardvest( src )
new /obj/item/clothing/mask/gas( src )
//new /obj/item/clothing/head/helmet/hardhat( src ) engineers now spawn with them --Errorage
//new /obj/item/clothing/ears/earmuffs( src ) useless --Errorage
new /obj/item/clothing/glasses/meson( src )
return
/obj/secure_closet/engineering_electrical
name = "Electrical Supplies"
req_access = list(access_engine)
New()
..()
sleep(2)
new /obj/item/clothing/gloves/yellow(src)
new /obj/item/clothing/gloves/yellow(src)
new /obj/item/weapon/storage/toolbox/electrical(src)
new /obj/item/weapon/storage/toolbox/electrical(src)
new /obj/item/weapon/storage/toolbox/electrical(src)
new /obj/item/device/multitool(src)
new /obj/item/device/multitool(src)
new /obj/item/device/multitool(src)
return
/obj/secure_closet/engineering_welding
name = "Welding Supplies"
req_access = list(access_engine)
New()
..()
sleep(2)
new /obj/item/clothing/head/helmet/welding(src)
new /obj/item/clothing/head/helmet/welding(src)
new /obj/item/clothing/head/helmet/welding(src)
new /obj/item/weapon/weldingtool/largetank(src)
new /obj/item/weapon/weldingtool/largetank(src)
new /obj/item/weapon/weldingtool/largetank(src)
return
/obj/secure_closet/engineering_personal
name = "Engineer's Locker"
req_access = list(access_engine)
New()
..()
sleep(2)
new /obj/item/clothing/under/rank/engineer(src)
new /obj/item/clothing/suit/hazardvest(src)
new /obj/item/clothing/shoes/orange(src)
new /obj/item/device/radio/headset/headset_eng(src)
new /obj/item/weapon/storage/toolbox/mechanical(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/clothing/glasses/meson(src)
return
+123 -58
View File
@@ -1,61 +1,126 @@
/obj/secure_closet/medical1/New()
..()
sleep(2)
//new /obj/item/weapon/storage/gl_kit( src )
//new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin( src )
new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin( src )
new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin( src )
//new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline( src )
new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline( src )
new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline( src )
//new /obj/item/weapon/reagent_containers/glass/bottle/stoxin( src )
//new /obj/item/weapon/reagent_containers/glass/bottle/stoxin( src )
//new /obj/item/weapon/reagent_containers/glass/bottle/toxin( src )
new /obj/item/weapon/storage/syringes( src )
new /obj/item/weapon/reagent_containers/dropper( src )
new /obj/item/weapon/reagent_containers/dropper( src )
new /obj/item/weapon/reagent_containers/glass/beaker( src )
new /obj/item/weapon/reagent_containers/glass/beaker( src )
return
/obj/secure_closet/medical1
name = "Medicine Closet"
desc = "Filled with medical junk."
icon_state = "medical1"
icon_closed = "medical"
icon_locked = "medical1"
icon_opened = "medicalopen"
icon_broken = "medicalbroken"
icon_off = "medical1"
req_access = list(access_medical)
/obj/secure_closet/medical2/New()
..()
sleep(2)
new /obj/item/weapon/tank/anesthetic( src )
new /obj/item/weapon/tank/anesthetic( src )
new /obj/item/weapon/tank/anesthetic( src )
new /obj/item/clothing/mask/medical( src )
new /obj/item/clothing/mask/medical( src )
new /obj/item/clothing/mask/medical( src )
return
/obj/secure_closet/medical3/New()
..()
sleep(2)
new /obj/item/clothing/under/rank/medical( src )
new /obj/item/clothing/suit/labcoat( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/weapon/storage/backpack/medic( src )
new /obj/item/clothing/mask/breath( src )
new /obj/item/weapon/cartridge/medical( src )
new /obj/item/device/radio/headset/headset_med( src )
new /obj/item/weapon/storage/utilitybelt/medical( src )
new /obj/item/clothing/under/rank/nursesuit ( src )
new /obj/item/clothing/head/nursehat ( src )
return
New()
..()
sleep(2)
new /obj/item/weapon/storage/syringes(src)
new /obj/item/weapon/reagent_containers/dropper(src)
new /obj/item/weapon/reagent_containers/dropper(src)
new /obj/item/weapon/reagent_containers/glass/beaker(src)
new /obj/item/weapon/reagent_containers/glass/beaker(src)
new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin(src)
new /obj/item/weapon/reagent_containers/glass/bottle/antitoxin(src)
new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline(src)
new /obj/item/weapon/reagent_containers/glass/bottle/inaprovaline(src)
return
/obj/secure_closet/CMO/New()
..()
sleep(2)
new /obj/item/clothing/suit/labcoat/cmo( src )
new /obj/item/clothing/under/rank/chief_medical_officer( src )
new /obj/item/clothing/suit/bio_suit/cmo( src )
new /obj/item/clothing/shoes/brown ( src )
new /obj/item/clothing/gloves/latex( src )
new /obj/item/clothing/head/bio_hood/general( src )
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/mask/gas( src )
new /obj/item/device/radio/headset/heads/cmo( src )
new /obj/item/clothing/under/rank/nursesuit ( src )
new /obj/item/clothing/head/nursehat ( src )
return
/obj/secure_closet/medical2
name = "Anesthetic"
desc = "Used to knock people out."
icon_state = "medical1"
icon_closed = "medical"
icon_locked = "medical1"
icon_opened = "medicalopen"
icon_broken = "medicalbroken"
icon_off = "medical1"
req_access = list(access_medical)
New()
..()
sleep(2)
new /obj/item/weapon/tank/anesthetic(src)
new /obj/item/weapon/tank/anesthetic(src)
new /obj/item/weapon/tank/anesthetic(src)
new /obj/item/clothing/mask/medical(src)
new /obj/item/clothing/mask/medical(src)
new /obj/item/clothing/mask/medical(src)
return
/obj/secure_closet/medical3
name = "Medical Doctor's Locker"
req_access = list(access_medical)
New()
..()
sleep(2)
new /obj/item/weapon/storage/backpack/medic(src)
new /obj/item/clothing/under/rank/nursesuit (src)
new /obj/item/clothing/head/nursehat (src)
new /obj/item/clothing/under/rank/medical(src)
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/device/radio/headset/headset_med(src)
new /obj/item/weapon/storage/belt/medical(src)
return
/obj/secure_closet/CMO
name = "Chief Medical Officer"
req_access = list(access_cmo)
New()
..()
sleep(2)
new /obj/item/clothing/suit/bio_suit/cmo(src)
new /obj/item/clothing/head/bio_hood/general(src)
new /obj/item/clothing/under/rank/chief_medical_officer(src)
new /obj/item/clothing/suit/labcoat/cmo(src)
new /obj/item/clothing/gloves/latex(src)
new /obj/item/clothing/shoes/brown (src)
new /obj/item/device/radio/headset/heads/cmo(src)
return
/obj/secure_closet/animal
name = "Animal Control"
req_access = list(access_medical)
New()
..()
sleep(2)
new /obj/item/device/radio/signaler(src)
new /obj/item/device/radio/electropack(src)
new /obj/item/device/radio/electropack(src)
new /obj/item/device/radio/electropack(src)
return
/obj/secure_closet/chemical
name = "Chemical Closet"
desc = "Store dangerous chemicals in here."
icon_state = "medical1"
icon_closed = "medical"
icon_locked = "medical1"
icon_opened = "medicalopen"
icon_broken = "medicalbroken"
icon_off = "medical1"
req_access = list(access_medical)
New()
..()
sleep(2)
new /obj/item/weapon/storage/pillbottlebox(src)
new /obj/item/weapon/storage/pillbottlebox(src)
return
+36 -26
View File
@@ -1,27 +1,37 @@
/obj/secure_closet/scientist/New()
..()
sleep(2)
new /obj/item/device/radio/headset/headset_sci( src )
new /obj/item/weapon/tank/air( src )
new /obj/item/clothing/mask/gas( src )
new /obj/item/clothing/suit/bio_suit/general( src )
new /obj/item/clothing/under/rank/scientist( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/gloves/latex( src )
new /obj/item/clothing/head/bio_hood/general( src )
new /obj/item/clothing/suit/labcoat(src)
return
/obj/secure_closet/scientist
name = "Scientist Locker"
req_access = list(access_tox_storage)
/obj/secure_closet/RD/New()
..()
sleep(2)
new /obj/item/device/radio/headset/heads/rd( src )
new /obj/item/clothing/under/rank/research_director( src )
new /obj/item/weapon/tank/air( src )
new /obj/item/clothing/mask/gas( src )
new /obj/item/clothing/suit/bio_suit/scientist( src )
new /obj/item/clothing/shoes/white( src )
new /obj/item/clothing/gloves/latex( src )
new /obj/item/clothing/head/bio_hood/scientist( src )
new /obj/item/clothing/suit/labcoat(src)
return
New()
..()
sleep(2)
new /obj/item/clothing/under/rank/scientist(src)
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/device/radio/headset/headset_sci(src)
new /obj/item/weapon/tank/air(src)
new /obj/item/clothing/mask/gas(src)
return
/obj/secure_closet/RD
name = "Research Director"
req_access = list(access_rd)
New()
..()
sleep(2)
new /obj/item/clothing/suit/bio_suit/scientist(src)
new /obj/item/clothing/head/bio_hood/scientist(src)
new /obj/item/clothing/under/rank/research_director(src)
new /obj/item/clothing/suit/labcoat(src)
new /obj/item/clothing/shoes/white(src)
new /obj/item/clothing/gloves/latex(src)
new /obj/item/device/radio/headset/heads/rd(src)
new /obj/item/weapon/tank/air(src)
new /obj/item/clothing/mask/gas(src)
new /obj/item/device/flash(src)
return
+176 -68
View File
@@ -1,73 +1,181 @@
/obj/secure_closet/security1/New()
..()
sleep(2)
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/weapon/flashbang(src)
new /obj/item/weapon/handcuffs(src)
new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/device/flash(src)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/clothing/head/helmet(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src)
new /obj/item/weapon/melee/baton(src)
return
/obj/secure_closet/security1/proc/prison_break()
src.locked = 0
src.icon_state = src.icon_closed
/obj/secure_closet/captains
name = "Captain's Closet"
req_access = list(access_captain)
/obj/secure_closet/security2/New()
..()
sleep(2)
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/clothing/under/det( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/head/det_hat( src )
new /obj/item/clothing/suit/det_suit( src )
new /obj/item/clothing/suit/det_suit/armor( src )
new /obj/item/weapon/storage/fcard_kit( src )
new /obj/item/clothing/gloves/black( src )
new /obj/item/weapon/storage/lglo_kit( src )
new /obj/item/weapon/fcardholder( src )
new /obj/item/weapon/clipboard( src )
new /obj/item/device/detective_scanner( src )
return
New()
..()
sleep(2)
new /obj/item/clothing/suit/captunic( src )
new /obj/item/clothing/head/helmet/cap( src )
new /obj/item/clothing/under/rank/captain( src )
new /obj/item/clothing/suit/armor/vest( src )
new /obj/item/clothing/gloves/captain( src )
new /obj/item/clothing/head/helmet/swat( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/device/radio/headset/heads/captain( src )
new /obj/item/weapon/reagent_containers/food/drinks/flask(src)
new /obj/item/weapon/gun/energy( src )
return
/obj/secure_closet/highsec/New()
..()
sleep(2)
new /obj/item/device/radio/headset/heads/hop( src )
new /obj/item/weapon/gun/energy( src )
new /obj/item/device/flash( src )
new /obj/item/weapon/storage/id_kit( src )
new /obj/item/clothing/under/rank/head_of_personnel( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/glasses/sunglasses( src )
new /obj/item/clothing/suit/armor/vest( src )
new /obj/item/clothing/head/helmet( src )
return
/obj/secure_closet/hos/New()
..()
sleep(2)
new /obj/item/device/radio/headset/heads/hos(src)
new /obj/item/weapon/shield/riot(src)
new /obj/item/weapon/gun/energy( src )
new /obj/item/device/flash( src )
new /obj/item/clothing/under/rank/head_of_security( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/glasses/sunglasses/sechud( src )
new /obj/item/clothing/suit/armor/hos( src )
new /obj/item/clothing/head/helmet( src )
new /obj/item/weapon/storage/flashbang_kit(src)
new /obj/item/weapon/handcuffs(src)
new /obj/item/weapon/melee/baton(src)
return
/obj/secure_closet/injection/New()
..()
sleep(2)
new /obj/item/weapon/reagent_containers/ld50_syringe/choral ( src )
new /obj/item/weapon/reagent_containers/ld50_syringe/choral ( src )
return
/obj/secure_closet/hop
name = "Head of Personnel"
req_access = list(access_hop)
New()
..()
sleep(2)
new /obj/item/clothing/under/rank/head_of_personnel(src)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/clothing/head/helmet(src)
new /obj/item/device/radio/headset/heads/hop(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/weapon/storage/id_kit(src)
new /obj/item/weapon/storage/id_kit( src )
new /obj/item/weapon/gun/energy(src)
new /obj/item/device/flash(src)
new /obj/item/clothing/glasses/sunglasses(src)
return
/obj/secure_closet/hos
name = "Head Of Security"
req_access = list(access_hos)
New()
..()
sleep(2)
new /obj/item/clothing/under/rank/head_of_security(src)
new /obj/item/clothing/suit/armor/hos(src)
new /obj/item/clothing/head/helmet(src)
new /obj/item/device/radio/headset/heads/hos(src)
new /obj/item/weapon/shield/riot(src)
new /obj/item/weapon/gun/energy(src)
new /obj/item/device/flash(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src)
new /obj/item/weapon/storage/flashbang_kit(src)
new /obj/item/weapon/melee/baton(src)
return
/obj/secure_closet/warden
name = "Warden's Locker"
req_access = list(access_armory)
New()
..()
sleep(2)
new /obj/item/clothing/under/rank/warden(src)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/clothing/head/helmet/warden(src)
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/weapon/storage/belt/security(src)
new /obj/item/weapon/storage/flashbang_kit(src)
new /obj/item/weapon/melee/baton(src)
new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src)
return
/obj/secure_closet/security
name = "Security Locker"
req_access = list(access_security)
New()
..()
sleep(2)
new /obj/item/clothing/suit/armor/vest(src)
new /obj/item/clothing/head/helmet(src)
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/weapon/storage/belt/security(src)
new /obj/item/weapon/flashbang(src)
new /obj/item/device/flash(src)
new /obj/item/weapon/melee/baton(src)
new /obj/item/weapon/gun/energy/taser(src)
new /obj/item/clothing/glasses/sunglasses/sechud(src)
return
/obj/secure_closet/detective
name = "Detective"
req_access = list(access_forensics_lockers)
icon_state = "cabinetdetective"
icon_closed = "cabinetdetective"
icon_locked = "cabinetdetective_locked"
icon_opened = "cabinetdetective_open"
icon_broken = "cabinetdetective_broken"
icon_off = "cabinetdetective_broken"
New()
..()
sleep(2)
new /obj/item/clothing/under/det(src)
new /obj/item/clothing/suit/det_suit/armor(src)
new /obj/item/clothing/suit/det_suit(src)
new /obj/item/clothing/gloves/black(src)
new /obj/item/clothing/head/det_hat(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/weapon/storage/fcard_kit(src)
new /obj/item/weapon/fcardholder(src)
new /obj/item/weapon/clipboard(src)
new /obj/item/device/detective_scanner(src)
return
/obj/secure_closet/injection
name = "Lethal Injections"
req_access = list(access_hos)
New()
..()
sleep(2)
new /obj/item/weapon/reagent_containers/ld50_syringe/choral(src)
new /obj/item/weapon/reagent_containers/ld50_syringe/choral(src)
return
/obj/secure_closet/brig
name = "Brig Locker"
req_access = list(access_brig)
var/id = null
New()
new /obj/item/clothing/under/color/orange( src )
new /obj/item/clothing/under/color/orange( src )
new /obj/item/clothing/shoes/orange( src )
new /obj/item/clothing/shoes/orange( src )
return
/obj/secure_closet/courtroom
name = "Courtroom Locker"
req_access = list(access_court)
New()
..()
sleep(2)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/weapon/paper/Court (src)
new /obj/item/weapon/paper/Court (src)
new /obj/item/weapon/paper/Court (src)
new /obj/item/weapon/pen (src)
new /obj/item/clothing/suit/judgerobe (src)
new /obj/item/clothing/head/powdered_wig (src)
new /obj/item/weapon/storage/briefcase(src)
return
-17
View File
@@ -168,20 +168,3 @@
new /obj/item/clothing/suit/lawyer/purpjacket(src)
new /obj/item/clothing/shoes/brown(src)
new /obj/item/clothing/shoes/black(src)
/obj/closet/cabinet/New()
..()
sleep(2)
new /obj/item/device/radio/headset/headset_sec(src)
new /obj/item/clothing/under/det( src )
new /obj/item/clothing/shoes/brown( src )
new /obj/item/clothing/head/det_hat( src )
new /obj/item/clothing/suit/det_suit( src )
new /obj/item/clothing/suit/det_suit/armor( src )
new /obj/item/weapon/storage/fcard_kit( src )
new /obj/item/clothing/gloves/black( src )
new /obj/item/weapon/storage/lglo_kit( src )
new /obj/item/weapon/fcardholder( src )
new /obj/item/weapon/clipboard( src )
new /obj/item/device/detective_scanner( src )
return
+2 -10
View File
@@ -109,15 +109,7 @@
//..()
if (usr.stat)
return
if (\
!(\
issilicon(usr) || \
(\
usr.contents.Find(src) || \
( in_range(src, usr) && istype(loc, /turf) )\
)\
)\
)
if (!(issilicon(usr) || (usr.contents.Find(src) || ( in_range(src, usr) && istype(loc, /turf) ))))
usr << browse(null, "window=radio")
return
usr.machine = src
@@ -186,7 +178,7 @@
add_fingerprint(usr)
/obj/item/device/radio/talk_into(mob/M as mob, message, channel)
var/datum/radio_frequency/connection = null // Code shared by Mport2004 for Security Headsets -- TLE
var/datum/radio_frequency/connection = null
if(channel && channels && channels.len > 0)
if (channel == "department")
//world << "DEBUG: channel=\"[channel]\" switching to \"[channels[1]]\""
+115
View File
@@ -0,0 +1,115 @@
/obj/item/weapon/storage/belt
name = "belt"
desc = "Can hold various things."
icon = 'belts.dmi'
icon_state = "utilitybelt"
item_state = "utility"
flags = FPRINT | TABLEPASS | ONBELT
proc/can_use()
if(!ismob(loc)) return 0
var/mob/M = loc
if(src in M.get_equipped_items())
return 1
else
return 0
MouseDrop(obj/over_object as obj, src_location, over_location)
var/mob/M = usr
if(!istype(over_object, /obj/screen))
return ..()
playsound(src.loc, "rustle", 50, 1, -5)
if (!M.restrained() && !M.stat && can_use())
if (over_object.name == "r_hand")
if (!( M.r_hand ))
M.u_equip(src)
M.r_hand = src
else
if (over_object.name == "l_hand")
if (!( M.l_hand ))
M.u_equip(src)
M.l_hand = src
M.update_clothing()
src.add_fingerprint(usr)
return
attack_hand(mob/user as mob)
src.add_fingerprint(user)
if(src.loc == user)
playsound(src.loc, "rustle", 50, 1, -5)
if (user.s_active)
user.s_active.close(user)
src.show_to(user)
else
return ..()
/obj/item/weapon/storage/belt/utility
name = "utility belt"
desc = "Can hold various tools."
icon_state = "utilitybelt"
item_state = "utility"
can_hold = list(
"/obj/item/weapon/crowbar",
"/obj/item/weapon/screwdriver",
"/obj/item/weapon/weldingtool",
"/obj/item/weapon/wirecutters",
"/obj/item/weapon/wrench",
"/obj/item/device/multitool",
"/obj/item/device/flashlight",
"/obj/item/weapon/cable_coil",
"/obj/item/device/t_scanner",
"/obj/item/device/analyzer")
/obj/item/weapon/storage/belt/utility/full/New()
..()
new /obj/item/weapon/screwdriver(src)
new /obj/item/weapon/wrench(src)
new /obj/item/weapon/weldingtool(src)
new /obj/item/weapon/crowbar(src)
new /obj/item/weapon/wirecutters(src)
new /obj/item/weapon/cable_coil(src,30,pick("red","yellow"))
/obj/item/weapon/storage/belt/medical
name = "medical belt"
desc = "Can hold various medical equipment."
icon_state = "medicalbelt"
item_state = "medical"
can_hold = list(
"/obj/item/device/healthanalyzer",
"/obj/item/weapon/dnainjector",
"/obj/item/weapon/reagent_containers/dropper",
"/obj/item/weapon/reagent_containers/glass/beaker",
"/obj/item/weapon/reagent_containers/glass/bottle",
"/obj/item/weapon/reagent_containers/pill",
"/obj/item/weapon/reagent_containers/syringe",
"/obj/item/weapon/reagent_containers/glass/dispenser",
"/obj/item/weapon/zippo",
"/obj/item/weapon/cigpacket",
"/obj/item/weapon/storage/pill_bottle",
"/obj/item/stack/medical",
"/obj/item/device/flashlight/pen"
)
/obj/item/weapon/storage/belt/security
name = "security belt"
desc = "Can hold security gear like handcuffs and flashes."
icon_state = "securitybelt"
item_state = "security"//Could likely use a better one.
storage_slots = 4
can_hold = list(
"/obj/item/weapon/flashbang",
"/obj/item/weapon/handcuffs",
"/obj/item/device/flash",
"/obj/item/clothing/glasses",
"/obj/item/ammo_casing/shotgun",
"/obj/item/ammo_magazine"
)
-60
View File
@@ -328,63 +328,3 @@
return
////////////////////////////////////////////////////////////////////////////////
/obj/item/weapon/storage/utilitybelt/proc/can_use()
if(!ismob(loc)) return 0
var/mob/M = loc
if(src in M.get_equipped_items())
return 1
else
return 0
/obj/item/weapon/storage/utilitybelt/dropped(mob/user as mob)
..()
/obj/item/weapon/storage/utilitybelt/MouseDrop(obj/over_object as obj, src_location, over_location)
var/mob/M = usr
if (!istype(over_object, /obj/screen))
if(can_use())
return ..()
else
M << "\red I need to wear the belt for that."
return
playsound(src.loc, "rustle", 50, 1, -5)
if (!M.restrained() && !M.stat && can_use())
if (over_object.name == "r_hand")
if (!( M.r_hand ))
M.u_equip(src)
M.r_hand = src
else
if (over_object.name == "l_hand")
if (!( M.l_hand ))
M.u_equip(src)
M.l_hand = src
M.update_clothing()
src.add_fingerprint(usr)
return
/obj/item/weapon/storage/utilitybelt/attack_paw(mob/user as mob)
return src.attack_hand(user)
/obj/item/weapon/storage/utilitybelt/attack_hand(mob/user as mob)
if (src.loc == user)
if(can_use())
playsound(src.loc, "rustle", 50, 1, -5)
if (user.s_active)
user.s_active.close(user)
src.show_to(user)
else
user << "\red I need to wear the belt for that."
return
else
return ..()
src.add_fingerprint(user)
/obj/item/weapon/storage/utilitybelt/attackby(obj/item/weapon/W as obj, mob/user as mob)
//..() //This will make it impossible to wrap the belt in wrapping paper, but will enable them to work as intended once more.
if(!can_use())
user << "\red I need to wear the belt for that."
return
else
..()
+178 -188
View File
@@ -20,208 +20,198 @@ var/prison_shuttle_timeleft = 0
var/allowedtocall = 0
var/prison_break = 0
/proc/prison_process()
while(prison_shuttle_time - world.timeofday > 0)
var/ticksleft = prison_shuttle_time - world.timeofday
if(ticksleft > 1e5)
prison_shuttle_time = world.timeofday + 10 // midnight rollover
prison_shuttle_timeleft = (ticksleft / 10)
sleep(5)
prison_shuttle_moving_to_station = 0
prison_shuttle_moving_to_prison = 0
switch(prison_shuttle_at_station)
if(0)
prison_shuttle_at_station = 1
if (prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return
if (!prison_can_move())
usr << "\red The prison shuttle is unable to leave."
return
var/area/start_location = locate(/area/shuttle/prison/prison)
var/area/end_location = locate(/area/shuttle/prison/station)
var/list/dstturfs = list()
var/throwy = world.maxy
for(var/turf/T in end_location)
dstturfs += T
if(T.y < throwy)
throwy = T.y
// hey you, get out of the way!
for(var/turf/T in dstturfs)
// find the turf to move things to
var/turf/D = locate(T.x, throwy - 1, 1)
//var/turf/E = get_step(D, SOUTH)
for(var/atom/movable/AM as mob|obj in T)
AM.Move(D)
if(istype(T, /turf/simulated))
del(T)
start_location.move_contents_to(end_location)
if(1)
prison_shuttle_at_station = 0
if (prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return
if (!prison_can_move())
usr << "\red The prison shuttle is unable to leave."
return
var/area/start_location = locate(/area/shuttle/prison/station)
var/area/end_location = locate(/area/shuttle/prison/prison)
var/list/dstturfs = list()
var/throwy = world.maxy
for(var/turf/T in end_location)
dstturfs += T
if(T.y < throwy)
throwy = T.y
// hey you, get out of the way!
for(var/turf/T in dstturfs)
// find the turf to move things to
var/turf/D = locate(T.x, throwy - 1, 1)
//var/turf/E = get_step(D, SOUTH)
for(var/atom/movable/AM as mob|obj in T)
AM.Move(D)
if(istype(T, /turf/simulated))
del(T)
start_location.move_contents_to(end_location)
/proc/prison_can_move()
if(prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return 0
else return 1
/obj/machinery/computer/prison_shuttle/attackby(I as obj, user as mob)
return src.attack_hand(user)
/obj/machinery/computer/prison_shuttle/attack_ai(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/computer/prison_shuttle/attack_paw(var/mob/user as mob)
return src.attack_hand(user)
/obj/machinery/computer/prison_shuttle/attackby(I as obj, user as mob)
if(istype(I,/obj/item/weapon/card/emag))
user << "\blue Nothing happens."
else
attackby(I as obj, user as mob)
return src.attack_hand(user)
/obj/machinery/computer/prison_shuttle/attack_hand(var/mob/user as mob)
if(!src.allowed(user))
user << "\red Access Denied."
attack_ai(var/mob/user as mob)
return src.attack_hand(user)
attack_paw(var/mob/user as mob)
return src.attack_hand(user)
attackby(I as obj, user as mob)
if(istype(I,/obj/item/weapon/card/emag) && (!hacked))
hacked = 1
user << "\blue You disable the lock."
else
return src.attack_hand(user)
attack_hand(var/mob/user as mob)
if(!src.allowed(user) && (!hacked))
user << "\red Access Denied."
return
if(prison_break)
user << "\red Unable to locate shuttle."
return
if(..())
return
user.machine = src
post_signal("prison")
var/dat
if (src.temp)
dat = src.temp
else
dat += {"<BR><B>Prison Shuttle</B><HR>
\nLocation: [prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison ? "Moving to station ([prison_shuttle_timeleft] Secs.)":prison_shuttle_at_station ? "Station":"Dock"]<BR>
[prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison ? "\n*Shuttle already called*<BR>\n<BR>":prison_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Send to Dock</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Send to station</A><BR>\n<BR>"]
\n<A href='?src=\ref[user];mach_close=computer'>Close</A>"}
user << browse(dat, "window=computer;size=575x450")
onclose(user, "computer")
return
if(prison_break)
user << "\red Unable to locate shuttle."
return
if(..())
return
user.machine = src
post_signal("prison")
var/dat
if (src.temp)
dat = src.temp
else
dat += {"<BR><B>Prison Shuttle</B><HR>
\nLocation: [prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison ? "Moving to station ([prison_shuttle_timeleft] Secs.)":prison_shuttle_at_station ? "Station":"Dock"]<BR>
[prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison ? "\n*Shuttle already called*<BR>\n<BR>":prison_shuttle_at_station ? "\n<A href='?src=\ref[src];sendtodock=1'>Send to Dock</A><BR>\n<BR>":"\n<A href='?src=\ref[src];sendtostation=1'>Send to station</A><BR>\n<BR>"]
\n<A href='?src=\ref[user];mach_close=computer'>Close</A>"}
user << browse(dat, "window=computer;size=575x450")
onclose(user, "computer")
return
/obj/machinery/computer/prison_shuttle/Topic(href, href_list)
if(..())
return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
if (href_list["sendtodock"])
if(!prison_shuttle_at_station|| prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return
if (!prison_can_move())
usr << "\red The prison shuttle is unable to leave."
Topic(href, href_list)
if(..())
return
post_signal("prison")
usr << "\blue The prison shuttle has been called and will arrive in [(PRISON_MOVETIME/10)] seconds."
src.temp += "Shuttle sent.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
src.updateUsrDialog()
prison_shuttle_moving_to_prison = 1
prison_shuttle_time = world.timeofday + PRISON_MOVETIME
spawn(0)
prison_process()
else if (href_list["sendtostation"])
if(prison_shuttle_at_station || prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return
if (!prison_can_move())
usr << "\red The prison shuttle is unable to leave."
return
post_signal("prison")
usr << "\blue The prison shuttle has been called and will arrive in [(PRISON_MOVETIME/10)] seconds."
src.temp += "Shuttle sent.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
src.updateUsrDialog()
prison_shuttle_moving_to_station = 1
prison_shuttle_time = world.timeofday + PRISON_MOVETIME
spawn(0)
prison_process()
else if (href_list["mainmenu"])
src.temp = null
src.add_fingerprint(usr)
src.updateUsrDialog()
return
/obj/machinery/computer/prison_shuttle/proc/prison_break()
switch(prison_break)
if (0)
if(!prison_shuttle_at_station || prison_shuttle_moving_to_prison) return
if ((usr.contents.Find(src) || (in_range(src, usr) && istype(src.loc, /turf))) || (istype(usr, /mob/living/silicon)))
usr.machine = src
if (href_list["sendtodock"])
if (!prison_can_move())
usr << "\red The prison shuttle is unable to leave."
return
if(!prison_shuttle_at_station|| prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return
post_signal("prison")
usr << "\blue The prison shuttle has been called and will arrive in [(PRISON_MOVETIME/10)] seconds."
src.temp += "Shuttle sent.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
src.updateUsrDialog()
prison_shuttle_moving_to_prison = 1
prison_shuttle_at_station = prison_shuttle_at_station
if (!prison_shuttle_moving_to_prison || !prison_shuttle_moving_to_station)
prison_shuttle_time = world.timeofday + PRISON_MOVETIME
prison_shuttle_time = world.timeofday + PRISON_MOVETIME
spawn(0)
prison_process()
prison_break = 1
if(1)
prison_break = 0
/obj/machinery/computer/prison_shuttle/proc/post_signal(var/command)
else if (href_list["sendtostation"])
if (!prison_can_move())
usr << "\red The prison shuttle is unable to leave."
return
if(prison_shuttle_at_station || prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return
post_signal("prison")
usr << "\blue The prison shuttle has been called and will arrive in [(PRISON_MOVETIME/10)] seconds."
src.temp += "Shuttle sent.<BR><BR><A href='?src=\ref[src];mainmenu=1'>OK</A>"
src.updateUsrDialog()
prison_shuttle_moving_to_station = 1
prison_shuttle_time = world.timeofday + PRISON_MOVETIME
spawn(0)
prison_process()
var/datum/radio_frequency/frequency = radio_controller.return_frequency(1311)
else if (href_list["mainmenu"])
src.temp = null
if(!frequency) return
src.add_fingerprint(usr)
src.updateUsrDialog()
return
var/datum/signal/status_signal = new
status_signal.source = src
status_signal.transmission_method = 1
status_signal.data["command"] = command
frequency.post_signal(src, status_signal)
proc/prison_can_move()
if(prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return 0
else return 1
proc/prison_break()
switch(prison_break)
if (0)
if(!prison_shuttle_at_station || prison_shuttle_moving_to_prison) return
prison_shuttle_moving_to_prison = 1
prison_shuttle_at_station = prison_shuttle_at_station
if (!prison_shuttle_moving_to_prison || !prison_shuttle_moving_to_station)
prison_shuttle_time = world.timeofday + PRISON_MOVETIME
spawn(0)
prison_process()
prison_break = 1
if(1)
prison_break = 0
proc/post_signal(var/command)
var/datum/radio_frequency/frequency = radio_controller.return_frequency(1311)
if(!frequency) return
var/datum/signal/status_signal = new
status_signal.source = src
status_signal.transmission_method = 1
status_signal.data["command"] = command
frequency.post_signal(src, status_signal)
return
proc/prison_process()
while(prison_shuttle_time - world.timeofday > 0)
var/ticksleft = prison_shuttle_time - world.timeofday
if(ticksleft > 1e5)
prison_shuttle_time = world.timeofday + 10 // midnight rollover
prison_shuttle_timeleft = (ticksleft / 10)
sleep(5)
prison_shuttle_moving_to_station = 0
prison_shuttle_moving_to_prison = 0
switch(prison_shuttle_at_station)
if(0)
prison_shuttle_at_station = 1
if (prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return
if (!prison_can_move())
usr << "\red The prison shuttle is unable to leave."
return
var/area/start_location = locate(/area/shuttle/prison/prison)
var/area/end_location = locate(/area/shuttle/prison/station)
var/list/dstturfs = list()
var/throwy = world.maxy
for(var/turf/T in end_location)
dstturfs += T
if(T.y < throwy)
throwy = T.y
// hey you, get out of the way!
for(var/turf/T in dstturfs)
// find the turf to move things to
var/turf/D = locate(T.x, throwy - 1, 1)
//var/turf/E = get_step(D, SOUTH)
for(var/atom/movable/AM as mob|obj in T)
AM.Move(D)
if(istype(T, /turf/simulated))
del(T)
start_location.move_contents_to(end_location)
if(1)
prison_shuttle_at_station = 0
if (prison_shuttle_moving_to_station || prison_shuttle_moving_to_prison) return
if (!prison_can_move())
usr << "\red The prison shuttle is unable to leave."
return
var/area/start_location = locate(/area/shuttle/prison/station)
var/area/end_location = locate(/area/shuttle/prison/prison)
var/list/dstturfs = list()
var/throwy = world.maxy
for(var/turf/T in end_location)
dstturfs += T
if(T.y < throwy)
throwy = T.y
// hey you, get out of the way!
for(var/turf/T in dstturfs)
// find the turf to move things to
var/turf/D = locate(T.x, throwy - 1, 1)
//var/turf/E = get_step(D, SOUTH)
for(var/atom/movable/AM as mob|obj in T)
AM.Move(D)
if(istype(T, /turf/simulated))
del(T)
start_location.move_contents_to(end_location)
return