mirror of
https://github.com/vgstation-coders/vgstation13.git
synced 2025-12-10 02:16:05 +00:00
FUCKING REVERSIONS
This commit is contained in:
@@ -26,6 +26,8 @@
|
||||
var/id_tag = null
|
||||
var/datum/radio_frequency/radio_connection
|
||||
|
||||
machine_flags = MULTITOOL_MENU
|
||||
|
||||
/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume
|
||||
name = "Large Dual Port Air Vent"
|
||||
|
||||
@@ -218,9 +220,6 @@
|
||||
update_icon()
|
||||
|
||||
/obj/machinery/atmospherics/binary/dp_vent_pump/attackby(var/obj/item/W as obj, var/mob/user as mob)
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
interact(user)
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
/obj/machinery/atmospherics/binary/dp_vent_pump/interact(var/mob/user)
|
||||
|
||||
@@ -117,6 +117,8 @@
|
||||
var/id_tag = null
|
||||
var/datum/radio_frequency/radio_connection
|
||||
|
||||
machine_flags = MULTITOOL_MENU
|
||||
|
||||
/obj/machinery/atmospherics/binary/valve/digital/attack_ai(mob/user as mob)
|
||||
src.add_hiddenprint(user)
|
||||
return src.attack_hand(user)
|
||||
@@ -214,9 +216,6 @@
|
||||
|
||||
// Just for digital valves.
|
||||
/obj/machinery/atmospherics/binary/valve/digital/attackby(var/obj/item/W as obj, var/mob/user as mob)
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
if(src.frequency && istype(W, /obj/item/weapon/wrench))
|
||||
user << "<span class='warning'>You cannot unwrench this [src], it's digitally connected to another device.</span>"
|
||||
return 1
|
||||
|
||||
@@ -18,6 +18,8 @@
|
||||
|
||||
level = 1
|
||||
|
||||
machine_flags = MULTITOOL_MENU
|
||||
|
||||
/obj/machinery/atmospherics/unary/outlet_injector/update_icon()
|
||||
if(node)
|
||||
if(on && !(stat & NOPOWER))
|
||||
@@ -158,9 +160,6 @@
|
||||
"}
|
||||
|
||||
/obj/machinery/atmospherics/unary/outlet_injector/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
interact(user)
|
||||
return 1
|
||||
if (!istype(W, /obj/item/weapon/wrench))
|
||||
return ..()
|
||||
if (!(stat & NOPOWER) && on)
|
||||
|
||||
@@ -30,15 +30,17 @@
|
||||
var/radio_filter_out
|
||||
var/radio_filter_in
|
||||
|
||||
on
|
||||
machine_flags = MULTITOOL_MENU
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_pump/on
|
||||
on = 1
|
||||
icon_state = "out"
|
||||
|
||||
siphon
|
||||
/obj/machinery/atmospherics/unary/vent_pump/siphon
|
||||
pump_direction = 0
|
||||
icon_state = "off"
|
||||
|
||||
on
|
||||
/obj/machinery/atmospherics/unary/vent_pump/siphon/on
|
||||
on = 1
|
||||
icon_state = "in"
|
||||
|
||||
@@ -337,9 +339,6 @@
|
||||
else
|
||||
user << "<span class='notice'>You need more welding fuel to complete this task.</span>"
|
||||
return 1
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
if (!istype(W, /obj/item/weapon/wrench))
|
||||
return ..()
|
||||
if (!(stat & NOPOWER) && on)
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
var/radio_filter_out
|
||||
var/radio_filter_in
|
||||
|
||||
machine_flags = MULTITOOL_MENU
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/New()
|
||||
..()
|
||||
area_uid = areaMaster.uid
|
||||
@@ -289,9 +291,6 @@
|
||||
return !welded
|
||||
|
||||
/obj/machinery/atmospherics/unary/vent_scrubber/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if (WT.remove_fuel(0,user))
|
||||
|
||||
@@ -9,7 +9,9 @@
|
||||
usr << "<span class='warning'>Missing equipment or weapons.</span>"
|
||||
my_atom.verbs -= /obj/item/device/spacepod_equipment/weaponry/proc/fire_weapon_system
|
||||
return
|
||||
my_atom.battery.use(shot_cost)
|
||||
if(!my_atom.battery.use(shot_cost))
|
||||
usr << "<span class='warning'>\The [my_atom]'s cell is too low on charge!</span>"
|
||||
return
|
||||
var/olddir
|
||||
dir = my_atom.dir
|
||||
for(var/i = 0; i < shots_per; i++)
|
||||
@@ -90,8 +92,9 @@
|
||||
name = "\improper burst taser system"
|
||||
desc = "A weak taser system for space pods, this one fires 3 at a time."
|
||||
icon_state = "pod_b_taser"
|
||||
shot_cost = 20
|
||||
shot_cost = 35
|
||||
shots_per = 3
|
||||
fire_delay = 20
|
||||
verb_name = "Fire Burst Taser System"
|
||||
verb_desc = "Fire ze tasers!"
|
||||
|
||||
@@ -100,9 +103,9 @@
|
||||
desc = "A weak laser system for space pods, fires concentrated bursts of energy"
|
||||
icon_state = "pod_w_laser"
|
||||
projectile_type = /obj/item/projectile/beam
|
||||
shot_cost = 15
|
||||
shot_cost = 150
|
||||
fire_sound = 'sound/weapons/Laser.ogg'
|
||||
fire_delay = 25
|
||||
fire_delay = 15
|
||||
verb_name = "Fire Laser System"
|
||||
verb_desc = "Fire ze lasers!"
|
||||
|
||||
|
||||
@@ -56,7 +56,7 @@
|
||||
M << "<span class='warning'>[deactivation_message]</span>"
|
||||
else
|
||||
testing("[name] has no deactivation message.")
|
||||
..()
|
||||
return ..()
|
||||
|
||||
/datum/dna/gene/disability/hallucinate
|
||||
name="Hallucinate"
|
||||
|
||||
@@ -164,7 +164,7 @@
|
||||
var/icon/flat = getFlatIcon(Mind.current, SOUTH, 1, 1)
|
||||
end_icons += flat
|
||||
tempstate = end_icons.len
|
||||
text += {"<br><img src="logo_[tempstate].png"> [Mind.key] was [Mind.name] ("}
|
||||
text += {"<br><img src="logo_[tempstate].png"> <b>[Mind.key]</b> was <b>[Mind.name]</b> ("}
|
||||
if(Mind.current.stat == DEAD)
|
||||
text += "died"
|
||||
flat.Turn(90)
|
||||
@@ -177,7 +177,7 @@
|
||||
var/icon/sprotch = icon('icons/effects/blood.dmi', "floor1-old")
|
||||
end_icons += sprotch
|
||||
tempstate = end_icons.len
|
||||
text += {"<br><img src="logo_[tempstate].png"> [Mind.key] was [Mind.name] ("}
|
||||
text += {"<br><img src="logo_[tempstate].png"> <b>[Mind.key]</b> was <b>[Mind.name]</b> ("}
|
||||
text += "body destroyed"
|
||||
text += ")"
|
||||
|
||||
|
||||
@@ -139,6 +139,8 @@ obj/machinery/airlock_sensor
|
||||
ghost_read = 0 // Deactivate ghost touching.
|
||||
ghost_write = 0
|
||||
|
||||
machine_flags = MULTITOOL_MENU
|
||||
|
||||
|
||||
obj/machinery/airlock_sensor/update_icon()
|
||||
if(on)
|
||||
@@ -248,8 +250,9 @@ obj/machinery/airlock_sensor/Topic(href,href_list)
|
||||
|
||||
|
||||
obj/machinery/airlock_sensor/attackby(var/obj/item/W, var/mob/user)
|
||||
if(istype(W,/obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
if(istype(W,/obj/item/weapon/screwdriver))
|
||||
user << "You begin to pry \the [src] off the wall..."
|
||||
if(do_after(user, 50))
|
||||
@@ -275,6 +278,7 @@ obj/machinery/access_button
|
||||
|
||||
ghost_read = 0 // Deactivate ghost touching.
|
||||
ghost_write = 0
|
||||
machine_flags = MULTITOOL_MENU
|
||||
|
||||
/obj/machinery/access_button/New(turf/loc, var/ndir, var/building=0)
|
||||
..()
|
||||
@@ -318,8 +322,9 @@ obj/machinery/access_button/attack_hand(mob/user)
|
||||
|
||||
|
||||
obj/machinery/access_button/attackby(var/obj/item/W, var/mob/user)
|
||||
if (istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu()
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
if(istype(W,/obj/item/weapon/screwdriver))
|
||||
user << "You begin to pry \the [src] off the wall..."
|
||||
if(do_after(user, 50))
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
// 16 for nitrogen concentration
|
||||
// 32 for carbon dioxide concentration
|
||||
|
||||
machine_flags = WRENCHMOVE
|
||||
machine_flags = WRENCHMOVE | MULTITOOL_MENU
|
||||
|
||||
var/datum/radio_frequency/radio_connection
|
||||
|
||||
@@ -56,11 +56,7 @@
|
||||
return MT_UPDATE
|
||||
|
||||
/obj/machinery/air_sensor/attackby(var/obj/item/W as obj, var/mob/user as mob)
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
if(..())
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
/obj/machinery/air_sensor/process()
|
||||
if(on)
|
||||
@@ -127,7 +123,7 @@
|
||||
|
||||
l_color = "#7BF9FF"
|
||||
|
||||
attack_hand(mob/user)
|
||||
/obj/machinery/computer/general_air_control/attack_hand(mob/user)
|
||||
if(..(user))
|
||||
return
|
||||
var/html=return_text()+"</body></html>"
|
||||
@@ -135,21 +131,14 @@
|
||||
user.set_machine(src)
|
||||
onclose(user, "gac")
|
||||
|
||||
process()
|
||||
/obj/machinery/computer/general_air_control/process()
|
||||
..()
|
||||
if(!sensors)
|
||||
warning("[src.type] at [x],[y],[z] has null sensors. Please fix.")
|
||||
sensors = list()
|
||||
src.updateUsrDialog()
|
||||
|
||||
|
||||
attackby(I as obj, user as mob)
|
||||
if(istype(I, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
..() // Call /machinery/computer's attackby()
|
||||
return
|
||||
|
||||
receive_signal(datum/signal/signal)
|
||||
/obj/machinery/computer/general_air_control/receive_signal(datum/signal/signal)
|
||||
if(!signal || signal.encryption) return
|
||||
|
||||
var/id_tag = signal.data["tag"]
|
||||
@@ -158,7 +147,7 @@
|
||||
sensor_information[id_tag] = signal.data
|
||||
|
||||
|
||||
proc/return_text()
|
||||
/obj/machinery/computer/general_air_control/proc/return_text()
|
||||
var/sensor_data
|
||||
if(sensors.len)
|
||||
for(var/id_tag in sensors)
|
||||
@@ -172,16 +161,16 @@
|
||||
sensor_part += "<tr><th>Pressure:</th><td>[data["pressure"]] kPa</td></tr>"
|
||||
if(data["temperature"])
|
||||
sensor_part += "<tr><th>Temperature:</th><td>[data["temperature"]] K</td></tr>"
|
||||
if(data["oxygen"]||data["toxins"]||data["nitrogen"]||data["carbon_dioxide"])
|
||||
if(data[OXYGEN]||data[PLASMA]||data[NITROGEN]||data[CARBON_DIOXIDE])
|
||||
sensor_part += "<tr><th>Gas Composition :</th><td><ul>"
|
||||
if(data["oxygen"])
|
||||
sensor_part += "<li>[data["oxygen"]]% O<sub>2</sub></li>"
|
||||
if(data["nitrogen"])
|
||||
sensor_part += "<li>[data["nitrogen"]]% N</li>"
|
||||
if(data["carbon_dioxide"])
|
||||
sensor_part += "<li>[data["carbon_dioxide"]]% CO<sub>2</sub></li>"
|
||||
if(data["toxins"])
|
||||
sensor_part += "<li>[data["toxins"]]% Plasma</li>"
|
||||
if(data[OXYGEN])
|
||||
sensor_part += "<li>[data[OXYGEN]]% O<sub>2</sub></li>"
|
||||
if(data[NITROGEN])
|
||||
sensor_part += "<li>[data[NITROGEN]]% N</li>"
|
||||
if(data[CARBON_DIOXIDE])
|
||||
sensor_part += "<li>[data[CARBON_DIOXIDE]]% CO<sub>2</sub></li>"
|
||||
if(data[PLASMA])
|
||||
sensor_part += "<li>[data[PLASMA]]% Plasma</li>"
|
||||
sensor_part += "</ul></td></tr>"
|
||||
sensor_part += "</table>"
|
||||
|
||||
@@ -196,42 +185,42 @@
|
||||
var/output = {"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
|
||||
<head>
|
||||
<head>
|
||||
<title>[name]</title>
|
||||
<style type="text/css">
|
||||
html,body {
|
||||
font-family:sans-serif,verdana;
|
||||
font-size:smaller;
|
||||
color:#666;
|
||||
font-family:sans-serif,verdana;
|
||||
font-size:smaller;
|
||||
color:#666;
|
||||
}
|
||||
h1 {
|
||||
border-bottom:1px solid maroon;
|
||||
border-bottom:1px solid maroon;
|
||||
}
|
||||
table {
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
td, th {
|
||||
margin: 0;
|
||||
font-size: small;
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding: 3px;
|
||||
margin: 0;
|
||||
font-size: small;
|
||||
border-bottom: 1px solid #ccc;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
th {
|
||||
text-align:right;
|
||||
text-align:right;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
border:1px solid #ccc;
|
||||
background: #efefef;
|
||||
border:1px solid #ccc;
|
||||
background: #efefef;
|
||||
}
|
||||
legend {
|
||||
font-weight:bold;
|
||||
font-weight:bold;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
</head>
|
||||
<body>
|
||||
<h1>[name]</h1>"}
|
||||
if(show_sensors)
|
||||
output += {"
|
||||
@@ -240,16 +229,15 @@ legend {
|
||||
|
||||
return output
|
||||
|
||||
proc
|
||||
set_frequency(new_frequency)
|
||||
/obj/machinery/computer/general_air_control/proc/set_frequency(new_frequency)
|
||||
radio_controller.remove_object(src, frequency)
|
||||
frequency = new_frequency
|
||||
radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
|
||||
|
||||
initialize()
|
||||
/obj/machinery/computer/general_air_control/initialize()
|
||||
set_frequency(frequency)
|
||||
|
||||
multitool_menu(var/mob/user, var/obj/item/device/multitool/P)
|
||||
/obj/machinery/computer/general_air_control/multitool_menu(var/mob/user, var/obj/item/device/multitool/P)
|
||||
var/dat= {"
|
||||
<b>Main</b>
|
||||
<ul>
|
||||
@@ -262,7 +250,7 @@ legend {
|
||||
dat += {"<li><a href="?src=\ref[src];add_sensor=1">\[+\]</a></li></ul>"}
|
||||
return dat
|
||||
|
||||
multitool_topic(var/mob/user,var/list/href_list,var/obj/O)
|
||||
/obj/machinery/computer/general_air_control/multitool_topic(var/mob/user,var/list/href_list,var/obj/O)
|
||||
. = ..()
|
||||
if(.) return .
|
||||
if("add_sensor" in href_list)
|
||||
@@ -310,32 +298,32 @@ legend {
|
||||
sensors[sensor] = label
|
||||
return MT_UPDATE
|
||||
|
||||
unlinkFrom(var/mob/user, var/obj/O)
|
||||
/obj/machinery/computer/general_air_control/unlinkFrom(var/mob/user, var/obj/O)
|
||||
..()
|
||||
if("id_tag" in O.vars && (istype(O,/obj/machinery/air_sensor) || istype(O, /obj/machinery/meter)))
|
||||
sensors.Remove(O:id_tag)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
linkMenu(var/obj/O)
|
||||
/obj/machinery/computer/general_air_control/linkMenu(var/obj/O)
|
||||
var/dat=""
|
||||
if((istype(O,/obj/machinery/air_sensor) || istype(O, /obj/machinery/meter)) && !isLinkedWith(O))
|
||||
dat += " <a href='?src=\ref[src];link=1'>\[New Sensor\]</a> "
|
||||
return dat
|
||||
|
||||
canLink(var/obj/O, var/list/context)
|
||||
/obj/machinery/computer/general_air_control/canLink(var/obj/O, var/list/context)
|
||||
if(istype(O,/obj/machinery/air_sensor) || istype(O, /obj/machinery/meter))
|
||||
return O:id_tag
|
||||
|
||||
isLinkedWith(var/obj/O)
|
||||
/obj/machinery/computer/general_air_control/isLinkedWith(var/obj/O)
|
||||
if(istype(O,/obj/machinery/air_sensor) || istype(O, /obj/machinery/meter))
|
||||
return O:id_tag in sensors
|
||||
|
||||
linkWith(var/mob/user, var/obj/O, var/link/context)
|
||||
/obj/machinery/computer/general_air_control/linkWith(var/mob/user, var/obj/O, var/link/context)
|
||||
sensors[O:id_tag] = reject_bad_name(input(user, "Choose a sensor label:", "Sensor Label") as text|null, allow_numbers=1)
|
||||
return 1
|
||||
|
||||
large_tank_control
|
||||
/obj/machinery/computer/general_air_control/large_tank_control
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "tank"
|
||||
circuit = "/obj/item/weapon/circuitboard/large_tank_control"
|
||||
@@ -358,7 +346,7 @@ legend {
|
||||
var/pressure_setting = ONE_ATMOSPHERE * 45
|
||||
|
||||
|
||||
multitool_menu(var/mob/user, var/obj/item/device/multitool/P)
|
||||
/obj/machinery/computer/general_air_control/large_tank_control/multitool_menu(var/mob/user, var/obj/item/device/multitool/P)
|
||||
var/dat= {"
|
||||
<ul>
|
||||
<li><b>Frequency:</b> <a href="?src=\ref[src];set_freq=-1">[format_frequency(frequency)] GHz</a> (<a href="?src=\ref[src];set_freq=[initial(frequency)]">Reset</a>)</li>
|
||||
@@ -373,7 +361,7 @@ legend {
|
||||
return dat
|
||||
|
||||
|
||||
linkWith(var/mob/user, var/obj/O, var/list/context)
|
||||
/obj/machinery/computer/general_air_control/large_tank_control/linkWith(var/mob/user, var/obj/O, var/list/context)
|
||||
if(context["slot"]=="input" && is_type_in_list(O,input_linkable))
|
||||
input_tag = O:id_tag
|
||||
input_info = null
|
||||
@@ -393,7 +381,7 @@ legend {
|
||||
))
|
||||
return 1
|
||||
|
||||
unlinkFrom(var/mob/user, var/obj/O)
|
||||
/obj/machinery/computer/general_air_control/large_tank_control/unlinkFrom(var/mob/user, var/obj/O)
|
||||
if("id_tag" in O.vars)
|
||||
if(O:id_tag == input_tag)
|
||||
input_tag=null
|
||||
@@ -405,7 +393,7 @@ legend {
|
||||
return 1
|
||||
return 0
|
||||
|
||||
linkMenu(var/obj/O)
|
||||
/obj/machinery/computer/general_air_control/large_tank_control/linkMenu(var/obj/O)
|
||||
var/dat=""
|
||||
if(canLink(O,list("slot"="input")))
|
||||
dat += " <a href='?src=\ref[src];link=1;slot=input'>\[Link @ Input\]</a> "
|
||||
@@ -413,24 +401,24 @@ legend {
|
||||
dat += " <a href='?src=\ref[src];link=1;slot=output'>\[Link @ Output\]</a> "
|
||||
return dat
|
||||
|
||||
canLink(var/obj/O, var/list/context)
|
||||
/obj/machinery/computer/general_air_control/large_tank_control/canLink(var/obj/O, var/list/context)
|
||||
return (context["slot"]=="input" && is_type_in_list(O,input_linkable)) || (context["slot"]=="output" && is_type_in_list(O,output_linkable))
|
||||
|
||||
isLinkedWith(var/obj/O)
|
||||
/obj/machinery/computer/general_air_control/large_tank_control/isLinkedWith(var/obj/O)
|
||||
if(O:id_tag == input_tag)
|
||||
return 1
|
||||
if(O:id_tag == output_tag)
|
||||
return 1
|
||||
return 0
|
||||
|
||||
process()
|
||||
/obj/machinery/computer/general_air_control/large_tank_control/process()
|
||||
..()
|
||||
if(!input_info && input_tag)
|
||||
request_device_refresh(input_tag)
|
||||
if(!output_info && output_tag)
|
||||
request_device_refresh(output_tag)
|
||||
|
||||
return_text()
|
||||
/obj/machinery/computer/general_air_control/large_tank_control/return_text()
|
||||
var/output = ..()
|
||||
//if(signal.data)
|
||||
// input_info = signal.data // Attempting to fix intake control -- TLE
|
||||
@@ -442,17 +430,17 @@ legend {
|
||||
var/volume_rate = input_info["volume_rate"]
|
||||
output += {"
|
||||
<fieldset>
|
||||
<legend>Input (<A href='?src=\ref[src];in_refresh_status=1'>Refresh</A>)</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<legend>Input (<A href='?src=\ref[src];in_refresh_status=1'>Refresh</A>)</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<th>State:</th>
|
||||
<td><A href='?src=\ref[src];in_toggle_injector=1'>[power?("Injecting"):("On Hold")]</A></td>
|
||||
</tr>
|
||||
<tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Rate:</th>
|
||||
<td><a href="?src=\ref[src];in_set_rate=1">[volume_rate]</a> L/sec</td>
|
||||
</tr>
|
||||
</table>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
"}
|
||||
|
||||
@@ -464,17 +452,17 @@ legend {
|
||||
var/output_pressure = output_info["internal"]
|
||||
output += {"
|
||||
<fieldset>
|
||||
<legend>Output (<A href='?src=\ref[src];out_refresh_status=1'>Refresh</A>)</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<legend>Output (<A href='?src=\ref[src];out_refresh_status=1'>Refresh</A>)</legend>
|
||||
<table>
|
||||
<tr>
|
||||
<th>State:</th>
|
||||
<td><A href='?src=\ref[src];out_toggle_power=1'>[power?("Open"):("On Hold")]</A></td>
|
||||
</tr>
|
||||
<tr>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Max Output Pressure:</th>
|
||||
<td><A href='?src=\ref[src];out_set_pressure=1'>[output_pressure]</A> kPa</td>
|
||||
</tr>
|
||||
</table>
|
||||
</tr>
|
||||
</table>
|
||||
</fieldset>
|
||||
"}
|
||||
else
|
||||
@@ -483,7 +471,7 @@ legend {
|
||||
return output
|
||||
|
||||
|
||||
receive_signal(datum/signal/signal)
|
||||
/obj/machinery/computer/general_air_control/large_tank_control/receive_signal(datum/signal/signal)
|
||||
if(!signal || signal.encryption) return
|
||||
|
||||
var/id_tag = signal.data["tag"]
|
||||
@@ -497,10 +485,10 @@ legend {
|
||||
else
|
||||
..(signal)
|
||||
|
||||
proc/request_device_refresh(var/device)
|
||||
/obj/machinery/computer/general_air_control/large_tank_control/proc/request_device_refresh(var/device)
|
||||
send_signal(list("tag"=device, "status"))
|
||||
|
||||
proc/send_signal(var/list/data)
|
||||
/obj/machinery/computer/general_air_control/large_tank_control/proc/send_signal(var/list/data)
|
||||
var/datum/signal/signal = new
|
||||
signal.transmission_method = 1 //radio signal
|
||||
signal.source = src
|
||||
@@ -508,7 +496,7 @@ legend {
|
||||
signal.data["sigtype"]="command"
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
|
||||
Topic(href, href_list)
|
||||
/obj/machinery/computer/general_air_control/large_tank_control/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
@@ -559,7 +547,7 @@ legend {
|
||||
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
|
||||
src.updateUsrDialog()
|
||||
|
||||
fuel_injection
|
||||
/obj/machinery/computer/general_air_control/fuel_injection
|
||||
icon = 'icons/obj/computer.dmi'
|
||||
icon_state = "atmos"
|
||||
circuit = "/obj/item/weapon/circuitboard/injector_control"
|
||||
@@ -572,7 +560,7 @@ legend {
|
||||
var/cutoff_temperature = 2000
|
||||
var/on_temperature = 1200
|
||||
|
||||
process()
|
||||
/obj/machinery/computer/general_air_control/fuel_injection/process()
|
||||
if(automation)
|
||||
if(!radio_connection)
|
||||
return 0
|
||||
@@ -601,7 +589,7 @@ legend {
|
||||
|
||||
..()
|
||||
|
||||
return_text()
|
||||
/obj/machinery/computer/general_air_control/fuel_injection/return_text()
|
||||
var/output = ..()
|
||||
output += "<fieldset><legend>Fuel Injection System (<A href='?src=\ref[src];refresh_status=1'>Refresh</A>)</legend>"
|
||||
if(device_info)
|
||||
@@ -647,7 +635,7 @@ legend {
|
||||
|
||||
return output
|
||||
|
||||
receive_signal(datum/signal/signal)
|
||||
/obj/machinery/computer/general_air_control/fuel_injection/receive_signal(datum/signal/signal)
|
||||
if(!signal || signal.encryption) return
|
||||
|
||||
var/id_tag = signal.data["tag"]
|
||||
@@ -657,7 +645,7 @@ legend {
|
||||
else
|
||||
..(signal)
|
||||
|
||||
Topic(href, href_list)
|
||||
/obj/machinery/computer/general_air_control/fuel_injection/Topic(href, href_list)
|
||||
if(..())
|
||||
return
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
use_power = 1
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 4
|
||||
machine_flags = MULTITOOL_MENU
|
||||
|
||||
/obj/machinery/meter/New()
|
||||
..()
|
||||
@@ -134,10 +135,6 @@
|
||||
</ul>"}
|
||||
|
||||
/obj/machinery/meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob)
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
|
||||
if (!istype(W, /obj/item/weapon/wrench))
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
active_power_usage = 300
|
||||
var/obj/item/weapon/circuitboard/circuit = null //if circuit==null, computer can't disassembly
|
||||
var/processing = 0
|
||||
machine_flags = EMAGGABLE | SCREWTOGGLE | WRENCHMOVE | FIXED2WORK
|
||||
machine_flags = EMAGGABLE | SCREWTOGGLE | WRENCHMOVE | FIXED2WORK | MULTITOOL_MENU
|
||||
|
||||
/obj/machinery/computer/cultify()
|
||||
new /obj/structure/cult/tome(loc)
|
||||
|
||||
@@ -91,6 +91,7 @@
|
||||
visible_message("Cannot locate any mass driver of that ID. Cancelling firing sequence!")
|
||||
return
|
||||
|
||||
if(icon_state != "old")
|
||||
flick("mass_drivers_timing", src)
|
||||
|
||||
for(var/obj/machinery/door/poddoor/M in poddoors)
|
||||
@@ -191,6 +192,8 @@
|
||||
else
|
||||
times[ident_tag] = maxtimes[ident_tag]
|
||||
updateDialog()
|
||||
|
||||
if(icon_state != "old")
|
||||
if(timing)
|
||||
icon_state = "mass_drivers_timing"
|
||||
else
|
||||
@@ -314,6 +317,7 @@
|
||||
visible_message("Cannot locate any mass driver of that ID. Cancelling firing sequence!")
|
||||
return
|
||||
|
||||
if(icon_state != "old")
|
||||
flick("mass_drivers_timing", src)
|
||||
|
||||
if(teleporter_dest)
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
ghost_read=0
|
||||
ghost_write=0
|
||||
|
||||
machine_flags = EMAGGABLE
|
||||
machine_flags = EMAGGABLE | MULTITOOL_MENU
|
||||
|
||||
/obj/machinery/door_control/attack_ai(mob/user as mob)
|
||||
src.add_hiddenprint(user)
|
||||
@@ -134,14 +134,13 @@
|
||||
return src.attack_hand(user)
|
||||
|
||||
/obj/machinery/driver_button/attackby(obj/item/weapon/W, mob/user as mob)
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
|
||||
if(istype(W, /obj/item/device/detective_scanner))
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1)
|
||||
if(do_after(user, 30))
|
||||
|
||||
@@ -115,9 +115,9 @@
|
||||
icon = 'icons/obj/doors/vault.dmi'
|
||||
opacity = 1
|
||||
emag_cost = 2 // in MJ
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_highsecurity //Until somebody makes better sprites.
|
||||
assembly_type = /obj/structure/door_assembly/door_assembly_vault
|
||||
|
||||
explosion_block = 2
|
||||
explosion_block = 3//that's some high quality plasteel door
|
||||
|
||||
/obj/machinery/door/airlock/freezer
|
||||
name = "Freezer Airlock"
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
var/build=2 // Build state
|
||||
var/boardtype=null // /obj/item/weapon/circuitboard/ecb
|
||||
var/obj/item/weapon/circuitboard/_circuitboard
|
||||
machine_flags = MULTITOOL_MENU
|
||||
/obj/machinery/embedded_controller/New(turf/loc, var/ndir, var/building=0)
|
||||
..()
|
||||
|
||||
@@ -30,6 +31,9 @@
|
||||
src.update_icon()
|
||||
|
||||
/obj/machinery/embedded_controller/attackby(var/obj/item/W as obj, var/mob/user as mob)
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
if(type==/obj/machinery/embedded_controller)
|
||||
switch(build)
|
||||
if(0) // Empty hull
|
||||
@@ -113,11 +117,6 @@
|
||||
if(build<2)
|
||||
return ..()
|
||||
|
||||
if(istype(W,/obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/machinery/embedded_controller/proc/post_signal(datum/signal/signal, comm_line)
|
||||
return 0
|
||||
|
||||
|
||||
@@ -580,6 +580,10 @@ Class Procs:
|
||||
else
|
||||
return -1
|
||||
|
||||
if(ismultitool(O) && machine_flags & MULTITOOL_MENU)
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
|
||||
if(!anchored && machine_flags & FIXED2WORK)
|
||||
return user << "<span class='warning'>\The [src] must be anchored first!</span>"
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ var/list/mass_drivers = list()
|
||||
use_power = 1
|
||||
idle_power_usage = 2
|
||||
active_power_usage = 50
|
||||
machine_flags = EMAGGABLE
|
||||
machine_flags = EMAGGABLE | MULTITOOL_MENU
|
||||
|
||||
var/power = 1.0
|
||||
var/code = 1.0
|
||||
@@ -25,9 +25,9 @@ var/list/mass_drivers = list()
|
||||
|
||||
/obj/machinery/mass_driver/attackby(obj/item/weapon/W, mob/user as mob)
|
||||
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
|
||||
if(istype(W, /obj/item/weapon/screwdriver))
|
||||
user << "You begin to unscrew the bolts off the [src]..."
|
||||
|
||||
@@ -10,13 +10,15 @@
|
||||
/obj/machinery/telecomms
|
||||
var/temp = "" // output message
|
||||
var/construct_op = 0
|
||||
machine_flags = MULTITOOL_MENU
|
||||
|
||||
|
||||
/obj/machinery/telecomms/attackby(obj/item/P as obj, mob/user as mob)
|
||||
|
||||
// Using a multitool lets you access the receiver's interface
|
||||
if(istype(P, /obj/item/device/multitool))
|
||||
attack_hand(user)
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
|
||||
switch(construct_op)
|
||||
if(0)
|
||||
|
||||
@@ -157,6 +157,8 @@ var/global/list/datum/stack_recipe/plasteel_recipes = list ( \
|
||||
new/datum/stack_recipe("Mass Driver frame", /obj/machinery/mass_driver_frame, 3, time = 50, one_per_turf = 1), \
|
||||
new/datum/stack_recipe("Tank dispenser", /obj/structure/dispenser/empty, 2, time = 10, one_per_turf = 1), \
|
||||
new/datum/stack_recipe("Fireaxe cabinet", /obj/structure/closet/fireaxecabinet/, 2, time = 50, one_per_turf = 1), \
|
||||
null, \
|
||||
new/datum/stack_recipe("Vault Door assembly", /obj/structure/door_assembly/door_assembly_vault, 8, time = 50, one_per_turf = 1, on_floor = 1), \
|
||||
)
|
||||
|
||||
/obj/item/stack/sheet/plasteel
|
||||
|
||||
@@ -138,7 +138,7 @@
|
||||
M.requests += O
|
||||
if (buf.types & DNA2_BUF_SE)
|
||||
if(block)// Isolated injector
|
||||
testing("Isolated block [block] injector with contents: [GetValue()]")
|
||||
//testing("Isolated block [block] injector with contents: [GetValue()]")
|
||||
if (GetState() && block == MONKEYBLOCK && istype(M, /mob/living/carbon/human) )
|
||||
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] <span class='warning'>(MONKEY)</span>")
|
||||
log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name] (MONKEY)")
|
||||
@@ -146,7 +146,7 @@
|
||||
else
|
||||
log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name]")
|
||||
else
|
||||
testing("DNA injector with contents: [english_list(buf.dna.SE)]")
|
||||
//testing("DNA injector with contents: [english_list(buf.dna.SE)]")
|
||||
if (GetState(MONKEYBLOCK) && istype(M, /mob/living/carbon/human) )
|
||||
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] <span class='warning'>(MONKEY)</span>")
|
||||
log_attack("[key_name(user)] injected [key_name(M)] with the [name] (MONKEY)")
|
||||
@@ -173,7 +173,7 @@
|
||||
|
||||
if (buf.types & DNA2_BUF_SE)
|
||||
if(block)// Isolated injector
|
||||
testing("Isolated block [block] injector with contents: [GetValue()]")
|
||||
//testing("Isolated block [block] injector with contents: [GetValue()]")
|
||||
if (GetState() && block == MONKEYBLOCK && istype(M, /mob/living/carbon/human) )
|
||||
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the Isolated [name] <span class='warning'>(MONKEY)</span>")
|
||||
log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name] (MONKEY)")
|
||||
@@ -181,7 +181,7 @@
|
||||
else
|
||||
log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name]")
|
||||
else
|
||||
testing("DNA injector with contents: [english_list(buf.dna.SE)]")
|
||||
//testing("DNA injector with contents: [english_list(buf.dna.SE)]")
|
||||
if (GetState(MONKEYBLOCK) && istype(M, /mob/living/carbon/human))
|
||||
message_admins("[key_name_admin(user)] injected [key_name_admin(M)] with the [name] <span class='warning'>(MONKEY)</span>")
|
||||
log_game("[key_name(user)] injected [key_name(M)] with the [name] (MONKEY)")
|
||||
|
||||
@@ -103,6 +103,12 @@
|
||||
airlock_type = "/highsecurity"
|
||||
glass = -1
|
||||
|
||||
/obj/structure/door_assembly/door_assembly_vault
|
||||
base_icon_state = "vault"
|
||||
base_name = "Vault"
|
||||
airlock_type = "/vault"
|
||||
glass = -1
|
||||
|
||||
/obj/structure/door_assembly/multi_tile/
|
||||
icon = 'icons/obj/doors/door_assembly2x1.dmi'
|
||||
dir = EAST
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
icon = 'icons/obj/bus.dmi'
|
||||
icon_state = "adminbus"
|
||||
can_spacemove=1
|
||||
layer = FLY_LAYER
|
||||
layer = FLY_LAYER+1
|
||||
pixel_x = -32
|
||||
pixel_y = -32
|
||||
var/can_move=1
|
||||
@@ -43,6 +43,7 @@
|
||||
update_lightsource()
|
||||
warp = new/obj/structure/teleportwarp(src.loc)
|
||||
busjuke = new/obj/machinery/media/jukebox/superjuke/adminbus(src.loc)
|
||||
busjuke.dir = EAST
|
||||
|
||||
/obj/structure/stool/bed/chair/vehicle/adminbus/update_mob()
|
||||
if(buckled_mob)
|
||||
|
||||
@@ -423,6 +423,9 @@
|
||||
|
||||
if (istype(O, /obj/item/weapon/reagent_containers))
|
||||
var/obj/item/weapon/reagent_containers/RG = O
|
||||
if(RG.reagents.total_volume >= RG.reagents.maximum_volume)
|
||||
user << "<span class='warning'>[RG] is full.</span>"
|
||||
return
|
||||
RG.reagents.add_reagent("water", min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
|
||||
user.visible_message("<span class='notice'>[user] fills the [RG] using \the [src].</span>","<span class='notice'>You fill the [RG] using \the [src].</span>")
|
||||
return
|
||||
@@ -440,8 +443,8 @@
|
||||
else
|
||||
B.deductcharge(1)
|
||||
user.visible_message( \
|
||||
"[user] was stunned by his wet [O].", \
|
||||
"<span class='warning'>You have wet \the [O], it shocks you!</span>")
|
||||
"<span class='warning'>[user] was stunned by \his wet [O.name]!</span>", \
|
||||
"<span class='warning'>You have wet \the [O.name], it shocks you!</span>")
|
||||
return
|
||||
|
||||
if (!isturf(user.loc))
|
||||
|
||||
@@ -108,3 +108,17 @@
|
||||
// DE-HACK
|
||||
/turf/simulated/wall/vault/relativewall()
|
||||
return
|
||||
|
||||
var/list/smoothable_unsims = list(
|
||||
"riveted",
|
||||
)
|
||||
|
||||
/turf/unsimulated/wall/New()
|
||||
..()
|
||||
if(icon_state in smoothable_unsims)
|
||||
relativewall()
|
||||
relativewall_neighbours()
|
||||
|
||||
/turf/unsimulated/wall/relativewall()
|
||||
var/junction=findSmoothingNeighbors()
|
||||
icon_state = "[walltype][junction]"
|
||||
|
||||
@@ -1,21 +1,26 @@
|
||||
/turf/unsimulated/wall
|
||||
name = "wall"
|
||||
name = "riveted wall"
|
||||
icon = 'icons/turf/walls.dmi'
|
||||
icon_state = "riveted"
|
||||
opacity = 1
|
||||
density = 1
|
||||
explosion_block = 2
|
||||
canSmoothWith = "/turf/unsimulated/wall=0"
|
||||
|
||||
var/walltype = "riveted"
|
||||
|
||||
/turf/unsimulated/wall/fakeglass
|
||||
name = "window"
|
||||
icon_state = "fakewindows"
|
||||
opacity = 0
|
||||
canSmoothWith = null
|
||||
|
||||
turf/unsimulated/wall/splashscreen
|
||||
name = "Space Station 13"
|
||||
icon = null
|
||||
icon_state = null
|
||||
layer = FLY_LAYER
|
||||
canSmoothWith = null
|
||||
|
||||
New()
|
||||
var/path = "icons/splashworks/"
|
||||
@@ -27,6 +32,7 @@ turf/unsimulated/wall/splashscreen
|
||||
|
||||
/turf/unsimulated/wall/other
|
||||
icon_state = "r_wall"
|
||||
canSmoothWith = null
|
||||
|
||||
/turf/unsimulated/wall/cult
|
||||
name = "wall"
|
||||
@@ -34,6 +40,7 @@ turf/unsimulated/wall/splashscreen
|
||||
icon_state = "cult0"
|
||||
opacity = 1
|
||||
density = 1
|
||||
canSmoothWith = null
|
||||
|
||||
/turf/unsimulated/wall/cultify()
|
||||
ChangeTurf(/turf/unsimulated/wall/cult)
|
||||
|
||||
@@ -845,6 +845,11 @@ var/global/list/arenas = list()
|
||||
sleep(2) //giving the game some time to process to avoid unbearable lag spikes when we create a large arena, plus it looks cool.
|
||||
pencil.y++
|
||||
|
||||
pencil.x = x
|
||||
pencil.y = y+h
|
||||
T = pencil.loc
|
||||
T.maptext = name
|
||||
|
||||
qdel(pencil) //RIP sweet prince
|
||||
|
||||
for (var/datum/bomberman_spawn/S in spawns) //removing the soft walls near the spawns
|
||||
@@ -878,6 +883,10 @@ var/global/list/arenas = list()
|
||||
|
||||
message_admins("[key_name_admin(user.client)] created a \"[size]\" Bomberman arena at [center.loc.name] ([center.x],[center.y],[center.z]) (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[center.x];Y=[center.y];Z=[center.z]'>JMP</A>)")
|
||||
log_game("[key_name_admin(user.client)] created a \"[size]\" Bomberman arena at [center.loc.name] ([center.x],[center.y],[center.z]) ")
|
||||
|
||||
for(var/mob/dead/observer/O in observers)
|
||||
O << "<spawn class='notice'><b>[user.client.key] created a \"[size]\" Bomberman arena at [center.loc.name]. <A HREF='?src=\ref[O];jumptoarenacood=1;X=[center.x];Y=[center.y];Z=[center.z]'>Click here to JUMP to it.</A></b></span>"
|
||||
|
||||
else
|
||||
qdel(src)
|
||||
|
||||
@@ -957,6 +966,9 @@ var/global/list/arenas = list()
|
||||
E.visible_message("\icon[E] \The [E] brightens as it appears that a round is starting in [name].")
|
||||
flick("entertainment_arena",E)
|
||||
|
||||
for(var/mob/dead/observer/O in observers)
|
||||
O << "<b>A round has began in <A HREF='?src=\ref[O];jumptoarenacood=1;X=[center.x];Y=[center.y];Z=[center.z]'>[name]</A>!</b>"
|
||||
|
||||
sleep(40)
|
||||
for(var/datum/bomberman_spawn/S in spawns)
|
||||
if(S.player)
|
||||
@@ -1113,6 +1125,7 @@ var/global/list/arenas = list()
|
||||
T.ChangeTurf(/turf/space)
|
||||
else
|
||||
T.ChangeTurf(/turf/simulated/floor/plating)
|
||||
T.maptext = null
|
||||
turfs = list()
|
||||
arenas -= src
|
||||
return
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
var/const/RADS_PER_TICK=150
|
||||
var/const/MAX_TEMP=70 // Celsius
|
||||
machine_flags = MULTITOOL_MENU
|
||||
|
||||
/obj/machinery/media/transmitter/broadcast/initialize()
|
||||
testing("[type]/initialize() called!")
|
||||
@@ -49,16 +50,18 @@
|
||||
broadcast() // Bzzt
|
||||
|
||||
/obj/machinery/media/transmitter/broadcast/attackby(var/obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
|
||||
/obj/machinery/media/transmitter/broadcast/attack_ai(var/mob/user as mob)
|
||||
src.add_hiddenprint(user)
|
||||
attack_hand(user)
|
||||
|
||||
/obj/machinery/media/transmitter/broadcast/attack_hand(var/mob/user as mob)
|
||||
update_multitool_menu(user)
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
|
||||
/obj/machinery/media/transmitter/broadcast/multitool_menu(var/mob/user,var/obj/item/device/multitool/P)
|
||||
// You need a multitool to use this, or be silicon
|
||||
|
||||
@@ -184,7 +184,7 @@ var/global/loopModeNames=list(
|
||||
|
||||
var/state_base = "jukebox2"
|
||||
|
||||
machine_flags = WRENCHMOVE | FIXED2WORK | EMAGGABLE
|
||||
machine_flags = WRENCHMOVE | FIXED2WORK | EMAGGABLE | MULTITOOL_MENU
|
||||
mech_flags = MECH_SCAN_FAIL
|
||||
emag_cost = 0 // because fun/unlimited uses.
|
||||
|
||||
@@ -353,10 +353,9 @@ var/global/loopModeNames=list(
|
||||
|
||||
|
||||
/obj/machinery/media/jukebox/attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
..()
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
if(istype(W,/obj/item/weapon/card/id))
|
||||
if(!selected_song || screen!=JUKEBOX_SCREEN_PAYMENT)
|
||||
visible_message("<span class='notice'>The machine buzzes.</span>","<span class='warning'>You hear a buzz.</span>")
|
||||
|
||||
@@ -45,6 +45,7 @@
|
||||
var/last_ad_cyc = 0 // Last world.time of an ad cycle
|
||||
var/list/ad_queue = 0 // Ads queued to play
|
||||
|
||||
machine_flags = MULTITOOL_MENU
|
||||
var/state_base = "tapedeck"
|
||||
|
||||
/obj/machinery/media/tapedeck/attack_ai(var/mob/user)
|
||||
@@ -188,9 +189,9 @@
|
||||
|
||||
|
||||
/obj/machinery/media/jukebox/attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
if(istype(W, /obj/item/weapon/card/emag))
|
||||
current_song = 0
|
||||
if(!emagged)
|
||||
@@ -203,6 +204,7 @@
|
||||
user.visible_message("<span class='warning'>[user.name] slides something into the [src.name]'s card-reader.</span>","<span class='warning'>You short out the [src.name].</span>")
|
||||
update_icon()
|
||||
update_music()
|
||||
return 1
|
||||
else if(istype(W,/obj/item/weapon/wrench))
|
||||
var/un = !anchored ? "" : "un"
|
||||
user.visible_message("<span class='notice'>[user.name] begins [un]locking \the [src.name]'s casters.</span>","<span class='notice'>You begin [un]locking \the [src.name]'s casters.</span>")
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
var/resource_efficiency = 1
|
||||
var/id_tag = "clone_pod"
|
||||
|
||||
machine_flags = EMAGGABLE | SCREWTOGGLE | CROWDESTROY
|
||||
machine_flags = EMAGGABLE | SCREWTOGGLE | CROWDESTROY | MULTITOOL_MENU
|
||||
|
||||
l_color = "#7BF9FF"
|
||||
|
||||
@@ -343,6 +343,9 @@
|
||||
|
||||
//Let's unlock this early I guess. Might be too early, needs tweaking.
|
||||
/obj/machinery/cloning/clonepod/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
|
||||
if (!src.check_access(W))
|
||||
user << "<span class='warning'>Access Denied.</span>"
|
||||
@@ -358,10 +361,6 @@
|
||||
user.drop_item(W)
|
||||
qdel(W)
|
||||
return
|
||||
if(ismultitool(W))
|
||||
update_multitool_menu(user)
|
||||
else
|
||||
..()
|
||||
|
||||
//Put messages in the connected computer's temp var for display.
|
||||
/obj/machinery/cloning/clonepod/proc/connected_message(var/message)
|
||||
|
||||
@@ -82,17 +82,16 @@
|
||||
#undef CLONEPODRANGE
|
||||
|
||||
/obj/machinery/computer/cloning/attackby(obj/item/W as obj, mob/user as mob)
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
if (istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES
|
||||
if (!src.diskette)
|
||||
user.drop_item(W, src)
|
||||
src.diskette = W
|
||||
user << "You insert [W]."
|
||||
src.updateUsrDialog()
|
||||
return
|
||||
if(ismultitool(W))
|
||||
update_multitool_menu(user)
|
||||
else
|
||||
..()
|
||||
return 1
|
||||
return
|
||||
|
||||
/obj/machinery/computer/cloning/attack_paw(mob/user as mob)
|
||||
|
||||
@@ -788,6 +788,20 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
// host.ckey = src.ckey
|
||||
// //host << "<span class='info'>You are now a mouse. Try to avoid interaction with players, and do not give hints away that you are more than a simple rodent.</span>"
|
||||
|
||||
/mob/dead/observer/verb/find_arena()
|
||||
set category = "Ghost"
|
||||
set name = "Search For Arenas"
|
||||
set desc = "Try to find an Arena to polish your robust bomb placement skills.."
|
||||
|
||||
if(!arenas.len)
|
||||
usr << "There are no arenas in the world! Ask the admins to spawn one."
|
||||
return
|
||||
|
||||
var/datum/bomberman_arena/arena_target = input("Which arena do you wish to reach?", "Arena Search Panel") in arenas
|
||||
usr << "Reached [arena_target]"
|
||||
|
||||
usr.loc = arena_target.center
|
||||
|
||||
//BEGIN TELEPORT HREF CODE
|
||||
/mob/dead/observer/Topic(href, href_list)
|
||||
if(usr != src)
|
||||
@@ -836,6 +850,15 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
|
||||
return
|
||||
loc = T
|
||||
following = null
|
||||
|
||||
if(href_list["jumptoarenacood"])
|
||||
var/x = text2num(href_list["X"])
|
||||
var/y = text2num(href_list["Y"])
|
||||
var/z = text2num(href_list["Z"])
|
||||
|
||||
var/client/C = usr.client
|
||||
sleep(2)
|
||||
C.jumptocoord(x,y,z)
|
||||
..()
|
||||
//END TELEPORT HREF CODE
|
||||
|
||||
|
||||
@@ -72,6 +72,7 @@
|
||||
if(!src.species)
|
||||
if(new_species_name) src.set_species(new_species_name)
|
||||
else src.set_species()
|
||||
default_language = get_default_language()
|
||||
|
||||
create_reagents(1000)
|
||||
|
||||
|
||||
@@ -89,7 +89,8 @@
|
||||
update_muts=1
|
||||
|
||||
if(!istype(src, /mob/living/carbon/monkey/diona))
|
||||
add_language("Chimpanzee")
|
||||
add_language(LANGUAGE_MONKEY)
|
||||
default_language = all_languages[LANGUAGE_MONKEY]
|
||||
|
||||
..()
|
||||
update_icons()
|
||||
|
||||
@@ -79,6 +79,7 @@ var/list/ai_list = list()
|
||||
add_language(LANGUAGE_MONKEY, 1)
|
||||
add_language(LANGUAGE_VOX, 1)
|
||||
add_language(LANGUAGE_TRADEBAND, 1)
|
||||
default_language = all_languages[LANGUAGE_SOL_COMMON]
|
||||
real_name = pickedName
|
||||
name = real_name
|
||||
anchored = 1
|
||||
|
||||
@@ -147,6 +147,7 @@
|
||||
cell_component.installed = 1
|
||||
|
||||
playsound(loc, startup_sound, 75, 1)
|
||||
default_language = all_languages[LANGUAGE_SOL_COMMON]
|
||||
|
||||
// setup the PDA and its name
|
||||
/mob/living/silicon/robot/proc/setup_PDA()
|
||||
|
||||
@@ -57,7 +57,8 @@
|
||||
..()
|
||||
name = text("[initial(name)] ([rand(1, 1000)])")
|
||||
real_name = name
|
||||
add_language("Cult")
|
||||
add_language(LANGUAGE_CULT)
|
||||
default_language = all_languages[LANGUAGE_CULT]
|
||||
for(var/spell in construct_spells)
|
||||
src.add_spell(new spell, "const_spell_ready")
|
||||
updateicon()
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
var/shot_number = 0
|
||||
var/locked = 0
|
||||
|
||||
machine_flags = EMAGGABLE | WRENCHMOVE | FIXED2WORK | WELD_FIXED
|
||||
machine_flags = EMAGGABLE | WRENCHMOVE | FIXED2WORK | WELD_FIXED | MULTITOOL_MENU
|
||||
|
||||
var/frequency = 0
|
||||
var/id_tag = null
|
||||
@@ -249,11 +249,9 @@
|
||||
return -1
|
||||
|
||||
/obj/machinery/power/emitter/attackby(obj/item/W, mob/user)
|
||||
if(..())
|
||||
return 1
|
||||
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
|
||||
if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))
|
||||
if(emagged)
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
wabbajack(change)
|
||||
|
||||
|
||||
/obj/item/projectile/change/proc/wabbajack(var/mob/M) //WHY: as mob in living_mob_list
|
||||
/obj/item/projectile/change/proc/wabbajack(var/mob/living/M) //WHY: as mob in living_mob_list
|
||||
if(istype(M, /mob/living) && M.stat != DEAD)
|
||||
if(M.monkeyizing)
|
||||
return
|
||||
@@ -53,7 +53,9 @@
|
||||
switch(randomize)
|
||||
if("monkey")
|
||||
new_mob = new /mob/living/carbon/monkey(M.loc)
|
||||
new_mob.languages |= M.languages
|
||||
var/mob/living/carbon/monkey/Monkey = new_mob
|
||||
Monkey.languages |= M.languages
|
||||
if(M.default_language) Monkey.default_language = M.default_language
|
||||
if("robot")
|
||||
new_mob = new /mob/living/silicon/robot(M.loc)
|
||||
new_mob.setGender(M.gender)
|
||||
@@ -62,7 +64,8 @@
|
||||
var/mob/living/silicon/robot/Robot = new_mob
|
||||
Robot.mmi = new /obj/item/device/mmi(new_mob)
|
||||
Robot.mmi.transfer_identity(M) //Does not transfer key/client.
|
||||
new_mob.languages |= M.languages
|
||||
Robot.languages |= M.languages
|
||||
if(M.default_language) Robot.default_language = M.default_language
|
||||
if("mommi")
|
||||
new_mob = new /mob/living/silicon/robot/mommi(M.loc)
|
||||
new_mob.setGender(M.gender)
|
||||
@@ -71,6 +74,8 @@
|
||||
var/mob/living/silicon/robot/mommi/MoMMI = new_mob
|
||||
MoMMI.mmi = new /obj/item/device/mmi(new_mob)
|
||||
MoMMI.mmi.transfer_identity(M) //Does not transfer key/client.
|
||||
MoMMI.languages |= M.languages
|
||||
if(M.default_language) MoMMI.default_language = M.default_language
|
||||
if("slime")
|
||||
var/slimey = pick("",\
|
||||
"/purple",\
|
||||
@@ -100,7 +105,9 @@
|
||||
|
||||
slimey = text2path("/mob/living/carbon/slime[slimey]")
|
||||
new_mob = new slimey(M.loc)
|
||||
new_mob.languages |= M.languages
|
||||
var/mob/living/carbon/slime/Slime = new_mob
|
||||
Slime.languages |= M.languages
|
||||
if(M.default_language) Slime.default_language = M.default_language
|
||||
if("xeno")
|
||||
var/alien_caste = pick("Hunter","Sentinel","Drone","Larva")
|
||||
switch(alien_caste)
|
||||
@@ -108,7 +115,9 @@
|
||||
if("Sentinel") new_mob = new /mob/living/carbon/alien/humanoid/sentinel(M.loc)
|
||||
if("Drone") new_mob = new /mob/living/carbon/alien/humanoid/drone(M.loc)
|
||||
else new_mob = new /mob/living/carbon/alien/larva(M.loc)
|
||||
new_mob.languages |= M.languages
|
||||
var/mob/living/carbon/alien/Alien = new_mob
|
||||
Alien.languages |= M.languages
|
||||
if(M.default_language) Alien.default_language = M.default_language
|
||||
if("human")
|
||||
new_mob = new /mob/living/carbon/human(M.loc, delay_ready_dna=1)
|
||||
|
||||
@@ -121,6 +130,8 @@
|
||||
var/newspecies = pick(all_species)
|
||||
H.set_species(newspecies)
|
||||
H.generate_name()
|
||||
H.languages |= M.languages
|
||||
if(M.default_language) H.default_language = M.default_language
|
||||
if("furry")
|
||||
new_mob = new /mob/living/carbon/human(M.loc, delay_ready_dna=1)
|
||||
|
||||
@@ -131,6 +142,8 @@
|
||||
|
||||
var/mob/living/carbon/human/H = new_mob
|
||||
H.set_species("Tajaran") // idfk
|
||||
H.languages |= M.languages
|
||||
if(M.default_language) H.default_language = M.default_language
|
||||
H.generate_name()
|
||||
/* RIP
|
||||
if("cluwne")
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
var/frequency = 1367
|
||||
var/datum/radio_frequency/radio_connection
|
||||
|
||||
machine_flags = SCREWTOGGLE | CROWDESTROY
|
||||
machine_flags = SCREWTOGGLE | CROWDESTROY | MULTITOOL_MENU
|
||||
|
||||
/obj/machinery/conveyor/centcom_auto
|
||||
id_tag = "round_end_belt"
|
||||
@@ -188,9 +188,6 @@
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
user.drop_item(W, src.loc)
|
||||
return 0
|
||||
|
||||
@@ -292,6 +289,7 @@
|
||||
|
||||
var/frequency = 1367
|
||||
var/datum/radio_frequency/radio_connection
|
||||
machine_flags = MULTITOOL_MENU
|
||||
|
||||
anchored = 1
|
||||
|
||||
@@ -379,9 +377,9 @@
|
||||
radio_connection.post_signal(src, signal, range = CONVEYOR_CONTROL_RANGE)
|
||||
|
||||
/obj/machinery/conveyor_switch/attackby(var/obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
user << "<span class='notice'>Deconstructing \the [src]...</span>"
|
||||
if(do_after(user,50))
|
||||
@@ -392,7 +390,6 @@
|
||||
new /obj/item/stack/rods(T,1)
|
||||
del(src)
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
/obj/machinery/conveyor_switch/oneway
|
||||
var/convdir = 1 //Set to 1 or -1 depending on which way you want the conveyor to go. (In other words keep at 1 and set the proper dir on the belts.)
|
||||
|
||||
@@ -66,6 +66,7 @@
|
||||
|
||||
//Add types to this list so it doesn't make a message or get desroyed by the Supermatter on touch.
|
||||
var/list/message_exclusions = list(/obj/effect/effect/sparks)
|
||||
machine_flags = MULTITOOL_MENU
|
||||
|
||||
/obj/machinery/power/supermatter/shard //Small subtype, less efficient and more sensitive, but less boom.
|
||||
name = "Supermatter Shard"
|
||||
@@ -339,9 +340,9 @@
|
||||
return
|
||||
|
||||
/obj/machinery/power/supermatter/attackby(obj/item/weapon/W as obj, mob/living/user as mob)
|
||||
if(istype(W, /obj/item/device/multitool))
|
||||
update_multitool_menu(user)
|
||||
return 1
|
||||
. = ..()
|
||||
if(.)
|
||||
return .
|
||||
|
||||
user.visible_message("<span class=\"warning\">\The [user] touches \a [W] to \the [src] as a silence fills the room...</span>",\
|
||||
"<span class=\"danger\">You touch \the [W] to \the [src] when everything suddenly goes silent.\"</span>\n<span class=\"notice\">\The [W] flashes into dust as you flinch away from \the [src].</span>",\
|
||||
|
||||
@@ -962,6 +962,7 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
|
||||
#define FIXED2WORK 16 //does it need to be anchored to work? Try to use this with WRENCHMOVE - hooks into power code
|
||||
#define EJECTNOTDEL 32 //when we destroy the machine, does it remove all its items or destroy them?
|
||||
#define WELD_FIXED 64 //if it is attacked by a welder and is anchored, it'll toggle between welded and unwelded to the floor
|
||||
#define MULTITOOL_MENU 128 //if it has multitool menu functionality inherently
|
||||
|
||||
#define MAX_N_OF_ITEMS 999 // Used for certain storage machinery, BYOND infinite loop detector doesn't look things over 1000.
|
||||
|
||||
@@ -1152,11 +1153,12 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
|
||||
#define LANGUAGE_CLATTER "Clatter"
|
||||
#define LANGUAGE_MONKEY "Monkey"
|
||||
#define LANGUAGE_VOX "Vox-pidgin"
|
||||
#define LANGUAGE_CULT "Cult"
|
||||
|
||||
//#define SAY_DEBUG 0
|
||||
#ifdef SAY_DEBUG
|
||||
#warning SOME ASSHOLE FORGOT TO COMMENT SAY_DEBUG BEFORE COMMITTING
|
||||
#define say_testing(a,x) a << ("([__FILE__]L[__LINE__] SAYDEBUG) [x]")
|
||||
#else
|
||||
#define say_testing(a,x)
|
||||
#define say_testing(a,x) null << "[x][a]"
|
||||
#endif
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 77 KiB After Width: | Height: | Size: 77 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 37 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 164 KiB After Width: | Height: | Size: 168 KiB |
Reference in New Issue
Block a user