FUCKING REVERSIONS

This commit is contained in:
D3athrow
2015-05-11 20:02:13 -05:00
parent 7730d2f1d2
commit 5796813948
48 changed files with 722 additions and 639 deletions

View File

@@ -26,6 +26,8 @@
var/id_tag = null var/id_tag = null
var/datum/radio_frequency/radio_connection var/datum/radio_frequency/radio_connection
machine_flags = MULTITOOL_MENU
/obj/machinery/atmospherics/binary/dp_vent_pump/high_volume /obj/machinery/atmospherics/binary/dp_vent_pump/high_volume
name = "Large Dual Port Air Vent" name = "Large Dual Port Air Vent"
@@ -218,9 +220,6 @@
update_icon() update_icon()
/obj/machinery/atmospherics/binary/dp_vent_pump/attackby(var/obj/item/W as obj, var/mob/user as mob) /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 ..() return ..()
/obj/machinery/atmospherics/binary/dp_vent_pump/interact(var/mob/user) /obj/machinery/atmospherics/binary/dp_vent_pump/interact(var/mob/user)

View File

@@ -117,6 +117,8 @@
var/id_tag = null var/id_tag = null
var/datum/radio_frequency/radio_connection var/datum/radio_frequency/radio_connection
machine_flags = MULTITOOL_MENU
/obj/machinery/atmospherics/binary/valve/digital/attack_ai(mob/user as mob) /obj/machinery/atmospherics/binary/valve/digital/attack_ai(mob/user as mob)
src.add_hiddenprint(user) src.add_hiddenprint(user)
return src.attack_hand(user) return src.attack_hand(user)
@@ -214,9 +216,6 @@
// Just for digital valves. // Just for digital valves.
/obj/machinery/atmospherics/binary/valve/digital/attackby(var/obj/item/W as obj, var/mob/user as mob) /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)) 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>" user << "<span class='warning'>You cannot unwrench this [src], it's digitally connected to another device.</span>"
return 1 return 1

View File

@@ -18,6 +18,8 @@
level = 1 level = 1
machine_flags = MULTITOOL_MENU
/obj/machinery/atmospherics/unary/outlet_injector/update_icon() /obj/machinery/atmospherics/unary/outlet_injector/update_icon()
if(node) if(node)
if(on && !(stat & NOPOWER)) 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) /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)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (!(stat & NOPOWER) && on) if (!(stat & NOPOWER) && on)

View File

@@ -30,15 +30,17 @@
var/radio_filter_out var/radio_filter_out
var/radio_filter_in var/radio_filter_in
on machine_flags = MULTITOOL_MENU
/obj/machinery/atmospherics/unary/vent_pump/on
on = 1 on = 1
icon_state = "out" icon_state = "out"
siphon /obj/machinery/atmospherics/unary/vent_pump/siphon
pump_direction = 0 pump_direction = 0
icon_state = "off" icon_state = "off"
on /obj/machinery/atmospherics/unary/vent_pump/siphon/on
on = 1 on = 1
icon_state = "in" icon_state = "in"
@@ -337,9 +339,6 @@
else else
user << "<span class='notice'>You need more welding fuel to complete this task.</span>" user << "<span class='notice'>You need more welding fuel to complete this task.</span>"
return 1 return 1
if(istype(W, /obj/item/device/multitool))
update_multitool_menu(user)
return 1
if (!istype(W, /obj/item/weapon/wrench)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()
if (!(stat & NOPOWER) && on) if (!(stat & NOPOWER) && on)

View File

@@ -28,6 +28,8 @@
var/radio_filter_out var/radio_filter_out
var/radio_filter_in var/radio_filter_in
machine_flags = MULTITOOL_MENU
/obj/machinery/atmospherics/unary/vent_scrubber/New() /obj/machinery/atmospherics/unary/vent_scrubber/New()
..() ..()
area_uid = areaMaster.uid area_uid = areaMaster.uid
@@ -289,9 +291,6 @@
return !welded return !welded
/obj/machinery/atmospherics/unary/vent_scrubber/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) /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)) if(istype(W, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = W var/obj/item/weapon/weldingtool/WT = W
if (WT.remove_fuel(0,user)) if (WT.remove_fuel(0,user))

View File

@@ -9,7 +9,9 @@
usr << "<span class='warning'>Missing equipment or weapons.</span>" usr << "<span class='warning'>Missing equipment or weapons.</span>"
my_atom.verbs -= /obj/item/device/spacepod_equipment/weaponry/proc/fire_weapon_system my_atom.verbs -= /obj/item/device/spacepod_equipment/weaponry/proc/fire_weapon_system
return 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 var/olddir
dir = my_atom.dir dir = my_atom.dir
for(var/i = 0; i < shots_per; i++) for(var/i = 0; i < shots_per; i++)
@@ -90,8 +92,9 @@
name = "\improper burst taser system" name = "\improper burst taser system"
desc = "A weak taser system for space pods, this one fires 3 at a time." desc = "A weak taser system for space pods, this one fires 3 at a time."
icon_state = "pod_b_taser" icon_state = "pod_b_taser"
shot_cost = 20 shot_cost = 35
shots_per = 3 shots_per = 3
fire_delay = 20
verb_name = "Fire Burst Taser System" verb_name = "Fire Burst Taser System"
verb_desc = "Fire ze tasers!" verb_desc = "Fire ze tasers!"
@@ -100,9 +103,9 @@
desc = "A weak laser system for space pods, fires concentrated bursts of energy" desc = "A weak laser system for space pods, fires concentrated bursts of energy"
icon_state = "pod_w_laser" icon_state = "pod_w_laser"
projectile_type = /obj/item/projectile/beam projectile_type = /obj/item/projectile/beam
shot_cost = 15 shot_cost = 150
fire_sound = 'sound/weapons/Laser.ogg' fire_sound = 'sound/weapons/Laser.ogg'
fire_delay = 25 fire_delay = 15
verb_name = "Fire Laser System" verb_name = "Fire Laser System"
verb_desc = "Fire ze lasers!" verb_desc = "Fire ze lasers!"

View File

@@ -56,7 +56,7 @@
M << "<span class='warning'>[deactivation_message]</span>" M << "<span class='warning'>[deactivation_message]</span>"
else else
testing("[name] has no deactivation message.") testing("[name] has no deactivation message.")
..() return ..()
/datum/dna/gene/disability/hallucinate /datum/dna/gene/disability/hallucinate
name="Hallucinate" name="Hallucinate"

View File

@@ -164,7 +164,7 @@
var/icon/flat = getFlatIcon(Mind.current, SOUTH, 1, 1) var/icon/flat = getFlatIcon(Mind.current, SOUTH, 1, 1)
end_icons += flat end_icons += flat
tempstate = end_icons.len 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) if(Mind.current.stat == DEAD)
text += "died" text += "died"
flat.Turn(90) flat.Turn(90)
@@ -177,7 +177,7 @@
var/icon/sprotch = icon('icons/effects/blood.dmi', "floor1-old") var/icon/sprotch = icon('icons/effects/blood.dmi', "floor1-old")
end_icons += sprotch end_icons += sprotch
tempstate = end_icons.len 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 += "body destroyed"
text += ")" text += ")"

View File

@@ -139,6 +139,8 @@ obj/machinery/airlock_sensor
ghost_read = 0 // Deactivate ghost touching. ghost_read = 0 // Deactivate ghost touching.
ghost_write = 0 ghost_write = 0
machine_flags = MULTITOOL_MENU
obj/machinery/airlock_sensor/update_icon() obj/machinery/airlock_sensor/update_icon()
if(on) 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) 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)) if(istype(W,/obj/item/weapon/screwdriver))
user << "You begin to pry \the [src] off the wall..." user << "You begin to pry \the [src] off the wall..."
if(do_after(user, 50)) if(do_after(user, 50))
@@ -275,6 +278,7 @@ obj/machinery/access_button
ghost_read = 0 // Deactivate ghost touching. ghost_read = 0 // Deactivate ghost touching.
ghost_write = 0 ghost_write = 0
machine_flags = MULTITOOL_MENU
/obj/machinery/access_button/New(turf/loc, var/ndir, var/building=0) /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) 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)) if(istype(W,/obj/item/weapon/screwdriver))
user << "You begin to pry \the [src] off the wall..." user << "You begin to pry \the [src] off the wall..."
if(do_after(user, 50)) if(do_after(user, 50))

