mirror of
https://github.com/yogstation13/Yogstation.git
synced 2025-02-26 09:04:50 +00:00
Merge remote-tracking branch 'origin/master' into luciee
This commit is contained in:
4
.github/workflows/compile_changelogs.yml
vendored
4
.github/workflows/compile_changelogs.yml
vendored
@@ -1,9 +1,11 @@
|
||||
name: Compile changelogs
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: "0 2 * * *"
|
||||
- cron: "0 6 * * *"
|
||||
- cron: "0 14 * * *"
|
||||
- cron: "0 22 * * *"
|
||||
|
||||
jobs:
|
||||
compile:
|
||||
|
||||
@@ -3738,6 +3738,18 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/central)
|
||||
"bUu" = (
|
||||
/obj/structure/closet/l3closet/scientist,
|
||||
/obj/item/extinguisher,
|
||||
/obj/item/clothing/glasses/science,
|
||||
/obj/effect/turf_decal/trimline/purple/filled/line{
|
||||
dir = 9
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 8
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"bUw" = (
|
||||
/obj/machinery/door/airlock/engineering{
|
||||
name = "AI Ship Access";
|
||||
@@ -14758,6 +14770,39 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/grimy,
|
||||
/area/chapel/office)
|
||||
"hNk" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
|
||||
dir = 10
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/clothing/gloves/color/latex{
|
||||
pixel_x = -11;
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/item/clothing/glasses/science{
|
||||
pixel_x = -9;
|
||||
pixel_y = -5
|
||||
},
|
||||
/obj/item/wrench,
|
||||
/obj/item/slime_scanner{
|
||||
pixel_x = 9;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/science/xenobiology)
|
||||
"hOa" = (
|
||||
/obj/machinery/door/window/southleft{
|
||||
base_state = "right";
|
||||
@@ -16218,6 +16263,24 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/security/main)
|
||||
"iHv" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/storage/box/beakers{
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/item/storage/box/syringes{
|
||||
pixel_x = 5;
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/machinery/light{
|
||||
dir = 1
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/science/xenobiology)
|
||||
"iHG" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
|
||||
@@ -16263,36 +16326,6 @@
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port/aft)
|
||||
"iJt" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
|
||||
dir = 10
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
|
||||
dir = 10
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/clothing/gloves/color/latex{
|
||||
pixel_x = -11;
|
||||
pixel_y = 6
|
||||
},
|
||||
/obj/item/clothing/glasses/science{
|
||||
pixel_x = -9;
|
||||
pixel_y = -5
|
||||
},
|
||||
/obj/item/wrench,
|
||||
/obj/item/slime_scanner{
|
||||
pixel_x = 9;
|
||||
pixel_y = 3
|
||||
},
|
||||
/obj/structure/disposalpipe/segment{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/science/xenobiology)
|
||||
"iJF" = (
|
||||
/obj/effect/turf_decal/trimline/blue/filled/line{
|
||||
dir = 1
|
||||
@@ -23382,17 +23415,6 @@
|
||||
/obj/structure/chair/stool,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/lab)
|
||||
"mDe" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/machinery/disposal/bin,
|
||||
/obj/structure/disposalpipe/trunk{
|
||||
dir = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/science/xenobiology)
|
||||
"mDn" = (
|
||||
/obj/machinery/vending/boozeomat,
|
||||
/turf/closed/wall,
|
||||
@@ -28077,21 +28099,6 @@
|
||||
},
|
||||
/turf/open/floor/engine/o2,
|
||||
/area/engine/atmos_distro)
|
||||
"plq" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/item/storage/box/beakers{
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/item/storage/box/syringes{
|
||||
pixel_x = 5;
|
||||
pixel_y = 6
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/science/xenobiology)
|
||||
"pma" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
@@ -32840,15 +32847,6 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
|
||||
/turf/open/floor/plating,
|
||||
/area/chapel/office)
|
||||
"rYI" = (
|
||||
/obj/structure/closet/l3closet/scientist,
|
||||
/obj/item/extinguisher,
|
||||
/obj/item/clothing/glasses/science,
|
||||
/obj/effect/turf_decal/trimline/purple/filled/line{
|
||||
dir = 9
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/xenobiology)
|
||||
"rZF" = (
|
||||
/obj/effect/turf_decal/trimline/neutral/filled/line{
|
||||
dir = 4
|
||||
@@ -35612,6 +35610,10 @@
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/hallway/primary/starboard)
|
||||
"tBA" = (
|
||||
/mob/living/simple_animal/slime,
|
||||
/turf/open/floor/engine,
|
||||
/area/science/xenobiology)
|
||||
"tBB" = (
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
@@ -38705,6 +38707,18 @@
|
||||
/obj/item/stock_parts/scanning_module,
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/lab)
|
||||
"vmQ" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 8;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/machinery/disposal/bin,
|
||||
/obj/structure/disposalpipe/trunk{
|
||||
dir = 4
|
||||
},
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/science/xenobiology)
|
||||
"vnT" = (
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/medical/morgue)
|
||||
@@ -39771,33 +39785,6 @@
|
||||
/obj/structure/reagent_dispensers/watertank,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/aft)
|
||||
"vNO" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/button/door{
|
||||
id = "misclab";
|
||||
name = "Test Chamber Blast Doors";
|
||||
pixel_x = -7;
|
||||
pixel_y = 8;
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/obj/item/paper_bin{
|
||||
pixel_x = 4;
|
||||
pixel_y = -2
|
||||
},
|
||||
/obj/item/pen{
|
||||
pixel_x = -4;
|
||||
pixel_y = -4
|
||||
},
|
||||
/obj/item/folder/white{
|
||||
pixel_x = 5;
|
||||
pixel_y = 4
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/science/xenobiology)
|
||||
"vNV" = (
|
||||
/obj/machinery/light{
|
||||
dir = 4
|
||||
@@ -43124,6 +43111,34 @@
|
||||
},
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/ai_monitored/secondarydatacore)
|
||||
"xFv" = (
|
||||
/obj/structure/window/reinforced{
|
||||
dir = 4;
|
||||
pixel_y = 2
|
||||
},
|
||||
/obj/structure/table/reinforced,
|
||||
/obj/machinery/button/door{
|
||||
id = "misclab";
|
||||
name = "Test Chamber Blast Doors";
|
||||
pixel_x = -7;
|
||||
pixel_y = 8;
|
||||
req_access_txt = "55"
|
||||
},
|
||||
/obj/item/paper_bin{
|
||||
pixel_x = 4;
|
||||
pixel_y = -2
|
||||
},
|
||||
/obj/item/pen{
|
||||
pixel_x = -4;
|
||||
pixel_y = -4
|
||||
},
|
||||
/obj/item/folder/white{
|
||||
pixel_x = 5;
|
||||
pixel_y = 4
|
||||
},
|
||||
/obj/machinery/light,
|
||||
/turf/open/floor/plasteel/dark,
|
||||
/area/science/xenobiology)
|
||||
"xFy" = (
|
||||
/obj/machinery/door/airlock/command/glass{
|
||||
name = "Head of Security";
|
||||
@@ -82097,7 +82112,7 @@ uzX
|
||||
uzX
|
||||
uzX
|
||||
vIw
|
||||
vIw
|
||||
tBA
|
||||
imc
|
||||
vIw
|
||||
vIw
|
||||
@@ -82350,7 +82365,7 @@ fXo
|
||||
rBC
|
||||
tiB
|
||||
uzX
|
||||
rYI
|
||||
bUu
|
||||
ohu
|
||||
uzX
|
||||
vIw
|
||||
@@ -82610,7 +82625,7 @@ uzX
|
||||
nuh
|
||||
hED
|
||||
uzX
|
||||
plq
|
||||
iHv
|
||||
xPG
|
||||
tzg
|
||||
axu
|
||||
@@ -82618,7 +82633,7 @@ xPG
|
||||
rgx
|
||||
rgx
|
||||
xPG
|
||||
mDe
|
||||
vmQ
|
||||
uzX
|
||||
uzX
|
||||
uzX
|
||||
@@ -84152,7 +84167,7 @@ uzX
|
||||
fxN
|
||||
fdc
|
||||
uzX
|
||||
iJt
|
||||
hNk
|
||||
gJv
|
||||
vlM
|
||||
vhO
|
||||
@@ -84160,7 +84175,7 @@ gJv
|
||||
cgP
|
||||
cgP
|
||||
gJv
|
||||
vNO
|
||||
xFv
|
||||
uzX
|
||||
uzX
|
||||
uzX
|
||||
@@ -84670,7 +84685,7 @@ vIw
|
||||
vIw
|
||||
imc
|
||||
vIw
|
||||
vIw
|
||||
tBA
|
||||
imc
|
||||
vIw
|
||||
vIw
|
||||
@@ -84924,13 +84939,13 @@ tkl
|
||||
pCt
|
||||
uzX
|
||||
vIw
|
||||
vIw
|
||||
uli
|
||||
imc
|
||||
vIw
|
||||
vIw
|
||||
uli
|
||||
imc
|
||||
vIw
|
||||
vIw
|
||||
uli
|
||||
vIw
|
||||
uzX
|
||||
tkl
|
||||
|
||||
@@ -16392,6 +16392,9 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/storage)
|
||||
"bsg" = (
|
||||
@@ -16403,6 +16406,9 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/storage)
|
||||
"bsi" = (
|
||||
@@ -16451,6 +16457,9 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/storage)
|
||||
"bsn" = (
|
||||
@@ -16471,6 +16480,9 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/storage)
|
||||
"bsq" = (
|
||||
@@ -16480,6 +16492,9 @@
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
|
||||
dir = 8
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plasteel/white/side{
|
||||
dir = 5
|
||||
},
|
||||
@@ -18613,6 +18628,9 @@
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/research)
|
||||
"bBH" = (
|
||||
@@ -18944,6 +18962,9 @@
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/research)
|
||||
"bDn" = (
|
||||
@@ -19028,6 +19049,9 @@
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
|
||||
dir = 4
|
||||
},
|
||||
/obj/structure/cable{
|
||||
icon_state = "4-8"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/storage)
|
||||
"bEg" = (
|
||||
@@ -19085,6 +19109,9 @@
|
||||
},
|
||||
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden/layer2,
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-8"
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/science/research)
|
||||
"bEs" = (
|
||||
@@ -19506,6 +19533,9 @@
|
||||
network = list("ss13","rd")
|
||||
},
|
||||
/obj/effect/decal/cleanable/dirt,
|
||||
/obj/structure/cable{
|
||||
icon_state = "0-4"
|
||||
},
|
||||
/turf/open/floor/plasteel,
|
||||
/area/science/storage)
|
||||
"bHi" = (
|
||||
@@ -39564,14 +39594,6 @@
|
||||
},
|
||||
/turf/open/floor/circuit/telecomms/server,
|
||||
/area/ai_monitored/turret_protected/ai)
|
||||
"kcy" = (
|
||||
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
|
||||
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port)
|
||||
"kcH" = (
|
||||
/obj/machinery/disposal/bin,
|
||||
/obj/structure/window/reinforced,
|
||||
@@ -59685,11 +59707,6 @@
|
||||
pixel_x = -23;
|
||||
pixel_y = -7
|
||||
},
|
||||
/obj/machinery/camera{
|
||||
c_tag = "Genetics Research";
|
||||
dir = 4;
|
||||
network = list("ss13","medbay")
|
||||
},
|
||||
/turf/open/floor/plasteel/white,
|
||||
/area/medical/genetics)
|
||||
"tZp" = (
|
||||
@@ -66101,6 +66118,7 @@
|
||||
/obj/structure/cable{
|
||||
icon_state = "1-2"
|
||||
},
|
||||
/obj/structure/disposalpipe/segment,
|
||||
/turf/open/floor/plating,
|
||||
/area/maintenance/port)
|
||||
"xBl" = (
|
||||
@@ -84561,7 +84579,7 @@ aSf
|
||||
aSf
|
||||
xBb
|
||||
aSf
|
||||
kcy
|
||||
pxE
|
||||
cOY
|
||||
fLr
|
||||
bjg
|
||||
|
||||
@@ -282,28 +282,28 @@ GLOBAL_LIST_EMPTY(species_list)
|
||||
checked_health["health"] = health
|
||||
return ..()
|
||||
|
||||
/proc/do_after(mob/user, var/delay, needhand = 1, atom/target = null, progress = 1, datum/callback/extra_checks = null, stayStill = TRUE)
|
||||
/proc/do_after(mob/user, delay, atom/target = null, needhand = TRUE, progress = TRUE, datum/callback/extra_checks = null, stayStill = TRUE)
|
||||
if(!user)
|
||||
return 0
|
||||
var/atom/Tloc = null
|
||||
return FALSE
|
||||
var/atom/target_loc = null
|
||||
if(target && !isturf(target))
|
||||
Tloc = target.loc
|
||||
target_loc = target.loc
|
||||
|
||||
if(target)
|
||||
LAZYADD(user.do_afters, target)
|
||||
LAZYADD(target.targeted_by, user)
|
||||
|
||||
var/atom/Uloc = user.loc
|
||||
var/atom/user_loc = user.loc
|
||||
|
||||
var/drifting = 0
|
||||
if(!user.Process_Spacemove(0) && user.inertia_dir)
|
||||
drifting = 1
|
||||
var/drifting = FALSE
|
||||
if(!user.Process_Spacemove() && user.inertia_dir)
|
||||
drifting = TRUE
|
||||
|
||||
var/holding = user.get_active_held_item()
|
||||
|
||||
var/holdingnull = 1 //User's hand started out empty, check for an empty hand
|
||||
var/holdingnull = TRUE //User's hand started out empty, check for an empty hand
|
||||
if(holding)
|
||||
holdingnull = 0 //Users hand started holding something, check to see if it's still holding that
|
||||
holdingnull = FALSE //Users hand started holding something, check to see if it's still holding that
|
||||
|
||||
delay = ((delay + user.action_speed_adjust) * user.action_speed_modifier * user.do_after_coefficent()) //yogs: darkspawn
|
||||
|
||||
@@ -313,33 +313,33 @@ GLOBAL_LIST_EMPTY(species_list)
|
||||
|
||||
var/endtime = world.time + delay
|
||||
var/starttime = world.time
|
||||
. = 1
|
||||
. = TRUE
|
||||
while (world.time < endtime)
|
||||
stoplag(1)
|
||||
if (progress)
|
||||
progbar.update(world.time - starttime)
|
||||
|
||||
if(drifting && !user.inertia_dir)
|
||||
drifting = 0
|
||||
Uloc = user.loc
|
||||
drifting = FALSE
|
||||
user_loc = user.loc
|
||||
|
||||
if(QDELETED(user) || user.stat || (!drifting && user.loc != Uloc && stayStill) || (extra_checks && !extra_checks.Invoke()))
|
||||
. = 0
|
||||
if(QDELETED(user) || user.stat || (!drifting && user.loc != user_loc && stayStill) || (extra_checks && !extra_checks.Invoke()))
|
||||
. = FALSE
|
||||
break
|
||||
|
||||
if(isliving(user))
|
||||
var/mob/living/L = user
|
||||
if(L.IsStun() || L.IsParalyzed())
|
||||
. = 0
|
||||
. = FALSE
|
||||
break
|
||||
|
||||
if(!QDELETED(Tloc) && (QDELETED(target) || Tloc != target.loc))
|
||||
if((Uloc != Tloc || Tloc != user) && !drifting && stayStill)
|
||||
. = 0
|
||||
if(!QDELETED(target_loc) && (QDELETED(target) || target_loc != target.loc))
|
||||
if((user_loc != target_loc || target_loc != user) && !drifting && stayStill)
|
||||
. = FALSE
|
||||
break
|
||||
|
||||
if(target && !(target in user.do_afters))
|
||||
. = 0
|
||||
. = FALSE
|
||||
break
|
||||
|
||||
if(needhand)
|
||||
@@ -347,10 +347,10 @@ GLOBAL_LIST_EMPTY(species_list)
|
||||
//i.e the hand is used to pull some item/tool out of the construction
|
||||
if(!holdingnull)
|
||||
if(!holding)
|
||||
. = 0
|
||||
. = FALSE
|
||||
break
|
||||
if(user.get_active_held_item() != holding)
|
||||
. = 0
|
||||
. = FALSE
|
||||
break
|
||||
if (progress)
|
||||
qdel(progbar)
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
var/slip_out_message = pick("silently fades in", "leaps out of thin air","appears", "walks out of an invisible doorway",\
|
||||
"slides out of a fold in spacetime")
|
||||
to_chat(user, span_notice("You try to align with the bluespace stream..."))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
new /obj/effect/temp_visual/bluespace_fissure(get_turf(src))
|
||||
new /obj/effect/temp_visual/bluespace_fissure(get_turf(linked_to))
|
||||
user.forceMove(get_turf(linked_to))
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
|
||||
/datum/component/art/proc/on_attack_hand(datum/source, mob/M)
|
||||
to_chat(M, "You start examining [parent].")
|
||||
if(!do_after(M, 2 SECONDS, target = parent))
|
||||
if(!do_after(M, 2 SECONDS, parent))
|
||||
return
|
||||
on_obj_examine(source, M)
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
R.time *= 0.75
|
||||
if(check_contents(R, contents))
|
||||
if(check_tools(user, R, contents))
|
||||
if(do_after(user, R.time, target = user))
|
||||
if(do_after(user, R.time, user))
|
||||
contents = get_surroundings(user)
|
||||
if(!check_contents(R, contents))
|
||||
return ", missing component."
|
||||
|
||||
@@ -321,7 +321,7 @@
|
||||
return
|
||||
M.visible_message(span_warning("[AM] queues their servos to fling [M]!"))
|
||||
playsound(AM,'sound/misc/borg/fling_start.ogg',80,1,-1)
|
||||
if(!do_after(AM, 1 SECONDS, target = M))
|
||||
if(!do_after(AM, 1 SECONDS, M))
|
||||
M.visible_message(span_boldwarning("[AM]'s servos disengage!"))
|
||||
playsound(AM,'sound/misc/borg/fling_cancel.ogg',80,1,-1)
|
||||
return
|
||||
|
||||
@@ -215,7 +215,7 @@
|
||||
return
|
||||
var/datum/progressbar/progress = new(M, len, I.loc)
|
||||
var/list/rejections = list()
|
||||
while(do_after(M, 1 SECONDS, TRUE, parent, FALSE, CALLBACK(src, .proc/handle_mass_pickup, things, I.loc, rejections, progress)))
|
||||
while(do_after(M, 1 SECONDS, parent, TRUE, FALSE, CALLBACK(src, .proc/handle_mass_pickup, things, I.loc, rejections, progress)))
|
||||
stoplag(1)
|
||||
qdel(progress)
|
||||
to_chat(M, span_notice("You put everything you could [insert_preposition] [parent]."))
|
||||
@@ -273,7 +273,7 @@
|
||||
var/turf/T = get_turf(A)
|
||||
var/list/things = contents()
|
||||
var/datum/progressbar/progress = new(M, length(things), T)
|
||||
while (do_after(M, 1 SECONDS, TRUE, T, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress)))
|
||||
while (do_after(M, 1 SECONDS, T, TRUE, FALSE, CALLBACK(src, .proc/mass_remove_from_storage, T, things, progress)))
|
||||
stoplag(1)
|
||||
qdel(progress)
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
/datum/martial_art/mushpunch/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
|
||||
var/atk_verb
|
||||
to_chat(A, span_spider("You begin to wind up an attack..."))
|
||||
if(!do_after(A, 2.5 SECONDS, target = D))
|
||||
if(!do_after(A, 2.5 SECONDS, D))
|
||||
to_chat(A, span_spider("<b>Your attack was interrupted!</b>"))
|
||||
return TRUE //martial art code was a mistake
|
||||
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
|
||||
|
||||
@@ -147,7 +147,7 @@
|
||||
/obj/screen/alert/status_effect/strandling/Click(location, control, params)
|
||||
. = ..()
|
||||
to_chat(mob_viewer, span_notice("You attempt to remove the durathread strand from around your neck."))
|
||||
if(do_after(mob_viewer, 3.5 SECONDS, null, mob_viewer))
|
||||
if(do_after(mob_viewer, 3.5 SECONDS, mob_viewer, FALSE))
|
||||
if(isliving(mob_viewer))
|
||||
var/mob/living/L = mob_viewer
|
||||
to_chat(mob_viewer, span_notice("You succesfuly remove the durathread strand."))
|
||||
|
||||
@@ -125,6 +125,7 @@
|
||||
|
||||
/datum/world_topic/server_hop
|
||||
keyword = "server_hop"
|
||||
require_comms_key = TRUE
|
||||
|
||||
/datum/world_topic/server_hop/Run(list/input)
|
||||
var/expected_key = input[keyword]
|
||||
|
||||
@@ -238,7 +238,7 @@
|
||||
/datum/wound/blunt/moderate/proc/chiropractice(mob/living/carbon/human/user)
|
||||
var/time = base_treat_time
|
||||
|
||||
if(!do_after(user, time, target=victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
if(!do_after(user, time, victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
return
|
||||
|
||||
if(prob(65))
|
||||
@@ -257,7 +257,7 @@
|
||||
/datum/wound/blunt/moderate/proc/malpractice(mob/living/carbon/human/user)
|
||||
var/time = base_treat_time
|
||||
|
||||
if(!do_after(user, time, target=victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
if(!do_after(user, time, victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
return
|
||||
|
||||
if(prob(65))
|
||||
@@ -278,7 +278,7 @@
|
||||
else
|
||||
user.visible_message(span_danger("[user] begins resetting [victim]'s [limb.name] with [I]."), span_notice("You begin resetting [victim]'s [limb.name] with [I]..."))
|
||||
|
||||
if(!do_after(user, base_treat_time * (user == victim ? 1.5 : 1), target = victim, extra_checks=CALLBACK(src, .proc/still_exists)))
|
||||
if(!do_after(user, base_treat_time * (user == victim ? 1.5 : 1), victim, extra_checks=CALLBACK(src, .proc/still_exists)))
|
||||
return
|
||||
|
||||
if(victim == user)
|
||||
@@ -356,7 +356,7 @@
|
||||
|
||||
user.visible_message(span_danger("[user] begins hastily applying [I] to [victim]'s' [limb.name]..."), span_warning("You begin hastily applying [I] to [user == victim ? "your" : "[victim]'s"] [limb.name], disregarding the warning label..."))
|
||||
|
||||
if(!do_after(user, base_treat_time * 1.5 * (user == victim ? 1.5 : 1), target = victim, extra_checks=CALLBACK(src, .proc/still_exists)))
|
||||
if(!do_after(user, base_treat_time * 1.5 * (user == victim ? 1.5 : 1), victim, extra_checks=CALLBACK(src, .proc/still_exists)))
|
||||
return
|
||||
|
||||
I.use(1)
|
||||
@@ -397,7 +397,7 @@
|
||||
|
||||
user.visible_message(span_danger("[user] begins applying [I] to [victim]'s' [limb.name]..."), span_warning("You begin applying [I] to [user == victim ? "your" : "[victim]'s"] [limb.name]..."))
|
||||
|
||||
if(!do_after(user, base_treat_time * (user == victim ? 1.5 : 1), target = victim, extra_checks=CALLBACK(src, .proc/still_exists)))
|
||||
if(!do_after(user, base_treat_time * (user == victim ? 1.5 : 1), victim, extra_checks=CALLBACK(src, .proc/still_exists)))
|
||||
return
|
||||
|
||||
if(victim == user)
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
to_chat(user, span_warning("You need to open [I] first."))
|
||||
return
|
||||
user.visible_message(span_notice("[user] begins wrapping [victim]'s [limb.name] with [I]..."), span_notice("You begin wrapping [user == victim ? "your" : "[victim]'s"] [limb.name] with [I]..."))
|
||||
if(!do_after(user, (user == victim ? I.self_delay : I.other_delay), target=victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
if(!do_after(user, (user == victim ? I.self_delay : I.other_delay), victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
return
|
||||
|
||||
limb.heal_damage(I.heal_brute, I.heal_burn)
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
/datum/wound/pierce/proc/suture(obj/item/stack/medical/suture/I, mob/user)
|
||||
var/self_penalty_mult = (user == victim ? 1.4 : 1)
|
||||
user.visible_message(span_notice("[user] begins stitching [victim]'s [limb.name] with [I]..."), span_notice("You begin stitching [user == victim ? "your" : "[victim]'s"] [limb.name] with [I]..."))
|
||||
if(!do_after(user, base_treat_time * self_penalty_mult * I.treatment_speed, target=victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
if(!do_after(user, base_treat_time * self_penalty_mult * I.treatment_speed, victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
return
|
||||
user.visible_message(span_green("[user] stitches up some of the bleeding on [victim]."), span_green("You stitch up some of the bleeding on [user == victim ? "yourself" : "[victim]"]."))
|
||||
var/blood_sutured = I.stop_bleeding / self_penalty_mult
|
||||
@@ -120,7 +120,7 @@
|
||||
var/self_penalty_mult = (user == victim ? 1.5 : 1) // 50% longer and less effective if you do it to yourself
|
||||
|
||||
user.visible_message(span_danger("[user] begins cauterizing [victim]'s [limb.name] with [I]..."), span_warning("You begin cauterizing [user == victim ? "your" : "[victim]'s"] [limb.name] with [I]..."))
|
||||
if(!do_after(user, base_treat_time * self_penalty_mult * improv_penalty_mult, target=victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
if(!do_after(user, base_treat_time * self_penalty_mult * improv_penalty_mult, victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
return
|
||||
|
||||
user.visible_message(span_green("[user] cauterizes some of the bleeding on [victim]."), span_green("You cauterize some of the bleeding on [victim]."))
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
|
||||
user.visible_message(span_notice("[user] begins licking the wounds on [victim]'s [limb.name]."), span_notice("You begin licking the wounds on [victim]'s [limb.name]..."), ignored_mobs=victim)
|
||||
to_chat(victim, "<span class='notice'>[user] begins to lick the wounds on your [limb.name].</span")
|
||||
if(!do_after(user, base_treat_time, target=victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
if(!do_after(user, base_treat_time, victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
return
|
||||
|
||||
user.visible_message(span_notice("[user] licks the wounds on [victim]'s [limb.name]."), span_notice("You lick some of the wounds on [victim]'s [limb.name]"), ignored_mobs=victim)
|
||||
@@ -195,7 +195,7 @@
|
||||
/datum/wound/slash/proc/las_cauterize(obj/item/gun/energy/laser/lasgun, mob/user)
|
||||
var/self_penalty_mult = (user == victim ? 1.25 : 1)
|
||||
user.visible_message(span_warning("[user] begins aiming [lasgun] directly at [victim]'s [limb.name]..."), span_userdanger("You begin aiming [lasgun] directly at [user == victim ? "your" : "[victim]'s"] [limb.name]..."))
|
||||
if(!do_after(user, base_treat_time * self_penalty_mult, target=victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
if(!do_after(user, base_treat_time * self_penalty_mult, victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
return
|
||||
var/damage = lasgun.chambered.BB.damage
|
||||
lasgun.chambered.BB.bare_wound_bonus = 0
|
||||
@@ -213,7 +213,7 @@
|
||||
var/self_penalty_mult = (user == victim ? 1.5 : 1) // 50% longer and less effective if you do it to yourself
|
||||
|
||||
user.visible_message(span_danger("[user] begins cauterizing [victim]'s [limb.name] with [I]..."), span_warning("You begin cauterizing [user == victim ? "your" : "[victim]'s"] [limb.name] with [I]..."))
|
||||
if(!do_after(user, base_treat_time * self_penalty_mult * improv_penalty_mult, target=victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
if(!do_after(user, base_treat_time * self_penalty_mult * improv_penalty_mult, victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
return
|
||||
|
||||
user.visible_message(span_green("[user] cauterizes some of the bleeding on [victim]."), span_green("You cauterize some of the bleeding on [victim]."))
|
||||
@@ -233,7 +233,7 @@
|
||||
var/self_penalty_mult = (user == victim ? 1.4 : 1)
|
||||
user.visible_message(span_notice("[user] begins stitching [victim]'s [limb.name] with [I]..."), span_notice("You begin stitching [user == victim ? "your" : "[victim]'s"] [limb.name] with [I]..."))
|
||||
|
||||
if(!do_after(user, base_treat_time * self_penalty_mult * I.treatment_speed, target=victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
if(!do_after(user, base_treat_time * self_penalty_mult * I.treatment_speed, victim, extra_checks = CALLBACK(src, .proc/still_exists)))
|
||||
return
|
||||
user.visible_message(span_green("[user] stitches up some of the bleeding on [victim]."), span_green("You stitch up some of the bleeding on [user == victim ? "yourself" : "[victim]"]."))
|
||||
var/blood_sutured = I.stop_bleeding / self_penalty_mult
|
||||
|
||||
@@ -780,7 +780,7 @@
|
||||
to_chat(user,span_warning("You can't dump the contents of [src_object.parent] into itself!"))
|
||||
return
|
||||
//yogs end
|
||||
while (do_after(user, 1 SECONDS, TRUE, src, FALSE, CALLBACK(STR, /datum/component/storage.proc/handle_mass_item_insertion, things, src_object, user, progress)))
|
||||
while (do_after(user, 1 SECONDS, src, TRUE, FALSE, CALLBACK(STR, /datum/component/storage.proc/handle_mass_item_insertion, things, src_object, user, progress)))
|
||||
stoplag(1)
|
||||
qdel(progress)
|
||||
to_chat(user, span_notice("You dump as much of [src_object.parent]'s contents into [STR.insert_preposition]to [src] as you can."))
|
||||
|
||||
@@ -447,6 +447,7 @@
|
||||
var/obj/vent = pick_n_take(vents)
|
||||
var/mob/living/carbon/alien/larva/new_xeno = new(vent.loc)
|
||||
new_xeno.key = applicant.key
|
||||
new_xeno.move_into_vent(vent)
|
||||
message_admins("[ADMIN_LOOKUPFLW(new_xeno)] has been made into an alien by the midround ruleset.")
|
||||
log_game("DYNAMIC: [key_name(new_xeno)] was spawned as an alien by the midround ruleset.")
|
||||
return new_xeno
|
||||
|
||||
@@ -475,7 +475,7 @@
|
||||
return
|
||||
user.visible_message("[user.name] wires the airlock controller.", \
|
||||
span_notice("You start wiring the airlock controller..."))
|
||||
if (do_after(user, 2 SECONDS, target = src))
|
||||
if (do_after(user, 2 SECONDS, src))
|
||||
if (cable.get_amount() >= 5 && buildstage == 1)
|
||||
cable.use(5)
|
||||
to_chat(user, span_notice("You wire the airlock controller."))
|
||||
|
||||
@@ -210,7 +210,7 @@
|
||||
"You begin to load a design from \the [O]...",
|
||||
"You hear the chatter of a floppy drive.")
|
||||
var/obj/item/disk/design_disk/D = O
|
||||
if(do_after(user, 1.5 SECONDS, target = src))
|
||||
if(do_after(user, 1.5 SECONDS, src))
|
||||
for(var/B in D.blueprints)
|
||||
if(B)
|
||||
stored_research.add_design(B)
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
"You begin to load a surgery protocol from \the [O]...",
|
||||
"You hear the chatter of a floppy drive.")
|
||||
var/obj/item/disk/surgery/D = O
|
||||
if(do_after(user, 1 SECONDS, target = src))
|
||||
if(do_after(user, 1 SECONDS, src))
|
||||
advanced_surgeries |= D.surgeries
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
@@ -1153,7 +1153,7 @@ GLOBAL_LIST_INIT(arcade_prize_pool, list(
|
||||
if(!c_user.get_bodypart(BODY_ZONE_L_ARM) && !c_user.get_bodypart(BODY_ZONE_R_ARM))
|
||||
return
|
||||
to_chat(c_user, span_warning("You move your hand towards the machine, and begin to hesitate as a bloodied guillotine emerges from inside of it..."))
|
||||
if(do_after(c_user, 5 SECONDS, target = src))
|
||||
if(do_after(c_user, 5 SECONDS, src))
|
||||
to_chat(c_user, span_userdanger("The guillotine drops on your arm, and the machine sucks it in!"))
|
||||
playsound(loc, 'sound/weapons/slice.ogg', 25, 1, -1)
|
||||
var/which_hand = BODY_ZONE_L_ARM
|
||||
|
||||
@@ -372,7 +372,7 @@
|
||||
to_chat(user, "[span_sevtug_small("The [target.name]'s inner machinery protests vehemently as it attempts to warp you to a non-brass tile, this will take time...")]")
|
||||
warp_time = 300
|
||||
warping = new(T, user, warp_time)
|
||||
if(!do_after(user, warp_time, target = warping, extra_checks = CALLBACK(src, .proc/is_canceled)))
|
||||
if(!do_after(user, warp_time, warping, extra_checks = CALLBACK(src, .proc/is_canceled)))
|
||||
to_chat(user, "<span class='bold sevtug_small'>Warp interrupted.</span>")
|
||||
QDEL_NULL(warping)
|
||||
button_icon_state = "warp_down"
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
user.visible_message(span_notice("[user] presses [multitool] into [src]'s ID slot..."), \
|
||||
span_notice("You begin overriding the clamps on [src]..."))
|
||||
playsound(src, 'sound/machines/click.ogg', 50, TRUE)
|
||||
if(!do_after(user, 10 SECONDS, target = src) || !clamps_locked)
|
||||
if(!do_after(user, 10 SECONDS, src) || !clamps_locked)
|
||||
return
|
||||
user.visible_message(span_notice("[user] pulses [multitool], and [src]'s clamps slide up."), \
|
||||
span_notice("You override the locking clamps on [src]!"))
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
return
|
||||
else
|
||||
to_chat(user, span_notice("You start adding [I] to [src]..."))
|
||||
if(do_after(user, 5 SECONDS, target=src))
|
||||
if(do_after(user, 5 SECONDS, src))
|
||||
W.use(5)
|
||||
new /turf/closed/wall/mineral/wood/nonmetal(get_turf(src))
|
||||
qdel(src)
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
user.visible_message(span_notice("You see [user] kicking against the door of [src]!"), \
|
||||
span_notice("You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)"), \
|
||||
span_italics("You hear a metallic creaking from [src]."))
|
||||
if(do_after(user,(breakout_time), target = src))
|
||||
if(do_after(user,(breakout_time), src))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked)
|
||||
return
|
||||
locked = FALSE
|
||||
|
||||
@@ -961,7 +961,7 @@
|
||||
to_chat(user, span_warning("You need at least 2 metal sheets to reinforce [src]."))
|
||||
return
|
||||
to_chat(user, span_notice("You start reinforcing [src]."))
|
||||
if(do_after(user, 2 SECONDS, TRUE, src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
if(!panel_open || !S.use(2))
|
||||
return
|
||||
user.visible_message(span_notice("[user] reinforces \the [src] with metal."),
|
||||
@@ -975,7 +975,7 @@
|
||||
to_chat(user, span_warning("You need at least 2 plasteel sheets to reinforce [src]."))
|
||||
return
|
||||
to_chat(user, span_notice("You start reinforcing [src]."))
|
||||
if(do_after(user, 2 SECONDS, TRUE, src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
if(!panel_open || !S.use(2))
|
||||
return
|
||||
user.visible_message(span_notice("[user] reinforces \the [src] with plasteel."),
|
||||
@@ -1141,10 +1141,10 @@
|
||||
user.visible_message(span_warning("[user] starts forcing open [src]!"), span_velvet("<b>ueahz</b><br>You begin forcing open [src]..."))
|
||||
playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE)
|
||||
if(!T.twin)
|
||||
if(!do_after(user, 7.5 SECONDS, target = src))
|
||||
if(!do_after(user, 7.5 SECONDS, src))
|
||||
return
|
||||
else
|
||||
if(!do_after(user, 5 SECONDS, target = src))
|
||||
if(!do_after(user, 5 SECONDS, src))
|
||||
return
|
||||
open(2)
|
||||
if(density && !open(2))
|
||||
@@ -1158,12 +1158,12 @@
|
||||
"<span class='velvet italics'>You loudly begin smashing down [src].</span>")
|
||||
while(obj_integrity > max_integrity * 0.25)
|
||||
if(T.twin)
|
||||
if(!do_after(user, rand(4, 6), target = src))
|
||||
if(!do_after(user, rand(4, 6), src))
|
||||
T.darkspawn.use_psi(30)
|
||||
qdel(T)
|
||||
return
|
||||
else
|
||||
if(!do_after(user, rand(8, 10), target = src))
|
||||
if(!do_after(user, rand(8, 10), src))
|
||||
T.darkspawn.use_psi(30)
|
||||
qdel(T)
|
||||
return
|
||||
@@ -1288,7 +1288,7 @@
|
||||
|
||||
playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) //is it aliens or just the CE being a dick?
|
||||
prying_so_hard = TRUE
|
||||
if(do_after(user, time_to_open, TRUE, src))
|
||||
if(do_after(user, time_to_open, src))
|
||||
open(2)
|
||||
if(density && !open(2))
|
||||
to_chat(user, span_warning("Despite your attempts, [src] refuses to open."))
|
||||
@@ -1322,7 +1322,7 @@
|
||||
|
||||
if(hasPower())
|
||||
playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, TRUE) //is it aliens or just the CE being a dick?
|
||||
if(do_after(user, time_to_open, TRUE, src))
|
||||
if(do_after(user, time_to_open, src))
|
||||
open(2)
|
||||
if(density && !open(2))
|
||||
to_chat(user, span_warning("Despite your attempts, [src] refuses to open."))
|
||||
@@ -1500,7 +1500,7 @@
|
||||
playsound(src, 'sound/machines/airlock_alien_prying.ogg', 100, 1)
|
||||
|
||||
|
||||
if(do_after(user, time_to_open, TRUE, src))
|
||||
if(do_after(user, time_to_open, src))
|
||||
if(density && !open(2)) //The airlock is still closed, but something prevented it opening. (Another player noticed and bolted/welded the airlock in time!)
|
||||
to_chat(user, span_warning("Despite your efforts, [src] managed to resist your attempts to open it!"))
|
||||
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
if(is_holding_pressure())
|
||||
// tell the user that this is a bad idea, and have a do_after as well
|
||||
to_chat(user, span_warning("As you begin crowbarring \the [src] a gush of air blows in your face... maybe you should reconsider?"))
|
||||
if(!do_after(user, 1.5 SECONDS, TRUE, src)) // give them a few seconds to reconsider their decision.
|
||||
if(!do_after(user, 1.5 SECONDS, src)) // give them a few seconds to reconsider their decision.
|
||||
return
|
||||
log_game("[key_name_admin(user)] has opened a firelock with a pressure difference at [AREACOORD(loc)]") // there bibby I made it logged just for you. Enjoy.
|
||||
// since we have high-pressure-ness, close all other firedoors on the tile
|
||||
@@ -560,7 +560,7 @@
|
||||
user.visible_message(span_notice("[user] begins reinforcing [src]..."), \
|
||||
span_notice("You begin reinforcing [src]..."))
|
||||
playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1)
|
||||
if(do_after(user, 6 SECONDS, target = src))
|
||||
if(do_after(user, 6 SECONDS, src))
|
||||
if(constructionStep != CONSTRUCTION_PANEL_OPEN || reinforced || P.get_amount() < 2 || !P)
|
||||
return
|
||||
user.visible_message(span_notice("[user] reinforces [src]."), \
|
||||
@@ -621,7 +621,7 @@
|
||||
user.visible_message(span_notice("[user] begins wiring [src]..."), \
|
||||
span_notice("You begin adding wires to [src]..."))
|
||||
playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1)
|
||||
if(do_after(user, 6 SECONDS, target = src))
|
||||
if(do_after(user, 6 SECONDS, src))
|
||||
if(constructionStep != CONSTRUCTION_GUTTED || B.get_amount() < 5 || !B)
|
||||
return
|
||||
user.visible_message(span_notice("[user] adds wires to [src]."), \
|
||||
@@ -653,7 +653,7 @@
|
||||
user.visible_message(span_notice("[user] starts adding [C] to [src]..."), \
|
||||
span_notice("You begin adding a circuit board to [src]..."))
|
||||
playsound(get_turf(src), 'sound/items/deconstruct.ogg', 50, 1)
|
||||
if(!do_after(user, 4 SECONDS, target = src))
|
||||
if(!do_after(user, 4 SECONDS, src))
|
||||
return
|
||||
if(constructionStep != CONSTRUCTION_NOCIRCUIT)
|
||||
return
|
||||
|
||||
@@ -134,7 +134,7 @@
|
||||
if(W.tool_behaviour == TOOL_WIRECUTTER)
|
||||
if(id != null)
|
||||
to_chat(user, span_notice("You start to unlink the door."))
|
||||
if(do_after(user, 1 SECONDS SECONDS, target = src))
|
||||
if(do_after(user, 10 SECONDS, src))
|
||||
to_chat(user, span_notice("You unlink the door."))
|
||||
id = null
|
||||
else
|
||||
@@ -145,7 +145,7 @@
|
||||
if(W.tool_behaviour == TOOL_WELDER && constructionstate == INTACT)
|
||||
to_chat(user, span_notice("You start to remove the outer plasteel cover."))
|
||||
playsound(src.loc, 'sound/items/welder.ogg', 50, 1)
|
||||
if(do_after(user, 1 SECONDS SECONDS, target = src))
|
||||
if(do_after(user, 10 SECONDS, src))
|
||||
to_chat(user, span_notice("You remove the outer plasteel cover."))
|
||||
constructionstate = CUT_COVER
|
||||
id = null // Effectivley breaks the door
|
||||
@@ -156,7 +156,7 @@
|
||||
|
||||
if(W.tool_behaviour == TOOL_CROWBAR && constructionstate == CUT_COVER)
|
||||
to_chat(user, span_notice("You start to remove all of the internal components"))
|
||||
if(do_after(user, 15 SECONDS, target = src))
|
||||
if(do_after(user, 15 SECONDS, src))
|
||||
if(istype(src, /obj/machinery/door/poddoor/shutters)) // Simplified Code
|
||||
new /obj/item/stack/sheet/plasteel(loc, 5)
|
||||
new /obj/item/electronics/airlock(loc)
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
user.visible_message(span_notice("You see [user] kicking against the door of [src]!"), \
|
||||
span_notice("You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)"), \
|
||||
span_italics("You hear a metallic creaking from [src]."))
|
||||
if(do_after(user, breakout_time, target = src))
|
||||
if(do_after(user, breakout_time, src))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open)
|
||||
return
|
||||
free_exit = TRUE
|
||||
|
||||
@@ -102,7 +102,7 @@ The console is located at computer/gulag_teleporter.dm
|
||||
user.visible_message(span_notice("You see [user] kicking against the door of [src]!"), \
|
||||
span_notice("You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)"), \
|
||||
span_italics("You hear a metallic creaking from [src]."))
|
||||
if(do_after(user,(breakout_time), target = src))
|
||||
if(do_after(user,(breakout_time), src))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open || !locked)
|
||||
return
|
||||
locked = FALSE
|
||||
|
||||
@@ -245,7 +245,7 @@
|
||||
if(!usr.canUseTopic(src, BE_CLOSE, ismonkey(usr)))
|
||||
return
|
||||
usr.visible_message(span_notice("[usr] starts closing [src]..."), span_notice("You start closing [src]..."))
|
||||
if(do_after(usr, 3 SECONDS, target = usr))
|
||||
if(do_after(usr, 3 SECONDS, usr))
|
||||
usr.put_in_hands(briefcase)
|
||||
moveToNullspace() //hides it from suitcase contents
|
||||
closed = TRUE
|
||||
@@ -285,7 +285,7 @@
|
||||
return
|
||||
add_fingerprint(user)
|
||||
user.visible_message(span_notice("[user] starts setting down [src]..."), span_notice("You start setting up [pad]..."))
|
||||
if(do_after(user, 3 SECONDS, target = user))
|
||||
if(do_after(user, 3 SECONDS, user))
|
||||
pad.forceMove(get_turf(src))
|
||||
pad.update_indicator()
|
||||
pad.closed = FALSE
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
update_icon()
|
||||
to_chat(user, "<span class='notice'>You start pressing a new license plate!</span>")
|
||||
|
||||
if(!do_after(user, 40, target = src))
|
||||
if(!do_after(user, 4 SECONDS, src))
|
||||
pressing = FALSE
|
||||
update_icon()
|
||||
return FALSE
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
interact(user, K.qpad)
|
||||
else
|
||||
to_chat(user, span_notice("You insert [K] into [src]'s card slot, initiating the link procedure."))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(do_after(user, 4 SECONDS, src))
|
||||
to_chat(user, span_notice("You complete the link between [K] and [src]."))
|
||||
K.qpad = src
|
||||
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
to_chat(user, span_warning("You need one length of cable to repair [src]!"))
|
||||
return
|
||||
to_chat(user, span_notice("You begin to replace the wires..."))
|
||||
if(do_after(user, 3 SECONDS, target = src))
|
||||
if(do_after(user, 3 SECONDS, src))
|
||||
if(coil.get_amount() < 1)
|
||||
return
|
||||
coil.use(1)
|
||||
|
||||
@@ -306,7 +306,7 @@
|
||||
user.visible_message(span_notice("You see [user] kicking against the doors of [src]!"), \
|
||||
span_notice("You start kicking against the doors... (this will take about [DisplayTimeText(breakout_time)].)"), \
|
||||
span_italics("You hear a thump from [src]."))
|
||||
if(do_after(user,(breakout_time), target = src))
|
||||
if(do_after(user, (breakout_time), src))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src )
|
||||
return
|
||||
user.visible_message(span_warning("[user] successfully broke out of [src]!"), \
|
||||
|
||||
@@ -105,7 +105,7 @@
|
||||
var/C = chassis.loc
|
||||
set_ready_state(0)
|
||||
chassis.use_power(energy_drain)
|
||||
. = do_after(chassis.occupant, equip_cooldown, target=target)
|
||||
. = do_after(chassis.occupant, equip_cooldown, target)
|
||||
set_ready_state(1)
|
||||
if(!chassis || chassis.loc != C || src != chassis.selected || !(get_dir(chassis, target)&chassis.dir))
|
||||
return 0
|
||||
@@ -114,7 +114,7 @@
|
||||
if(!chassis)
|
||||
return
|
||||
var/C = chassis.loc
|
||||
. = do_after(chassis.occupant, delay, target=target)
|
||||
. = do_after(chassis.occupant, delay, target)
|
||||
if(!chassis || chassis.loc != C || src != chassis.selected || !(get_dir(chassis, target)&chassis.dir))
|
||||
return 0
|
||||
|
||||
|
||||
@@ -926,7 +926,7 @@
|
||||
|
||||
visible_message("[user] starts to climb into [name].")
|
||||
|
||||
if(do_after(user, enter_delay, target = src))
|
||||
if(do_after(user, enter_delay, src))
|
||||
if(obj_integrity <= 0)
|
||||
to_chat(user, span_warning("You cannot get in the [name], it has been destroyed!"))
|
||||
else if(occupant)
|
||||
@@ -975,7 +975,7 @@
|
||||
|
||||
visible_message(span_notice("[user] starts to insert an MMI into [name]."))
|
||||
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(do_after(user, 4 SECONDS, src))
|
||||
if(!occupant)
|
||||
return mmi_moved_inside(mmi_as_oc, user)
|
||||
else
|
||||
@@ -1022,7 +1022,7 @@
|
||||
/obj/mecha/container_resist(mob/living/user)
|
||||
is_currently_ejecting = TRUE
|
||||
to_chat(occupant, "<span class='notice'>You begin the ejection procedure. Equipment is disabled during this process. Hold still to finish ejecting.<span>")
|
||||
if(do_after(occupant,exit_delay, target = src))
|
||||
if(do_after(occupant, exit_delay, src))
|
||||
to_chat(occupant, "<span class='notice'>You exit the mech.<span>")
|
||||
go_out()
|
||||
else
|
||||
|
||||
@@ -223,7 +223,7 @@
|
||||
|
||||
/obj/mecha/working/ripley/relay_container_resist(mob/living/user, obj/O)
|
||||
to_chat(user, span_notice("You lean on the back of [O] and start pushing so it falls out of [src]."))
|
||||
if(do_after(user, 30 SECONDS, target = O))
|
||||
if(do_after(user, 30 SECONDS, O))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src || O.loc != src )
|
||||
return
|
||||
to_chat(user, span_notice("You successfully pushed [O] out of [src]!"))
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
qdel(P) //delete it now to cut down on sanity checks afterwards. Agouri's code supports rerolling it anyway
|
||||
playsound(D.loc, 'sound/items/poster_being_created.ogg', 100, 1)
|
||||
|
||||
if(do_after(user, PLACE_SPEED, target=src))
|
||||
if(do_after(user, PLACE_SPEED, src))
|
||||
if(!D || QDELETED(D))
|
||||
return
|
||||
|
||||
@@ -205,7 +205,7 @@
|
||||
D.forceMove(src)
|
||||
playsound(D.loc, 'sound/items/poster_being_created.ogg', 100, 1)
|
||||
|
||||
if(do_after(user, PLACE_SPEED, target=src))
|
||||
if(do_after(user, PLACE_SPEED, src))
|
||||
if(!D || QDELETED(D))
|
||||
return
|
||||
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
to_chat(user, span_warning("You can't plant the mine here!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start arming the [src]..."))
|
||||
if(do_after(user, arming_time, target = src))
|
||||
if(do_after(user, arming_time, src))
|
||||
new mine_type(plantspot)
|
||||
to_chat(user, span_notice("You plant and arm the [src]."))
|
||||
log_combat(user, src, "planted and armed")
|
||||
@@ -91,7 +91,7 @@
|
||||
/obj/effect/mine/attackby(obj/I, mob/user, params)
|
||||
if(istype(I, /obj/item/multitool))
|
||||
to_chat(user, span_notice("You begin to disarm the [src]..."))
|
||||
if(do_after(user, disarm_time, target = src))
|
||||
if(do_after(user, disarm_time, src))
|
||||
to_chat(user, span_notice("You disarm the [src]."))
|
||||
new disarm_product(src.loc)
|
||||
qdel(src)
|
||||
|
||||
@@ -216,7 +216,7 @@
|
||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||
to_chat(user, span_notice("You struggle against the tight bonds... (This will take about [DisplayTimeText(breakout_time)].)"))
|
||||
visible_message("You see something struggling and writhing in \the [src]!")
|
||||
if(do_after(user,(breakout_time), target = src))
|
||||
if(do_after(user, (breakout_time), src))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src)
|
||||
return
|
||||
qdel(src)
|
||||
|
||||
@@ -795,7 +795,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
|
||||
return
|
||||
|
||||
else
|
||||
if(!do_after(user, delay, target=target, extra_checks=tool_check))
|
||||
if(!do_after(user, delay, target, extra_checks=tool_check))
|
||||
return
|
||||
else
|
||||
// Invoke the extra checks once, just in case.
|
||||
|
||||
@@ -540,7 +540,7 @@ RLD
|
||||
var/delay = rcd_results["delay"] * delay_mod
|
||||
var/obj/effect/constructing_effect/rcd_effect = new(get_turf(A), delay, src.mode)
|
||||
if(checkResource(rcd_results["cost"], user))
|
||||
if(do_after(user, delay, target = A))
|
||||
if(do_after(user, delay, A))
|
||||
if(checkResource(rcd_results["cost"], user))
|
||||
if(A.rcd_act(user, src, rcd_results["mode"]))
|
||||
rcd_effect.end_animation()
|
||||
@@ -842,7 +842,7 @@ RLD
|
||||
to_chat(user, span_notice("You start deconstructing [A]..."))
|
||||
user.Beam(A,icon_state="nzcrentrs_power",time=15)
|
||||
playsound(src.loc, 'sound/machines/click.ogg', 50, TRUE)
|
||||
if(do_after(user, decondelay, target = A))
|
||||
if(do_after(user, decondelay, A))
|
||||
if(!useResource(deconcost, user))
|
||||
return FALSE
|
||||
activate()
|
||||
@@ -857,7 +857,7 @@ RLD
|
||||
user.Beam(A,icon_state="nzcrentrs_power",time=15)
|
||||
playsound(src.loc, 'sound/machines/click.ogg', 50, TRUE)
|
||||
playsound(src.loc, 'sound/effects/light_flicker.ogg', 50, FALSE)
|
||||
if(do_after(user, floordelay, target = A))
|
||||
if(do_after(user, floordelay, A))
|
||||
if(!istype(W))
|
||||
return FALSE
|
||||
var/list/candidates = list()
|
||||
@@ -903,7 +903,7 @@ RLD
|
||||
user.Beam(A,icon_state="light_beam",time=15)
|
||||
playsound(src.loc, 'sound/machines/click.ogg', 50, TRUE)
|
||||
playsound(src.loc, 'sound/effects/light_flicker.ogg', 50, TRUE)
|
||||
if(do_after(user, floordelay, target = A))
|
||||
if(do_after(user, floordelay, A))
|
||||
if(!istype(F))
|
||||
return 0
|
||||
if(!useResource(floorcost, user))
|
||||
|
||||
@@ -404,7 +404,7 @@ GLOBAL_LIST_INIT(fluid_duct_recipes, list(
|
||||
// yogs end
|
||||
to_chat(user, span_notice("You start destroying a pipe..."))
|
||||
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
|
||||
if(do_after(user, destroy_speed, target = A))
|
||||
if(do_after(user, destroy_speed, A))
|
||||
activate()
|
||||
qdel(A)
|
||||
return
|
||||
@@ -414,7 +414,7 @@ GLOBAL_LIST_INIT(fluid_duct_recipes, list(
|
||||
var/obj/machinery/atmospherics/pipe/P = A
|
||||
to_chat(user, span_notice("You start painting \the [P] [paint_color]..."))
|
||||
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
|
||||
if(do_after(user, paint_speed, target = A))
|
||||
if(do_after(user, paint_speed, A))
|
||||
P.paint(GLOB.pipe_paint_colors[paint_color]) //paint the pipe
|
||||
user.visible_message(span_notice("[user] paints \the [P] [paint_color]."),span_notice("You paint \the [P] [paint_color]."))
|
||||
return
|
||||
@@ -422,7 +422,7 @@ GLOBAL_LIST_INIT(fluid_duct_recipes, list(
|
||||
if(istype(P) && findtext("[P.pipe_type]", "/obj/machinery/atmospherics/pipe") && !findtext("[P.pipe_type]", "layer_manifold"))
|
||||
to_chat(user, span_notice("You start painting \the [A] [paint_color]..."))
|
||||
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
|
||||
if(do_after(user, paint_speed, target = A))
|
||||
if(do_after(user, paint_speed, A))
|
||||
A.add_atom_colour(GLOB.pipe_paint_colors[paint_color], FIXED_COLOUR_PRIORITY) //paint the pipe
|
||||
user.visible_message(span_notice("[user] paints \the [A] [paint_color]."),span_notice("You paint \the [A] [paint_color]."))
|
||||
return
|
||||
@@ -438,7 +438,7 @@ GLOBAL_LIST_INIT(fluid_duct_recipes, list(
|
||||
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
|
||||
if (recipe.type == /datum/pipe_info/meter)
|
||||
to_chat(user, span_notice("You start building a meter..."))
|
||||
if(do_after(user, atmos_build_speed, target = A))
|
||||
if(do_after(user, atmos_build_speed, A))
|
||||
activate()
|
||||
var/obj/item/pipe_meter/PM = new /obj/item/pipe_meter(get_turf(A))
|
||||
PM.setAttachLayer(piping_layer)
|
||||
@@ -449,7 +449,7 @@ GLOBAL_LIST_INIT(fluid_duct_recipes, list(
|
||||
to_chat(user, span_notice("You can't build this object on the layer..."))
|
||||
return ..()
|
||||
to_chat(user, span_notice("You start building a pipe..."))
|
||||
if(do_after(user, atmos_build_speed, target = A))
|
||||
if(do_after(user, atmos_build_speed, A))
|
||||
if(recipe.all_layers == FALSE && (piping_layer == 1 || piping_layer == 5))//double check to stop cheaters (and to not waste time waiting for something that can't be placed)
|
||||
to_chat(user, span_notice("You can't build this object on the layer..."))
|
||||
return ..()
|
||||
@@ -479,7 +479,7 @@ GLOBAL_LIST_INIT(fluid_duct_recipes, list(
|
||||
return
|
||||
to_chat(user, span_notice("You start building a disposals pipe..."))
|
||||
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
|
||||
if(do_after(user, disposal_build_speed, target = A))
|
||||
if(do_after(user, disposal_build_speed, A))
|
||||
var/obj/structure/disposalconstruct/C = new (A, queued_p_type, queued_p_dir, queued_p_flipped)
|
||||
|
||||
if(!C.can_place())
|
||||
@@ -504,7 +504,7 @@ GLOBAL_LIST_INIT(fluid_duct_recipes, list(
|
||||
return
|
||||
to_chat(user, span_notice("You start building a transit tube..."))
|
||||
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
|
||||
if(do_after(user, transit_build_speed, target = A))
|
||||
if(do_after(user, transit_build_speed, A))
|
||||
activate()
|
||||
if(queued_p_type == /obj/structure/c_transit_tube_pod)
|
||||
var/obj/structure/c_transit_tube_pod/pod = new /obj/structure/c_transit_tube_pod(A)
|
||||
@@ -533,7 +533,7 @@ GLOBAL_LIST_INIT(fluid_duct_recipes, list(
|
||||
return
|
||||
to_chat(user, span_notice("You start building a fluid duct..."))
|
||||
playsound(get_turf(src), 'sound/machines/click.ogg', 50, 1)
|
||||
if(do_after(user, plumbing_build_speed, target = A))
|
||||
if(do_after(user, plumbing_build_speed, A))
|
||||
var/obj/machinery/duct/D
|
||||
if(recipe.type == /datum/pipe_info/plumbing/multilayer)
|
||||
var/temp_connects = NORTH + SOUTH
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||
to_chat(user, span_notice("You claw at the fabric of [src], trying to tear it open..."))
|
||||
to_chat(loc, span_warning("Someone starts trying to break free of [src]!"))
|
||||
if(!do_after(user, 20 SECONDS, target = src))
|
||||
if(!do_after(user, 20 SECONDS, src))
|
||||
to_chat(loc, span_warning("The pressure subsides. It seems that they've stopped resisting..."))
|
||||
return
|
||||
loc.visible_message(span_warning("[user] suddenly appears in front of [loc]!"), span_userdanger("[user] breaks free of [src]!"))
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
var/new_appearance = show_radial_menu(user, src, possible_appearances, custom_check = CALLBACK(src, .proc/check_menu, user, crayon), radius = 36, require_near = TRUE)
|
||||
if(!new_appearance)
|
||||
return FALSE
|
||||
if(!do_after(user, 1 SECONDS, FALSE, src, TRUE))
|
||||
if(!do_after(user, 1 SECONDS, src, FALSE))
|
||||
return FALSE
|
||||
if(!check_menu(user, crayon))
|
||||
return FALSE
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
to_chat(user, span_warning("You need to take that [target.name] off before cleaning it!"))
|
||||
else if(istype(target, /obj/effect/decal/cleanable))
|
||||
user.visible_message("[user] begins to scrub \the [target.name] out with [src].", span_warning("You begin to scrub \the [target.name] out with [src]..."))
|
||||
if(do_after(user, src.cleanspeed, target = target))
|
||||
if(do_after(user, src.cleanspeed, target))
|
||||
to_chat(user, span_notice("You scrub \the [target.name] out."))
|
||||
qdel(target)
|
||||
decreaseUses(user)
|
||||
@@ -118,14 +118,14 @@
|
||||
return
|
||||
else if(istype(target, /obj/structure/window))
|
||||
user.visible_message("[user] begins to clean \the [target.name] with [src]...", span_notice("You begin to clean \the [target.name] with [src]..."))
|
||||
if(do_after(user, src.cleanspeed, target = target))
|
||||
if(do_after(user, src.cleanspeed, target))
|
||||
to_chat(user, span_notice("You clean \the [target.name]."))
|
||||
target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
|
||||
target.set_opacity(initial(target.opacity))
|
||||
decreaseUses(user)
|
||||
else
|
||||
user.visible_message("[user] begins to clean \the [target.name] with [src]...", span_notice("You begin to clean \the [target.name] with [src]..."))
|
||||
if(do_after(user, src.cleanspeed, target = target))
|
||||
if(do_after(user, src.cleanspeed, target))
|
||||
to_chat(user, span_notice("You clean \the [target.name]."))
|
||||
target.wash(CLEAN_SCRUB)
|
||||
target.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
|
||||
|
||||
@@ -70,7 +70,7 @@
|
||||
else
|
||||
user.visible_message(span_warning("[user] begins to do [H]'s lips with \the [src]."), \
|
||||
span_notice("You begin to apply \the [src] on [H]'s lips..."))
|
||||
if(do_after(user, 2 SECONDS, target = H))
|
||||
if(do_after(user, 2 SECONDS, H))
|
||||
user.visible_message("[user] does [H]'s lips with \the [src].", \
|
||||
span_notice("You apply \the [src] on [H]'s lips."))
|
||||
H.lip_style = "lipstick"
|
||||
@@ -94,7 +94,7 @@
|
||||
else
|
||||
user.visible_message(span_warning("[user] begins to wipe [H]'s lipstick off with \the [src]."), \
|
||||
span_notice("You begin to wipe off [H]'s lipstick..."))
|
||||
if(do_after(user, 1 SECONDS, target = H))
|
||||
if(do_after(user, 1 SECONDS, H))
|
||||
user.visible_message("[user] wipes [H]'s lipstick off with \the [src].", \
|
||||
span_notice("You wipe off [H]'s lipstick."))
|
||||
H.lip_style = null
|
||||
@@ -146,7 +146,7 @@
|
||||
to_chat(user, span_warning("The mask is in the way!"))
|
||||
return
|
||||
user.visible_message(span_notice("[user] tries to change [H]'s facial hair style using [src]."), span_notice("You try to change [H]'s facial hair style using [src]."))
|
||||
if(new_style && do_after(user, 6 SECONDS, target = H))
|
||||
if(new_style && do_after(user, 6 SECONDS, H))
|
||||
user.visible_message(span_notice("[user] successfully changes [H]'s facial hair style using [src]."), span_notice("You successfully change [H]'s facial hair style using [src]."))
|
||||
H.facial_hair_style = new_style
|
||||
H.update_hair()
|
||||
@@ -168,7 +168,7 @@
|
||||
if(H == user) //shaving yourself
|
||||
user.visible_message("[user] starts to shave [user.p_their()] facial hair with [src].", \
|
||||
span_notice("You take a moment to shave your facial hair with [src]..."))
|
||||
if(do_after(user, 5 SECONDS, target = H))
|
||||
if(do_after(user, 5 SECONDS, H))
|
||||
user.visible_message("[user] shaves [user.p_their()] facial hair clean with [src].", \
|
||||
span_notice("You finish shaving with [src]. Fast and clean!"))
|
||||
shave(H, location)
|
||||
@@ -192,7 +192,7 @@
|
||||
to_chat(user, span_warning("The headgear is in the way!"))
|
||||
return
|
||||
user.visible_message(span_notice("[user] tries to change [H]'s hairstyle using [src]."), span_notice("You try to change [H]'s hairstyle using [src]."))
|
||||
if(new_style && do_after(user, 6 SECONDS, target = H))
|
||||
if(new_style && do_after(user, 6 SECONDS, H))
|
||||
user.visible_message(span_notice("[user] successfully changes [H]'s hairstyle using [src]."), span_notice("You successfully change [H]'s hairstyle using [src]."))
|
||||
H.hair_style = new_style
|
||||
H.update_hair()
|
||||
@@ -212,7 +212,7 @@
|
||||
if(H == user) //shaving yourself
|
||||
user.visible_message("[user] starts to shave [user.p_their()] head with [src].", \
|
||||
span_notice("You start to shave your head with [src]..."))
|
||||
if(do_after(user, 0.5 SECONDS, target = H))
|
||||
if(do_after(user, 0.5 SECONDS, H))
|
||||
user.visible_message("[user] shaves [user.p_their()] head with [src].", \
|
||||
span_notice("You finish shaving with [src]."))
|
||||
shave(H, location)
|
||||
@@ -220,7 +220,7 @@
|
||||
var/turf/H_loc = H.loc
|
||||
user.visible_message(span_warning("[user] tries to shave [H]'s head with [src]!"), \
|
||||
span_notice("You start shaving [H]'s head..."))
|
||||
if(do_after(user, 5 SECONDS, target = H))
|
||||
if(do_after(user, 5 SECONDS, H))
|
||||
if(H_loc == H.loc)
|
||||
user.visible_message(span_warning("[user] shaves [H]'s head bald with [src]!"), \
|
||||
span_notice("You shave [H]'s head bald."))
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
if(!card.registered_account.being_dumped)
|
||||
to_chat(user, span_warning("It appears that your funds are safe from draining!"))
|
||||
return
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(do_after(user, 4 SECONDS, src))
|
||||
if(!card.registered_account.being_dumped)
|
||||
return
|
||||
to_chat(user, span_warning("You quickly cash out your funds to a more secure banking location. Funds are safu."))
|
||||
|
||||
@@ -350,7 +350,7 @@
|
||||
if(gang) //yogs
|
||||
instant = FALSE // yogs -- gang spraying must not be instant, balance reasons
|
||||
if(!instant)
|
||||
if(!do_after(user, 5 SECONDS, target = target))
|
||||
if(!do_after(user, 5 SECONDS, target))
|
||||
return
|
||||
|
||||
if(length(text_buffer))
|
||||
|
||||
@@ -495,7 +495,7 @@
|
||||
span_warning("You overcharge the paddles and begin to place them onto [H]'s chest..."))
|
||||
busy = TRUE
|
||||
update_icon()
|
||||
if(do_after(user, 3 SECONDS, target = H))
|
||||
if(do_after(user, 3 SECONDS, H))
|
||||
user.visible_message(span_notice("[user] places [src] on [H]'s chest."),
|
||||
span_warning("You place [src] on [H]'s chest and begin to charge them."))
|
||||
var/turf/T = get_turf(defib)
|
||||
@@ -504,7 +504,7 @@
|
||||
T.audible_message(span_warning("\The [defib] lets out an urgent beep and lets out a steadily rising hum..."))
|
||||
else
|
||||
user.audible_message(span_warning("[src] let out an urgent beep."))
|
||||
if(do_after(user, 3 SECONDS, target = H)) //Takes longer due to overcharging
|
||||
if(do_after(user, 3 SECONDS, H)) //Takes longer due to overcharging
|
||||
if(!H)
|
||||
busy = FALSE
|
||||
update_icon()
|
||||
@@ -545,17 +545,17 @@
|
||||
user.visible_message(span_warning("[user] begins to place [src] on [H]'s chest."), span_warning("You begin to place [src] on [H]'s chest..."))
|
||||
busy = TRUE
|
||||
update_icon()
|
||||
if(do_after(user, 3 SECONDS, target = H)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process
|
||||
if(do_after(user, 3 SECONDS, H)) //beginning to place the paddles on patient's chest to allow some time for people to move away to stop the process
|
||||
user.visible_message(span_notice("[user] places [src] on [H]'s chest."), span_warning("You place [src] on [H]'s chest."))
|
||||
playsound(src, 'sound/machines/defib_charge.ogg', 75, 0)
|
||||
var/total_burn = 0
|
||||
var/total_brute = 0
|
||||
var/tplus = world.time - H.timeofdeath //length of time spent dead
|
||||
var/obj/item/organ/heart = H.getorgan(/obj/item/organ/heart)
|
||||
if(do_after(user, 1.5 SECONDS, target = H))
|
||||
if(do_after(user, 1.5 SECONDS, H))
|
||||
if(user.job == "Medical Doctor" || user.job == "Paramedic" || user.job == "Chief Medical Officer")
|
||||
user.say("Clear!", forced = "defib")
|
||||
if(do_after(user, 0.5 SECONDS, target = H)) //Counting the delay for "Clear", revive time is 5sec total
|
||||
if(do_after(user, 0.5 SECONDS, H)) //Counting the delay for "Clear", revive time is 5sec total
|
||||
for(var/obj/item/carried_item in H.contents)
|
||||
if(istype(carried_item, /obj/item/clothing/suit/space))
|
||||
if((!combat && !req_defib) || (req_defib && !defib.combat))
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
to_chat(user, span_notice("You deactivate [F]."))
|
||||
qdel(F)
|
||||
return
|
||||
if(do_after(user, creation_time, target = target))
|
||||
if(do_after(user, creation_time, target))
|
||||
var/turf/T = get_turf(target)
|
||||
var/obj/structure/projected_forcefield/found_field = locate() in T
|
||||
if(found_field)
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
if(!istype(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
|
||||
return
|
||||
to_chat(user, span_notice("You start pressing [src]'s unlink button..."))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(do_after(user, 4 SECONDS, src))
|
||||
to_chat(user, span_notice("The keycard beeps twice and disconnects the quantum link."))
|
||||
qpad = null
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
fear_string = ""
|
||||
C.visible_message(span_danger("[C] fiddles with and pulls at [src]..."), \
|
||||
span_danger("You [fear_string] try to pull at [src]..."), "<i>You hear clicking and ticking.</i>")
|
||||
if(!do_after(user, 2 SECONDS, target = src))
|
||||
if(!do_after(user, 2 SECONDS, src))
|
||||
struggling = FALSE
|
||||
return
|
||||
if(!prob(escape_chance))
|
||||
@@ -88,7 +88,7 @@
|
||||
target.visible_message(span_warning("[user] starts forcing [src] onto [target]'s head!"), \
|
||||
span_userdanger("[target] starts forcing [src] onto your head!"), "<i>You hear clanking.</i>")
|
||||
to_chat(user, span_danger("You start forcing [src] onto [target]'s head..."))
|
||||
if(!do_after(user, 3 SECONDS, target = target) || target.get_item_by_slot(SLOT_HEAD))
|
||||
if(!do_after(user, 3 SECONDS, target) || target.get_item_by_slot(SLOT_HEAD))
|
||||
return
|
||||
target.visible_message(span_warning("[user] forces and locks [src] onto [target]'s head!"), \
|
||||
span_userdanger("[target] locks [src] onto your head!"), "<i>You hear a click, and then a timer ticking down.</i>")
|
||||
|
||||
@@ -474,13 +474,13 @@ GENE SCANNER
|
||||
if(istype(O, /obj/item/disk/surgery))
|
||||
to_chat(user, span_notice("You load the surgery protocol from [O] into [src]."))
|
||||
var/obj/item/disk/surgery/D = O
|
||||
if(do_after(user, 1 SECONDS, target = O))
|
||||
if(do_after(user, 1 SECONDS, O))
|
||||
advanced_surgeries |= D.surgeries
|
||||
return TRUE
|
||||
if(istype(O, /obj/machinery/computer/operating))
|
||||
to_chat(user, span_notice("You copy surgery protocols from [O] into [src]."))
|
||||
var/obj/machinery/computer/operating/OC = O
|
||||
if(do_after(user, 1 SECONDS, target = O))
|
||||
if(do_after(user, 1 SECONDS, O))
|
||||
advanced_surgeries |= OC.advanced_surgeries
|
||||
return TRUE
|
||||
return
|
||||
|
||||
@@ -59,7 +59,7 @@
|
||||
shaking = TRUE
|
||||
|
||||
start_shaking(user)
|
||||
if(do_after(user, shake_time, needhand=TRUE, target=user, progress=TRUE))
|
||||
if(do_after(user, shake_time, user))
|
||||
var/answer = get_answer()
|
||||
say(answer)
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
|
||||
to_chat(user, span_notice("You start planting [src]. The timer is set to [det_time]..."))
|
||||
|
||||
if(do_after(user, 3 SECONDS, target = AM))
|
||||
if(do_after(user, 3 SECONDS, AM))
|
||||
if(!user.temporarilyRemoveItemFromInventory(src))
|
||||
return
|
||||
target = AM
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
to_chat(user, span_warning("You need at least six metal sheets to make good enough weights!"))
|
||||
return
|
||||
to_chat(user, span_notice("You begin to apply [I] to [src]..."))
|
||||
if(do_after(user, 3.5 SECONDS, target = src))
|
||||
if(do_after(user, 3.5 SECONDS, src))
|
||||
if(M.get_amount() < 6 || !M)
|
||||
return
|
||||
var/obj/item/restraints/legcuffs/bola/S = new /obj/item/restraints/legcuffs/bola
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
playsound(src.loc, 'sound/machines/click.ogg', 20, 1)
|
||||
if(creation_time)
|
||||
holocreator_busy = TRUE
|
||||
if(!do_after(user, creation_time, target = target))
|
||||
if(!do_after(user, creation_time, target))
|
||||
holocreator_busy = FALSE
|
||||
return
|
||||
holocreator_busy = FALSE
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
user.visible_message(span_notice("You see [user] kicking against the door of [src]!"), \
|
||||
span_notice("You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)"), \
|
||||
span_italics("You hear a metallic creaking from [src]."))
|
||||
if(do_after(user,(breakout_time), target = src))
|
||||
if(do_after(user, (breakout_time), src))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src || state_open)
|
||||
return
|
||||
user.visible_message(span_warning("[user] successfully broke out of [src]!"), \
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
return TRUE
|
||||
user.visible_message("[user] starts recharging [A] with [src].",span_notice("You start recharging [A] with [src]."))
|
||||
while(preternis.charge < PRETERNIS_LEVEL_FULL - 25)
|
||||
if(do_after(user, 1 SECONDS, target = user) && cell.charge)
|
||||
if(do_after(user, 1 SECONDS, user) && cell.charge)
|
||||
done_any = TRUE
|
||||
cell.use(totransfer*coefficient)
|
||||
preternis.charge = clamp(preternis.charge + (powertransfer*coefficient), PRETERNIS_LEVEL_NONE, PRETERNIS_LEVEL_FULL)
|
||||
@@ -149,7 +149,7 @@
|
||||
return TRUE
|
||||
user.visible_message("[user] starts recharging [A] with [src].",span_notice("You start recharging [A] with [src]."))
|
||||
while(C.charge < C.maxcharge)
|
||||
if(do_after(user, 1 SECONDS, target = user) && cell.charge)
|
||||
if(do_after(user, 1 SECONDS, user) && cell.charge)
|
||||
done_any = TRUE
|
||||
induce(C, coefficient)
|
||||
do_sparks(1, FALSE, A)
|
||||
|
||||
@@ -732,7 +732,7 @@
|
||||
playsound(src.loc, 'sound/weapons/batonextend.ogg', 50, 1)
|
||||
else
|
||||
return
|
||||
if(do_after(user, 10 SECONDS, target = user))
|
||||
if(do_after(user, 10 SECONDS, user))
|
||||
finish_roasting(user, target)
|
||||
else
|
||||
QDEL_NULL(beam)
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
if(IS_JOB(user, "Janitor"))
|
||||
realspeed *= 0.8
|
||||
|
||||
if(do_after(user, realspeed, target = T))
|
||||
if(do_after(user, realspeed, T))
|
||||
to_chat(user, span_notice("You finish mopping."))
|
||||
clean(T)
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
if(user.mob_size <= MOB_SIZE_SMALL)
|
||||
to_chat(user, span_notice("You poke a limb through [src]'s bars and start fumbling for the lock switch... (This will take some time.)"))
|
||||
to_chat(loc, span_warning("You see [user] reach through the bars and fumble for the lock switch!"))
|
||||
if(!do_after(user, rand(300, 400), target = user) || open || !locked || !(user in occupants))
|
||||
if(!do_after(user, rand(300, 400), user) || open || !locked || !(user in occupants))
|
||||
return
|
||||
loc.visible_message(span_warning("[user] flips the lock switch on [src] by reaching through!"), null, null, null, user)
|
||||
to_chat(user, span_boldannounce("Bingo! The lock pops open!"))
|
||||
@@ -132,7 +132,7 @@
|
||||
else
|
||||
loc.visible_message(span_warning("[src] starts rattling as something pushes against the door!"), null, null, null, user)
|
||||
to_chat(user, span_notice("You start pushing out of [src]... (This will take about 20 seconds.)"))
|
||||
if(!do_after(user, 20 SECONDS, target = user) || open || !locked || !(user in occupants))
|
||||
if(!do_after(user, 20 SECONDS, user) || open || !locked || !(user in occupants))
|
||||
return
|
||||
loc.visible_message(span_warning("[user] shoves out of [src]!"), null, null, null, user)
|
||||
to_chat(user, span_notice("You shove open [src]'s door against the lock's resistance and fall out!"))
|
||||
|
||||
@@ -309,7 +309,7 @@
|
||||
if(staffcooldown + staffwait > world.time)
|
||||
return
|
||||
user.visible_message("[user] chants deeply and waves [user.p_their()] staff!")
|
||||
if(do_after(user, 2 SECONDS,1,src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
target.add_atom_colour(conversion_color, WASHABLE_COLOUR_PRIORITY) //wololo
|
||||
staffcooldown = world.time
|
||||
|
||||
|
||||
@@ -207,7 +207,7 @@
|
||||
return
|
||||
|
||||
to_chat(user, span_notice("You connect to [M]'s power line..."))
|
||||
while(do_after(user, 1.5 SECONDS, target = M, progress = 0))
|
||||
while(do_after(user, 1.5 SECONDS, M, progress = FALSE))
|
||||
if(!user || !user.cell || mode != "draw")
|
||||
return
|
||||
|
||||
@@ -241,7 +241,7 @@
|
||||
|
||||
to_chat(user, span_notice("You connect to [target]'s power port..."))
|
||||
|
||||
while(do_after(user, 1.5 SECONDS, target = target, progress = 0))
|
||||
while(do_after(user, 1.5 SECONDS, target, progress = FALSE))
|
||||
if(!user || !user.cell || mode != "draw")
|
||||
return
|
||||
|
||||
@@ -279,7 +279,7 @@
|
||||
|
||||
to_chat(user, span_notice("You connect to [target]'s power port..."))
|
||||
|
||||
while(do_after(user, 1.5 SECONDS, target = target, progress = 0))
|
||||
while(do_after(user, 1.5 SECONDS, target, progress = FALSE))
|
||||
if(!user || !user.cell || mode != "charge")
|
||||
return
|
||||
|
||||
|
||||
@@ -171,7 +171,7 @@
|
||||
return
|
||||
else
|
||||
to_chat(user, "You begin to replace the bulb.")
|
||||
if(do_after(user, 2 SECONDS, target = user))
|
||||
if(do_after(user, 2 SECONDS, user))
|
||||
if(flash.burnt_out || !flash || QDELETED(flash))
|
||||
return
|
||||
playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
|
||||
user.visible_message(span_warning("[user] begins wrapping the wounds on [M]'s [limb.name] with [src]..."), span_warning("You begin wrapping the wounds on [user == M ? "your" : "[M]'s"] [limb.name] with [src]..."))
|
||||
|
||||
if(!do_after(user, (user == M ? self_delay : other_delay), target=M))
|
||||
if(!do_after(user, (user == M ? self_delay : other_delay), M))
|
||||
return
|
||||
|
||||
user.visible_message(span_green("[user] applies [src] to [M]'s [limb.name]."), span_green("You bandage the wounds on [user == M ? "yourself" : "[M]'s"] [limb.name]."))
|
||||
|
||||
@@ -251,7 +251,7 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \
|
||||
if(W.is_sharp())
|
||||
playsound(loc, 'sound/weapons/slice.ogg', 50, 1, -1)
|
||||
user.visible_message("[user] starts cutting hair off \the [src].", span_notice("You start cutting the hair off \the [src]..."), span_italics("You hear the sound of a knife rubbing against flesh."))
|
||||
if(do_after(user, 5 SECONDS, target = src))
|
||||
if(do_after(user, 5 SECONDS, src))
|
||||
to_chat(user, span_notice("You cut the hair from this [src.singular_name]."))
|
||||
new /obj/item/stack/sheet/hairlesshide(user.drop_location(), 1)
|
||||
use(1)
|
||||
|
||||
@@ -262,7 +262,7 @@ GLOBAL_LIST_INIT(wood_recipes, list ( \
|
||||
span_hear("You hear wood carving."),
|
||||
)
|
||||
// 5 Second Timer
|
||||
if(!do_after(user, 5 SECONDS, src, NONE, TRUE))
|
||||
if(!do_after(user, 5 SECONDS, src))
|
||||
return
|
||||
// Make Stake
|
||||
var/obj/item/stake/new_item = new(user.loc)
|
||||
|
||||
@@ -188,7 +188,7 @@
|
||||
return
|
||||
if (R.time)
|
||||
usr.visible_message(span_notice("[usr] starts building \a [R.title]."), span_notice("You start building \a [R.title]..."))
|
||||
if (!do_after(usr, R.time, target = usr))
|
||||
if (!do_after(usr, R.time, usr))
|
||||
return
|
||||
if(!building_checks(R, multiplier))
|
||||
return
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
return
|
||||
playsound(user, 'sound/effects/tape.ogg', 25)
|
||||
M.visible_message(span_danger("[user] is trying to put [tape_muzzle.name] on [M]!"), span_userdanger("[user] is trying to put [tape_muzzle.name] on [M]!"))
|
||||
if(!do_after(user, 2 SECONDS, target = M))
|
||||
if(!do_after(user, 2 SECONDS, M))
|
||||
qdel(tape_muzzle)
|
||||
return
|
||||
if(!M.equip_to_slot_or_del(tape_muzzle, SLOT_WEAR_MASK, user))
|
||||
|
||||
@@ -197,7 +197,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning",
|
||||
var/obj/item/twohanded/required/cult_bastard/sword = A
|
||||
to_chat(user, span_notice("You begin to exorcise [sword]."))
|
||||
playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,1)
|
||||
if(do_after(user, 4 SECONDS, target = sword))
|
||||
if(do_after(user, 4 SECONDS, sword))
|
||||
playsound(src,'sound/effects/pray_chaplain.ogg',60,1)
|
||||
for(var/obj/item/soulstone/SS in sword.contents)
|
||||
SS.usability = TRUE
|
||||
@@ -217,7 +217,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning",
|
||||
return
|
||||
to_chat(user, span_notice("You begin to exorcise [SS]."))
|
||||
playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,1)
|
||||
if(do_after(user, 4 SECONDS, target = SS))
|
||||
if(do_after(user, 4 SECONDS, SS))
|
||||
playsound(src,'sound/effects/pray_chaplain.ogg',60,1)
|
||||
SS.usability = TRUE
|
||||
SS.purified = TRUE
|
||||
@@ -233,7 +233,7 @@ GLOBAL_LIST_INIT(bibleitemstates, list("bible", "koran", "scrapbook", "burning",
|
||||
var/obj/item/nullrod/scythe/talking/sword = A
|
||||
to_chat(user, span_notice("You begin to exorcise [sword]..."))
|
||||
playsound(src,'sound/hallucinations/veryfar_noise.ogg',40,TRUE)
|
||||
if(do_after(user, 4 SECONDS, target = sword))
|
||||
if(do_after(user, 4 SECONDS, sword))
|
||||
playsound(src,'sound/effects/pray_chaplain.ogg',60,TRUE)
|
||||
for(var/mob/living/simple_animal/shade/S in sword.contents)
|
||||
to_chat(S, span_userdanger("You were destroyed by the exorcism!"))
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
return
|
||||
else if(istype(C) && C.has_status_effect(STATUS_EFFECT_CHOKINGSTRAND))
|
||||
to_chat(C, span_notice("You attempt to remove the durathread strand from around your neck."))
|
||||
if(do_after(user, 1.5 SECONDS, null, C))
|
||||
if(do_after(user, 1.5 SECONDS, C))
|
||||
to_chat(C, span_notice("You succesfuly remove the durathread strand."))
|
||||
C.remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND)
|
||||
else
|
||||
|
||||
@@ -677,6 +677,28 @@
|
||||
return 1
|
||||
return 0
|
||||
|
||||
/obj/item/twohanded/required/chainsaw/demon
|
||||
name = "demon chainsaw"
|
||||
desc = "anime reference here"
|
||||
item_state = "demon_off"
|
||||
icon_state = "demon_off"
|
||||
lefthand_file = 'icons/mob/inhands/weapons/chainsaw_lefthand.dmi'
|
||||
righthand_file = 'icons/mob/inhands/weapons/chainsaw_righthand.dmi'
|
||||
force = 13
|
||||
force_on = 30
|
||||
|
||||
|
||||
/obj/item/twohanded/required/chainsaw/demon/attack_self(mob/user)
|
||||
on = !on
|
||||
to_chat(user, "As you pull the starting cord dangling from [src], [on ? "it begins to whirr." : "the chain stops moving."]")
|
||||
force = on ? force_on : initial(force)
|
||||
throwforce = on ? force_on : initial(force)
|
||||
icon_state = "demon_[on ? "on" : "off"]"
|
||||
|
||||
/obj/item/twohanded/required/chainsaw/demon/Initialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/lifesteal, 30)
|
||||
|
||||
//GREY TIDE
|
||||
/obj/item/twohanded/spear/grey_tide
|
||||
icon_state = "spearglass0"
|
||||
|
||||
@@ -638,7 +638,7 @@ for further reading, please see: https://github.com/tgstation/tgstation/pull/301
|
||||
return
|
||||
to_chat(user, span_warning("You begin gathering strength..."))
|
||||
playsound(get_turf(src), 'sound/magic/lightning_chargeup.ogg', 65, 1)
|
||||
if(do_after(user, 9 SECONDS, target = src))
|
||||
if(do_after(user, 9 SECONDS, src))
|
||||
to_chat(user, span_userdanger("You gather power! Time for a home run!"))
|
||||
homerun_ready = 1
|
||||
..()
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
span_warning("[M.name] struggles to break free from the gelatinous resin!"),\
|
||||
span_notice("You struggle to break free from the gelatinous resin... (Stay still for two minutes.)"),\
|
||||
span_italics("You hear squelching..."))
|
||||
if(!do_after(M, 2 MINUTES, target = src))
|
||||
if(!do_after(M, 2 MINUTES, src))
|
||||
if(M && M.buckled)
|
||||
to_chat(M, span_warning("You fail to unbuckle yourself!"))
|
||||
return
|
||||
|
||||
@@ -465,7 +465,7 @@ GLOBAL_LIST_EMPTY(lockers)
|
||||
user.visible_message(span_warning("[src] begins to shake violently!"), \
|
||||
span_notice("You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)"), \
|
||||
span_italics("You hear banging from [src]."))
|
||||
if(do_after(user,(breakout_time), target = src))
|
||||
if(do_after(user, (breakout_time), src))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src || opened || (!locked && !welded) )
|
||||
return
|
||||
//we check after a while whether there is a point of resisting anymore and whether the user is capable of resisting
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||
other.visible_message(span_warning("[other] begins to shake violently!"))
|
||||
to_chat(user, span_notice("You start pushing the door open... (this will take about [DisplayTimeText(other.breakout_time)].)"))
|
||||
if(do_after(user,(other.breakout_time), target = src))
|
||||
if(do_after(user, (other.breakout_time), src))
|
||||
if(!user || user.stat != CONSCIOUS || other.opened || (!other.locked && !other.welded))
|
||||
return
|
||||
//we check after a while whether there is a point of resisting anymore and whether the user is capable of resisting
|
||||
|
||||
@@ -232,7 +232,7 @@
|
||||
user.visible_message(span_warning("Someone in [src] begins to wriggle!"), \
|
||||
span_notice("You start wriggling, attempting to loosen [src]'s buckles... (this will take about [DisplayTimeText(breakout_time)].)"), \
|
||||
span_hear("You hear straining cloth from [src]."))
|
||||
if(do_after(user,(breakout_time), target = src))
|
||||
if(do_after(user,(breakout_time), src))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src || opened || !sinched )
|
||||
return
|
||||
//we check after a while whether there is a point of resisting anymore and whether the user is capable of resisting
|
||||
@@ -265,7 +265,7 @@
|
||||
for(var/mob/living/target in contents)
|
||||
to_chat(target, span_userdanger("You feel the lining of [src] tighten around you! Soon, you won't be able to escape!"))
|
||||
user.visible_message(span_notice("You begin sinching down the buckles on [src]."))
|
||||
if(!(do_after(user,(sinch_time),target = src)))
|
||||
if(!(do_after(user, (sinch_time), src)))
|
||||
return
|
||||
sinched = !sinched
|
||||
if(sinched)
|
||||
|
||||
@@ -146,7 +146,7 @@
|
||||
to_chat(user, span_warning("You need two glass sheets to fix the case!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start fixing [src]..."))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
G.use(2)
|
||||
broken = 0
|
||||
obj_integrity = max_integrity
|
||||
@@ -207,7 +207,7 @@
|
||||
else if(istype(I, /obj/item/electronics/airlock))
|
||||
to_chat(user, span_notice("You start installing the electronics into [src]..."))
|
||||
I.play_tool_sound(src)
|
||||
if(do_after(user, 3 SECONDS, target = src) && user.transferItemToLoc(I,src))
|
||||
if(do_after(user, 3 SECONDS, src) && user.transferItemToLoc(I,src))
|
||||
electronics = I
|
||||
to_chat(user, span_notice("You install the airlock electronics."))
|
||||
else if(istype(I, /obj/item/stack/sheet/glass))
|
||||
@@ -216,7 +216,7 @@
|
||||
to_chat(user, span_warning("You need ten glass sheets to do this!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start adding [G] to [src]..."))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
G.use(10)
|
||||
var/obj/structure/displaycase/noalert/display = new(src.loc)
|
||||
if(electronics)
|
||||
|
||||
@@ -150,7 +150,7 @@
|
||||
W.play_tool_sound(src, 100)
|
||||
user.visible_message("[user] installs the electronics into the airlock assembly.", \
|
||||
span_notice("You start to install electronics into the airlock assembly..."))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(do_after(user, 4 SECONDS, src))
|
||||
if( state != AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS )
|
||||
return
|
||||
if(!user.transferItemToLoc(W, src))
|
||||
@@ -190,7 +190,7 @@
|
||||
playsound(src, 'sound/items/crowbar.ogg', 100, 1)
|
||||
user.visible_message("[user] adds [G.name] to the airlock assembly.", \
|
||||
span_notice("You start to install [G.name] into the airlock assembly..."))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(do_after(user, 4 SECONDS, src))
|
||||
if(G.get_amount() < 1 || glass)
|
||||
return
|
||||
if(G.type == /obj/item/stack/sheet/rglass)
|
||||
@@ -213,7 +213,7 @@
|
||||
playsound(src, 'sound/items/crowbar.ogg', 100, 1)
|
||||
user.visible_message("[user] adds [G.name] to the airlock assembly.", \
|
||||
span_notice("You start to install [G.name] into the airlock assembly..."))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(do_after(user, 4 SECONDS, src))
|
||||
if(G.get_amount() < 2 || mineral)
|
||||
return
|
||||
to_chat(user, span_notice("You install [M] plating into the airlock assembly."))
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
user.visible_message(span_danger("\The [user] starts cutting through \the [src] with \the [W]."),\
|
||||
span_danger("You start cutting through \the [src] with \the [W]."))
|
||||
|
||||
if(do_after(user, CUT_TIME*W.toolspeed, target = src))
|
||||
if(do_after(user, CUT_TIME*W.toolspeed, src))
|
||||
if(current_stage == hole_size)
|
||||
switch(++hole_size)
|
||||
if(MEDIUM_HOLE)
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
to_chat(user, span_warning("You need two reinforced glass sheets to fix [src]!"))//yogs - change to reinforced glass
|
||||
return
|
||||
to_chat(user, span_notice("You start fixing [src]..."))
|
||||
if(do_after(user, 2 SECONDS, target = src) && G.use(2))
|
||||
if(do_after(user, 2 SECONDS, src) && G.use(2))
|
||||
broken = 0
|
||||
obj_integrity = max_integrity
|
||||
update_icon()
|
||||
@@ -211,7 +211,7 @@
|
||||
/obj/structure/fireaxecabinet/proc/toggle_lock(mob/user)
|
||||
to_chat(user, "<span class = 'caution'> Resetting circuitry...</span>")
|
||||
playsound(src, 'sound/machines/locktoggle.ogg', 50, 1)
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
to_chat(user, span_caution("You [locked ? "disable" : "re-enable"] the locking modules."))
|
||||
locked = !locked
|
||||
update_icon()
|
||||
@@ -264,7 +264,7 @@
|
||||
to_chat(user, "<span class = 'caution'>Resetting circuitry...</span>")
|
||||
if(alert)
|
||||
to_chat(user, span_danger("This will trigger the built in burglary alarm!"))
|
||||
if(do_after(user, 15 SECONDS, target = src))
|
||||
if(do_after(user, 15 SECONDS, src))
|
||||
to_chat(user, span_caution("You [locked ? "disable" : "re-enable"] the locking modules."))
|
||||
src.add_fingerprint(user)
|
||||
if(locked)
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
if(W.hitsound)
|
||||
playsound(get_turf(src), W.hitsound, 100, 0, 0)
|
||||
user.visible_message(span_notice("[user] begins to cut down [src] with [W]."),span_notice("You begin to cut down [src] with [W]."), "You hear the sound of sawing.")
|
||||
if(do_after(user, 1000/W.force, target = src)) //5 seconds with 20 force, 8 seconds with a hatchet, 20 seconds with a shard.
|
||||
if(do_after(user, 1000/W.force, src)) //5 seconds with 20 force, 8 seconds with a hatchet, 20 seconds with a shard.
|
||||
user.visible_message(span_notice("[user] fells [src] with the [W]."),span_notice("You fell [src] with the [W]."), "You hear the sound of a tree falling.")
|
||||
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , 0, 0)
|
||||
for(var/i=1 to log_amount)
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
to_chat(user, span_warning("You need at least two rods to create a false wall!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start building a reinforced false wall..."))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
@@ -68,7 +68,7 @@
|
||||
to_chat(user, span_warning("You need at least five rods to add plating!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start adding plating..."))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(do_after(user, 4 SECONDS, src))
|
||||
if(S.get_amount() < 5)
|
||||
return
|
||||
S.use(5)
|
||||
@@ -89,7 +89,7 @@
|
||||
to_chat(user, span_warning("You need two sheets of metal to create a false wall!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start building a false wall..."))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
@@ -102,7 +102,7 @@
|
||||
to_chat(user, span_warning("You need two sheets of metal to finish a wall!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start adding plating..."))
|
||||
if (do_after(user, 4 SECONDS, target = src))
|
||||
if (do_after(user, 4 SECONDS, src))
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
@@ -119,7 +119,7 @@
|
||||
to_chat(user, span_warning("You need at least two sheets to create a false wall!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start building a reinforced false wall..."))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
@@ -132,7 +132,7 @@
|
||||
if(S.get_amount() < 1)
|
||||
return
|
||||
to_chat(user, span_notice("You start finalizing the reinforced wall..."))
|
||||
if(do_after(user, 5 SECONDS, target = src))
|
||||
if(do_after(user, 5 SECONDS, src))
|
||||
if(S.get_amount() < 1)
|
||||
return
|
||||
S.use(1)
|
||||
@@ -146,7 +146,7 @@
|
||||
if(S.get_amount() < 1)
|
||||
return
|
||||
to_chat(user, span_notice("You start reinforcing the girder..."))
|
||||
if(do_after(user, 6 SECONDS, target = src))
|
||||
if(do_after(user, 6 SECONDS, src))
|
||||
if(S.get_amount() < 1)
|
||||
return
|
||||
S.use(1)
|
||||
@@ -162,7 +162,7 @@
|
||||
if(S.get_amount() < 2)
|
||||
to_chat(user, span_warning("You need at least two sheets to create a false wall!"))
|
||||
return
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
@@ -176,7 +176,7 @@
|
||||
to_chat(user, span_warning("You need at least two sheets to add plating!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start adding plating..."))
|
||||
if (do_after(user, 4 SECONDS, target = src))
|
||||
if (do_after(user, 4 SECONDS, src))
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
@@ -349,7 +349,7 @@
|
||||
to_chat(user, span_warning("You need at least one sheet of runed metal to construct a runed wall!"))
|
||||
return 0
|
||||
user.visible_message(span_notice("[user] begins laying runed metal on [src]..."), span_notice("You begin constructing a runed wall..."))
|
||||
if(do_after(user, 5 SECONDS, target = src))
|
||||
if(do_after(user, 5 SECONDS, src))
|
||||
if(R.get_amount() < 1)
|
||||
return
|
||||
user.visible_message(span_notice("[user] plates [src] with runed metal."), span_notice("You construct a runed wall."))
|
||||
@@ -416,7 +416,7 @@
|
||||
to_chat(user, span_warning("You need at least two bronze sheets to build a bronze wall!"))
|
||||
return 0
|
||||
user.visible_message(span_notice("[user] begins plating [src] with bronze..."), span_notice("You begin constructing a bronze wall..."))
|
||||
if(do_after(user, 5 SECONDS, target = src))
|
||||
if(do_after(user, 5 SECONDS, src))
|
||||
if(B.get_amount() < 2)
|
||||
return
|
||||
user.visible_message(span_notice("[user] plates [src] with bronze!"), span_notice("You construct a bronze wall."))
|
||||
|
||||
@@ -187,7 +187,7 @@
|
||||
to_chat(user, span_warning("There is already a window there!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start placing the window..."))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
if(!src.loc || !anchored) //Grille broken or unanchored while waiting
|
||||
return
|
||||
for(var/obj/structure/window/WINDOW in loc) //Another window already installed on grille
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
if(istype(I, /obj/item/stack/sheet/plasteel))
|
||||
to_chat(user, span_notice("You start repairing the guillotine with the plasteel."))
|
||||
if(blade_sharpness<10)
|
||||
if(do_after(user, 10 SECONDS, target=user))
|
||||
if(do_after(user, 10 SECONDS, user))
|
||||
blade_sharpness = min(10,blade_sharpness+3)
|
||||
I.use(1)
|
||||
to_chat(user, span_notice("You repair the guillotine with the plasteel."))
|
||||
@@ -88,7 +88,7 @@
|
||||
span_warning("You begin to the pull the lever."))
|
||||
current_action = GUILLOTINE_ACTION_INUSE
|
||||
|
||||
if (do_after(user, GUILLOTINE_ACTIVATE_DELAY, target = src) && blade_status == GUILLOTINE_BLADE_RAISED)
|
||||
if (do_after(user, GUILLOTINE_ACTIVATE_DELAY, src) && blade_status == GUILLOTINE_BLADE_RAISED)
|
||||
current_action = 0
|
||||
blade_status = GUILLOTINE_BLADE_MOVING
|
||||
icon_state = "guillotine_drop"
|
||||
@@ -170,7 +170,7 @@
|
||||
if (blade_status == GUILLOTINE_BLADE_RAISED)
|
||||
if (blade_sharpness < GUILLOTINE_BLADE_MAX_SHARP)
|
||||
blade_status = GUILLOTINE_BLADE_SHARPENING
|
||||
if(do_after(user, 0.7 SECONDS, target = src))
|
||||
if(do_after(user, 0.7 SECONDS, src))
|
||||
blade_status = GUILLOTINE_BLADE_RAISED
|
||||
user.visible_message(span_notice("[user] sharpens the large blade of the guillotine."),
|
||||
span_notice("You sharpen the large blade of the guillotine."))
|
||||
@@ -251,7 +251,7 @@
|
||||
|
||||
current_action = GUILLOTINE_ACTION_WRENCH
|
||||
|
||||
if (do_after(user, GUILLOTINE_WRENCH_DELAY, target = src))
|
||||
if (do_after(user, GUILLOTINE_WRENCH_DELAY, src))
|
||||
current_action = 0
|
||||
default_unfasten_wrench(user, I, 0)
|
||||
setDir(SOUTH)
|
||||
|
||||
@@ -102,7 +102,7 @@
|
||||
"[user] tries to pull [M] free of [src]!",\
|
||||
span_notice("[user] is trying to pull you off [src], opening up fresh wounds!"),\
|
||||
span_italics("You hear a squishy wet noise."))
|
||||
if(!do_after(user, 30 SECONDS, target = src))
|
||||
if(!do_after(user, 30 SECONDS, src))
|
||||
if(M && M.buckled)
|
||||
M.visible_message(\
|
||||
"[user] fails to free [M]!",\
|
||||
@@ -115,7 +115,7 @@
|
||||
span_notice("You struggle to break free from [src], exacerbating your wounds! (Stay still for two minutes.)"),\
|
||||
span_italics("You hear a wet squishing noise.."))
|
||||
M.adjustBruteLoss(30)
|
||||
if(!do_after(M, 2 MINUTES, target = src))
|
||||
if(!do_after(M, 2 MINUTES, src))
|
||||
if(M && M.buckled)
|
||||
to_chat(M, span_warning("You fail to free yourself!"))
|
||||
return
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You start vigorously plunging [src]!")
|
||||
if(do_after(user, 5 SECONDS*P.plunge_mod, target = src) && !activated)
|
||||
if(do_after(user, 5 SECONDS*P.plunge_mod, src) && !activated)
|
||||
start_chemming()
|
||||
|
||||
/obj/structure/geyser/random
|
||||
|
||||
@@ -332,7 +332,7 @@
|
||||
|
||||
if((user.a_intent != INTENT_HARM) && istype(I, /obj/item/paper) && (obj_integrity < max_integrity))
|
||||
user.visible_message("[user] starts to patch the holes in [src].", span_notice("You start patching some of the holes in [src]!"))
|
||||
if(do_after(user, 2 SECONDS, TRUE, src))
|
||||
if(do_after(user, 2 SECONDS, src))
|
||||
obj_integrity = min(obj_integrity+4,max_integrity)
|
||||
qdel(I)
|
||||
user.visible_message("[user] patches some of the holes in [src].", span_notice("You patch some of the holes in [src]!"))
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
to_chat(user, span_notice("You place your hands firmly around the handle of the hammer and begin to pull with all your might!"))
|
||||
else
|
||||
to_chat(user, span_notice("You place your hands firmly around the handle of the hammer but feel it resist the pull of a nonmagical host! This will take a while."))
|
||||
if(do_after(user, pull_time * (user.mind.assigned_role == ROLE_WIZARD || user.mind.special_role == ROLE_WIZARD ? 1 : 2), target = src)) //if it is a wizard, it takes normal time
|
||||
if(do_after(user, pull_time * (user.mind.assigned_role == ROLE_WIZARD || user.mind.special_role == ROLE_WIZARD ? 1 : 2), src)) //if it is a wizard, it takes normal time
|
||||
to_chat(user, span_userdanger("You successfully free Mjolnir from the ground and can feel its power returning once more!")) //if it's crew, it takes twice as long
|
||||
var/obj/item/twohanded/mjollnir/M = new /obj/item/twohanded/mjollnir
|
||||
playsound(user, 'sound/magic/lightningbolt.ogg', 50, 1) //keep this at 50 for half volume it's so fucking loud
|
||||
|
||||
@@ -114,7 +114,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
user.visible_message(null, \
|
||||
span_notice("You lean on the back of [src] and start pushing the tray open... (this will take about [DisplayTimeText(breakout_time)].)"), \
|
||||
span_italics("You hear a metallic creaking from [src]."))
|
||||
if(do_after(user,(breakout_time), target = src))
|
||||
if(do_after(user, (breakout_time), src))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src )
|
||||
return
|
||||
user.visible_message(span_warning("[user] successfully broke out of [src]!"), \
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
/obj/machinery/shower/AltClick(mob/living/user)
|
||||
..()
|
||||
to_chat(user, span_notice("You begin to adjust the temperature..."))
|
||||
if(do_after(user, 50, target = src))
|
||||
if(do_after(user, 5 SECONDS, src))
|
||||
switch(current_temperature)
|
||||
if(SHOWER_NORMAL)
|
||||
current_temperature = SHOWER_FREEZING
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
to_chat(user, span_warning("You need one [material.name] sheet to do this!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start adding [material] to [src]..."))
|
||||
if(do_after(user, 2 SECONDS, target = src) && material.use(1))
|
||||
if(do_after(user, 2 SECONDS, src) && material.use(1))
|
||||
make_new_table(material.tableVariant)
|
||||
else
|
||||
return ..()
|
||||
@@ -90,7 +90,7 @@
|
||||
to_chat(user, span_warning("You need one [material.name] sheet to do this!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start adding [material] to [src]..."))
|
||||
if(do_after(user, 2 SECONDS, target = src) && material.use(1))
|
||||
if(do_after(user, 2 SECONDS, src) && material.use(1))
|
||||
make_new_table(toConstruct)
|
||||
else
|
||||
return ..()
|
||||
@@ -118,7 +118,7 @@
|
||||
to_chat(user, span_warning("You need one brass sheet to do this!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start adding [W] to [src]..."))
|
||||
if(do_after(user, 2 SECONDS, target = src) && W.use(1))
|
||||
if(do_after(user, 2 SECONDS, src) && W.use(1))
|
||||
make_new_table(/obj/structure/table/reinforced/brass)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -104,12 +104,12 @@
|
||||
if(user.grab_state < GRAB_AGGRESSIVE)
|
||||
to_chat(user, span_warning("You need a better grip to do that!"))
|
||||
return
|
||||
if(do_after(user, 3.5 SECONDS, target = pushed_mob))
|
||||
if(do_after(user, 3.5 SECONDS, pushed_mob))
|
||||
tablepush(user, pushed_mob)
|
||||
if(user.a_intent == INTENT_HELP)
|
||||
pushed_mob.visible_message(span_notice("[user] begins to place [pushed_mob] onto [src]..."), \
|
||||
span_userdanger("[user] begins to place [pushed_mob] onto [src]..."))
|
||||
if(do_after(user, 3.5 SECONDS, target = pushed_mob))
|
||||
if(do_after(user, 3.5 SECONDS,pushed_mob))
|
||||
tableplace(user, pushed_mob)
|
||||
else
|
||||
return
|
||||
@@ -670,7 +670,7 @@
|
||||
return
|
||||
building = TRUE
|
||||
to_chat(user, span_notice("You start constructing a rack..."))
|
||||
if(do_after(user, 5 SECONDS, target = user, progress=TRUE))
|
||||
if(do_after(user, 5 SECONDS, user))
|
||||
if(!user.temporarilyRemoveItemFromInventory(src))
|
||||
return
|
||||
var/obj/structure/rack/R = new /obj/structure/rack(user.loc)
|
||||
|
||||
@@ -78,7 +78,7 @@
|
||||
return
|
||||
for(var/obj/structure/transit_tube_pod/pod in loc)
|
||||
pod.visible_message(span_warning("[user] starts putting [GM] into the [pod]!"))
|
||||
if(do_after(user, 1.5 SECONDS, target = src))
|
||||
if(do_after(user, 1.5 SECONDS, src))
|
||||
if(open_status == STATION_TUBE_OPEN && GM && user.grab_state >= GRAB_AGGRESSIVE && user.pulling == GM && !GM.buckled && !GM.has_buckled_mobs())
|
||||
GM.Paralyze(100)
|
||||
src.Bumped(GM)
|
||||
@@ -92,7 +92,7 @@
|
||||
else if(open_status == STATION_TUBE_OPEN)
|
||||
if(pod.contents.len && user.loc != pod)
|
||||
user.visible_message("[user] starts emptying [pod]'s contents onto the floor.", span_notice("You start emptying [pod]'s contents onto the floor..."))
|
||||
if(do_after(user, 1 SECONDS, target = src)) //So it doesn't default to close_animation() on fail
|
||||
if(do_after(user, 1 SECONDS, src)) //So it doesn't default to close_animation() on fail
|
||||
if(pod && pod.loc == loc)
|
||||
for(var/atom/movable/AM in pod)
|
||||
AM.forceMove(get_turf(user))
|
||||
|
||||
@@ -79,7 +79,7 @@
|
||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||
to_chat(user, span_notice("You start trying to escape from the pod..."))
|
||||
if(do_after(user, 1 MINUTES, target = src))
|
||||
if(do_after(user, 1 MINUTES, src))
|
||||
to_chat(user, span_notice("You manage to open the pod."))
|
||||
empty_pod()
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@
|
||||
if(open)
|
||||
GM.visible_message(span_danger("[user] starts to give [GM] a swirlie!"), span_userdanger("[user] starts to give you a swirlie..."))
|
||||
swirlie = GM
|
||||
if(do_after(user, 3 SECONDS, 0, target = src))
|
||||
if(do_after(user, 3 SECONDS, src, FALSE))
|
||||
GM.visible_message(span_danger("[user] gives [GM] a swirlie!"), span_userdanger("[user] gives you a swirlie!"), span_italics("You hear a toilet flushing."))
|
||||
if(iscarbon(GM))
|
||||
var/mob/living/carbon/C = GM
|
||||
@@ -245,7 +245,7 @@
|
||||
span_notice("You start washing your [washing_face ? "face" : "hands"]..."))
|
||||
busy = TRUE
|
||||
|
||||
if(!do_after(user, 4 SECONDS, target = src))
|
||||
if(!do_after(user, 4 SECONDS, src))
|
||||
busy = FALSE
|
||||
return
|
||||
|
||||
@@ -323,7 +323,7 @@
|
||||
if(user.a_intent != INTENT_HARM)
|
||||
to_chat(user, span_notice("You start washing [O]..."))
|
||||
busy = TRUE
|
||||
if(!do_after(user, 4 SECONDS, target = src))
|
||||
if(!do_after(user, 4 SECONDS, src))
|
||||
busy = FALSE
|
||||
return 1
|
||||
busy = FALSE
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user