mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-30 00:29:02 +01:00
[MIRROR] Replaces a number of deciseconds into SECONDS (#27188)
* Replaces a number of deciseconds into SECONDS * blep --------- Co-authored-by: Jeremiah <42397676+jlsnow301@users.noreply.github.com> Co-authored-by: Waterpig <wtryoutube@seznam.cz> Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
This commit is contained in:
co-authored by
Jeremiah
Waterpig
Waterpig
parent
902c834e83
commit
c72d1dcf48
+16
-1
@@ -251,7 +251,22 @@ GLOBAL_LIST_EMPTY(species_list)
|
||||
*
|
||||
* Checks that `user` does not move, change hands, get stunned, etc. for the
|
||||
* given `delay`. Returns `TRUE` on success or `FALSE` on failure.
|
||||
* Interaction_key is the assoc key under which the do_after is capped, with max_interact_count being the cap. Interaction key will default to target if not set.
|
||||
*
|
||||
* @param {mob} user - The mob performing the action.
|
||||
*
|
||||
* @param {number} delay - The time in deciseconds. Use the SECONDS define for readability. `1 SECONDS` is 10 deciseconds.
|
||||
*
|
||||
* @param {atom} target - The target of the action. This is where the progressbar will display.
|
||||
*
|
||||
* @param {flag} timed_action_flags - Flags to control the behavior of the timed action.
|
||||
*
|
||||
* @param {boolean} progress - Whether to display a progress bar / cogbar.
|
||||
*
|
||||
* @param {datum/callback} extra_checks - Additional checks to perform before the action is executed.
|
||||
*
|
||||
* @param {string} interaction_key - The assoc key under which the do_after is capped, with max_interact_count being the cap. Interaction key will default to target if not set.
|
||||
*
|
||||
* @param {number} max_interact_count - The maximum amount of interactions allowed.
|
||||
*/
|
||||
/proc/do_after(mob/user, delay, atom/target, timed_action_flags = NONE, progress = TRUE, datum/callback/extra_checks, interaction_key, max_interact_count = 1)
|
||||
if(!user)
|
||||
|
||||
@@ -286,7 +286,6 @@
|
||||
// SKYRAT EDIT CHANGE START -- Reworked whiteship ruin
|
||||
/* SKYRAT EDIT CHANGE -- ORIGINAL COMMENTED OUT
|
||||
/datum/map_template/ruin/space/whiteshipruin_box
|
||||
<<<<<<< HEAD
|
||||
id = "whiteshipruin_box"
|
||||
suffix = "whiteshipruin_box.dmm"*/
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
span_notice("You begin to load a surgery protocol from \the [O]..."), \
|
||||
span_hear("You hear the chatter of a floppy drive."))
|
||||
var/obj/item/disk/surgery/D = O
|
||||
if(do_after(user, 10, target = src))
|
||||
if(do_after(user, 1 SECONDS, target = src))
|
||||
advanced_surgeries |= D.surgeries
|
||||
return TRUE
|
||||
return ..()
|
||||
|
||||
@@ -133,7 +133,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/defibrillator_mount, 28)
|
||||
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, 100, target = src) || !clamps_locked)
|
||||
if(!do_after(user, 10 SECONDS, target = 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]!"))
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
else
|
||||
to_chat(user, span_notice("You start adding [I] to [src]..."))
|
||||
playsound(src, 'sound/items/hammering_wood.ogg', 50, vary = TRUE)
|
||||
if(do_after(user, 50, target=src))
|
||||
if(do_after(user, 5 SECONDS, target=src))
|
||||
W.use(5)
|
||||
var/turf/T = get_turf(src)
|
||||
T.place_on_top(/turf/closed/wall/mineral/wood/nonmetal)
|
||||
|
||||
@@ -304,7 +304,7 @@
|
||||
if(!briefcase || !usr.can_perform_action(src, NEED_DEXTERITY|NEED_HANDS))
|
||||
return
|
||||
usr.visible_message(span_notice("[usr] starts closing [src]..."), span_notice("You start closing [src]..."))
|
||||
if(do_after(usr, 30, target = usr))
|
||||
if(do_after(usr, 3 SECONDS, target = usr))
|
||||
usr.put_in_hands(briefcase)
|
||||
moveToNullspace() //hides it from suitcase contents
|
||||
closed = TRUE
|
||||
@@ -343,7 +343,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, 30, target = user))
|
||||
if(do_after(user, 3 SECONDS, target = user))
|
||||
pad.forceMove(get_turf(src))
|
||||
pad.update_indicator()
|
||||
pad.closed = FALSE
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
|
||||
/obj/machinery/medipen_refiller/plunger_act(obj/item/plunger/P, mob/living/user, reinforced)
|
||||
to_chat(user, span_notice("You start furiously plunging [name]."))
|
||||
if(do_after(user, 30, target = src))
|
||||
if(do_after(user, 3 SECONDS, target = src))
|
||||
to_chat(user, span_notice("You finish plunging the [name]."))
|
||||
reagents.expose(get_turf(src), TOUCH)
|
||||
reagents.clear_reagents()
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
update_appearance()
|
||||
to_chat(user, span_notice("You start pressing a new license plate!"))
|
||||
|
||||
if(!do_after(user, 40, target = src))
|
||||
if(!do_after(user, 4 SECONDS, target = src))
|
||||
pressing = FALSE
|
||||
update_appearance()
|
||||
return FALSE
|
||||
|
||||
@@ -89,7 +89,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, 40, target = src))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
to_chat(user, span_notice("You complete the link between [K] and [src]."))
|
||||
K.set_pad(src)
|
||||
|
||||
|
||||
@@ -243,7 +243,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, 30, target = src))
|
||||
if(do_after(user, 3 SECONDS, target = src))
|
||||
if(coil.get_amount() < 1)
|
||||
return
|
||||
coil.use(1)
|
||||
|
||||
@@ -468,7 +468,7 @@
|
||||
else
|
||||
target.visible_message(span_warning("[user] starts shoving [target] into [src]!"), span_userdanger("[user] starts shoving you into [src]!"))
|
||||
|
||||
if(do_after(user, 30, target))
|
||||
if(do_after(user, 3 SECONDS, target))
|
||||
if(occupant || helmet || suit || storage)
|
||||
return
|
||||
if(target == user)
|
||||
|
||||
@@ -176,7 +176,7 @@
|
||||
|
||||
user.visible_message(span_warning("[user] begins to wipe [target]'s lipstick off with \the [src]."), \
|
||||
span_notice("You begin to wipe off [target]'s lipstick..."))
|
||||
if(!do_after(user, 10, target = target))
|
||||
if(!do_after(user, 1 SECONDS, target = target))
|
||||
return
|
||||
user.visible_message(span_notice("[user] wipes [target]'s lipstick off with \the [src]."), \
|
||||
span_notice("You wipe off [target]'s lipstick."))
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
if("APC")
|
||||
circuit_type = /obj/item/electronics/apc
|
||||
to_chat(user, span_notice("You spot your circuit, and carefully attempt to remove it from [src], hold still!"))
|
||||
if(do_after(user, 30, target = user))
|
||||
if(do_after(user, 3 SECONDS, target = user))
|
||||
if(!src || QDELETED(src))//Sanity Check.
|
||||
return
|
||||
var/returned_circuit = new circuit_type(src)
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
if(!istype(user) || !user.can_perform_action(src, NEED_DEXTERITY))
|
||||
return
|
||||
to_chat(user, span_notice("You start pressing [src]'s unlink button..."))
|
||||
if(do_after(user, 40, target = src))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
to_chat(user, span_notice("The keycard beeps twice and disconnects the quantum link."))
|
||||
set_pad()
|
||||
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
|
||||
to_chat(user, span_notice("You start planting [src]. The timer is set to [det_time]..."))
|
||||
|
||||
if(do_after(user, 30, target = bomb_target))
|
||||
if(do_after(user, 3 SECONDS, target = bomb_target))
|
||||
if(!user.temporarilyRemoveItemFromInventory(src))
|
||||
return .
|
||||
target = bomb_target
|
||||
|
||||
@@ -127,7 +127,7 @@
|
||||
user.visible_message(span_notice("[user] starts recharging [target] with [src]."), span_notice("You start recharging [target] with [src]."))
|
||||
|
||||
while(target_cell.charge < target_cell.maxcharge)
|
||||
if(do_after(user, 10, target = user) && our_cell.charge)
|
||||
if(do_after(user, 1 SECONDS, target = user) && our_cell.charge)
|
||||
done_any = TRUE
|
||||
induce(target_cell, coefficient)
|
||||
do_sparks(1, FALSE, target)
|
||||
|
||||
@@ -446,7 +446,7 @@
|
||||
finish_roasting(user, target)
|
||||
|
||||
/obj/item/melee/roastingstick/proc/finish_roasting(user, atom/target)
|
||||
if(do_after(user, 100, target = user))
|
||||
if(do_after(user, 10 SECONDS, target = user))
|
||||
to_chat(user, span_notice("You finish roasting [held_sausage]."))
|
||||
playsound(src, 'sound/items/welder2.ogg', 50, TRUE)
|
||||
held_sausage.add_atom_colour(rgb(103, 63, 24), FIXED_COLOUR_PRIORITY)
|
||||
|
||||
@@ -131,7 +131,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, 200, target = user) || open || !locked || !(user in occupants))
|
||||
if(!do_after(user, 20 SECONDS, target = 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!"))
|
||||
|
||||
@@ -275,7 +275,7 @@
|
||||
if(machine_target.anchored)
|
||||
balloon_alert(user, "unanchor first!")
|
||||
return
|
||||
if(do_after(user, 20, target = target))
|
||||
if(do_after(user, 2 SECONDS, target = target))
|
||||
machine_target.deconstruct() //Let's not substract matter
|
||||
playsound(get_turf(src), 'sound/machines/click.ogg', 50, TRUE) //this is just such a great sound effect
|
||||
return
|
||||
|
||||
@@ -247,7 +247,7 @@
|
||||
return
|
||||
|
||||
to_chat(user, span_notice("You connect to [target_machine]'s power line..."))
|
||||
while(do_after(user, 15, target = target_machine, progress = 0))
|
||||
while(do_after(user, 1.5 SECONDS, target = target_machine, progress = FALSE))
|
||||
if(!user || !user.cell || mode != "draw")
|
||||
return
|
||||
|
||||
@@ -278,7 +278,7 @@
|
||||
|
||||
to_chat(user, span_notice("You connect to [target]'s power port..."))
|
||||
|
||||
while(do_after(user, 15, target = target, progress = 0))
|
||||
while(do_after(user, 1.5 SECONDS, target = target, progress = FALSE))
|
||||
if(!user || !user.cell || mode != "draw")
|
||||
return
|
||||
|
||||
@@ -316,7 +316,7 @@
|
||||
|
||||
to_chat(user, span_notice("You connect to [target]'s power port..."))
|
||||
|
||||
while(do_after(user, 15, target = target, progress = 0))
|
||||
while(do_after(user, 1.5 SECONDS, target = target, progress = FALSE))
|
||||
if(!user || !user.cell || mode != "charge")
|
||||
return
|
||||
|
||||
|
||||
@@ -231,7 +231,7 @@
|
||||
return
|
||||
else
|
||||
to_chat(user, span_notice("You begin to replace the bulb..."))
|
||||
if(do_after(user, 20, target = user))
|
||||
if(do_after(user, 2 SECONDS, target = user))
|
||||
if(QDELETED(flash) || flash.burnt_out)
|
||||
return
|
||||
playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
|
||||
@@ -322,7 +322,7 @@ GLOBAL_LIST_INIT(sinew_recipes, list ( \
|
||||
if(W.get_sharpness())
|
||||
playsound(loc, 'sound/weapons/slice.ogg', 50, TRUE, -1)
|
||||
user.visible_message(span_notice("[user] starts cutting hair off \the [src]."), span_notice("You start cutting the hair off \the [src]..."), span_hear("You hear the sound of a knife rubbing against flesh."))
|
||||
if(do_after(user, 50, target = src))
|
||||
if(do_after(user, 5 SECONDS, target = src))
|
||||
to_chat(user, span_notice("You cut the hair from [src.name]."))
|
||||
new /obj/item/stack/sheet/hairlesshide(user.drop_location(), amount)
|
||||
use(amount)
|
||||
|
||||
@@ -742,7 +742,7 @@
|
||||
return
|
||||
if(istype(I, /obj/item/plunger))
|
||||
balloon_alert(user, "plunging...")
|
||||
if(do_after(user, 10, target = src))
|
||||
if(do_after(user, 1 SECONDS, target = src))
|
||||
balloon_alert(user, "plunged")
|
||||
reagents.clear_reagents()
|
||||
return
|
||||
|
||||
@@ -214,7 +214,7 @@
|
||||
if(C.get_amount() >= 5)
|
||||
playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
balloon_alert(user, "adding cables to frame...")
|
||||
if(do_after(user, 20, target = src) && state == SCREWED_CORE && C.use(5))
|
||||
if(do_after(user, 2 SECONDS, target = src) && state == SCREWED_CORE && C.use(5))
|
||||
balloon_alert(user, "added cables to frame.")
|
||||
state = CABLED_CORE
|
||||
update_appearance()
|
||||
@@ -241,7 +241,7 @@
|
||||
if(G.get_amount() >= 2)
|
||||
playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
balloon_alert(user, "adding glass panel...")
|
||||
if(do_after(user, 20, target = src) && state == CABLED_CORE && G.use(2))
|
||||
if(do_after(user, 2 SECONDS, target = src) && state == CABLED_CORE && G.use(2))
|
||||
balloon_alert(user, "added glass panel")
|
||||
state = GLASS_CORE
|
||||
update_appearance()
|
||||
|
||||
@@ -85,7 +85,7 @@
|
||||
if(burning)
|
||||
to_chat(user, span_warning("You need to extinguish [src] before removing the logs!"))
|
||||
return
|
||||
if(!has_buckled_mobs() && do_after(user, 50, target = src))
|
||||
if(!has_buckled_mobs() && do_after(user, 5 SECONDS, target = src))
|
||||
for(var/obj/item/grown/log/bonfire_log in contents)
|
||||
bonfire_log.forceMove(drop_location())
|
||||
bonfire_log.pixel_x += rand(1,4)
|
||||
|
||||
@@ -168,7 +168,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, 20, target = src))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
glass_sheet.use(2)
|
||||
broken = FALSE
|
||||
atom_integrity = max_integrity
|
||||
@@ -630,7 +630,7 @@
|
||||
. = ..()
|
||||
if(atom_integrity <= (integrity_failure * max_integrity))
|
||||
to_chat(user, span_notice("You start recalibrating [src]'s hover field..."))
|
||||
if(do_after(user, 20, target = src))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
broken = FALSE
|
||||
atom_integrity = max_integrity
|
||||
update_appearance()
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
W.play_tool_sound(src, 100)
|
||||
user.visible_message(span_notice("[user] installs the electronics into the airlock assembly."), \
|
||||
span_notice("You start to install electronics into the airlock assembly..."))
|
||||
if(do_after(user, 40, target = src))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if( state != AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS )
|
||||
return
|
||||
if(!user.transferItemToLoc(W, src))
|
||||
@@ -224,7 +224,7 @@
|
||||
playsound(src, 'sound/items/crowbar.ogg', 100, TRUE)
|
||||
user.visible_message(span_notice("[user] adds [G.name] to the airlock assembly."), \
|
||||
span_notice("You start to install [G.name] into the airlock assembly..."))
|
||||
if(do_after(user, 40, target = src))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(G.get_amount() < 1 || glass)
|
||||
return
|
||||
if(G.type == /obj/item/stack/sheet/rglass)
|
||||
@@ -247,7 +247,7 @@
|
||||
playsound(src, 'sound/items/crowbar.ogg', 100, TRUE)
|
||||
user.visible_message(span_notice("[user] adds [G.name] to the airlock assembly."), \
|
||||
span_notice("You start to install [G.name] into the airlock assembly..."))
|
||||
if(do_after(user, 40, target = src))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(G.get_amount() < 2 || mineral)
|
||||
return
|
||||
to_chat(user, span_notice("You install [M] plating into the airlock assembly."))
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
balloon_alert(user, "need [amount] rods!")
|
||||
return
|
||||
balloon_alert(user, "concealing entrance...")
|
||||
if(do_after(user, 20, target = src))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(rod.get_amount() < amount)
|
||||
return
|
||||
rod.use(amount)
|
||||
@@ -94,7 +94,7 @@
|
||||
balloon_alert(user, "need [amount] rods!")
|
||||
return
|
||||
balloon_alert(user, "adding plating...")
|
||||
if(do_after(user, 40, target = src))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(rod.get_amount() < amount)
|
||||
return
|
||||
rod.use(amount)
|
||||
@@ -176,7 +176,7 @@
|
||||
balloon_alert(user, "need [amount] sheets!")
|
||||
return
|
||||
balloon_alert(user, "concealing entrance...")
|
||||
if(do_after(user, 20, target = src))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(sheets.get_amount() < amount)
|
||||
return
|
||||
sheets.use(amount)
|
||||
@@ -242,7 +242,7 @@
|
||||
balloon_alert(user, "need [amount] sheets!")
|
||||
return
|
||||
balloon_alert(user, "concealing entrance...")
|
||||
if(do_after(user, 20, target = src))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(sheets.get_amount() < amount)
|
||||
return
|
||||
sheets.use(amount)
|
||||
@@ -264,7 +264,7 @@
|
||||
balloon_alert(user, "need [amount] sheets!")
|
||||
return
|
||||
balloon_alert(user, "adding plating...")
|
||||
if (do_after(user, 40, target = src))
|
||||
if (do_after(user, 4 SECONDS, target = src))
|
||||
if(sheets.get_amount() < amount)
|
||||
return
|
||||
sheets.use(amount)
|
||||
@@ -446,7 +446,7 @@
|
||||
balloon_alert(user, "need [amount] sheet!")
|
||||
return
|
||||
balloon_alert(user, "adding plating...")
|
||||
if(do_after(user, 50, target = src))
|
||||
if(do_after(user, 5 SECONDS, target = src))
|
||||
if(R.get_amount() < amount)
|
||||
return
|
||||
R.use(amount)
|
||||
@@ -518,7 +518,7 @@
|
||||
balloon_alert(user, "need [amount] sheets!")
|
||||
return
|
||||
balloon_alert(user, "adding plating...")
|
||||
if(do_after(user, 50, target = src))
|
||||
if(do_after(user, 5 SECONDS, target = src))
|
||||
if(B.get_amount() < amount)
|
||||
return
|
||||
B.use(amount)
|
||||
|
||||
@@ -192,7 +192,7 @@
|
||||
if (blade_status == GUILLOTINE_BLADE_RAISED)
|
||||
if (blade_sharpness < GUILLOTINE_BLADE_MAX_SHARP)
|
||||
blade_status = GUILLOTINE_BLADE_SHARPENING
|
||||
if(do_after(user, 7, target = src))
|
||||
if(do_after(user, 0.7 SECONDS, target = 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."))
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
return
|
||||
user.visible_message(span_notice("[user] begins engraving [src]."), \
|
||||
span_notice("You begin engraving [src]."))
|
||||
if(!do_after(user, 40, target = src)) //This spits out a visible message that somebody is engraving a plaque, then has a delay.
|
||||
if(!do_after(user, 4 SECONDS, target = src)) //This spits out a visible message that somebody is engraving a plaque, then has a delay.
|
||||
return
|
||||
name = "\improper [namechoice]" //We want improper here so examine doesn't get weird if somebody capitalizes the plaque title.
|
||||
desc = "The plaque reads: '[descriptionchoice]'"
|
||||
|
||||
@@ -110,7 +110,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, 20, target = src) && material.use(1))
|
||||
if(do_after(user, 2 SECONDS, target = src) && material.use(1))
|
||||
make_new_table(toConstruct, null, carpet_type)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -963,7 +963,7 @@
|
||||
return
|
||||
building = TRUE
|
||||
to_chat(user, span_notice("You start constructing a rack..."))
|
||||
if(do_after(user, 50, target = user, progress=TRUE))
|
||||
if(do_after(user, 5 SECONDS, target = user, progress=TRUE))
|
||||
if(!user.temporarilyRemoveItemFromInventory(src))
|
||||
return
|
||||
var/obj/structure/rack/R = new /obj/structure/rack(get_turf(src))
|
||||
|
||||
@@ -73,7 +73,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, 15, target = src))
|
||||
if(do_after(user, 1.5 SECONDS, target = 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)
|
||||
@@ -87,7 +87,7 @@
|
||||
else if(open_status == STATION_TUBE_OPEN)
|
||||
if(pod.contents.len && user.loc != pod)
|
||||
user.visible_message(span_notice("[user] starts emptying [pod]'s contents onto the floor."), span_notice("You start emptying [pod]'s contents onto the floor..."))
|
||||
if(do_after(user, 10, target = src)) //So it doesn't default to close_animation() on fail
|
||||
if(do_after(user, 1 SECONDS, target = 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))
|
||||
|
||||
@@ -357,7 +357,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink, (-14))
|
||||
span_notice("You start washing your [washing_face ? "face" : "hands"]..."))
|
||||
busy = TRUE
|
||||
|
||||
if(!do_after(user, 40, target = src))
|
||||
if(!do_after(user, 4 SECONDS, target = src))
|
||||
busy = FALSE
|
||||
return
|
||||
|
||||
@@ -483,7 +483,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/sink, (-14))
|
||||
if(!user.combat_mode)
|
||||
to_chat(user, span_notice("You start washing [O]..."))
|
||||
busy = TRUE
|
||||
if(!do_after(user, 40, target = src))
|
||||
if(!do_after(user, 4 SECONDS, target = src))
|
||||
busy = FALSE
|
||||
return 1
|
||||
busy = FALSE
|
||||
|
||||
@@ -178,7 +178,7 @@
|
||||
else if(istype(W, /obj/item/stack/cable_coil) && anchored)
|
||||
user.visible_message(span_notice("[user] wires the windoor assembly."), span_notice("You start to wire the windoor assembly..."))
|
||||
|
||||
if(do_after(user, 40, target = src))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(!src || !anchored || src.state != "01")
|
||||
return
|
||||
var/obj/item/stack/cable_coil/CC = W
|
||||
@@ -220,7 +220,7 @@
|
||||
user.visible_message(span_notice("[user] installs the electronics into the airlock assembly."),
|
||||
span_notice("You start to install electronics into the airlock assembly..."))
|
||||
|
||||
if(do_after(user, 40, target = src))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(!src || electronics)
|
||||
W.forceMove(drop_location())
|
||||
return
|
||||
|
||||
@@ -915,7 +915,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/structure/window/reinforced/tinted/frosted/spaw
|
||||
return ..()
|
||||
if(istype(W, /obj/item/paper) && atom_integrity < max_integrity)
|
||||
user.visible_message(span_notice("[user] starts to patch the holes in \the [src]."))
|
||||
if(do_after(user, 20, target = src))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
atom_integrity = min(atom_integrity+4,max_integrity)
|
||||
qdel(W)
|
||||
user.visible_message(span_notice("[user] patches some of the holes in \the [src]."))
|
||||
|
||||
@@ -245,7 +245,7 @@
|
||||
|
||||
/turf/closed/mineral/attack_hulk(mob/living/carbon/human/H)
|
||||
..()
|
||||
if(do_after(H, 50, target = src))
|
||||
if(do_after(H, 5 SECONDS, target = src))
|
||||
playsound(src, 'sound/effects/meteorimpact.ogg', 100, TRUE)
|
||||
H.say(pick(";RAAAAAAAARGH!", ";HNNNNNNNNNGGGGGGH!", ";GWAAAAAAAARRRHHH!", "NNNNNNNNGGGGGGGGHH!", ";AAAAAAARRRGH!" ), forced = "hulk")
|
||||
gets_drilled(H)
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
return
|
||||
else
|
||||
to_chat(user, span_notice("You begin reinforcing the floor..."))
|
||||
if(do_after(user, 30, target = src))
|
||||
if(do_after(user, 3 SECONDS, target = src))
|
||||
if (R.get_amount() >= 2 && !istype(src, /turf/open/floor/engine))
|
||||
place_on_top(/turf/open/floor/engine, flags = CHANGETURF_INHERIT_AIR)
|
||||
playsound(src, 'sound/items/deconstruct.ogg', 80, TRUE)
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
to_chat(user, span_warning("You need one alien alloy sheet to do this!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start adding [stacked_sheets] to [src]..."))
|
||||
if(do_after(user, 50, target = src))
|
||||
if(do_after(user, 5 SECONDS, target = src))
|
||||
stacked_sheets.use(1)
|
||||
new /obj/structure/table/abductor(src.loc)
|
||||
qdel(src)
|
||||
@@ -42,7 +42,7 @@
|
||||
to_chat(user, span_warning("You need one sheet of silver to do this!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start adding [stacked_sheets] to [src]..."))
|
||||
if(do_after(user, 50, target = src))
|
||||
if(do_after(user, 5 SECONDS, target = src))
|
||||
stacked_sheets.use(1)
|
||||
new /obj/structure/table/optable/abductor(src.loc)
|
||||
qdel(src)
|
||||
|
||||
@@ -93,7 +93,7 @@
|
||||
to_chat(user, span_warning("You need to be next to the specimen to prepare it for transport!"))
|
||||
return
|
||||
to_chat(user, span_notice("You begin preparing [target] for transport..."))
|
||||
if(do_after(user, 100, target = target))
|
||||
if(do_after(user, 10 SECONDS, target = target))
|
||||
marked_target_weakref = WEAKREF(target)
|
||||
to_chat(user, span_notice("You finish preparing [target] for transport."))
|
||||
|
||||
|
||||
@@ -525,7 +525,7 @@
|
||||
playsound(loc, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2)
|
||||
C.visible_message(span_danger("[user] begins restraining [C] with dark magic!"), \
|
||||
span_userdanger("[user] begins shaping dark magic shackles around your wrists!"))
|
||||
if(do_after(user, 30, C))
|
||||
if(do_after(user, 3 SECONDS, C))
|
||||
if(!C.handcuffed)
|
||||
C.set_handcuffed(new /obj/item/restraints/handcuffs/energy/cult/used(C))
|
||||
C.update_handcuffed()
|
||||
@@ -604,7 +604,7 @@
|
||||
playsound(T, 'sound/machines/airlock_alien_prying.ogg', 80, TRUE)
|
||||
var/prev_color = candidate.color
|
||||
candidate.color = "black"
|
||||
if(do_after(user, 90, target = candidate))
|
||||
if(do_after(user, 9 SECONDS, target = candidate))
|
||||
candidate.undeploy()
|
||||
candidate.emp_act(EMP_HEAVY)
|
||||
var/construct_class = show_radial_menu(user, src, GLOB.construct_radial_images, custom_check = CALLBACK(src, PROC_REF(check_menu), user), require_near = TRUE, tooltips = TRUE)
|
||||
@@ -633,7 +633,7 @@
|
||||
channeling = TRUE
|
||||
playsound(T, 'sound/machines/airlockforced.ogg', 50, TRUE)
|
||||
do_sparks(5, TRUE, target)
|
||||
if(do_after(user, 50, target = user))
|
||||
if(do_after(user, 5 SECONDS, target = user))
|
||||
if(QDELETED(target))
|
||||
channeling = FALSE
|
||||
return
|
||||
|
||||
@@ -229,7 +229,7 @@
|
||||
if(!LAZYLEN(destinations))
|
||||
to_chat(owner, span_warning("You need more space to summon your cult!"))
|
||||
return
|
||||
if(do_after(owner, 30, target = owner))
|
||||
if(do_after(owner, 3 SECONDS, target = owner))
|
||||
for(var/datum/mind/B in antag.cult_team.members)
|
||||
if(B.current && B.current.stat != DEAD)
|
||||
var/turf/mobloc = get_turf(B.current)
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
if(!fug_antag)
|
||||
to_chat(fugitive_hunter, span_warning("This is not a wanted fugitive!"))
|
||||
return
|
||||
if(do_after(fugitive_hunter, 50, target = fugitive))
|
||||
if(do_after(fugitive_hunter, 5 SECONDS, target = fugitive))
|
||||
add_prisoner(fugitive, fug_antag)
|
||||
|
||||
/obj/machinery/fugitive_capture/proc/add_prisoner(mob/living/carbon/human/fugitive, datum/antagonist/fugitive/antag)
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
to_chat(user, span_notice("You activate \the [src]."))
|
||||
playsound(src, 'sound/effects/seedling_chargeup.ogg', 100, TRUE, -6)
|
||||
apply_wibbly_filters(user)
|
||||
if (do_after(user, 50, target=user) && user.cell.use(ACTIVATION_COST))
|
||||
if (do_after(user, 5 SECONDS, target=user) && user.cell.use(ACTIVATION_COST))
|
||||
playsound(src, 'sound/effects/bamf.ogg', 100, TRUE, -6)
|
||||
to_chat(user, span_notice("You are now disguised as the Nanotrasen engineering borg \"[friendlyName]\"."))
|
||||
activate(user)
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
return
|
||||
user.visible_message(span_notice("[user.name] wires the air alarm."), \
|
||||
span_notice("You start wiring the air alarm..."))
|
||||
if (do_after(user, 20, target = src))
|
||||
if (do_after(user, 2 SECONDS, target = src))
|
||||
if (cable.get_amount() >= 5 && buildstage == AIR_ALARM_BUILD_NO_WIRES)
|
||||
cable.use(5)
|
||||
to_chat(user, span_notice("You wire the air alarm."))
|
||||
|
||||
@@ -352,7 +352,7 @@
|
||||
update_icon_nopipes()
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/vent_pump/attack_alien(mob/user, list/modifiers)
|
||||
if(!welded || !(do_after(user, 20, target = src)))
|
||||
if(!welded || !(do_after(user, 2 SECONDS, target = src)))
|
||||
return
|
||||
user.visible_message(span_warning("[user] furiously claws at [src]!"), span_notice("You manage to clear away the stuff blocking the vent."), span_hear("You hear loud scraping noises."))
|
||||
welded = FALSE
|
||||
|
||||
@@ -334,7 +334,7 @@
|
||||
. += "It seems welded shut."
|
||||
|
||||
/obj/machinery/atmospherics/components/unary/vent_scrubber/attack_alien(mob/user, list/modifiers)
|
||||
if(!welded || !(do_after(user, 20, target = src)))
|
||||
if(!welded || !(do_after(user, 2 SECONDS, target = src)))
|
||||
return
|
||||
user.visible_message(span_warning("[user] furiously claws at [src]!"), span_notice("You manage to clear away the stuff blocking the scrubber."), span_hear("You hear loud scraping noises."))
|
||||
welded = FALSE
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
to_chat(user, span_notice("[target] slithers into [src]."))
|
||||
|
||||
/obj/item/clothing/shoes/cowboy/container_resist_act(mob/living/user)
|
||||
if(!do_after(user, 10, target = user))
|
||||
if(!do_after(user, 1 SECONDS, target = user))
|
||||
return
|
||||
user.forceMove(drop_location())
|
||||
|
||||
|
||||
@@ -124,7 +124,7 @@
|
||||
if(smile == FALSE)
|
||||
var/obj/item/toy/crayon/CR = hitting_item
|
||||
to_chat(user, span_notice("You start drawing a smiley face on the helmet's visor.."))
|
||||
if(do_after(user, 25, target = src))
|
||||
if(do_after(user, 2.5 SECONDS, target = src))
|
||||
smile = TRUE
|
||||
smile_color = CR.paint_color
|
||||
to_chat(user, "You draw a smiley on the helmet visor.")
|
||||
|
||||
@@ -273,7 +273,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/computer/auxiliary_base, 32)
|
||||
|
||||
to_chat(user, span_notice("You begin setting the landing zone parameters..."))
|
||||
setting = TRUE
|
||||
if(!do_after(user, 50, target = user)) //You get a few seconds to cancel if you do not want to drop there.
|
||||
if(!do_after(user, 5 SECONDS, target = user)) //You get a few seconds to cancel if you do not want to drop there.
|
||||
setting = FALSE
|
||||
return
|
||||
setting = FALSE
|
||||
|
||||
@@ -120,7 +120,7 @@
|
||||
if(isturf(user.loc))
|
||||
user.visible_message(span_hierophant_warning("[user] starts fiddling with [src]'s pommel..."), \
|
||||
span_notice("You start detaching the hierophant beacon..."))
|
||||
if(do_after(user, 50, target = user) && !beacon)
|
||||
if(do_after(user, 5 SECONDS, target = user) && !beacon)
|
||||
var/turf/user_turf = get_turf(user)
|
||||
playsound(user_turf,'sound/magic/blind.ogg', 200, TRUE, -4)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph/teleport(user_turf, user)
|
||||
@@ -149,7 +149,7 @@
|
||||
beacon.icon_state = "hierophant_tele_on"
|
||||
var/obj/effect/temp_visual/hierophant/telegraph/edge/user_telegraph = new /obj/effect/temp_visual/hierophant/telegraph/edge(user.loc)
|
||||
var/obj/effect/temp_visual/hierophant/telegraph/edge/beacon_telegraph = new /obj/effect/temp_visual/hierophant/telegraph/edge(beacon.loc)
|
||||
if(do_after(user, 40, target = user) && user && beacon)
|
||||
if(do_after(user, 4 SECONDS, target = user) && user && beacon)
|
||||
var/turf/destination = get_turf(beacon)
|
||||
var/turf/source = get_turf(user)
|
||||
if(destination.is_blocked_turf(TRUE))
|
||||
@@ -162,7 +162,7 @@
|
||||
new /obj/effect/temp_visual/hierophant/telegraph(source, user)
|
||||
playsound(destination,'sound/magic/wand_teleport.ogg', 200, TRUE)
|
||||
playsound(source,'sound/machines/airlockopen.ogg', 200, TRUE)
|
||||
if(!do_after(user, 3, target = user) || !user || !beacon || QDELETED(beacon)) //no walking away shitlord
|
||||
if(!do_after(user, 0.3 SECONDS, target = user) || !user || !beacon || QDELETED(beacon)) //no walking away shitlord
|
||||
teleporting = FALSE
|
||||
if(user)
|
||||
user.update_mob_action_buttons()
|
||||
|
||||
@@ -105,22 +105,22 @@
|
||||
return
|
||||
var/failText = span_warning("The snake seems unsatisfied with your incomplete oath and returns to its previous place on the rod, returning to its dormant, wooden state. You must stand still while completing your oath!")
|
||||
to_chat(itemUser, span_notice("The wooden snake that was carved into the rod seems to suddenly come alive and begins to slither down your arm! The compulsion to help others grows abnormally strong..."))
|
||||
if(do_after(itemUser, 40, target = itemUser))
|
||||
if(do_after(itemUser, 4 SECONDS, target = itemUser))
|
||||
itemUser.say("I swear to fulfill, to the best of my ability and judgment, this covenant:", forced = "hippocratic oath")
|
||||
else
|
||||
to_chat(itemUser, failText)
|
||||
return
|
||||
if(do_after(itemUser, 20, target = itemUser))
|
||||
if(do_after(itemUser, 2 SECONDS, target = itemUser))
|
||||
itemUser.say("I will apply, for the benefit of the sick, all measures that are required, avoiding those twin traps of overtreatment and therapeutic nihilism.", forced = "hippocratic oath")
|
||||
else
|
||||
to_chat(itemUser, failText)
|
||||
return
|
||||
if(do_after(itemUser, 30, target = itemUser))
|
||||
if(do_after(itemUser, 3 SECONDS, target = itemUser))
|
||||
itemUser.say("I will remember that I remain a member of society, with special obligations to all my fellow human beings, those sound of mind and body as well as the infirm.", forced = "hippocratic oath")
|
||||
else
|
||||
to_chat(itemUser, failText)
|
||||
return
|
||||
if(do_after(itemUser, 30, target = itemUser))
|
||||
if(do_after(itemUser, 3 SECONDS, target = itemUser))
|
||||
itemUser.say("If I do not violate this oath, may I enjoy life and art, respected while I live and remembered with affection thereafter. May I always act so as to preserve the finest traditions of my calling and may I long experience the joy of healing those who seek my help.", forced = "hippocratic oath")
|
||||
else
|
||||
to_chat(itemUser, failText)
|
||||
@@ -163,7 +163,7 @@
|
||||
|
||||
/obj/item/clothing/neck/necklace/memento_mori/proc/memento(mob/living/carbon/human/user)
|
||||
to_chat(user, span_warning("You feel your life being drained by the pendant..."))
|
||||
if(do_after(user, 40, target = user))
|
||||
if(do_after(user, 4 SECONDS, target = user))
|
||||
to_chat(user, span_notice("Your lifeforce is now linked to the pendant! You feel like removing it would kill you, and yet you instinctively know that until then, you won't die."))
|
||||
user.add_traits(list(TRAIT_NODEATH, TRAIT_NOHARDCRIT, TRAIT_NOCRITDAMAGE), CLOTHING_TRAIT)
|
||||
RegisterSignal(user, COMSIG_LIVING_HEALTH_UPDATE, PROC_REF(check_health))
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
to_chat(drone, span_warning("You're already in perfect condition!"))
|
||||
return
|
||||
drone.visible_message(span_notice("[drone] begins to cannibalize parts from [src]."), span_notice("You begin to cannibalize parts from [src]..."))
|
||||
if(do_after(drone, 60, 0, target = src))
|
||||
if(do_after(drone, 6 SECONDS, 0, target = src))
|
||||
drone.visible_message(span_notice("[drone] repairs itself using [src]'s remains!"), span_notice("You repair yourself using [src]'s remains."))
|
||||
drone.adjustBruteLoss(-src.maxHealth)
|
||||
new /obj/effect/decal/cleanable/oil/streak(get_turf(src))
|
||||
@@ -67,7 +67,7 @@
|
||||
to_chat(user, span_warning("You can't seem to find the [pick(faux_gadgets)]! Without it, [src] [pick(faux_problems)]."))
|
||||
return
|
||||
user.visible_message(span_notice("[user] begins to reactivate [src]."), span_notice("You begin to reactivate [src]..."))
|
||||
if(do_after(user, 30, 1, target = src))
|
||||
if(do_after(user, 3 SECONDS, 1, target = src))
|
||||
revive(HEAL_ALL)
|
||||
user.visible_message(span_notice("[user] reactivates [src]!"), span_notice("You reactivate [src]."))
|
||||
alert_drones(DRONE_NET_CONNECT)
|
||||
|
||||
@@ -11,7 +11,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real
|
||||
if (getFireLoss() > 0 || getToxLoss() > 0)
|
||||
if(src == user)
|
||||
to_chat(user, span_notice("You start fixing yourself..."))
|
||||
if(!do_after(user, 50, target = src))
|
||||
if(!do_after(user, 5 SECONDS, target = src))
|
||||
return
|
||||
if (coil.use(1))
|
||||
adjustFireLoss(-30)
|
||||
@@ -52,7 +52,7 @@ GLOBAL_LIST_INIT(blacklisted_borg_hats, typecacheof(list( //Hats that don't real
|
||||
return
|
||||
to_chat(user, span_notice("You begin to place [W] on [src]'s head..."))
|
||||
to_chat(src, span_notice("[user] is placing [W] on your head..."))
|
||||
if(do_after(user, 30, target = src))
|
||||
if(do_after(user, 3 SECONDS, target = src))
|
||||
if (user.temporarilyRemoveItemFromInventory(W, TRUE))
|
||||
place_on_head(W)
|
||||
return
|
||||
|
||||
@@ -163,7 +163,7 @@
|
||||
to_chat(user, span_warning("You need one length of cable to wire the ED-209!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start to wire [src]..."))
|
||||
if(do_after(user, 40, target = src))
|
||||
if(do_after(user, 4 SECONDS, target = src))
|
||||
if(coil.get_amount() >= 1 && build_step == ASSEMBLY_SEVENTH_STEP)
|
||||
coil.use(1)
|
||||
to_chat(user, span_notice("You wire [src]."))
|
||||
@@ -550,7 +550,7 @@
|
||||
to_chat(user, span_warning("You need one fluid duct to finish [src]"))
|
||||
return
|
||||
to_chat(user, span_notice("You start to pipe up [src]..."))
|
||||
if(do_after(user, 40, target = src) && D.use(1))
|
||||
if(do_after(user, 4 SECONDS, target = src) && D.use(1))
|
||||
to_chat(user, span_notice("You pipe up [src]."))
|
||||
var/mob/living/basic/bot/hygienebot/new_bot = new(drop_location())
|
||||
new_bot.name = created_name
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
toggle_magnet()
|
||||
visible_message(span_notice("[targetdirection ? "[src] begins installing a bridge plating." : "[src] begins to repair the hole."] "))
|
||||
mode = BOT_REPAIRING
|
||||
if(do_after(src, 50, target = target_turf) && mode == BOT_REPAIRING)
|
||||
if(do_after(src, 5 SECONDS, target = target_turf) && mode == BOT_REPAIRING)
|
||||
if(autotile) //Build the floor and include a tile.
|
||||
if(replacetiles && tilestack)
|
||||
target_turf.place_on_top(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR) //make sure a hull is actually below the floor tile
|
||||
@@ -348,14 +348,14 @@
|
||||
toggle_magnet()
|
||||
mode = BOT_REPAIRING
|
||||
visible_message(span_notice("[src] begins [(F.broken || F.burnt) ? "repairing the floor" : "placing a floor tile"]."))
|
||||
if(do_after(src, 50, target = F) && mode == BOT_REPAIRING)
|
||||
if(do_after(src, 5 SECONDS, target = F) && mode == BOT_REPAIRING)
|
||||
success = TRUE
|
||||
|
||||
else if(replacetiles && tilestack && F.type != tilestack.turf_type)
|
||||
toggle_magnet()
|
||||
mode = BOT_REPAIRING
|
||||
visible_message(span_notice("[src] begins replacing the floor tiles."))
|
||||
if(do_after(src, 50, target = target_turf) && mode == BOT_REPAIRING && tilestack)
|
||||
if(do_after(src, 5 SECONDS, target = target_turf) && mode == BOT_REPAIRING && tilestack)
|
||||
success = TRUE
|
||||
|
||||
if(success)
|
||||
|
||||
@@ -753,7 +753,7 @@ Difficulty: Hard
|
||||
var/obj/item/hierophant_club/club = attacking_item
|
||||
if(club.beacon == src)
|
||||
to_chat(user, span_notice("You start removing your hierophant beacon..."))
|
||||
if(do_after(user, 50, target = src))
|
||||
if(do_after(user, 5 SECONDS, target = src))
|
||||
playsound(src,'sound/magic/blind.ogg', 100, TRUE, -4)
|
||||
new /obj/effect/temp_visual/hierophant/telegraph/teleport(get_turf(src), user)
|
||||
to_chat(user, span_hierophant_warning("You collect [src], reattaching it to the club!"))
|
||||
|
||||
@@ -223,7 +223,7 @@
|
||||
to_chat(src, span_warning("You are already consuming another creature!"))
|
||||
return FALSE
|
||||
owner.visible_message(span_warning("[ooze] starts attempting to devour [target]!"), span_notice("You start attempting to devour [target]."))
|
||||
if(!do_after(ooze, 15, target = ooze.pulling))
|
||||
if(!do_after(ooze, 1.5 SECONDS, target = ooze.pulling))
|
||||
return FALSE
|
||||
var/mob/living/eat_target = ooze.pulling
|
||||
|
||||
|
||||
@@ -595,7 +595,7 @@ GLOBAL_LIST_INIT(paper_blanks, init_paper_blanks())
|
||||
else
|
||||
user.visible_message(span_warning("[user] starts putting [target] onto the photocopier!"), span_notice("You start putting [target] onto the photocopier..."))
|
||||
|
||||
if(do_after(user, 20, target = src))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(!target || QDELETED(target) || QDELETED(src) || !Adjacent(target)) //check if the photocopier/target still exists.
|
||||
return
|
||||
|
||||
|
||||
@@ -187,7 +187,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/ticket_machine, 32)
|
||||
to_chat(user, span_notice("[src] refuses [I]! There [max_number - ticket_number == 1 ? "is" : "are"] still [max_number - ticket_number] ticket\s left!"))
|
||||
return
|
||||
to_chat(user, span_notice("You start to refill [src]'s ticket holder (doing this will reset its ticket count!)."))
|
||||
if(do_after(user, 30, target = src))
|
||||
if(do_after(user, 3 SECONDS, target = src))
|
||||
to_chat(user, span_notice("You insert [I] into [src] as it whirs nondescriptly."))
|
||||
qdel(I)
|
||||
ticket_number = 0
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
|
||||
/obj/machinery/plumbing/plunger_act(obj/item/plunger/P, mob/living/user, reinforced)
|
||||
to_chat(user, span_notice("You start furiously plunging [name]."))
|
||||
if(do_after(user, 30, target = src))
|
||||
if(do_after(user, 3 SECONDS, target = src))
|
||||
to_chat(user, span_notice("You finish plunging the [name]."))
|
||||
reagents.expose(get_turf(src), TOUCH) //splash on the floor
|
||||
reagents.clear_reagents()
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
/obj/machinery/iv_drip/plumbing/plunger_act(obj/item/plunger/P, mob/living/user, reinforced)
|
||||
to_chat(user, span_notice("You start furiously plunging [name]."))
|
||||
if(do_after(user, 30, target = src))
|
||||
if(do_after(user, 3 SECONDS, target = src))
|
||||
to_chat(user, span_notice("You finish plunging the [name]."))
|
||||
reagents.expose(get_turf(src), TOUCH) //splash on the floor
|
||||
reagents.clear_reagents()
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
return FALSE
|
||||
to_chat(user, span_notice("AI accepted request. Transferring stored intelligence to [card]..."))
|
||||
to_chat(occupier, span_notice("Transfer starting. You will be moved to [card] shortly."))
|
||||
if(!do_after(user, 50, target = src))
|
||||
if(!do_after(user, 5 SECONDS, target = src))
|
||||
to_chat(occupier, span_warning("[user] was interrupted! Transfer canceled."))
|
||||
transfer_in_progress = FALSE
|
||||
return FALSE
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
balloon_alert(user, "adding cables to the frame...")
|
||||
playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
|
||||
if(!do_after(user, 20, target = src))
|
||||
if(!do_after(user, 2 SECONDS, target = src))
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
if(installing_cable.get_amount() < 10 || !installing_cable)
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
@@ -140,7 +140,7 @@
|
||||
balloon_alert(user, "inserting the board...")
|
||||
playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
|
||||
if(!do_after(user, 10, target = src) || has_electronics)
|
||||
if(!do_after(user, 1 SECONDS, target = src) || has_electronics)
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
|
||||
has_electronics = APC_ELECTRONICS_INSTALLED
|
||||
@@ -195,7 +195,7 @@
|
||||
if((machine_stat & BROKEN) && opened == APC_COVER_REMOVED && has_electronics && terminal) // Cover is the only thing broken, we do not need to remove elctronicks to replace cover
|
||||
user.visible_message(span_notice("[user.name] replaces missing APC's cover."))
|
||||
balloon_alert(user, "replacing APC's cover...")
|
||||
if(!do_after(user, 20, target = src)) // replacing cover is quicker than replacing whole frame
|
||||
if(!do_after(user, 2 SECONDS, target = src)) // replacing cover is quicker than replacing whole frame
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
balloon_alert(user, "cover replaced")
|
||||
qdel(wallframe)
|
||||
@@ -209,7 +209,7 @@
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
user.visible_message(span_notice("[user.name] replaces the damaged APC frame with a new one."))
|
||||
balloon_alert(user, "replacing damaged frame...")
|
||||
if(!do_after(user, 50, target = src))
|
||||
if(!do_after(user, 5 SECONDS, target = src))
|
||||
return ITEM_INTERACT_BLOCKING
|
||||
balloon_alert(user, "replaced frame")
|
||||
qdel(wallframe)
|
||||
|
||||
@@ -576,7 +576,7 @@ GLOBAL_LIST_INIT(wire_node_generating_types, typecacheof(list(/obj/structure/gri
|
||||
if(user == H)
|
||||
user.visible_message(span_notice("[user] starts to fix some of the wires in [H]'s [affecting.name]."), span_notice("You start fixing some of the wires in [H == user ? "your" : "[H]'s"] [affecting.name]."))
|
||||
/* SKYRAT EDIT START - ORIGINAL:
|
||||
if(!do_after(user, 50, H))
|
||||
if(!do_after(user, 5 SECONDS, H))
|
||||
return
|
||||
*/
|
||||
// SKYRAT EDIT CHANGE START
|
||||
|
||||
@@ -145,7 +145,7 @@
|
||||
to_chat(user, span_notice("You start building the power terminal..."))
|
||||
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
|
||||
if(do_after(user, 20, target = src))
|
||||
if(do_after(user, 2 SECONDS, target = src))
|
||||
if(cable.get_amount() < 10 || !cable)
|
||||
return
|
||||
var/obj/structure/cable/connected_cable = turf.get_cable_node(terminal_cable_layer) //get the connecting node cable, if there's one
|
||||
|
||||
@@ -593,7 +593,7 @@
|
||||
|
||||
semicd = TRUE
|
||||
|
||||
if(!bypass_timer && (!do_after(user, 120, target) || user.zone_selected != BODY_ZONE_PRECISE_MOUTH))
|
||||
if(!bypass_timer && (!do_after(user, 12 SECONDS, target) || user.zone_selected != BODY_ZONE_PRECISE_MOUTH))
|
||||
if(user)
|
||||
if(user == target)
|
||||
user.visible_message(span_notice("[user] decided not to shoot."))
|
||||
|
||||
@@ -658,7 +658,7 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
|
||||
user.visible_message(span_danger("[src] goes off!"), span_danger("[src] goes off in your face!"))
|
||||
return
|
||||
|
||||
if(do_after(user, 30, target = src))
|
||||
if(do_after(user, 3 SECONDS, target = src))
|
||||
if(sawn_off)
|
||||
return
|
||||
user.visible_message(span_notice("[user] shortens [src]!"), span_notice("You shorten [src]."))
|
||||
@@ -688,7 +688,7 @@ GLOBAL_LIST_INIT(gun_saw_types, typecacheof(list(
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
balloon_alert(user, "cleaning...")
|
||||
|
||||
if(do_after(user, 100, target = src))
|
||||
if(do_after(user, 10 SECONDS, target = src))
|
||||
misfire_probability = initial(misfire_probability)
|
||||
balloon_alert(user, "fouling cleaned out")
|
||||
return TRUE
|
||||
|
||||
@@ -501,7 +501,7 @@
|
||||
var/picked_option = show_radial_menu(user, src, choose_options, radius = 38, require_near = TRUE)
|
||||
if(grinded && in_range(src, user) && user.is_holding(I) && picked_option)
|
||||
to_chat(user, span_notice("You start grinding..."))
|
||||
if(do_after(user, 25, target = src))
|
||||
if(do_after(user, 2.5 SECONDS, target = src))
|
||||
user.adjustStaminaLoss(40)
|
||||
switch(picked_option)
|
||||
if("Juice")
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
movable_loc.relay_container_resist_act(user, object)
|
||||
return
|
||||
to_chat(user, span_notice("You lean on the back of [object] and start pushing to rip the wrapping around it."))
|
||||
if(do_after(user, 50, target = object))
|
||||
if(do_after(user, 5 SECONDS, target = object))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != object || object.loc != src)
|
||||
return
|
||||
to_chat(user, span_notice("You successfully removed [object]'s wrapping!"))
|
||||
|
||||
@@ -54,7 +54,7 @@ Slimecrossing Potions
|
||||
peace_target.visible_message(span_danger("[user] starts to drink [src]!"),
|
||||
span_danger("You start to drink [src]!"))
|
||||
|
||||
if(!do_after(user, 100, target = peace_target))
|
||||
if(!do_after(user, 10 SECONDS, target = peace_target))
|
||||
return
|
||||
if(peace_target != user)
|
||||
to_chat(user, span_notice("You feed [peace_target] [src]!"))
|
||||
@@ -91,7 +91,7 @@ Slimecrossing Potions
|
||||
love_target.visible_message(span_danger("[user] starts to feed [love_target] a love potion!"),
|
||||
span_userdanger("[user] starts to feed you a love potion!"))
|
||||
|
||||
if(!do_after(user, 50, target = love_target))
|
||||
if(!do_after(user, 5 SECONDS, target = love_target))
|
||||
return
|
||||
to_chat(user, span_notice("You feed [love_target] the love potion!"))
|
||||
to_chat(love_target, span_notice("You develop feelings for [user], and anyone [user.p_they()] like[user.p_s()]."))
|
||||
|
||||
@@ -174,7 +174,7 @@ Chilling extracts:
|
||||
for(var/mob/living/M in allies)
|
||||
var/datum/status_effect/slimerecall/S = M.apply_status_effect(/datum/status_effect/slimerecall)
|
||||
S.target = user
|
||||
if(do_after(user, 100, target=src))
|
||||
if(do_after(user, 10 SECONDS, target=src))
|
||||
to_chat(user, span_notice("[src] shatters as it tears a hole in reality, snatching the linked individuals from the void!"))
|
||||
for(var/mob/living/M in allies)
|
||||
var/datum/status_effect/slimerecall/S = M.has_status_effect(/datum/status_effect/slimerecall)
|
||||
|
||||
@@ -66,7 +66,7 @@ Consuming extracts:
|
||||
fed = TRUE
|
||||
else
|
||||
M.visible_message(span_danger("[user] tries to force [M] to eat [src]!"), span_userdanger("[user] tries to force you to eat [src]!"))
|
||||
if(do_after(user, 20, target = M))
|
||||
if(do_after(user, 2 SECONDS, target = M))
|
||||
fed = TRUE
|
||||
M.visible_message(span_danger("[user] forces [M] to eat [src]!"), span_warning("[user] forces you to eat [src]."))
|
||||
if(fed)
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
return 120
|
||||
if(SLIME_ACTIVATE_MAJOR)
|
||||
to_chat(user, span_notice("Your [name] starts pulsing..."))
|
||||
if(do_after(user, 40, target = user))
|
||||
if(do_after(user, 4 SECONDS, target = user))
|
||||
var/mob/living/basic/slime/new_slime = new(get_turf(user), /datum/slime_type/grey)
|
||||
playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
|
||||
to_chat(user, span_notice("You spit out [new_slime]."))
|
||||
@@ -128,7 +128,7 @@
|
||||
switch(activation_type)
|
||||
if(SLIME_ACTIVATE_MINOR)
|
||||
user.visible_message(span_warning("[user] starts shaking!"),span_notice("Your [name] starts pulsing gently..."))
|
||||
if(do_after(user, 40, target = user))
|
||||
if(do_after(user, 4 SECONDS, target = user))
|
||||
var/mob/living/spawned_mob = create_random_mob(user.drop_location(), FRIENDLY_SPAWN)
|
||||
spawned_mob.faction |= FACTION_NEUTRAL
|
||||
playsound(user, 'sound/effects/splat.ogg', 50, TRUE)
|
||||
@@ -137,7 +137,7 @@
|
||||
|
||||
if(SLIME_ACTIVATE_MAJOR)
|
||||
user.visible_message(span_warning("[user] starts shaking violently!"),span_warning("Your [name] starts pulsing violently..."))
|
||||
if(do_after(user, 50, target = user))
|
||||
if(do_after(user, 5 SECONDS, target = user))
|
||||
var/mob/living/spawned_mob = create_random_mob(user.drop_location(), HOSTILE_SPAWN)
|
||||
if(!user.combat_mode)
|
||||
spawned_mob.faction |= FACTION_NEUTRAL
|
||||
@@ -279,7 +279,7 @@
|
||||
|
||||
if(SLIME_ACTIVATE_MAJOR)
|
||||
user.visible_message(span_warning("[user]'s skin starts flashing intermittently..."), span_warning("Your skin starts flashing intermittently..."))
|
||||
if(do_after(user, 25, target = user))
|
||||
if(do_after(user, 2.5 SECONDS, target = user))
|
||||
empulse(user, 1, 2)
|
||||
user.visible_message(span_warning("[user]'s skin flashes!"), span_warning("Your skin flashes as you emit an electromagnetic pulse!"))
|
||||
return 600
|
||||
@@ -384,7 +384,7 @@
|
||||
switch(activation_type)
|
||||
if(SLIME_ACTIVATE_MINOR)
|
||||
to_chat(user, span_warning("You feel yourself reverting to human form..."))
|
||||
if(do_after(user, 120, target = user))
|
||||
if(do_after(user, 12 SECONDS, target = user))
|
||||
to_chat(user, span_warning("You feel human again!"))
|
||||
user.set_species(/datum/species/human)
|
||||
return
|
||||
@@ -392,7 +392,7 @@
|
||||
|
||||
if(SLIME_ACTIVATE_MAJOR)
|
||||
to_chat(user, span_warning("You feel yourself radically changing your slime type..."))
|
||||
if(do_after(user, 120, target = user))
|
||||
if(do_after(user, 12 SECONDS, target = user))
|
||||
to_chat(user, span_warning("You feel different!"))
|
||||
user.set_species(pick(/datum/species/jelly/slime, /datum/species/jelly/stargazer))
|
||||
return
|
||||
@@ -437,7 +437,7 @@
|
||||
|
||||
if(SLIME_ACTIVATE_MAJOR)
|
||||
to_chat(user, span_warning("You feel your own light turning dark..."))
|
||||
if(do_after(user, 120, target = user))
|
||||
if(do_after(user, 12 SECONDS, target = user))
|
||||
to_chat(user, span_warning("You feel a longing for darkness."))
|
||||
user.set_species(pick(/datum/species/shadow))
|
||||
return
|
||||
@@ -459,7 +459,7 @@
|
||||
|
||||
if(SLIME_ACTIVATE_MAJOR)
|
||||
user.visible_message(span_warning("[user]'s skin starts pulsing and glowing ominously..."), span_userdanger("You feel unstable..."))
|
||||
if(do_after(user, 60, target = user))
|
||||
if(do_after(user, 6 SECONDS, target = user))
|
||||
to_chat(user, span_userdanger("You explode!"))
|
||||
explosion(user, devastation_range = 1, heavy_impact_range = 3, light_impact_range = 6, explosion_cause = src)
|
||||
user.investigate_log("has been gibbed by an oil slime extract explosion.", INVESTIGATE_DEATHS)
|
||||
@@ -487,7 +487,7 @@
|
||||
|
||||
if(SLIME_ACTIVATE_MAJOR)
|
||||
to_chat(user, span_warning("You feel your body rapidly hardening..."))
|
||||
if(do_after(user, 120, target = user))
|
||||
if(do_after(user, 12 SECONDS, target = user))
|
||||
to_chat(user, span_warning("You feel solid."))
|
||||
user.set_species(/datum/species/golem)
|
||||
return
|
||||
@@ -511,7 +511,7 @@
|
||||
switch(activation_type)
|
||||
if(SLIME_ACTIVATE_MINOR)
|
||||
to_chat(user, span_warning("You feel your body vibrating..."))
|
||||
if(do_after(user, 25, target = user))
|
||||
if(do_after(user, 2.5 SECONDS, target = user))
|
||||
to_chat(user, span_warning("You teleport!"))
|
||||
do_teleport(user, get_turf(user), 6, asoundin = 'sound/weapons/emitter2.ogg', channel = TELEPORT_CHANNEL_BLUESPACE)
|
||||
return 300
|
||||
@@ -598,7 +598,7 @@
|
||||
|
||||
if(SLIME_ACTIVATE_MAJOR)
|
||||
to_chat(user, span_warning("You feel time slow down..."))
|
||||
if(do_after(user, 30, target = user))
|
||||
if(do_after(user, 3 SECONDS, target = user))
|
||||
new /obj/effect/timestop(get_turf(user), 2, 50, list(user))
|
||||
return 900
|
||||
|
||||
|
||||
@@ -397,7 +397,7 @@
|
||||
playsound(loc, 'sound/weapons/slice.ogg', 50, TRUE, -1)
|
||||
user.visible_message(span_warning("[user] begins to cut open [src]."),\
|
||||
span_notice("You begin to cut open [src]..."))
|
||||
if(do_after(user, 54, target = src))
|
||||
if(do_after(user, 5.4 SECONDS, target = src))
|
||||
drop_organs(user, TRUE)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -318,7 +318,7 @@ GLOBAL_DATUM(cargo_ripley, /obj/vehicle/sealed/mecha/ripley/cargo)
|
||||
|
||||
/obj/item/mecha_parts/mecha_equipment/ejector/relay_container_resist_act(mob/living/user, obj/container)
|
||||
to_chat(user, span_notice("You lean on the back of [container] and start pushing so it falls out of [src]."))
|
||||
if(do_after(user, 300, target = container))
|
||||
if(do_after(user, 30 SECONDS, target = container))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src || container.loc != src )
|
||||
return
|
||||
to_chat(user, span_notice("You successfully pushed [container] out of [src]!"))
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
if(!eddie_murphy)
|
||||
return ..()
|
||||
user.visible_message(span_warning("[user] begins cleaning [eddie_murphy] out of [src]."), span_warning("You begin cleaning [eddie_murphy] out of [src]..."))
|
||||
if(!do_after(user, 60, target = src))
|
||||
if(!do_after(user, 6 SECONDS, target = src))
|
||||
return ..()
|
||||
user.visible_message(span_warning("[user] cleans [eddie_murphy] out of [src]."), span_warning("You manage to get [eddie_murphy] out of [src]."))
|
||||
eddie_murphy.forceMove(drop_location())
|
||||
|
||||
@@ -1196,7 +1196,7 @@ GLOBAL_LIST_EMPTY(vending_machines_to_restock)
|
||||
|
||||
if(tilted && !user.buckled && !isAdminGhostAI(user))
|
||||
to_chat(user, span_notice("You begin righting [src]."))
|
||||
if(do_after(user, 50, target=src))
|
||||
if(do_after(user, 5 SECONDS, target=src))
|
||||
untilt(user)
|
||||
return
|
||||
|
||||
|
||||
Reference in New Issue
Block a user