View File

@@ -19,7 +19,7 @@
// 16 for nitrogen concentration // 16 for nitrogen concentration
// 32 for carbon dioxide concentration // 32 for carbon dioxide concentration
machine_flags = WRENCHMOVE machine_flags = WRENCHMOVE | MULTITOOL_MENU
var/datum/radio_frequency/radio_connection var/datum/radio_frequency/radio_connection
@@ -56,11 +56,7 @@
return MT_UPDATE return MT_UPDATE
/obj/machinery/air_sensor/attackby(var/obj/item/W as obj, var/mob/user as mob) /obj/machinery/air_sensor/attackby(var/obj/item/W as obj, var/mob/user as mob)
if(istype(W, /obj/item/device/multitool)) return ..()
update_multitool_menu(user)
return 1
if(..())
return 1
/obj/machinery/air_sensor/process() /obj/machinery/air_sensor/process()
if(on) if(on)
@@ -127,7 +123,7 @@
l_color = "#7BF9FF" l_color = "#7BF9FF"
attack_hand(mob/user) /obj/machinery/computer/general_air_control/attack_hand(mob/user)
if(..(user)) if(..(user))
return return
var/html=return_text()+"</body></html>" var/html=return_text()+"</body></html>"
@@ -135,21 +131,14 @@
user.set_machine(src) user.set_machine(src)
onclose(user, "gac") onclose(user, "gac")
process() /obj/machinery/computer/general_air_control/process()
..() ..()
if(!sensors) if(!sensors)
warning("[src.type] at [x],[y],[z] has null sensors. Please fix.") warning("[src.type] at [x],[y],[z] has null sensors. Please fix.")
sensors = list() sensors = list()
src.updateUsrDialog() src.updateUsrDialog()
/obj/machinery/computer/general_air_control/receive_signal(datum/signal/signal)
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)
if(!signal || signal.encryption) return if(!signal || signal.encryption) return
var/id_tag = signal.data["tag"] var/id_tag = signal.data["tag"]
@@ -158,7 +147,7 @@
sensor_information[id_tag] = signal.data sensor_information[id_tag] = signal.data
proc/return_text() /obj/machinery/computer/general_air_control/proc/return_text()
var/sensor_data var/sensor_data
if(sensors.len) if(sensors.len)
for(var/id_tag in sensors) for(var/id_tag in sensors)
@@ -172,16 +161,16 @@
sensor_part += "<tr><th>Pressure:</th><td>[data["pressure"]] kPa</td></tr>" sensor_part += "<tr><th>Pressure:</th><td>[data["pressure"]] kPa</td></tr>"
if(data["temperature"]) if(data["temperature"])
sensor_part += "<tr><th>Temperature:</th><td>[data["temperature"]] K</td></tr>" 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>" sensor_part += "<tr><th>Gas Composition :</th><td><ul>"
if(data["oxygen"]) if(data[OXYGEN])
sensor_part += "<li>[data["oxygen"]]% O<sub>2</sub></li>" sensor_part += "<li>[data[OXYGEN]]% O<sub>2</sub></li>"
if(data["nitrogen"]) if(data[NITROGEN])
sensor_part += "<li>[data["nitrogen"]]% N</li>" sensor_part += "<li>[data[NITROGEN]]% N</li>"
if(data["carbon_dioxide"]) if(data[CARBON_DIOXIDE])
sensor_part += "<li>[data["carbon_dioxide"]]% CO<sub>2</sub></li>" sensor_part += "<li>[data[CARBON_DIOXIDE]]% CO<sub>2</sub></li>"
if(data["toxins"]) if(data[PLASMA])
sensor_part += "<li>[data["toxins"]]% Plasma</li>" sensor_part += "<li>[data[PLASMA]]% Plasma</li>"
sensor_part += "</ul></td></tr>" sensor_part += "</ul></td></tr>"
sensor_part += "</table>" sensor_part += "</table>"
@@ -196,42 +185,42 @@
var/output = {"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" var/output = {"<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<title>[name]</title> <title>[name]</title>
<style type="text/css"> <style type="text/css">
html,body { html,body {
font-family:sans-serif,verdana; font-family:sans-serif,verdana;
font-size:smaller; font-size:smaller;
color:#666; color:#666;
} }
h1 { h1 {
border-bottom:1px solid maroon; border-bottom:1px solid maroon;
} }
table { table {
border-spacing: 0; border-spacing: 0;
border-collapse: collapse; border-collapse: collapse;
} }
td, th { td, th {
margin: 0; margin: 0;
font-size: small; font-size: small;
border-bottom: 1px solid #ccc; border-bottom: 1px solid #ccc;
padding: 3px; padding: 3px;
} }
th { th {
text-align:right; text-align:right;
} }
fieldset { fieldset {
border:1px solid #ccc; border:1px solid #ccc;
background: #efefef; background: #efefef;
} }
legend { legend {
font-weight:bold; font-weight:bold;
} }
</style> </style>
</head> </head>
<body> <body>
<h1>[name]</h1>"} <h1>[name]</h1>"}
if(show_sensors) if(show_sensors)
output += {" output += {"
@@ -240,16 +229,15 @@ legend {
return output return output
proc /obj/machinery/computer/general_air_control/proc/set_frequency(new_frequency)
set_frequency(new_frequency)
radio_controller.remove_object(src, frequency) radio_controller.remove_object(src, frequency)
frequency = new_frequency frequency = new_frequency
radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA) radio_connection = radio_controller.add_object(src, frequency, RADIO_ATMOSIA)
initialize() /obj/machinery/computer/general_air_control/initialize()
set_frequency(frequency) 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= {" var/dat= {"
<b>Main</b> <b>Main</b>
<ul> <ul>
@@ -262,7 +250,7 @@ legend {
dat += {"<li><a href="?src=\ref[src];add_sensor=1">\[+\]</a></li></ul>"} dat += {"<li><a href="?src=\ref[src];add_sensor=1">\[+\]</a></li></ul>"}
return dat 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(.) return .
if("add_sensor" in href_list) if("add_sensor" in href_list)
@@ -310,32 +298,32 @@ legend {
sensors[sensor] = label sensors[sensor] = label
return MT_UPDATE 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))) if("id_tag" in O.vars && (istype(O,/obj/machinery/air_sensor) || istype(O, /obj/machinery/meter)))
sensors.Remove(O:id_tag) sensors.Remove(O:id_tag)
return 1 return 1
return 0 return 0
linkMenu(var/obj/O) /obj/machinery/computer/general_air_control/linkMenu(var/obj/O)
var/dat="" var/dat=""
if((istype(O,/obj/machinery/air_sensor) || istype(O, /obj/machinery/meter)) && !isLinkedWith(O)) 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> " dat += " <a href='?src=\ref[src];link=1'>\[New Sensor\]</a> "
return dat 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)) if(istype(O,/obj/machinery/air_sensor) || istype(O, /obj/machinery/meter))
return O:id_tag 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)) if(istype(O,/obj/machinery/air_sensor) || istype(O, /obj/machinery/meter))
return O:id_tag in sensors 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) sensors[O:id_tag] = reject_bad_name(input(user, "Choose a sensor label:", "Sensor Label") as text|null, allow_numbers=1)
return 1 return 1
large_tank_control /obj/machinery/computer/general_air_control/large_tank_control
icon = 'icons/obj/computer.dmi' icon = 'icons/obj/computer.dmi'
icon_state = "tank" icon_state = "tank"
circuit = "/obj/item/weapon/circuitboard/large_tank_control" circuit = "/obj/item/weapon/circuitboard/large_tank_control"
@@ -358,7 +346,7 @@ legend {
var/pressure_setting = ONE_ATMOSPHERE * 45 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= {" var/dat= {"
<ul> <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> <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 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)) if(context["slot"]=="input" && is_type_in_list(O,input_linkable))
input_tag = O:id_tag input_tag = O:id_tag
input_info = null input_info = null
@@ -393,7 +381,7 @@ legend {
)) ))
return 1 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("id_tag" in O.vars)
if(O:id_tag == input_tag) if(O:id_tag == input_tag)
input_tag=null input_tag=null
@@ -405,7 +393,7 @@ legend {
return 1 return 1
return 0 return 0
linkMenu(var/obj/O) /obj/machinery/computer/general_air_control/large_tank_control/linkMenu(var/obj/O)
var/dat="" var/dat=""
if(canLink(O,list("slot"="input"))) if(canLink(O,list("slot"="input")))
dat += " <a href='?src=\ref[src];link=1;slot=input'>\[Link @ Input\]</a> " 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> " dat += " <a href='?src=\ref[src];link=1;slot=output'>\[Link @ Output\]</a> "
return dat 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)) 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) if(O:id_tag == input_tag)
return 1 return 1
if(O:id_tag == output_tag) if(O:id_tag == output_tag)
return 1 return 1
return 0 return 0
process() /obj/machinery/computer/general_air_control/large_tank_control/process()
..() ..()
if(!input_info && input_tag) if(!input_info && input_tag)
request_device_refresh(input_tag) request_device_refresh(input_tag)
if(!output_info && output_tag) if(!output_info && output_tag)
request_device_refresh(output_tag) request_device_refresh(output_tag)
return_text() /obj/machinery/computer/general_air_control/large_tank_control/return_text()
var/output = ..() var/output = ..()
//if(signal.data) //if(signal.data)
// input_info = signal.data // Attempting to fix intake control -- TLE // input_info = signal.data // Attempting to fix intake control -- TLE
@@ -442,17 +430,17 @@ legend {
var/volume_rate = input_info["volume_rate"] var/volume_rate = input_info["volume_rate"]
output += {" output += {"
<fieldset> <fieldset>
<legend>Input (<A href='?src=\ref[src];in_refresh_status=1'>Refresh</A>)</legend> <legend>Input (<A href='?src=\ref[src];in_refresh_status=1'>Refresh</A>)</legend>
<table> <table>
<tr> <tr>
<th>State:</th> <th>State:</th>
<td><A href='?src=\ref[src];in_toggle_injector=1'>[power?("Injecting"):("On Hold")]</A></td> <td><A href='?src=\ref[src];in_toggle_injector=1'>[power?("Injecting"):("On Hold")]</A></td>
</tr> </tr>
<tr> <tr>
<th>Rate:</th> <th>Rate:</th>
<td><a href="?src=\ref[src];in_set_rate=1">[volume_rate]</a> L/sec</td> <td><a href="?src=\ref[src];in_set_rate=1">[volume_rate]</a> L/sec</td>
</tr> </tr>
</table> </table>
</fieldset> </fieldset>
"} "}
@@ -464,17 +452,17 @@ legend {
var/output_pressure = output_info["internal"] var/output_pressure = output_info["internal"]
output += {" output += {"
<fieldset> <fieldset>
<legend>Output (<A href='?src=\ref[src];out_refresh_status=1'>Refresh</A>)</legend> <legend>Output (<A href='?src=\ref[src];out_refresh_status=1'>Refresh</A>)</legend>
<table> <table>
<tr> <tr>
<th>State:</th> <th>State:</th>
<td><A href='?src=\ref[src];out_toggle_power=1'>[power?("Open"):("On Hold")]</A></td> <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> <th>Max Output Pressure:</th>
<td><A href='?src=\ref[src];out_set_pressure=1'>[output_pressure]</A> kPa</td> <td><A href='?src=\ref[src];out_set_pressure=1'>[output_pressure]</A> kPa</td>
</tr> </tr>
</table> </table>
</fieldset> </fieldset>
"} "}
else else
@@ -483,7 +471,7 @@ legend {
return output 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 if(!signal || signal.encryption) return
var/id_tag = signal.data["tag"] var/id_tag = signal.data["tag"]
@@ -497,10 +485,10 @@ legend {
else else
..(signal) ..(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")) 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 var/datum/signal/signal = new
signal.transmission_method = 1 //radio signal signal.transmission_method = 1 //radio signal
signal.source = src signal.source = src
@@ -508,7 +496,7 @@ legend {
signal.data["sigtype"]="command" signal.data["sigtype"]="command"
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) 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(..()) if(..())
return return
@@ -559,7 +547,7 @@ legend {
radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA) radio_connection.post_signal(src, signal, filter = RADIO_ATMOSIA)
src.updateUsrDialog() src.updateUsrDialog()
fuel_injection /obj/machinery/computer/general_air_control/fuel_injection
icon = 'icons/obj/computer.dmi' icon = 'icons/obj/computer.dmi'
icon_state = "atmos" icon_state = "atmos"
circuit = "/obj/item/weapon/circuitboard/injector_control" circuit = "/obj/item/weapon/circuitboard/injector_control"
@@ -572,7 +560,7 @@ legend {
var/cutoff_temperature = 2000 var/cutoff_temperature = 2000
var/on_temperature = 1200 var/on_temperature = 1200
process() /obj/machinery/computer/general_air_control/fuel_injection/process()
if(automation) if(automation)
if(!radio_connection) if(!radio_connection)
return 0 return 0
@@ -601,7 +589,7 @@ legend {
..() ..()
return_text() /obj/machinery/computer/general_air_control/fuel_injection/return_text()
var/output = ..() var/output = ..()
output += "<fieldset><legend>Fuel Injection System (<A href='?src=\ref[src];refresh_status=1'>Refresh</A>)</legend>" output += "<fieldset><legend>Fuel Injection System (<A href='?src=\ref[src];refresh_status=1'>Refresh</A>)</legend>"
if(device_info) if(device_info)
@@ -647,7 +635,7 @@ legend {
return output 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 if(!signal || signal.encryption) return
var/id_tag = signal.data["tag"] var/id_tag = signal.data["tag"]
@@ -657,7 +645,7 @@ legend {
else else
..(signal) ..(signal)
Topic(href, href_list) /obj/machinery/computer/general_air_control/fuel_injection/Topic(href, href_list)
if(..()) if(..())
return return

View File

@@ -11,6 +11,7 @@
use_power = 1 use_power = 1
idle_power_usage = 2 idle_power_usage = 2
active_power_usage = 4 active_power_usage = 4
machine_flags = MULTITOOL_MENU
/obj/machinery/meter/New() /obj/machinery/meter/New()
..() ..()
@@ -134,10 +135,6 @@
</ul>"} </ul>"}
/obj/machinery/meter/attackby(var/obj/item/weapon/W as obj, var/mob/user as mob) /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)) if (!istype(W, /obj/item/weapon/wrench))
return ..() return ..()

View File

@@ -8,7 +8,7 @@
active_power_usage = 300 active_power_usage = 300
var/obj/item/weapon/circuitboard/circuit = null //if circuit==null, computer can't disassembly var/obj/item/weapon/circuitboard/circuit = null //if circuit==null, computer can't disassembly
var/processing = 0 var/processing = 0
machine_flags = EMAGGABLE | SCREWTOGGLE | WRENCHMOVE | FIXED2WORK machine_flags = EMAGGABLE | SCREWTOGGLE | WRENCHMOVE | FIXED2WORK | MULTITOOL_MENU
/obj/machinery/computer/cultify() /obj/machinery/computer/cultify()
new /obj/structure/cult/tome(loc) new /obj/structure/cult/tome(loc)

View File

@@ -91,6 +91,7 @@
visible_message("Cannot locate any mass driver of that ID. Cancelling firing sequence!") visible_message("Cannot locate any mass driver of that ID. Cancelling firing sequence!")
return return
if(icon_state != "old")
flick("mass_drivers_timing", src) flick("mass_drivers_timing", src)
for(var/obj/machinery/door/poddoor/M in poddoors) for(var/obj/machinery/door/poddoor/M in poddoors)
@@ -191,6 +192,8 @@
else else
times[ident_tag] = maxtimes[ident_tag] times[ident_tag] = maxtimes[ident_tag]
updateDialog() updateDialog()
if(icon_state != "old")
if(timing) if(timing)
icon_state = "mass_drivers_timing" icon_state = "mass_drivers_timing"
else else
@@ -314,6 +317,7 @@
visible_message("Cannot locate any mass driver of that ID. Cancelling firing sequence!") visible_message("Cannot locate any mass driver of that ID. Cancelling firing sequence!")
return return
if(icon_state != "old")
flick("mass_drivers_timing", src) flick("mass_drivers_timing", src)
if(teleporter_dest) if(teleporter_dest)

View File

@@ -33,7 +33,7 @@
ghost_read=0 ghost_read=0
ghost_write=0 ghost_write=0
machine_flags = EMAGGABLE machine_flags = EMAGGABLE | MULTITOOL_MENU
/obj/machinery/door_control/attack_ai(mob/user as mob) /obj/machinery/door_control/attack_ai(mob/user as mob)
src.add_hiddenprint(user) src.add_hiddenprint(user)
@@ -134,14 +134,13 @@
return src.attack_hand(user) return src.attack_hand(user)
/obj/machinery/driver_button/attackby(obj/item/weapon/W, mob/user as mob) /obj/machinery/driver_button/attackby(obj/item/weapon/W, mob/user as mob)
. = ..()
if(.)
return .
if(istype(W, /obj/item/device/detective_scanner)) if(istype(W, /obj/item/device/detective_scanner))
return return
if(istype(W, /obj/item/device/multitool))
update_multitool_menu(user)
return 1
if(istype(W, /obj/item/weapon/wrench)) if(istype(W, /obj/item/weapon/wrench))
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1) playsound(get_turf(src), 'sound/items/Ratchet.ogg', 50, 1)
if(do_after(user, 30)) if(do_after(user, 30))

View File

@@ -115,9 +115,9 @@
icon = 'icons/obj/doors/vault.dmi' icon = 'icons/obj/doors/vault.dmi'
opacity = 1 opacity = 1
emag_cost = 2 // in MJ 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 /obj/machinery/door/airlock/freezer
name = "Freezer Airlock" name = "Freezer Airlock"

View File

@@ -11,6 +11,7 @@
var/build=2 // Build state var/build=2 // Build state
var/boardtype=null // /obj/item/weapon/circuitboard/ecb var/boardtype=null // /obj/item/weapon/circuitboard/ecb
var/obj/item/weapon/circuitboard/_circuitboard var/obj/item/weapon/circuitboard/_circuitboard
machine_flags = MULTITOOL_MENU
/obj/machinery/embedded_controller/New(turf/loc, var/ndir, var/building=0) /obj/machinery/embedded_controller/New(turf/loc, var/ndir, var/building=0)
..() ..()
@@ -30,6 +31,9 @@
src.update_icon() src.update_icon()
/obj/machinery/embedded_controller/attackby(var/obj/item/W as obj, var/mob/user as mob) /obj/machinery/embedded_controller/attackby(var/obj/item/W as obj, var/mob/user as mob)
. = ..()
if(.)
return .
if(type==/obj/machinery/embedded_controller) if(type==/obj/machinery/embedded_controller)
switch(build) switch(build)
if(0) // Empty hull if(0) // Empty hull
@@ -113,11 +117,6 @@
if(build<2) if(build<2)
return ..() 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) /obj/machinery/embedded_controller/proc/post_signal(datum/signal/signal, comm_line)
return 0 return 0

View File

@@ -580,6 +580,10 @@ Class Procs:
else else
return -1 return -1
if(ismultitool(O) && machine_flags & MULTITOOL_MENU)
update_multitool_menu(user)
return 1
if(!anchored && machine_flags & FIXED2WORK) if(!anchored && machine_flags & FIXED2WORK)
return user << "<span class='warning'>\The [src] must be anchored first!</span>" return user << "<span class='warning'>\The [src] must be anchored first!</span>"

View File

@@ -8,7 +8,7 @@ var/list/mass_drivers = list()
use_power = 1 use_power = 1
idle_power_usage = 2 idle_power_usage = 2
active_power_usage = 50 active_power_usage = 50
machine_flags = EMAGGABLE machine_flags = EMAGGABLE | MULTITOOL_MENU
var/power = 1.0 var/power = 1.0
var/code = 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) /obj/machinery/mass_driver/attackby(obj/item/weapon/W, mob/user as mob)
if(istype(W, /obj/item/device/multitool)) . = ..()
update_multitool_menu(user) if(.)
return 1 return .
if(istype(W, /obj/item/weapon/screwdriver)) if(istype(W, /obj/item/weapon/screwdriver))
user << "You begin to unscrew the bolts off the [src]..." user << "You begin to unscrew the bolts off the [src]..."

View File

@@ -10,13 +10,15 @@
/obj/machinery/telecomms /obj/machinery/telecomms
var/temp = "" // output message var/temp = "" // output message
var/construct_op = 0 var/construct_op = 0
machine_flags = MULTITOOL_MENU
/obj/machinery/telecomms/attackby(obj/item/P as obj, mob/user as mob) /obj/machinery/telecomms/attackby(obj/item/P as obj, mob/user as mob)
// Using a multitool lets you access the receiver's interface // 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) switch(construct_op)
if(0) if(0)

View File

@@ -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("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("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), \ 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 /obj/item/stack/sheet/plasteel

View File

@@ -138,7 +138,7 @@
M.requests += O M.requests += O
if (buf.types & DNA2_BUF_SE) if (buf.types & DNA2_BUF_SE)
if(block)// Isolated injector 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) ) 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>") 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)") log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name] (MONKEY)")
@@ -146,7 +146,7 @@
else else
log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name]") log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name]")
else 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) ) 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>") 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)") log_attack("[key_name(user)] injected [key_name(M)] with the [name] (MONKEY)")
@@ -173,7 +173,7 @@
if (buf.types & DNA2_BUF_SE) if (buf.types & DNA2_BUF_SE)
if(block)// Isolated injector 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) ) 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>") 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)") log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name] (MONKEY)")
@@ -181,7 +181,7 @@
else else
log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name]") log_attack("[key_name(user)] injected [key_name(M)] with the Isolated [name]")
else 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)) 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>") 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)") log_game("[key_name(user)] injected [key_name(M)] with the [name] (MONKEY)")

