Merge branch 'bleeding-edge-freeze' of https://github.com/Baystation12/Baystation12 into bleeding-edge-freeze

This commit is contained in:
Cael_Aislinn
2013-01-07 22:17:07 +10:00
26 changed files with 606 additions and 68 deletions
+225
View File
@@ -6,12 +6,232 @@
// BEGIN_FILE_DIR
#define FILE_DIR .
#define FILE_DIR "code"
#define FILE_DIR "code/__HELPERS"
#define FILE_DIR "code/ATMOSPHERICS"
#define FILE_DIR "code/ATMOSPHERICS/components"
#define FILE_DIR "code/ATMOSPHERICS/components/binary_devices"
#define FILE_DIR "code/ATMOSPHERICS/components/trinary_devices"
#define FILE_DIR "code/ATMOSPHERICS/components/unary"
#define FILE_DIR "code/controllers"
#define FILE_DIR "code/datums"
#define FILE_DIR "code/datums/diseases"
#define FILE_DIR "code/datums/diseases/advance"
#define FILE_DIR "code/datums/diseases/advance/symptoms"
#define FILE_DIR "code/datums/helper_datums"
#define FILE_DIR "code/datums/organs"
#define FILE_DIR "code/datums/spells"
#define FILE_DIR "code/defines"
#define FILE_DIR "code/defines/obj"
#define FILE_DIR "code/defines/obj/clothing"
#define FILE_DIR "code/defines/procs"
#define FILE_DIR "code/defines/sd_procs"
#define FILE_DIR "code/FEA"
#define FILE_DIR "code/game"
#define FILE_DIR "code/game/area"
#define FILE_DIR "code/game/events"
#define FILE_DIR "code/game/events/EventProcs"
#define FILE_DIR "code/game/events/Events"
#define FILE_DIR "code/game/gamemodes"
#define FILE_DIR "code/game/gamemodes/autotraitor"
#define FILE_DIR "code/game/gamemodes/blob"
#define FILE_DIR "code/game/gamemodes/blob/blobs"
#define FILE_DIR "code/game/gamemodes/changeling"
#define FILE_DIR "code/game/gamemodes/cult"
#define FILE_DIR "code/game/gamemodes/epidemic"
#define FILE_DIR "code/game/gamemodes/events"
#define FILE_DIR "code/game/gamemodes/events/holidays"
#define FILE_DIR "code/game/gamemodes/extended"
#define FILE_DIR "code/game/gamemodes/malfunction"
#define FILE_DIR "code/game/gamemodes/meme"
#define FILE_DIR "code/game/gamemodes/meteor"
#define FILE_DIR "code/game/gamemodes/nuclear"
#define FILE_DIR "code/game/gamemodes/revolution"
#define FILE_DIR "code/game/gamemodes/sandbox"
#define FILE_DIR "code/game/gamemodes/traitor"
#define FILE_DIR "code/game/gamemodes/wizard"
#define FILE_DIR "code/game/jobs"
#define FILE_DIR "code/game/jobs/job"
#define FILE_DIR "code/game/machinery"
#define FILE_DIR "code/game/machinery/atmoalter"
#define FILE_DIR "code/game/machinery/bots"
#define FILE_DIR "code/game/machinery/camera"
#define FILE_DIR "code/game/machinery/computer"
#define FILE_DIR "code/game/machinery/doors"
#define FILE_DIR "code/game/machinery/embedded_controller"
#define FILE_DIR "code/game/machinery/kitchen"
#define FILE_DIR "code/game/machinery/pipe"
#define FILE_DIR "code/game/machinery/telecomms"
#define FILE_DIR "code/game/magic"
#define FILE_DIR "code/game/mecha"
#define FILE_DIR "code/game/mecha/combat"
#define FILE_DIR "code/game/mecha/equipment"
#define FILE_DIR "code/game/mecha/equipment/tools"
#define FILE_DIR "code/game/mecha/equipment/weapons"
#define FILE_DIR "code/game/mecha/medical"
#define FILE_DIR "code/game/mecha/working"
#define FILE_DIR "code/game/objects"
#define FILE_DIR "code/game/objects/closets"
#define FILE_DIR "code/game/objects/closets/secure"
#define FILE_DIR "code/game/objects/effects"
#define FILE_DIR "code/game/objects/effects/decals"
#define FILE_DIR "code/game/objects/effects/decals/Cleanable"
#define FILE_DIR "code/game/objects/effects/spawners"
#define FILE_DIR "code/game/objects/items"
#define FILE_DIR "code/game/objects/items/devices"
#define FILE_DIR "code/game/objects/items/devices/PDA"
#define FILE_DIR "code/game/objects/items/devices/radio"
#define FILE_DIR "code/game/objects/items/robot"
#define FILE_DIR "code/game/objects/items/stacks"
#define FILE_DIR "code/game/objects/items/stacks/sheets"
#define FILE_DIR "code/game/objects/items/stacks/tiles"
#define FILE_DIR "code/game/objects/items/weapons"
#define FILE_DIR "code/game/objects/items/weapons/grenades"
#define FILE_DIR "code/game/objects/items/weapons/implants"
#define FILE_DIR "code/game/objects/items/weapons/secstorage"
#define FILE_DIR "code/game/objects/items/weapons/storage"
#define FILE_DIR "code/game/objects/items/weapons/tanks"
#define FILE_DIR "code/game/objects/storage"
#define FILE_DIR "code/game/objects/structures"
#define FILE_DIR "code/game/objects/structures/crates_lockers"
#define FILE_DIR "code/game/objects/structures/crates_lockers/closets"
#define FILE_DIR "code/game/objects/structures/crates_lockers/closets/secure"
#define FILE_DIR "code/game/objects/structures/stool_bed_chair_nest"
#define FILE_DIR "code/game/structure"
#define FILE_DIR "code/game/turfs"
#define FILE_DIR "code/game/turfs/simulated"
#define FILE_DIR "code/game/turfs/space"
#define FILE_DIR "code/game/turfs/unsimulated"
#define FILE_DIR "code/game/vehicles"
#define FILE_DIR "code/game/vehicles/airtight"
#define FILE_DIR "code/game/verbs"
#define FILE_DIR "code/js"
#define FILE_DIR "code/modules"
#define FILE_DIR "code/modules/admin"
#define FILE_DIR "code/modules/admin/DB ban"
#define FILE_DIR "code/modules/admin/permissionverbs"
#define FILE_DIR "code/modules/admin/verbs"
#define FILE_DIR "code/modules/assembly"
#define FILE_DIR "code/modules/awaymissions"
#define FILE_DIR "code/modules/awaymissions/maploader"
#define FILE_DIR "code/modules/chemical"
#define FILE_DIR "code/modules/client"
#define FILE_DIR "code/modules/clothing"
#define FILE_DIR "code/modules/clothing/glasses"
#define FILE_DIR "code/modules/clothing/gloves"
#define FILE_DIR "code/modules/clothing/head"
#define FILE_DIR "code/modules/clothing/masks"
#define FILE_DIR "code/modules/clothing/shoes"
#define FILE_DIR "code/modules/clothing/spacesuits"
#define FILE_DIR "code/modules/clothing/suits"
#define FILE_DIR "code/modules/clothing/under"
#define FILE_DIR "code/modules/clothing/under/jobs"
#define FILE_DIR "code/modules/clothing/uniforms"
#define FILE_DIR "code/modules/critters"
#define FILE_DIR "code/modules/critters/hivebots"
#define FILE_DIR "code/modules/customitems"
#define FILE_DIR "code/modules/DetectiveWork"
#define FILE_DIR "code/modules/flufftext"
#define FILE_DIR "code/modules/food"
#define FILE_DIR "code/modules/genetics"
#define FILE_DIR "code/modules/icon generation"
#define FILE_DIR "code/modules/library"
#define FILE_DIR "code/modules/liquid"
#define FILE_DIR "code/modules/maps"
#define FILE_DIR "code/modules/mining"
#define FILE_DIR "code/modules/mob"
#define FILE_DIR "code/modules/mob/dead"
#define FILE_DIR "code/modules/mob/dead/observer"
#define FILE_DIR "code/modules/mob/living"
#define FILE_DIR "code/modules/mob/living/blob"
#define FILE_DIR "code/modules/mob/living/carbon"
#define FILE_DIR "code/modules/mob/living/carbon/alien"
#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid"
#define FILE_DIR "code/modules/mob/living/carbon/alien/humanoid/caste"
#define FILE_DIR "code/modules/mob/living/carbon/alien/larva"
#define FILE_DIR "code/modules/mob/living/carbon/alien/special"
#define FILE_DIR "code/modules/mob/living/carbon/amorph"
#define FILE_DIR "code/modules/mob/living/carbon/brain"
#define FILE_DIR "code/modules/mob/living/carbon/human"
#define FILE_DIR "code/modules/mob/living/carbon/metroid"
#define FILE_DIR "code/modules/mob/living/carbon/monkey"
#define FILE_DIR "code/modules/mob/living/parasite"
#define FILE_DIR "code/modules/mob/living/silicon"
#define FILE_DIR "code/modules/mob/living/silicon/ai"
#define FILE_DIR "code/modules/mob/living/silicon/ai/freelook"
#define FILE_DIR "code/modules/mob/living/silicon/decoy"
#define FILE_DIR "code/modules/mob/living/silicon/pai"
#define FILE_DIR "code/modules/mob/living/silicon/robot"
#define FILE_DIR "code/modules/mob/living/simple_animal"
#define FILE_DIR "code/modules/mob/living/simple_animal/friendly"
#define FILE_DIR "code/modules/mob/living/simple_animal/hostile"
#define FILE_DIR "code/modules/mob/new_player"
#define FILE_DIR "code/modules/mob/simple_animal"
#define FILE_DIR "code/modules/paperwork"
#define FILE_DIR "code/modules/power"
#define FILE_DIR "code/modules/power/antimatter"
#define FILE_DIR "code/modules/power/singularity"
#define FILE_DIR "code/modules/power/singularity/particle_accelerator"
#define FILE_DIR "code/modules/projectiles"
#define FILE_DIR "code/modules/projectiles/ammunition"
#define FILE_DIR "code/modules/projectiles/guns"
#define FILE_DIR "code/modules/projectiles/guns/energy"
#define FILE_DIR "code/modules/projectiles/guns/projectile"
#define FILE_DIR "code/modules/projectiles/projectile"
#define FILE_DIR "code/modules/reagents"
#define FILE_DIR "code/modules/reagents/reagent_containers"
#define FILE_DIR "code/modules/reagents/reagent_containers/food"
#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks"
#define FILE_DIR "code/modules/reagents/reagent_containers/food/drinks/bottle"
#define FILE_DIR "code/modules/reagents/reagent_containers/food/snacks"
#define FILE_DIR "code/modules/reagents/reagent_containers/glass"
#define FILE_DIR "code/modules/reagents/reagent_containers/glass/bottle"
#define FILE_DIR "code/modules/recycling"
#define FILE_DIR "code/modules/research"
#define FILE_DIR "code/modules/research/xenoarchaeology"
#define FILE_DIR "code/modules/scripting"
#define FILE_DIR "code/modules/scripting/AST"
#define FILE_DIR "code/modules/scripting/AST/Operators"
#define FILE_DIR "code/modules/scripting/Implementations"
#define FILE_DIR "code/modules/scripting/Interpreter"
#define FILE_DIR "code/modules/scripting/Parser"
#define FILE_DIR "code/modules/scripting/Scanner"
#define FILE_DIR "code/modules/security levels"
#define FILE_DIR "code/TriDimension"
#define FILE_DIR "code/unused"
#define FILE_DIR "code/unused/beast"
#define FILE_DIR "code/unused/computer2"
#define FILE_DIR "code/unused/disease2"
#define FILE_DIR "code/unused/gamemodes"
#define FILE_DIR "code/unused/hivebot"
#define FILE_DIR "code/unused/mining"
#define FILE_DIR "code/unused/optics"
#define FILE_DIR "code/unused/pda2"
#define FILE_DIR "code/unused/powerarmor"
#define FILE_DIR "code/unused/spacecraft"
#define FILE_DIR "code/WorkInProgress"
#define FILE_DIR "code/WorkInProgress/AI_Visibility"
#define FILE_DIR "code/WorkInProgress/animusstation"
#define FILE_DIR "code/WorkInProgress/Apples"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Rust"
#define FILE_DIR "code/WorkInProgress/Cael_Aislinn/Supermatter"
#define FILE_DIR "code/WorkInProgress/carn"
#define FILE_DIR "code/WorkInProgress/Chinsky"
#define FILE_DIR "code/WorkInProgress/mapload"
#define FILE_DIR "code/WorkInProgress/Mini"
#define FILE_DIR "code/WorkInProgress/Mloc"
#define FILE_DIR "code/WorkInProgress/organs"
#define FILE_DIR "code/WorkInProgress/Ported"
#define FILE_DIR "code/WorkInProgress/Ported/Abi79"
#define FILE_DIR "code/WorkInProgress/Ported/Bureaucracy"
#define FILE_DIR "code/WorkInProgress/Ported/Spawners"
#define FILE_DIR "code/WorkInProgress/SkyMarshal"
#define FILE_DIR "code/WorkInProgress/Susan"
#define FILE_DIR "code/WorkInProgress/Tastyfish"
#define FILE_DIR "code/WorkInProgress/virus2"
#define FILE_DIR "code/WorkInProgress/virus2/Disease2"
#define FILE_DIR "code/WorkInProgress/Wrongnumber"
#define FILE_DIR "code/ZAS"
#define FILE_DIR "html"
#define FILE_DIR "icons"
#define FILE_DIR "icons/48x48"
@@ -33,7 +253,9 @@
#define FILE_DIR "icons/turf"
#define FILE_DIR "icons/vehicles"
#define FILE_DIR "icons/vending_icons"
#define FILE_DIR "interface"
#define FILE_DIR "maps"
#define FILE_DIR "maps/RandomZLevels"
#define FILE_DIR "sound"
#define FILE_DIR "sound/AI"
#define FILE_DIR "sound/ambience"
@@ -49,6 +271,8 @@
#define FILE_DIR "sound/violin"
#define FILE_DIR "sound/voice"
#define FILE_DIR "sound/weapons"
#define FILE_DIR "tools"
#define FILE_DIR "tools/Redirector"
// END_FILE_DIR
// BEGIN_PREFERENCES
@@ -864,6 +1088,7 @@
#include "code\modules\mob\living\carbon\brain\hud.dm"
#include "code\modules\mob\living\carbon\brain\life.dm"
#include "code\modules\mob\living\carbon\brain\MMI.dm"
#include "code\modules\mob\living\carbon\brain\posibrain.dm"
#include "code\modules\mob\living\carbon\brain\say.dm"
#include "code\modules\mob\living\carbon\human\death.dm"
#include "code\modules\mob\living\carbon\human\emote.dm"
+1 -1
View File
@@ -395,7 +395,7 @@ obj/machinery/atmospherics/tvalve/mirrored
return
..()
//Radio remote control
//Radio remote control -eh?
proc
set_frequency(new_frequency)
+94 -11
View File
@@ -721,7 +721,7 @@ obj/machinery/atmospherics/pipe
icon_state = "manifold_[connected]_[unconnected]"
if(!connected)
if(!connected)
del(src)
return
@@ -832,7 +832,7 @@ obj/machinery/atmospherics/pipe
icon_state = "manifold-y-f"
manifold4w
icon = 'pipe_manifold.dmi'
icon = 'icons/obj/atmospherics/pipe_manifold.dmi'
icon_state = "manifold4w-f"
name = "4-way pipe manifold"
@@ -841,7 +841,7 @@ obj/machinery/atmospherics/pipe
volume = 140
dir = SOUTH
initialize_directions = EAST|NORTH|WEST|SOUTH
initialize_directions = NORTH|SOUTH|EAST|WEST
var/obj/machinery/atmospherics/node1
var/obj/machinery/atmospherics/node2
@@ -849,6 +849,7 @@ obj/machinery/atmospherics/pipe
var/obj/machinery/atmospherics/node4
level = 1
layer = 2.4 //under wires with their 2.44
hide(var/i)
if(level == 1 && istype(loc, /turf/simulated))
@@ -862,7 +863,7 @@ obj/machinery/atmospherics/pipe
if(!parent)
..()
else
machines.Remove(src)
. = PROCESS_KILL
/*
if(!node1)
parent.mingle_with_turf(loc, 70)
@@ -913,14 +914,13 @@ obj/machinery/atmospherics/pipe
if(reference == node4)
if(istype(node4, /obj/machinery/atmospherics/pipe))
del(parent)
node3 = null
node4 = null
update_icon()
..()
update_icon()
overlays = new()
if(node1&&node2&&node3&&node4)
var/C = ""
switch(color)
@@ -934,7 +934,7 @@ obj/machinery/atmospherics/pipe
else
icon_state = "manifold4w_ex"
var/icon/con = new/icon('pipe_manifold.dmi',"manifold4w_con")
var/icon/con = new/icon('pipe_manifold.dmi',"manifold4w_con") //Since 4-ways are supposed to be directionless, they need an overlay instead it seems.
if(node1)
overlays += new/image(con,dir=1)
@@ -950,23 +950,24 @@ obj/machinery/atmospherics/pipe
return
initialize()
for(var/obj/machinery/atmospherics/target in get_step(src,1))
if(target.initialize_directions & get_dir(target,src))
if(target.initialize_directions & 2)
node1 = target
break
for(var/obj/machinery/atmospherics/target in get_step(src,2))
if(target.initialize_directions & get_dir(target,src))
if(target.initialize_directions & 1)
node2 = target
break
for(var/obj/machinery/atmospherics/target in get_step(src,4))
if(target.initialize_directions & get_dir(target,src))
if(target.initialize_directions & 8)
node3 = target
break
for(var/obj/machinery/atmospherics/target in get_step(src,8))
if(target.initialize_directions & get_dir(target,src))
if(target.initialize_directions & 4)
node4 = target
break
@@ -1026,6 +1027,88 @@ obj/machinery/atmospherics/pipe
manifold4w/general/hidden
level = 1
icon_state = "manifold4w-f"
cap
name = "pipe endcap"
desc = "An endcap for pipes"
icon = 'pipes.dmi'
icon_state = "cap"
level = 2
layer = 2.4 //under wires with their 2.44
volume = 35
dir = SOUTH
initialize_directions = NORTH
var/obj/machinery/atmospherics/node
New()
..()
switch(dir)
if(SOUTH)
initialize_directions = NORTH
if(NORTH)
initialize_directions = SOUTH
if(WEST)
initialize_directions = EAST
if(EAST)
initialize_directions = WEST
hide(var/i)
if(level == 1 && istype(loc, /turf/simulated))
invisibility = i ? 101 : 0
update_icon()
pipeline_expansion()
return list(node)
process()
if(!parent)
..()
else
. = PROCESS_KILL
Del()
if(node)
node.disconnect(src)
..()
disconnect(obj/machinery/atmospherics/reference)
if(reference == node)
if(istype(node, /obj/machinery/atmospherics/pipe))
del(parent)
node = null
update_icon()
..()
update_icon()
overlays = new()
icon_state = "cap[invisibility ? "-f" : ""]"
return
initialize()
for(var/obj/machinery/atmospherics/target in get_step(src, dir))
if(target.initialize_directions & get_dir(target,src))
node = target
break
var/turf/T = src.loc // hide if turf is not intact
hide(T.intact)
//update_icon()
update_icon()
visible
level = 2
icon_state = "cap"
hidden
level = 1
icon_state = "cap-f"
obj/machinery/atmospherics/pipe/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
if (istype(src, /obj/machinery/atmospherics/pipe/tank))
+75
View File
@@ -39,6 +39,16 @@
// evil infection stuff that will make everyone hate me
var/can_infect = 0
proc/isright(obj/item/tool) //is it is a required surgical tool for this step
return (istype(tool,required_tool))
proc/isacceptable(obj/item/tool) //is it is an accepted replacement tool for this step
if (allowed_tools)
for (var/T in allowed_tools)
if (istype(tool,T))
return 1
return 0
// Build this list by iterating over all typesof(/datum/surgery_step) and sorting the results by priority
@@ -1226,3 +1236,68 @@ proc/spread_germs_to_organ(datum/organ/external/E, mob/living/carbon/human/user)
user:bloody_hands(target, 0)
user:bloody_body(target)
//////////////////////////////////////////////////////////////////
// IMPLANT REMOVAL SURGERY //
//////////////////////////////////////////////////////////////////
/datum/surgery_step/implant_removal
required_tool = /obj/item/weapon/hemostat
allowed_tools = list(/obj/item/weapon/wirecutters, /obj/item/weapon/kitchen/utensil/fork)
min_duration = 80
max_duration = 100
can_use(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
return affected.open == 2 && !(affected.status & ORGAN_BLEEDING)
begin_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/affected = target.get_organ(target_zone)
user.visible_message("[user] starts poking around inside the incision on [target]'s [affected.display_name] with \the [tool].", \
"You start poking around inside the incision on [target]'s [affected.display_name] with \the [tool]" )
target.custom_pain("The pain in your chest is living hell!",1)
end_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/chest/affected = target.get_organ("chest")
var/find_prob = 0
if (affected.implants.len)
var/obj/item/weapon/implant/imp = affected.implants[1]
if (imp.islegal())
find_prob +=60
else
find_prob +=40
if (isright(tool))
find_prob +=20
if (prob(find_prob))
user.visible_message("\blue [user] takes something out of incision on [target]'s [affected.display_name] with \the [tool].", \
"\blue You take something out of incision on [target]'s [affected.display_name]s with \the [tool]." )
var/obj/item/weapon/implant/imp = affected.implants[1]
affected.implants -= imp
imp.loc = get_turf(target)
imp.imp_in = null
imp.implanted = 0
else
user.visible_message("\blue [user] could not find anything inside [target]'s [affected.display_name], and pulls \the [tool] out.", \
"\blue You could not find anything inside [target]'s [affected.display_name]." )
if (ishuman(user) && prob(80)) user:bloody_hands(target, 0)
fail_step(mob/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
var/datum/organ/external/chest/affected = target.get_organ(target_zone)
user.visible_message("\red [user]'s hand slips, scraping tissue inside [target]'s [affected.display_name] with \the [tool]!", \
"\red Your hand slips, scraping tissue inside [target]'s [affected.display_name] with \the [tool]!")
affected.createwound(CUT, 20)
if (affected.implants.len)
var/fail_prob = 10
if (!isright(tool))
fail_prob += 30
if (prob(fail_prob))
var/obj/item/weapon/implant/imp = affected.implants[1]
user.visible_message("\red Something beeps inside [target]'s [affected.display_name]!")
playsound(imp.loc, 'sound/weapons/armbomb.ogg', 75, 1, -3)
spawn(15)
imp.activate()
if (ishuman(user))
user:bloody_hands(target, 0)
user:bloody_body(target)
+1
View File
@@ -34,6 +34,7 @@
var/open = 0
var/stage = 0
var/list/implants = list()
// INTERNAL germs inside the organ, this is BAD if it's greater 0
var/germ_level = 0
+3 -1
View File
@@ -62,6 +62,8 @@ Devices and Tools;
Whitespace:Seperator;
Implants;
/obj/item/weapon/storage/syndie_kit/imp_freedom:3:Freedom Implant;
/obj/item/weapon/implant/explosive:6:Explosive Implant (DANGER!);
/obj/item/weapon/implant/compressed:4:Compressed Matter Implant;
/obj/item/weapon/storage/syndie_kit/imp_uplink:10:Uplink Implant (Contains 5 Telecrystals);
Whitespace:Seperator;
(Pointless) Badassery;
@@ -419,4 +421,4 @@ proc/display_roundstart_logout_report()
for(var/mob/M in mob_list)
if(M.client && M.client.holder)
M << msg
M << msg
+1 -1
View File
@@ -296,7 +296,7 @@
AN = "[e.broken_description]:"
if(e.open)
open = "Open:"
if(e.implant)
if(e.implants.len)
imp = "Implanted:"
if(!AN && !open && !infected & !imp)
AN = "None:"
+83 -3
View File
@@ -20,6 +20,9 @@ Buildable meters
#define PIPE_PASSIVE_GATE 15
#define PIPE_VOLUME_PUMP 16
#define PIPE_HEAT_EXCHANGE 17
#define PIPE_MTVALVE 18
#define PIPE_MANIFOLD4W 19
#define PIPE_CAP 20
/obj/item/pipe
name = "pipe"
@@ -75,6 +78,12 @@ Buildable meters
src.pipe_type = PIPE_VOLUME_PUMP
else if(istype(make_from, /obj/machinery/atmospherics/unary/heat_exchanger))
src.pipe_type = PIPE_HEAT_EXCHANGE
else if(istype(make_from, /obj/machinery/atmospherics/tvalve))
src.pipe_type = PIPE_MTVALVE
else if(istype(make_from, /obj/machinery/atmospherics/pipe/manifold4w))
src.pipe_type = PIPE_MANIFOLD4W
else if(istype(make_from, /obj/machinery/atmospherics/pipe/cap))
src.pipe_type = PIPE_CAP
else
src.pipe_type = pipe_type
src.dir = dir
@@ -105,6 +114,9 @@ Buildable meters
"passive gate", \
"volume pump", \
"heat exchanger", \
"t-valve", \
"4-way manifold", \
"pipe cap", \
)
name = nlist[pipe_type+1] + " fitting"
var/list/islist = list( \
@@ -126,6 +138,9 @@ Buildable meters
"passivegate", \
"volumepump", \
"heunary", \
"mtvalve", \
"manifold4w", \
"cap", \
)
icon_state = islist[pipe_type + 1]
@@ -149,6 +164,8 @@ Buildable meters
dir = 1
else if(dir==8)
dir = 4
else if (pipe_type == PIPE_MANIFOLD4W)
dir = 2
//src.pipe_dir = get_pipe_dir()
return
@@ -188,10 +205,14 @@ Buildable meters
return dir //dir|acw
if(PIPE_CONNECTOR,PIPE_UVENT,PIPE_SCRUBBER,PIPE_HEAT_EXCHANGE)
return dir
if(PIPE_MANIFOLD4W)
return dir|flip|cw|acw
if(PIPE_MANIFOLD)
return flip|cw|acw
if(PIPE_GAS_FILTER, PIPE_GAS_MIXER)
if(PIPE_GAS_FILTER, PIPE_GAS_MIXER,PIPE_MTVALVE)
return dir|flip|cw
if(PIPE_CAP)
return flip
return 0
/obj/item/pipe/proc/get_pdir() //endpoints for regular pipes
@@ -241,6 +262,8 @@ Buildable meters
dir = 1
else if(dir==8)
dir = 4
else if (pipe_type == PIPE_MANIFOLD4W)
dir = 2
var/pipe_dir = get_pipe_dir()
for(var/obj/machinery/atmospherics/M in src.loc)
@@ -325,6 +348,31 @@ Buildable meters
if (M.node3)
M.node3.initialize()
M.node3.build_network()
if(PIPE_MANIFOLD4W) //4-way manifold
var/obj/machinery/atmospherics/pipe/manifold4w/M = new( src.loc )
M.dir = dir
M.initialize_directions = pipe_dir
//M.New()
var/turf/T = M.loc
M.level = T.intact ? 2 : 1
M.initialize()
if (!M)
usr << "There's nothing to connect this manifold to! (with how the pipe code works, at least one end needs to be connected to something, otherwise the game deletes the segment)"
return 1
M.build_network()
if (M.node1)
M.node1.initialize()
M.node1.build_network()
if (M.node2)
M.node2.initialize()
M.node2.build_network()
if (M.node3)
M.node3.initialize()
M.node3.build_network()
if (M.node4)
M.node4.initialize()
M.node4.build_network()
if(PIPE_JUNCTION)
var/obj/machinery/atmospherics/pipe/simple/heat_exchanging/junction/P = new ( src.loc )
@@ -467,6 +515,36 @@ Buildable meters
if (P.node2)
P.node2.initialize()
P.node2.build_network()
if(PIPE_MTVALVE) //manual t-valve
var/obj/machinery/atmospherics/tvalve/V = new(src.loc)
V.dir = dir
V.initialize_directions = pipe_dir
if (pipename)
V.name = pipename
var/turf/T = V.loc
V.level = T.intact ? 2 : 1
V.initialize()
V.build_network()
if (V.node1)
V.node1.initialize()
V.node1.build_network()
if (V.node2)
V.node2.initialize()
V.node2.build_network()
if (V.node3)
V.node3.initialize()
V.node3.build_network()
if(PIPE_CAP)
var/obj/machinery/atmospherics/pipe/cap/C = new(src.loc)
C.dir = dir
C.initialize_directions = pipe_dir
C.initialize()
C.build_network()
if(C.node)
C.node.initialize()
C.node.build_network()
if(PIPE_PASSIVE_GATE) //passive gate
var/obj/machinery/atmospherics/binary/passive_gate/P = new(src.loc)
@@ -551,7 +629,7 @@ Buildable meters
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
user << "\blue You have fastened the meter to the pipe"
del(src)
//not sure why these are necessary
#undef PIPE_SIMPLE_STRAIGHT
#undef PIPE_SIMPLE_BENT
#undef PIPE_HE_STRAIGHT
@@ -569,4 +647,6 @@ Buildable meters
#undef PIPE_GAS_MIXER
#undef PIPE_PASSIVE_GATE
#undef PIPE_VOLUME_PUMP
#undef PIPE_OUTLET_INJECT
#undef PIPE_OUTLET_INJECT
#undef PIPE_MTVALVE
//#undef PIPE_MANIFOLD4W
+5 -1
View File
@@ -19,6 +19,9 @@
<A href='?src=\ref[src];make=1;dir=5'>Bent Pipe</A><BR>
<A href='?src=\ref[src];make=5;dir=1'>Manifold</A><BR>
<A href='?src=\ref[src];make=8;dir=1'>Manual Valve</A><BR>
<A href='?src=\ref[src];make=20;dir=1'>Pipe Cap</A><BR>
<A href='?src=\ref[src];make=19;dir=1'>4-Way Manifold</A><BR>
<A href='?src=\ref[src];make=18;dir=1'>Manual T-Valve</A><BR>
<b>Devices:</b><BR>
<A href='?src=\ref[src];make=4;dir=1'>Connector</A><BR>
<A href='?src=\ref[src];make=7;dir=1'>Unary Vent</A><BR>
@@ -37,8 +40,9 @@
<b>Insulated pipes:</b><BR>
<A href='?src=\ref[src];make=11;dir=1'>Pipe</A><BR>
<A href='?src=\ref[src];make=12;dir=5'>Bent Pipe</A><BR>
"}
"}
//What number the make points to is in the define # at the top of construction.dm in same folder
user << browse("<HEAD><TITLE>[src]</TITLE></HEAD><TT>[dat]</TT>", "window=pipedispenser")
onclose(user, "pipedispenser")
+1 -1
View File
@@ -1153,7 +1153,7 @@
src.occupant.client.perspective = MOB_PERSPECTIVE
*/
src.occupant << browse(null, "window=exosuit")
if(istype(mob_container, /obj/item/device/mmi))
if(istype(mob_container, /obj/item/device/mmi) || istype(mob_container, /obj/item/device/posibrain))
var/obj/item/device/mmi/mmi = mob_container
if(mmi.brainmob)
occupant.loc = mmi
+11 -16
View File
@@ -186,26 +186,21 @@
if (!istype(M)) // not sure if this is the right thing...
return
if (can_operate(M)) //Checks if mob is lying down on table for surgery
if(istype(M,/mob/living/carbon))
if (user.a_intent != "harm")
if (user.a_intent != "harm") //check for Hippocratic Oath
if(surgery_steps.len == 0) build_surgery_steps_list()
for(var/datum/surgery_step/S in surgery_steps)
//check if tool is right or close enough
var/right = istype(src, S.required_tool)
if (!right && S.allowed_tools)
for (var/T in S.allowed_tools)
if (istype(src, T))
right = 1
if(right && S.can_use(user, M, user.zone_sel.selecting, src)) //is this step possible?
S.begin_step(user, M, user.zone_sel.selecting, src)
if(do_mob(user, M, rand(S.min_duration, S.max_duration)))
S.end_step(user, M, user.zone_sel.selecting, src)
else
S.fail_step(user, M, user.zone_sel.selecting, src)
return //don't want to do weapony things after surgery
if (is_surgery_tool(src))
return
if( S.isright(src) || S.isacceptable(src) ) //check if tool is right or close enough
if(S.can_use(user, M, user.zone_sel.selecting, src)) //and if this step is possible
S.begin_step(user, M, user.zone_sel.selecting, src) //start on it
if(do_mob(user, M, rand(S.min_duration, S.max_duration))) //if user did nto move or changed hands
S.end_step(user, M, user.zone_sel.selecting, src) //finish successfully
else //or
S.fail_step(user, M, user.zone_sel.selecting, src) //malpractice~
return //don't want to do weapony things after surgery
var/messagesource = M
+1 -1
View File
@@ -198,6 +198,7 @@
user.drop_item()
O.mmi = W
O.invisibility = 0
O.custom_name = created_name
O.updatename("Default")
@@ -212,7 +213,6 @@
O.cell = chest.cell
O.cell.loc = O
W.loc = O//Should fix cybros run time erroring when blown up. It got deleted before, along with the frame.
O.mmi = W
feedback_inc("cyborg_birth",1)
@@ -1,7 +1,10 @@
/obj/item/weapon/implant
name = "implant"
icon = 'device.dmi'
icon_state = "implant"
var/implanted = null
var/mob/imp_in = null
var/datum/organ/external/part = null
color = "b"
var/allow_reagents = 0
@@ -23,8 +26,8 @@
proc/hear(message, source as mob)
return
proc/islegal()
return 0
/obj/item/weapon/implant/tracking
name = "tracking"
@@ -82,6 +85,8 @@ Implant Specifics:<BR>"}
if(src.imp_in)
src.imp_in.gib()
islegal()
return 0
//BS12 Explosive
/obj/item/weapon/implant/explosive
name = "explosive implant"
@@ -110,15 +115,18 @@ Implant Specifics:<BR>"}
var/list/replacechars = list("'" = "","\"" = "",">" = "","<" = "","(" = "",")" = "")
msg = sanitize_simple(msg, replacechars)
if(findtext(msg,phrase))
if(istype(imp_in, /mob/))
var/mob/T = imp_in
T.gib()
explosion(get_turf(imp_in), 1, 3, 4, 6, 3)
var/turf/t = get_turf(imp_in)
if(t)
t.hotspot_expose(3500,125)
activate()
del(src)
activate()
if(istype(imp_in, /mob/))
var/mob/T = imp_in
T.gib()
explosion(get_turf(imp_in), 1, 3, 4, 6, 3)
var/turf/t = get_turf(imp_in)
if(t)
t.hotspot_expose(3500,125)
implanted(mob/source as mob)
phrase = input("Choose activation phrase:") as text
var/list/replacechars = list("'" = "","\"" = "",">" = "","<" = "","(" = "",")" = "")
@@ -127,6 +135,8 @@ Implant Specifics:<BR>"}
usr << "The implanted explosive implant in [source] can be activated by saying something containing the phrase ''[src.phrase]'', <B>say [src.phrase]</B> to attempt to activate."
return 1
islegal()
return 0
/obj/item/weapon/implant/chem
name = "chem"
@@ -266,14 +276,16 @@ the implant may become unstable and either pre-maturely inject the subject or si
process()
if (!implanted) return
var/mob/M = imp_in
var/area/t = get_area(M)
if(isnull(M)) // If the mob got gibbed
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset(null)
a.autosay("[mobname] has died-zzzzt in-in-in...", "[mobname]'s Death Alarm")
del(a)
processing_objects.Remove(src)
activate()
else if(M.stat == 2)
activate("death")
activate(var/cause)
var/mob/M = imp_in
var/area/t = get_area(M)
if(cause == "death")
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset(null)
if(istype(t, /area/syndicate_station) || istype(t, /area/syndicate_mothership) || istype(t, /area/shuttle/syndicate_elite) )
//give the syndies a bit of stealth
@@ -282,7 +294,11 @@ the implant may become unstable and either pre-maturely inject the subject or si
a.autosay("[mobname] has died in [t.name]!", "[mobname]'s Death Alarm")
del(a)
processing_objects.Remove(src)
else
var/obj/item/device/radio/headset/a = new /obj/item/device/radio/headset(null)
a.autosay("[mobname] has died-zzzzt in-in-in...", "[mobname]'s Death Alarm")
del(a)
processing_objects.Remove(src)
implanted(mob/source as mob)
mobname = source.real_name
@@ -314,13 +330,20 @@ the implant may become unstable and either pre-maturely inject the subject or si
if (emote == src.activation_emote)
source << "The air glows as \the [src.scanned.name] uncompresses."
var/turf/t = get_turf(source)
src.scanned.loc = t
del src
activate()
activate()
var/turf/t = get_turf(src)
src.scanned.loc = t
if (part) part.implants -= src
del src
implanted(mob/source as mob)
src.activation_emote = input("Choose activation emote:") in list("blink", "blink_r", "eyebrow", "chuckle", "twitch_s", "frown", "nod", "blush", "giggle", "grin", "groan", "shrug", "smile", "pale", "sniff", "whimper", "wink")
source.mind.store_memory("Freedom implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
if (source.mind)
source.mind.store_memory("Freedom implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate.", 0, 0)
source << "The implanted freedom implant can be activated by using the [src.activation_emote] emote, <B>say *[src.activation_emote]</B> to attempt to activate."
return 1
islegal()
return 0
@@ -40,6 +40,11 @@
src.imp.loc = M
src.imp.imp_in = M
src.imp.implanted = 1
if (ishuman(M))
var/mob/living/carbon/human/H = M
var/datum/organ/external/affected = H.get_organ(user.zone_sel.selecting)
affected.implants += src.imp
imp.part = affected
src.imp = null
update()
@@ -107,6 +112,10 @@
/obj/item/weapon/implanter/compressed/afterattack(atom/A, mob/user as mob)
if(istype(A,/obj/item) && imp)
var/obj/item/weapon/implant/compressed/c = imp
if (c.scanned)
user << "\red Something is already scanned inside the implant!"
return
imp:scanned = A
A.loc.contents.Remove(A)
update()
+1 -1
View File
@@ -53,7 +53,7 @@
if(holder.rights & R_ADMIN)
C << "<font color=[config.allow_admin_ooccolor ? holder.ooccolor :"#b82e00" ]><b><span class='prefix'>OOC:</span> <EM>[key][holder.fakekey ? "/([holder.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></b></font>"
//todo: other adminranks OOC
if(holder.rights & R_MOD)
else if(holder.rights & R_MOD)
C << "<font color=#184880><b><span class='prefix'>OOC:</span> <EM>[key][holder.fakekey ? "/([holder.fakekey])" : ""]:</EM> <span class='message'>[msg]</span></b></font>"
else
@@ -57,14 +57,19 @@
src.brainmob.real_name = "PBU-[rand(100, 999)]"
src.brainmob.loc = src
src.brainmob.container = src
src.brainmob.robot_talk_understand = 1
src.brainmob.stat = 0
src.brainmob.silent = 0
src.brainmob.brain_op_stage = 4.0
src.brainmob.key = candidate.key
dead_mob_list -= src.brainmob
living_mob_list += src.brainmob
src.brainmob << "<b>You are a positronic brain, brought into existence on [station_name()].</b>"
src.brainmob << "<b>As a synthetic intelligence, you answer to all crewmembers, as well as the AI.</b>"
src.brainmob << "Use say :b to speak to other artificial intelligences on the station."
src.brainmob.mind.assigned_role = "Positronic Brain"
var/turf/T = get_turf_or_move(src.loc)
for (var/mob/M in viewers(T))
M.show_message("\blue The positronic brain chimes quietly.")
@@ -99,7 +104,6 @@
if(!src.brainmob.client) msg += "It appears to be in stand-by mode.\n" //afk
if(UNCONSCIOUS) msg += "<span class='warning'>It doesn't seem to be responsive.</span>\n"
if(DEAD) msg += "<span class='deadsay'>It appears to be completely inactive.</span>\n"
else
msg += "<span class='info'>*---------*</span>"
usr << msg
return
@@ -5,6 +5,11 @@
if(!(container && (istype(container, /obj/item/device/mmi) || istype(container, /obj/item/device/posibrain))))
return //No MMI, can't speak, bucko./N
else
if ((copytext(message, 1, 3) == ":b") || (copytext(message, 1, 3) == ":B") && (container && istype(container, /obj/item/device/posibrain)))
message = copytext(message, 3)
message = trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN))
robot_talk(message)
return
if(prob(emp_damage*4))
if(prob(10))//10% chane to drop the message entirely
return
@@ -53,7 +53,7 @@
var/lockcharge //Used when locking down a borg to preserve cell charge
var/speed = 0 //Cause sec borgs gotta go fast //No they dont!
var/scrambledcodes = 0 // Used to determine if a borg shows up on the robotics console. Setting to one hides them.
var/braintype = "Cyborg"
/mob/living/silicon/robot/New(loc,var/syndie = 0)
spark_system = new /datum/effect/effect/system/spark_spread()
@@ -195,11 +195,16 @@
/mob/living/silicon/robot/proc/updatename(var/prefix as text)
if(istype(mmi, /obj/item/device/posibrain))
braintype = "Android"
else
braintype = "Cyborg"
var/changed_name = ""
if(custom_name)
changed_name = custom_name
else
changed_name = "[(prefix ? "[prefix] " : "")]Cyborg-[num2text(ident)]"
changed_name = "[(prefix ? "[prefix] " : "")][braintype]-[num2text(ident)]"
real_name = changed_name
name = real_name
+10
View File
@@ -587,6 +587,16 @@ datum/design/paicard
materials = list("$glass" = 500, "$metal" = 500)
build_path = "/obj/item/device/paicard"
datum/design/paicard
name = "Positronic Brain"
desc = "Allows for the construction of a positronic brain"
id = "posibrain"
req_tech = list("engineering" = 4, "materials" = 4, "bluespace" = 2, "programming" = 6)
build_type = PROTOLATHE
materials = list("$metal" = 2000, "$glass" = 1000, "$silver" = 1000, "$gold" = 500, "$plasma" = 500, "$diamond" = 100)
build_path = "/obj/item/device/posibrain"
///////////////////////////////////
//////////Mecha Module Disks///////
///////////////////////////////////
+18 -1
View File
@@ -58,7 +58,24 @@ Stuff which is in development and not yet visible to players or just code relate
should be listed in the changelog upon commit though. Thanks. -->
<!-- To take advantage of the pretty new format (well it was new when I wrote this anyway), open the "add-to-changelog.html" file in any browser and add the stuff and then generate the html code and paste it here -->
<div class="commit sansserif">
<h2 class="date">7/01/2013</h2>
<h3 class="author">Chinsky updated:</h3>
<ul class="changes bgimages16">
<li class="rscadd">Implants: Explosvie implant, exploding when victim hears the codephrase you set.</li>
<li class="rscadd">Implants: Compressed Matter implat, scan item (making it disappear), inject yourself and recall that item on will!</li>
<li class="rscadd">Implant removal surgery, with !!FUN!! results if you mess up it.</li>
<li class="rscadd">Coats now have pockets again.</li>
<li class="rscadd">Bash people on tabetops. an windows, or with stools. Grab people to bash them on tables or windows (better grab for better hit on windows). Drag stool sprite on you to pick it up, click on it in hand to make it usual stool again.</li>
<li class="rscadd">Surgical caps, and new sprites for bloodbags and fixovein.</li>
<li class="rscadd">Now some surgery steps will bloody your hands, Full-body blood coat in case youy mess up spectacualry.</li>
<li class="rscadd">Ported some crates (Art, Surgery, Sterile equiplemnt).</li>
<li class="tweak">Changed contraband crates. Posters moved to Art Crate, cigs and lipstick ot party crate. Now contraband crate has illegal booze and illicit drugs.</li>
<li class="bugfix">Finally got evac party lights</li>
<li class="bugfix">Now disfigurment,now it WILL happen when damage is bad enough.</li>
<li class="experiment">Now if you speak in depressurized area (less than 10 kPa) only people next to you can hear you. Radios still work though.</li>
</ul>
</div>
<div class="commit sansserif">
<h2 class="date">December 28nd</h2>
<h3 class="author">Cael_Aislinn updated:</h3>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

