mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-23 08:31:57 +00:00
Merge remote-tracking branch 'upstream/dev' into 151210-TapeTape
Conflicts: code/__defines/misc.dm
This commit is contained in:
@@ -23,6 +23,10 @@
|
||||
var/buffer_name
|
||||
var/atom/buffer_object
|
||||
|
||||
/obj/item/device/multitool/Destroy()
|
||||
unregister_buffer(buffer_object)
|
||||
return ..()
|
||||
|
||||
/obj/item/device/multitool/proc/get_buffer(var/typepath)
|
||||
// Only allow clearing the buffer name when someone fetches the buffer.
|
||||
// Means you cannot be sure the source hasn't been destroyed until the very moment it's needed.
|
||||
@@ -41,16 +45,16 @@
|
||||
if(!buffer || istype(buffer))
|
||||
buffer_name = buffer ? buffer.name : null
|
||||
if(buffer != buffer_object)
|
||||
if(buffer_object)
|
||||
buffer_object.unregister(OBSERVER_EVENT_DESTROY, src)
|
||||
unregister_buffer(buffer_object)
|
||||
buffer_object = buffer
|
||||
if(buffer_object)
|
||||
buffer_object.register(OBSERVER_EVENT_DESTROY, src, /obj/item/device/multitool/proc/on_buffer_destroyed)
|
||||
buffer_object.register(OBSERVER_EVENT_DESTROY, src, /obj/item/device/multitool/proc/unregister_buffer)
|
||||
|
||||
/obj/item/device/multitool/proc/on_buffer_destroyed(var/atom/destroyed_buffer)
|
||||
/obj/item/device/multitool/proc/unregister_buffer(var/atom/buffer_to_unregister)
|
||||
// Only remove the buffered object, don't reset the name
|
||||
// This means one cannot know if the buffer has been destroyed until one attempts to use it.
|
||||
if(destroyed_buffer == buffer_object)
|
||||
if(buffer_to_unregister == buffer_object && buffer_object)
|
||||
buffer_object.unregister(OBSERVER_EVENT_DESTROY, src)
|
||||
buffer_object = null
|
||||
|
||||
/obj/item/device/multitool/resolve_attackby(atom/A, mob/user)
|
||||
|
||||
@@ -98,6 +98,8 @@
|
||||
name = "head of personnel's encryption key"
|
||||
icon_state = "hop_cypherkey"
|
||||
channels = list("Supply" = 1, "Service" = 1, "Command" = 1, "Security" = 0)
|
||||
|
||||
|
||||
/*
|
||||
/obj/item/device/encryptionkey/headset_mine
|
||||
name = "mining radio encryption key"
|
||||
@@ -122,3 +124,7 @@
|
||||
/obj/item/device/encryptionkey/ert
|
||||
name = "\improper ERT radio encryption key"
|
||||
channels = list("Response Team" = 1, "Science" = 1, "Command" = 1, "Medical" = 1, "Engineering" = 1, "Security" = 1, "Supply" = 1, "Service" = 1)
|
||||
|
||||
/obj/item/device/encryptionkey/entertainment
|
||||
name = "entertainment radio key"
|
||||
channels = list("Entertainment" = 1)
|
||||
|
||||
@@ -209,6 +209,13 @@
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/heads/hos
|
||||
|
||||
/obj/item/device/radio/headset/entertainment
|
||||
name = "actor's radio headset"
|
||||
desc = "specially made to make you sound less cheesy."
|
||||
icon_state = "com_headset"
|
||||
item_state = "headset"
|
||||
ks2type = /obj/item/device/encryptionkey/entertainment
|
||||
|
||||
/obj/item/device/radio/headset/attackby(obj/item/weapon/W as obj, mob/user as mob)
|
||||
// ..()
|
||||
user.set_machine(src)
|
||||
|
||||
@@ -39,6 +39,11 @@
|
||||
name = "station intercom (Security)"
|
||||
frequency = SEC_I_FREQ
|
||||
|
||||
/obj/item/device/radio/intercom/entertainment
|
||||
name = "entertainment intercom"
|
||||
frequency = ENT_FREQ
|
||||
canhear_range = 4
|
||||
|
||||
/obj/item/device/radio/intercom/New()
|
||||
..()
|
||||
processing_objects += src
|
||||
@@ -54,6 +59,13 @@
|
||||
num2text(SEC_I_FREQ) = list(access_security)
|
||||
)
|
||||
|
||||
/obj/item/device/radio/intercom/entertainment/New()
|
||||
..()
|
||||
internal_channels = list(
|
||||
num2text(PUB_FREQ) = list(),
|
||||
num2text(ENT_FREQ) = list()
|
||||
)
|
||||
|
||||
/obj/item/device/radio/intercom/syndicate
|
||||
name = "illicit intercom"
|
||||
desc = "Talk through this. Evilly"
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
var/global/list/default_internal_channels = list(
|
||||
num2text(PUB_FREQ) = list(),
|
||||
num2text(AI_FREQ) = list(access_synth),
|
||||
num2text(ENT_FREQ) = list(),
|
||||
num2text(ERT_FREQ) = list(access_cent_specops),
|
||||
num2text(COMM_FREQ)= list(access_heads),
|
||||
num2text(ENG_FREQ) = list(access_engine_equip, access_atmospherics),
|
||||
|
||||
@@ -60,6 +60,10 @@
|
||||
icon_state = "meson"
|
||||
icon = 'icons/obj/clothing/glasses.dmi'
|
||||
|
||||
/obj/item/borg/sight/material
|
||||
name = "\proper material scanner vision"
|
||||
sight_mode = BORGMATERIAL
|
||||
|
||||
/obj/item/borg/sight/hud
|
||||
name = "hud"
|
||||
var/obj/item/clothing/glasses/hud/hud = null
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
var/amount = 1
|
||||
var/max_amount //also see stack recipes initialisation, param "max_res_amount" must be equal to this max_amount
|
||||
var/stacktype //determines whether different stack types can merge
|
||||
var/build_type = null //used when directly applied to a turf
|
||||
var/uses_charge = 0
|
||||
var/list/charge_costs = null
|
||||
var/list/datum/matter_synth/synths = null
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
desc = "A non-descript floor tile"
|
||||
w_class = 3
|
||||
max_amount = 60
|
||||
var/build_type = null
|
||||
|
||||
/obj/item/stack/tile/New()
|
||||
..()
|
||||
|
||||
@@ -80,9 +80,14 @@
|
||||
build_path = /obj/machinery/computer/cloning
|
||||
origin_tech = list(TECH_DATA = 3, TECH_BIO = 3)
|
||||
|
||||
/obj/item/weapon/circuitboard/arcade
|
||||
name = T_BOARD("arcade machine")
|
||||
build_path = /obj/machinery/computer/arcade
|
||||
/obj/item/weapon/circuitboard/arcade/battle
|
||||
name = T_BOARD("battle arcade machine")
|
||||
build_path = /obj/machinery/computer/arcade/battle
|
||||
origin_tech = list(TECH_DATA = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/arcade/orion_trail
|
||||
name = T_BOARD("orion trail arcade machine")
|
||||
build_path = /obj/machinery/computer/arcade/orion_trail
|
||||
origin_tech = list(TECH_DATA = 1)
|
||||
|
||||
/obj/item/weapon/circuitboard/turbine_control
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
w_class = 2.0
|
||||
force = 2.0
|
||||
det_time = null
|
||||
unacidable = 1
|
||||
var/stage = 0
|
||||
var/state = 0
|
||||
var/path = 0
|
||||
|
||||
@@ -45,11 +45,19 @@
|
||||
return 1
|
||||
|
||||
/obj/proc/CouldUseTopic(var/mob/user)
|
||||
if(!isAI(user) && src.Adjacent(user))
|
||||
// We are -probably- in physical contact with the object, better than how Topics() previously did it and always applied fingerprints.
|
||||
add_fingerprint(user)
|
||||
user.AddTopicPrint(src)
|
||||
|
||||
/mob/proc/AddTopicPrint(var/obj/target)
|
||||
target.add_hiddenprint(src)
|
||||
|
||||
/mob/living/AddTopicPrint(var/obj/target)
|
||||
if(Adjacent(target))
|
||||
target.add_fingerprint(src)
|
||||
else
|
||||
add_hiddenprint(user)
|
||||
target.add_hiddenprint(src)
|
||||
|
||||
/mob/living/silicon/ai/AddTopicPrint(var/obj/target)
|
||||
target.add_hiddenprint(src)
|
||||
|
||||
/obj/proc/CouldNotUseTopic(var/mob/user)
|
||||
// Nada
|
||||
|
||||
@@ -85,6 +85,7 @@
|
||||
new /obj/item/weapon/storage/backpack/cultpack (src)
|
||||
new /obj/item/weapon/storage/fancy/candle_box(src)
|
||||
new /obj/item/weapon/storage/fancy/candle_box(src)
|
||||
new /obj/item/weapon/deck/tarot(src)
|
||||
return
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user