View File

@@ -103,6 +103,12 @@
airlock_type = "/highsecurity" airlock_type = "/highsecurity"
glass = -1 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/ /obj/structure/door_assembly/multi_tile/
icon = 'icons/obj/doors/door_assembly2x1.dmi' icon = 'icons/obj/doors/door_assembly2x1.dmi'
dir = EAST dir = EAST

View File

@@ -10,7 +10,7 @@
icon = 'icons/obj/bus.dmi' icon = 'icons/obj/bus.dmi'
icon_state = "adminbus" icon_state = "adminbus"
can_spacemove=1 can_spacemove=1
layer = FLY_LAYER layer = FLY_LAYER+1
pixel_x = -32 pixel_x = -32
pixel_y = -32 pixel_y = -32
var/can_move=1 var/can_move=1
@@ -43,6 +43,7 @@
update_lightsource() update_lightsource()
warp = new/obj/structure/teleportwarp(src.loc) warp = new/obj/structure/teleportwarp(src.loc)
busjuke = new/obj/machinery/media/jukebox/superjuke/adminbus(src.loc) busjuke = new/obj/machinery/media/jukebox/superjuke/adminbus(src.loc)
busjuke.dir = EAST
/obj/structure/stool/bed/chair/vehicle/adminbus/update_mob() /obj/structure/stool/bed/chair/vehicle/adminbus/update_mob()
if(buckled_mob) if(buckled_mob)