+6 -6
View File
@@ -133,7 +133,7 @@
"cC" = (/obj/effect/decal/remains/human,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"cD" = (/obj/structure/table,/obj/item/weapon/paper_bin,/obj/item/weapon/pen,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"cE" = (/obj/structure/shuttle/engine/heater{tag = "icon-heater (WEST)"; icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/turf/simulated/floor{icon_state = "dark"},/area/awaymission/research)
"cF" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/clothing/suit/labcoat,/obj/item/weapon/clipboard{pixel_x = -7; pixel_y = -4},/turf/simulated/floor{icon_state = "dark"},/area/awaymission/research)
"cF" = (/obj/effect/decal/remains/human{desc = "This guy seemed to have died in terrible way! Half his remains are dust."; icon_state = "remains"; name = "Syndicate agent remains"},/obj/item/clothing/suit/storage/labcoat,/obj/item/weapon/clipboard{pixel_x = -7; pixel_y = -4},/turf/simulated/floor{icon_state = "dark"},/area/awaymission/research)
"cG" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/awaymission/research)
"cH" = (/obj/effect/rune,/turf/simulated/floor{icon_state = "dark"},/area/awaymission/research)
"cI" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor{icon_state = "dark"},/area/awaymission/research)
@@ -168,7 +168,7 @@
"dl" = (/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "delivery"},/area/awaymission/research)
"dm" = (/obj/machinery/door/window/westright{name = "Windoor"},/obj/machinery/door/window/eastright{name = "Windoor"},/obj/structure/cable{d1 = 4; d2 = 8; icon_state = "4-8"; pixel_x = 0; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"dn" = (/obj/structure/cable{d1 = 2; d2 = 8; icon_state = "2-8"; tag = ""},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"do" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/labcoat,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"do" = (/obj/effect/decal/remains/human,/obj/item/clothing/suit/storage/labcoat,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"dp" = (/obj/machinery/door/airlock/hatch{name = "High-Security Airlock"},/turf/simulated/floor{icon_state = "dark"},/area/awaymission/research)
"dq" = (/obj/machinery/singularity/narsie/sc_Narsie{pixel_x = -48; pixel_y = -51},/turf/space,/area/awaymission/research)
"dr" = (/turf/simulated/floor{dir = 0; icon_state = "blue"},/area/awaymission/northblock)
@@ -179,10 +179,10 @@
"dw" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; pixel_y = -10; tag = "icon-shower (EAST)"},/obj/structure/window/reinforced/tinted{dir = 1},/turf/simulated/floor,/area/awaymission/research)
"dx" = (/turf/simulated/floor{icon_state = "delivery"},/area/awaymission/research)
"dy" = (/obj/structure/window/reinforced,/obj/structure/cable,/obj/machinery/power/apc{cell_type = 7500; dir = 8; name = "Research APC"; pixel_x = -28},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"dz" = (/obj/machinery/door/window/southright{name = "Windoor"},/obj/effect/decal/remains/human,/obj/item/clothing/suit/labcoat,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"dz" = (/obj/machinery/door/window/southright{name = "Windoor"},/obj/effect/decal/remains/human,/obj/item/clothing/suit/storage/labcoat,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"dA" = (/obj/structure/window/reinforced,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"dB" = (/obj/machinery/door/window/southright{name = "Windoor"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"dC" = (/obj/structure/window/reinforced,/obj/effect/decal/remains/human,/obj/item/clothing/suit/labcoat,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"dC" = (/obj/structure/window/reinforced,/obj/effect/decal/remains/human,/obj/item/clothing/suit/storage/labcoat,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"dD" = (/obj/machinery/light{dir = 4},/obj/structure/window/reinforced,/obj/effect/sign/securearea{pixel_x = 32},/obj/item/clothing/under/rank/security,/obj/item/clothing/suit/armor/riot,/obj/item/clothing/head/helmet/swat,/obj/effect/decal/remains/human,/obj/item/weapon/gun/energy/laser/practice/sc_laser,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"dE" = (/obj/machinery/light/small,/turf/simulated/floor{icon_state = "dark"},/area/awaymission/research)
"dF" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 4},/turf/simulated/floor{icon_state = "dark"},/area/awaymission/research)
@@ -246,7 +246,7 @@
"eL" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"eM" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/computerframe{anchored = 1},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"eN" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/table,/obj/item/weapon/book/manual/research_and_development,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"eO" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/decal/remains/human,/obj/item/clothing/suit/labcoat,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"eO" = (/obj/structure/window/reinforced{dir = 8},/obj/effect/decal/remains/human,/obj/item/clothing/suit/storage/labcoat,/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"eP" = (/obj/machinery/door/window/eastleft{name = "Windoor"},/obj/machinery/door/window/westleft{name = "Windoor"},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"eQ" = (/obj/machinery/atmospherics/unary/vent_pump{dir = 1; external_pressure_bound = 120; icon_state = "in"; initialize_directions = 1; internal_pressure_bound = 4000; on = 1; pressure_checks = 2; pump_direction = 0},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
"eR" = (/obj/machinery/r_n_d/server{stat = 1},/turf/simulated/floor{icon_state = "showroomfloor"},/area/awaymission/research)
@@ -613,7 +613,7 @@
"lO" = (/obj/structure/closet/secure_closet/hydroponics,/turf/simulated/floor,/area/awaymission/arrivalblock)
"lP" = (/obj/structure/table,/obj/item/weapon/shovel/spade,/obj/item/weapon/reagent_containers/spray/plantbgone,/turf/simulated/floor,/area/awaymission/arrivalblock)
"lQ" = (/obj/machinery/light,/turf/simulated/floor,/area/awaymission/arrivalblock)
"lR" = (/obj/effect/decal/remains/human,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/labcoat,/obj/item/clothing/gloves/latex,/turf/simulated/floor{icon_state = "white"},/area/awaymission/southblock)
"lR" = (/obj/effect/decal/remains/human,/obj/item/clothing/mask/surgical,/obj/item/clothing/suit/storage/labcoat,/obj/item/clothing/gloves/latex,/turf/simulated/floor{icon_state = "white"},/area/awaymission/southblock)
"lS" = (/obj/machinery/door/window/westright{name = "Windoor"},/turf/simulated/floor,/area/awaymission/southblock)
"lT" = (/obj/machinery/vending/wallmed1{pixel_x = 31},/turf/simulated/floor{icon_state = "whitehall"; dir = 4},/area/awaymission/southblock)
"lU" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/simulated/floor,/area/awaymission/southblock)
+1 -1
View File
@@ -907,7 +907,7 @@
"rw" = (/obj/machinery/washing_machine,/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/awaymission/labs/civilian)
"rx" = (/obj/effect/decal/cleanable/blood,/obj/machinery/light{dir = 1},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/awaymission/labs/civilian)
"ry" = (/obj/structure/table,/obj/structure/bedsheetbin{pixel_x = -2; pixel_y = 1},/obj/structure/cable{d1 = 1; d2 = 2; icon_state = "1-2"; tag = ""},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/awaymission/labs/civilian)
"rz" = (/obj/structure/table,/obj/item/clothing/suit/labcoat{pixel_y = 3},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/awaymission/labs/civilian)
"rz" = (/obj/structure/table,/obj/item/clothing/suit/storage/labcoat{pixel_y = 3},/turf/simulated/floor{dir = 8; icon_state = "barber"},/area/awaymission/labs/civilian)
"rA" = (/obj/structure/window/reinforced{dir = 8},/turf/simulated/floor,/area/awaymission/labs/civilian)
"rB" = (/obj/structure/reagent_dispensers/watertank,/turf/simulated/floor,/area/awaymission/labs/civilian)
"rC" = (/obj/structure/reagent_dispensers/fueltank,/turf/simulated/floor,/area/awaymission/labs/civilian)