mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 18:53:06 +00:00
Merge branch 'dev' of https://github.com/Baystation12/Baystation12 into xenohydro
This commit is contained in:
@@ -549,6 +549,7 @@
|
|||||||
#include "code\game\objects\items\devices\pipe_painter.dm"
|
#include "code\game\objects\items\devices\pipe_painter.dm"
|
||||||
#include "code\game\objects\items\devices\powersink.dm"
|
#include "code\game\objects\items\devices\powersink.dm"
|
||||||
#include "code\game\objects\items\devices\scanners.dm"
|
#include "code\game\objects\items\devices\scanners.dm"
|
||||||
|
#include "code\game\objects\items\devices\spy_bug.dm"
|
||||||
#include "code\game\objects\items\devices\suit_cooling.dm"
|
#include "code\game\objects\items\devices\suit_cooling.dm"
|
||||||
#include "code\game\objects\items\devices\taperecorder.dm"
|
#include "code\game\objects\items\devices\taperecorder.dm"
|
||||||
#include "code\game\objects\items\devices\traitordevices.dm"
|
#include "code\game\objects\items\devices\traitordevices.dm"
|
||||||
|
|||||||
@@ -9,6 +9,13 @@
|
|||||||
src:Topic(href, href_list)
|
src:Topic(href, href_list)
|
||||||
return null
|
return null
|
||||||
|
|
||||||
|
/proc/is_on_same_plane_or_station(var/z1, var/z2)
|
||||||
|
if(z1 == z2)
|
||||||
|
return 1
|
||||||
|
if((z1 in config.station_levels) && (z2 in config.station_levels))
|
||||||
|
return 1
|
||||||
|
return 0
|
||||||
|
|
||||||
/proc/get_area(O)
|
/proc/get_area(O)
|
||||||
var/turf/loc = get_turf(O)
|
var/turf/loc = get_turf(O)
|
||||||
if(!loc)
|
if(!loc)
|
||||||
|
|||||||
@@ -73,7 +73,6 @@
|
|||||||
throw_speed = 4
|
throw_speed = 4
|
||||||
throw_range = 5
|
throw_range = 5
|
||||||
|
|
||||||
|
|
||||||
/obj/item/weapon/cane
|
/obj/item/weapon/cane
|
||||||
name = "cane"
|
name = "cane"
|
||||||
desc = "A cane used by a true gentlemen. Or a clown."
|
desc = "A cane used by a true gentlemen. Or a clown."
|
||||||
@@ -87,6 +86,46 @@
|
|||||||
matter = list("metal" = 50)
|
matter = list("metal" = 50)
|
||||||
attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed")
|
attack_verb = list("bludgeoned", "whacked", "disciplined", "thrashed")
|
||||||
|
|
||||||
|
/obj/item/weapon/cane/concealed
|
||||||
|
var/concealed_blade
|
||||||
|
|
||||||
|
/obj/item/weapon/cane/concealed/New()
|
||||||
|
..()
|
||||||
|
concealed_blade = new/obj/item/weapon/butterfly/switchblade(src)
|
||||||
|
|
||||||
|
/obj/item/weapon/cane/concealed/attack_self(mob/user)
|
||||||
|
if(concealed_blade)
|
||||||
|
user.visible_message("<span class='warning'>[user] has unsheathed \a [concealed_blade] from \his [src]!</span>", "You unsheathe \the [concealed_blade] from \the [src].")
|
||||||
|
// Calling drop/put in hands to properly call item drop/pickup procs
|
||||||
|
playsound(user.loc, 'sound/weapons/flipblade.ogg', 50, 1)
|
||||||
|
user.drop_from_inventory(src)
|
||||||
|
user.put_in_hands(concealed_blade)
|
||||||
|
user.put_in_hands(src)
|
||||||
|
concealed_blade = null
|
||||||
|
update_icon()
|
||||||
|
else
|
||||||
|
..()
|
||||||
|
|
||||||
|
/obj/item/weapon/cane/concealed/attackby(var/obj/item/weapon/butterfly/W, var/mob/user)
|
||||||
|
if(!src.concealed_blade && istype(W))
|
||||||
|
user.visible_message("<span class='warning'>[user] has sheathed \a [W] into \his [src]!</span>", "You sheathe \the [W] into \the [src].")
|
||||||
|
user.drop_from_inventory(W)
|
||||||
|
W.loc = src
|
||||||
|
src.concealed_blade = W
|
||||||
|
update_icon()
|
||||||
|
else
|
||||||
|
..()
|
||||||
|
|
||||||
|
/obj/item/weapon/cane/concealed/update_icon()
|
||||||
|
if(concealed_blade)
|
||||||
|
name = initial(name)
|
||||||
|
icon_state = initial(icon_state)
|
||||||
|
item_state = initial(icon_state)
|
||||||
|
else
|
||||||
|
name = "cane shaft"
|
||||||
|
icon_state = "nullrod"
|
||||||
|
item_state = "foldcane"
|
||||||
|
|
||||||
/obj/item/weapon/disk
|
/obj/item/weapon/disk
|
||||||
name = "disk"
|
name = "disk"
|
||||||
icon = 'icons/obj/items.dmi'
|
icon = 'icons/obj/items.dmi'
|
||||||
|
|||||||
@@ -33,47 +33,58 @@
|
|||||||
var/uplink_uses = 10
|
var/uplink_uses = 10
|
||||||
var/list/datum/uplink_item/uplink_items = list(
|
var/list/datum/uplink_item/uplink_items = list(
|
||||||
"Highly Visible and Dangerous Weapons" = list(
|
"Highly Visible and Dangerous Weapons" = list(
|
||||||
new/datum/uplink_item(/obj/item/weapon/gun/projectile, 6, "Revolver", "RE"),
|
new/datum/uplink_item(/obj/item/ammo_magazine/mc9mm, 2, "Ammo-9mm", "R9"),
|
||||||
new/datum/uplink_item(/obj/item/ammo_magazine/a357, 2, "Ammo-357", "RA"),
|
new/datum/uplink_item(/obj/item/ammo_magazine/a357, 2, "Ammo-357", "RA"),
|
||||||
new/datum/uplink_item(/obj/item/weapon/gun/energy/crossbow, 5, "Energy Crossbow", "XB"),
|
new/datum/uplink_item(/obj/item/weapon/storage/box/emps, 3, "5 EMP Grenades", "EM"),
|
||||||
new/datum/uplink_item(/obj/item/weapon/melee/energy/sword, 4, "Energy Sword", "ES"),
|
new/datum/uplink_item(/obj/item/weapon/melee/energy/sword, 4, "Energy Sword", "ES"),
|
||||||
|
new/datum/uplink_item(/obj/item/weapon/gun/energy/crossbow, 5, "Energy Crossbow", "XB"),
|
||||||
|
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/g9mm, 5, "Silenced 9mm", "S9"),
|
||||||
new/datum/uplink_item(/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser, 6, "Exosuit Rigged Laser", "RL"),
|
new/datum/uplink_item(/obj/item/mecha_parts/mecha_equipment/weapon/energy/riggedlaser, 6, "Exosuit Rigged Laser", "RL"),
|
||||||
new/datum/uplink_item(/obj/item/weapon/storage/box/syndicate, 10, "Mercenary Bundle", "BU"),
|
new/datum/uplink_item(/obj/item/weapon/gun/projectile, 6, "Revolver", "RE"),
|
||||||
new/datum/uplink_item(/obj/item/weapon/storage/box/emps, 3, "5 EMP Grenades", "EM")
|
new/datum/uplink_item(/obj/item/weapon/storage/box/syndicate, 10, "Mercenary Bundle", "BU")
|
||||||
),
|
),
|
||||||
"Stealthy and Inconspicuous Weapons" = list(
|
"Stealthy and Inconspicuous Weapons" = list(
|
||||||
new/datum/uplink_item(/obj/item/weapon/pen/paralysis, 3, "Paralysis Pen", "PP"),
|
|
||||||
new/datum/uplink_item(/obj/item/weapon/soap/syndie, 1, "Subversive Soap", "SP"),
|
new/datum/uplink_item(/obj/item/weapon/soap/syndie, 1, "Subversive Soap", "SP"),
|
||||||
new/datum/uplink_item(/obj/item/weapon/cartridge/syndicate, 3, "Detomatix PDA Cartridge", "DC")
|
new/datum/uplink_item(/obj/item/weapon/cane/concealed, 2, "Concealed Cane Sword", "CC"),
|
||||||
|
new/datum/uplink_item(/obj/item/weapon/cartridge/syndicate, 3, "Detomatix PDA Cartridge", "DC"),
|
||||||
|
new/datum/uplink_item(/obj/item/weapon/pen/paralysis, 3, "Paralysis Pen", "PP"),
|
||||||
|
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/cigarette, 4, "Cigarette Kit", "BH")
|
||||||
),
|
),
|
||||||
"Stealth and Camouflage Items" = list(
|
"Stealth and Camouflage Items" = list(
|
||||||
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/chameleon, 3, "Chameleon Kit", "CB"),
|
|
||||||
new/datum/uplink_item(/obj/item/clothing/shoes/syndigaloshes, 2, "No-Slip Shoes", "SH"),
|
|
||||||
new/datum/uplink_item(/obj/item/weapon/card/id/syndicate, 2, "Agent ID card", "AC"),
|
new/datum/uplink_item(/obj/item/weapon/card/id/syndicate, 2, "Agent ID card", "AC"),
|
||||||
|
new/datum/uplink_item(/obj/item/clothing/shoes/syndigaloshes, 2, "No-Slip Shoes", "SH"),
|
||||||
|
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/spy, 2, "Bug Kit", "SK"),
|
||||||
|
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/chameleon, 3, "Chameleon Kit", "CB"),
|
||||||
|
new/datum/uplink_item(/obj/item/device/chameleon, 4, "Chameleon-Projector", "CP"),
|
||||||
new/datum/uplink_item(/obj/item/clothing/mask/gas/voice, 4, "Voice Changer", "VC"),
|
new/datum/uplink_item(/obj/item/clothing/mask/gas/voice, 4, "Voice Changer", "VC"),
|
||||||
new/datum/uplink_item(/obj/item/device/chameleon, 4, "Chameleon-Projector", "CP")
|
new/datum/uplink_item(/obj/item/weapon/disk/file/cameras/syndicate, 6, "Camera Network Access - Floppy", "SF")
|
||||||
),
|
),
|
||||||
"Devices and Tools" = list(
|
"Devices and Tools" = list(
|
||||||
new/datum/uplink_item(/obj/item/weapon/card/emag, 3, "Cryptographic Sequencer", "EC"),
|
|
||||||
new/datum/uplink_item(/obj/item/weapon/storage/toolbox/syndicate, 1, "Fully Loaded Toolbox", "ST"),
|
new/datum/uplink_item(/obj/item/weapon/storage/toolbox/syndicate, 1, "Fully Loaded Toolbox", "ST"),
|
||||||
|
new/datum/uplink_item(/obj/item/weapon/plastique, 2, "C-4 (Destroys walls)", "C4"),
|
||||||
|
new/datum/uplink_item(/obj/item/device/encryptionkey/binary, 3, "Binary Translator Key", "BT"),
|
||||||
|
new/datum/uplink_item(/obj/item/weapon/card/emag, 3, "Cryptographic Sequencer", "EC"),
|
||||||
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/clerical, 3, "Morphic Clerical Kit", "CK"),
|
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/clerical, 3, "Morphic Clerical Kit", "CK"),
|
||||||
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/space, 3, "Space Suit", "SS"),
|
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/space, 3, "Space Suit", "SS"),
|
||||||
new/datum/uplink_item(/obj/item/clothing/glasses/thermal/syndi, 3, "Thermal Imaging Glasses", "TM"),
|
new/datum/uplink_item(/obj/item/clothing/glasses/thermal/syndi, 3, "Thermal Imaging Glasses", "TM"),
|
||||||
new/datum/uplink_item(/obj/item/device/encryptionkey/binary, 3, "Binary Translator Key", "BT"),
|
|
||||||
new/datum/uplink_item(/obj/item/weapon/aiModule/syndicate, 7, "Hacked AI Upload Module", "AI"),
|
new/datum/uplink_item(/obj/item/weapon/aiModule/syndicate, 7, "Hacked AI Upload Module", "AI"),
|
||||||
new/datum/uplink_item(/obj/item/weapon/plastique, 2, "C-4 (Destroys walls)", "C4"),
|
|
||||||
new/datum/uplink_item(/obj/item/device/powersink, 5, "Powersink (DANGER!)", "PS",),
|
new/datum/uplink_item(/obj/item/device/powersink, 5, "Powersink (DANGER!)", "PS",),
|
||||||
new/datum/uplink_item(/obj/item/device/radio/beacon/syndicate, 7, "Singularity Beacon (DANGER!)", "SB"),
|
new/datum/uplink_item(/obj/item/device/radio/beacon/syndicate, 7, "Singularity Beacon (DANGER!)", "SB"),
|
||||||
new/datum/uplink_item(/obj/item/weapon/circuitboard/teleporter, 20, "Teleporter Circuit Board", "TP")
|
new/datum/uplink_item(/obj/item/weapon/circuitboard/teleporter, 20, "Teleporter Circuit Board", "TP")
|
||||||
),
|
),
|
||||||
"Implants" = list(
|
"Implants" = list(
|
||||||
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_freedom, 3, "Freedom Implant", "FI"),
|
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_freedom, 3, "Freedom Implant", "FI"),
|
||||||
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_uplink, 10, "Uplink Implant (Contains 5 Telecrystals)", "UI"),
|
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_compress, 4, "Compressed Matter Implant", "CI"),
|
||||||
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_explosive, 6, "Explosive Implant (DANGER!)", "EI"),
|
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_explosive, 6, "Explosive Implant (DANGER!)", "EI"),
|
||||||
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_compress, 4, "Compressed Matter Implant", "CI")
|
new/datum/uplink_item(/obj/item/weapon/storage/box/syndie_kit/imp_uplink, 10, "Uplink Implant (Contains 5 Telecrystals)", "UI")
|
||||||
|
),
|
||||||
|
"Health Aids" = list(
|
||||||
|
new/datum/uplink_item(/obj/item/weapon/storage/box/donkpockets, 1, "Box of Donk-Pockets", "DP"),
|
||||||
|
new/datum/uplink_item(/obj/item/weapon/storage/firstaid/combat, 5, "Combat medical kit", "CM")
|
||||||
),
|
),
|
||||||
"(Pointless) Badassery" = list(
|
"(Pointless) Badassery" = list(
|
||||||
new/datum/uplink_item(/obj/item/toy/syndicateballoon, 10, "For showing that You Are The BOSS (Useless Balloon)", "BS")
|
new/datum/uplink_item(/obj/item/toy/syndicateballoon, 10, "For showing that You Are The BOSS (Useless Balloon)", "BS"),
|
||||||
|
new/datum/uplink_item(/obj/item/toy/nanotrasenballoon, 10, "For showing that you love NT SOO much (Useless Balloon)", "NT")
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -123,6 +123,12 @@
|
|||||||
desc = "Monitors the prison."
|
desc = "Monitors the prison."
|
||||||
networks = list("Prison")
|
networks = list("Prison")
|
||||||
|
|
||||||
|
/datum/file/camnet_key/syndicate
|
||||||
|
name = "Camera Network Key"
|
||||||
|
title = "%!#BUFFER OVERFLOW"
|
||||||
|
desc = "Connects to security cameras."
|
||||||
|
networks = list("SS13")
|
||||||
|
hidden_file = 1
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -174,7 +180,7 @@
|
|||||||
|
|
||||||
/datum/file/program/security
|
/datum/file/program/security
|
||||||
name = "camera monitor"
|
name = "camera monitor"
|
||||||
desc = "Connets to the Nanotrasen Camera Network"
|
desc = "Connects to the Nanotrasen Camera Network"
|
||||||
image = 'icons/ntos/camera.png'
|
image = 'icons/ntos/camera.png'
|
||||||
active_state = "camera-static"
|
active_state = "camera-static"
|
||||||
|
|
||||||
@@ -268,15 +274,19 @@
|
|||||||
reset_current()
|
reset_current()
|
||||||
usr.reset_view(null)
|
usr.reset_view(null)
|
||||||
key = input(usr,"Select a camera network key:", "Key Select", null) as null|anything in computer.list_files(/datum/file/camnet_key)
|
key = input(usr,"Select a camera network key:", "Key Select", null) as null|anything in computer.list_files(/datum/file/camnet_key)
|
||||||
camera_list = null
|
select_key(key)
|
||||||
update_icon()
|
|
||||||
computer.update_icon()
|
|
||||||
if(key)
|
if(key)
|
||||||
interact()
|
interact()
|
||||||
else
|
else
|
||||||
usr << "The screen turns to static."
|
usr << "The screen turns to static."
|
||||||
return
|
return
|
||||||
|
|
||||||
|
/datum/file/program/security/proc/select_key(var/selected_key)
|
||||||
|
key = selected_key
|
||||||
|
camera_list = null
|
||||||
|
update_icon()
|
||||||
|
computer.update_icon()
|
||||||
|
|
||||||
/datum/file/program/security/proc/set_current(var/obj/machinery/camera/C)
|
/datum/file/program/security/proc/set_current(var/obj/machinery/camera/C)
|
||||||
if(current == C)
|
if(current == C)
|
||||||
return
|
return
|
||||||
@@ -300,3 +310,35 @@
|
|||||||
// Atlantis: Required for camnetkeys to work.
|
// Atlantis: Required for camnetkeys to work.
|
||||||
/datum/file/program/security/hidden
|
/datum/file/program/security/hidden
|
||||||
hidden_file = 1
|
hidden_file = 1
|
||||||
|
|
||||||
|
/*
|
||||||
|
Camera monitoring program
|
||||||
|
|
||||||
|
Works much as the parent program, except:
|
||||||
|
* It requires a camera to be found using the proximity network card.
|
||||||
|
* It begins with all cam-access.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/datum/file/program/security/syndicate
|
||||||
|
name = "camer# moni!%r"
|
||||||
|
desc = "Cons the Nanotrash Camera Network"
|
||||||
|
var/special_key = new/datum/file/camnet_key/syndicate
|
||||||
|
var/camera_conn = null
|
||||||
|
|
||||||
|
interact()
|
||||||
|
if(!interactable())
|
||||||
|
return
|
||||||
|
|
||||||
|
if(!computer.net)
|
||||||
|
computer.Crash(MISSING_PERIPHERAL)
|
||||||
|
return
|
||||||
|
|
||||||
|
camera_conn = computer.net.connect_to(/obj/machinery/camera,camera_conn)
|
||||||
|
|
||||||
|
if(!camera_conn)
|
||||||
|
computer.Crash(NETWORK_FAILURE)
|
||||||
|
return
|
||||||
|
|
||||||
|
// On interact, override camera key selection
|
||||||
|
select_key(special_key)
|
||||||
|
..()
|
||||||
|
|||||||
@@ -169,6 +169,9 @@
|
|||||||
if(typekey == null)
|
if(typekey == null)
|
||||||
typekey = /obj/machinery
|
typekey = /obj/machinery
|
||||||
var/list/machines = list()
|
var/list/machines = list()
|
||||||
|
for(var/obj/O in T)
|
||||||
|
if(istype(O,typekey))
|
||||||
|
machines += O
|
||||||
for(var/d in cardinal)
|
for(var/d in cardinal)
|
||||||
var/turf/T2 = get_step(T,d)
|
var/turf/T2 = get_step(T,d)
|
||||||
for(var/obj/O in T2)
|
for(var/obj/O in T2)
|
||||||
|
|||||||
@@ -28,6 +28,13 @@
|
|||||||
icon_state = "datadisk_arcade"
|
icon_state = "datadisk_arcade"
|
||||||
spawn_files = list(/datum/file/program/security)
|
spawn_files = list(/datum/file/program/security)
|
||||||
|
|
||||||
|
/obj/item/weapon/disk/file/cameras/syndicate
|
||||||
|
name = "Camera Viewer"
|
||||||
|
desc = "A program install disk. A crude skull has been drawn on it and there is a list of items:\nFloppy Drive\nCamera Card\nNetwork Card: Adjacent\nPosition laptop nearby camera, enjoy."
|
||||||
|
icon = 'icons/obj/stock_parts.dmi'
|
||||||
|
icon_state = "datadisk_arcade"
|
||||||
|
spawn_files = list(/datum/file/program/security/syndicate)
|
||||||
|
|
||||||
/obj/item/weapon/disk/file/card
|
/obj/item/weapon/disk/file/card
|
||||||
name = "ID Card Modifier"
|
name = "ID Card Modifier"
|
||||||
desc = "A program install disk."
|
desc = "A program install disk."
|
||||||
|
|||||||
@@ -115,13 +115,10 @@
|
|||||||
listening = !listening && !(wires.IsIndexCut(WIRE_RECEIVE) || wires.IsIndexCut(WIRE_SIGNAL))
|
listening = !listening && !(wires.IsIndexCut(WIRE_RECEIVE) || wires.IsIndexCut(WIRE_SIGNAL))
|
||||||
|
|
||||||
/obj/item/device/radio/Topic(href, href_list)
|
/obj/item/device/radio/Topic(href, href_list)
|
||||||
//..()
|
if(..() || !on)
|
||||||
if (usr.stat || !on)
|
|
||||||
return
|
|
||||||
|
|
||||||
if (!(issilicon(usr) || (usr.contents.Find(src) || ( in_range(src, usr) && istype(loc, /turf) ))))
|
|
||||||
usr << browse(null, "window=radio")
|
usr << browse(null, "window=radio")
|
||||||
return
|
return
|
||||||
|
|
||||||
usr.set_machine(src)
|
usr.set_machine(src)
|
||||||
if (href_list["track"])
|
if (href_list["track"])
|
||||||
var/mob/target = locate(href_list["track"])
|
var/mob/target = locate(href_list["track"])
|
||||||
@@ -152,17 +149,7 @@
|
|||||||
else
|
else
|
||||||
channels[chan_name] |= FREQ_LISTENING
|
channels[chan_name] |= FREQ_LISTENING
|
||||||
|
|
||||||
if (!( master ))
|
interact(usr)
|
||||||
if (istype(loc, /mob))
|
|
||||||
interact(loc)
|
|
||||||
else
|
|
||||||
updateDialog()
|
|
||||||
else
|
|
||||||
if (istype(master.loc, /mob))
|
|
||||||
interact(master.loc)
|
|
||||||
else
|
|
||||||
updateDialog()
|
|
||||||
add_fingerprint(usr)
|
|
||||||
|
|
||||||
/obj/item/device/radio/proc/autosay(var/message, var/from, var/channel) //BS12 EDIT
|
/obj/item/device/radio/proc/autosay(var/message, var/from, var/channel) //BS12 EDIT
|
||||||
var/datum/radio_frequency/connection = null
|
var/datum/radio_frequency/connection = null
|
||||||
|
|||||||
154
code/game/objects/items/devices/spy_bug.dm
Normal file
154
code/game/objects/items/devices/spy_bug.dm
Normal file
@@ -0,0 +1,154 @@
|
|||||||
|
/obj/item/device/spy_bug
|
||||||
|
name = "bug"
|
||||||
|
desc = "" // Nothing to see here
|
||||||
|
icon = 'icons/obj/weapons.dmi'
|
||||||
|
icon_state = "eshield0"
|
||||||
|
item_state = "nothing"
|
||||||
|
layer = TURF_LAYER+0.2
|
||||||
|
|
||||||
|
flags = CONDUCT
|
||||||
|
force = 5.0
|
||||||
|
w_class = 1.0
|
||||||
|
throwforce = 5.0
|
||||||
|
throw_range = 15
|
||||||
|
throw_speed = 3
|
||||||
|
|
||||||
|
origin_tech = "programming=1;engineering=1;syndicate=3"
|
||||||
|
|
||||||
|
var/obj/item/device/radio/spy/radio
|
||||||
|
var/obj/machinery/camera/spy/camera
|
||||||
|
|
||||||
|
/obj/item/device/spy_bug/New()
|
||||||
|
..()
|
||||||
|
radio = new(src)
|
||||||
|
camera = new(src)
|
||||||
|
|
||||||
|
/obj/item/device/spy_bug/examine(mob/user)
|
||||||
|
. = ..(user, 0)
|
||||||
|
if(.)
|
||||||
|
user << "It's a tiny camera, microphone, and transmission device in a happy union."
|
||||||
|
user << "Needs to be both configured and brought in contact with monitor device to be fully functional."
|
||||||
|
|
||||||
|
/obj/item/device/spy_bug/attack_self(mob/user)
|
||||||
|
radio.attack_self(user)
|
||||||
|
|
||||||
|
/obj/item/device/spy_bug/attackby(obj/W as obj, mob/living/user as mob)
|
||||||
|
if(istype(W, /obj/item/device/spy_monitor))
|
||||||
|
var/obj/item/device/spy_monitor/SM = W
|
||||||
|
SM.pair(src, user)
|
||||||
|
else
|
||||||
|
..()
|
||||||
|
|
||||||
|
/obj/item/device/spy_bug/hear_talk(mob/M, var/msg, verb, datum/language/speaking)
|
||||||
|
radio.hear_talk(M, msg, speaking)
|
||||||
|
|
||||||
|
|
||||||
|
/obj/item/device/spy_monitor
|
||||||
|
name = "\improper PDA"
|
||||||
|
desc = "A portable microcomputer by Thinktronic Systems, LTD. Functionality determined by a preprogrammed ROM cartridge."
|
||||||
|
icon = 'icons/obj/pda.dmi'
|
||||||
|
icon_state = "pda"
|
||||||
|
item_state = "electronic"
|
||||||
|
|
||||||
|
w_class = 2.0
|
||||||
|
|
||||||
|
origin_tech = "programming=1;engineering=1;syndicate=3"
|
||||||
|
|
||||||
|
var/operating = 0
|
||||||
|
var/obj/item/device/radio/spy/radio
|
||||||
|
var/obj/machinery/camera/spy/selected_camera
|
||||||
|
var/list/obj/machinery/camera/spy/cameras = new()
|
||||||
|
|
||||||
|
/obj/item/device/spy_monitor/New()
|
||||||
|
radio = new(src)
|
||||||
|
|
||||||
|
/obj/item/device/spy_monitor/examine(mob/user)
|
||||||
|
. = ..(user, 1)
|
||||||
|
if(.)
|
||||||
|
user << "The time '12:00' is blinking in the corner of the screen and \the [src] looks very cheaply made."
|
||||||
|
|
||||||
|
/obj/item/device/spy_monitor/attack_self(mob/user)
|
||||||
|
if(operating)
|
||||||
|
return
|
||||||
|
|
||||||
|
radio.attack_self(user)
|
||||||
|
view_cameras(user)
|
||||||
|
|
||||||
|
/obj/item/device/spy_monitor/attackby(obj/W as obj, mob/living/user as mob)
|
||||||
|
if(istype(W, /obj/item/device/spy_bug))
|
||||||
|
pair(W, user)
|
||||||
|
else
|
||||||
|
return ..()
|
||||||
|
|
||||||
|
/obj/item/device/spy_monitor/proc/pair(var/obj/item/device/spy_bug/SB, var/mob/living/user)
|
||||||
|
if(SB.camera in cameras)
|
||||||
|
user << "<span class='notice'>\The [SB] has been unpaired from \the [src].</span>"
|
||||||
|
cameras -= SB.camera
|
||||||
|
else
|
||||||
|
user << "<span class='notice'>\The [SB] has been paired with \the [src].</span>"
|
||||||
|
cameras += SB.camera
|
||||||
|
|
||||||
|
/obj/item/device/spy_monitor/proc/view_cameras(mob/user)
|
||||||
|
if(!can_use_cam(user))
|
||||||
|
return
|
||||||
|
|
||||||
|
selected_camera = cameras[1]
|
||||||
|
view_camera(user)
|
||||||
|
|
||||||
|
operating = 1
|
||||||
|
while(selected_camera && Adjacent(user))
|
||||||
|
selected_camera = input("Select camera bug to view.") as null|anything in cameras
|
||||||
|
selected_camera = null
|
||||||
|
operating = 0
|
||||||
|
|
||||||
|
/obj/item/device/spy_monitor/proc/view_camera(mob/user)
|
||||||
|
spawn(0)
|
||||||
|
while(selected_camera && Adjacent(user))
|
||||||
|
var/turf/T = get_turf(selected_camera)
|
||||||
|
if(!T || !is_on_same_plane_or_station(T.z, user.z) || !selected_camera.can_use())
|
||||||
|
user.unset_machine()
|
||||||
|
user.reset_view(null)
|
||||||
|
user << "<span class='notice'>[selected_camera] unavailable.</span>"
|
||||||
|
sleep(90)
|
||||||
|
else
|
||||||
|
user.set_machine(selected_camera)
|
||||||
|
user.reset_view(selected_camera)
|
||||||
|
sleep(10)
|
||||||
|
user.unset_machine()
|
||||||
|
user.reset_view(null)
|
||||||
|
|
||||||
|
/obj/item/device/spy_monitor/proc/can_use_cam(mob/user)
|
||||||
|
if(operating)
|
||||||
|
return
|
||||||
|
|
||||||
|
if(!cameras.len)
|
||||||
|
user << "<span class='warning'>No paired cameras detected!</span>"
|
||||||
|
user << "<span class='warning'>Bring a bug in contact with this device to pair the camera.</span>"
|
||||||
|
return
|
||||||
|
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/device/spy_monitor/hear_talk(mob/M, var/msg, verb, datum/language/speaking)
|
||||||
|
return radio.hear_talk(M, msg, speaking)
|
||||||
|
|
||||||
|
|
||||||
|
/obj/machinery/camera/spy
|
||||||
|
// These cheap toys are accessible from the mercenary camera console as well
|
||||||
|
network = list("NUKE")
|
||||||
|
|
||||||
|
/obj/machinery/camera/spy/New()
|
||||||
|
..()
|
||||||
|
name = "DV-136ZB #[rand(1000,9999)]"
|
||||||
|
c_tag = name
|
||||||
|
cameranet.removeCamera(src) // Sorry, no AI spying.
|
||||||
|
|
||||||
|
/obj/machinery/camera/spy/check_eye(var/mob/user as mob)
|
||||||
|
return 1
|
||||||
|
|
||||||
|
/obj/item/device/radio/spy
|
||||||
|
listening = 0
|
||||||
|
frequency = 1473
|
||||||
|
broadcasting = 0
|
||||||
|
canhear_range = 1
|
||||||
|
name = "spy device"
|
||||||
|
icon_state = "syn_cypherkey"
|
||||||
@@ -99,6 +99,18 @@
|
|||||||
item_state = "syndballoon"
|
item_state = "syndballoon"
|
||||||
w_class = 4.0
|
w_class = 4.0
|
||||||
|
|
||||||
|
/obj/item/toy/nanotrasenballoon
|
||||||
|
name = "criminal balloon"
|
||||||
|
desc = "Across the balloon the following is printed: \"Man, I love NT soooo much. I use only NanoTrasen products. You have NO idea.\""
|
||||||
|
throwforce = 0
|
||||||
|
throw_speed = 4
|
||||||
|
throw_range = 20
|
||||||
|
force = 0
|
||||||
|
icon = 'icons/obj/weapons.dmi'
|
||||||
|
icon_state = "ntballoon"
|
||||||
|
item_state = "ntballoon"
|
||||||
|
w_class = 4.0
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Fake telebeacon
|
* Fake telebeacon
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -324,6 +324,20 @@
|
|||||||
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
|
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
|
||||||
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
|
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket(src)
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/box/sinpockets
|
||||||
|
name = "box of sin-pockets"
|
||||||
|
desc = "<B>Instructions:</B> <I>Crush bottom of package to initiate chemical heating. Wait for 20 seconds before consumption. Product will cool if not eaten within seven minutes.</I>"
|
||||||
|
icon_state = "donk_kit"
|
||||||
|
|
||||||
|
New()
|
||||||
|
..()
|
||||||
|
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket(src)
|
||||||
|
|
||||||
/obj/item/weapon/storage/box/monkeycubes
|
/obj/item/weapon/storage/box/monkeycubes
|
||||||
name = "monkey cube box"
|
name = "monkey cube box"
|
||||||
desc = "Drymate brand monkey cubes. Just add water!"
|
desc = "Drymate brand monkey cubes. Just add water!"
|
||||||
|
|||||||
@@ -109,6 +109,25 @@
|
|||||||
new /obj/item/stack/medical/advanced/ointment(src)
|
new /obj/item/stack/medical/advanced/ointment(src)
|
||||||
new /obj/item/stack/medical/splint(src)
|
new /obj/item/stack/medical/splint(src)
|
||||||
return
|
return
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/firstaid/combat
|
||||||
|
name = "combat medical kit"
|
||||||
|
desc = "Contains advanced medical treatments."
|
||||||
|
icon_state = "bezerk"
|
||||||
|
item_state = "firstaid-advanced"
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/firstaid/combat/New()
|
||||||
|
..()
|
||||||
|
if (empty) return
|
||||||
|
new /obj/item/weapon/storage/pill_bottle/bicaridine(src)
|
||||||
|
new /obj/item/weapon/storage/pill_bottle/dermaline(src)
|
||||||
|
new /obj/item/weapon/storage/pill_bottle/dexalin_plus(src)
|
||||||
|
new /obj/item/weapon/storage/pill_bottle/dylovene(src)
|
||||||
|
new /obj/item/weapon/storage/pill_bottle/tramadol(src)
|
||||||
|
new /obj/item/weapon/storage/pill_bottle/spaceacillin(src)
|
||||||
|
new /obj/item/stack/medical/splint(src)
|
||||||
|
return
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Pill Bottles
|
* Pill Bottles
|
||||||
*/
|
*/
|
||||||
@@ -125,20 +144,6 @@
|
|||||||
storage_slots = 14
|
storage_slots = 14
|
||||||
use_sound = null
|
use_sound = null
|
||||||
|
|
||||||
/obj/item/weapon/storage/pill_bottle/kelotane
|
|
||||||
name = "bottle of kelotane pills"
|
|
||||||
desc = "Contains pills used to treat burns."
|
|
||||||
|
|
||||||
New()
|
|
||||||
..()
|
|
||||||
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
|
||||||
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
|
||||||
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
|
||||||
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
|
||||||
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
|
||||||
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
|
||||||
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
|
||||||
|
|
||||||
/obj/item/weapon/storage/pill_bottle/antitox
|
/obj/item/weapon/storage/pill_bottle/antitox
|
||||||
name = "bottle of Dylovene pills"
|
name = "bottle of Dylovene pills"
|
||||||
desc = "Contains pills used to counter toxins."
|
desc = "Contains pills used to counter toxins."
|
||||||
@@ -153,6 +158,62 @@
|
|||||||
new /obj/item/weapon/reagent_containers/pill/antitox( src )
|
new /obj/item/weapon/reagent_containers/pill/antitox( src )
|
||||||
new /obj/item/weapon/reagent_containers/pill/antitox( src )
|
new /obj/item/weapon/reagent_containers/pill/antitox( src )
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/pill_bottle/bicaridine
|
||||||
|
name = "bottle of Bicaridine pills"
|
||||||
|
desc = "Contains pills used to stabilize the severely injured."
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/pill_bottle/bicaridine/New()
|
||||||
|
..()
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/bicaridine(src)
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/pill_bottle/dexalin_plus
|
||||||
|
name = "bottle of Dexalin Plus pills"
|
||||||
|
desc = "Contains pills used to treat extreme cases of oxygen deprivation."
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/pill_bottle/dexalin_plus/New()
|
||||||
|
..()
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dexalin_plus(src)
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/pill_bottle/dermaline
|
||||||
|
name = "bottle of Dermaline pills"
|
||||||
|
desc = "Contains pills used to treat burn wounds."
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/pill_bottle/dermaline/New()
|
||||||
|
..()
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dermaline(src)
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/pill_bottle/dylovene
|
||||||
|
name = "bottle of Dylovene pills"
|
||||||
|
desc = "Contains pills used to treat toxic substances in the blood."
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/pill_bottle/dylovene/New()
|
||||||
|
..()
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/dylovene(src)
|
||||||
|
|
||||||
/obj/item/weapon/storage/pill_bottle/inaprovaline
|
/obj/item/weapon/storage/pill_bottle/inaprovaline
|
||||||
name = "bottle of Inaprovaline pills"
|
name = "bottle of Inaprovaline pills"
|
||||||
desc = "Contains pills used to stabilize patients."
|
desc = "Contains pills used to stabilize patients."
|
||||||
@@ -167,8 +228,36 @@
|
|||||||
new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
|
new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
|
||||||
new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
|
new /obj/item/weapon/reagent_containers/pill/inaprovaline( src )
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/pill_bottle/kelotane
|
||||||
|
name = "bottle of kelotane pills"
|
||||||
|
desc = "Contains pills used to treat burns."
|
||||||
|
|
||||||
|
New()
|
||||||
|
..()
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/kelotane( src )
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/pill_bottle/spaceacillin
|
||||||
|
name = "bottle of Spaceacillin pills"
|
||||||
|
desc = "A theta-lactam antibiotic. Effective against many diseases likely to be encountered in space."
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/pill_bottle/spaceacillin/New()
|
||||||
|
..()
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||||
|
new /obj/item/weapon/reagent_containers/pill/spaceacillin(src)
|
||||||
|
|
||||||
/obj/item/weapon/storage/pill_bottle/tramadol
|
/obj/item/weapon/storage/pill_bottle/tramadol
|
||||||
name = "bottle of Tramadol Pills"
|
name = "bottle of Tramadol pills"
|
||||||
desc = "Contains pills used to relieve pain."
|
desc = "Contains pills used to relieve pain."
|
||||||
|
|
||||||
New()
|
New()
|
||||||
|
|||||||
@@ -149,3 +149,71 @@
|
|||||||
..()
|
..()
|
||||||
new /obj/item/weapon/stamp/chameleon(src)
|
new /obj/item/weapon/stamp/chameleon(src)
|
||||||
new /obj/item/weapon/pen/chameleon(src)
|
new /obj/item/weapon/pen/chameleon(src)
|
||||||
|
new /obj/item/device/destTagger(src)
|
||||||
|
new /obj/item/weapon/packageWrap(src)
|
||||||
|
new /obj/item/weapon/hand_labeler(src)
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/box/syndie_kit/spy
|
||||||
|
name = "spy kit"
|
||||||
|
desc = "For when you want to conduct voyeurism from afar."
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/box/syndie_kit/spy/New()
|
||||||
|
..()
|
||||||
|
new /obj/item/device/spy_bug(src)
|
||||||
|
new /obj/item/device/spy_bug(src)
|
||||||
|
new /obj/item/device/spy_bug(src)
|
||||||
|
new /obj/item/device/spy_bug(src)
|
||||||
|
new /obj/item/device/spy_bug(src)
|
||||||
|
new /obj/item/device/spy_bug(src)
|
||||||
|
new /obj/item/device/spy_monitor(src)
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/box/syndie_kit/g9mm
|
||||||
|
name = "\improper Smooth operator"
|
||||||
|
desc = "9mm with silencer kit."
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/box/syndie_kit/g9mm/New()
|
||||||
|
..()
|
||||||
|
new /obj/item/weapon/gun/projectile/pistol(src)
|
||||||
|
new /obj/item/weapon/silencer(src)
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/box/syndie_kit/cigarette
|
||||||
|
name = "\improper Tricky smokes"
|
||||||
|
desc = "Comes with the following brands of cigarettes, in this order: 2xFlash, 2xSmoke, 1xMindBreaker, 1xTricordrazine. Avoid mixing them up."
|
||||||
|
|
||||||
|
/obj/item/weapon/storage/box/syndie_kit/cigarette/New()
|
||||||
|
..()
|
||||||
|
var/obj/item/weapon/storage/fancy/cigarettes/pack
|
||||||
|
pack = new /obj/item/weapon/storage/fancy/cigarettes(src)
|
||||||
|
fill_cigarre_package(pack, list("aluminum" = 5, "potassium" = 5, "sulfur" = 5))
|
||||||
|
pack.desc += " 'F' has been scribbled on it."
|
||||||
|
|
||||||
|
pack = new /obj/item/weapon/storage/fancy/cigarettes(src)
|
||||||
|
fill_cigarre_package(pack, list("aluminum" = 5, "potassium" = 5, "sulfur" = 5))
|
||||||
|
pack.desc += " 'F' has been scribbled on it."
|
||||||
|
|
||||||
|
pack = new /obj/item/weapon/storage/fancy/cigarettes(src)
|
||||||
|
fill_cigarre_package(pack, list("potassium" = 5, "sugar" = 5, "phosphorus" = 5))
|
||||||
|
pack.desc += " 'S' has been scribbled on it."
|
||||||
|
|
||||||
|
pack = new /obj/item/weapon/storage/fancy/cigarettes(src)
|
||||||
|
fill_cigarre_package(pack, list("potassium" = 5, "sugar" = 5, "phosphorus" = 5))
|
||||||
|
pack.desc += " 'S' has been scribbled on it."
|
||||||
|
|
||||||
|
pack = new /obj/item/weapon/storage/fancy/cigarettes(src)
|
||||||
|
// Dylovene. Going with 1.5 rather than 1.6666666...
|
||||||
|
fill_cigarre_package(pack, list("potassium" = 1.5, "nitrogen" = 1.5, "silicon" = 1.5))
|
||||||
|
// Mindbreaker
|
||||||
|
fill_cigarre_package(pack, list("silicon" = 4.5, "hydrogen" = 4.5))
|
||||||
|
|
||||||
|
pack.desc += " 'MB' has been scribbled on it."
|
||||||
|
|
||||||
|
pack = new /obj/item/weapon/storage/fancy/cigarettes(src)
|
||||||
|
pack.reagents.add_reagent("tricordrazine", 15 * pack.storage_slots)
|
||||||
|
pack.desc += " 'T' has been scribbled on it."
|
||||||
|
|
||||||
|
new /obj/item/weapon/flame/lighter/zippo(src)
|
||||||
|
|
||||||
|
/proc/fill_cigarre_package(var/obj/item/weapon/storage/fancy/cigarettes/C, var/list/reagents)
|
||||||
|
for(var/reagent in reagents)
|
||||||
|
C.reagents.add_reagent(reagent, reagents[reagent] * C.storage_slots)
|
||||||
|
|
||||||
|
|||||||
@@ -166,11 +166,7 @@ I said no!
|
|||||||
)
|
)
|
||||||
result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL
|
result = /obj/item/weapon/reagent_containers/food/snacks/donkpocket //SPECIAL
|
||||||
proc/warm_up(var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked)
|
proc/warm_up(var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked)
|
||||||
being_cooked.warm = 1
|
being_cooked.heat()
|
||||||
being_cooked.reagents.add_reagent("tricordrazine", 5)
|
|
||||||
being_cooked.bitesize = 6
|
|
||||||
being_cooked.name = "Warm " + being_cooked.name
|
|
||||||
being_cooked.cooltime()
|
|
||||||
make_food(var/obj/container as obj)
|
make_food(var/obj/container as obj)
|
||||||
var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = ..(container)
|
var/obj/item/weapon/reagent_containers/food/snacks/donkpocket/being_cooked = ..(container)
|
||||||
warm_up(being_cooked)
|
warm_up(being_cooked)
|
||||||
|
|||||||
@@ -792,7 +792,7 @@ note dizziness decrements automatically in the mob's Life() proc.
|
|||||||
/mob/Stat()
|
/mob/Stat()
|
||||||
..()
|
..()
|
||||||
|
|
||||||
if(statpanel("Status")) //not looking at that panel
|
if(statpanel("MC")) //not looking at that panel
|
||||||
|
|
||||||
if(client && client.holder)
|
if(client && client.holder)
|
||||||
stat(null,"Location:\t([x], [y], [z])")
|
stat(null,"Location:\t([x], [y], [z])")
|
||||||
@@ -808,6 +808,7 @@ note dizziness decrements automatically in the mob's Life() proc.
|
|||||||
stat(null,"Obj-[master_controller.objects_cost]\t#[processing_objects.len]")
|
stat(null,"Obj-[master_controller.objects_cost]\t#[processing_objects.len]")
|
||||||
stat(null,"Net-[master_controller.networks_cost]\tPnet-[master_controller.powernets_cost]")
|
stat(null,"Net-[master_controller.networks_cost]\tPnet-[master_controller.powernets_cost]")
|
||||||
stat(null,"NanoUI-[master_controller.nano_cost]\t#[nanomanager.processing_uis.len]")
|
stat(null,"NanoUI-[master_controller.nano_cost]\t#[nanomanager.processing_uis.len]")
|
||||||
|
stat(null,"Events-[master_controller.events_cost]\t#[event_manager.active_events.len]")
|
||||||
stat(null,"Tick-[master_controller.ticker_cost]\tALL-[master_controller.total_cost]")
|
stat(null,"Tick-[master_controller.ticker_cost]\tALL-[master_controller.total_cost]")
|
||||||
else
|
else
|
||||||
stat(null,"MasterController-ERROR")
|
stat(null,"MasterController-ERROR")
|
||||||
|
|||||||
@@ -137,3 +137,33 @@
|
|||||||
|
|
||||||
/obj/item/weapon/pen/chameleon/get_signature(var/mob/user)
|
/obj/item/weapon/pen/chameleon/get_signature(var/mob/user)
|
||||||
return signature ? signature : "Anonymous"
|
return signature ? signature : "Anonymous"
|
||||||
|
|
||||||
|
/obj/item/weapon/pen/chameleon/verb/set_colour()
|
||||||
|
set name = "Change Pen Colour"
|
||||||
|
set category = "Object"
|
||||||
|
|
||||||
|
var/list/possible_colours = list ("Yellow", "Green", "Pink", "Blue", "Orange", "Cyan", "Red", "Invisible", "Black")
|
||||||
|
var/selected_type = input("Pick new colour.", "Pen Colour", null, null) as null|anything in possible_colours
|
||||||
|
|
||||||
|
if(selected_type)
|
||||||
|
switch(selected_type)
|
||||||
|
if("Yellow")
|
||||||
|
colour = COLOR_YELLOW
|
||||||
|
if("Green")
|
||||||
|
colour = COLOR_GREEN
|
||||||
|
if("Pink")
|
||||||
|
colour = COLOR_PINK
|
||||||
|
if("Blue")
|
||||||
|
colour = COLOR_BLUE
|
||||||
|
if("Orange")
|
||||||
|
colour = COLOR_ORANGE
|
||||||
|
if("Cyan")
|
||||||
|
colour = COLOR_CYAN
|
||||||
|
if("Red")
|
||||||
|
colour = COLOR_RED
|
||||||
|
if("Invisible")
|
||||||
|
colour = COLOR_WHITE
|
||||||
|
else
|
||||||
|
colour = COLOR_BLACK
|
||||||
|
usr << "<span class='info'>You select the [lowertext(selected_type)] ink container.</span>"
|
||||||
|
|
||||||
|
|||||||
@@ -66,8 +66,10 @@
|
|||||||
max_ammo = 10
|
max_ammo = 10
|
||||||
multiple_sprites = 1
|
multiple_sprites = 1
|
||||||
|
|
||||||
/obj/item/ammo_magazine/mc9mm/empty
|
/obj/item/ammo_magazine/mc9mm/empty/New()
|
||||||
max_ammo = 0
|
..()
|
||||||
|
stored_ammo = list()
|
||||||
|
update_icon()
|
||||||
|
|
||||||
/obj/item/ammo_magazine/c9mm
|
/obj/item/ammo_magazine/c9mm
|
||||||
name = "Ammunition Box (9mm)"
|
name = "Ammunition Box (9mm)"
|
||||||
|
|||||||
@@ -85,7 +85,7 @@
|
|||||||
origin_tech = "combat=2;materials=2;syndicate=2"
|
origin_tech = "combat=2;materials=2;syndicate=2"
|
||||||
ammo_type = "/obj/item/ammo_casing/c9mm"
|
ammo_type = "/obj/item/ammo_casing/c9mm"
|
||||||
load_method = MAGAZINE
|
load_method = MAGAZINE
|
||||||
mag_type = /obj/item/ammo_magazine/mc9mm/empty
|
mag_type = /obj/item/ammo_magazine/mc9mm
|
||||||
|
|
||||||
/obj/item/weapon/gun/projectile/pistol/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag)
|
/obj/item/weapon/gun/projectile/pistol/afterattack(atom/target as mob|obj|turf|area, mob/living/user as mob|obj, flag)
|
||||||
..()
|
..()
|
||||||
|
|||||||
@@ -696,6 +696,23 @@
|
|||||||
reagents.add_reagent("protein", 6)
|
reagents.add_reagent("protein", 6)
|
||||||
bitesize = 2
|
bitesize = 2
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket
|
||||||
|
name = "\improper Sin-pocket"
|
||||||
|
desc = "The food of choice for the veteran. Do <B>NOT</B> overconsume."
|
||||||
|
filling_color = "#6D6D00"
|
||||||
|
heated_reagents = list("doctorsdelight" = 5, "hyperzine" = 0.75, "synaptizine" = 0.25)
|
||||||
|
var/has_been_heated = 0
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/food/snacks/donkpocket/sinpocket/attack_self(mob/user)
|
||||||
|
if(has_been_heated)
|
||||||
|
user << "<span class='notice'>The heating chemicals have already been spent.</span>"
|
||||||
|
return
|
||||||
|
has_been_heated = 1
|
||||||
|
user.visible_message("<span class='notice'>[user] crushes \the [src] package.</span>", "You crush \the [src] package and feel a comfortable heat build up.")
|
||||||
|
spawn(200)
|
||||||
|
user << "You think \the [src] is ready to eat about now."
|
||||||
|
heat()
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/donkpocket
|
/obj/item/weapon/reagent_containers/food/snacks/donkpocket
|
||||||
name = "Donk-pocket"
|
name = "Donk-pocket"
|
||||||
desc = "The food of choice for the seasoned traitor."
|
desc = "The food of choice for the seasoned traitor."
|
||||||
@@ -708,12 +725,22 @@
|
|||||||
reagents.add_reagent("protein", 2)
|
reagents.add_reagent("protein", 2)
|
||||||
|
|
||||||
var/warm = 0
|
var/warm = 0
|
||||||
proc/cooltime() //Not working, derp?
|
var/list/heated_reagents = list("tricordrazine" = 5)
|
||||||
|
proc/heat()
|
||||||
|
warm = 1
|
||||||
|
for(var/reagent in heated_reagents)
|
||||||
|
reagents.add_reagent(reagent, heated_reagents[reagent])
|
||||||
|
bitesize = 6
|
||||||
|
name = "Warm " + name
|
||||||
|
cooltime()
|
||||||
|
|
||||||
|
proc/cooltime()
|
||||||
if (src.warm)
|
if (src.warm)
|
||||||
spawn(4200)
|
spawn(4200)
|
||||||
src.warm = 0
|
src.warm = 0
|
||||||
src.reagents.del_reagent("tricordrazine")
|
for(var/reagent in heated_reagents)
|
||||||
src.name = "donk-pocket"
|
src.reagents.del_reagent(reagent)
|
||||||
|
src.name = initial(name)
|
||||||
return
|
return
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/food/snacks/brainburger
|
/obj/item/weapon/reagent_containers/food/snacks/brainburger
|
||||||
|
|||||||
@@ -190,6 +190,38 @@
|
|||||||
..()
|
..()
|
||||||
reagents.add_reagent("dexalin", 15)
|
reagents.add_reagent("dexalin", 15)
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/pill/dexalin_plus
|
||||||
|
name = "Dexalin Plus pill"
|
||||||
|
desc = "Used to treat extreme oxygen deprivation."
|
||||||
|
icon_state = "pill8"
|
||||||
|
New()
|
||||||
|
..()
|
||||||
|
reagents.add_reagent("dexalin", 15)
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/pill/dermaline
|
||||||
|
name = "Dermaline pill"
|
||||||
|
desc = "Used to treat burn wounds."
|
||||||
|
icon_state = "pill12"
|
||||||
|
New()
|
||||||
|
..()
|
||||||
|
reagents.add_reagent("dermaline", 15)
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/pill/dylovene
|
||||||
|
name = "Dylovene pill"
|
||||||
|
desc = "A broad-spectrum anti-toxin."
|
||||||
|
icon_state = "pill13"
|
||||||
|
New()
|
||||||
|
..()
|
||||||
|
reagents.add_reagent("anti_toxin", 15)
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/pill/inaprovaline
|
||||||
|
name = "Inaprovaline pill"
|
||||||
|
desc = "Used to stabilize patients."
|
||||||
|
icon_state = "pill20"
|
||||||
|
New()
|
||||||
|
..()
|
||||||
|
reagents.add_reagent("inaprovaline", 30)
|
||||||
|
|
||||||
/obj/item/weapon/reagent_containers/pill/bicaridine
|
/obj/item/weapon/reagent_containers/pill/bicaridine
|
||||||
name = "Bicaridine pill"
|
name = "Bicaridine pill"
|
||||||
desc = "Used to treat physical injuries."
|
desc = "Used to treat physical injuries."
|
||||||
@@ -216,3 +248,11 @@
|
|||||||
reagents.add_reagent("impedrezene", 10)
|
reagents.add_reagent("impedrezene", 10)
|
||||||
reagents.add_reagent("synaptizine", 5)
|
reagents.add_reagent("synaptizine", 5)
|
||||||
reagents.add_reagent("hyperzine", 5)
|
reagents.add_reagent("hyperzine", 5)
|
||||||
|
|
||||||
|
/obj/item/weapon/reagent_containers/pill/spaceacillin
|
||||||
|
name = "Spaceacillin"
|
||||||
|
desc = "Contains antiviral agents."
|
||||||
|
icon_state = "pill19"
|
||||||
|
New()
|
||||||
|
..()
|
||||||
|
reagents.add_reagent("spaceacillin", 15)
|
||||||
|
|||||||
@@ -644,6 +644,7 @@ var/list/be_special_flags = list(
|
|||||||
#define COLOR_YELLOW "#FFFF00"
|
#define COLOR_YELLOW "#FFFF00"
|
||||||
#define COLOR_ORANGE "#FF9900"
|
#define COLOR_ORANGE "#FF9900"
|
||||||
#define COLOR_WHITE "#FFFFFF"
|
#define COLOR_WHITE "#FFFFFF"
|
||||||
|
#define COLOR_BLACK "#000000"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Germs and infections.
|
* Germs and infections.
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 152 KiB After Width: | Height: | Size: 152 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 154 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Reference in New Issue
Block a user