View File

@@ -423,6 +423,9 @@
if (istype(O, /obj/item/weapon/reagent_containers)) if (istype(O, /obj/item/weapon/reagent_containers))
var/obj/item/weapon/reagent_containers/RG = O 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)) 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>") 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 return
@@ -440,8 +443,8 @@
else else
B.deductcharge(1) B.deductcharge(1)
user.visible_message( \ user.visible_message( \
"[user] was stunned by his wet [O].", \ "<span class='warning'>[user] was stunned by \his wet [O.name]!</span>", \
"<span class='warning'>You have wet \the [O], it shocks you!</span>") "<span class='warning'>You have wet \the [O.name], it shocks you!</span>")
return return
if (!isturf(user.loc)) if (!isturf(user.loc))

View File

@@ -108,3 +108,17 @@
// DE-HACK // DE-HACK
/turf/simulated/wall/vault/relativewall() /turf/simulated/wall/vault/relativewall()
return 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]"

View File

@@ -1,21 +1,26 @@
/turf/unsimulated/wall /turf/unsimulated/wall
name = "wall" name = "riveted wall"
icon = 'icons/turf/walls.dmi' icon = 'icons/turf/walls.dmi'
icon_state = "riveted" icon_state = "riveted"
opacity = 1 opacity = 1
density = 1 density = 1
explosion_block = 2 explosion_block = 2
canSmoothWith = "/turf/unsimulated/wall=0"
var/walltype = "riveted"
/turf/unsimulated/wall/fakeglass /turf/unsimulated/wall/fakeglass
name = "window" name = "window"
icon_state = "fakewindows" icon_state = "fakewindows"
opacity = 0 opacity = 0
canSmoothWith = null
turf/unsimulated/wall/splashscreen turf/unsimulated/wall/splashscreen
name = "Space Station 13" name = "Space Station 13"
icon = null icon = null
icon_state = null icon_state = null
layer = FLY_LAYER layer = FLY_LAYER
canSmoothWith = null
New() New()
var/path = "icons/splashworks/" var/path = "icons/splashworks/"
@@ -27,6 +32,7 @@ turf/unsimulated/wall/splashscreen
/turf/unsimulated/wall/other /turf/unsimulated/wall/other
icon_state = "r_wall" icon_state = "r_wall"
canSmoothWith = null
/turf/unsimulated/wall/cult /turf/unsimulated/wall/cult
name = "wall" name = "wall"
@@ -34,6 +40,7 @@ turf/unsimulated/wall/splashscreen
icon_state = "cult0" icon_state = "cult0"
opacity = 1 opacity = 1
density = 1 density = 1
canSmoothWith = null
/turf/unsimulated/wall/cultify() /turf/unsimulated/wall/cultify()
ChangeTurf(/turf/unsimulated/wall/cult) ChangeTurf(/turf/unsimulated/wall/cult)

