mirror of
https://github.com/VOREStation/VOREStation.git
synced 2026-08-26 13:39:16 +01:00
Merge pull request #4831 from VOREStation/upstream-merge-5987
[MIRROR] Items are now assumed to be conductive, rather than the opposite
This commit is contained in:
@@ -22,7 +22,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
|
||||
|
||||
// Flags bitmasks. - Used in /atom/var/flags
|
||||
#define NOBLUDGEON (1<<0) // When an item has this it produces no "X has been hit by Y with Z" message with the default handler.
|
||||
#define CONDUCT (1<<1) // Conducts electricity. (metal etc.)
|
||||
#define NOCONDUCT (1<<1) // Conducts electricity. (metal etc.)
|
||||
#define ON_BORDER (1<<2) // Item has priority to check when entering or leaving.
|
||||
#define NOBLOODY (1<<3) // Used for items if they don't want to get a blood overlay.
|
||||
#define OPENCONTAINER (1<<4) // Is an open container for chemistry purposes.
|
||||
|
||||
@@ -222,7 +222,6 @@ var/global/list/PDA_Manifest = list()
|
||||
throwforce = 0.0
|
||||
throw_speed = 1
|
||||
throw_range = 20
|
||||
flags = CONDUCT
|
||||
|
||||
afterattack(atom/target as mob|obj|turf|area, mob/user as mob)
|
||||
user.drop_item()
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
desc = "Should anything ever go wrong..."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "red_phone"
|
||||
flags = CONDUCT
|
||||
force = 3.0
|
||||
throwforce = 2.0
|
||||
throw_speed = 1
|
||||
@@ -85,7 +84,6 @@
|
||||
slot_l_hand_str = 'icons/mob/items/lefthand_melee.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/righthand_melee.dmi',
|
||||
)
|
||||
flags = CONDUCT
|
||||
force = 5.0
|
||||
throwforce = 7.0
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
@@ -210,7 +208,7 @@
|
||||
var/traitor_frequency = 0.0
|
||||
var/mob/currentUser = null
|
||||
var/obj/item/device/radio/origradio = null
|
||||
flags = CONDUCT | ONBELT
|
||||
flags = ONBELT
|
||||
w_class = ITEMSIZE_SMALL
|
||||
item_state = "radio"
|
||||
throw_speed = 4
|
||||
@@ -228,7 +226,6 @@
|
||||
var/selfdestruct = 0.0
|
||||
var/traitor_frequency = 0.0
|
||||
var/obj/item/device/radio/origradio = null
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
item_state = "radio"
|
||||
throwforce = 5
|
||||
@@ -283,7 +280,6 @@
|
||||
icon_state = "std_module"
|
||||
item_state = "std_mod"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = CONDUCT
|
||||
var/mtype = 1 // 1=electronic 2=hardware
|
||||
|
||||
/obj/item/weapon/module/card_reader
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
name = "pinpointer"
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "pinoff"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
w_class = ITEMSIZE_SMALL
|
||||
item_state = "electronic"
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon_state = "yellow"
|
||||
density = 1
|
||||
var/health = 100.0
|
||||
flags = CONDUCT
|
||||
w_class = ITEMSIZE_HUGE
|
||||
|
||||
layer = TABLE_LAYER // Above catwalks, hopefully below other things
|
||||
|
||||
@@ -167,7 +167,7 @@
|
||||
center = locate(x+center_x, y+center_y, z)
|
||||
if(center)
|
||||
for(var/obj/M in orange(magnetic_field, center))
|
||||
if(!M.anchored && (M.flags & CONDUCT))
|
||||
if(!M.anchored && !(M.flags & NOCONDUCT))
|
||||
step_towards(M, center)
|
||||
|
||||
for(var/mob/living/silicon/S in orange(magnetic_field, center))
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
desc = "Used for building frames."
|
||||
icon = 'icons/obj/stock_parts.dmi'
|
||||
icon_state = "frame_bitem"
|
||||
flags = CONDUCT
|
||||
var/build_machine_type
|
||||
var/refund_amt = 5
|
||||
var/refund_type = /obj/item/stack/material/steel
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
icon = 'icons/mecha/mech_construct.dmi'
|
||||
icon_state = "blank"
|
||||
w_class = ITEMSIZE_HUGE
|
||||
flags = CONDUCT
|
||||
origin_tech = list(TECH_DATA = 2, TECH_MATERIAL = 2)
|
||||
|
||||
|
||||
@@ -17,7 +16,6 @@
|
||||
name="Mecha Chassis"
|
||||
icon_state = "backbone"
|
||||
var/datum/construction/construct
|
||||
flags = CONDUCT
|
||||
|
||||
attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(!construct || !construct.action(W, user))
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
name="Mecha Chassis"
|
||||
icon_state = "backbone"
|
||||
var/datum/construction/construct
|
||||
flags = CONDUCT
|
||||
|
||||
attackby(obj/item/W as obj, mob/user as mob)
|
||||
if(!construct || !construct.action(W, user))
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
desc = "Used for repairing or building APCs"
|
||||
icon = 'icons/obj/apc_repair.dmi'
|
||||
icon_state = "apc_frame"
|
||||
flags = CONDUCT
|
||||
|
||||
/obj/item/frame/apc/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
..()
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
icon = 'icons/obj/device_alt.dmi'
|
||||
icon_state = "hydro"
|
||||
item_state = "gun"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 3
|
||||
w_class = ITEMSIZE_SMALL
|
||||
|
||||
@@ -1,10 +1,7 @@
|
||||
/obj/item/device/binoculars
|
||||
|
||||
name = "binoculars"
|
||||
desc = "A pair of binoculars."
|
||||
icon_state = "binoculars"
|
||||
|
||||
flags = CONDUCT
|
||||
force = 5.0
|
||||
w_class = ITEMSIZE_SMALL
|
||||
throwforce = 5.0
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
icon = 'icons/obj/device_alt.dmi'
|
||||
icon_state = "sleevemate" //Give this a fancier sprite later.
|
||||
item_state = "healthanalyzer"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
w_class = ITEMSIZE_SMALL
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 200)
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/obj/item/device/chameleon
|
||||
name = "chameleon projector"
|
||||
icon_state = "shield0"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
item_state = "electronic"
|
||||
throwforce = 5.0
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
desc = "Used to debug electronic equipment."
|
||||
icon = 'icons/obj/hacktool.dmi'
|
||||
icon_state = "hacktool-g"
|
||||
flags = CONDUCT
|
||||
force = 5.0
|
||||
w_class = ITEMSIZE_SMALL
|
||||
throwforce = 5.0
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
w_class = ITEMSIZE_SMALL
|
||||
throw_speed = 4
|
||||
throw_range = 10
|
||||
flags = CONDUCT
|
||||
origin_tech = list(TECH_MAGNET = 2, TECH_COMBAT = 1)
|
||||
|
||||
var/times_used = 0 //Number of times it's been used.
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon = 'icons/obj/lighting.dmi'
|
||||
icon_state = "flashlight"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50,"glass" = 20)
|
||||
action_button_name = "Toggle Flashlight"
|
||||
@@ -25,8 +24,7 @@
|
||||
|
||||
/obj/item/device/flashlight/New()
|
||||
if(power_use)
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
START_PROCESSING(SSobj, src)
|
||||
if(cell_type)
|
||||
cell = new cell_type(src)
|
||||
brightness_levels = list("low" = 0.25, "medium" = 0.5, "high" = 1)
|
||||
@@ -245,7 +243,6 @@
|
||||
desc = "A pen-sized light, used by medical staff."
|
||||
icon_state = "penlight"
|
||||
item_state = "pen"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_EARS
|
||||
brightness_on = 2
|
||||
w_class = ITEMSIZE_TINY
|
||||
@@ -277,7 +274,6 @@
|
||||
icon_state = "maglight"
|
||||
flashlight_colour = LIGHT_COLOR_FLUORESCENT_FLASHLIGHT
|
||||
force = 10
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
w_class = ITEMSIZE_SMALL
|
||||
attack_verb = list ("smacked", "thwacked", "thunked")
|
||||
@@ -289,7 +285,6 @@
|
||||
desc = "A miniature lamp, that might be used by small robots."
|
||||
icon_state = "penlight"
|
||||
item_state = null
|
||||
flags = CONDUCT
|
||||
brightness_on = 2
|
||||
w_class = ITEMSIZE_TINY
|
||||
power_use = 0
|
||||
@@ -302,7 +297,6 @@
|
||||
force = 10
|
||||
brightness_on = 5
|
||||
w_class = ITEMSIZE_LARGE
|
||||
flags = CONDUCT
|
||||
power_use = 0
|
||||
on = 1
|
||||
|
||||
@@ -375,14 +369,14 @@
|
||||
user.visible_message("<span class='notice'>[user] activates the flare.</span>", "<span class='notice'>You pull the cord on the flare, activating it!</span>")
|
||||
src.force = on_damage
|
||||
src.damtype = "fire"
|
||||
START_PROCESSING(SSobj, src)
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/device/flashlight/flare/proc/ignite() //Used for flare launchers.
|
||||
on = !on
|
||||
update_icon()
|
||||
force = on_damage
|
||||
damtype = "fire"
|
||||
START_PROCESSING(SSobj, src)
|
||||
START_PROCESSING(SSobj, src)
|
||||
return 1
|
||||
|
||||
//Glowsticks
|
||||
@@ -426,7 +420,7 @@
|
||||
. = ..()
|
||||
if(.)
|
||||
user.visible_message("<span class='notice'>[user] cracks and shakes the glowstick.</span>", "<span class='notice'>You crack and shake the glowstick, turning it on!</span>")
|
||||
START_PROCESSING(SSobj, src)
|
||||
START_PROCESSING(SSobj, src)
|
||||
|
||||
/obj/item/device/flashlight/glowstick/red
|
||||
name = "red glowstick"
|
||||
|
||||
@@ -45,7 +45,6 @@
|
||||
force = 8
|
||||
icon = 'icons/obj/janitor.dmi'
|
||||
icon_state = "lightreplacer0"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
origin_tech = list(TECH_MAGNET = 3, TECH_MATERIAL = 2)
|
||||
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
desc = "A device used to project your voice. Loudly."
|
||||
icon_state = "megaphone"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = CONDUCT
|
||||
|
||||
var/spamcheck = 0
|
||||
var/emagged = 0
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
name = "multitool"
|
||||
desc = "Used for pulsing wires to test which to cut. Not recommended by doctors."
|
||||
icon_state = "multitool"
|
||||
flags = CONDUCT
|
||||
force = 5.0
|
||||
w_class = ITEMSIZE_SMALL
|
||||
throwforce = 5.0
|
||||
|
||||
@@ -1,134 +1,133 @@
|
||||
// Powersink - used to drain station power
|
||||
|
||||
/obj/item/device/powersink
|
||||
name = "power sink"
|
||||
desc = "A nulling power sink which drains energy from electrical systems."
|
||||
icon_state = "powersink0"
|
||||
w_class = ITEMSIZE_LARGE
|
||||
flags = CONDUCT
|
||||
throwforce = 5
|
||||
throw_speed = 1
|
||||
throw_range = 2
|
||||
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 750,"waste" = 750)
|
||||
|
||||
origin_tech = list(TECH_POWER = 3, TECH_ILLEGAL = 5)
|
||||
var/drain_rate = 1500000 // amount of power to drain per tick
|
||||
var/apc_drain_rate = 5000 // Max. amount drained from single APC. In Watts.
|
||||
var/dissipation_rate = 20000 // Passive dissipation of drained power. In Watts.
|
||||
var/power_drained = 0 // Amount of power drained.
|
||||
var/max_power = 1e9 // Detonation point.
|
||||
var/mode = 0 // 0 = off, 1=clamped (off), 2=operating
|
||||
var/drained_this_tick = 0 // This is unfortunately necessary to ensure we process powersinks BEFORE other machinery such as APCs.
|
||||
|
||||
var/datum/powernet/PN // Our powernet
|
||||
var/obj/structure/cable/attached // the attached cable
|
||||
|
||||
/obj/item/device/powersink/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
STOP_PROCESSING_POWER_OBJECT(src)
|
||||
..()
|
||||
|
||||
/obj/item/device/powersink/attackby(var/obj/item/I, var/mob/user)
|
||||
if(I.is_screwdriver())
|
||||
if(mode == 0)
|
||||
var/turf/T = loc
|
||||
if(isturf(T) && !!T.is_plating())
|
||||
attached = locate() in T
|
||||
if(!attached)
|
||||
to_chat(user, "No exposed cable here to attach to.")
|
||||
return
|
||||
else
|
||||
anchored = 1
|
||||
mode = 1
|
||||
src.visible_message("<span class='notice'>[user] attaches [src] to the cable!</span>")
|
||||
playsound(src, I.usesound, 50, 1)
|
||||
return
|
||||
else
|
||||
to_chat(user, "Device must be placed over an exposed cable to attach to it.")
|
||||
return
|
||||
else
|
||||
if (mode == 2)
|
||||
STOP_PROCESSING(SSobj, src) // Now the power sink actually stops draining the station's power if you unhook it. --NeoFite
|
||||
STOP_PROCESSING_POWER_OBJECT(src)
|
||||
anchored = 0
|
||||
mode = 0
|
||||
src.visible_message("<span class='notice'>[user] detaches [src] from the cable!</span>")
|
||||
set_light(0)
|
||||
playsound(src, I.usesound, 50, 1)
|
||||
icon_state = "powersink0"
|
||||
|
||||
return
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/device/powersink/attack_ai()
|
||||
return
|
||||
|
||||
/obj/item/device/powersink/attack_hand(var/mob/user)
|
||||
switch(mode)
|
||||
if(0)
|
||||
..()
|
||||
if(1)
|
||||
src.visible_message("<span class='notice'>[user] activates [src]!</span>")
|
||||
mode = 2
|
||||
icon_state = "powersink1"
|
||||
START_PROCESSING(SSobj, src)
|
||||
datum_flags &= ~DF_ISPROCESSING // Have to reset this flag so that PROCESSING_POWER_OBJECT can re-add it. It fails if the flag is already present. - Ater
|
||||
START_PROCESSING_POWER_OBJECT(src)
|
||||
if(2) //This switch option wasn't originally included. It exists now. --NeoFite
|
||||
src.visible_message("<span class='notice'>[user] deactivates [src]!</span>")
|
||||
mode = 1
|
||||
set_light(0)
|
||||
icon_state = "powersink0"
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
STOP_PROCESSING_POWER_OBJECT(src)
|
||||
|
||||
/obj/item/device/powersink/pwr_drain()
|
||||
if(!attached)
|
||||
return 0
|
||||
|
||||
if(drained_this_tick)
|
||||
return 1
|
||||
drained_this_tick = 1
|
||||
|
||||
var/drained = 0
|
||||
|
||||
if(!PN)
|
||||
return 1
|
||||
|
||||
set_light(12)
|
||||
PN.trigger_warning()
|
||||
// found a powernet, so drain up to max power from it
|
||||
drained = PN.draw_power(drain_rate)
|
||||
// if tried to drain more than available on powernet
|
||||
// now look for APCs and drain their cells
|
||||
if(drained < drain_rate)
|
||||
for(var/obj/machinery/power/terminal/T in PN.nodes)
|
||||
// Enough power drained this tick, no need to torture more APCs
|
||||
if(drained >= drain_rate)
|
||||
break
|
||||
if(istype(T.master, /obj/machinery/power/apc))
|
||||
var/obj/machinery/power/apc/A = T.master
|
||||
if(A.operating && A.cell)
|
||||
var/cur_charge = A.cell.charge / CELLRATE
|
||||
var/drain_val = min(apc_drain_rate, cur_charge)
|
||||
A.cell.use(drain_val * CELLRATE)
|
||||
drained += drain_val
|
||||
power_drained += drained
|
||||
return 1
|
||||
|
||||
|
||||
/obj/item/device/powersink/process()
|
||||
drained_this_tick = 0
|
||||
power_drained -= min(dissipation_rate, power_drained)
|
||||
if(power_drained > max_power * 0.95)
|
||||
playsound(src, 'sound/effects/screech.ogg', 100, 1, 1)
|
||||
if(power_drained >= max_power)
|
||||
explosion(src.loc, 3,6,9,12)
|
||||
qdel(src)
|
||||
return
|
||||
if(attached && attached.powernet)
|
||||
PN = attached.powernet
|
||||
else
|
||||
PN = null
|
||||
// Powersink - used to drain station power
|
||||
|
||||
/obj/item/device/powersink
|
||||
name = "power sink"
|
||||
desc = "A nulling power sink which drains energy from electrical systems."
|
||||
icon_state = "powersink0"
|
||||
w_class = ITEMSIZE_LARGE
|
||||
throwforce = 5
|
||||
throw_speed = 1
|
||||
throw_range = 2
|
||||
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 750,"waste" = 750)
|
||||
|
||||
origin_tech = list(TECH_POWER = 3, TECH_ILLEGAL = 5)
|
||||
var/drain_rate = 1500000 // amount of power to drain per tick
|
||||
var/apc_drain_rate = 5000 // Max. amount drained from single APC. In Watts.
|
||||
var/dissipation_rate = 20000 // Passive dissipation of drained power. In Watts.
|
||||
var/power_drained = 0 // Amount of power drained.
|
||||
var/max_power = 1e9 // Detonation point.
|
||||
var/mode = 0 // 0 = off, 1=clamped (off), 2=operating
|
||||
var/drained_this_tick = 0 // This is unfortunately necessary to ensure we process powersinks BEFORE other machinery such as APCs.
|
||||
|
||||
var/datum/powernet/PN // Our powernet
|
||||
var/obj/structure/cable/attached // the attached cable
|
||||
|
||||
/obj/item/device/powersink/Destroy()
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
STOP_PROCESSING_POWER_OBJECT(src)
|
||||
..()
|
||||
|
||||
/obj/item/device/powersink/attackby(var/obj/item/I, var/mob/user)
|
||||
if(I.is_screwdriver())
|
||||
if(mode == 0)
|
||||
var/turf/T = loc
|
||||
if(isturf(T) && !!T.is_plating())
|
||||
attached = locate() in T
|
||||
if(!attached)
|
||||
to_chat(user, "No exposed cable here to attach to.")
|
||||
return
|
||||
else
|
||||
anchored = 1
|
||||
mode = 1
|
||||
src.visible_message("<span class='notice'>[user] attaches [src] to the cable!</span>")
|
||||
playsound(src, I.usesound, 50, 1)
|
||||
return
|
||||
else
|
||||
to_chat(user, "Device must be placed over an exposed cable to attach to it.")
|
||||
return
|
||||
else
|
||||
if (mode == 2)
|
||||
STOP_PROCESSING(SSobj, src) // Now the power sink actually stops draining the station's power if you unhook it. --NeoFite
|
||||
STOP_PROCESSING_POWER_OBJECT(src)
|
||||
anchored = 0
|
||||
mode = 0
|
||||
src.visible_message("<span class='notice'>[user] detaches [src] from the cable!</span>")
|
||||
set_light(0)
|
||||
playsound(src, I.usesound, 50, 1)
|
||||
icon_state = "powersink0"
|
||||
|
||||
return
|
||||
else
|
||||
..()
|
||||
|
||||
/obj/item/device/powersink/attack_ai()
|
||||
return
|
||||
|
||||
/obj/item/device/powersink/attack_hand(var/mob/user)
|
||||
switch(mode)
|
||||
if(0)
|
||||
..()
|
||||
if(1)
|
||||
src.visible_message("<span class='notice'>[user] activates [src]!</span>")
|
||||
mode = 2
|
||||
icon_state = "powersink1"
|
||||
START_PROCESSING(SSobj, src)
|
||||
datum_flags &= ~DF_ISPROCESSING // Have to reset this flag so that PROCESSING_POWER_OBJECT can re-add it. It fails if the flag is already present. - Ater
|
||||
START_PROCESSING_POWER_OBJECT(src)
|
||||
if(2) //This switch option wasn't originally included. It exists now. --NeoFite
|
||||
src.visible_message("<span class='notice'>[user] deactivates [src]!</span>")
|
||||
mode = 1
|
||||
set_light(0)
|
||||
icon_state = "powersink0"
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
STOP_PROCESSING_POWER_OBJECT(src)
|
||||
|
||||
/obj/item/device/powersink/pwr_drain()
|
||||
if(!attached)
|
||||
return 0
|
||||
|
||||
if(drained_this_tick)
|
||||
return 1
|
||||
drained_this_tick = 1
|
||||
|
||||
var/drained = 0
|
||||
|
||||
if(!PN)
|
||||
return 1
|
||||
|
||||
set_light(12)
|
||||
PN.trigger_warning()
|
||||
// found a powernet, so drain up to max power from it
|
||||
drained = PN.draw_power(drain_rate)
|
||||
// if tried to drain more than available on powernet
|
||||
// now look for APCs and drain their cells
|
||||
if(drained < drain_rate)
|
||||
for(var/obj/machinery/power/terminal/T in PN.nodes)
|
||||
// Enough power drained this tick, no need to torture more APCs
|
||||
if(drained >= drain_rate)
|
||||
break
|
||||
if(istype(T.master, /obj/machinery/power/apc))
|
||||
var/obj/machinery/power/apc/A = T.master
|
||||
if(A.operating && A.cell)
|
||||
var/cur_charge = A.cell.charge / CELLRATE
|
||||
var/drain_val = min(apc_drain_rate, cur_charge)
|
||||
A.cell.use(drain_val * CELLRATE)
|
||||
drained += drain_val
|
||||
power_drained += drained
|
||||
return 1
|
||||
|
||||
|
||||
/obj/item/device/powersink/process()
|
||||
drained_this_tick = 0
|
||||
power_drained -= min(dissipation_rate, power_drained)
|
||||
if(power_drained > max_power * 0.95)
|
||||
playsound(src, 'sound/effects/screech.ogg', 100, 1, 1)
|
||||
if(power_drained >= max_power)
|
||||
explosion(src.loc, 3,6,9,12)
|
||||
qdel(src)
|
||||
return
|
||||
if(attached && attached.powernet)
|
||||
PN = attached.powernet
|
||||
else
|
||||
PN = null
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
)
|
||||
item_state = "electropack"
|
||||
frequency = 1449
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
w_class = ITEMSIZE_HUGE
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
anchored = 1
|
||||
w_class = ITEMSIZE_LARGE
|
||||
canhear_range = 2
|
||||
flags = CONDUCT | NOBLOODY
|
||||
flags = NOBLOODY
|
||||
var/circuit = /obj/item/weapon/circuitboard/intercom
|
||||
var/number = 0
|
||||
var/last_tick //used to delay the powercheck
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
/obj/item/device/radio/intercom/New()
|
||||
..()
|
||||
START_PROCESSING(SSobj, src)
|
||||
START_PROCESSING(SSobj, src)
|
||||
circuit = new circuit(src)
|
||||
|
||||
/obj/item/device/radio/intercom/department/medbay/New()
|
||||
|
||||
@@ -45,7 +45,6 @@ var/global/list/default_medbay_channels = list(
|
||||
var/adhoc_fallback = FALSE //Falls back to 'radio' mode if subspace not available
|
||||
var/syndie = 0//Holder to see if it's a syndicate encrypted radio
|
||||
var/centComm = 0//Holder to see if it's a CentCom encrypted radio
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throw_speed = 2
|
||||
throw_range = 9
|
||||
|
||||
@@ -15,7 +15,6 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
desc = "A hand-held body scanner able to distinguish vital signs of the subject."
|
||||
icon_state = "health"
|
||||
item_state = "healthanalyzer"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 3
|
||||
w_class = ITEMSIZE_SMALL
|
||||
@@ -299,7 +298,6 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
icon_state = "atmos"
|
||||
item_state = "analyzer"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 5
|
||||
throw_speed = 4
|
||||
@@ -337,7 +335,7 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample."
|
||||
icon_state = "spectrometer"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = CONDUCT | OPENCONTAINER
|
||||
flags = OPENCONTAINER
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 5
|
||||
throw_speed = 4
|
||||
@@ -399,7 +397,6 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
icon_state = "spectrometer"
|
||||
item_state = "analyzer"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 5
|
||||
throw_speed = 4
|
||||
@@ -447,7 +444,6 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
item_state = "xenobio"
|
||||
origin_tech = list(TECH_BIO = 1)
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = CONDUCT
|
||||
throwforce = 0
|
||||
throw_speed = 3
|
||||
throw_range = 7
|
||||
@@ -490,7 +486,6 @@ HALOGEN COUNTER - Radcount on mobs
|
||||
icon_state = "eftpos"
|
||||
desc = "A hand-held halogen counter, used to detect the level of irradiation of living beings."
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = CONDUCT
|
||||
origin_tech = list(TECH_MAGNET = 1, TECH_BIO = 2)
|
||||
throwforce = 0
|
||||
throw_speed = 3
|
||||
|
||||
@@ -7,7 +7,6 @@ var/global/mob/living/carbon/human/dummy/mannequin/sleevemate_mob
|
||||
icon = 'icons/obj/device_alt.dmi'
|
||||
icon_state = "sleevemate"
|
||||
item_state = "healthanalyzer"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 3
|
||||
w_class = ITEMSIZE_SMALL
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "camgrenade"
|
||||
item_state = "empgrenade"
|
||||
flags = CONDUCT
|
||||
w_class = ITEMSIZE_SMALL
|
||||
force = 0
|
||||
throwforce = 5.0
|
||||
@@ -50,7 +49,6 @@
|
||||
icon = 'icons/obj/grenade.dmi'
|
||||
icon_state = "camgrenadebroken"
|
||||
item_state = "empgrenade"
|
||||
flags = CONDUCT
|
||||
force = 5.0
|
||||
w_class = ITEMSIZE_SMALL
|
||||
throwforce = 5.0
|
||||
@@ -68,7 +66,6 @@
|
||||
w_class = ITEMSIZE_TINY
|
||||
slot_flags = SLOT_EARS
|
||||
origin_tech = list(TECH_ENGINEERING = 1, TECH_ILLEGAL = 3) //crush it and you lose the data
|
||||
flags = CONDUCT
|
||||
force = 0
|
||||
throwforce = 5.0
|
||||
throw_range = 15
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
slot_flags = SLOT_BACK
|
||||
|
||||
//copied from tank.dm
|
||||
flags = CONDUCT
|
||||
force = 5.0
|
||||
throwforce = 10.0
|
||||
throw_speed = 1
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
var/playsleepseconds = 0.0
|
||||
var/obj/item/device/tape/mytape = /obj/item/device/tape/random
|
||||
var/canprint = 1
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 2
|
||||
throw_speed = 4
|
||||
|
||||
@@ -22,7 +22,6 @@ effective or pretty fucking useless.
|
||||
w_class = ITEMSIZE_TINY
|
||||
throw_speed = 4
|
||||
throw_range = 10
|
||||
flags = CONDUCT
|
||||
item_state = "electronic"
|
||||
origin_tech = list(TECH_MAGNET = 3, TECH_COMBAT = 3, TECH_ILLEGAL = 3)
|
||||
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon_state = "voice0"
|
||||
item_state = "flashbang" //looks exactly like a flash (and nothing like a flashbang)
|
||||
w_class = ITEMSIZE_TINY
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_EARS
|
||||
|
||||
var/use_message = "Halt! Security!"
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
icon = 'icons/obj/robot_parts.dmi'
|
||||
item_state = "buildpipe"
|
||||
icon_state = "blank"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
var/list/part = null // Order of args is important for installing robolimbs.
|
||||
var/sabotaged = 0 //Emagging limbs can have repercussions when installed as prosthetics.
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
desc = "Some rods. Can be used for building, or something."
|
||||
singular_name = "metal rod"
|
||||
icon_state = "rods"
|
||||
flags = CONDUCT
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
force = 9.0
|
||||
throwforce = 15.0
|
||||
|
||||
@@ -113,7 +113,6 @@
|
||||
throwforce = 15.0
|
||||
throw_speed = 5
|
||||
throw_range = 20
|
||||
flags = CONDUCT
|
||||
no_variants = FALSE
|
||||
|
||||
/obj/item/stack/tile/floor/red
|
||||
|
||||
@@ -295,7 +295,6 @@
|
||||
slot_l_hand_str = 'icons/mob/items/lefthand_material.dmi',
|
||||
slot_r_hand_str = 'icons/mob/items/righthand_material.dmi',
|
||||
)
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT | SLOT_BACK
|
||||
force = 5
|
||||
throwforce = 5
|
||||
|
||||
@@ -11,7 +11,6 @@ AI MODULES
|
||||
icon = 'icons/obj/module.dmi'
|
||||
icon_state = "std_mod"
|
||||
desc = "An AI Module for transmitting encrypted instructions to the AI."
|
||||
flags = CONDUCT
|
||||
force = 5.0
|
||||
w_class = ITEMSIZE_SMALL
|
||||
throwforce = 5.0
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
icon = 'icons/obj/tools.dmi'
|
||||
icon_state = "rcd"
|
||||
item_state = "rcd"
|
||||
flags = CONDUCT | NOBLUDGEON
|
||||
flags = NOBLUDGEON
|
||||
force = 10
|
||||
throwforce = 10
|
||||
throw_speed = 1
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
icon = 'icons/obj/autopsy_scanner.dmi'
|
||||
icon_state = ""
|
||||
item_state = "autopsy_scanner"
|
||||
flags = CONDUCT
|
||||
w_class = ITEMSIZE_SMALL
|
||||
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
|
||||
var/list/datum/autopsy_data_scanner/wdata = list()
|
||||
|
||||
@@ -502,7 +502,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
item_state = "lighter-g"
|
||||
w_class = ITEMSIZE_TINY
|
||||
throwforce = 4
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
attack_verb = list("burnt", "singed")
|
||||
var/base_state
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
density = 0
|
||||
anchored = 0
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = CONDUCT
|
||||
force = 5.0
|
||||
throwforce = 5.0
|
||||
throw_speed = 3
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
icon_state = "fire_extinguisher0"
|
||||
item_state = "fire_extinguisher"
|
||||
hitsound = 'sound/weapons/smash.ogg'
|
||||
flags = CONDUCT
|
||||
throwforce = 10
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
throw_speed = 2
|
||||
|
||||
@@ -8,7 +8,6 @@
|
||||
slot_r_hand_str = 'icons/mob/items/righthand_guns.dmi',
|
||||
)
|
||||
item_state = "flamethrower_0"
|
||||
flags = CONDUCT
|
||||
force = 3.0
|
||||
throwforce = 10.0
|
||||
throw_speed = 1
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
item_state = "grenade"
|
||||
throw_speed = 4
|
||||
throw_range = 20
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_MASK|SLOT_BELT
|
||||
|
||||
var/active = 0
|
||||
|
||||
@@ -59,7 +59,6 @@
|
||||
desc = "It's made of AUTHENTIC faux-leather and has a price-tag still attached. Its owner must be a real professional."
|
||||
icon_state = "briefcase"
|
||||
item_state = "briefcase"
|
||||
flags = CONDUCT
|
||||
force = 8.0
|
||||
throw_speed = 1
|
||||
throw_range = 4
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "handcuff"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 5
|
||||
w_class = ITEMSIZE_SMALL
|
||||
@@ -205,7 +204,6 @@ var/last_chew = 0
|
||||
gender = PLURAL
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "legcuff"
|
||||
flags = CONDUCT
|
||||
throwforce = 0
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
origin_tech = list(TECH_MATERIAL = 1)
|
||||
|
||||
@@ -44,7 +44,6 @@
|
||||
desc = "A rod with some wire wrapped around the top. It'd be easy to attach something to the top bit."
|
||||
icon_state = "wiredrod"
|
||||
item_state = "rods"
|
||||
flags = CONDUCT
|
||||
force = 8
|
||||
throwforce = 10
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
|
||||
@@ -59,7 +59,6 @@
|
||||
icon = 'icons/obj/kitchen.dmi'
|
||||
icon_state = "knife"
|
||||
desc = "A general purpose Chef's Knife made by SpaceCook Incorporated. Guaranteed to stay sharp for years to come."
|
||||
flags = CONDUCT
|
||||
sharp = 1
|
||||
edge = 1
|
||||
force_divisor = 0.15 // 9 when wielded with hardness 60 (steel)
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
sharp = 0
|
||||
edge = 0
|
||||
armor_penetration = 50
|
||||
flags = NOBLOODY
|
||||
flags = NOCONDUCT | NOBLOODY
|
||||
var/lrange = 2
|
||||
var/lpower = 2
|
||||
var/lcolor = "#0099FF"
|
||||
@@ -82,7 +82,6 @@
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
flags = CONDUCT | NOBLOODY
|
||||
origin_tech = list(TECH_MAGNET = 3, TECH_COMBAT = 4)
|
||||
attack_verb = list("attacked", "chopped", "cleaved", "torn", "cut")
|
||||
sharp = 1
|
||||
@@ -268,7 +267,7 @@
|
||||
spark_system.set_up(5, 0, src)
|
||||
spark_system.attach(src)
|
||||
|
||||
START_PROCESSING(SSobj, src)
|
||||
START_PROCESSING(SSobj, src)
|
||||
set_light(lrange, lpower, lcolor)
|
||||
|
||||
/obj/item/weapon/melee/energy/blade/Destroy()
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
name = "chain of command"
|
||||
desc = "A tool used by great men to placate the frothing masses."
|
||||
icon_state = "chain"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
force = 10
|
||||
throwforce = 7
|
||||
@@ -21,7 +20,6 @@
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "umbrella_closed"
|
||||
addblends = "umbrella_closed_a"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
force = 5
|
||||
throwforce = 5
|
||||
|
||||
@@ -58,7 +58,6 @@
|
||||
desc = "A shield adept for close quarters engagement. It's also capable of protecting from less powerful projectiles."
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "riot"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
force = 5.0
|
||||
throwforce = 5.0
|
||||
@@ -115,7 +114,7 @@
|
||||
icon = 'icons/obj/weapons.dmi'
|
||||
icon_state = "eshield0" // eshield1 for expanded
|
||||
slot_flags = SLOT_EARS
|
||||
flags = CONDUCT
|
||||
flags = NOCONDUCT
|
||||
force = 3.0
|
||||
throwforce = 5.0
|
||||
throw_speed = 1
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
name = "briefcase"
|
||||
desc = "It's made of AUTHENTIC faux-leather and has a price-tag still attached. Its owner must be a real professional."
|
||||
icon_state = "briefcase"
|
||||
flags = CONDUCT
|
||||
force = 8.0
|
||||
throw_speed = 1
|
||||
throw_range = 4
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
icon_state = "red"
|
||||
item_state_slots = list(slot_r_hand_str = "toolbox_red", slot_l_hand_str = "toolbox_red")
|
||||
flags = CONDUCT
|
||||
force = 10
|
||||
throwforce = 10
|
||||
throw_speed = 1
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
desc = "This shouldn't be here, ahelp it."
|
||||
icon = 'icons/obj/surgery.dmi'
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = CONDUCT
|
||||
var/helpforce = 0 //For help intent things
|
||||
|
||||
/obj/item/weapon/surgical/attack(mob/M, mob/user)
|
||||
@@ -92,7 +91,7 @@
|
||||
origin_tech = list(TECH_MATERIAL = 1, TECH_BIO = 1)
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 10000, "glass" = 5000)
|
||||
attack_verb = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
||||
|
||||
|
||||
suicide_act(mob/user)
|
||||
var/datum/gender/TU = gender_datums[user.get_visible_gender()]
|
||||
viewers(user) << pick("<span class='danger'>\The [user] is slitting [TU.his] wrists with the [src.name]! It looks like [TU.hes] trying to commit suicide.</span>", \
|
||||
|
||||
@@ -79,7 +79,6 @@
|
||||
desc = "Contains dangerous phoron. Do not inhale. Warning: extremely flammable."
|
||||
icon_state = "phoron"
|
||||
gauge_icon = null
|
||||
flags = CONDUCT
|
||||
slot_flags = null //they have no straps!
|
||||
|
||||
/obj/item/weapon/tank/phoron/Initialize()
|
||||
@@ -105,7 +104,6 @@
|
||||
desc = "Contains dangerous phoron. Do not inhale. Warning: extremely flammable."
|
||||
icon_state = "phoron_vox"
|
||||
gauge_icon = null
|
||||
flags = CONDUCT
|
||||
distribute_pressure = ONE_ATMOSPHERE*O2STANDARD
|
||||
slot_flags = SLOT_BACK //these ones have straps!
|
||||
|
||||
@@ -124,7 +122,6 @@
|
||||
icon_state = "emergency"
|
||||
gauge_icon = "indicator_emergency"
|
||||
gauge_cap = 4
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
w_class = ITEMSIZE_SMALL
|
||||
force = 4
|
||||
|
||||
@@ -15,7 +15,6 @@ var/list/global/tank_gauge_cache = list()
|
||||
var/last_gauge_pressure
|
||||
var/gauge_cap = 6
|
||||
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
var/frequency = 1451
|
||||
var/broadcasting = null
|
||||
var/listening = 1.0
|
||||
flags = CONDUCT
|
||||
w_class = ITEMSIZE_SMALL
|
||||
item_state = "electronic"
|
||||
throw_speed = 4
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
desc = "Used to remove floors and to pry open doors."
|
||||
icon = 'icons/obj/tools.dmi'
|
||||
icon_state = "crowbar"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
force = 6
|
||||
throwforce = 7
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
desc = "A steel bar with a wedge, designed specifically for opening unpowered doors in an emergency. It comes in a variety of configurations - collect them all!"
|
||||
icon = 'icons/obj/tools_vr.dmi'
|
||||
icon_state = "prybar"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
force = 4
|
||||
throwforce = 5
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
desc = "You can be totally screwwy with this."
|
||||
icon = 'icons/obj/tools.dmi'
|
||||
icon_state = "screwdriver"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT | SLOT_EARS
|
||||
force = 6
|
||||
w_class = ITEMSIZE_TINY
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -6,7 +6,6 @@
|
||||
desc = "This cuts wires."
|
||||
icon = 'icons/obj/tools.dmi'
|
||||
icon_state = "cutters"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
force = 6
|
||||
throw_speed = 2
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
desc = "A wrench with many common uses. Can be usually found in your hand."
|
||||
icon = 'icons/obj/tools.dmi'
|
||||
icon_state = "wrench"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
force = 6
|
||||
throwforce = 7
|
||||
|
||||
@@ -11,7 +11,6 @@
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
flags = CONDUCT
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 3000)
|
||||
var/list/carrying = list() // List of things on the tray. - Doohl
|
||||
var/max_carry = 10
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
icon_state = "grille"
|
||||
density = 1
|
||||
anchored = 1
|
||||
flags = CONDUCT
|
||||
pressure_resistance = 5*ONE_ATMOSPHERE
|
||||
layer = TABLE_LAYER
|
||||
explosion_resistance = 1
|
||||
@@ -151,7 +150,7 @@
|
||||
return
|
||||
//window placing end
|
||||
|
||||
else if(!(W.flags & CONDUCT) || !shock(user, 70))
|
||||
else if((W.flags & NOCONDUCT) || !shock(user, 70))
|
||||
user.setClickCooldown(user.get_attack_speed(W))
|
||||
user.do_attack_animation(src)
|
||||
playsound(loc, 'sound/effects/grillehit.ogg', 80, 1)
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
anchored = 1.0
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
plane = PLATING_PLANE
|
||||
// flags = CONDUCT
|
||||
|
||||
/obj/structure/lattice/Initialize()
|
||||
. = ..()
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
icon_state = "target_stake"
|
||||
density = 1
|
||||
w_class = ITEMSIZE_HUGE
|
||||
flags = CONDUCT
|
||||
var/obj/item/target/pinned_target // the current pinned target
|
||||
|
||||
Move()
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
desc = "A small electronic device that should never exist."
|
||||
icon = 'icons/obj/assemblies/new_assemblies.dmi'
|
||||
icon_state = ""
|
||||
flags = CONDUCT
|
||||
w_class = ITEMSIZE_SMALL
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 100)
|
||||
throwforce = 2
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
icon = 'icons/obj/assemblies/new_assemblies.dmi'
|
||||
icon_state = "holder"
|
||||
item_state = "assembly"
|
||||
flags = CONDUCT | PROXMOVE
|
||||
flags = PROXMOVE
|
||||
throwforce = 5
|
||||
w_class = ITEMSIZE_SMALL
|
||||
throw_speed = 3
|
||||
@@ -233,7 +233,7 @@
|
||||
tmr.time=5
|
||||
tmr.secured = 1
|
||||
tmr.holder = src
|
||||
START_PROCESSING(SSobj, tmr)
|
||||
START_PROCESSING(SSobj, tmr)
|
||||
a_left = tmr
|
||||
a_right = ign
|
||||
secured = 1
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
var/obj/item/device/radio/electropack/part2 = null
|
||||
var/status = 0
|
||||
w_class = ITEMSIZE_HUGE
|
||||
flags = CONDUCT
|
||||
|
||||
/obj/item/assembly/shock_kit/Destroy()
|
||||
qdel(part1)
|
||||
|
||||
@@ -52,7 +52,6 @@
|
||||
name = "cyborg suit"
|
||||
desc = "Suit for a cyborg costume."
|
||||
icon_state = "death"
|
||||
flags = CONDUCT
|
||||
fire_resist = T0C+5200
|
||||
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETIE|HIDEHOLSTER
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
desc = "Swipe your ID card to make purchases electronically."
|
||||
icon = 'icons/obj/device.dmi'
|
||||
icon_state = "retail_idle"
|
||||
flags = NOBLUDGEON|CONDUCT
|
||||
flags = NOBLUDGEON
|
||||
slot_flags = SLOT_BELT
|
||||
req_access = list(access_heads)
|
||||
w_class = ITEMSIZE_SMALL
|
||||
|
||||
@@ -100,7 +100,7 @@
|
||||
amount_per_transfer_from_this = 20
|
||||
possible_transfer_amounts = null
|
||||
volume = 150
|
||||
flags = CONDUCT | OPENCONTAINER
|
||||
flags = OPENCONTAINER
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/golden_cup/on_reagent_change()
|
||||
..()
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
icon = 'icons/obj/integrated_electronics/electronic_tools.dmi'
|
||||
icon_state = "wirer-wire"
|
||||
item_state = "wirer"
|
||||
flags = CONDUCT
|
||||
w_class = ITEMSIZE_SMALL
|
||||
var/datum/integrated_io/selected_io = null
|
||||
var/mode = WIRE
|
||||
@@ -110,7 +109,6 @@
|
||||
settings to specific circuits, or for debugging purposes. It can also pulse activation pins."
|
||||
icon = 'icons/obj/integrated_electronics/electronic_tools.dmi'
|
||||
icon_state = "debugger"
|
||||
flags = CONDUCT
|
||||
w_class = 2
|
||||
var/data_to_write = null
|
||||
var/accepting_refs = 0
|
||||
|
||||
@@ -37,8 +37,8 @@
|
||||
if(apply_colour)
|
||||
color = material.icon_colour
|
||||
|
||||
if(material.conductive)
|
||||
flags |= CONDUCT
|
||||
if(!material.conductive)
|
||||
flags |= NOCONDUCT
|
||||
|
||||
matter = material.get_matter()
|
||||
update_strings()
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon = 'icons/obj/items.dmi'
|
||||
name = "Coin"
|
||||
icon_state = "coin"
|
||||
flags = CONDUCT
|
||||
force = 0.0
|
||||
throwforce = 0.0
|
||||
w_class = ITEMSIZE_TINY
|
||||
|
||||
@@ -13,7 +13,6 @@
|
||||
name = "mining drill"
|
||||
desc = "The most basic of mining drills, for short excavations and small mineral extractions."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
force = 15.0
|
||||
throwforce = 4.0
|
||||
@@ -112,7 +111,6 @@
|
||||
desc = "A large tool for digging and moving dirt."
|
||||
icon = 'icons/obj/items.dmi'
|
||||
icon_state = "shovel"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
force = 8.0
|
||||
throwforce = 4.0
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
icon = 'icons/obj/storage.dmi'
|
||||
name = "Money bag"
|
||||
icon_state = "moneybag"
|
||||
flags = CONDUCT
|
||||
force = 10.0
|
||||
throwforce = 2.0
|
||||
w_class = ITEMSIZE_LARGE
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
icon_state = "robotanalyzer"
|
||||
item_state = "analyzer"
|
||||
desc = "A hand-held scanner able to diagnose robotic injuries."
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 3
|
||||
w_class = ITEMSIZE_SMALL
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "jaws"
|
||||
desc = "The jaws of the law."
|
||||
flags = CONDUCT
|
||||
force = 10
|
||||
throwforce = 0
|
||||
hitsound = 'sound/weapons/bite.ogg'
|
||||
@@ -15,7 +14,6 @@
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "smalljaws"
|
||||
desc = "The jaws of a small dog."
|
||||
flags = CONDUCT
|
||||
force = 5
|
||||
throwforce = 0
|
||||
hitsound = 'sound/weapons/bite.ogg'
|
||||
@@ -32,7 +30,6 @@
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "jaws"
|
||||
desc = "The jaws of the law."
|
||||
flags = CONDUCT
|
||||
force = 10
|
||||
throwforce = 0
|
||||
hitsound = 'sound/weapons/bite.ogg'
|
||||
@@ -43,7 +40,6 @@
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "smalljaws"
|
||||
desc = "The jaws of a small dog."
|
||||
flags = CONDUCT
|
||||
force = 5
|
||||
throwforce = 0
|
||||
hitsound = 'sound/weapons/bite.ogg'
|
||||
@@ -57,7 +53,6 @@
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "nose"
|
||||
desc = "The BOOP module, a simple reagent and atmosphere sniffer."
|
||||
flags = CONDUCT
|
||||
force = 0
|
||||
throwforce = 0
|
||||
attack_verb = list("nuzzled", "nosed", "booped")
|
||||
@@ -323,7 +318,6 @@
|
||||
icon = 'icons/mob/dogborg_vr.dmi'
|
||||
icon_state = "swordtail"
|
||||
desc = "A glowing pink dagger normally attached to the end of a cyborg's tail. It appears to be extremely sharp."
|
||||
flags = CONDUCT
|
||||
force = 20 //Takes 5 hits to 100-0
|
||||
sharp = 1
|
||||
edge = 1
|
||||
|
||||
@@ -19,7 +19,6 @@ var/global/list/robot_modules = list(
|
||||
icon_state = "std_module"
|
||||
w_class = ITEMSIZE_NO_CONTAINER
|
||||
item_state = "std_mod"
|
||||
flags = CONDUCT
|
||||
var/hide_on_manifest = 0
|
||||
var/channels = list()
|
||||
var/networks = list()
|
||||
|
||||
@@ -124,7 +124,6 @@ var/global/photo_count = 0
|
||||
icon_state = "camera"
|
||||
item_state = "camera"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 2000)
|
||||
var/pictures_max = 10
|
||||
|
||||
@@ -191,7 +191,6 @@ proc/cardinalrange(var/center)
|
||||
icon_state = "box"
|
||||
item_state = "electronic"
|
||||
w_class = ITEMSIZE_LARGE
|
||||
flags = CONDUCT
|
||||
throwforce = 5
|
||||
throw_speed = 1
|
||||
throw_range = 2
|
||||
|
||||
@@ -238,7 +238,7 @@ var/list/possible_cable_coil_colours = list(
|
||||
shock(user, 5, 0.2)
|
||||
|
||||
else
|
||||
if (W.flags & CONDUCT)
|
||||
if(!(W.flags & NOCONDUCT))
|
||||
shock(user, 50, 0.7)
|
||||
|
||||
src.add_fingerprint(user)
|
||||
@@ -511,7 +511,6 @@ obj/structure/cable/proc/cableColor(var/colorC)
|
||||
throw_speed = 2
|
||||
throw_range = 5
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 20)
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
item_state = "coil"
|
||||
attack_verb = list("whipped", "lashed", "disciplined", "flogged")
|
||||
@@ -932,7 +931,6 @@ obj/structure/cable/proc/cableColor(var/colorC)
|
||||
throw_speed = 2
|
||||
throw_range = 5
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 50, "glass" = 20)
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
attack_verb = list("whipped", "lashed", "disciplined", "flogged")
|
||||
stacktype = null
|
||||
|
||||
@@ -471,7 +471,7 @@
|
||||
if(M == user)
|
||||
continue
|
||||
M.show_message("[user.name] smashed the light!", 3, "You hear a tinkle of breaking glass", 2)
|
||||
if(on && (W.flags & CONDUCT))
|
||||
if(on && !(W.flags & NOCONDUCT))
|
||||
//if(!user.mutations & COLD_RESISTANCE)
|
||||
if (prob(12))
|
||||
electrocute_mob(user, get_area(src), src, 0.3)
|
||||
@@ -509,7 +509,7 @@
|
||||
return
|
||||
|
||||
user << "You stick \the [W] into the light socket!"
|
||||
if(has_power() && (W.flags & CONDUCT))
|
||||
if(has_power() && !(W.flags & NOCONDUCT))
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(3, 1, src)
|
||||
s.start()
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
desc = "A bullet casing."
|
||||
icon = 'icons/obj/ammo.dmi'
|
||||
icon_state = "s-casing"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT | SLOT_EARS
|
||||
throwforce = 1
|
||||
w_class = ITEMSIZE_TINY
|
||||
@@ -66,7 +65,6 @@
|
||||
desc = "A magazine for some kind of gun."
|
||||
icon_state = ".357"
|
||||
icon = 'icons/obj/ammo.dmi'
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
item_state = "syringe_kit"
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 500)
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
)
|
||||
icon_state = "detective"
|
||||
item_state = "gun"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT|SLOT_HOLSTER
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 2000)
|
||||
w_class = ITEMSIZE_NORMAL
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
origin_tech = list(TECH_COMBAT = 2, TECH_MAGNET = 4)
|
||||
w_class = ITEMSIZE_LARGE
|
||||
force = 10
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
projectile_type = /obj/item/projectile/ion
|
||||
|
||||
@@ -127,7 +126,6 @@
|
||||
icon = 'icons/obj/gun.dmi'
|
||||
item_icons = null
|
||||
icon_state = "staffofchange"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
w_class = ITEMSIZE_LARGE
|
||||
charge_cost = 480
|
||||
|
||||
@@ -2,7 +2,6 @@
|
||||
name = "launcher"
|
||||
desc = "A device that launches things."
|
||||
w_class = ITEMSIZE_HUGE
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
|
||||
var/release_force = 0
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
item_state = "pneumatic"
|
||||
slot_flags = SLOT_BELT
|
||||
w_class = ITEMSIZE_HUGE
|
||||
flags = CONDUCT
|
||||
fire_sound_text = "a loud whoosh of moving air"
|
||||
fire_delay = 50
|
||||
fire_sound = 'sound/weapons/grenade_launcher.ogg' // Formerly tablehit1.ogg but I like this better -Ace
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
throw_speed = 2
|
||||
throw_range = 10
|
||||
force = 5.0
|
||||
flags = CONDUCT
|
||||
slot_flags = 0
|
||||
origin_tech = list(TECH_COMBAT = 8, TECH_MATERIAL = 5)
|
||||
fire_sound = 'sound/weapons/rpg.ogg'
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
icon_state = "syringe-cartridge"
|
||||
var/icon_flight = "syringe-cartridge-flight" //so it doesn't look so weird when shot
|
||||
matter = list(DEFAULT_WALL_MATERIAL = 125, "glass" = 375)
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT | SLOT_EARS
|
||||
throwforce = 3
|
||||
force = 3
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
max_shells = 4
|
||||
w_class = ITEMSIZE_LARGE
|
||||
force = 10
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
caliber = "12g"
|
||||
origin_tech = list(TECH_COMBAT = 4, TECH_MATERIAL = 2)
|
||||
@@ -41,14 +40,14 @@
|
||||
loaded -= AC //Remove casing from loaded list.
|
||||
chambered = AC
|
||||
|
||||
if(animated_pump)//This affects all bolt action and shotguns.
|
||||
if(animated_pump)//This affects all bolt action and shotguns.
|
||||
flick("[icon_state]-cycling", src)//This plays any pumping
|
||||
|
||||
update_icon()
|
||||
|
||||
/obj/item/weapon/gun/projectile/shotgun/pump/update_icon()//This adds empty sprite capability for shotguns.
|
||||
..()
|
||||
if(!empty_sprite)//Just a dirty check
|
||||
if(!empty_sprite)//Just a dirty check
|
||||
return
|
||||
if((loaded.len) || (chambered))
|
||||
icon_state = "[icon_state]"
|
||||
@@ -80,7 +79,6 @@
|
||||
max_shells = 2
|
||||
w_class = ITEMSIZE_LARGE
|
||||
force = 10
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BACK
|
||||
caliber = "12g"
|
||||
origin_tech = list(TECH_COMBAT = 3, TECH_MATERIAL = 1)
|
||||
|
||||
@@ -326,7 +326,6 @@
|
||||
|
||||
w_class = ITEMSIZE_SMALL
|
||||
item_state = "electronic"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
proc/openwindow(mob/user as mob)
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
// var/maxshieldload = 200
|
||||
var/obj/structure/cable/attached // the attached cable
|
||||
var/storedpower = 0
|
||||
flags = CONDUCT
|
||||
//There have to be at least two posts, so these are effectively doubled
|
||||
var/power_draw = 30000 //30 kW. How much power is drawn from powernet. Increase this to allow the generator to sustain longer shields, at the cost of more power draw.
|
||||
var/max_stored_power = 50000 //50 kW
|
||||
|
||||
@@ -6,7 +6,6 @@
|
||||
icon_state = "health"
|
||||
w_class = ITEMSIZE_SMALL
|
||||
item_state = "electronic"
|
||||
flags = CONDUCT
|
||||
|
||||
/obj/item/device/antibody_scanner/attack(mob/M as mob, mob/user as mob)
|
||||
if(!istype(M,/mob/living/carbon/))
|
||||
|
||||
@@ -278,7 +278,7 @@
|
||||
icon_override = 'icons/vore/custom_items_vr.dmi'
|
||||
item_state = "holochain_mob"
|
||||
|
||||
flags = CONDUCT | NOBLOODY
|
||||
flags = NOBLOODY
|
||||
slot_flags = SLOT_BELT
|
||||
force = 10
|
||||
throwforce = 3
|
||||
@@ -529,7 +529,6 @@
|
||||
icon_state = "browncane"
|
||||
item_icons = list (slot_r_hand_str = 'icons/vore/custom_items_vr.dmi', slot_l_hand_str = 'icons/vore/custom_items_vr.dmi')
|
||||
item_state_slots = list(slot_r_hand_str = "browncanemob_r", slot_l_hand_str = "browncanemob_l")
|
||||
flags = CONDUCT
|
||||
force = 5.0
|
||||
throwforce = 7.0
|
||||
w_class = ITEMSIZE_SMALL
|
||||
@@ -549,7 +548,6 @@
|
||||
icon_state = "alexiswand"
|
||||
item_icons = list (slot_r_hand_str = 'icons/vore/custom_items_vr.dmi', slot_l_hand_str = 'icons/vore/custom_items_vr.dmi')
|
||||
item_state_slots = list(slot_r_hand_str = "alexiswandmob_r", slot_l_hand_str = "alexiswandmob_l")
|
||||
flags = CONDUCT
|
||||
force = 1.0
|
||||
throwforce = 2.0
|
||||
w_class = ITEMSIZE_SMALL
|
||||
|
||||
@@ -188,7 +188,6 @@
|
||||
desc = "A miniature battery for an energy weapon."
|
||||
icon = 'icons/obj/ammo_vr.dmi'
|
||||
icon_state = "nsfw_batt"
|
||||
flags = CONDUCT
|
||||
slot_flags = SLOT_BELT | SLOT_EARS
|
||||
throwforce = 1
|
||||
w_class = ITEMSIZE_TINY
|
||||
|
||||
Reference in New Issue
Block a user