mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-19 11:05:03 +01:00
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:
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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>")
|
||||
@@ -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
|
||||
@@ -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))
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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]]\""
|
||||
|
||||
@@ -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"
|
||||
)
|
||||
@@ -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
@@ -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
|
||||
Reference in New Issue
Block a user