View File

@@ -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. 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.y++
pencil.x = x
pencil.y = y+h
T = pencil.loc
T.maptext = name
qdel(pencil) //RIP sweet prince qdel(pencil) //RIP sweet prince
for (var/datum/bomberman_spawn/S in spawns) //removing the soft walls near the spawns 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>)") 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]) ") 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 else
qdel(src) 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].") E.visible_message("\icon[E] \The [E] brightens as it appears that a round is starting in [name].")
flick("entertainment_arena",E) 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) sleep(40)
for(var/datum/bomberman_spawn/S in spawns) for(var/datum/bomberman_spawn/S in spawns)
if(S.player) if(S.player)
@@ -1113,6 +1125,7 @@ var/global/list/arenas = list()
T.ChangeTurf(/turf/space) T.ChangeTurf(/turf/space)
else else
T.ChangeTurf(/turf/simulated/floor/plating) T.ChangeTurf(/turf/simulated/floor/plating)
T.maptext = null
turfs = list() turfs = list()
arenas -= src arenas -= src
return return

View File

@@ -17,6 +17,7 @@
var/const/RADS_PER_TICK=150 var/const/RADS_PER_TICK=150
var/const/MAX_TEMP=70 // Celsius var/const/MAX_TEMP=70 // Celsius
machine_flags = MULTITOOL_MENU
/obj/machinery/media/transmitter/broadcast/initialize() /obj/machinery/media/transmitter/broadcast/initialize()
testing("[type]/initialize() called!") testing("[type]/initialize() called!")
@@ -49,16 +50,18 @@
broadcast() // Bzzt broadcast() // Bzzt
/obj/machinery/media/transmitter/broadcast/attackby(var/obj/item/W, mob/user) /obj/machinery/media/transmitter/broadcast/attackby(var/obj/item/W, mob/user)
if(istype(W, /obj/item/device/multitool)) . = ..()
update_multitool_menu(user) if(.)
return 1 return .
/obj/machinery/media/transmitter/broadcast/attack_ai(var/mob/user as mob) /obj/machinery/media/transmitter/broadcast/attack_ai(var/mob/user as mob)
src.add_hiddenprint(user) src.add_hiddenprint(user)
attack_hand(user) attack_hand(user)
/obj/machinery/media/transmitter/broadcast/attack_hand(var/mob/user as mob) /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) /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 // You need a multitool to use this, or be silicon

