Merge remote-tracking branch 'upstream/master' into diagonal-movement

This commit is contained in:
Couls
2019-04-25 23:45:08 -04:00
222 changed files with 1040 additions and 866 deletions
@@ -24,7 +24,7 @@
spawn(3 + metal*3)
process()
spawn(120)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
sleep(30)
if(metal)
@@ -30,15 +30,15 @@
/obj/effect/particle_effect/smoke/New()
..()
processing_objects |= src
START_PROCESSING(SSobj, src)
lifetime += rand(-1,1)
/obj/effect/particle_effect/smoke/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/effect/particle_effect/smoke/proc/kill_smoke()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
INVOKE_ASYNC(src, .proc/fade_out)
QDEL_IN(src, 10)
+4 -4
View File
@@ -9,12 +9,12 @@
/obj/effect/snowcloud/New(turf, obj/machinery/snow_machine/SM)
..()
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
if(SM && istype(SM))
parent_machine = SM
/obj/effect/snowcloud/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/effect/snowcloud/process()
@@ -73,12 +73,12 @@
anchored = TRUE
/obj/effect/snow/New()
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
icon_state = "snow[rand(1,6)]"
..()
/obj/effect/snow/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/effect/snow/process()
+3 -3
View File
@@ -107,7 +107,7 @@
..()
pixel_x = rand(3,-3)
pixel_y = rand(3,-3)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/structure/spider/eggcluster/process()
amount_grown += rand(0,2)
@@ -140,10 +140,10 @@
..()
pixel_x = rand(6,-6)
pixel_y = rand(6,-6)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/structure/spider/spiderling/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
entry_vent = null
return ..()
-1
View File
@@ -28,7 +28,6 @@
var/obj/item/clothing/mask/cigarette/cig = W
if(cig.lit == 1)
src.visible_message("[user] crushes [cig] in [src], putting it out.")
processing_objects.Remove(cig)
var/obj/item/butt = new cig.type_butt(src)
cig.transfer_fingerprints_to(butt)
qdel(cig)
+2 -2
View File
@@ -18,7 +18,7 @@
light(show_message = 0)
/obj/item/candle/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/candle/update_icon()
@@ -62,7 +62,7 @@
if(show_message)
usr.visible_message(show_message)
set_light(CANDLE_LUM)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
update_icon()
@@ -32,7 +32,7 @@
/obj/item/camera_bug/New()
..()
processing_objects += src
START_PROCESSING(SSobj, src)
/obj/item/camera_bug/Destroy()
get_cameras()
@@ -227,7 +227,7 @@
return PROCESS_KILL
/obj/item/borg_chameleon/proc/activate(mob/living/silicon/robot/syndicate/saboteur/user)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
S = user
user.base_icon = disguise
user.icon_state = disguise
@@ -236,7 +236,7 @@
user.update_icons()
/obj/item/borg_chameleon/proc/deactivate(mob/living/silicon/robot/syndicate/saboteur/user)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
S = user
user.base_icon = initial(user.base_icon)
user.icon_state = initial(user.icon_state)
+2 -2
View File
@@ -207,10 +207,10 @@
/obj/item/flash/cameraflash/New()
..()
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/item/flash/cameraflash/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/flash/cameraflash/process() //this and the two parts above are part of the charge system.
@@ -183,10 +183,10 @@
turn_off()
if(!fuel)
src.icon_state = "[initial(icon_state)]-empty"
processing_objects -= src
STOP_PROCESSING(SSobj, src)
/obj/item/flashlight/flare/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/flashlight/flare/proc/turn_off()
@@ -222,7 +222,7 @@
user.visible_message("<span class='notice'>[user] activates [src].</span>", "<span class='notice'>You activate [src].</span>")
src.force = on_damage
src.damtype = "fire"
processing_objects += src
START_PROCESSING(SSobj, src)
// GLOWSTICKS
@@ -344,10 +344,10 @@
/obj/item/flashlight/emp/New()
..()
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/item/flashlight/emp/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/flashlight/emp/process()
@@ -167,7 +167,7 @@
if(energy <= max_energy)
if(!recharging)
recharging = 1
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
if(energy <= 0)
to_chat(user, "<span class='warning'>You've overused the battery of [src], now it needs time to recharge!</span>")
recharge_locked = 1
+2 -2
View File
@@ -47,10 +47,10 @@
/obj/item/multitool/ai_detect/New()
..()
processing_objects += src
START_PROCESSING(SSobj, src)
/obj/item/multitool/ai_detect/Destroy()
processing_objects -= src
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/multitool/ai_detect/process()
+4 -4
View File
@@ -26,7 +26,7 @@
var/obj/structure/cable/attached // the attached cable
/obj/item/powersink/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
GLOB.processing_power_items.Remove(src)
PN = null
attached = null
@@ -53,7 +53,7 @@
return
else
if(mode == 2)
processing_objects.Remove(src) // Now the power sink actually stops draining the station's power if you unhook it. --NeoFite
STOP_PROCESSING(SSobj, src) // Now the power sink actually stops draining the station's power if you unhook it. --NeoFite
GLOB.processing_power_items.Remove(src)
anchored = 0
mode = 0
@@ -76,14 +76,14 @@
src.visible_message("<span class='notice'>[user] activates [src]!</span>")
mode = 2
icon_state = "powersink1"
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
GLOB.processing_power_items.Add(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"
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
GLOB.processing_power_items.Remove(src)
/obj/item/powersink/pwr_drain()
@@ -49,7 +49,7 @@
..()
buildstage = building
if(buildstage)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
else
if(ndir)
pixel_x = (ndir & EAST|WEST) ? (ndir == EAST ? 28 : -28) : 0
@@ -105,7 +105,7 @@
)
/obj/item/radio/intercom/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
GLOB.global_intercoms.Remove(src)
return ..()
@@ -150,7 +150,7 @@
b_stat = 1
buildstage = 1
update_icon()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return 1
else return ..()
if(2)
@@ -163,7 +163,7 @@
buildstage = 3
to_chat(user, "<span class='notice'>You secure the electronics!</span>")
update_icon()
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
for(var/i, i<= 5, i++)
wires.UpdateCut(i,1)
return 1
+3 -3
View File
@@ -34,7 +34,7 @@ REAGENT SCANNER
/obj/item/t_scanner/Destroy()
if(on)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/t_scanner/attack_self(mob/user)
@@ -43,12 +43,12 @@ REAGENT SCANNER
icon_state = copytext(icon_state, 1, length(icon_state))+"[on]"
if(on)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/item/t_scanner/process()
if(!on)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return null
scan()
@@ -256,7 +256,7 @@
/obj/item/borg/upgrade/selfrepair/Destroy()
cyborg = null
processing_objects -= src
STOP_PROCESSING(SSobj, src)
on = 0
return ..()
@@ -264,10 +264,10 @@
on = !on
if(on)
to_chat(cyborg, "<span class='notice'>You activate the self-repair module.</span>")
processing_objects |= src
START_PROCESSING(SSobj, src)
else
to_chat(cyborg, "<span class='notice'>You deactivate the self-repair module.</span>")
processing_objects -= src
STOP_PROCESSING(SSobj, src)
update_icon()
/obj/item/borg/upgrade/selfrepair/update_icon()
@@ -280,7 +280,7 @@
icon_state = "cyborg_upgrade5"
/obj/item/borg/upgrade/selfrepair/proc/deactivate()
processing_objects -= src
STOP_PROCESSING(SSobj, src)
on = 0
update_icon()
+2 -2
View File
@@ -26,7 +26,7 @@
return
timing = !timing
if(timing)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
else
armed = 0
timepassed = 0
@@ -34,7 +34,7 @@
/obj/item/caution/proximity_sign/process()
if(!timing)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
timepassed++
if(timepassed >= 15 && !armed)
armed = 1
@@ -177,7 +177,7 @@
update_icon()
desc = initial(desc) + "<br><span class='info'>It appears to contain [target.name].</span>"
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/effect/chrono_field/Destroy()
if(gun && gun.field_check(src))
+6 -6
View File
@@ -48,7 +48,7 @@ LIGHTERS ARE IN LIGHTERS.DM
/obj/item/clothing/mask/cigarette/Destroy()
QDEL_NULL(reagents)
processing_objects -= src
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/clothing/mask/cigarette/attack(mob/living/M, mob/living/user, def_zone)
@@ -161,7 +161,7 @@ LIGHTERS ARE IN LIGHTERS.DM
var/turf/T = get_turf(src)
T.visible_message(flavor_text)
set_light(2, 0.25, "#E38F46")
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/item/clothing/mask/cigarette/process()
@@ -213,7 +213,7 @@ LIGHTERS ARE IN LIGHTERS.DM
var/mob/living/M = loc
to_chat(M, "<span class='notice'>Your [name] goes out.</span>")
M.unEquip(src, 1) //Force the un-equip so the overlays update
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
qdel(src)
@@ -341,7 +341,7 @@ LIGHTERS ARE IN LIGHTERS.DM
if(flavor_text)
var/turf/T = get_turf(src)
T.visible_message(flavor_text)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/item/clothing/mask/cigarette/pipe/process()
var/turf/location = get_turf(src)
@@ -355,7 +355,7 @@ LIGHTERS ARE IN LIGHTERS.DM
icon_state = icon_off
item_state = icon_off
M.update_inv_wear_mask(0)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return
smoke()
return
@@ -366,7 +366,7 @@ LIGHTERS ARE IN LIGHTERS.DM
lit = 0
icon_state = icon_off
item_state = icon_off
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return
if(smoketime <= 0)
to_chat(user, "<span class='notice'>You refill the pipe with tobacco.</span>")
@@ -33,7 +33,7 @@
/obj/item/flamethrower/process()
if(!lit)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return null
var/turf/location = loc
if(istype(location, /mob/))
@@ -141,7 +141,7 @@
if(!status) return
lit = !lit
if(lit)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
if(href_list["remove"])
if(!ptank) return
usr.put_in_hands(ptank)
+6 -6
View File
@@ -44,7 +44,7 @@
strangling = null
update_icon()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
else
..()
@@ -97,7 +97,7 @@
M.AdjustSilence(1)
garrote_time = world.time + 10
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
strangling = M
update_icon()
@@ -113,14 +113,14 @@
if(!strangling)
// Our mark got gibbed or similar
update_icon()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return
if(!istype(loc, /mob/living/carbon/human))
strangling = null
update_icon()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return
var/mob/living/carbon/human/user = loc
@@ -138,7 +138,7 @@
strangling = null
update_icon()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return
@@ -148,7 +148,7 @@
strangling = null
update_icon()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return
@@ -402,10 +402,10 @@
/obj/item/nullrod/tribal_knife/New()
..()
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/item/nullrod/tribal_knife/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/nullrod/tribal_knife/process()
@@ -432,10 +432,10 @@
/obj/item/nullrod/rosary/New()
..()
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/item/nullrod/rosary/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/nullrod/rosary/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
@@ -14,7 +14,7 @@
flags = DROPDEL
/obj/item/implant/proc/trigger(emote, mob/source)
/obj/item/implant/proc/trigger(emote, mob/source, force)
return
/obj/item/implant/proc/activate()
@@ -13,7 +13,7 @@
if(cooldown == total_cooldown)
home.Retrieve(imp_in,1)
cooldown = 0
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
else
to_chat(imp_in, "<span class='warning'>You must wait [(total_cooldown - cooldown)*2] seconds to use [src] again!</span>")
@@ -21,7 +21,7 @@
if(cooldown < total_cooldown)
cooldown++
if(cooldown == total_cooldown)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
/obj/item/implant/abductor/implant(mob/source, mob/user)
if(..())
@@ -33,8 +33,8 @@
/obj/item/implant/chem/trigger(emote, mob/source)
if(emote == "deathgasp")
/obj/item/implant/chem/trigger(emote, mob/source, force)
if(force && emote == "deathgasp")
activate(reagents.total_volume)
/obj/item/implant/chem/activate(cause)
@@ -18,7 +18,7 @@
return dat
/obj/item/implant/death_alarm/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/implant/death_alarm/process()
@@ -61,12 +61,12 @@
/obj/item/implant/death_alarm/implant(mob/target)
if(..())
mobname = target.real_name
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
return 1
return 0
/obj/item/implant/death_alarm/removed(mob/target)
if(..())
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return 1
return 0
@@ -20,8 +20,8 @@
"}
return dat
/obj/item/implant/explosive/trigger(emote, mob/source)
if(emote == "deathgasp")
/obj/item/implant/explosive/trigger(emote, mob/source, force)
if(force && emote == "deathgasp")
activate("death")
/obj/item/implant/explosive/activate(cause)
@@ -148,8 +148,8 @@
"}
return dat
/obj/item/implant/dust/trigger(emote, mob/source)
if(emote == "deathgasp")
/obj/item/implant/dust/trigger(emote, mob/source, force)
if(force && emote == "deathgasp")
activate("death")
/obj/item/implant/dust/activate(cause)
+4 -4
View File
@@ -58,7 +58,7 @@
user.visible_message("<span class='notice'>After a few attempts, [user] manages to light the [src], [user.p_they()] however burn[user.p_s()] [user.p_their()] finger in the process.</span>")
set_light(2)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
else
lit = 0
w_class = WEIGHT_CLASS_TINY
@@ -74,7 +74,7 @@
user.visible_message("<span class='notice'>[user] quietly shuts off the [src].")
set_light(0)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
else
return ..()
return
@@ -181,7 +181,7 @@
name = "lit match"
desc = "A match. This one is lit."
attack_verb = list("burnt","singed")
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
update_icon()
return TRUE
@@ -196,7 +196,7 @@
name = "burnt match"
desc = "A match. This one has seen better days."
attack_verb = list("flicked")
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return TRUE
/obj/item/match/dropped(mob/user)
+4 -4
View File
@@ -89,14 +89,14 @@
/obj/item/mop/advanced/New()
..()
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/item/mop/advanced/attack_self(mob/user)
refill_enabled = !refill_enabled
if(refill_enabled)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
else
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
to_chat(user, "<span class='notice'>You set the condenser switch to the '[refill_enabled ? "ON" : "OFF"]' position.</span>")
playsound(user, 'sound/machines/click.ogg', 30, 1)
@@ -111,7 +111,7 @@
/obj/item/mop/advanced/Destroy()
if(refill_enabled)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
@@ -107,7 +107,7 @@
/obj/item/storage/bag/plasticbag/equipped(var/mob/user, var/slot)
if(slot==slot_head)
storage_slots = 0
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
return
/obj/item/storage/bag/plasticbag/process()
@@ -120,7 +120,7 @@
H.AdjustLoseBreath(1)
else
storage_slots = 7
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return
// -----------------------------
@@ -642,9 +642,13 @@
new /obj/item/grenade/smokebomb(src)
new /obj/item/restraints/legcuffs/bola(src)
new /obj/item/restraints/legcuffs/bola(src)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
cooldown = world.time
/obj/item/storage/belt/bluespace/owlman/Destroy()
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/storage/belt/bluespace/owlman/process()
if(cooldown < world.time - 600)
smokecount = 0
@@ -27,13 +27,13 @@
air_contents.volume = volume //liters
air_contents.temperature = T20C
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
return
/obj/item/tank/Destroy()
QDEL_NULL(air_contents)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
+2 -2
View File
@@ -377,7 +377,7 @@
damtype = "brute"
update_icon()
if(!can_off_process)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return
//Welders left on now use up fuel, but lets not have them run out quite that fast
if(1)
@@ -539,7 +539,7 @@
damtype = "fire"
hitsound = 'sound/items/welder.ogg'
update_icon()
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
else
to_chat(user, "<span class='warning'>You need more fuel!</span>")
switched_off(user)
+4 -4
View File
@@ -557,10 +557,10 @@
/obj/item/twohanded/singularityhammer/New()
..()
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/item/twohanded/singularityhammer/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/twohanded/singularityhammer/process()
@@ -664,10 +664,10 @@
/obj/item/twohanded/knighthammer/New()
..()
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/item/twohanded/knighthammer/Destroy()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
return ..()
/obj/item/twohanded/knighthammer/process()
+9 -12
View File
@@ -66,17 +66,14 @@
// Nada
/obj/Destroy()
GLOB.machines -= src
processing_objects -= src
GLOB.fast_processing -= src
if(!ismachinery(src))
if(!speed_process)
STOP_PROCESSING(SSobj, src) // TODO: Have a processing bitflag to reduce on unnecessary loops through the processing lists
else
STOP_PROCESSING(SSfastprocess, src)
SSnanoui.close_uis(src)
return ..()
/obj/proc/process()
set waitfor = 0
processing_objects.Remove(src)
return 0
//user: The mob that is suiciding
//damagetype: The type of damage the item will inflict on the user
//BRUTELOSS = 1
@@ -300,15 +297,15 @@ a {
if(speed_process)
return
speed_process = TRUE
processing_objects.Remove(src)
GLOB.fast_processing.Add(src)
STOP_PROCESSING(SSobj, src)
START_PROCESSING(SSfastprocess, src)
/obj/proc/makeNormalProcess()
if(!speed_process)
return
speed_process = FALSE
processing_objects.Add(src)
GLOB.fast_processing.Remove(src)
START_PROCESSING(SSobj, src)
STOP_PROCESSING(SSfastprocess, src)
/obj/vv_get_dropdown()
. = ..()
@@ -41,7 +41,7 @@
qdel(src)
return
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
..()
/obj/structure/closet/statue/process()
@@ -53,7 +53,7 @@
M.setOxyLoss(intialOxy)
if(timer <= 0)
dump_contents()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
qdel(src)
/obj/structure/closet/statue/dump_contents()
+2 -2
View File
@@ -87,7 +87,7 @@
/obj/effect/overload/New()
. = ..()
// Do not attempt to put the code below into Initialize() or even LateInitialize() with a "return INITIALIZE_HINT_LATELOAD". It won't work!
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
depotarea = areaMaster
if(istype(depotarea))
if(!depotarea.used_self_destruct)
@@ -122,6 +122,6 @@
for(var/obj/mecha/E in range(30, T))
E.Destroy()
explosion(get_turf(src), 25, 35, 45, 55, 1, 1, 60, 0, 0)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
qdel(src)
+4 -4
View File
@@ -92,11 +92,11 @@
last_ghost_alert = world.time
attack_atom = src
if(active)
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
/obj/structure/ghost_beacon/Destroy()
if(active)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
attack_atom = null
return ..()
@@ -111,9 +111,9 @@
return
to_chat(user, "<span class='notice'>You [active ? "disable" : "enable"] \the [src].</span>")
if(active)
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
else
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
active = !active
/obj/structure/ghost_beacon/process()
+6 -6
View File
@@ -14,7 +14,7 @@ GLOBAL_LIST_EMPTY(safes)
desc = "A huge chunk of metal with a dial embedded in it. Fine print on the dial reads \"Scarborough Arms tumbler safe, guaranteed thermite resistant, explosion resistant, and assistant resistant.\""
icon = 'icons/obj/structures.dmi'
icon_state = "safe"
anchored = TRUE
density = TRUE
resistance_flags = LAVA_PROOF | FIRE_PROOF
@@ -159,14 +159,14 @@ GLOBAL_LIST_EMPTY(safes)
drill_start_time = world.time
drill.soundloop.start()
update_icon()
processing_objects.Add(src)
START_PROCESSING(SSobj, src)
if("Turn Off")
if(do_after(user, 2 SECONDS, target = src))
deltimer(drill_timer)
drill_timer = null
drill.soundloop.stop()
update_icon()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
if("Remove Drill")
if(drill_timer)
to_chat(user, "<span class='warning'>You cant remove the drill while it's running!</span>")
@@ -208,7 +208,7 @@ GLOBAL_LIST_EMPTY(safes)
if(current_tick == 2)
to_chat(user, "<span class='italics'>The sounds from [src] are too fast and blend together.</span>")
if(total_ticks == 1 || prob(10))
to_chat(user, "<span class='italics'>You hear a [pick(sounds)] from [src].</span>")
@@ -252,7 +252,7 @@ GLOBAL_LIST_EMPTY(safes)
var/invalid_turn = current_tumbler_index % 2 == 0 || current_tumbler_index > number_of_tumblers
if(invalid_turn) // The moment you turn the wrong way or go too far, the tumblers reset
current_tumbler_index = 1
if(!invalid_turn && dial == tumblers[current_tumbler_index])
notify_user(user, canhear, list("tink", "krink", "plink"), ticks, i)
current_tumbler_index++
@@ -308,7 +308,7 @@ GLOBAL_LIST_EMPTY(safes)
drill_timer = null
drill.soundloop.stop()
update_icon()
processing_objects.Remove(src)
STOP_PROCESSING(SSobj, src)
/obj/structure/safe/attackby(obj/item/I, mob/user, params)
if(open)
@@ -19,10 +19,10 @@
/obj/structure/transit_tube/station/New()
..()
processing_objects += src
START_PROCESSING(SSobj, src)
/obj/structure/transit_tube/station/Destroy()
processing_objects -= src
STOP_PROCESSING(SSobj, src)
return ..()
// Stations which will send the tube in the opposite direction after their stop.