Merge branch 'master' into upstream-merge-38116
This commit is contained in:
@@ -101,6 +101,17 @@
|
||||
var/on = TRUE
|
||||
var/alert = FALSE
|
||||
|
||||
/obj/machinery/airlock_sensor/incinerator_toxmix
|
||||
id_tag = INCINERATOR_TOXMIX_AIRLOCK_SENSOR
|
||||
master_tag = INCINERATOR_TOXMIX_AIRLOCK_CONTROLLER
|
||||
|
||||
/obj/machinery/airlock_sensor/incinerator_atmos
|
||||
id_tag = INCINERATOR_ATMOS_AIRLOCK_SENSOR
|
||||
master_tag = INCINERATOR_ATMOS_AIRLOCK_CONTROLLER
|
||||
|
||||
/obj/machinery/airlock_sensor/incinerator_syndicatelava
|
||||
id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_SENSOR
|
||||
master_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_CONTROLLER
|
||||
|
||||
/obj/machinery/airlock_sensor/update_icon()
|
||||
if(on)
|
||||
@@ -150,4 +161,4 @@
|
||||
|
||||
/obj/machinery/airlock_sensor/Destroy()
|
||||
SSradio.remove_object(src,frequency)
|
||||
return ..()
|
||||
return ..()
|
||||
@@ -189,6 +189,31 @@
|
||||
device = new /obj/item/assembly/control(src)
|
||||
..()
|
||||
|
||||
/obj/machinery/button/door/incinerator_vent_toxmix
|
||||
name = "combustion chamber vent control"
|
||||
id = INCINERATOR_TOXMIX_VENT
|
||||
req_access = list(ACCESS_TOX)
|
||||
|
||||
/obj/machinery/button/door/incinerator_vent_atmos_main
|
||||
name = "turbine vent control"
|
||||
id = INCINERATOR_ATMOS_MAINVENT
|
||||
req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS)
|
||||
|
||||
/obj/machinery/button/door/incinerator_vent_atmos_aux
|
||||
name = "combustion chamber vent control"
|
||||
id = INCINERATOR_ATMOS_AUXVENT
|
||||
req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS)
|
||||
|
||||
/obj/machinery/button/door/incinerator_vent_syndicatelava_main
|
||||
name = "turbine vent control"
|
||||
id = INCINERATOR_SYNDICATELAVA_MAINVENT
|
||||
req_access = list(ACCESS_SYNDICATE)
|
||||
|
||||
/obj/machinery/button/door/incinerator_vent_syndicatelava_aux
|
||||
name = "combustion chamber vent control"
|
||||
id = INCINERATOR_SYNDICATELAVA_AUXVENT
|
||||
req_access = list(ACCESS_SYNDICATE)
|
||||
|
||||
/obj/machinery/button/massdriver
|
||||
name = "mass driver button"
|
||||
desc = "A remote control switch for a mass driver."
|
||||
@@ -203,6 +228,19 @@
|
||||
skin = "launcher"
|
||||
device_type = /obj/item/assembly/control/igniter
|
||||
|
||||
/obj/machinery/button/ignition/incinerator
|
||||
name = "combustion chamber ignition switch"
|
||||
desc = "A remote control switch for the combustion chamber's igniter."
|
||||
|
||||
/obj/machinery/button/ignition/incinerator/toxmix
|
||||
id = INCINERATOR_TOXMIX_IGNITER
|
||||
|
||||
/obj/machinery/button/ignition/incinerator/atmos
|
||||
id = INCINERATOR_ATMOS_IGNITER
|
||||
|
||||
/obj/machinery/button/ignition/incinerator/syndicatelava
|
||||
id = INCINERATOR_SYNDICATELAVA_IGNITER
|
||||
|
||||
/obj/machinery/button/flasher
|
||||
name = "flasher button"
|
||||
desc = "A remote control switch for a mounted flasher."
|
||||
|
||||
@@ -19,7 +19,6 @@
|
||||
integrity_failure = 50
|
||||
var/list/network = list("ss13")
|
||||
var/c_tag = null
|
||||
var/c_tag_order = 999
|
||||
var/status = TRUE
|
||||
var/start_active = FALSE //If it ignores the random chance to start broken on round start
|
||||
var/invuln = null
|
||||
@@ -35,6 +34,7 @@
|
||||
var/alarm_on = FALSE
|
||||
var/busy = FALSE
|
||||
var/emped = FALSE //Number of consecutive EMP's on this camera
|
||||
var/in_use_lights = 0
|
||||
|
||||
// Upgrades bitflag
|
||||
var/upgrades = 0
|
||||
@@ -284,7 +284,7 @@
|
||||
else if (stat & EMPED)
|
||||
icon_state = "[initial(icon_state)]emp"
|
||||
else
|
||||
icon_state = "[initial(icon_state)]"
|
||||
icon_state = "[initial(icon_state)][in_use_lights ? "_in_use" : ""]"
|
||||
|
||||
/obj/machinery/camera/proc/toggle_cam(mob/user, displaymessage = 1)
|
||||
status = !status
|
||||
|
||||
@@ -146,10 +146,6 @@
|
||||
for (var/j = 1 to i - 1)
|
||||
a = L[j]
|
||||
b = L[j + 1]
|
||||
if (a.c_tag_order != b.c_tag_order)
|
||||
if (a.c_tag_order > b.c_tag_order)
|
||||
L.Swap(j, j + 1)
|
||||
else
|
||||
if (sorttext(a.c_tag, b.c_tag) < 0)
|
||||
L.Swap(j, j + 1)
|
||||
if (sorttext(a.c_tag, b.c_tag) < 0)
|
||||
L.Swap(j, j + 1)
|
||||
return L
|
||||
|
||||
@@ -203,7 +203,8 @@
|
||||
H.faction |= factions
|
||||
|
||||
for(var/V in quirks)
|
||||
new V(H)
|
||||
var/datum/quirk/Q = new V(H)
|
||||
Q.on_clone(quirks[V])
|
||||
|
||||
H.set_cloned_appearance()
|
||||
|
||||
|
||||
@@ -51,7 +51,9 @@
|
||||
/obj/item/hot_potato/harmless/toy = 1,
|
||||
/obj/item/card/emagfake = 1,
|
||||
/obj/item/clothing/shoes/wheelys = 2,
|
||||
/obj/item/clothing/shoes/kindleKicks = 2)
|
||||
/obj/item/clothing/shoes/kindleKicks = 2,
|
||||
/obj/item/storage/belt/military/snack = 2
|
||||
)
|
||||
|
||||
light_color = LIGHT_COLOR_GREEN
|
||||
|
||||
|
||||
@@ -196,7 +196,7 @@
|
||||
icon_keyboard = "mining_key"
|
||||
network = list("mine")
|
||||
circuit = /obj/item/circuitboard/computer/mining
|
||||
|
||||
|
||||
/obj/machinery/computer/security/research
|
||||
name = "research camera console"
|
||||
desc = "Used to access the various cameras in science."
|
||||
|
||||
@@ -190,7 +190,7 @@
|
||||
else
|
||||
moveToNullspace()
|
||||
if(use_static)
|
||||
GLOB.cameranet.visibility(src)
|
||||
GLOB.cameranet.visibility(src, GetViewerClient())
|
||||
if(visible_icon)
|
||||
if(eye_user.client)
|
||||
eye_user.client.images -= user_image
|
||||
|
||||
@@ -476,7 +476,7 @@
|
||||
R.fields["quirks"] = list()
|
||||
for(var/V in mob_occupant.roundstart_quirks)
|
||||
var/datum/quirk/T = V
|
||||
R.fields["quirks"] += T.type
|
||||
R.fields["quirks"][T.type] = T.clone_data()
|
||||
|
||||
if (!isnull(mob_occupant.mind)) //Save that mind so traitors can continue traitoring after cloning.
|
||||
R.fields["mind"] = "[REF(mob_occupant.mind)]"
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
/obj/machinery/computer/communications/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
if(!is_station_level(z) && !is_centcom_level(z)) //Can only use on centcom and SS13
|
||||
if(!is_station_level(z) && !is_transit_level(z)) //Can only use in transit and on SS13
|
||||
to_chat(usr, "<span class='boldannounce'>Unable to establish a connection</span>: \black You're too far away from the station!")
|
||||
return
|
||||
usr.set_machine(src)
|
||||
|
||||
@@ -79,6 +79,20 @@
|
||||
opacity = 0
|
||||
glass = TRUE
|
||||
|
||||
/obj/machinery/door/airlock/glass/incinerator
|
||||
autoclose = FALSE
|
||||
frequency = FREQ_AIRLOCK_CONTROL
|
||||
heat_proof = TRUE
|
||||
req_access = list(ACCESS_SYNDICATE)
|
||||
|
||||
/obj/machinery/door/airlock/glass/incinerator/syndicatelava_interior
|
||||
name = "Turbine Interior Airlock"
|
||||
id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_INTERIOR
|
||||
|
||||
/obj/machinery/door/airlock/glass/incinerator/syndicatelava_exterior
|
||||
name = "Turbine Exterior Airlock"
|
||||
id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_EXTERIOR
|
||||
|
||||
/obj/machinery/door/airlock/command/glass
|
||||
opacity = 0
|
||||
glass = TRUE
|
||||
@@ -107,6 +121,20 @@
|
||||
opacity = 0
|
||||
glass = TRUE
|
||||
|
||||
/obj/machinery/door/airlock/research/glass/incinerator
|
||||
autoclose = FALSE
|
||||
frequency = FREQ_AIRLOCK_CONTROL
|
||||
heat_proof = TRUE
|
||||
req_access = list(ACCESS_TOX)
|
||||
|
||||
/obj/machinery/door/airlock/research/glass/incinerator/toxmix_interior
|
||||
name = "Mixing Room Interior Airlock"
|
||||
id_tag = INCINERATOR_TOXMIX_AIRLOCK_INTERIOR
|
||||
|
||||
/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior
|
||||
name = "Mixing Room Exterior Airlock"
|
||||
id_tag = INCINERATOR_TOXMIX_AIRLOCK_EXTERIOR
|
||||
|
||||
/obj/machinery/door/airlock/mining/glass
|
||||
opacity = 0
|
||||
glass = TRUE
|
||||
@@ -287,6 +315,20 @@
|
||||
opacity = 0
|
||||
glass = TRUE
|
||||
|
||||
/obj/machinery/door/airlock/public/glass/incinerator
|
||||
autoclose = FALSE
|
||||
frequency = FREQ_AIRLOCK_CONTROL
|
||||
heat_proof = TRUE
|
||||
req_one_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS)
|
||||
|
||||
/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior
|
||||
name = "Turbine Interior Airlock"
|
||||
id_tag = INCINERATOR_ATMOS_AIRLOCK_INTERIOR
|
||||
|
||||
/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior
|
||||
name = "Turbine Exterior Airlock"
|
||||
id_tag = INCINERATOR_ATMOS_AIRLOCK_EXTERIOR
|
||||
|
||||
//////////////////////////////////
|
||||
/*
|
||||
External Airlocks
|
||||
|
||||
@@ -36,6 +36,26 @@
|
||||
else
|
||||
INVOKE_ASYNC(src, .proc/close)
|
||||
|
||||
/obj/machinery/door/poddoor/incinerator_toxmix
|
||||
name = "combustion chamber vent"
|
||||
id = INCINERATOR_TOXMIX_VENT
|
||||
|
||||
/obj/machinery/door/poddoor/incinerator_atmos_main
|
||||
name = "turbine vent"
|
||||
id = INCINERATOR_ATMOS_MAINVENT
|
||||
|
||||
/obj/machinery/door/poddoor/incinerator_atmos_aux
|
||||
name = "combustion chamber vent"
|
||||
id = INCINERATOR_ATMOS_AUXVENT
|
||||
|
||||
/obj/machinery/door/poddoor/incinerator_syndicatelava_main
|
||||
name = "turbine vent"
|
||||
id = INCINERATOR_SYNDICATELAVA_MAINVENT
|
||||
|
||||
/obj/machinery/door/poddoor/incinerator_syndicatelava_aux
|
||||
name = "combustion chamber vent"
|
||||
id = INCINERATOR_SYNDICATELAVA_AUXVENT
|
||||
|
||||
/obj/machinery/door/poddoor/CollidedWith(atom/movable/AM)
|
||||
if(density)
|
||||
return 0
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
|
||||
/datum/computer/file/embedded_program/airlock_controller
|
||||
var/id_tag
|
||||
var/exterior_door_tag
|
||||
var/interior_door_tag
|
||||
var/airpump_tag
|
||||
var/sensor_tag
|
||||
var/sanitize_external
|
||||
var/exterior_door_tag //Burn chamber facing door
|
||||
var/interior_door_tag //Station facing door
|
||||
var/airpump_tag //See: dp_vent_pump.dm
|
||||
var/sensor_tag //See: /obj/machinery/airlock_sensor
|
||||
var/sanitize_external //Before the interior airlock opens, do we first drain all gases inside the chamber and then repressurize?
|
||||
|
||||
state = AIRLOCK_STATE_CLOSED
|
||||
var/target_state = AIRLOCK_STATE_CLOSED
|
||||
@@ -211,6 +211,33 @@
|
||||
var/sensor_tag
|
||||
var/sanitize_external
|
||||
|
||||
/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix
|
||||
name = "Incinerator Access Console"
|
||||
airpump_tag = INCINERATOR_TOXMIX_DP_VENTPUMP
|
||||
exterior_door_tag = INCINERATOR_TOXMIX_AIRLOCK_EXTERIOR
|
||||
id_tag = INCINERATOR_TOXMIX_AIRLOCK_CONTROLLER
|
||||
interior_door_tag = INCINERATOR_TOXMIX_AIRLOCK_INTERIOR
|
||||
sanitize_external = TRUE
|
||||
sensor_tag = INCINERATOR_TOXMIX_AIRLOCK_SENSOR
|
||||
|
||||
/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_atmos
|
||||
name = "Incinerator Access Console"
|
||||
airpump_tag = INCINERATOR_ATMOS_DP_VENTPUMP
|
||||
exterior_door_tag = INCINERATOR_ATMOS_AIRLOCK_EXTERIOR
|
||||
id_tag = INCINERATOR_ATMOS_AIRLOCK_CONTROLLER
|
||||
interior_door_tag = INCINERATOR_ATMOS_AIRLOCK_INTERIOR
|
||||
sanitize_external = TRUE
|
||||
sensor_tag = INCINERATOR_ATMOS_AIRLOCK_SENSOR
|
||||
|
||||
/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_syndicatelava
|
||||
name = "Incinerator Access Console"
|
||||
airpump_tag = INCINERATOR_SYNDICATELAVA_DP_VENTPUMP
|
||||
exterior_door_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_EXTERIOR
|
||||
id_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_CONTROLLER
|
||||
interior_door_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_INTERIOR
|
||||
sanitize_external = TRUE
|
||||
sensor_tag = INCINERATOR_SYNDICATELAVA_AIRLOCK_SENSOR
|
||||
|
||||
/obj/machinery/embedded_controller/radio/airlock_controller/Initialize(mapload)
|
||||
. = ..()
|
||||
if(!mapload)
|
||||
|
||||
@@ -13,6 +13,15 @@
|
||||
var/id = null
|
||||
var/on = FALSE
|
||||
|
||||
/obj/machinery/igniter/incinerator_toxmix
|
||||
id = INCINERATOR_TOXMIX_IGNITER
|
||||
|
||||
/obj/machinery/igniter/incinerator_atmos
|
||||
id = INCINERATOR_ATMOS_IGNITER
|
||||
|
||||
/obj/machinery/igniter/incinerator_syndicatelava
|
||||
id = INCINERATOR_SYNDICATELAVA_IGNITER
|
||||
|
||||
/obj/machinery/igniter/on
|
||||
on = TRUE
|
||||
icon_state = "igniter1"
|
||||
@@ -58,6 +67,9 @@
|
||||
var/base_state = "migniter"
|
||||
var/datum/effect_system/spark_spread/spark_system
|
||||
|
||||
/obj/machinery/sparker/toxmix
|
||||
id = INCINERATOR_TOXMIX_IGNITER
|
||||
|
||||
/obj/machinery/sparker/Initialize()
|
||||
. = ..()
|
||||
spark_system = new /datum/effect_system/spark_spread
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
|
||||
// Remove and recycle the equipped items
|
||||
if(eat_victim_items)
|
||||
for(var/obj/item/I in L.get_equipped_items())
|
||||
for(var/obj/item/I in L.get_equipped_items(TRUE))
|
||||
if(L.dropItemToGround(I))
|
||||
eat(I, sound=FALSE)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user