View File

@@ -184,7 +184,7 @@ var/global/loopModeNames=list(
var/state_base = "jukebox2" var/state_base = "jukebox2"
machine_flags = WRENCHMOVE | FIXED2WORK | EMAGGABLE machine_flags = WRENCHMOVE | FIXED2WORK | EMAGGABLE | MULTITOOL_MENU
mech_flags = MECH_SCAN_FAIL mech_flags = MECH_SCAN_FAIL
emag_cost = 0 // because fun/unlimited uses. 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) /obj/machinery/media/jukebox/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/device/multitool)) . = ..()
update_multitool_menu(user) if(.)
return 1 return .
..()
if(istype(W,/obj/item/weapon/card/id)) if(istype(W,/obj/item/weapon/card/id))
if(!selected_song || screen!=JUKEBOX_SCREEN_PAYMENT) if(!selected_song || screen!=JUKEBOX_SCREEN_PAYMENT)
visible_message("<span class='notice'>The machine buzzes.</span>","<span class='warning'>You hear a buzz.</span>") visible_message("<span class='notice'>The machine buzzes.</span>","<span class='warning'>You hear a buzz.</span>")

View File

@@ -45,6 +45,7 @@
var/last_ad_cyc = 0 // Last world.time of an ad cycle var/last_ad_cyc = 0 // Last world.time of an ad cycle
var/list/ad_queue = 0 // Ads queued to play var/list/ad_queue = 0 // Ads queued to play
machine_flags = MULTITOOL_MENU
var/state_base = "tapedeck" var/state_base = "tapedeck"
/obj/machinery/media/tapedeck/attack_ai(var/mob/user) /obj/machinery/media/tapedeck/attack_ai(var/mob/user)
@@ -188,9 +189,9 @@
/obj/machinery/media/jukebox/attackby(obj/item/W, mob/user) /obj/machinery/media/jukebox/attackby(obj/item/W, mob/user)
if(istype(W, /obj/item/device/multitool)) . = ..()
update_multitool_menu(user) if(.)
return 1 return .
if(istype(W, /obj/item/weapon/card/emag)) if(istype(W, /obj/item/weapon/card/emag))
current_song = 0 current_song = 0
if(!emagged) 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>") 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_icon()
update_music() update_music()
return 1
else if(istype(W,/obj/item/weapon/wrench)) else if(istype(W,/obj/item/weapon/wrench))
var/un = !anchored ? "" : "un" 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>") 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>")

View File

@@ -26,7 +26,7 @@
var/resource_efficiency = 1 var/resource_efficiency = 1
var/id_tag = "clone_pod" var/id_tag = "clone_pod"
machine_flags = EMAGGABLE | SCREWTOGGLE | CROWDESTROY machine_flags = EMAGGABLE | SCREWTOGGLE | CROWDESTROY | MULTITOOL_MENU
l_color = "#7BF9FF" l_color = "#7BF9FF"
@@ -343,6 +343,9 @@
//Let's unlock this early I guess. Might be too early, needs tweaking. //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) /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 (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda))
if (!src.check_access(W)) if (!src.check_access(W))
user << "<span class='warning'>Access Denied.</span>" user << "<span class='warning'>Access Denied.</span>"
@@ -358,10 +361,6 @@
user.drop_item(W) user.drop_item(W)
qdel(W) qdel(W)
return return
if(ismultitool(W))
update_multitool_menu(user)
else
..()
//Put messages in the connected computer's temp var for display. //Put messages in the connected computer's temp var for display.
/obj/machinery/cloning/clonepod/proc/connected_message(var/message) /obj/machinery/cloning/clonepod/proc/connected_message(var/message)

View File

@@ -82,17 +82,16 @@
#undef CLONEPODRANGE #undef CLONEPODRANGE
/obj/machinery/computer/cloning/attackby(obj/item/W as obj, mob/user as mob) /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 (istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES
if (!src.diskette) if (!src.diskette)
user.drop_item(W, src) user.drop_item(W, src)
src.diskette = W src.diskette = W
user << "You insert [W]." user << "You insert [W]."
src.updateUsrDialog() src.updateUsrDialog()
return return 1
if(ismultitool(W))
update_multitool_menu(user)
else
..()
return return
/obj/machinery/computer/cloning/attack_paw(mob/user as mob) /obj/machinery/computer/cloning/attack_paw(mob/user as mob)

View File

@@ -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.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>" // //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 //BEGIN TELEPORT HREF CODE
/mob/dead/observer/Topic(href, href_list) /mob/dead/observer/Topic(href, href_list)
if(usr != src) 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 return
loc = T loc = T
following = null 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 //END TELEPORT HREF CODE

View File

@@ -72,6 +72,7 @@
if(!src.species) if(!src.species)
if(new_species_name) src.set_species(new_species_name) if(new_species_name) src.set_species(new_species_name)
else src.set_species() else src.set_species()
default_language = get_default_language()
create_reagents(1000) create_reagents(1000)

View File

@@ -89,7 +89,8 @@
update_muts=1 update_muts=1
if(!istype(src, /mob/living/carbon/monkey/diona)) if(!istype(src, /mob/living/carbon/monkey/diona))
add_language("Chimpanzee") add_language(LANGUAGE_MONKEY)
default_language = all_languages[LANGUAGE_MONKEY]
..() ..()
update_icons() update_icons()

View File

@@ -79,6 +79,7 @@ var/list/ai_list = list()
add_language(LANGUAGE_MONKEY, 1) add_language(LANGUAGE_MONKEY, 1)
add_language(LANGUAGE_VOX, 1) add_language(LANGUAGE_VOX, 1)
add_language(LANGUAGE_TRADEBAND, 1) add_language(LANGUAGE_TRADEBAND, 1)
default_language = all_languages[LANGUAGE_SOL_COMMON]
real_name = pickedName real_name = pickedName
name = real_name name = real_name
anchored = 1 anchored = 1

View File

@@ -147,6 +147,7 @@
cell_component.installed = 1 cell_component.installed = 1
playsound(loc, startup_sound, 75, 1) playsound(loc, startup_sound, 75, 1)
default_language = all_languages[LANGUAGE_SOL_COMMON]
// setup the PDA and its name // setup the PDA and its name
/mob/living/silicon/robot/proc/setup_PDA() /mob/living/silicon/robot/proc/setup_PDA()

View File

@@ -57,7 +57,8 @@
..() ..()
name = text("[initial(name)] ([rand(1, 1000)])") name = text("[initial(name)] ([rand(1, 1000)])")
real_name = name real_name = name
add_language("Cult") add_language(LANGUAGE_CULT)
default_language = all_languages[LANGUAGE_CULT]
for(var/spell in construct_spells) for(var/spell in construct_spells)
src.add_spell(new spell, "const_spell_ready") src.add_spell(new spell, "const_spell_ready")
updateicon() updateicon()

View File

@@ -20,7 +20,7 @@
var/shot_number = 0 var/shot_number = 0
var/locked = 0 var/locked = 0
machine_flags = EMAGGABLE | WRENCHMOVE | FIXED2WORK | WELD_FIXED machine_flags = EMAGGABLE | WRENCHMOVE | FIXED2WORK | WELD_FIXED | MULTITOOL_MENU
var/frequency = 0 var/frequency = 0
var/id_tag = null var/id_tag = null
@@ -249,11 +249,9 @@
return -1 return -1
/obj/machinery/power/emitter/attackby(obj/item/W, mob/user) /obj/machinery/power/emitter/attackby(obj/item/W, mob/user)
if(..()) . = ..()
return 1 if(.)
return .
if(istype(W, /obj/item/device/multitool))
update_multitool_menu(user)
if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda)) if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))
if(emagged) if(emagged)

View File

@@ -11,7 +11,7 @@
wabbajack(change) 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(istype(M, /mob/living) && M.stat != DEAD)
if(M.monkeyizing) if(M.monkeyizing)
return return
@@ -53,7 +53,9 @@
switch(randomize) switch(randomize)
if("monkey") if("monkey")
new_mob = new /mob/living/carbon/monkey(M.loc) 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") if("robot")
new_mob = new /mob/living/silicon/robot(M.loc) new_mob = new /mob/living/silicon/robot(M.loc)
new_mob.setGender(M.gender) new_mob.setGender(M.gender)
@@ -62,7 +64,8 @@
var/mob/living/silicon/robot/Robot = new_mob var/mob/living/silicon/robot/Robot = new_mob
Robot.mmi = new /obj/item/device/mmi(new_mob) Robot.mmi = new /obj/item/device/mmi(new_mob)
Robot.mmi.transfer_identity(M) //Does not transfer key/client. 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") if("mommi")
new_mob = new /mob/living/silicon/robot/mommi(M.loc) new_mob = new /mob/living/silicon/robot/mommi(M.loc)
new_mob.setGender(M.gender) new_mob.setGender(M.gender)
@@ -71,6 +74,8 @@
var/mob/living/silicon/robot/mommi/MoMMI = new_mob var/mob/living/silicon/robot/mommi/MoMMI = new_mob
MoMMI.mmi = new /obj/item/device/mmi(new_mob) MoMMI.mmi = new /obj/item/device/mmi(new_mob)
MoMMI.mmi.transfer_identity(M) //Does not transfer key/client. 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") if("slime")
var/slimey = pick("",\ var/slimey = pick("",\
"/purple",\ "/purple",\
@@ -100,7 +105,9 @@
slimey = text2path("/mob/living/carbon/slime[slimey]") slimey = text2path("/mob/living/carbon/slime[slimey]")
new_mob = new slimey(M.loc) 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") if("xeno")
var/alien_caste = pick("Hunter","Sentinel","Drone","Larva") var/alien_caste = pick("Hunter","Sentinel","Drone","Larva")
switch(alien_caste) switch(alien_caste)
@@ -108,7 +115,9 @@
if("Sentinel") new_mob = new /mob/living/carbon/alien/humanoid/sentinel(M.loc) 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) if("Drone") new_mob = new /mob/living/carbon/alien/humanoid/drone(M.loc)
else new_mob = new /mob/living/carbon/alien/larva(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") if("human")
new_mob = new /mob/living/carbon/human(M.loc, delay_ready_dna=1) new_mob = new /mob/living/carbon/human(M.loc, delay_ready_dna=1)
@@ -121,6 +130,8 @@
var/newspecies = pick(all_species) var/newspecies = pick(all_species)
H.set_species(newspecies) H.set_species(newspecies)
H.generate_name() H.generate_name()
H.languages |= M.languages
if(M.default_language) H.default_language = M.default_language
if("furry") if("furry")
new_mob = new /mob/living/carbon/human(M.loc, delay_ready_dna=1) 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 var/mob/living/carbon/human/H = new_mob
H.set_species("Tajaran") // idfk H.set_species("Tajaran") // idfk
H.languages |= M.languages
if(M.default_language) H.default_language = M.default_language
H.generate_name() H.generate_name()
/* RIP /* RIP
if("cluwne") if("cluwne")

View File

@@ -24,7 +24,7 @@
var/frequency = 1367 var/frequency = 1367
var/datum/radio_frequency/radio_connection var/datum/radio_frequency/radio_connection
machine_flags = SCREWTOGGLE | CROWDESTROY machine_flags = SCREWTOGGLE | CROWDESTROY | MULTITOOL_MENU
/obj/machinery/conveyor/centcom_auto /obj/machinery/conveyor/centcom_auto
id_tag = "round_end_belt" id_tag = "round_end_belt"
@@ -188,9 +188,6 @@
. = ..() . = ..()
if(.) if(.)
return . return .
if(istype(W, /obj/item/device/multitool))
update_multitool_menu(user)
return 1
user.drop_item(W, src.loc) user.drop_item(W, src.loc)
return 0 return 0
@@ -292,6 +289,7 @@
var/frequency = 1367 var/frequency = 1367
var/datum/radio_frequency/radio_connection var/datum/radio_frequency/radio_connection
machine_flags = MULTITOOL_MENU
anchored = 1 anchored = 1
@@ -379,9 +377,9 @@
radio_connection.post_signal(src, signal, range = CONVEYOR_CONTROL_RANGE) radio_connection.post_signal(src, signal, range = CONVEYOR_CONTROL_RANGE)
/obj/machinery/conveyor_switch/attackby(var/obj/item/W, mob/user) /obj/machinery/conveyor_switch/attackby(var/obj/item/W, mob/user)
if(istype(W, /obj/item/device/multitool)) . = ..()
update_multitool_menu(user) if(.)
return 1 return .
if(istype(W, /obj/item/weapon/wrench)) if(istype(W, /obj/item/weapon/wrench))
user << "<span class='notice'>Deconstructing \the [src]...</span>" user << "<span class='notice'>Deconstructing \the [src]...</span>"
if(do_after(user,50)) if(do_after(user,50))
@@ -392,7 +390,6 @@
new /obj/item/stack/rods(T,1) new /obj/item/stack/rods(T,1)
del(src) del(src)
return 1 return 1
return ..()
/obj/machinery/conveyor_switch/oneway /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.) 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.)

View File

@@ -66,6 +66,7 @@
//Add types to this list so it doesn't make a message or get desroyed by the Supermatter on touch. //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) 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. /obj/machinery/power/supermatter/shard //Small subtype, less efficient and more sensitive, but less boom.
name = "Supermatter Shard" name = "Supermatter Shard"
@@ -339,9 +340,9 @@
return return
/obj/machinery/power/supermatter/attackby(obj/item/weapon/W as obj, mob/living/user as mob) /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) if(.)
return 1 return .
user.visible_message("<span class=\"warning\">\The [user] touches \a [W] to \the [src] as a silence fills the room...</span>",\ 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>",\ "<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>",\

View File

@@ -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 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 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 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. #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_CLATTER "Clatter"
#define LANGUAGE_MONKEY "Monkey" #define LANGUAGE_MONKEY "Monkey"
#define LANGUAGE_VOX "Vox-pidgin" #define LANGUAGE_VOX "Vox-pidgin"
#define LANGUAGE_CULT "Cult"
//#define SAY_DEBUG 0 //#define SAY_DEBUG 0
#ifdef SAY_DEBUG #ifdef SAY_DEBUG
#warning SOME ASSHOLE FORGOT TO COMMENT SAY_DEBUG BEFORE COMMITTING #warning SOME ASSHOLE FORGOT TO COMMENT SAY_DEBUG BEFORE COMMITTING
#define say_testing(a,x) a << ("([__FILE__]L[__LINE__] SAYDEBUG) [x]") #define say_testing(a,x) a << ("([__FILE__]L[__LINE__] SAYDEBUG) [x]")
#else #else
#define say_testing(a,x) #define say_testing(a,x) null << "[x][a]"
#endif #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