mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-17 02:54:44 +01:00
Refactors most spans into span procs (#59645)
Converts most spans into span procs. Mostly used regex for this and sorted out any compile time errors afterwards so there could be some bugs. Was initially going to do defines, but ninja said to make it into a proc, and if there's any overhead, they can easily be changed to defines. Makes it easier to control the formatting and prevents typos when creating spans as it'll runtime if you misspell instead of silently failing. Reduces the code you need to write when writing spans, as you don't need to close the span as that's automatically handled by the proc. (Note from Lemon: This should be converted to defines once we update the minimum version to 514. Didn't do it now because byond pain and such)
This commit is contained in:
@@ -67,7 +67,7 @@
|
||||
/obj/structure/ai_core/latejoin_inactive/examine(mob/user)
|
||||
. = ..()
|
||||
. += "Its transmitter seems to be <b>[active? "on" : "off"]</b>."
|
||||
. += "<span class='notice'>You could [active? "deactivate" : "activate"] it with a multitool.</span>"
|
||||
. += span_notice("You could [active? "deactivate" : "activate"] it with a multitool.")
|
||||
|
||||
/obj/structure/ai_core/latejoin_inactive/proc/is_available() //If people still manage to use this feature to spawn-kill AI latejoins ahelp them.
|
||||
if(!available)
|
||||
@@ -91,7 +91,7 @@
|
||||
/obj/structure/ai_core/latejoin_inactive/attackby(obj/item/P, mob/user, params)
|
||||
if(P.tool_behaviour == TOOL_MULTITOOL)
|
||||
active = !active
|
||||
to_chat(user, "<span class='notice'>You [active? "activate" : "deactivate"] \the [src]'s transmitters.</span>")
|
||||
to_chat(user, span_notice("You [active? "activate" : "deactivate"] \the [src]'s transmitters."))
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -101,15 +101,15 @@
|
||||
if(!anchored)
|
||||
if(P.tool_behaviour == TOOL_WELDER && can_deconstruct)
|
||||
if(state != EMPTY_CORE)
|
||||
to_chat(user, "<span class='warning'>The core must be empty to deconstruct it!</span>")
|
||||
to_chat(user, span_warning("The core must be empty to deconstruct it!"))
|
||||
return
|
||||
|
||||
if(!P.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You start to deconstruct the frame...</span>")
|
||||
to_chat(user, span_notice("You start to deconstruct the frame..."))
|
||||
if(P.use_tool(src, user, 20, volume=50) && state == EMPTY_CORE)
|
||||
to_chat(user, "<span class='notice'>You deconstruct the frame.</span>")
|
||||
to_chat(user, span_notice("You deconstruct the frame."))
|
||||
deconstruct(TRUE)
|
||||
return
|
||||
else
|
||||
@@ -119,7 +119,7 @@
|
||||
if(!user.transferItemToLoc(P, src))
|
||||
return
|
||||
playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
to_chat(user, "<span class='notice'>You place the circuit board inside the frame.</span>")
|
||||
to_chat(user, span_notice("You place the circuit board inside the frame."))
|
||||
update_appearance()
|
||||
state = CIRCUIT_CORE
|
||||
circuit = P
|
||||
@@ -127,13 +127,13 @@
|
||||
if(CIRCUIT_CORE)
|
||||
if(P.tool_behaviour == TOOL_SCREWDRIVER)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You screw the circuit board into place.</span>")
|
||||
to_chat(user, span_notice("You screw the circuit board into place."))
|
||||
state = SCREWED_CORE
|
||||
update_appearance()
|
||||
return
|
||||
if(P.tool_behaviour == TOOL_CROWBAR)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You remove the circuit board.</span>")
|
||||
to_chat(user, span_notice("You remove the circuit board."))
|
||||
state = EMPTY_CORE
|
||||
update_appearance()
|
||||
circuit.forceMove(loc)
|
||||
@@ -142,7 +142,7 @@
|
||||
if(SCREWED_CORE)
|
||||
if(P.tool_behaviour == TOOL_SCREWDRIVER && circuit)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You unfasten the circuit board.</span>")
|
||||
to_chat(user, span_notice("You unfasten the circuit board."))
|
||||
state = CIRCUIT_CORE
|
||||
update_appearance()
|
||||
return
|
||||
@@ -150,21 +150,21 @@
|
||||
var/obj/item/stack/cable_coil/C = P
|
||||
if(C.get_amount() >= 5)
|
||||
playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
to_chat(user, "<span class='notice'>You start to add cables to the frame...</span>")
|
||||
to_chat(user, span_notice("You start to add cables to the frame..."))
|
||||
if(do_after(user, 20, target = src) && state == SCREWED_CORE && C.use(5))
|
||||
to_chat(user, "<span class='notice'>You add cables to the frame.</span>")
|
||||
to_chat(user, span_notice("You add cables to the frame."))
|
||||
state = CABLED_CORE
|
||||
update_appearance()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need five lengths of cable to wire the AI core!</span>")
|
||||
to_chat(user, span_warning("You need five lengths of cable to wire the AI core!"))
|
||||
return
|
||||
if(CABLED_CORE)
|
||||
if(P.tool_behaviour == TOOL_WIRECUTTER)
|
||||
if(brain)
|
||||
to_chat(user, "<span class='warning'>Get that [brain.name] out of there first!</span>")
|
||||
to_chat(user, span_warning("Get that [brain.name] out of there first!"))
|
||||
else
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You remove the cables.</span>")
|
||||
to_chat(user, span_notice("You remove the cables."))
|
||||
state = SCREWED_CORE
|
||||
update_appearance()
|
||||
new /obj/item/stack/cable_coil(drop_location(), 5)
|
||||
@@ -174,18 +174,18 @@
|
||||
var/obj/item/stack/sheet/rglass/G = P
|
||||
if(G.get_amount() >= 2)
|
||||
playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
to_chat(user, "<span class='notice'>You start to put in the glass panel...</span>")
|
||||
to_chat(user, span_notice("You start to put in the glass panel..."))
|
||||
if(do_after(user, 20, target = src) && state == CABLED_CORE && G.use(2))
|
||||
to_chat(user, "<span class='notice'>You put in the glass panel.</span>")
|
||||
to_chat(user, span_notice("You put in the glass panel."))
|
||||
state = GLASS_CORE
|
||||
update_appearance()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need two sheets of reinforced glass to insert them into the AI core!</span>")
|
||||
to_chat(user, span_warning("You need two sheets of reinforced glass to insert them into the AI core!"))
|
||||
return
|
||||
|
||||
if(istype(P, /obj/item/ai_module))
|
||||
if(brain && brain.laws.id != DEFAULT_AI_LAWID)
|
||||
to_chat(user, "<span class='warning'>The installed [brain.name] already has set laws!</span>")
|
||||
to_chat(user, span_warning("The installed [brain.name] already has set laws!"))
|
||||
return
|
||||
var/obj/item/ai_module/module = P
|
||||
module.install(laws, user)
|
||||
@@ -199,19 +199,19 @@
|
||||
var/mob/living/brain/B = M.brainmob
|
||||
if(!CONFIG_GET(flag/allow_ai) || (is_banned_from(B.ckey, "AI") && !QDELETED(src) && !QDELETED(user) && !QDELETED(M) && !QDELETED(user) && Adjacent(user)))
|
||||
if(!QDELETED(M))
|
||||
to_chat(user, "<span class='warning'>This [M.name] does not seem to fit!</span>")
|
||||
to_chat(user, span_warning("This [M.name] does not seem to fit!"))
|
||||
return
|
||||
if(!user.transferItemToLoc(M,src))
|
||||
return
|
||||
|
||||
brain = M
|
||||
to_chat(user, "<span class='notice'>You add [M.name] to the frame.</span>")
|
||||
to_chat(user, span_notice("You add [M.name] to the frame."))
|
||||
update_appearance()
|
||||
return
|
||||
|
||||
if(P.tool_behaviour == TOOL_CROWBAR && brain)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You remove the brain.</span>")
|
||||
to_chat(user, span_notice("You remove the brain."))
|
||||
brain.forceMove(loc)
|
||||
brain = null
|
||||
update_appearance()
|
||||
@@ -220,7 +220,7 @@
|
||||
if(GLASS_CORE)
|
||||
if(P.tool_behaviour == TOOL_CROWBAR)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You remove the glass panel.</span>")
|
||||
to_chat(user, span_notice("You remove the glass panel."))
|
||||
state = CABLED_CORE
|
||||
update_appearance()
|
||||
new /obj/item/stack/sheet/rglass(loc, 2)
|
||||
@@ -228,7 +228,7 @@
|
||||
|
||||
if(P.tool_behaviour == TOOL_SCREWDRIVER)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You connect the monitor.</span>")
|
||||
to_chat(user, span_notice("You connect the monitor."))
|
||||
if(brain)
|
||||
var/mob/living/brain/B = brain.brainmob
|
||||
B.mind?.remove_antags_for_borging()
|
||||
@@ -245,7 +245,7 @@
|
||||
if(brain.force_replace_ai_name)
|
||||
A.fully_replace_character_name(A.name, brain.replacement_ai_name())
|
||||
SSblackbox.record_feedback("amount", "ais_created", 1)
|
||||
deadchat_broadcast(" has been brought online at <b>[get_area_name(A, TRUE)]</b>.", "<span class='name'>[A]</span>", follow_target=A, message_type=DEADCHAT_ANNOUNCEMENT)
|
||||
deadchat_broadcast(" has been brought online at <b>[get_area_name(A, TRUE)]</b>.", span_name("[A]"), follow_target=A, message_type=DEADCHAT_ANNOUNCEMENT)
|
||||
qdel(src)
|
||||
else
|
||||
state = AI_READY_CORE
|
||||
@@ -258,7 +258,7 @@
|
||||
|
||||
if(P.tool_behaviour == TOOL_SCREWDRIVER)
|
||||
P.play_tool_sound(src)
|
||||
to_chat(user, "<span class='notice'>You disconnect the monitor.</span>")
|
||||
to_chat(user, span_notice("You disconnect the monitor."))
|
||||
state = GLASS_CORE
|
||||
update_appearance()
|
||||
return
|
||||
@@ -305,7 +305,7 @@ That prevents a few funky behaviors.
|
||||
/atom/proc/transfer_ai(interaction, mob/user, mob/living/silicon/ai/AI, obj/item/aicard/card)
|
||||
if(istype(card))
|
||||
if(card.flush)
|
||||
to_chat(user, "<span class='alert'>ERROR: AI flush is in progress, cannot execute transfer protocol.</span>")
|
||||
to_chat(user, span_alert("ERROR: AI flush is in progress, cannot execute transfer protocol."))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -317,13 +317,13 @@ That prevents a few funky behaviors.
|
||||
AI.control_disabled = FALSE
|
||||
AI.radio_enabled = TRUE
|
||||
AI.forceMove(loc) // to replace the terminal.
|
||||
to_chat(AI, "<span class='notice'>You have been uploaded to a stationary terminal. Remote device connection restored.</span>")
|
||||
to_chat(user, "<span class='boldnotice'>Transfer successful</span>: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.")
|
||||
to_chat(AI, span_notice("You have been uploaded to a stationary terminal. Remote device connection restored."))
|
||||
to_chat(user, "[span_boldnotice("Transfer successful")]: [AI.name] ([rand(1000,9999)].exe) installed and executed successfully. Local copy has been removed.")
|
||||
card.AI = null
|
||||
AI.battery = circuit.battery
|
||||
qdel(src)
|
||||
else //If for some reason you use an empty card on an empty AI terminal.
|
||||
to_chat(user, "<span class='alert'>There is no AI loaded on this terminal.</span>")
|
||||
to_chat(user, span_alert("There is no AI loaded on this terminal."))
|
||||
|
||||
/obj/item/circuitboard/aicore
|
||||
name = "AI core (AI Core Board)" //Well, duh, but best to be consistent
|
||||
|
||||
@@ -312,19 +312,19 @@
|
||||
if(user.getorgan(/obj/item/organ/alien/plasmavessel))
|
||||
switch(status)
|
||||
if(BURST)
|
||||
to_chat(user, "<span class='notice'>You clear the hatched egg.</span>")
|
||||
to_chat(user, span_notice("You clear the hatched egg."))
|
||||
playsound(loc, 'sound/effects/attackblob.ogg', 100, TRUE)
|
||||
qdel(src)
|
||||
return
|
||||
if(GROWING)
|
||||
to_chat(user, "<span class='notice'>The child is not developed yet.</span>")
|
||||
to_chat(user, span_notice("The child is not developed yet."))
|
||||
return
|
||||
if(GROWN)
|
||||
to_chat(user, "<span class='notice'>You retrieve the child.</span>")
|
||||
to_chat(user, span_notice("You retrieve the child."))
|
||||
Burst(kill=FALSE)
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='notice'>It feels slimy.</span>")
|
||||
to_chat(user, span_notice("It feels slimy."))
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
|
||||
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
painting = canvas
|
||||
canvas.forceMove(get_turf(src))
|
||||
canvas.layer = layer+0.1
|
||||
user.visible_message("<span class='notice'>[user] puts \the [canvas] on \the [src].</span>","<span class='notice'>You place \the [canvas] on \the [src].</span>")
|
||||
user.visible_message(span_notice("[user] puts \the [canvas] on \the [src]."),span_notice("You place \the [canvas] on \the [src]."))
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -278,17 +278,17 @@
|
||||
/obj/structure/sign/painting/examine(mob/user)
|
||||
. = ..()
|
||||
if(persistence_id)
|
||||
. += "<span class='notice'>Any painting placed here will be archived at the end of the shift.</span>"
|
||||
. += span_notice("Any painting placed here will be archived at the end of the shift.")
|
||||
if(current_canvas)
|
||||
current_canvas.ui_interact(user)
|
||||
. += "<span class='notice'>Use wirecutters to remove the painting.</span>"
|
||||
. += span_notice("Use wirecutters to remove the painting.")
|
||||
|
||||
/obj/structure/sign/painting/wirecutter_act(mob/living/user, obj/item/I)
|
||||
. = ..()
|
||||
if(current_canvas)
|
||||
current_canvas.forceMove(drop_location())
|
||||
current_canvas = null
|
||||
to_chat(user, "<span class='notice'>You remove the painting from the frame.</span>")
|
||||
to_chat(user, span_notice("You remove the painting from the frame."))
|
||||
update_appearance()
|
||||
return TRUE
|
||||
|
||||
@@ -297,7 +297,7 @@
|
||||
current_canvas = new_canvas
|
||||
if(!current_canvas.finalized)
|
||||
current_canvas.finalize(user)
|
||||
to_chat(user,"<span class='notice'>You frame [current_canvas].</span>")
|
||||
to_chat(user,span_notice("You frame [current_canvas]."))
|
||||
update_appearance()
|
||||
|
||||
/obj/structure/sign/painting/proc/try_rename(mob/user)
|
||||
@@ -433,7 +433,7 @@
|
||||
return
|
||||
var/mob/user = usr
|
||||
if(!persistence_id || !current_canvas)
|
||||
to_chat(user,"<span class='warning'>This is not a persistent painting.</span>")
|
||||
to_chat(user,span_warning("This is not a persistent painting."))
|
||||
return
|
||||
var/md5 = md5(lowertext(current_canvas.get_data_string()))
|
||||
var/author = current_canvas.author_ckey
|
||||
@@ -449,4 +449,4 @@
|
||||
QDEL_NULL(P.current_canvas)
|
||||
P.update_appearance()
|
||||
log_admin("[key_name(user)] has deleted a persistent painting made by [author].")
|
||||
message_admins("<span class='notice'>[key_name_admin(user)] has deleted persistent painting made by [author].</span>")
|
||||
message_admins(span_notice("[key_name_admin(user)] has deleted persistent painting made by [author]."))
|
||||
|
||||
@@ -67,21 +67,21 @@
|
||||
if(.)
|
||||
return
|
||||
if(!allowed(user))
|
||||
to_chat(user, "<span class='info'>Access denied.</span>")
|
||||
to_chat(user, span_info("Access denied."))
|
||||
return
|
||||
if(broken)
|
||||
to_chat(user, "<span class='danger'>The controls seem unresponsive.</span>")
|
||||
to_chat(user, span_danger("The controls seem unresponsive."))
|
||||
return
|
||||
pick_sign(user)
|
||||
|
||||
/obj/structure/sign/barsign/attackby(obj/item/I, mob/user)
|
||||
if(I.tool_behaviour == TOOL_SCREWDRIVER)
|
||||
if(!panel_open)
|
||||
to_chat(user, "<span class='notice'>You open the maintenance panel.</span>")
|
||||
to_chat(user, span_notice("You open the maintenance panel."))
|
||||
set_sign(new /datum/barsign/hiddensigns/signoff)
|
||||
panel_open = TRUE
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You close the maintenance panel.</span>")
|
||||
to_chat(user, span_notice("You close the maintenance panel."))
|
||||
if(!broken)
|
||||
if(!chosen_sign)
|
||||
set_sign(new /datum/barsign/hiddensigns/signoff)
|
||||
@@ -94,14 +94,14 @@
|
||||
else if(istype(I, /obj/item/stack/cable_coil) && panel_open)
|
||||
var/obj/item/stack/cable_coil/C = I
|
||||
if(!broken)
|
||||
to_chat(user, "<span class='warning'>This sign is functioning properly!</span>")
|
||||
to_chat(user, span_warning("This sign is functioning properly!"))
|
||||
return
|
||||
|
||||
if(C.use(2))
|
||||
to_chat(user, "<span class='notice'>You replace the burnt wiring.</span>")
|
||||
to_chat(user, span_notice("You replace the burnt wiring."))
|
||||
broken = FALSE
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need at least two lengths of cable!</span>")
|
||||
to_chat(user, span_warning("You need at least two lengths of cable!"))
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -115,9 +115,9 @@
|
||||
|
||||
/obj/structure/sign/barsign/emag_act(mob/user)
|
||||
if(broken)
|
||||
to_chat(user, "<span class='warning'>Nothing interesting happens!</span>")
|
||||
to_chat(user, span_warning("Nothing interesting happens!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You load an illegal barsign into the memory buffer...</span>")
|
||||
to_chat(user, span_notice("You load an illegal barsign into the memory buffer..."))
|
||||
sleep(10 SECONDS)
|
||||
chosen_sign = set_sign(new /datum/barsign/hiddensigns/syndibarsign)
|
||||
|
||||
|
||||
@@ -27,22 +27,22 @@
|
||||
return
|
||||
|
||||
if(M != user)
|
||||
M.visible_message("<span class='notice'>[user.name] pulls [M.name] free from the sticky nest!</span>",\
|
||||
"<span class='notice'>[user.name] pulls you free from the gelatinous resin.</span>",\
|
||||
"<span class='hear'>You hear squelching...</span>")
|
||||
M.visible_message(span_notice("[user.name] pulls [M.name] free from the sticky nest!"),\
|
||||
span_notice("[user.name] pulls you free from the gelatinous resin."),\
|
||||
span_hear("You hear squelching..."))
|
||||
else
|
||||
M.visible_message("<span class='warning'>[M.name] struggles to break free from the gelatinous resin!</span>",\
|
||||
"<span class='notice'>You struggle to break free from the gelatinous resin... (Stay still for two minutes.)</span>",\
|
||||
"<span class='hear'>You hear squelching...</span>")
|
||||
M.visible_message(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_hear("You hear squelching..."))
|
||||
if(!do_after(M, 1200, target = src))
|
||||
if(M?.buckled)
|
||||
to_chat(M, "<span class='warning'>You fail to unbuckle yourself!</span>")
|
||||
to_chat(M, span_warning("You fail to unbuckle yourself!"))
|
||||
return
|
||||
if(!M.buckled)
|
||||
return
|
||||
M.visible_message("<span class='warning'>[M.name] breaks free from the gelatinous resin!</span>",\
|
||||
"<span class='notice'>You break free from the gelatinous resin!</span>",\
|
||||
"<span class='hear'>You hear squelching...</span>")
|
||||
M.visible_message(span_warning("[M.name] breaks free from the gelatinous resin!"),\
|
||||
span_notice("You break free from the gelatinous resin!"),\
|
||||
span_hear("You hear squelching..."))
|
||||
|
||||
unbuckle_mob(M)
|
||||
add_fingerprint(user)
|
||||
@@ -60,9 +60,9 @@
|
||||
unbuckle_all_mobs()
|
||||
|
||||
if(buckle_mob(M))
|
||||
M.visible_message("<span class='notice'>[user.name] secretes a thick vile goo, securing [M.name] into [src]!</span>",\
|
||||
"<span class='danger'>[user.name] drenches you in a foul-smelling resin, trapping you in [src]!</span>",\
|
||||
"<span class='hear'>You hear squelching...</span>")
|
||||
M.visible_message(span_notice("[user.name] secretes a thick vile goo, securing [M.name] into [src]!"),\
|
||||
span_danger("[user.name] drenches you in a foul-smelling resin, trapping you in [src]!"),\
|
||||
span_hear("You hear squelching..."))
|
||||
|
||||
/obj/structure/bed/nest/post_buckle_mob(mob/living/M)
|
||||
ADD_TRAIT(M, TRAIT_RESTRAINED, type)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
/obj/structure/bed/examine(mob/user)
|
||||
. = ..()
|
||||
if(bolts)
|
||||
. += "<span class='notice'>It's held together by a couple of <b>bolts</b>.</span>"
|
||||
. += span_notice("It's held together by a couple of <b>bolts</b>.")
|
||||
|
||||
/obj/structure/bed/deconstruct(disassembled = TRUE)
|
||||
if(!(flags_1 & NODECONSTRUCT_1))
|
||||
@@ -58,19 +58,19 @@
|
||||
if(istype(W, /obj/item/roller/robo))
|
||||
var/obj/item/roller/robo/R = W
|
||||
if(R.loaded)
|
||||
to_chat(user, "<span class='warning'>You already have a roller bed docked!</span>")
|
||||
to_chat(user, span_warning("You already have a roller bed docked!"))
|
||||
return
|
||||
|
||||
if(has_buckled_mobs())
|
||||
if(buckled_mobs.len > 1)
|
||||
unbuckle_all_mobs()
|
||||
user.visible_message("<span class='notice'>[user] unbuckles all creatures from [src].</span>")
|
||||
user.visible_message(span_notice("[user] unbuckles all creatures from [src]."))
|
||||
else
|
||||
user_unbuckle_mob(buckled_mobs[1],user)
|
||||
else
|
||||
R.loaded = src
|
||||
forceMove(R)
|
||||
user.visible_message("<span class='notice'>[user] collects [src].</span>", "<span class='notice'>You collect [src].</span>")
|
||||
user.visible_message(span_notice("[user] collects [src]."), span_notice("You collect [src]."))
|
||||
return 1
|
||||
else
|
||||
return ..()
|
||||
@@ -82,7 +82,7 @@
|
||||
return FALSE
|
||||
if(has_buckled_mobs())
|
||||
return FALSE
|
||||
usr.visible_message("<span class='notice'>[usr] collapses \the [src.name].</span>", "<span class='notice'>You collapse \the [src.name].</span>")
|
||||
usr.visible_message(span_notice("[usr] collapses \the [src.name]."), span_notice("You collapse \the [src.name]."))
|
||||
var/obj/structure/bed/roller/B = new foldabletype(get_turf(src))
|
||||
usr.put_in_hands(B)
|
||||
qdel(src)
|
||||
@@ -117,9 +117,9 @@
|
||||
if(istype(I, /obj/item/roller/robo))
|
||||
var/obj/item/roller/robo/R = I
|
||||
if(R.loaded)
|
||||
to_chat(user, "<span class='warning'>[R] already has a roller bed loaded!</span>")
|
||||
to_chat(user, span_warning("[R] already has a roller bed loaded!"))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] loads [src].</span>", "<span class='notice'>You load [src] into [R].</span>")
|
||||
user.visible_message(span_notice("[user] loads [src]."), span_notice("You load [src] into [R]."))
|
||||
R.loaded = new/obj/structure/bed/roller(R)
|
||||
qdel(src) //"Load"
|
||||
return
|
||||
@@ -157,10 +157,10 @@
|
||||
/obj/item/roller/robo/deploy_roller(mob/user, atom/location)
|
||||
if(loaded)
|
||||
loaded.forceMove(location)
|
||||
user.visible_message("<span class='notice'>[user] deploys [loaded].</span>", "<span class='notice'>You deploy [loaded].</span>")
|
||||
user.visible_message(span_notice("[user] deploys [loaded]."), span_notice("You deploy [loaded]."))
|
||||
loaded = null
|
||||
else
|
||||
to_chat(user, "<span class='warning'>The dock is empty!</span>")
|
||||
to_chat(user, span_warning("The dock is empty!"))
|
||||
|
||||
//Dog bed
|
||||
|
||||
|
||||
@@ -18,9 +18,9 @@
|
||||
|
||||
/obj/structure/chair/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>It's held together by a couple of <b>bolts</b>.</span>"
|
||||
. += span_notice("It's held together by a couple of <b>bolts</b>.")
|
||||
if(!has_buckled_mobs() && can_buckle)
|
||||
. += "<span class='notice'>While standing on [src], drag and drop your sprite onto [src] to buckle to it.</span>"
|
||||
. += span_notice("While standing on [src], drag and drop your sprite onto [src] to buckle to it.")
|
||||
|
||||
/obj/structure/chair/Initialize()
|
||||
. = ..()
|
||||
@@ -94,7 +94,7 @@
|
||||
AddComponent(/datum/component/electrified_buckle, (SHOCK_REQUIREMENT_ITEM | SHOCK_REQUIREMENT_LIVE_CABLE | SHOCK_REQUIREMENT_SIGNAL_RECEIVED_TOGGLE), input_shock_kit, overlays_from_child_procs, FALSE)
|
||||
|
||||
if(HAS_TRAIT(src, TRAIT_ELECTRIFIED_BUCKLE))
|
||||
to_chat(user, "<span class='notice'>You connect the shock kit to the [name], electrifying it </span>")
|
||||
to_chat(user, span_notice("You connect the shock kit to the [name], electrifying it "))
|
||||
else
|
||||
user.put_in_active_hand(input_shock_kit)
|
||||
to_chat(user, "<span class='notice'> You cannot fit the shock kit onto the [name]!")
|
||||
@@ -284,7 +284,7 @@
|
||||
return
|
||||
if(!usr.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, TRUE))
|
||||
return
|
||||
usr.visible_message("<span class='notice'>[usr] grabs \the [src.name].</span>", "<span class='notice'>You grab \the [src.name].</span>")
|
||||
usr.visible_message(span_notice("[usr] grabs \the [src.name]."), span_notice("You grab \the [src.name]."))
|
||||
var/obj/item/C = new item_chair(loc)
|
||||
C.set_custom_materials(custom_materials)
|
||||
TransferComponents(C)
|
||||
@@ -331,7 +331,7 @@
|
||||
var/obj/structure/chair/origin_type = /obj/structure/chair
|
||||
|
||||
/obj/item/chair/suicide_act(mob/living/carbon/user)
|
||||
user.visible_message("<span class='suicide'>[user] begins hitting [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!</span>")
|
||||
user.visible_message(span_suicide("[user] begins hitting [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
|
||||
playsound(src,hitsound,50,TRUE)
|
||||
return BRUTELOSS
|
||||
|
||||
@@ -346,17 +346,17 @@
|
||||
/obj/item/chair/proc/plant(mob/user)
|
||||
var/turf/T = get_turf(loc)
|
||||
if(!isfloorturf(T))
|
||||
to_chat(user, "<span class='warning'>You need ground to plant this on!</span>")
|
||||
to_chat(user, span_warning("You need ground to plant this on!"))
|
||||
return
|
||||
for(var/obj/A in T)
|
||||
if(istype(A, /obj/structure/chair))
|
||||
to_chat(user, "<span class='warning'>There is already a chair here!</span>")
|
||||
to_chat(user, span_warning("There is already a chair here!"))
|
||||
return
|
||||
if(A.density && !(A.flags_1 & ON_BORDER_1))
|
||||
to_chat(user, "<span class='warning'>There is already something here!</span>")
|
||||
to_chat(user, span_warning("There is already something here!"))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] rights \the [src.name].</span>", "<span class='notice'>You right \the [name].</span>")
|
||||
user.visible_message(span_notice("[user] rights \the [src.name]."), span_notice("You right \the [name]."))
|
||||
var/obj/structure/chair/C = new origin_type(get_turf(loc))
|
||||
C.set_custom_materials(custom_materials)
|
||||
TransferComponents(C)
|
||||
@@ -381,7 +381,7 @@
|
||||
|
||||
/obj/item/chair/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
|
||||
if(attack_type == UNARMED_ATTACK && prob(hit_reaction_chance))
|
||||
owner.visible_message("<span class='danger'>[owner] fends off [attack_text] with [src]!</span>")
|
||||
owner.visible_message(span_danger("[owner] fends off [attack_text] with [src]!"))
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -390,7 +390,7 @@
|
||||
if(!proximity)
|
||||
return
|
||||
if(prob(break_chance))
|
||||
user.visible_message("<span class='danger'>[user] smashes \the [src] to pieces against \the [target]</span>")
|
||||
user.visible_message(span_danger("[user] smashes \the [src] to pieces against \the [target]"))
|
||||
if(iscarbon(target))
|
||||
var/mob/living/carbon/C = target
|
||||
if(C.health < C.maxHealth*0.5)
|
||||
@@ -472,12 +472,12 @@
|
||||
if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user)))
|
||||
return
|
||||
if(!(datum_flags & DF_ISPROCESSING))
|
||||
user.visible_message("<span class='notice'>[user] spins [src] around, and the last vestiges of Ratvarian technology keeps it spinning FOREVER.</span>", \
|
||||
"<span class='notice'>Automated spinny chairs. The pinnacle of ancient Ratvarian technology.</span>")
|
||||
user.visible_message(span_notice("[user] spins [src] around, and the last vestiges of Ratvarian technology keeps it spinning FOREVER."), \
|
||||
span_notice("Automated spinny chairs. The pinnacle of ancient Ratvarian technology."))
|
||||
START_PROCESSING(SSfastprocess, src)
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] stops [src]'s uncontrollable spinning.</span>", \
|
||||
"<span class='notice'>You grab [src] and stop its wild spinning.</span>")
|
||||
user.visible_message(span_notice("[user] stops [src]'s uncontrollable spinning."), \
|
||||
span_notice("You grab [src] and stop its wild spinning."))
|
||||
STOP_PROCESSING(SSfastprocess, src)
|
||||
|
||||
/obj/structure/chair/mime
|
||||
@@ -519,9 +519,9 @@
|
||||
|
||||
/obj/structure/chair/plastic/proc/snap_check(mob/living/carbon/Mob)
|
||||
if (Mob.nutrition >= NUTRITION_LEVEL_FAT)
|
||||
to_chat(Mob, "<span class='warning'>The chair begins to pop and crack, you're too heavy!</span>")
|
||||
to_chat(Mob, span_warning("The chair begins to pop and crack, you're too heavy!"))
|
||||
if(do_after(Mob, 6 SECONDS, progress = FALSE))
|
||||
Mob.visible_message("<span class='notice'>The plastic chair snaps under [Mob]'s weight!</span>")
|
||||
Mob.visible_message(span_notice("The plastic chair snaps under [Mob]'s weight!"))
|
||||
new /obj/effect/decal/cleanable/plastic(loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -36,12 +36,12 @@ LINEN BINS
|
||||
return
|
||||
if(layer == initial(layer))
|
||||
layer = ABOVE_MOB_LAYER
|
||||
to_chat(user, "<span class='notice'>You cover yourself with [src].</span>")
|
||||
to_chat(user, span_notice("You cover yourself with [src]."))
|
||||
pixel_x = 0
|
||||
pixel_y = 0
|
||||
else
|
||||
layer = initial(layer)
|
||||
to_chat(user, "<span class='notice'>You smooth [src] out beneath you.</span>")
|
||||
to_chat(user, span_notice("You smooth [src] out beneath you."))
|
||||
add_fingerprint(user)
|
||||
return
|
||||
|
||||
@@ -53,7 +53,7 @@ LINEN BINS
|
||||
transfer_fingerprints_to(shreds)
|
||||
shreds.add_fingerprint(user)
|
||||
qdel(src)
|
||||
to_chat(user, "<span class='notice'>You tear [src] up.</span>")
|
||||
to_chat(user, span_notice("You tear [src] up."))
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -340,7 +340,7 @@ LINEN BINS
|
||||
return
|
||||
sheets.Add(I)
|
||||
amount++
|
||||
to_chat(user, "<span class='notice'>You put [I] in [src].</span>")
|
||||
to_chat(user, span_notice("You put [I] in [src]."))
|
||||
update_appearance()
|
||||
|
||||
else if(default_unfasten_wrench(user, I, 5))
|
||||
@@ -359,10 +359,10 @@ LINEN BINS
|
||||
|
||||
else if(amount && !hidden && I.w_class < WEIGHT_CLASS_BULKY) //make sure there's sheets to hide it among, make sure nothing else is hidden in there.
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
to_chat(user, "<span class='warning'>\The [I] is stuck to your hand, you cannot hide it among the sheets!</span>")
|
||||
to_chat(user, span_warning("\The [I] is stuck to your hand, you cannot hide it among the sheets!"))
|
||||
return
|
||||
hidden = I
|
||||
to_chat(user, "<span class='notice'>You hide [I] among the sheets.</span>")
|
||||
to_chat(user, span_notice("You hide [I] among the sheets."))
|
||||
|
||||
|
||||
/obj/structure/bedsheetbin/attack_paw(mob/user, list/modifiers)
|
||||
@@ -389,12 +389,12 @@ LINEN BINS
|
||||
|
||||
B.forceMove(drop_location())
|
||||
user.put_in_hands(B)
|
||||
to_chat(user, "<span class='notice'>You take [B] out of [src].</span>")
|
||||
to_chat(user, span_notice("You take [B] out of [src]."))
|
||||
update_appearance()
|
||||
|
||||
if(hidden)
|
||||
hidden.forceMove(drop_location())
|
||||
to_chat(user, "<span class='notice'>[hidden] falls out of [B]!</span>")
|
||||
to_chat(user, span_notice("[hidden] falls out of [B]!"))
|
||||
hidden = null
|
||||
|
||||
add_fingerprint(user)
|
||||
@@ -413,7 +413,7 @@ LINEN BINS
|
||||
B = new /obj/item/bedsheet(loc)
|
||||
|
||||
B.forceMove(drop_location())
|
||||
to_chat(user, "<span class='notice'>You telekinetically remove [B] from [src].</span>")
|
||||
to_chat(user, span_notice("You telekinetically remove [B] from [src]."))
|
||||
update_appearance()
|
||||
|
||||
if(hidden)
|
||||
|
||||
@@ -32,24 +32,24 @@
|
||||
|
||||
/obj/structure/cannon/attackby(obj/item/W, mob/user, params)
|
||||
if(charge_ignited)
|
||||
to_chat(user, "<span class='danger'>[src] is about to fire!</span>")
|
||||
to_chat(user, span_danger("[src] is about to fire!"))
|
||||
return
|
||||
var/ignition_message = W.ignition_effect(src, user)
|
||||
|
||||
if(istype(W, /obj/item/stack/cannonball))
|
||||
if(loaded_cannonball)
|
||||
to_chat(user, "<span class='warning'>[src] is already loaded!</span>")
|
||||
to_chat(user, span_warning("[src] is already loaded!"))
|
||||
else
|
||||
var/obj/item/stack/cannonball/cannoneers_balls = W
|
||||
loaded_cannonball = new cannoneers_balls.type(src, 1)
|
||||
loaded_cannonball.copy_evidences(cannoneers_balls)
|
||||
to_chat(user, "<span class='notice'>You load a [cannoneers_balls.singular_name] into [src].</span>")
|
||||
to_chat(user, span_notice("You load a [cannoneers_balls.singular_name] into [src]."))
|
||||
cannoneers_balls.use(1, transfer = TRUE)
|
||||
return
|
||||
|
||||
else if(ignition_message)
|
||||
if(!reagents.has_reagent(/datum/reagent/gunpowder,15))
|
||||
to_chat(user, "<span class='warning'>[src] needs at least 15u of gunpowder to fire!</span>")
|
||||
to_chat(user, span_warning("[src] needs at least 15u of gunpowder to fire!"))
|
||||
return
|
||||
visible_message(ignition_message)
|
||||
log_game("Cannon fired by [key_name(user)] in [AREACOORD(src)]")
|
||||
@@ -65,16 +65,16 @@
|
||||
return ..()
|
||||
|
||||
if(!powder_keg.reagents.total_volume)
|
||||
to_chat(user, "<span class='warning'>[powder_keg] is empty!</span>")
|
||||
to_chat(user, span_warning("[powder_keg] is empty!"))
|
||||
return
|
||||
else if(!powder_keg.reagents.has_reagent(/datum/reagent/gunpowder, charge_size))
|
||||
to_chat(user, "<span class='warning'>[powder_keg] doesn't have at least 15u of gunpowder to fill [src]!</span>")
|
||||
to_chat(user, span_warning("[powder_keg] doesn't have at least 15u of gunpowder to fill [src]!"))
|
||||
return
|
||||
if(reagents.has_reagent(/datum/reagent/gunpowder, charge_size))
|
||||
to_chat(user, "<span class='warning'>[src] already contains a full charge of powder! It would be unwise to add more.</span>")
|
||||
to_chat(user, span_warning("[src] already contains a full charge of powder! It would be unwise to add more."))
|
||||
return
|
||||
powder_keg.reagents.trans_id_to(src, /datum/reagent/gunpowder, amount = charge_size)
|
||||
to_chat(user, "<span class='notice'>You load [src] with a charge of powder from [powder_keg].</span>")
|
||||
to_chat(user, span_notice("You load [src] with a charge of powder from [powder_keg]."))
|
||||
return
|
||||
if(W.tool_behaviour == TOOL_WRENCH)
|
||||
if(default_unfasten_wrench(user, W, time = 2 SECONDS))
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
max_integrity = 100
|
||||
|
||||
/obj/structure/chess/wrench_act(mob/user, obj/item/tool)
|
||||
to_chat(user, "<span class='notice'>You start to take apart the chess piece.</span>")
|
||||
to_chat(user, span_notice("You start to take apart the chess piece."))
|
||||
if(!do_after(user, 0.5 SECONDS, target = src))
|
||||
return TRUE
|
||||
var/obj/item/stack/sheet/iron/metal_sheets = new (drop_location(), 2)
|
||||
|
||||
@@ -32,10 +32,10 @@
|
||||
if (!area_constraint)
|
||||
return TRUE
|
||||
if(!istype(build_area, area_constraint))
|
||||
to_chat(owner, "<span class='warning'>You can only build within [area_constraint]!</span>")
|
||||
to_chat(owner, span_warning("You can only build within [area_constraint]!"))
|
||||
return FALSE
|
||||
if(only_station_z && !is_station_level(build_target.z))
|
||||
to_chat(owner, "<span class='warning'>[area_constraint] has launched and can no longer be modified.</span>")
|
||||
to_chat(owner, span_warning("[area_constraint] has launched and can no longer be modified."))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -104,17 +104,17 @@
|
||||
return
|
||||
var/turf/place_turf = get_turf(remote_eye)
|
||||
if(!base_console.structures[structure_name])
|
||||
to_chat(owner, "<span class='warning'>[base_console] is out of [structure_name]!</span>")
|
||||
to_chat(owner, span_warning("[base_console] is out of [structure_name]!"))
|
||||
return
|
||||
if(!check_spot())
|
||||
return
|
||||
//Can't place inside a closed turf
|
||||
if(place_turf.density)
|
||||
to_chat(owner, "<span class='warning'>[structure_name] may only be placed on a floor.</span>")
|
||||
to_chat(owner, span_warning("[structure_name] may only be placed on a floor."))
|
||||
return
|
||||
//Can't place two dense objects inside eachother
|
||||
if(initial(structure_path.density) && place_turf.is_blocked_turf())
|
||||
to_chat(owner, "<span class='warning'>Location is obstructed by something. Please clear the location and try again.</span>")
|
||||
to_chat(owner, span_warning("Location is obstructed by something. Please clear the location and try again."))
|
||||
return
|
||||
var/obj/placed_structure = new structure_path(place_turf)
|
||||
base_console.structures[structure_name]--
|
||||
@@ -134,7 +134,7 @@
|
||||
place_sound = 'sound/machines/click.ogg'
|
||||
|
||||
/datum/action/innate/construction/place_structure/turret/after_place(obj/placed_structure, remaining)
|
||||
to_chat(owner, "<span class='notice'>Tiny fan placed. [remaining] fans remaining.</span>")
|
||||
to_chat(owner, span_notice("Tiny fan placed. [remaining] fans remaining."))
|
||||
|
||||
/datum/action/innate/construction/place_structure/turret
|
||||
name = "Install Plasma Anti-Wildlife Turret"
|
||||
@@ -146,7 +146,7 @@
|
||||
/datum/action/innate/construction/place_structure/turret/after_place(obj/placed_structure, remaining)
|
||||
var/obj/machinery/computer/auxiliary_base/turret_controller = locate() in get_area(placed_structure)
|
||||
if(!turret_controller)
|
||||
to_chat(owner, "<span class='notice'><b>Warning:</b> Aux base controller not found. Turrets might not work properly.</span>")
|
||||
to_chat(owner, span_notice("<b>Warning:</b> Aux base controller not found. Turrets might not work properly."))
|
||||
return
|
||||
turret_controller.turrets += placed_structure
|
||||
to_chat(owner, "<span class='notice'>You've constructed an additional turret. [remaining] turrets remaining.</span>")
|
||||
to_chat(owner, span_notice("You've constructed an additional turret. [remaining] turrets remaining."))
|
||||
|
||||
@@ -100,16 +100,16 @@
|
||||
/obj/structure/closet/examine(mob/user)
|
||||
. = ..()
|
||||
if(welded)
|
||||
. += "<span class='notice'>It's welded shut.</span>"
|
||||
. += span_notice("It's welded shut.")
|
||||
if(anchored)
|
||||
. += "<span class='notice'>It is <b>bolted</b> to the ground.</span>"
|
||||
. += span_notice("It is <b>bolted</b> to the ground.")
|
||||
if(opened)
|
||||
. += "<span class='notice'>The parts are <b>welded</b> together.</span>"
|
||||
. += span_notice("The parts are <b>welded</b> together.")
|
||||
else if(secure && !opened)
|
||||
. += "<span class='notice'>Right-click to [locked ? "unlock" : "lock"].</span>"
|
||||
. += span_notice("Right-click to [locked ? "unlock" : "lock"].")
|
||||
|
||||
if(HAS_TRAIT(user, TRAIT_SKITTISH) && divable)
|
||||
. += "<span class='notice'>If you bump into [p_them()] while running, you will jump inside.</span>"
|
||||
. += span_notice("If you bump into [p_them()] while running, you will jump inside.")
|
||||
|
||||
/obj/structure/closet/CanAllowThrough(atom/movable/mover, turf/target)
|
||||
. = ..()
|
||||
@@ -122,13 +122,13 @@
|
||||
if(welded || locked)
|
||||
return FALSE
|
||||
if(strong_grab)
|
||||
to_chat(user, "<span class='danger'>[pulledby] has an incredibly strong grip on [src], preventing it from opening.</span>")
|
||||
to_chat(user, span_danger("[pulledby] has an incredibly strong grip on [src], preventing it from opening."))
|
||||
return FALSE
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/mob/living/L in T)
|
||||
if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density)
|
||||
if(user)
|
||||
to_chat(user, "<span class='danger'>There's something large on top of [src], preventing it from opening.</span>")
|
||||
to_chat(user, span_danger("There's something large on top of [src], preventing it from opening."))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -140,7 +140,7 @@
|
||||
for(var/mob/living/L in T)
|
||||
if(L.anchored || horizontal && L.mob_size > MOB_SIZE_TINY && L.density)
|
||||
if(user)
|
||||
to_chat(user, "<span class='danger'>There's something too large in [src], preventing it from closing.</span>")
|
||||
to_chat(user, span_danger("There's something too large in [src], preventing it from closing."))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -272,18 +272,18 @@
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin cutting \the [src] apart...</span>")
|
||||
to_chat(user, span_notice("You begin cutting \the [src] apart..."))
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
if(!opened)
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] slices apart \the [src].</span>",
|
||||
"<span class='notice'>You cut \the [src] apart with \the [W].</span>",
|
||||
"<span class='hear'>You hear welding.</span>")
|
||||
user.visible_message(span_notice("[user] slices apart \the [src]."),
|
||||
span_notice("You cut \the [src] apart with \the [W]."),
|
||||
span_hear("You hear welding."))
|
||||
deconstruct(TRUE)
|
||||
return
|
||||
else // for example cardboard box is cut with wirecutters
|
||||
user.visible_message("<span class='notice'>[user] cut apart \the [src].</span>", \
|
||||
"<span class='notice'>You cut \the [src] apart with \the [W].</span>")
|
||||
user.visible_message(span_notice("[user] cut apart \the [src]."), \
|
||||
span_notice("You cut \the [src] apart with \the [W]."))
|
||||
deconstruct(TRUE)
|
||||
return
|
||||
if(user.transferItemToLoc(W, drop_location())) // so we put in unlit welder too
|
||||
@@ -292,15 +292,15 @@
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin [welded ? "unwelding":"welding"] \the [src]...</span>")
|
||||
to_chat(user, span_notice("You begin [welded ? "unwelding":"welding"] \the [src]..."))
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
if(opened)
|
||||
return
|
||||
welded = !welded
|
||||
after_weld(welded)
|
||||
user.visible_message("<span class='notice'>[user] [welded ? "welds shut" : "unwelded"] \the [src].</span>",
|
||||
"<span class='notice'>You [welded ? "weld" : "unwelded"] \the [src] with \the [W].</span>",
|
||||
"<span class='hear'>You hear welding.</span>")
|
||||
user.visible_message(span_notice("[user] [welded ? "welds shut" : "unwelded"] \the [src]."),
|
||||
span_notice("You [welded ? "weld" : "unwelded"] \the [src] with \the [W]."),
|
||||
span_hear("You hear welding."))
|
||||
log_game("[key_name(user)] [welded ? "welded":"unwelded"] closet [src] with [W] at [AREACOORD(src)]")
|
||||
update_appearance()
|
||||
else if(W.tool_behaviour == TOOL_WRENCH && anchorable)
|
||||
@@ -308,9 +308,9 @@
|
||||
return
|
||||
set_anchored(!anchored)
|
||||
W.play_tool_sound(src, 75)
|
||||
user.visible_message("<span class='notice'>[user] [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.</span>", \
|
||||
"<span class='notice'>You [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground.</span>", \
|
||||
"<span class='hear'>You hear a ratchet.</span>")
|
||||
user.visible_message(span_notice("[user] [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground."), \
|
||||
span_notice("You [anchored ? "anchored" : "unanchored"] \the [src] [anchored ? "to" : "from"] the ground."), \
|
||||
span_hear("You hear a ratchet."))
|
||||
else if(!user.combat_mode)
|
||||
var/item_is_id = W.GetID()
|
||||
if(!item_is_id)
|
||||
@@ -345,14 +345,14 @@
|
||||
var/turf/T = get_turf(src)
|
||||
var/list/targets = list(O, src)
|
||||
add_fingerprint(user)
|
||||
user.visible_message("<span class='warning'>[user] [actuallyismob ? "tries to ":""]stuff [O] into [src].</span>", \
|
||||
"<span class='warning'>You [actuallyismob ? "try to ":""]stuff [O] into [src].</span>", \
|
||||
"<span class='hear'>You hear clanging.</span>")
|
||||
user.visible_message(span_warning("[user] [actuallyismob ? "tries to ":""]stuff [O] into [src]."), \
|
||||
span_warning("You [actuallyismob ? "try to ":""]stuff [O] into [src]."), \
|
||||
span_hear("You hear clanging."))
|
||||
if(actuallyismob)
|
||||
if(do_after_mob(user, targets, 40))
|
||||
user.visible_message("<span class='notice'>[user] stuffs [O] into [src].</span>", \
|
||||
"<span class='notice'>You stuff [O] into [src].</span>", \
|
||||
"<span class='hear'>You hear a loud metal bang.</span>")
|
||||
user.visible_message(span_notice("[user] stuffs [O] into [src]."), \
|
||||
span_notice("You stuff [O] into [src]."), \
|
||||
span_hear("You hear a loud metal bang."))
|
||||
var/mob/living/L = O
|
||||
if(!issilicon(L))
|
||||
L.Paralyze(40)
|
||||
@@ -371,7 +371,7 @@
|
||||
if(locked)
|
||||
if(message_cooldown <= world.time)
|
||||
message_cooldown = world.time + 50
|
||||
to_chat(user, "<span class='warning'>[src]'s door won't budge!</span>")
|
||||
to_chat(user, span_warning("[src]'s door won't budge!"))
|
||||
return
|
||||
container_resist_act(user)
|
||||
|
||||
@@ -410,7 +410,7 @@
|
||||
if(iscarbon(usr) || issilicon(usr) || isdrone(usr))
|
||||
return toggle(usr)
|
||||
else
|
||||
to_chat(usr, "<span class='warning'>This mob type can't use this verb.</span>")
|
||||
to_chat(usr, span_warning("This mob type can't use this verb."))
|
||||
|
||||
// Objects that try to exit a locker by stepping were doing so successfully,
|
||||
// and due to an oversight in turf/Enter() were going through walls. That
|
||||
@@ -437,19 +437,19 @@
|
||||
//okay, so the closet is either welded or locked... resist!!!
|
||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||
user.visible_message("<span class='warning'>[src] begins to shake violently!</span>", \
|
||||
"<span class='notice'>You lean on the back of [src] and start pushing the door open... (this will take about [DisplayTimeText(breakout_time)].)</span>", \
|
||||
"<span class='hear'>You hear banging from [src].</span>")
|
||||
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_hear("You hear banging from [src]."))
|
||||
if(do_after(user,(breakout_time), target = 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
|
||||
user.visible_message("<span class='danger'>[user] successfully broke out of [src]!</span>",
|
||||
"<span class='notice'>You successfully break out of [src]!</span>")
|
||||
user.visible_message(span_danger("[user] successfully broke out of [src]!"),
|
||||
span_notice("You successfully break out of [src]!"))
|
||||
bust_open()
|
||||
else
|
||||
if(user.loc == src) //so we don't get the message if we resisted multiple times and succeeded.
|
||||
to_chat(user, "<span class='warning'>You fail to break out of [src]!</span>")
|
||||
to_chat(user, span_warning("You fail to break out of [src]!"))
|
||||
|
||||
/obj/structure/closet/proc/bust_open()
|
||||
SIGNAL_HANDLER
|
||||
@@ -471,20 +471,20 @@
|
||||
if(iscarbon(user))
|
||||
add_fingerprint(user)
|
||||
locked = !locked
|
||||
user.visible_message("<span class='notice'>[user] [locked ? null : "un"]locks [src].</span>",
|
||||
"<span class='notice'>You [locked ? null : "un"]lock [src].</span>")
|
||||
user.visible_message(span_notice("[user] [locked ? null : "un"]locks [src]."),
|
||||
span_notice("You [locked ? null : "un"]lock [src]."))
|
||||
update_appearance()
|
||||
else if(!silent)
|
||||
to_chat(user, "<span class='alert'>Access Denied.</span>")
|
||||
to_chat(user, span_alert("Access Denied."))
|
||||
else if(secure && broken)
|
||||
to_chat(user, "<span class='warning'>\The [src] is broken!</span>")
|
||||
to_chat(user, span_warning("\The [src] is broken!"))
|
||||
|
||||
/obj/structure/closet/emag_act(mob/user)
|
||||
if(secure && !broken)
|
||||
if(user)
|
||||
user.visible_message("<span class='warning'>Sparks fly from [src]!</span>",
|
||||
"<span class='warning'>You scramble [src]'s lock, breaking it open!</span>",
|
||||
"<span class='hear'>You hear a faint electrical spark.</span>")
|
||||
user.visible_message(span_warning("Sparks fly from [src]!"),
|
||||
span_warning("You scramble [src]'s lock, breaking it open!"),
|
||||
span_hear("You hear a faint electrical spark."))
|
||||
playsound(src, "sparks", 50, TRUE, SHORT_RANGE_SOUND_EXTRARANGE)
|
||||
broken = TRUE
|
||||
locked = FALSE
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
/obj/structure/closet/body_bag/attackby(obj/item/I, mob/user, params)
|
||||
if (istype(I, /obj/item/pen) || istype(I, /obj/item/toy/crayon))
|
||||
if(!user.is_literate())
|
||||
to_chat(user, "<span class='notice'>You scribble illegibly on [src]!</span>")
|
||||
to_chat(user, span_notice("You scribble illegibly on [src]!"))
|
||||
return
|
||||
var/t = stripped_input(user, "What would you like the label to be?", name, null, 53)
|
||||
if(user.get_active_held_item() != I)
|
||||
@@ -44,7 +44,7 @@
|
||||
name = initial(name)
|
||||
return
|
||||
else if(I.tool_behaviour == TOOL_WIRECUTTER)
|
||||
to_chat(user, "<span class='notice'>You cut the tag off [src].</span>")
|
||||
to_chat(user, span_notice("You cut the tag off [src]."))
|
||||
name = "body bag"
|
||||
tagged = FALSE
|
||||
update_appearance()
|
||||
@@ -84,10 +84,10 @@
|
||||
if(!istype(the_folder))
|
||||
return
|
||||
if(opened)
|
||||
to_chat(the_folder, "<span class='warning'>You wrestle with [src], but it won't fold while unzipped.</span>")
|
||||
to_chat(the_folder, span_warning("You wrestle with [src], but it won't fold while unzipped."))
|
||||
return
|
||||
if(contents.len)
|
||||
to_chat(the_folder, "<span class='warning'>There are too many things inside of [src] to fold it up!</span>")
|
||||
to_chat(the_folder, span_warning("There are too many things inside of [src] to fold it up!"))
|
||||
return
|
||||
// toto we made it!
|
||||
return TRUE
|
||||
@@ -99,7 +99,7 @@
|
||||
* * the_folder - over_object of MouseDrop aka usr
|
||||
*/
|
||||
/obj/structure/closet/body_bag/proc/perform_fold(mob/living/carbon/human/the_folder)
|
||||
visible_message("<span class='notice'>[usr] folds up [src].</span>")
|
||||
visible_message(span_notice("[usr] folds up [src]."))
|
||||
var/obj/item/bodybag/B = foldedbag_instance || new foldedbag_path
|
||||
the_folder.put_in_hands(B)
|
||||
|
||||
@@ -118,26 +118,26 @@
|
||||
if(!istype(the_folder))
|
||||
return
|
||||
if(opened)
|
||||
to_chat(the_folder, "<span class='warning'>You wrestle with [src], but it won't fold while unzipped.</span>")
|
||||
to_chat(the_folder, span_warning("You wrestle with [src], but it won't fold while unzipped."))
|
||||
return
|
||||
//end copypaste zone
|
||||
if(contents.len >= mob_storage_capacity / 2)
|
||||
to_chat(usr, "<span class='warning'>There are too many things inside of [src] to fold it up!</span>")
|
||||
to_chat(usr, span_warning("There are too many things inside of [src] to fold it up!"))
|
||||
return
|
||||
for(var/obj/item/bodybag/bluespace/B in src)
|
||||
to_chat(usr, "<span class='warning'>You can't recursively fold bluespace body bags!</span>" )
|
||||
to_chat(usr, span_warning("You can't recursively fold bluespace body bags!") )
|
||||
return
|
||||
return TRUE
|
||||
|
||||
/obj/structure/closet/body_bag/bluespace/perform_fold(mob/living/carbon/human/the_folder)
|
||||
visible_message("<span class='notice'>[usr] folds up [src].</span>")
|
||||
visible_message(span_notice("[usr] folds up [src]."))
|
||||
var/obj/item/bodybag/B = foldedbag_instance || new foldedbag_path
|
||||
var/max_weight_of_contents = initial(B.w_class)
|
||||
for(var/am in contents)
|
||||
var/atom/movable/content = am
|
||||
content.forceMove(B)
|
||||
if(isliving(content))
|
||||
to_chat(content, "<span class='userdanger'>You're suddenly forced into a tiny, compressed space!</span>")
|
||||
to_chat(content, span_userdanger("You're suddenly forced into a tiny, compressed space!"))
|
||||
if(!isitem(content))
|
||||
max_weight_of_contents = max(WEIGHT_CLASS_BULKY, max_weight_of_contents)
|
||||
continue
|
||||
|
||||
@@ -30,4 +30,4 @@
|
||||
|
||||
/obj/structure/closet/infinite/proc/close_on_my_own()
|
||||
if(close())
|
||||
visible_message("<span class='notice'>\The [src] closes on its own.</span>")
|
||||
visible_message(span_notice("\The [src] closes on its own."))
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
var/obj/item/card/id/I = W.GetID()
|
||||
if(istype(I))
|
||||
if(broken)
|
||||
to_chat(user, "<span class='danger'>It appears to be broken.</span>")
|
||||
to_chat(user, span_danger("It appears to be broken."))
|
||||
return
|
||||
if(!I || !I.registered_name)
|
||||
return
|
||||
@@ -52,6 +52,6 @@
|
||||
registered_name = I.registered_name
|
||||
desc = "Owned by [I.registered_name]."
|
||||
else
|
||||
to_chat(user, "<span class='danger'>Access Denied.</span>")
|
||||
to_chat(user, span_danger("Access Denied."))
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -67,14 +67,14 @@
|
||||
/obj/structure/closet/crate/open(mob/living/user, force = FALSE)
|
||||
. = ..()
|
||||
if(. && manifest)
|
||||
to_chat(user, "<span class='notice'>The manifest is torn off [src].</span>")
|
||||
to_chat(user, span_notice("The manifest is torn off [src]."))
|
||||
playsound(src, 'sound/items/poster_ripped.ogg', 75, TRUE)
|
||||
manifest.forceMove(get_turf(src))
|
||||
manifest = null
|
||||
update_appearance()
|
||||
|
||||
/obj/structure/closet/crate/proc/tear_manifest(mob/user)
|
||||
to_chat(user, "<span class='notice'>You tear the manifest off of [src].</span>")
|
||||
to_chat(user, span_notice("You tear the manifest off of [src]."))
|
||||
playsound(src, 'sound/items/poster_ripped.ogg', 75, TRUE)
|
||||
|
||||
manifest.forceMove(loc)
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
/obj/structure/closet/crate/bin/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/storage/bag/trash))
|
||||
var/obj/item/storage/bag/trash/T = W
|
||||
to_chat(user, "<span class='notice'>You fill the bag.</span>")
|
||||
to_chat(user, span_notice("You fill the bag."))
|
||||
for(var/obj/item/O in src)
|
||||
SEND_SIGNAL(T, COMSIG_TRY_STORAGE_INSERT, O, user, TRUE)
|
||||
T.update_appearance()
|
||||
|
||||
@@ -20,16 +20,16 @@
|
||||
if(manifest)
|
||||
tear_manifest(user)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need a crowbar to pry this open!</span>")
|
||||
to_chat(user, span_warning("You need a crowbar to pry this open!"))
|
||||
|
||||
/obj/structure/closet/crate/large/attackby(obj/item/W, mob/living/user, params)
|
||||
if(W.tool_behaviour == TOOL_CROWBAR)
|
||||
if(manifest)
|
||||
tear_manifest(user)
|
||||
|
||||
user.visible_message("<span class='notice'>[user] pries \the [src] open.</span>", \
|
||||
"<span class='notice'>You pry open \the [src].</span>", \
|
||||
"<span class='hear'>You hear splitting wood.</span>")
|
||||
user.visible_message(span_notice("[user] pries \the [src] open."), \
|
||||
span_notice("You pry open \the [src]."), \
|
||||
span_hear("You hear splitting wood."))
|
||||
playsound(src.loc, 'sound/weapons/slashmiss.ogg', 75, TRUE)
|
||||
|
||||
var/turf/T = get_turf(src)
|
||||
@@ -45,6 +45,6 @@
|
||||
return ..() //Stops it from opening and turning invisible when items are used on it.
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need a crowbar to pry this open!</span>")
|
||||
to_chat(user, span_warning("You need a crowbar to pry this open!"))
|
||||
return FALSE //Just stop. Do nothing. Don't turn into an invisible sprite. Don't open like a locker.
|
||||
//The large crate has no non-attack interactions other than the crowbar, anyway.
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
/obj/structure/closet/crate/secure/proc/boom(mob/user)
|
||||
if(user)
|
||||
to_chat(user, "<span class='danger'>The crate's anti-tamper system activates!</span>")
|
||||
to_chat(user, span_danger("The crate's anti-tamper system activates!"))
|
||||
log_bomber(user, "has detonated a", src)
|
||||
for(var/atom/movable/AM in src)
|
||||
qdel(AM)
|
||||
@@ -95,7 +95,7 @@
|
||||
|
||||
/obj/structure/closet/crate/secure/owned/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>It's locked with a privacy lock, and can only be unlocked by the buyer's ID.</span>"
|
||||
. += span_notice("It's locked with a privacy lock, and can only be unlocked by the buyer's ID.")
|
||||
|
||||
/obj/structure/closet/crate/secure/owned/Initialize(mapload, datum/bank_account/_buyer_account)
|
||||
. = ..()
|
||||
@@ -114,16 +114,16 @@
|
||||
if(iscarbon(user))
|
||||
add_fingerprint(user)
|
||||
locked = !locked
|
||||
user.visible_message("<span class='notice'>[user] unlocks [src]'s privacy lock.</span>",
|
||||
"<span class='notice'>You unlock [src]'s privacy lock.</span>")
|
||||
user.visible_message(span_notice("[user] unlocks [src]'s privacy lock."),
|
||||
span_notice("You unlock [src]'s privacy lock."))
|
||||
privacy_lock = FALSE
|
||||
update_appearance()
|
||||
else if(!silent)
|
||||
to_chat(user, "<span class='notice'>Bank account does not match with buyer!</span>")
|
||||
to_chat(user, span_notice("Bank account does not match with buyer!"))
|
||||
else if(!silent)
|
||||
to_chat(user, "<span class='notice'>No linked bank account detected!</span>")
|
||||
to_chat(user, span_notice("No linked bank account detected!"))
|
||||
else if(!silent)
|
||||
to_chat(user, "<span class='notice'>No ID detected!</span>")
|
||||
to_chat(user, span_notice("No ID detected!"))
|
||||
else if(!silent)
|
||||
to_chat(user, "<span class='warning'>[src] is broken!</span>")
|
||||
to_chat(user, span_warning("[src] is broken!"))
|
||||
else ..()
|
||||
|
||||
@@ -54,9 +54,9 @@
|
||||
/obj/structure/displaycase/examine(mob/user)
|
||||
. = ..()
|
||||
if(alert)
|
||||
. += "<span class='notice'>Hooked up with an anti-theft system.</span>"
|
||||
. += span_notice("Hooked up with an anti-theft system.")
|
||||
if(showpiece)
|
||||
. += "<span class='notice'>There's \a [showpiece] inside.</span>"
|
||||
. += span_notice("There's \a [showpiece] inside.")
|
||||
if(trophy_message)
|
||||
. += "The plaque reads:\n [trophy_message]"
|
||||
|
||||
@@ -119,43 +119,43 @@
|
||||
/obj/structure/displaycase/attackby(obj/item/W, mob/living/user, params)
|
||||
if(W.GetID() && !broken && openable)
|
||||
if(allowed(user))
|
||||
to_chat(user, "<span class='notice'>You [open ? "close":"open"] [src].</span>")
|
||||
to_chat(user, span_notice("You [open ? "close":"open"] [src]."))
|
||||
toggle_lock(user)
|
||||
else
|
||||
to_chat(user, "<span class='alert'>Access denied.</span>")
|
||||
to_chat(user, span_alert("Access denied."))
|
||||
else if(W.tool_behaviour == TOOL_WELDER && !user.combat_mode && !broken)
|
||||
if(obj_integrity < max_integrity)
|
||||
if(!W.tool_start_check(user, amount=5))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin repairing [src]...</span>")
|
||||
to_chat(user, span_notice("You begin repairing [src]..."))
|
||||
if(W.use_tool(src, user, 40, amount=5, volume=50))
|
||||
obj_integrity = max_integrity
|
||||
update_appearance()
|
||||
to_chat(user, "<span class='notice'>You repair [src].</span>")
|
||||
to_chat(user, span_notice("You repair [src]."))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src] is already in good condition!</span>")
|
||||
to_chat(user, span_warning("[src] is already in good condition!"))
|
||||
return
|
||||
else if(!alert && W.tool_behaviour == TOOL_CROWBAR && openable) //Only applies to the lab cage and player made display cases
|
||||
if(broken)
|
||||
if(showpiece)
|
||||
to_chat(user, "<span class='warning'>Remove the displayed object first!</span>")
|
||||
to_chat(user, span_warning("Remove the displayed object first!"))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You remove the destroyed case.</span>")
|
||||
to_chat(user, span_notice("You remove the destroyed case."))
|
||||
qdel(src)
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You start to [open ? "close":"open"] [src]...</span>")
|
||||
to_chat(user, span_notice("You start to [open ? "close":"open"] [src]..."))
|
||||
if(W.use_tool(src, user, 20))
|
||||
to_chat(user, "<span class='notice'>You [open ? "close":"open"] [src].</span>")
|
||||
to_chat(user, span_notice("You [open ? "close":"open"] [src]."))
|
||||
toggle_lock(user)
|
||||
else if(open && !showpiece)
|
||||
insert_showpiece(W, user)
|
||||
else if(glass_fix && broken && istype(W, /obj/item/stack/sheet/glass))
|
||||
var/obj/item/stack/sheet/glass/G = W
|
||||
if(G.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need two glass sheets to fix the case!</span>")
|
||||
to_chat(user, span_warning("You need two glass sheets to fix the case!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start fixing [src]...</span>")
|
||||
to_chat(user, span_notice("You start fixing [src]..."))
|
||||
if(do_after(user, 20, target = src))
|
||||
G.use(2)
|
||||
broken = FALSE
|
||||
@@ -166,11 +166,11 @@
|
||||
|
||||
/obj/structure/displaycase/proc/insert_showpiece(obj/item/wack, mob/user)
|
||||
if(showpiece_type && !istype(wack, showpiece_type))
|
||||
to_chat(user, "<span class='notice'>This doesn't belong in this kind of display.</span>")
|
||||
to_chat(user, span_notice("This doesn't belong in this kind of display."))
|
||||
return TRUE
|
||||
if(user.transferItemToLoc(wack, src))
|
||||
showpiece = wack
|
||||
to_chat(user, "<span class='notice'>You put [wack] on display.</span>")
|
||||
to_chat(user, span_notice("You put [wack] on display."))
|
||||
update_appearance()
|
||||
|
||||
/obj/structure/displaycase/proc/toggle_lock(mob/user)
|
||||
@@ -186,7 +186,7 @@
|
||||
return
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
if (showpiece && (broken || open))
|
||||
to_chat(user, "<span class='notice'>You deactivate the hover field built into the case.</span>")
|
||||
to_chat(user, span_notice("You deactivate the hover field built into the case."))
|
||||
log_combat(user, src, "deactivates the hover field of")
|
||||
dump()
|
||||
add_fingerprint(user)
|
||||
@@ -199,7 +199,7 @@
|
||||
if(!user.is_blind())
|
||||
user.examinate(src)
|
||||
return
|
||||
user.visible_message("<span class='danger'>[user] kicks the display case.</span>", null, null, COMBAT_MESSAGE_RANGE)
|
||||
user.visible_message(span_danger("[user] kicks the display case."), null, null, COMBAT_MESSAGE_RANGE)
|
||||
log_combat(user, src, "kicks")
|
||||
user.do_attack_animation(src, ATTACK_EFFECT_KICK)
|
||||
take_damage(2)
|
||||
@@ -216,7 +216,7 @@
|
||||
|
||||
/obj/structure/displaycase_chassis/attackby(obj/item/I, mob/user, params)
|
||||
if(I.tool_behaviour == TOOL_WRENCH) //The player can only deconstruct the wooden frame
|
||||
to_chat(user, "<span class='notice'>You start disassembling [src]...</span>")
|
||||
to_chat(user, span_notice("You start disassembling [src]..."))
|
||||
I.play_tool_sound(src)
|
||||
if(I.use_tool(src, user, 30))
|
||||
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
@@ -224,15 +224,15 @@
|
||||
qdel(src)
|
||||
|
||||
else if(istype(I, /obj/item/electronics/airlock))
|
||||
to_chat(user, "<span class='notice'>You start installing the electronics into [src]...</span>")
|
||||
to_chat(user, span_notice("You start installing the electronics into [src]..."))
|
||||
I.play_tool_sound(src)
|
||||
if(do_after(user, 30, target = src) && user.transferItemToLoc(I,src))
|
||||
electronics = I
|
||||
to_chat(user, "<span class='notice'>You install the airlock electronics.</span>")
|
||||
to_chat(user, span_notice("You install the airlock electronics."))
|
||||
|
||||
else if(istype(I, /obj/item/stock_parts/card_reader))
|
||||
var/obj/item/stock_parts/card_reader/C = I
|
||||
to_chat(user, "<span class='notice'>You start adding [C] to [src]...</span>")
|
||||
to_chat(user, span_notice("You start adding [C] to [src]..."))
|
||||
if(do_after(user, 20, target = src))
|
||||
var/obj/structure/displaycase/forsale/sale = new(src.loc)
|
||||
if(electronics)
|
||||
@@ -248,9 +248,9 @@
|
||||
else if(istype(I, /obj/item/stack/sheet/glass))
|
||||
var/obj/item/stack/sheet/glass/G = I
|
||||
if(G.get_amount() < 10)
|
||||
to_chat(user, "<span class='warning'>You need ten glass sheets to do this!</span>")
|
||||
to_chat(user, span_warning("You need ten glass sheets to do this!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding [G] to [src]...</span>")
|
||||
to_chat(user, span_notice("You start adding [G] to [src]..."))
|
||||
if(do_after(user, 20, target = src))
|
||||
G.use(10)
|
||||
var/obj/structure/displaycase/noalert/display = new(src.loc)
|
||||
@@ -308,35 +308,35 @@
|
||||
if(user.is_holding_item_of_type(/obj/item/key/displaycase))
|
||||
if(added_roundstart)
|
||||
is_locked = !is_locked
|
||||
to_chat(user, "<span class='notice'>You [!is_locked ? "un" : ""]lock the case.</span>")
|
||||
to_chat(user, span_notice("You [!is_locked ? "un" : ""]lock the case."))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>The lock is stuck shut!</span>")
|
||||
to_chat(user, span_warning("The lock is stuck shut!"))
|
||||
return
|
||||
|
||||
if(is_locked)
|
||||
to_chat(user, "<span class='warning'>The case is shut tight with an old-fashioned physical lock. Maybe you should ask the curator for the key?</span>")
|
||||
to_chat(user, span_warning("The case is shut tight with an old-fashioned physical lock. Maybe you should ask the curator for the key?"))
|
||||
return
|
||||
|
||||
if(!added_roundstart)
|
||||
to_chat(user, "<span class='warning'>You've already put something new in this case!</span>")
|
||||
to_chat(user, span_warning("You've already put something new in this case!"))
|
||||
return
|
||||
|
||||
if(is_type_in_typecache(W, GLOB.blacklisted_cargo_types))
|
||||
to_chat(user, "<span class='warning'>The case rejects the [W]!</span>")
|
||||
to_chat(user, span_warning("The case rejects the [W]!"))
|
||||
return
|
||||
|
||||
for(var/a in W.GetAllContents())
|
||||
if(is_type_in_typecache(a, GLOB.blacklisted_cargo_types))
|
||||
to_chat(user, "<span class='warning'>The case rejects the [W]!</span>")
|
||||
to_chat(user, span_warning("The case rejects the [W]!"))
|
||||
return
|
||||
|
||||
if(user.transferItemToLoc(W, src))
|
||||
|
||||
if(showpiece)
|
||||
to_chat(user, "<span class='notice'>You press a button, and [showpiece] descends into the floor of the case.</span>")
|
||||
to_chat(user, span_notice("You press a button, and [showpiece] descends into the floor of the case."))
|
||||
QDEL_NULL(showpiece)
|
||||
|
||||
to_chat(user, "<span class='notice'>You insert [W] into the case.</span>")
|
||||
to_chat(user, span_notice("You insert [W] into the case."))
|
||||
showpiece = W
|
||||
added_roundstart = FALSE
|
||||
update_appearance()
|
||||
@@ -349,22 +349,22 @@
|
||||
if(chosen_plaque)
|
||||
if(user.Adjacent(src))
|
||||
trophy_message = chosen_plaque
|
||||
to_chat(user, "<span class='notice'>You set the plaque's text.</span>")
|
||||
to_chat(user, span_notice("You set the plaque's text."))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You are too far to set the plaque's text!</span>")
|
||||
to_chat(user, span_warning("You are too far to set the plaque's text!"))
|
||||
|
||||
SSpersistence.SaveTrophy(src)
|
||||
return TRUE
|
||||
|
||||
else
|
||||
to_chat(user, "<span class='warning'>\The [W] is stuck to your hand, you can't put it in the [src.name]!</span>")
|
||||
to_chat(user, span_warning("\The [W] is stuck to your hand, you can't put it in the [src.name]!"))
|
||||
|
||||
return
|
||||
|
||||
/obj/structure/displaycase/trophy/dump()
|
||||
if (showpiece)
|
||||
if(added_roundstart)
|
||||
visible_message("<span class='danger'>The [showpiece] crumbles to dust!</span>")
|
||||
visible_message(span_danger("The [showpiece] crumbles to dust!"))
|
||||
new /obj/effect/decal/cleanable/ash(loc)
|
||||
QDEL_NULL(showpiece)
|
||||
else
|
||||
@@ -442,32 +442,32 @@
|
||||
switch(action)
|
||||
if("Buy")
|
||||
if(!showpiece)
|
||||
to_chat(usr, "<span class='notice'>There's nothing for sale.</span>")
|
||||
to_chat(usr, span_notice("There's nothing for sale."))
|
||||
return TRUE
|
||||
if(broken)
|
||||
to_chat(usr, "<span class='notice'>[src] appears to be broken.</span>")
|
||||
to_chat(usr, span_notice("[src] appears to be broken."))
|
||||
return TRUE
|
||||
if(!payments_acc)
|
||||
to_chat(usr, "<span class='notice'>[src] hasn't been registered yet.</span>")
|
||||
to_chat(usr, span_notice("[src] hasn't been registered yet."))
|
||||
return TRUE
|
||||
if(!usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
|
||||
return TRUE
|
||||
if(!potential_acc)
|
||||
to_chat(usr, "<span class='notice'>No ID card detected.</span>")
|
||||
to_chat(usr, span_notice("No ID card detected."))
|
||||
return
|
||||
var/datum/bank_account/account = potential_acc.registered_account
|
||||
if(!account)
|
||||
to_chat(usr, "<span class='notice'>[potential_acc] has no account registered!</span>")
|
||||
to_chat(usr, span_notice("[potential_acc] has no account registered!"))
|
||||
return
|
||||
if(!account.has_money(sale_price))
|
||||
to_chat(usr, "<span class='notice'>You do not possess the funds to purchase this.</span>")
|
||||
to_chat(usr, span_notice("You do not possess the funds to purchase this."))
|
||||
return TRUE
|
||||
else
|
||||
account.adjust_money(-sale_price)
|
||||
if(payments_acc)
|
||||
payments_acc.adjust_money(sale_price)
|
||||
usr.put_in_hands(showpiece)
|
||||
to_chat(usr, "<span class='notice'>You purchase [showpiece] for [sale_price] credits.</span>")
|
||||
to_chat(usr, span_notice("You purchase [showpiece] for [sale_price] credits."))
|
||||
playsound(src, 'sound/effects/cashregister.ogg', 40, TRUE)
|
||||
flick("[initial(icon_state)]_vend", src)
|
||||
showpiece = null
|
||||
@@ -476,7 +476,7 @@
|
||||
return TRUE
|
||||
if("Open")
|
||||
if(!payments_acc)
|
||||
to_chat(usr, "<span class='notice'>[src] hasn't been registered yet.</span>")
|
||||
to_chat(usr, span_notice("[src] hasn't been registered yet."))
|
||||
return TRUE
|
||||
if(!potential_acc || !potential_acc.registered_account)
|
||||
return
|
||||
@@ -502,14 +502,14 @@
|
||||
|
||||
var/new_price_input = input(usr,"Set the sale price for this vend-a-tray.","new price",0) as num|null
|
||||
if(isnull(new_price_input) || (payments_acc != potential_acc.registered_account))
|
||||
to_chat(usr, "<span class='warning'>[src] rejects your new price.</span>")
|
||||
to_chat(usr, span_warning("[src] rejects your new price."))
|
||||
return
|
||||
if(!usr.canUseTopic(src, BE_CLOSE, FALSE, NO_TK) )
|
||||
to_chat(usr, "<span class='warning'>You need to get closer!</span>")
|
||||
to_chat(usr, span_warning("You need to get closer!"))
|
||||
return
|
||||
new_price_input = clamp(round(new_price_input, 1), 10, 1000)
|
||||
sale_price = new_price_input
|
||||
to_chat(usr, "<span class='notice'>The cost is now set to [sale_price].</span>")
|
||||
to_chat(usr, span_notice("The cost is now set to [sale_price]."))
|
||||
SStgui.update_uis(src)
|
||||
return TRUE
|
||||
. = TRUE
|
||||
@@ -518,7 +518,7 @@
|
||||
//Card Registration
|
||||
var/obj/item/card/id/potential_acc = I
|
||||
if(!potential_acc.registered_account)
|
||||
to_chat(user, "<span class='warning'>This ID card has no account registered!</span>")
|
||||
to_chat(user, span_warning("This ID card has no account registered!"))
|
||||
return
|
||||
if(payments_acc == potential_acc.registered_account)
|
||||
playsound(src, 'sound/machines/click.ogg', 20, TRUE)
|
||||
@@ -533,7 +533,7 @@
|
||||
/obj/structure/displaycase/forsale/multitool_act(mob/living/user, obj/item/I)
|
||||
. = ..()
|
||||
if(obj_integrity <= (integrity_failure * max_integrity))
|
||||
to_chat(user, "<span class='notice'>You start recalibrating [src]'s hover field...</span>")
|
||||
to_chat(user, span_notice("You start recalibrating [src]'s hover field..."))
|
||||
if(do_after(user, 20, target = src))
|
||||
broken = FALSE
|
||||
obj_integrity = max_integrity
|
||||
@@ -544,34 +544,34 @@
|
||||
. = ..()
|
||||
if(open && !user.combat_mode)
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='notice'>You start unsecuring [src]...</span>")
|
||||
to_chat(user, span_notice("You start unsecuring [src]..."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You start securing [src]...</span>")
|
||||
to_chat(user, span_notice("You start securing [src]..."))
|
||||
if(I.use_tool(src, user, 16, volume=50))
|
||||
if(QDELETED(I))
|
||||
return
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='notice'>You unsecure [src].</span>")
|
||||
to_chat(user, span_notice("You unsecure [src]."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You secure [src].</span>")
|
||||
to_chat(user, span_notice("You secure [src]."))
|
||||
set_anchored(!anchored)
|
||||
return TRUE
|
||||
else if(!open && !user.combat_mode)
|
||||
to_chat(user, "<span class='notice'>[src] must be open to move it.</span>")
|
||||
to_chat(user, span_notice("[src] must be open to move it."))
|
||||
return
|
||||
|
||||
/obj/structure/displaycase/forsale/emag_act(mob/user)
|
||||
. = ..()
|
||||
payments_acc = null
|
||||
req_access = list()
|
||||
to_chat(user, "<span class='warning'>[src]'s card reader fizzles and smokes, and the account owner is reset.</span>")
|
||||
to_chat(user, span_warning("[src]'s card reader fizzles and smokes, and the account owner is reset."))
|
||||
|
||||
/obj/structure/displaycase/forsale/examine(mob/user)
|
||||
. = ..()
|
||||
if(showpiece && !open)
|
||||
. += "<span class='notice'>[showpiece] is for sale for [sale_price] credits.</span>"
|
||||
. += span_notice("[showpiece] is for sale for [sale_price] credits.")
|
||||
if(broken)
|
||||
. += "<span class='notice'>[src] is sparking and the hover field generator seems to be overloaded. Use a multitool to fix it.</span>"
|
||||
. += span_notice("[src] is sparking and the hover field generator seems to be overloaded. Use a multitool to fix it.")
|
||||
|
||||
/obj/structure/displaycase/forsale/obj_break(damage_flag)
|
||||
. = ..()
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
var/mob/living/L = locate() in buckled_mobs
|
||||
if(!L)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>Invoking the sacred ritual, you sacrifice [L].</span>")
|
||||
to_chat(user, span_notice("Invoking the sacred ritual, you sacrifice [L]."))
|
||||
L.gib()
|
||||
message_admins("[ADMIN_LOOKUPFLW(user)] has sacrificed [key_name_admin(L)] on the sacrificial altar at [AREACOORD(src)].")
|
||||
|
||||
@@ -35,10 +35,10 @@
|
||||
if(.)
|
||||
return
|
||||
if(last_process + time_between_uses > world.time)
|
||||
to_chat(user, "<span class='notice'>The fountain appears to be empty.</span>")
|
||||
to_chat(user, span_notice("The fountain appears to be empty."))
|
||||
return
|
||||
last_process = world.time
|
||||
to_chat(user, "<span class='notice'>The water feels warm and soothing as you touch it. The fountain immediately dries up shortly afterwards.</span>")
|
||||
to_chat(user, span_notice("The water feels warm and soothing as you touch it. The fountain immediately dries up shortly afterwards."))
|
||||
user.reagents.add_reagent(/datum/reagent/medicine/omnizine/godblood,20)
|
||||
update_appearance()
|
||||
addtimer(CALLBACK(src, /atom/.proc/update_appearance), time_between_uses)
|
||||
|
||||
@@ -33,21 +33,21 @@
|
||||
switch(state)
|
||||
if(AIRLOCK_ASSEMBLY_NEEDS_WIRES)
|
||||
if(anchored)
|
||||
. += "<span class='notice'>The anchoring bolts are <b>wrenched</b> in place, but the maintenance panel lacks <i>wiring</i>.</span>"
|
||||
. += span_notice("The anchoring bolts are <b>wrenched</b> in place, but the maintenance panel lacks <i>wiring</i>.")
|
||||
else
|
||||
. += "<span class='notice'>The assembly is <b>welded together</b>, but the anchoring bolts are <i>unwrenched</i>.</span>"
|
||||
. += span_notice("The assembly is <b>welded together</b>, but the anchoring bolts are <i>unwrenched</i>.")
|
||||
if(AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS)
|
||||
. += "<span class='notice'>The maintenance panel is <b>wired</b>, but the circuit slot is <i>empty</i>.</span>"
|
||||
. += span_notice("The maintenance panel is <b>wired</b>, but the circuit slot is <i>empty</i>.")
|
||||
if(AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
|
||||
. += "<span class='notice'>The circuit is <b>connected loosely</b> to its slot, but the maintenance panel is <i>unscrewed and open</i>.</span>"
|
||||
. += span_notice("The circuit is <b>connected loosely</b> to its slot, but the maintenance panel is <i>unscrewed and open</i>.")
|
||||
if(!mineral && !glass && !noglass)
|
||||
. += "<span class='notice'>There is a small <i>paper</i> placard on the assembly[doorname]. There are <i>empty</i> slots for glass windows and mineral covers.</span>"
|
||||
. += span_notice("There is a small <i>paper</i> placard on the assembly[doorname]. There are <i>empty</i> slots for glass windows and mineral covers.")
|
||||
else if(!mineral && glass && !noglass)
|
||||
. += "<span class='notice'>There is a small <i>paper</i> placard on the assembly[doorname]. There are <i>empty</i> slots for mineral covers.</span>"
|
||||
. += span_notice("There is a small <i>paper</i> placard on the assembly[doorname]. There are <i>empty</i> slots for mineral covers.")
|
||||
else if(mineral && !glass && !noglass)
|
||||
. += "<span class='notice'>There is a small <i>paper</i> placard on the assembly[doorname]. There are <i>empty</i> slots for glass windows.</span>"
|
||||
. += span_notice("There is a small <i>paper</i> placard on the assembly[doorname]. There are <i>empty</i> slots for glass windows.")
|
||||
else
|
||||
. += "<span class='notice'>There is a small <i>paper</i> placard on the assembly[doorname].</span>"
|
||||
. += span_notice("There is a small <i>paper</i> placard on the assembly[doorname].")
|
||||
|
||||
/obj/structure/door_assembly/attackby(obj/item/W, mob/user, params)
|
||||
if(istype(W, /obj/item/pen))
|
||||
@@ -64,17 +64,17 @@
|
||||
|
||||
if(mineral)
|
||||
var/obj/item/stack/sheet/mineral/mineral_path = text2path("/obj/item/stack/sheet/mineral/[mineral]")
|
||||
user.visible_message("<span class='notice'>[user] welds the [mineral] plating off the airlock assembly.</span>", "<span class='notice'>You start to weld the [mineral] plating off the airlock assembly...</span>")
|
||||
user.visible_message(span_notice("[user] welds the [mineral] plating off the airlock assembly."), span_notice("You start to weld the [mineral] plating off the airlock assembly..."))
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You weld the [mineral] plating off.</span>")
|
||||
to_chat(user, span_notice("You weld the [mineral] plating off."))
|
||||
new mineral_path(loc, 2)
|
||||
var/obj/structure/door_assembly/PA = new previous_assembly(loc)
|
||||
transfer_assembly_vars(src, PA)
|
||||
|
||||
else if(glass)
|
||||
user.visible_message("<span class='notice'>[user] welds the glass panel out of the airlock assembly.</span>", "<span class='notice'>You start to weld the glass panel out of the airlock assembly...</span>")
|
||||
user.visible_message(span_notice("[user] welds the glass panel out of the airlock assembly."), span_notice("You start to weld the glass panel out of the airlock assembly..."))
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You weld the glass panel out.</span>")
|
||||
to_chat(user, span_notice("You weld the glass panel out."))
|
||||
if(heat_proof_finished)
|
||||
new /obj/item/stack/sheet/rglass(get_turf(src))
|
||||
heat_proof_finished = 0
|
||||
@@ -82,10 +82,10 @@
|
||||
new /obj/item/stack/sheet/glass(get_turf(src))
|
||||
glass = 0
|
||||
else if(!anchored)
|
||||
user.visible_message("<span class='warning'>[user] disassembles the airlock assembly.</span>", \
|
||||
"<span class='notice'>You start to disassemble the airlock assembly...</span>")
|
||||
user.visible_message(span_warning("[user] disassembles the airlock assembly."), \
|
||||
span_notice("You start to disassemble the airlock assembly..."))
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You disassemble the airlock assembly.</span>")
|
||||
to_chat(user, span_notice("You disassemble the airlock assembly."))
|
||||
deconstruct(TRUE)
|
||||
|
||||
else if(W.tool_behaviour == TOOL_WRENCH)
|
||||
@@ -97,27 +97,27 @@
|
||||
break
|
||||
|
||||
if(door_check)
|
||||
user.visible_message("<span class='notice'>[user] secures the airlock assembly to the floor.</span>", \
|
||||
"<span class='notice'>You start to secure the airlock assembly to the floor...</span>", \
|
||||
"<span class='hear'>You hear wrenching.</span>")
|
||||
user.visible_message(span_notice("[user] secures the airlock assembly to the floor."), \
|
||||
span_notice("You start to secure the airlock assembly to the floor..."), \
|
||||
span_hear("You hear wrenching."))
|
||||
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(anchored)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You secure the airlock assembly.</span>")
|
||||
to_chat(user, span_notice("You secure the airlock assembly."))
|
||||
name = "secured airlock assembly"
|
||||
set_anchored(TRUE)
|
||||
else
|
||||
to_chat(user, "There is another door here!")
|
||||
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] unsecures the airlock assembly from the floor.</span>", \
|
||||
"<span class='notice'>You start to unsecure the airlock assembly from the floor...</span>", \
|
||||
"<span class='hear'>You hear wrenching.</span>")
|
||||
user.visible_message(span_notice("[user] unsecures the airlock assembly from the floor."), \
|
||||
span_notice("You start to unsecure the airlock assembly from the floor..."), \
|
||||
span_hear("You hear wrenching."))
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(!anchored)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You unsecure the airlock assembly.</span>")
|
||||
to_chat(user, span_notice("You unsecure the airlock assembly."))
|
||||
name = "airlock assembly"
|
||||
set_anchored(FALSE)
|
||||
|
||||
@@ -125,51 +125,51 @@
|
||||
if(!W.tool_start_check(user, amount=1))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] wires the airlock assembly.</span>", \
|
||||
"<span class='notice'>You start to wire the airlock assembly...</span>")
|
||||
user.visible_message(span_notice("[user] wires the airlock assembly."), \
|
||||
span_notice("You start to wire the airlock assembly..."))
|
||||
if(W.use_tool(src, user, 40, amount=1))
|
||||
if(state != AIRLOCK_ASSEMBLY_NEEDS_WIRES)
|
||||
return
|
||||
state = AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS
|
||||
to_chat(user, "<span class='notice'>You wire the airlock assembly.</span>")
|
||||
to_chat(user, span_notice("You wire the airlock assembly."))
|
||||
name = "wired airlock assembly"
|
||||
|
||||
else if((W.tool_behaviour == TOOL_WIRECUTTER) && state == AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS )
|
||||
user.visible_message("<span class='notice'>[user] cuts the wires from the airlock assembly.</span>", \
|
||||
"<span class='notice'>You start to cut the wires from the airlock assembly...</span>")
|
||||
user.visible_message(span_notice("[user] cuts the wires from the airlock assembly."), \
|
||||
span_notice("You start to cut the wires from the airlock assembly..."))
|
||||
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(state != AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You cut the wires from the airlock assembly.</span>")
|
||||
to_chat(user, span_notice("You cut the wires from the airlock assembly."))
|
||||
new/obj/item/stack/cable_coil(get_turf(user), 1)
|
||||
state = AIRLOCK_ASSEMBLY_NEEDS_WIRES
|
||||
name = "secured airlock assembly"
|
||||
|
||||
else if(istype(W, /obj/item/electronics/airlock) && state == AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS )
|
||||
W.play_tool_sound(src, 100)
|
||||
user.visible_message("<span class='notice'>[user] installs the electronics into the airlock assembly.</span>", \
|
||||
"<span class='notice'>You start to install electronics into the airlock assembly...</span>")
|
||||
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( state != AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS )
|
||||
return
|
||||
if(!user.transferItemToLoc(W, src))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You install the airlock electronics.</span>")
|
||||
to_chat(user, span_notice("You install the airlock electronics."))
|
||||
state = AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER
|
||||
name = "near finished airlock assembly"
|
||||
electronics = W
|
||||
|
||||
|
||||
else if((W.tool_behaviour == TOOL_CROWBAR) && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER )
|
||||
user.visible_message("<span class='notice'>[user] removes the electronics from the airlock assembly.</span>", \
|
||||
"<span class='notice'>You start to remove electronics from the airlock assembly...</span>")
|
||||
user.visible_message(span_notice("[user] removes the electronics from the airlock assembly."), \
|
||||
span_notice("You start to remove electronics from the airlock assembly..."))
|
||||
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(state != AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You remove the airlock electronics.</span>")
|
||||
to_chat(user, span_notice("You remove the airlock electronics."))
|
||||
state = AIRLOCK_ASSEMBLY_NEEDS_ELECTRONICS
|
||||
name = "wired airlock assembly"
|
||||
var/obj/item/electronics/airlock/ae
|
||||
@@ -188,17 +188,17 @@
|
||||
if(!glass)
|
||||
if(istype(G, /obj/item/stack/sheet/rglass) || istype(G, /obj/item/stack/sheet/glass))
|
||||
playsound(src, 'sound/items/crowbar.ogg', 100, TRUE)
|
||||
user.visible_message("<span class='notice'>[user] adds [G.name] to the airlock assembly.</span>", \
|
||||
"<span class='notice'>You start to install [G.name] into the airlock assembly...</span>")
|
||||
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(G.get_amount() < 1 || glass)
|
||||
return
|
||||
if(G.type == /obj/item/stack/sheet/rglass)
|
||||
to_chat(user, "<span class='notice'>You install [G.name] windows into the airlock assembly.</span>")
|
||||
to_chat(user, span_notice("You install [G.name] windows into the airlock assembly."))
|
||||
heat_proof_finished = 1 //reinforced glass makes the airlock heat-proof
|
||||
name = "near finished heat-proofed window airlock assembly"
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You install regular glass windows into the airlock assembly.</span>")
|
||||
to_chat(user, span_notice("You install regular glass windows into the airlock assembly."))
|
||||
name = "near finished window airlock assembly"
|
||||
G.use(1)
|
||||
glass = TRUE
|
||||
@@ -207,12 +207,12 @@
|
||||
var/M = G.sheettype
|
||||
if(G.get_amount() >= 2)
|
||||
playsound(src, 'sound/items/crowbar.ogg', 100, TRUE)
|
||||
user.visible_message("<span class='notice'>[user] adds [G.name] to the airlock assembly.</span>", \
|
||||
"<span class='notice'>You start to install [G.name] into the airlock assembly...</span>")
|
||||
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(G.get_amount() < 2 || mineral)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You install [M] plating into the airlock assembly.</span>")
|
||||
to_chat(user, span_notice("You install [M] plating into the airlock assembly."))
|
||||
G.use(2)
|
||||
var/mineralassembly = text2path("/obj/structure/door_assembly/door_assembly_[M]")
|
||||
var/obj/structure/door_assembly/MA = new mineralassembly(loc)
|
||||
@@ -225,23 +225,23 @@
|
||||
else
|
||||
dropped_glass = new /obj/item/stack/sheet/glass(drop_location())
|
||||
glass = FALSE
|
||||
to_chat(user, "<span class='notice'>As you finish, a [dropped_glass.singular_name] falls out of [MA]'s frame.</span>")
|
||||
to_chat(user, span_notice("As you finish, a [dropped_glass.singular_name] falls out of [MA]'s frame."))
|
||||
|
||||
transfer_assembly_vars(src, MA, TRUE)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need at least two sheets add a mineral cover!</span>")
|
||||
to_chat(user, span_warning("You need at least two sheets add a mineral cover!"))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You cannot add [G] to [src]!</span>")
|
||||
to_chat(user, span_warning("You cannot add [G] to [src]!"))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You cannot add [G] to [src]!</span>")
|
||||
to_chat(user, span_warning("You cannot add [G] to [src]!"))
|
||||
|
||||
else if((W.tool_behaviour == TOOL_SCREWDRIVER) && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER )
|
||||
user.visible_message("<span class='notice'>[user] finishes the airlock.</span>", \
|
||||
"<span class='notice'>You start finishing the airlock...</span>")
|
||||
user.visible_message(span_notice("[user] finishes the airlock."), \
|
||||
span_notice("You start finishing the airlock..."))
|
||||
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(loc && state == AIRLOCK_ASSEMBLY_NEEDS_SCREWDRIVER)
|
||||
to_chat(user, "<span class='notice'>You finish the airlock.</span>")
|
||||
to_chat(user, span_notice("You finish the airlock."))
|
||||
var/obj/machinery/door/airlock/door
|
||||
if(glass)
|
||||
door = new glass_type( loc )
|
||||
@@ -334,7 +334,7 @@
|
||||
/obj/structure/door_assembly/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
|
||||
switch(passed_mode)
|
||||
if(RCD_DECONSTRUCT)
|
||||
to_chat(user, "<span class='notice'>You deconstruct [src].</span>")
|
||||
to_chat(user, span_notice("You deconstruct [src]."))
|
||||
qdel(src)
|
||||
return TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
|
||||
/obj/structure/dresser/attackby(obj/item/I, mob/user, params)
|
||||
if(I.tool_behaviour == TOOL_WRENCH)
|
||||
to_chat(user, "<span class='notice'>You begin to [anchored ? "unwrench" : "wrench"] [src].</span>")
|
||||
to_chat(user, span_notice("You begin to [anchored ? "unwrench" : "wrench"] [src]."))
|
||||
if(I.use_tool(src, user, 20, volume=50))
|
||||
to_chat(user, "<span class='notice'>You successfully [anchored ? "unwrench" : "wrench"] [src].</span>")
|
||||
to_chat(user, span_notice("You successfully [anchored ? "unwrench" : "wrench"] [src]."))
|
||||
set_anchored(!anchored)
|
||||
else
|
||||
return ..()
|
||||
@@ -30,7 +30,7 @@
|
||||
var/mob/living/carbon/human/H = user
|
||||
|
||||
if(H.dna && H.dna.species && (NO_UNDERWEAR in H.dna.species.species_traits))
|
||||
to_chat(user, "<span class='warning'>You are not capable of wearing underwear.</span>")
|
||||
to_chat(user, span_warning("You are not capable of wearing underwear."))
|
||||
return
|
||||
|
||||
var/choice = input(user, "Underwear, Undershirt, or Socks?", "Changing") as null|anything in list("Underwear","Underwear Color","Undershirt","Socks")
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
/obj/structure/extinguisher_cabinet/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>Alt-click to [opened ? "close":"open"] it.</span>"
|
||||
. += span_notice("Alt-click to [opened ? "close":"open"] it.")
|
||||
|
||||
/obj/structure/extinguisher_cabinet/Destroy()
|
||||
if(stored_extinguisher)
|
||||
@@ -66,11 +66,11 @@
|
||||
|
||||
/obj/structure/extinguisher_cabinet/attackby(obj/item/I, mob/living/user, params)
|
||||
if(I.tool_behaviour == TOOL_WRENCH && !stored_extinguisher)
|
||||
to_chat(user, "<span class='notice'>You start unsecuring [name]...</span>")
|
||||
to_chat(user, span_notice("You start unsecuring [name]..."))
|
||||
I.play_tool_sound(src)
|
||||
if(I.use_tool(src, user, 60))
|
||||
playsound(loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
to_chat(user, "<span class='notice'>You unsecure [name].</span>")
|
||||
to_chat(user, span_notice("You unsecure [name]."))
|
||||
deconstruct(TRUE)
|
||||
return
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
stored_extinguisher = I
|
||||
to_chat(user, "<span class='notice'>You place [I] in [src].</span>")
|
||||
to_chat(user, span_notice("You place [I] in [src]."))
|
||||
update_appearance()
|
||||
return TRUE
|
||||
else
|
||||
@@ -100,7 +100,7 @@
|
||||
return
|
||||
if(stored_extinguisher)
|
||||
user.put_in_hands(stored_extinguisher)
|
||||
to_chat(user, "<span class='notice'>You take [stored_extinguisher] from [src].</span>")
|
||||
to_chat(user, span_notice("You take [stored_extinguisher] from [src]."))
|
||||
stored_extinguisher = null
|
||||
if(!opened)
|
||||
opened = 1
|
||||
@@ -114,7 +114,7 @@
|
||||
. = COMPONENT_CANCEL_ATTACK_CHAIN
|
||||
if(stored_extinguisher)
|
||||
stored_extinguisher.forceMove(loc)
|
||||
to_chat(user, "<span class='notice'>You telekinetically remove [stored_extinguisher] from [src].</span>")
|
||||
to_chat(user, span_notice("You telekinetically remove [stored_extinguisher] from [src]."))
|
||||
stored_extinguisher = null
|
||||
opened = TRUE
|
||||
playsound(loc, 'sound/machines/click.ogg', 15, TRUE, -3)
|
||||
@@ -133,7 +133,7 @@
|
||||
|
||||
/obj/structure/extinguisher_cabinet/proc/toggle_cabinet(mob/user)
|
||||
if(opened && broken)
|
||||
to_chat(user, "<span class='warning'>[src] is broken open.</span>")
|
||||
to_chat(user, span_warning("[src] is broken open."))
|
||||
else
|
||||
playsound(loc, 'sound/machines/click.ogg', 15, TRUE, -3)
|
||||
opened = !opened
|
||||
|
||||
@@ -82,22 +82,22 @@
|
||||
|
||||
/obj/structure/falsewall/attackby(obj/item/W, mob/user, params)
|
||||
if(opening)
|
||||
to_chat(user, "<span class='warning'>You must wait until the door has stopped moving!</span>")
|
||||
to_chat(user, span_warning("You must wait until the door has stopped moving!"))
|
||||
return
|
||||
|
||||
if(W.tool_behaviour == TOOL_SCREWDRIVER)
|
||||
if(density)
|
||||
var/turf/T = get_turf(src)
|
||||
if(T.density)
|
||||
to_chat(user, "<span class='warning'>[src] is blocked!</span>")
|
||||
to_chat(user, span_warning("[src] is blocked!"))
|
||||
return
|
||||
if(!isfloorturf(T))
|
||||
to_chat(user, "<span class='warning'>[src] bolts must be tightened on the floor!</span>")
|
||||
to_chat(user, span_warning("[src] bolts must be tightened on the floor!"))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] tightens some bolts on the wall.</span>", "<span class='notice'>You tighten the bolts on the wall.</span>")
|
||||
user.visible_message(span_notice("[user] tightens some bolts on the wall."), span_notice("You tighten the bolts on the wall."))
|
||||
ChangeToWall()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You can't reach, close it first!</span>")
|
||||
to_chat(user, span_warning("You can't reach, close it first!"))
|
||||
|
||||
else if(W.tool_behaviour == TOOL_WELDER)
|
||||
if(W.use_tool(src, user, 0, volume=50))
|
||||
@@ -106,7 +106,7 @@
|
||||
return ..()
|
||||
|
||||
/obj/structure/falsewall/proc/dismantle(mob/user, disassembled=TRUE, obj/item/tool = null)
|
||||
user.visible_message("<span class='notice'>[user] dismantles the false wall.</span>", "<span class='notice'>You dismantle the false wall.</span>")
|
||||
user.visible_message(span_notice("[user] dismantles the false wall."), span_notice("You dismantle the false wall."))
|
||||
if(tool)
|
||||
tool.play_tool_sound(src, 100)
|
||||
else
|
||||
@@ -126,7 +126,7 @@
|
||||
return null
|
||||
|
||||
/obj/structure/falsewall/examine_status(mob/user) //So you can't detect falsewalls by examine.
|
||||
to_chat(user, "<span class='notice'>The outer plating is <b>welded</b> firmly in place.</span>")
|
||||
to_chat(user, span_notice("The outer plating is <b>welded</b> firmly in place."))
|
||||
return null
|
||||
|
||||
/*
|
||||
@@ -144,7 +144,7 @@
|
||||
smoothing_flags = SMOOTH_BITMASK
|
||||
|
||||
/obj/structure/falsewall/reinforced/examine_status(mob/user)
|
||||
to_chat(user, "<span class='notice'>The outer <b>grille</b> is fully intact.</span>")
|
||||
to_chat(user, span_notice("The outer <b>grille</b> is fully intact."))
|
||||
return null
|
||||
|
||||
/obj/structure/falsewall/reinforced/attackby(obj/item/tool, mob/user)
|
||||
|
||||
@@ -60,29 +60,29 @@
|
||||
/obj/structure/fence/attackby(obj/item/W, mob/user)
|
||||
if(W.tool_behaviour == TOOL_WIRECUTTER)
|
||||
if(!cuttable)
|
||||
to_chat(user, "<span class='warning'>This section of the fence can't be cut!</span>")
|
||||
to_chat(user, span_warning("This section of the fence can't be cut!"))
|
||||
return
|
||||
if(invulnerable)
|
||||
to_chat(user, "<span class='warning'>This fence is too strong to cut through!</span>")
|
||||
to_chat(user, span_warning("This fence is too strong to cut through!"))
|
||||
return
|
||||
var/current_stage = hole_size
|
||||
if(current_stage >= MAX_HOLE_SIZE)
|
||||
to_chat(user, "<span class='warning'>This fence has too much cut out of it already!</span>")
|
||||
to_chat(user, span_warning("This fence has too much cut out of it already!"))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='danger'>\The [user] starts cutting through \the [src] with \the [W].</span>",\
|
||||
"<span class='danger'>You start cutting through \the [src] with \the [W].</span>")
|
||||
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(current_stage == hole_size)
|
||||
switch(++hole_size)
|
||||
if(MEDIUM_HOLE)
|
||||
visible_message("<span class='notice'>\The [user] cuts into \the [src] some more.</span>")
|
||||
to_chat(user, "<span class='info'>You could probably fit yourself through that hole now. Although climbing through would be much faster if you made it even bigger.</span>")
|
||||
visible_message(span_notice("\The [user] cuts into \the [src] some more."))
|
||||
to_chat(user, span_info("You could probably fit yourself through that hole now. Although climbing through would be much faster if you made it even bigger."))
|
||||
AddElement(/datum/element/climbable)
|
||||
if(LARGE_HOLE)
|
||||
visible_message("<span class='notice'>\The [user] completely cuts through \the [src].</span>")
|
||||
to_chat(user, "<span class='info'>The hole in \the [src] is now big enough to walk through.</span>")
|
||||
visible_message(span_notice("\The [user] completely cuts through \the [src]."))
|
||||
to_chat(user, span_info("The hole in \the [src] is now big enough to walk through."))
|
||||
RemoveElement(/datum/element/climbable)
|
||||
|
||||
update_cut_status()
|
||||
@@ -129,7 +129,7 @@
|
||||
|
||||
/obj/structure/fence/door/proc/toggle(mob/user)
|
||||
open = !open
|
||||
visible_message("<span class='notice'>\The [user] [open ? "opens" : "closes"] \the [src].</span>")
|
||||
visible_message(span_notice("\The [user] [open ? "opens" : "closes"] \the [src]."))
|
||||
update_door_status()
|
||||
playsound(src, 'sound/machines/click.ogg', 100, TRUE)
|
||||
|
||||
|
||||
@@ -46,20 +46,20 @@
|
||||
if(!I.tool_start_check(user, amount=2))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin repairing [src].</span>")
|
||||
to_chat(user, span_notice("You begin repairing [src]."))
|
||||
if(I.use_tool(src, user, 40, volume=50, amount=2))
|
||||
obj_integrity = max_integrity
|
||||
update_appearance()
|
||||
to_chat(user, "<span class='notice'>You repair [src].</span>")
|
||||
to_chat(user, span_notice("You repair [src]."))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src] is already in good condition!</span>")
|
||||
to_chat(user, span_warning("[src] is already in good condition!"))
|
||||
return
|
||||
else if(istype(I, /obj/item/stack/sheet/glass) && broken)
|
||||
var/obj/item/stack/sheet/glass/G = I
|
||||
if(G.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need two glass sheets to fix [src]!</span>")
|
||||
to_chat(user, span_warning("You need two glass sheets to fix [src]!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start fixing [src]...</span>")
|
||||
to_chat(user, span_notice("You start fixing [src]..."))
|
||||
if(do_after(user, 20, target = src) && G.use(2))
|
||||
broken = FALSE
|
||||
obj_integrity = max_integrity
|
||||
@@ -68,12 +68,12 @@
|
||||
if(istype(I, /obj/item/fireaxe) && !fireaxe)
|
||||
var/obj/item/fireaxe/F = I
|
||||
if(F?.wielded)
|
||||
to_chat(user, "<span class='warning'>Unwield the [F.name] first.</span>")
|
||||
to_chat(user, span_warning("Unwield the [F.name] first."))
|
||||
return
|
||||
if(!user.transferItemToLoc(F, src))
|
||||
return
|
||||
fireaxe = F
|
||||
to_chat(user, "<span class='notice'>You place the [F.name] back in the [name].</span>")
|
||||
to_chat(user, span_notice("You place the [F.name] back in the [name]."))
|
||||
update_appearance()
|
||||
return
|
||||
else if(!broken)
|
||||
@@ -129,12 +129,12 @@
|
||||
if(fireaxe)
|
||||
user.put_in_hands(fireaxe)
|
||||
fireaxe = null
|
||||
to_chat(user, "<span class='notice'>You take the fire axe from the [name].</span>")
|
||||
to_chat(user, span_notice("You take the fire axe from the [name]."))
|
||||
src.add_fingerprint(user)
|
||||
update_appearance()
|
||||
return
|
||||
if(locked)
|
||||
to_chat(user, "<span class='warning'>The [name] won't budge!</span>")
|
||||
to_chat(user, span_warning("The [name] won't budge!"))
|
||||
return
|
||||
else
|
||||
open = !open
|
||||
@@ -152,7 +152,7 @@
|
||||
/obj/structure/fireaxecabinet/attack_tk(mob/user)
|
||||
. = COMPONENT_CANCEL_ATTACK_CHAIN
|
||||
if(locked)
|
||||
to_chat(user, "<span class='warning'>The [name] won't budge!</span>")
|
||||
to_chat(user, span_warning("The [name] won't budge!"))
|
||||
return
|
||||
open = !open
|
||||
update_appearance()
|
||||
@@ -182,10 +182,10 @@
|
||||
. += locked ? "locked" : "unlocked"
|
||||
|
||||
/obj/structure/fireaxecabinet/proc/toggle_lock(mob/user)
|
||||
to_chat(user, "<span class='notice'>Resetting circuitry...</span>")
|
||||
to_chat(user, span_notice("Resetting circuitry..."))
|
||||
playsound(src, 'sound/machines/locktoggle.ogg', 50, TRUE)
|
||||
if(do_after(user, 20, target = src))
|
||||
to_chat(user, "<span class='notice'>You [locked ? "disable" : "re-enable"] the locking modules.</span>")
|
||||
to_chat(user, span_notice("You [locked ? "disable" : "re-enable"] the locking modules."))
|
||||
locked = !locked
|
||||
update_appearance()
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
set src in oview(1)
|
||||
|
||||
if(locked)
|
||||
to_chat(usr, "<span class='warning'>The [name] won't budge!</span>")
|
||||
to_chat(usr, span_warning("The [name] won't budge!"))
|
||||
return
|
||||
else
|
||||
open = !open
|
||||
|
||||
@@ -26,10 +26,10 @@
|
||||
|
||||
/obj/structure/fireplace/proc/try_light(obj/item/O, mob/user)
|
||||
if(lit)
|
||||
to_chat(user, "<span class='warning'>It's already lit!</span>")
|
||||
to_chat(user, span_warning("It's already lit!"))
|
||||
return FALSE
|
||||
if(!fuel_added)
|
||||
to_chat(user, "<span class='warning'>[src] needs some fuel to burn!</span>")
|
||||
to_chat(user, span_warning("[src] needs some fuel to burn!"))
|
||||
return FALSE
|
||||
var/msg = O.ignition_effect(src, user)
|
||||
if(msg)
|
||||
@@ -43,7 +43,7 @@
|
||||
var/space_remaining = MAXIMUM_BURN_TIMER - burn_time_remaining()
|
||||
var/space_for_logs = round(space_remaining / LOG_BURN_TIMER)
|
||||
if(space_for_logs < 1)
|
||||
to_chat(user, "<span class='warning'>You can't fit any more of [T] in [src]!</span>")
|
||||
to_chat(user, span_warning("You can't fit any more of [T] in [src]!"))
|
||||
return
|
||||
var/logs_used = min(space_for_logs, wood.amount)
|
||||
wood.use(logs_used)
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
if(W.get_sharpness() && W.force > 0)
|
||||
if(W.hitsound)
|
||||
playsound(get_turf(src), W.hitsound, 100, FALSE, FALSE)
|
||||
user.visible_message("<span class='notice'>[user] begins to cut down [src] with [W].</span>","<span class='notice'>You begin to cut down [src] with [W].</span>", "<span class='hear'>You hear the sound of sawing.</span>")
|
||||
user.visible_message(span_notice("[user] begins to cut down [src] with [W]."),span_notice("You begin to cut down [src] with [W]."), span_hear("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.
|
||||
user.visible_message("<span class='notice'>[user] fells [src] with the [W].</span>","<span class='notice'>You fell [src] with the [W].</span>", "<span class='hear'>You hear the sound of a tree falling.</span>")
|
||||
user.visible_message(span_notice("[user] fells [src] with the [W]."),span_notice("You fell [src] with the [W]."), span_hear("You hear the sound of a tree falling."))
|
||||
playsound(get_turf(src), 'sound/effects/meteorimpact.ogg', 100 , FALSE, FALSE)
|
||||
user.log_message("cut down [src] at [AREACOORD(src)]", LOG_ATTACK)
|
||||
for(var/i=1 to log_amount)
|
||||
@@ -78,9 +78,9 @@
|
||||
return
|
||||
|
||||
if(took_presents[user.ckey] && !unlimited)
|
||||
to_chat(user, "<span class='warning'>There are no presents with your name on.</span>")
|
||||
to_chat(user, span_warning("There are no presents with your name on."))
|
||||
return
|
||||
to_chat(user, "<span class='warning'>After a bit of rummaging, you locate a gift with your name on it!</span>")
|
||||
to_chat(user, span_warning("After a bit of rummaging, you locate a gift with your name on it!"))
|
||||
|
||||
if(!unlimited)
|
||||
took_presents[user.ckey] = TRUE
|
||||
@@ -326,9 +326,9 @@
|
||||
/obj/item/kirbyplants/attackby(obj/item/I, mob/living/user, params)
|
||||
. = ..()
|
||||
if(trimmable && HAS_TRAIT(user,TRAIT_BONSAI) && isturf(loc) && I.get_sharpness())
|
||||
to_chat(user,"<span class='notice'>You start trimming [src].</span>")
|
||||
to_chat(user,span_notice("You start trimming [src]."))
|
||||
if(do_after(user,3 SECONDS,target=src))
|
||||
to_chat(user,"<span class='notice'>You finish trimming [src].</span>")
|
||||
to_chat(user,span_notice("You finish trimming [src]."))
|
||||
change_visual()
|
||||
|
||||
/// Cycle basic plant visuals
|
||||
@@ -415,9 +415,9 @@
|
||||
return ..()
|
||||
if(flags_1 & NODECONSTRUCT_1)
|
||||
return ..()
|
||||
to_chat(user, "<span class='notice'>You start mining...</span>")
|
||||
to_chat(user, span_notice("You start mining..."))
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You finish mining the rock.</span>")
|
||||
to_chat(user, span_notice("You finish mining the rock."))
|
||||
if(mineResult && mineAmount)
|
||||
new mineResult(loc, mineAmount)
|
||||
SSblackbox.record_feedback("tally", "pick_used_mining", 1, W.type)
|
||||
|
||||
@@ -16,10 +16,10 @@
|
||||
|
||||
/obj/structure/fluff/attackby(obj/item/I, mob/living/user, params)
|
||||
if(I.tool_behaviour == TOOL_WRENCH && deconstructible)
|
||||
user.visible_message("<span class='notice'>[user] starts disassembling [src]...</span>", "<span class='notice'>You start disassembling [src]...</span>")
|
||||
user.visible_message(span_notice("[user] starts disassembling [src]..."), span_notice("You start disassembling [src]..."))
|
||||
I.play_tool_sound(src)
|
||||
if(I.use_tool(src, user, 50))
|
||||
user.visible_message("<span class='notice'>[user] disassembles [src]!</span>", "<span class='notice'>You break down [src] into scrap metal.</span>")
|
||||
user.visible_message(span_notice("[user] disassembles [src]!"), span_notice("You break down [src] into scrap metal."))
|
||||
playsound(user, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
new/obj/item/stack/sheet/iron(drop_location())
|
||||
qdel(src)
|
||||
@@ -278,9 +278,9 @@
|
||||
|
||||
/obj/structure/fluff/hedge/attacked_by(obj/item/I, mob/living/user)
|
||||
if(opacity && HAS_TRAIT(user, TRAIT_BONSAI) && I.get_sharpness())
|
||||
to_chat(user,"<span class='notice'>You start trimming \the [src].</span>")
|
||||
to_chat(user,span_notice("You start trimming \the [src]."))
|
||||
if(do_after(user, 3 SECONDS,target=src))
|
||||
to_chat(user,"<span class='notice'>You finish trimming \the [src].</span>")
|
||||
to_chat(user,span_notice("You finish trimming \the [src]."))
|
||||
opacity = FALSE
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
/obj/effect/mob_spawn/human/ash_walker/allow_spawn(mob/user)
|
||||
if(!(user.key in team.players_spawned))//one per person unless you get a bonus spawn
|
||||
return TRUE
|
||||
to_chat(user, "<span class='warning'><b>You have exhausted your usefulness to the Necropolis</b>.</span>")
|
||||
to_chat(user, span_warning("<b>You have exhausted your usefulness to the Necropolis</b>."))
|
||||
return FALSE
|
||||
|
||||
/obj/effect/mob_spawn/human/ash_walker/special(mob/living/new_spawn)
|
||||
@@ -245,7 +245,7 @@
|
||||
if(QDELETED(src) || uses <= 0)
|
||||
return
|
||||
log_game("[key_name(H)] golem-swapped into [src]")
|
||||
H.visible_message("<span class='notice'>A faint light leaves [H], moving to [src] and animating it!</span>","<span class='notice'>You leave your old body behind, and transfer into [src]!</span>")
|
||||
H.visible_message(span_notice("A faint light leaves [H], moving to [src] and animating it!"),span_notice("You leave your old body behind, and transfer into [src]!"))
|
||||
show_flavour = FALSE
|
||||
var/mob/living/carbon/human/newgolem = create(newname = H.real_name)
|
||||
H.transfer_trait_datums(newgolem)
|
||||
@@ -691,7 +691,7 @@
|
||||
new_spawn.grant_language(/datum/language/codespeak, TRUE, TRUE, LANGUAGE_MIND)
|
||||
var/policy = get_policy(assignedrole)
|
||||
if(policy)
|
||||
to_chat(new_spawn, "<span class='bold'>[policy]</span>")
|
||||
to_chat(new_spawn, span_bold("[policy]"))
|
||||
|
||||
/obj/effect/mob_spawn/human/syndicatespace/captain
|
||||
name = "Syndicate Ship Captain"
|
||||
@@ -801,7 +801,7 @@
|
||||
var/obj/item/card/id/id_card = H.wear_id
|
||||
if(H.age < AGE_MINOR)
|
||||
id_card.registered_age = AGE_MINOR
|
||||
to_chat(H, "<span class='notice'>You're not technically old enough to access or serve alcohol, but your ID has been discreetly modified to display your age as [AGE_MINOR]. Try to keep that a secret!</span>")
|
||||
to_chat(H, span_notice("You're not technically old enough to access or serve alcohol, but your ID has been discreetly modified to display your age as [AGE_MINOR]. Try to keep that a secret!"))
|
||||
|
||||
/obj/effect/mob_spawn/human/skeleton/alive
|
||||
death = FALSE
|
||||
@@ -847,7 +847,7 @@
|
||||
var/despawn = tgui_alert(usr, "Return to cryosleep? (Warning, Your mob will be deleted!)", null, list("Yes", "No"))
|
||||
if(despawn == "No" || !loc || !Adjacent(user))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user.name] climbs back into cryosleep...</span>")
|
||||
user.visible_message(span_notice("[user.name] climbs back into cryosleep..."))
|
||||
qdel(user)
|
||||
|
||||
/datum/outfit/cryobartender
|
||||
|
||||
@@ -16,16 +16,16 @@
|
||||
. = ..()
|
||||
switch(state)
|
||||
if(GIRDER_REINF)
|
||||
. += "<span class='notice'>The support struts are <b>screwed</b> in place.</span>"
|
||||
. += span_notice("The support struts are <b>screwed</b> in place.")
|
||||
if(GIRDER_REINF_STRUTS)
|
||||
. += "<span class='notice'>The support struts are <i>unscrewed</i> and the inner <b>grille</b> is intact.</span>"
|
||||
. += span_notice("The support struts are <i>unscrewed</i> and the inner <b>grille</b> is intact.")
|
||||
if(GIRDER_NORMAL)
|
||||
if(can_displace)
|
||||
. += "<span class='notice'>The bolts are <b>wrenched</b> in place.</span>"
|
||||
. += span_notice("The bolts are <b>wrenched</b> in place.")
|
||||
if(GIRDER_DISPLACED)
|
||||
. += "<span class='notice'>The bolts are <i>loosened</i>, but the <b>screws</b> are holding [src] together.</span>"
|
||||
. += span_notice("The bolts are <i>loosened</i>, but the <b>screws</b> are holding [src] together.")
|
||||
if(GIRDER_DISASSEMBLED)
|
||||
. += "<span class='notice'>[src] is disassembled! You probably shouldn't be able to see this examine message.</span>"
|
||||
. += span_notice("[src] is disassembled! You probably shouldn't be able to see this examine message.")
|
||||
|
||||
/obj/structure/girder/attackby(obj/item/W, mob/user, params)
|
||||
var/platingmodifier = 1
|
||||
@@ -37,49 +37,49 @@
|
||||
add_fingerprint(user)
|
||||
|
||||
if(istype(W, /obj/item/gun/energy/plasmacutter))
|
||||
to_chat(user, "<span class='notice'>You start slicing apart the girder...</span>")
|
||||
to_chat(user, span_notice("You start slicing apart the girder..."))
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
to_chat(user, "<span class='notice'>You slice apart the girder.</span>")
|
||||
to_chat(user, span_notice("You slice apart the girder."))
|
||||
var/obj/item/stack/sheet/iron/M = new (loc, 2)
|
||||
M.add_fingerprint(user)
|
||||
qdel(src)
|
||||
|
||||
else if(istype(W, /obj/item/stack))
|
||||
if(iswallturf(loc))
|
||||
to_chat(user, "<span class='warning'>There is already a wall present!</span>")
|
||||
to_chat(user, span_warning("There is already a wall present!"))
|
||||
return
|
||||
if(!isfloorturf(src.loc))
|
||||
to_chat(user, "<span class='warning'>A floor must be present to build a false wall!</span>")
|
||||
to_chat(user, span_warning("A floor must be present to build a false wall!"))
|
||||
return
|
||||
if (locate(/obj/structure/falsewall) in src.loc.contents)
|
||||
to_chat(user, "<span class='warning'>There is already a false wall present!</span>")
|
||||
to_chat(user, span_warning("There is already a false wall present!"))
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/stack/rods))
|
||||
var/obj/item/stack/rods/S = W
|
||||
if(state == GIRDER_DISPLACED)
|
||||
if(S.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need at least two rods to create a false wall!</span>")
|
||||
to_chat(user, span_warning("You need at least two rods to create a false wall!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start building a reinforced false wall...</span>")
|
||||
to_chat(user, span_notice("You start building a reinforced false wall..."))
|
||||
if(do_after(user, 20, target = src))
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
to_chat(user, "<span class='notice'>You create a false wall. Push on it to open or close the passage.</span>")
|
||||
to_chat(user, span_notice("You create a false wall. Push on it to open or close the passage."))
|
||||
var/obj/structure/falsewall/iron/FW = new (loc)
|
||||
transfer_fingerprints_to(FW)
|
||||
qdel(src)
|
||||
else
|
||||
if(S.get_amount() < 5)
|
||||
to_chat(user, "<span class='warning'>You need at least five rods to add plating!</span>")
|
||||
to_chat(user, span_warning("You need at least five rods to add plating!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding plating...</span>")
|
||||
to_chat(user, span_notice("You start adding plating..."))
|
||||
if(do_after(user, 40, target = src))
|
||||
if(S.get_amount() < 5)
|
||||
return
|
||||
S.use(5)
|
||||
to_chat(user, "<span class='notice'>You add the plating.</span>")
|
||||
to_chat(user, span_notice("You add the plating."))
|
||||
var/turf/T = get_turf(src)
|
||||
T.PlaceOnTop(/turf/closed/wall/mineral/iron)
|
||||
transfer_fingerprints_to(T)
|
||||
@@ -93,30 +93,30 @@
|
||||
if(istype(S, /obj/item/stack/sheet/iron))
|
||||
if(state == GIRDER_DISPLACED)
|
||||
if(S.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need two sheets of iron to create a false wall!</span>")
|
||||
to_chat(user, span_warning("You need two sheets of iron to create a false wall!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start building a false wall...</span>")
|
||||
to_chat(user, span_notice("You start building a false wall..."))
|
||||
if(do_after(user, 20*platingmodifier, target = src))
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
to_chat(user, "<span class='notice'>You create a false wall. Push on it to open or close the passage.</span>")
|
||||
to_chat(user, span_notice("You create a false wall. Push on it to open or close the passage."))
|
||||
var/obj/structure/falsewall/F = new (loc)
|
||||
transfer_fingerprints_to(F)
|
||||
qdel(src)
|
||||
else if(state == GIRDER_REINF)
|
||||
to_chat(user, "<span class='warning'>You can't finish a reinforced girder with regular iron. You need a plasteel sheet for that.</span>")
|
||||
to_chat(user, span_warning("You can't finish a reinforced girder with regular iron. You need a plasteel sheet for that."))
|
||||
return
|
||||
else
|
||||
if(S.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need two sheets of iron to finish a wall!</span>")
|
||||
to_chat(user, span_warning("You need two sheets of iron to finish a wall!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding plating...</span>")
|
||||
to_chat(user, span_notice("You start adding plating..."))
|
||||
if (do_after(user, 40*platingmodifier, target = src))
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
to_chat(user, "<span class='notice'>You add the plating.</span>")
|
||||
to_chat(user, span_notice("You add the plating."))
|
||||
var/turf/T = get_turf(src)
|
||||
T.PlaceOnTop(/turf/closed/wall)
|
||||
transfer_fingerprints_to(T)
|
||||
@@ -126,26 +126,26 @@
|
||||
if(istype(S, /obj/item/stack/sheet/plasteel))
|
||||
if(state == GIRDER_DISPLACED)
|
||||
if(S.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need at least two sheets to create a false wall!</span>")
|
||||
to_chat(user, span_warning("You need at least two sheets to create a false wall!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start building a reinforced false wall...</span>")
|
||||
to_chat(user, span_notice("You start building a reinforced false wall..."))
|
||||
if(do_after(user, 20, target = src))
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
to_chat(user, "<span class='notice'>You create a reinforced false wall. Push on it to open or close the passage.</span>")
|
||||
to_chat(user, span_notice("You create a reinforced false wall. Push on it to open or close the passage."))
|
||||
var/obj/structure/falsewall/reinforced/FW = new (loc)
|
||||
transfer_fingerprints_to(FW)
|
||||
qdel(src)
|
||||
else if(state == GIRDER_REINF)
|
||||
if(S.get_amount() < 1)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start finalizing the reinforced wall...</span>")
|
||||
to_chat(user, span_notice("You start finalizing the reinforced wall..."))
|
||||
if(do_after(user, 50*platingmodifier, target = src))
|
||||
if(S.get_amount() < 1)
|
||||
return
|
||||
S.use(1)
|
||||
to_chat(user, "<span class='notice'>You fully reinforce the wall.</span>")
|
||||
to_chat(user, span_notice("You fully reinforce the wall."))
|
||||
var/turf/T = get_turf(src)
|
||||
T.PlaceOnTop(/turf/closed/wall/r_wall)
|
||||
transfer_fingerprints_to(T)
|
||||
@@ -154,12 +154,12 @@
|
||||
else
|
||||
if(S.get_amount() < 1)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start reinforcing the girder...</span>")
|
||||
to_chat(user, span_notice("You start reinforcing the girder..."))
|
||||
if(do_after(user, 60*platingmodifier, target = src))
|
||||
if(S.get_amount() < 1)
|
||||
return
|
||||
S.use(1)
|
||||
to_chat(user, "<span class='notice'>You reinforce the girder.</span>")
|
||||
to_chat(user, span_notice("You reinforce the girder."))
|
||||
var/obj/structure/girder/reinforced/R = new (loc)
|
||||
transfer_fingerprints_to(R)
|
||||
qdel(src)
|
||||
@@ -170,29 +170,29 @@
|
||||
if(state == GIRDER_DISPLACED)
|
||||
var/falsewall_type = text2path("/obj/structure/falsewall/[M]")
|
||||
if(!falsewall_type)
|
||||
to_chat(user, "<span class='warning'>You can't seem to figure out how to make a false wall with [S]!</span>")
|
||||
to_chat(user, span_warning("You can't seem to figure out how to make a false wall with [S]!"))
|
||||
return
|
||||
if(S.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need at least two sheets to create a false wall!</span>")
|
||||
to_chat(user, span_warning("You need at least two sheets to create a false wall!"))
|
||||
return
|
||||
if(do_after(user, 20, target = src))
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
to_chat(user, "<span class='notice'>You create a false wall. Push on it to open or close the passage.</span>")
|
||||
to_chat(user, span_notice("You create a false wall. Push on it to open or close the passage."))
|
||||
var/obj/structure/falsewall/FW = new falsewall_type (loc)
|
||||
transfer_fingerprints_to(FW)
|
||||
qdel(src)
|
||||
else
|
||||
if(S.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need at least two sheets to add plating!</span>")
|
||||
to_chat(user, span_warning("You need at least two sheets to add plating!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding plating...</span>")
|
||||
to_chat(user, span_notice("You start adding plating..."))
|
||||
if (do_after(user, 40, target = src))
|
||||
if(S.get_amount() < 2)
|
||||
return
|
||||
S.use(2)
|
||||
to_chat(user, "<span class='notice'>You add the plating.</span>")
|
||||
to_chat(user, span_notice("You add the plating."))
|
||||
var/turf/T = get_turf(src)
|
||||
if(S.walltype)
|
||||
T.PlaceOnTop(S.walltype)
|
||||
@@ -215,7 +215,7 @@
|
||||
if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds.
|
||||
if(!user.transferItemToLoc(P, drop_location()))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You fit the pipe into \the [src].</span>")
|
||||
to_chat(user, span_notice("You fit the pipe into \the [src]."))
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -226,34 +226,34 @@
|
||||
|
||||
. = FALSE
|
||||
if(state == GIRDER_DISPLACED)
|
||||
user.visible_message("<span class='warning'>[user] disassembles the girder.</span>",
|
||||
"<span class='notice'>You start to disassemble the girder...</span>",
|
||||
"<span class='hear'>You hear clanking and banging noises.</span>")
|
||||
user.visible_message(span_warning("[user] disassembles the girder."),
|
||||
span_notice("You start to disassemble the girder..."),
|
||||
span_hear("You hear clanking and banging noises."))
|
||||
if(tool.use_tool(src, user, 40, volume=100))
|
||||
if(state != GIRDER_DISPLACED)
|
||||
return
|
||||
state = GIRDER_DISASSEMBLED
|
||||
to_chat(user, "<span class='notice'>You disassemble the girder.</span>")
|
||||
to_chat(user, span_notice("You disassemble the girder."))
|
||||
var/obj/item/stack/sheet/iron/M = new (loc, 2)
|
||||
M.add_fingerprint(user)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
|
||||
else if(state == GIRDER_REINF)
|
||||
to_chat(user, "<span class='notice'>You start unsecuring support struts...</span>")
|
||||
to_chat(user, span_notice("You start unsecuring support struts..."))
|
||||
if(tool.use_tool(src, user, 40, volume=100))
|
||||
if(state != GIRDER_REINF)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You unsecure the support struts.</span>")
|
||||
to_chat(user, span_notice("You unsecure the support struts."))
|
||||
state = GIRDER_REINF_STRUTS
|
||||
return TRUE
|
||||
|
||||
else if(state == GIRDER_REINF_STRUTS)
|
||||
to_chat(user, "<span class='notice'>You start securing support struts...</span>")
|
||||
to_chat(user, span_notice("You start securing support struts..."))
|
||||
if(tool.use_tool(src, user, 40, volume=100))
|
||||
if(state != GIRDER_REINF_STRUTS)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You secure the support struts.</span>")
|
||||
to_chat(user, span_notice("You secure the support struts."))
|
||||
state = GIRDER_REINF
|
||||
return TRUE
|
||||
|
||||
@@ -261,9 +261,9 @@
|
||||
/obj/structure/girder/wirecutter_act(mob/user, obj/item/tool)
|
||||
. = ..()
|
||||
if(state == GIRDER_REINF_STRUTS)
|
||||
to_chat(user, "<span class='notice'>You start removing the inner grille...</span>")
|
||||
to_chat(user, span_notice("You start removing the inner grille..."))
|
||||
if(tool.use_tool(src, user, 40, volume=100))
|
||||
to_chat(user, "<span class='notice'>You remove the inner grille.</span>")
|
||||
to_chat(user, span_notice("You remove the inner grille."))
|
||||
new /obj/item/stack/sheet/plasteel(get_turf(src))
|
||||
var/obj/structure/girder/G = new (loc)
|
||||
transfer_fingerprints_to(G)
|
||||
@@ -274,19 +274,19 @@
|
||||
. = ..()
|
||||
if(state == GIRDER_DISPLACED)
|
||||
if(!isfloorturf(loc))
|
||||
to_chat(user, "<span class='warning'>A floor must be present to secure the girder!</span>")
|
||||
to_chat(user, span_warning("A floor must be present to secure the girder!"))
|
||||
|
||||
to_chat(user, "<span class='notice'>You start securing the girder...</span>")
|
||||
to_chat(user, span_notice("You start securing the girder..."))
|
||||
if(tool.use_tool(src, user, 40, volume=100))
|
||||
to_chat(user, "<span class='notice'>You secure the girder.</span>")
|
||||
to_chat(user, span_notice("You secure the girder."))
|
||||
var/obj/structure/girder/G = new (loc)
|
||||
transfer_fingerprints_to(G)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
else if(state == GIRDER_NORMAL && can_displace)
|
||||
to_chat(user, "<span class='notice'>You start unsecuring the girder...</span>")
|
||||
to_chat(user, span_notice("You start unsecuring the girder..."))
|
||||
if(tool.use_tool(src, user, 40, volume=100))
|
||||
to_chat(user, "<span class='notice'>You unsecure the girder.</span>")
|
||||
to_chat(user, span_notice("You unsecure the girder."))
|
||||
var/obj/structure/girder/displaced/D = new (loc)
|
||||
transfer_fingerprints_to(D)
|
||||
qdel(src)
|
||||
@@ -341,7 +341,7 @@
|
||||
/obj/structure/girder/cult/attackby(obj/item/W, mob/user, params)
|
||||
add_fingerprint(user)
|
||||
if(istype(W, /obj/item/melee/cultblade/dagger) && IS_CULTIST(user)) //Cultists can demolish cult girders instantly with their tomes
|
||||
user.visible_message("<span class='warning'>[user] strikes [src] with [W]!</span>", "<span class='notice'>You demolish [src].</span>")
|
||||
user.visible_message(span_warning("[user] strikes [src] with [W]!"), span_notice("You demolish [src]."))
|
||||
new /obj/item/stack/sheet/runed_metal(drop_location(), 1)
|
||||
qdel(src)
|
||||
|
||||
@@ -349,9 +349,9 @@
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You start slicing apart the girder...</span>")
|
||||
to_chat(user, span_notice("You start slicing apart the girder..."))
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You slice apart the girder.</span>")
|
||||
to_chat(user, span_notice("You slice apart the girder."))
|
||||
var/obj/item/stack/sheet/runed_metal/R = new(drop_location(), 1)
|
||||
transfer_fingerprints_to(R)
|
||||
qdel(src)
|
||||
@@ -359,13 +359,13 @@
|
||||
else if(istype(W, /obj/item/stack/sheet/runed_metal))
|
||||
var/obj/item/stack/sheet/runed_metal/R = W
|
||||
if(R.get_amount() < 1)
|
||||
to_chat(user, "<span class='warning'>You need at least one sheet of runed metal to construct a runed wall!</span>")
|
||||
to_chat(user, span_warning("You need at least one sheet of runed metal to construct a runed wall!"))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] begins laying runed metal on [src]...</span>", "<span class='notice'>You begin constructing a runed wall...</span>")
|
||||
user.visible_message(span_notice("[user] begins laying runed metal on [src]..."), span_notice("You begin constructing a runed wall..."))
|
||||
if(do_after(user, 50, target = src))
|
||||
if(R.get_amount() < 1)
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] plates [src] with runed metal.</span>", "<span class='notice'>You construct a runed wall.</span>")
|
||||
user.visible_message(span_notice("[user] plates [src] with runed metal."), span_notice("You construct a runed wall."))
|
||||
R.use(1)
|
||||
var/turf/T = get_turf(src)
|
||||
T.PlaceOnTop(/turf/closed/wall/mineral/cult)
|
||||
@@ -397,12 +397,12 @@
|
||||
var/turf/T = get_turf(src)
|
||||
switch(passed_mode)
|
||||
if(RCD_FLOORWALL)
|
||||
to_chat(user, "<span class='notice'>You finish a wall.</span>")
|
||||
to_chat(user, span_notice("You finish a wall."))
|
||||
T.PlaceOnTop(/turf/closed/wall)
|
||||
qdel(src)
|
||||
return TRUE
|
||||
if(RCD_DECONSTRUCT)
|
||||
to_chat(user, "<span class='notice'>You deconstruct the girder.</span>")
|
||||
to_chat(user, span_notice("You deconstruct the girder."))
|
||||
qdel(src)
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -419,9 +419,9 @@
|
||||
if(W.tool_behaviour == TOOL_WELDER)
|
||||
if(!W.tool_start_check(user, amount = 0))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start slicing apart [src]...</span>")
|
||||
to_chat(user, span_notice("You start slicing apart [src]..."))
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You slice apart [src].</span>")
|
||||
to_chat(user, span_notice("You slice apart [src]."))
|
||||
var/obj/item/stack/sheet/bronze/B = new(drop_location(), 2)
|
||||
transfer_fingerprints_to(B)
|
||||
qdel(src)
|
||||
@@ -429,13 +429,13 @@
|
||||
else if(istype(W, /obj/item/stack/sheet/bronze))
|
||||
var/obj/item/stack/sheet/bronze/B = W
|
||||
if(B.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need at least two bronze sheets to build a bronze wall!</span>")
|
||||
to_chat(user, span_warning("You need at least two bronze sheets to build a bronze wall!"))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] begins plating [src] with bronze...</span>", "<span class='notice'>You begin constructing a bronze wall...</span>")
|
||||
user.visible_message(span_notice("[user] begins plating [src] with bronze..."), span_notice("You begin constructing a bronze wall..."))
|
||||
if(do_after(user, 50, target = src))
|
||||
if(B.get_amount() < 2)
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] plates [src] with bronze!</span>", "<span class='notice'>You construct a bronze wall.</span>")
|
||||
user.visible_message(span_notice("[user] plates [src] with bronze!"), span_notice("You construct a bronze wall."))
|
||||
B.use(2)
|
||||
var/turf/T = get_turf(src)
|
||||
T.PlaceOnTop(/turf/closed/wall/mineral/bronze)
|
||||
|
||||
@@ -46,9 +46,9 @@
|
||||
/obj/structure/grille/examine(mob/user)
|
||||
. = ..()
|
||||
if(anchored)
|
||||
. += "<span class='notice'>It's secured in place with <b>screws</b>. The rods look like they could be <b>cut</b> through.</span>"
|
||||
. += span_notice("It's secured in place with <b>screws</b>. The rods look like they could be <b>cut</b> through.")
|
||||
if(!anchored)
|
||||
. += "<span class='notice'>The anchoring screws are <i>unscrewed</i>. The rods look like they could be <b>cut</b> through.</span>"
|
||||
. += span_notice("The anchoring screws are <i>unscrewed</i>. The rods look like they could be <b>cut</b> through.")
|
||||
|
||||
/obj/structure/grille/rcd_vals(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
switch(the_rcd.mode)
|
||||
@@ -71,7 +71,7 @@
|
||||
/obj/structure/grille/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
|
||||
switch(passed_mode)
|
||||
if(RCD_DECONSTRUCT)
|
||||
to_chat(user, "<span class='notice'>You deconstruct the grille.</span>")
|
||||
to_chat(user, span_notice("You deconstruct the grille."))
|
||||
qdel(src)
|
||||
return TRUE
|
||||
if(RCD_WINDOWGRILLE)
|
||||
@@ -80,7 +80,7 @@
|
||||
var/turf/T = loc
|
||||
|
||||
if(repair_grille())
|
||||
to_chat(user, "<span class='notice'>You rebuild the broken grille.</span>")
|
||||
to_chat(user, span_notice("You rebuild the broken grille."))
|
||||
|
||||
if(!clear_tile(user))
|
||||
return FALSE
|
||||
@@ -90,7 +90,7 @@
|
||||
var/obj/structure/window/window_path = the_rcd.window_type
|
||||
if(!valid_window_location(T, user.dir, is_fulltile = initial(window_path.fulltile)))
|
||||
return FALSE
|
||||
to_chat(user, "<span class='notice'>You construct the window.</span>")
|
||||
to_chat(user, span_notice("You construct the window."))
|
||||
var/obj/structure/window/WD = new the_rcd.window_type(T, user.dir)
|
||||
WD.set_anchored(TRUE)
|
||||
return TRUE
|
||||
@@ -111,7 +111,7 @@
|
||||
if(!unanchored_items_on_tile)
|
||||
return TRUE
|
||||
|
||||
to_chat(user, "<span class='notice'>You move [unanchored_items_on_tile == 1 ? "[last_item_moved]" : "some things"] out of the way.</span>")
|
||||
to_chat(user, span_notice("You move [unanchored_items_on_tile == 1 ? "[last_item_moved]" : "some things"] out of the way."))
|
||||
|
||||
if(unanchored_items_on_tile - CLEAR_TILE_MOVE_LIMIT > 0)
|
||||
to_chat(user, "<span class ='warning'>There's still too much stuff in the way!</span>")
|
||||
@@ -149,7 +149,7 @@
|
||||
return
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(src, ATTACK_EFFECT_KICK)
|
||||
user.visible_message("<span class='warning'>[user] hits [src].</span>", null, null, COMBAT_MESSAGE_RANGE)
|
||||
user.visible_message(span_warning("[user] hits [src]."), null, null, COMBAT_MESSAGE_RANGE)
|
||||
log_combat(user, src, "hit")
|
||||
if(!shock(user, 70))
|
||||
take_damage(rand(5,10), BRUTE, MELEE, 1)
|
||||
@@ -157,7 +157,7 @@
|
||||
/obj/structure/grille/attack_alien(mob/living/user, list/modifiers)
|
||||
user.do_attack_animation(src)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.visible_message("<span class='warning'>[user] mangles [src].</span>", null, null, COMBAT_MESSAGE_RANGE)
|
||||
user.visible_message(span_warning("[user] mangles [src]."), null, null, COMBAT_MESSAGE_RANGE)
|
||||
if(!shock(user, 70))
|
||||
take_damage(20, BRUTE, MELEE, 1)
|
||||
|
||||
@@ -182,14 +182,14 @@
|
||||
if(!shock(user, 90))
|
||||
W.play_tool_sound(src, 100)
|
||||
set_anchored(!anchored)
|
||||
user.visible_message("<span class='notice'>[user] [anchored ? "fastens" : "unfastens"] [src].</span>", \
|
||||
"<span class='notice'>You [anchored ? "fasten [src] to" : "unfasten [src] from"] the floor.</span>")
|
||||
user.visible_message(span_notice("[user] [anchored ? "fastens" : "unfastens"] [src]."), \
|
||||
span_notice("You [anchored ? "fasten [src] to" : "unfasten [src] from"] the floor."))
|
||||
return
|
||||
else if(istype(W, /obj/item/stack/rods) && broken)
|
||||
var/obj/item/stack/rods/R = W
|
||||
if(!shock(user, 90))
|
||||
user.visible_message("<span class='notice'>[user] rebuilds the broken grille.</span>", \
|
||||
"<span class='notice'>You rebuild the broken grille.</span>")
|
||||
user.visible_message(span_notice("[user] rebuilds the broken grille."), \
|
||||
span_notice("You rebuild the broken grille."))
|
||||
repair_grille()
|
||||
R.use(1)
|
||||
return
|
||||
@@ -199,18 +199,18 @@
|
||||
if (!broken)
|
||||
var/obj/item/stack/ST = W
|
||||
if (ST.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need at least two sheets of glass for that!</span>")
|
||||
to_chat(user, span_warning("You need at least two sheets of glass for that!"))
|
||||
return
|
||||
var/dir_to_set = SOUTHWEST
|
||||
if(!anchored)
|
||||
to_chat(user, "<span class='warning'>[src] needs to be fastened to the floor first!</span>")
|
||||
to_chat(user, span_warning("[src] needs to be fastened to the floor first!"))
|
||||
return
|
||||
for(var/obj/structure/window/WINDOW in loc)
|
||||
to_chat(user, "<span class='warning'>There is already a window there!</span>")
|
||||
to_chat(user, span_warning("There is already a window there!"))
|
||||
return
|
||||
if(!clear_tile(user))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start placing the window...</span>")
|
||||
to_chat(user, span_notice("You start placing the window..."))
|
||||
if(do_after(user,20, target = src))
|
||||
if(!src.loc || !anchored) //Grille broken or unanchored while waiting
|
||||
return
|
||||
@@ -237,7 +237,7 @@
|
||||
WD.set_anchored(FALSE)
|
||||
WD.state = 0
|
||||
ST.use(2)
|
||||
to_chat(user, "<span class='notice'>You place [WD] on [src].</span>")
|
||||
to_chat(user, span_notice("You place [WD] on [src]."))
|
||||
return
|
||||
//window placing end
|
||||
|
||||
|
||||
@@ -35,16 +35,16 @@
|
||||
|
||||
/obj/structure/guillotine/attackby(obj/item/I, mob/user)
|
||||
if(istype(I, /obj/item/stack/sheet/plasteel))
|
||||
to_chat(user, "<span class='notice'>You start repairing the guillotine with the plasteel...</span>")
|
||||
to_chat(user, span_notice("You start repairing the guillotine with the plasteel..."))
|
||||
if(blade_sharpness<10)
|
||||
if(do_after(user,100,target=user))
|
||||
blade_sharpness = min(10,blade_sharpness+3)
|
||||
I.use(1)
|
||||
to_chat(user, "<span class='notice'>You repair the guillotine with the plasteel.</span>")
|
||||
to_chat(user, span_notice("You repair the guillotine with the plasteel."))
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You stop repairing the guillotine with the plasteel.</span>")
|
||||
to_chat(user, span_notice("You stop repairing the guillotine with the plasteel."))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>The guillotine is already fully repaired!</span>")
|
||||
to_chat(user, span_warning("The guillotine is already fully repaired!"))
|
||||
|
||||
/obj/structure/guillotine/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -84,8 +84,8 @@
|
||||
if (GUILLOTINE_BLADE_RAISED)
|
||||
if (LAZYLEN(buckled_mobs))
|
||||
if (user.combat_mode)
|
||||
user.visible_message("<span class='warning'>[user] begins to pull the lever!</span>",
|
||||
"<span class='warning'>You begin to the pull the lever.</span>")
|
||||
user.visible_message(span_warning("[user] begins to pull the lever!"),
|
||||
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)
|
||||
@@ -172,8 +172,8 @@
|
||||
blade_status = GUILLOTINE_BLADE_SHARPENING
|
||||
if(do_after(user, 7, target = src))
|
||||
blade_status = GUILLOTINE_BLADE_RAISED
|
||||
user.visible_message("<span class='notice'>[user] sharpens the large blade of the guillotine.</span>",
|
||||
"<span class='notice'>You sharpen the large blade of the guillotine.</span>")
|
||||
user.visible_message(span_notice("[user] sharpens the large blade of the guillotine."),
|
||||
span_notice("You sharpen the large blade of the guillotine."))
|
||||
blade_sharpness += 1
|
||||
playsound(src, 'sound/items/unsheath.ogg', 100, TRUE)
|
||||
return
|
||||
@@ -181,25 +181,25 @@
|
||||
blade_status = GUILLOTINE_BLADE_RAISED
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='warning'>The blade is sharp enough!</span>")
|
||||
to_chat(user, span_warning("The blade is sharp enough!"))
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need to raise the blade in order to sharpen it!</span>")
|
||||
to_chat(user, span_warning("You need to raise the blade in order to sharpen it!"))
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/guillotine/user_buckle_mob(mob/living/M, mob/user, check_loc = TRUE)
|
||||
if (!anchored)
|
||||
to_chat(usr, "<span class='warning'>[src] needs to be wrenched to the floor!</span>")
|
||||
to_chat(usr, span_warning("[src] needs to be wrenched to the floor!"))
|
||||
return FALSE
|
||||
|
||||
if (!istype(M, /mob/living/carbon/human))
|
||||
to_chat(usr, "<span class='warning'>It doesn't look like [M.p_they()] can fit into this properly!</span>")
|
||||
to_chat(usr, span_warning("It doesn't look like [M.p_they()] can fit into this properly!"))
|
||||
return FALSE // Can't decapitate non-humans
|
||||
|
||||
if (blade_status != GUILLOTINE_BLADE_RAISED)
|
||||
to_chat(usr, "<span class='warning'>You need to raise the blade before buckling someone in!</span>")
|
||||
to_chat(usr, span_warning("You need to raise the blade before buckling someone in!"))
|
||||
return FALSE
|
||||
|
||||
return ..(M, user, check_loc = FALSE) //check_loc = FALSE to allow moving people in from adjacent turfs
|
||||
@@ -239,7 +239,7 @@
|
||||
/obj/structure/guillotine/can_be_unfasten_wrench(mob/user, silent)
|
||||
if (LAZYLEN(buckled_mobs))
|
||||
if (!silent)
|
||||
to_chat(user, "<span class='warning'>Can't unfasten, someone's strapped in!</span>")
|
||||
to_chat(user, span_warning("Can't unfasten, someone's strapped in!"))
|
||||
return FAILED_UNFASTEN
|
||||
|
||||
if (current_action)
|
||||
|
||||
@@ -38,10 +38,10 @@
|
||||
if(LAZYLEN(contents) < capacity)
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You place [I] in [src].</span>")
|
||||
to_chat(user, span_notice("You place [I] in [src]."))
|
||||
update_appearance()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src] is full.</span>")
|
||||
to_chat(user, span_warning("[src] is full."))
|
||||
return
|
||||
|
||||
else if(!user.combat_mode)
|
||||
|
||||
@@ -72,5 +72,5 @@
|
||||
. = ..()
|
||||
if(.)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You take down [src].</span>")
|
||||
to_chat(user, span_notice("You take down [src]."))
|
||||
deconstruct(TRUE)
|
||||
|
||||
@@ -13,13 +13,13 @@
|
||||
var/datum/effect_system/smoke_spread/smoke = new
|
||||
smoke.set_up(2, loc)
|
||||
smoke.start()
|
||||
visible_message("<span class='boldannounce'>[src] warps in!</span>")
|
||||
visible_message(span_boldannounce("[src] warps in!"))
|
||||
playsound(src.loc, 'sound/effects/empulse.ogg', 25, TRUE)
|
||||
addtimer(CALLBACK(src, .proc/warpbots), rand(10, 600))
|
||||
|
||||
/obj/structure/hivebot_beacon/proc/warpbots()
|
||||
icon_state = "def_radar"
|
||||
visible_message("<span class='danger'>[src] turns on!</span>")
|
||||
visible_message(span_danger("[src] turns on!"))
|
||||
while(bot_amt > 0)
|
||||
bot_amt--
|
||||
switch(bot_type)
|
||||
@@ -30,7 +30,7 @@
|
||||
if("rapid")
|
||||
new /mob/living/simple_animal/hostile/hivebot/rapid(get_turf(src))
|
||||
sleep(100)
|
||||
visible_message("<span class='boldannounce'>[src] warps out!</span>")
|
||||
visible_message(span_boldannounce("[src] warps out!"))
|
||||
playsound(src.loc, 'sound/effects/empulse.ogg', 25, TRUE)
|
||||
qdel(src)
|
||||
return
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
|
||||
/obj/structure/holosign/barrier/medical/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>The biometric scanners are <b>[force_allaccess ? "off" : "on"]</b>.</span>"
|
||||
. += span_notice("The biometric scanners are <b>[force_allaccess ? "off" : "on"]</b>.")
|
||||
|
||||
/obj/structure/holosign/barrier/medical/CanAllowThrough(atom/movable/mover, turf/target)
|
||||
. = ..()
|
||||
@@ -177,7 +177,7 @@
|
||||
/obj/structure/holosign/barrier/medical/attack_hand(mob/living/user, list/modifiers)
|
||||
if(CanPass(user) && !user.combat_mode)
|
||||
force_allaccess = !force_allaccess
|
||||
to_chat(user, "<span class='warning'>You [force_allaccess ? "deactivate" : "activate"] the biometric scanners.</span>") //warning spans because you can make the station sick!
|
||||
to_chat(user, span_warning("You [force_allaccess ? "deactivate" : "activate"] the biometric scanners.")) //warning spans because you can make the station sick!
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ GLOBAL_LIST_INIT(ore_probability, list(
|
||||
*/
|
||||
/obj/structure/spawner/ice_moon/proc/destroy_effect()
|
||||
playsound(loc,'sound/effects/explosionfar.ogg', 200, TRUE)
|
||||
visible_message("<span class='boldannounce'>[src] collapses, sealing everything inside!</span>\n<span class='warning'>Ores fall out of the cave as it is destroyed!</span>")
|
||||
visible_message(span_boldannounce("[src] collapses, sealing everything inside!</span>\n<span class='warning'>Ores fall out of the cave as it is destroyed!"))
|
||||
|
||||
/**
|
||||
* Drops items after the spawner is destroyed
|
||||
@@ -116,7 +116,7 @@ GLOBAL_LIST_INIT(ore_probability, list(
|
||||
/obj/effect/collapsing_demonic_portal/Initialize()
|
||||
. = ..()
|
||||
playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, FALSE, 50, TRUE, TRUE)
|
||||
visible_message("<span class='boldannounce'>[src] begins to collapse, cutting it off from this world!</span>")
|
||||
visible_message(span_boldannounce("[src] begins to collapse, cutting it off from this world!"))
|
||||
animate(src, transform = matrix().Scale(0, 1), alpha = 50, time = 5 SECONDS)
|
||||
addtimer(CALLBACK(src, .proc/collapse), 5 SECONDS)
|
||||
|
||||
@@ -133,7 +133,7 @@ GLOBAL_LIST_INIT(ore_probability, list(
|
||||
*
|
||||
*/
|
||||
/obj/effect/collapsing_demonic_portal/proc/drop_loot()
|
||||
visible_message("<span class='warning'>Something slips out of [src]!</span>")
|
||||
visible_message(span_warning("Something slips out of [src]!"))
|
||||
var/loot = rand(1, 28)
|
||||
switch(loot)
|
||||
if(1)
|
||||
|
||||
@@ -205,7 +205,7 @@ GLOBAL_LIST_EMPTY(lifts)
|
||||
if(istype(bumped_atom, /obj/machinery/field))
|
||||
return
|
||||
|
||||
bumped_atom.visible_message("<span class='userdanger'>[src] crashes into the field violently!</span>")
|
||||
bumped_atom.visible_message(span_userdanger("[src] crashes into the field violently!"))
|
||||
for(var/obj/structure/industrial_lift/tram/tram_part as anything in lift_master_datum.lift_platforms)
|
||||
tram_part.travel_distance = 0
|
||||
tram_part.travelling = FALSE
|
||||
@@ -230,16 +230,16 @@ GLOBAL_LIST_EMPTY(lifts)
|
||||
destination = going
|
||||
if(going == DOWN)
|
||||
for(var/mob/living/crushed in destination.contents)
|
||||
to_chat(crushed, "<span class='userdanger'>You are crushed by [src]!</span>")
|
||||
to_chat(crushed, span_userdanger("You are crushed by [src]!"))
|
||||
crushed.gib(FALSE,FALSE,FALSE)//the nicest kind of gibbing, keeping everything intact.
|
||||
else if(going != UP) //can't really crush something upwards
|
||||
for(var/obj/structure/anchortrouble in destination.contents)
|
||||
if(!QDELETED(anchortrouble) && anchortrouble.anchored && (!istype(anchortrouble, /obj/structure/holosign)) && anchortrouble.layer >= GAS_PUMP_LAYER) //to avoid pipes, wires, etc
|
||||
playsound(src, 'sound/effects/bang.ogg', 50, TRUE)
|
||||
visible_message("<span class='notice'>[src] smashes through [anchortrouble]!</span>")
|
||||
visible_message(span_notice("[src] smashes through [anchortrouble]!"))
|
||||
anchortrouble.deconstruct(FALSE)
|
||||
for(var/mob/living/collided in destination.contents)
|
||||
to_chat(collided, "<span class='userdanger'>[src] collides into you!</span>")
|
||||
to_chat(collided, span_userdanger("[src] collides into you!"))
|
||||
playsound(src, 'sound/effects/splat.ogg', 50, TRUE)
|
||||
var/damage = rand(5,10)
|
||||
collided.apply_damage(2*damage, BRUTE, BODY_ZONE_HEAD)
|
||||
@@ -272,11 +272,11 @@ GLOBAL_LIST_EMPTY(lifts)
|
||||
if(lift_master_datum.Check_lift_move(DOWN))
|
||||
tool_list["Down"] = image(icon = 'icons/testing/turf_analysis.dmi', icon_state = "red_arrow", dir = SOUTH)
|
||||
if(!length(tool_list))
|
||||
to_chat(user, "<span class='warning'>[src] doesn't seem to able to move anywhere!</span>")
|
||||
to_chat(user, span_warning("[src] doesn't seem to able to move anywhere!"))
|
||||
add_fingerprint(user)
|
||||
return
|
||||
if(controls_locked)
|
||||
to_chat(user, "<span class='warning'>[src] has its controls locked! It must already be trying to do something!</span>")
|
||||
to_chat(user, span_warning("[src] has its controls locked! It must already be trying to do something!"))
|
||||
add_fingerprint(user)
|
||||
return
|
||||
var/result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, .proc/check_menu, user), require_near = TRUE, tooltips = TRUE)
|
||||
@@ -326,9 +326,9 @@ GLOBAL_LIST_EMPTY(lifts)
|
||||
|
||||
/obj/structure/industrial_lift/proc/show_fluff_message(going_up, mob/user)
|
||||
if(going_up)
|
||||
user.visible_message("<span class='notice'>[user] moves the lift upwards.</span>", "<span class='notice'>You move the lift upwards.</span>")
|
||||
user.visible_message(span_notice("[user] moves the lift upwards."), span_notice("You move the lift upwards."))
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] moves the lift downwards.</span>", "<span class='notice'>You move the lift downwards.</span>")
|
||||
user.visible_message(span_notice("[user] moves the lift downwards."), span_notice("You move the lift downwards."))
|
||||
|
||||
/obj/structure/industrial_lift/Destroy()
|
||||
GLOB.lifts.Remove(src)
|
||||
|
||||
@@ -22,24 +22,24 @@
|
||||
|
||||
/obj/structure/janitorialcart/proc/wet_mop(obj/item/mop, mob/user)
|
||||
if(reagents.total_volume < 1)
|
||||
to_chat(user, "<span class='warning'>[src] is out of water!</span>")
|
||||
to_chat(user, span_warning("[src] is out of water!"))
|
||||
return FALSE
|
||||
else
|
||||
var/obj/item/mop/M = mop
|
||||
reagents.trans_to(mop, M.mopcap, transfered_by = user)
|
||||
to_chat(user, "<span class='notice'>You wet [mop] in [src].</span>")
|
||||
to_chat(user, span_notice("You wet [mop] in [src]."))
|
||||
playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE)
|
||||
return TRUE
|
||||
|
||||
/obj/structure/janitorialcart/proc/put_in_cart(obj/item/I, mob/user)
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You put [I] into [src].</span>")
|
||||
to_chat(user, span_notice("You put [I] into [src]."))
|
||||
return
|
||||
|
||||
|
||||
/obj/structure/janitorialcart/attackby(obj/item/I, mob/user, params)
|
||||
var/fail_msg = "<span class='warning'>There is already one of those in [src]!</span>"
|
||||
var/fail_msg = span_warning("There is already one of those in [src]!")
|
||||
|
||||
if(istype(I, /obj/item/mop))
|
||||
var/obj/item/mop/m=I
|
||||
@@ -81,13 +81,13 @@
|
||||
signs++
|
||||
update_appearance()
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src] can't hold any more signs!</span>")
|
||||
to_chat(user, span_warning("[src] can't hold any more signs!"))
|
||||
else if(mybag)
|
||||
mybag.attackby(I, user)
|
||||
else if(I.tool_behaviour == TOOL_CROWBAR)
|
||||
user.visible_message("<span class='notice'>[user] begins to empty the contents of [src].</span>", "<span class='notice'>You begin to empty the contents of [src]...</span>")
|
||||
user.visible_message(span_notice("[user] begins to empty the contents of [src]."), span_notice("You begin to empty the contents of [src]..."))
|
||||
if(I.use_tool(src, user, 30))
|
||||
to_chat(usr, "<span class='notice'>You empty the contents of [src]'s bucket onto the floor.</span>")
|
||||
to_chat(usr, span_notice("You empty the contents of [src]'s bucket onto the floor."))
|
||||
reagents.expose(src.loc)
|
||||
src.reagents.clear_reagents()
|
||||
else
|
||||
@@ -124,37 +124,37 @@
|
||||
if(!mybag)
|
||||
return
|
||||
user.put_in_hands(mybag)
|
||||
to_chat(user, "<span class='notice'>You take [mybag] from [src].</span>")
|
||||
to_chat(user, span_notice("You take [mybag] from [src]."))
|
||||
mybag = null
|
||||
if("Mop")
|
||||
if(!mymop)
|
||||
return
|
||||
user.put_in_hands(mymop)
|
||||
to_chat(user, "<span class='notice'>You take [mymop] from [src].</span>")
|
||||
to_chat(user, span_notice("You take [mymop] from [src]."))
|
||||
mymop = null
|
||||
if("Broom")
|
||||
if(!mybroom)
|
||||
return
|
||||
user.put_in_hands(mybroom)
|
||||
to_chat(user, "<span class='notice'>You take [mybroom] from [src].</span>")
|
||||
to_chat(user, span_notice("You take [mybroom] from [src]."))
|
||||
mybroom = null
|
||||
if("Spray bottle")
|
||||
if(!myspray)
|
||||
return
|
||||
user.put_in_hands(myspray)
|
||||
to_chat(user, "<span class='notice'>You take [myspray] from [src].</span>")
|
||||
to_chat(user, span_notice("You take [myspray] from [src]."))
|
||||
myspray = null
|
||||
if("Light replacer")
|
||||
if(!myreplacer)
|
||||
return
|
||||
user.put_in_hands(myreplacer)
|
||||
to_chat(user, "<span class='notice'>You take [myreplacer] from [src].</span>")
|
||||
to_chat(user, span_notice("You take [myreplacer] from [src]."))
|
||||
myreplacer = null
|
||||
if("Sign")
|
||||
if(signs <= 0)
|
||||
return
|
||||
user.put_in_hands(sign)
|
||||
to_chat(user, "<span class='notice'>You take \a [sign] from [src].</span>")
|
||||
to_chat(user, span_notice("You take \a [sign] from [src]."))
|
||||
signs--
|
||||
else
|
||||
return
|
||||
|
||||
@@ -18,18 +18,18 @@
|
||||
var/obj/item/stack/rods/R = I
|
||||
if(R.get_amount() >= 4)
|
||||
R.use(4)
|
||||
to_chat(user, "<span class='notice'>You add spikes to the frame.</span>")
|
||||
to_chat(user, span_notice("You add spikes to the frame."))
|
||||
var/obj/F = new /obj/structure/kitchenspike(src.loc)
|
||||
transfer_fingerprints_to(F)
|
||||
qdel(src)
|
||||
else if(I.tool_behaviour == TOOL_WELDER)
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You begin cutting \the [src] apart...</span>")
|
||||
to_chat(user, span_notice("You begin cutting \the [src] apart..."))
|
||||
if(I.use_tool(src, user, 50, volume=50))
|
||||
visible_message("<span class='notice'>[user] slices apart \the [src].</span>",
|
||||
"<span class='notice'>You cut \the [src] apart with \the [I].</span>",
|
||||
"<span class='hear'>You hear welding.</span>")
|
||||
visible_message(span_notice("[user] slices apart \the [src]."),
|
||||
span_notice("You cut \the [src] apart with \the [I]."),
|
||||
span_hear("You hear welding."))
|
||||
new /obj/item/stack/sheet/iron(src.loc, 4)
|
||||
qdel(src)
|
||||
return
|
||||
@@ -52,11 +52,11 @@
|
||||
|
||||
/obj/structure/kitchenspike/crowbar_act(mob/living/user, obj/item/I)
|
||||
if(has_buckled_mobs())
|
||||
to_chat(user, "<span class='warning'>You can't do that while something's on the spike!</span>")
|
||||
to_chat(user, span_warning("You can't do that while something's on the spike!"))
|
||||
return TRUE
|
||||
|
||||
if(I.use_tool(src, user, 20, volume=100))
|
||||
to_chat(user, "<span class='notice'>You pry the spikes out of the frame.</span>")
|
||||
to_chat(user, span_notice("You pry the spikes out of the frame."))
|
||||
deconstruct(TRUE)
|
||||
return TRUE
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
if(user.pulling != L)
|
||||
return
|
||||
playsound(src.loc, 'sound/effects/splat.ogg', 25, TRUE)
|
||||
L.visible_message("<span class='danger'>[user] slams [L] onto the meat spike!</span>", "<span class='userdanger'>[user] slams you onto the meat spike!</span>", "<span class='hear'>You hear a squishy wet noise.</span>")
|
||||
L.visible_message(span_danger("[user] slams [L] onto the meat spike!"), span_userdanger("[user] slams you onto the meat spike!"), span_hear("You hear a squishy wet noise."))
|
||||
L.forceMove(drop_location())
|
||||
L.emote("scream")
|
||||
L.add_splatter_floor()
|
||||
@@ -98,23 +98,23 @@
|
||||
if(buckled_mob)
|
||||
var/mob/living/M = buckled_mob
|
||||
if(M != user)
|
||||
M.visible_message("<span class='notice'>[user] tries to pull [M] free of [src]!</span>",\
|
||||
"<span class='notice'>[user] is trying to pull you off [src], opening up fresh wounds!</span>",\
|
||||
"<span class='hear'>You hear a squishy wet noise.</span>")
|
||||
M.visible_message(span_notice("[user] tries to pull [M] free of [src]!"),\
|
||||
span_notice("[user] is trying to pull you off [src], opening up fresh wounds!"),\
|
||||
span_hear("You hear a squishy wet noise."))
|
||||
if(!do_after(user, 300, target = src))
|
||||
if(M?.buckled)
|
||||
M.visible_message("<span class='notice'>[user] fails to free [M]!</span>",\
|
||||
"<span class='notice'>[user] fails to pull you off of [src].</span>")
|
||||
M.visible_message(span_notice("[user] fails to free [M]!"),\
|
||||
span_notice("[user] fails to pull you off of [src]."))
|
||||
return
|
||||
|
||||
else
|
||||
M.visible_message("<span class='warning'>[M] struggles to break free from [src]!</span>",\
|
||||
"<span class='notice'>You struggle to break free from [src], exacerbating your wounds! (Stay still for two minutes.)</span>",\
|
||||
"<span class='hear'>You hear a wet squishing noise..</span>")
|
||||
M.visible_message(span_warning("[M] struggles to break free from [src]!"),\
|
||||
span_notice("You struggle to break free from [src], exacerbating your wounds! (Stay still for two minutes.)"),\
|
||||
span_hear("You hear a wet squishing noise.."))
|
||||
M.adjustBruteLoss(30)
|
||||
if(!do_after(M, 1200, target = src))
|
||||
if(M?.buckled)
|
||||
to_chat(M, "<span class='warning'>You fail to free yourself!</span>")
|
||||
to_chat(M, span_warning("You fail to free yourself!"))
|
||||
return
|
||||
if(!M.buckled)
|
||||
return
|
||||
@@ -126,7 +126,7 @@
|
||||
animate(M, transform = m180, time = 3)
|
||||
M.pixel_y = M.base_pixel_y + PIXEL_Y_OFFSET_LYING
|
||||
M.adjustBruteLoss(30)
|
||||
src.visible_message(text("<span class='danger'>[M] falls free of [src]!</span>"))
|
||||
src.visible_message(span_danger("[M] falls free of [src]!"))
|
||||
unbuckle_mob(M,force=1)
|
||||
M.emote("scream")
|
||||
M.AdjustParalyzed(20)
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
|
||||
/obj/structure/ladder/singularity_pull()
|
||||
if (!(resistance_flags & INDESTRUCTIBLE))
|
||||
visible_message("<span class='danger'>[src] is torn to pieces by the gravitational pull!</span>")
|
||||
visible_message(span_danger("[src] is torn to pieces by the gravitational pull!"))
|
||||
qdel(src)
|
||||
|
||||
/obj/structure/ladder/proc/travel(going_up, mob/user, is_ghost, obj/structure/ladder/ladder)
|
||||
@@ -103,7 +103,7 @@
|
||||
if (down)
|
||||
tool_list["Down"] = image(icon = 'icons/testing/turf_analysis.dmi', icon_state = "red_arrow", dir = SOUTH)
|
||||
if (!length(tool_list))
|
||||
to_chat(user, "<span class='warning'>[src] doesn't seem to lead anywhere!</span>")
|
||||
to_chat(user, span_warning("[src] doesn't seem to lead anywhere!"))
|
||||
return
|
||||
|
||||
var/result = show_radial_menu(user, src, tool_list, custom_check = CALLBACK(src, .proc/check_menu, user, is_ghost), require_near = !is_ghost, tooltips = TRUE)
|
||||
@@ -160,9 +160,9 @@
|
||||
|
||||
/obj/structure/ladder/proc/show_fluff_message(going_up, mob/user)
|
||||
if(going_up)
|
||||
user.visible_message("<span class='notice'>[user] climbs up [src].</span>", "<span class='notice'>You climb up [src].</span>")
|
||||
user.visible_message(span_notice("[user] climbs up [src]."), span_notice("You climb up [src]."))
|
||||
else
|
||||
user.visible_message("<span class='notice'>[user] climbs down [src].</span>", "<span class='notice'>You climb down [src].</span>")
|
||||
user.visible_message(span_notice("[user] climbs down [src]."), span_notice("You climb down [src]."))
|
||||
|
||||
|
||||
// Indestructible away mission ladders which link based on a mapped ID and height value rather than X/Y/Z.
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
. += deconstruction_hints(user)
|
||||
|
||||
/obj/structure/lattice/proc/deconstruction_hints(mob/user)
|
||||
return "<span class='notice'>The rods look like they could be <b>cut</b>. There's space for more <i>rods</i> or a <i>tile</i>.</span>"
|
||||
return span_notice("The rods look like they could be <b>cut</b>. There's space for more <i>rods</i> or a <i>tile</i>.")
|
||||
|
||||
/obj/structure/lattice/Initialize(mapload)
|
||||
. = ..()
|
||||
@@ -40,7 +40,7 @@
|
||||
if(resistance_flags & INDESTRUCTIBLE)
|
||||
return
|
||||
if(C.tool_behaviour == TOOL_WIRECUTTER)
|
||||
to_chat(user, "<span class='notice'>Slicing [name] joints ...</span>")
|
||||
to_chat(user, span_notice("Slicing [name] joints ..."))
|
||||
deconstruct()
|
||||
else
|
||||
var/turf/T = get_turf(src)
|
||||
@@ -57,7 +57,7 @@
|
||||
|
||||
/obj/structure/lattice/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
|
||||
if(passed_mode == RCD_FLOORWALL)
|
||||
to_chat(user, "<span class='notice'>You build a floor.</span>")
|
||||
to_chat(user, span_notice("You build a floor."))
|
||||
var/turf/T = src.loc
|
||||
if(isspaceturf(T))
|
||||
T.PlaceOnTop(/turf/open/floor/plating, flags = CHANGETURF_INHERIT_AIR)
|
||||
@@ -82,7 +82,7 @@
|
||||
obj_flags = CAN_BE_HIT | BLOCK_Z_OUT_DOWN | BLOCK_Z_IN_UP
|
||||
|
||||
/obj/structure/lattice/catwalk/deconstruction_hints(mob/user)
|
||||
return "<span class='notice'>The supporting rods look like they could be <b>cut</b>.</span>"
|
||||
return span_notice("The supporting rods look like they could be <b>cut</b>.")
|
||||
|
||||
/obj/structure/lattice/catwalk/Move()
|
||||
var/turf/T = loc
|
||||
@@ -111,16 +111,16 @@
|
||||
resistance_flags = FIRE_PROOF | LAVA_PROOF
|
||||
|
||||
/obj/structure/lattice/lava/deconstruction_hints(mob/user)
|
||||
return "<span class='notice'>The rods look like they could be <b>cut</b>, but the <i>heat treatment will shatter off</i>. There's space for a <i>tile</i>.</span>"
|
||||
return span_notice("The rods look like they could be <b>cut</b>, but the <i>heat treatment will shatter off</i>. There's space for a <i>tile</i>.")
|
||||
|
||||
/obj/structure/lattice/lava/attackby(obj/item/C, mob/user, params)
|
||||
. = ..()
|
||||
if(istype(C, /obj/item/stack/tile/iron))
|
||||
var/obj/item/stack/tile/iron/P = C
|
||||
if(P.use(1))
|
||||
to_chat(user, "<span class='notice'>You construct a floor plating, as lava settles around the rods.</span>")
|
||||
to_chat(user, span_notice("You construct a floor plating, as lava settles around the rods."))
|
||||
playsound(src, 'sound/weapons/genhit.ogg', 50, TRUE)
|
||||
new /turf/open/floor/plating(locate(x, y, z))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need one floor tile to build atop [src].</span>")
|
||||
to_chat(user, span_warning("You need one floor tile to build atop [src]."))
|
||||
return
|
||||
|
||||
@@ -54,13 +54,13 @@
|
||||
|
||||
/obj/structure/geyser/plunger_act(obj/item/plunger/P, mob/living/user, _reinforced)
|
||||
if(!_reinforced)
|
||||
to_chat(user, "<span class='warning'>The [P.name] isn't strong enough!</span>")
|
||||
to_chat(user, span_warning("The [P.name] isn't strong enough!"))
|
||||
return
|
||||
if(activated)
|
||||
to_chat(user, "<span class='warning'>The [name] is already active!</span>")
|
||||
to_chat(user, span_warning("The [name] is already active!"))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You start vigorously plunging [src]!</span>")
|
||||
to_chat(user, span_notice("You start vigorously plunging [src]!"))
|
||||
if(do_after(user, 50 * P.plunge_mod, target = src) && !activated)
|
||||
start_chemming()
|
||||
|
||||
@@ -69,10 +69,10 @@
|
||||
return ..() //this runs the plunger code
|
||||
|
||||
if(discovered)
|
||||
to_chat(user, "<span class='warning'>This geyser has already been discovered!</span>")
|
||||
to_chat(user, span_warning("This geyser has already been discovered!"))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You discovered the geyser and mark it on the GPS system!</span>")
|
||||
to_chat(user, span_notice("You discovered the geyser and mark it on the GPS system!"))
|
||||
if(discovery_message)
|
||||
to_chat(user, discovery_message)
|
||||
|
||||
@@ -87,7 +87,7 @@
|
||||
|
||||
var/obj/item/card/id/card = living.get_idcard()
|
||||
if(card)
|
||||
to_chat(user, "<span class='notice'>[point_value] mining points have been paid out!</span>")
|
||||
to_chat(user, span_notice("[point_value] mining points have been paid out!"))
|
||||
card.mining_points += point_value
|
||||
|
||||
/obj/structure/geyser/wittel
|
||||
@@ -158,7 +158,7 @@
|
||||
var/mob/living/carbon/H = hit_atom
|
||||
if(!H.wear_mask)
|
||||
H.equip_to_slot_if_possible(src, ITEM_SLOT_MASK)
|
||||
H.visible_message("<span class='warning'>The plunger slams into [H]'s face!</span>", "<span class='warning'>The plunger suctions to your face!</span>")
|
||||
H.visible_message(span_warning("The plunger slams into [H]'s face!"), span_warning("The plunger suctions to your face!"))
|
||||
|
||||
/obj/item/plunger/attack_self(mob/user)
|
||||
. = ..()
|
||||
@@ -167,10 +167,10 @@
|
||||
|
||||
if(!layer_mode)
|
||||
icon_state = initial(icon_state)
|
||||
to_chat(user, "<span class='notice'>You set the plunger to 'Plunger Mode'.</span>")
|
||||
to_chat(user, span_notice("You set the plunger to 'Plunger Mode'."))
|
||||
else
|
||||
icon_state = layer_mode_sprite
|
||||
to_chat(user, "<span class='notice'>You set the plunger to 'Layer Mode'.</span>")
|
||||
to_chat(user, span_notice("You set the plunger to 'Layer Mode'."))
|
||||
|
||||
playsound(src, 'sound/machines/click.ogg', 10, TRUE)
|
||||
|
||||
|
||||
@@ -80,8 +80,8 @@ GLOBAL_LIST_INIT(tendrils, list())
|
||||
/obj/effect/collapse/Initialize()
|
||||
. = ..()
|
||||
emitted_light = new(loc)
|
||||
visible_message("<span class='boldannounce'>The tendril writhes in fury as the earth around it begins to crack and break apart! Get back!</span>")
|
||||
visible_message("<span class='warning'>Something falls free of the tendril!</span>")
|
||||
visible_message(span_boldannounce("The tendril writhes in fury as the earth around it begins to crack and break apart! Get back!"))
|
||||
visible_message(span_warning("Something falls free of the tendril!"))
|
||||
playsound(loc,'sound/effects/tendril_destroyed.ogg', 200, FALSE, 50, TRUE, TRUE)
|
||||
addtimer(CALLBACK(src, .proc/collapse), 50)
|
||||
|
||||
@@ -93,7 +93,7 @@ GLOBAL_LIST_INIT(tendrils, list())
|
||||
for(var/mob/M in range(7,src))
|
||||
shake_camera(M, 15, 1)
|
||||
playsound(get_turf(src),'sound/effects/explosionfar.ogg', 200, TRUE)
|
||||
visible_message("<span class='boldannounce'>The tendril falls inward, the ground around it widening into a yawning chasm!</span>")
|
||||
visible_message(span_boldannounce("The tendril falls inward, the ground around it widening into a yawning chasm!"))
|
||||
for(var/turf/T in RANGE_TURFS(2,src))
|
||||
if(!T.density)
|
||||
T.TerraformTurf(/turf/open/chasm/lavaland, /turf/open/chasm/lavaland, flags = CHANGETURF_INHERIT_AIR)
|
||||
|
||||
@@ -35,14 +35,14 @@
|
||||
if(!user.mind)
|
||||
return
|
||||
if(user.mind in linked_minds)
|
||||
user.visible_message("<span class='notice'>[user] reaches out and pinches the flame of [src].</span>", "<span class='warning'>You sever the connection between yourself and [src].</span>")
|
||||
user.visible_message(span_notice("[user] reaches out and pinches the flame of [src]."), span_warning("You sever the connection between yourself and [src]."))
|
||||
linked_minds -= user.mind
|
||||
if(!linked_minds.len)
|
||||
REMOVE_TRAIT(src, TRAIT_MOVE_FLOATING, LIFECANDLE_TRAIT)
|
||||
else
|
||||
if(!linked_minds.len)
|
||||
ADD_TRAIT(src, TRAIT_MOVE_FLOATING, LIFECANDLE_TRAIT)
|
||||
user.visible_message("<span class='notice'>[user] touches [src]. It seems to respond to [user.p_their()] presence!</span>", "<span class='warning'>You create a connection between you and [src].</span>")
|
||||
user.visible_message(span_notice("[user] touches [src]. It seems to respond to [user.p_their()] presence!"), span_warning("You create a connection between you and [src]."))
|
||||
linked_minds |= user.mind
|
||||
|
||||
update_appearance()
|
||||
|
||||
@@ -25,15 +25,15 @@
|
||||
if(!istype(W))
|
||||
return FALSE
|
||||
if(!anchored)
|
||||
user.show_message("<span class='notice'>The loom needs to be wrenched down.</span>", MSG_VISUAL)
|
||||
user.show_message(span_notice("The loom needs to be wrenched down."), MSG_VISUAL)
|
||||
return FALSE
|
||||
if(W.amount < FABRIC_PER_SHEET)
|
||||
user.show_message("<span class='notice'>You need at least [FABRIC_PER_SHEET] units of fabric before using this.</span>", MSG_VISUAL)
|
||||
user.show_message(span_notice("You need at least [FABRIC_PER_SHEET] units of fabric before using this."), MSG_VISUAL)
|
||||
return FALSE
|
||||
user.show_message("<span class='notice'>You start weaving \the [W.name] through the loom..</span>", MSG_VISUAL)
|
||||
user.show_message(span_notice("You start weaving \the [W.name] through the loom.."), MSG_VISUAL)
|
||||
while(W.use_tool(src, user, W.pull_effort) && W.use(FABRIC_PER_SHEET))
|
||||
new W.loom_result(drop_location())
|
||||
user.show_message("<span class='notice'>You weave \the [W.name] into a workable fabric.</span>", MSG_VISUAL)
|
||||
user.show_message(span_notice("You weave \the [W.name] into a workable fabric."), MSG_VISUAL)
|
||||
return TRUE
|
||||
|
||||
#undef FABRIC_PER_SHEET
|
||||
|
||||
@@ -58,14 +58,14 @@ at the cost of risking a vicious bite.**/
|
||||
if(iscyborg(user) || isalien(user))
|
||||
return
|
||||
if(!CanReachInside(user))
|
||||
to_chat(user, "<span class='warning'>You need to lie down to reach into [src].</span>")
|
||||
to_chat(user, span_warning("You need to lie down to reach into [src]."))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You reach down into the cold water of the basin.</span>")
|
||||
to_chat(user, span_notice("You reach down into the cold water of the basin."))
|
||||
if(!do_after(user, 2 SECONDS, target = src))
|
||||
return
|
||||
if(hidden_item)
|
||||
user.put_in_hands(hidden_item)
|
||||
to_chat(user, "<span class='notice'>As you poke around inside [src] you feel the contours of something hidden below the murky waters.</span>\n<span class='nicegreen'>You retrieve [hidden_item] from [src].</span>")
|
||||
to_chat(user, span_notice("As you poke around inside [src] you feel the contours of something hidden below the murky waters.</span>\n<span class='nicegreen'>You retrieve [hidden_item] from [src]."))
|
||||
hidden_item = null
|
||||
return
|
||||
if(critter_infested && prob(50) && iscarbon(user))
|
||||
@@ -73,11 +73,11 @@ at the cost of risking a vicious bite.**/
|
||||
var/obj/item/bodypart/affecting = bite_victim.get_bodypart("[(user.active_hand_index % 2 == 0) ? "r" : "l" ]_arm")
|
||||
if(affecting?.receive_damage(30))
|
||||
|
||||
to_chat(user, "<span class='danger'>You feel a sharp as an unseen creature sinks it's [pick("fangs", "beak", "proboscis")] into your arm!</span>")
|
||||
to_chat(user, span_danger("You feel a sharp as an unseen creature sinks it's [pick("fangs", "beak", "proboscis")] into your arm!"))
|
||||
bite_victim.update_damage_overlays()
|
||||
playsound(src,'sound/weapons/bite.ogg', 70, TRUE)
|
||||
return
|
||||
to_chat(user, "<span class='warning'>You find nothing of value...</span>")
|
||||
to_chat(user, span_warning("You find nothing of value..."))
|
||||
|
||||
/obj/structure/moisture_trap/attackby(obj/item/I, mob/user, params)
|
||||
if(iscyborg(user) || isalien(user) || !CanReachInside(user))
|
||||
@@ -91,13 +91,13 @@ at the cost of risking a vicious bite.**/
|
||||
var/obj/item/reagent_containers/reagent_container = I
|
||||
if(reagent_container.is_open_container())
|
||||
reagent_container.reagents.add_reagent(/datum/reagent/water, min(reagent_container.volume - reagent_container.reagents.total_volume, reagent_container.amount_per_transfer_from_this))
|
||||
to_chat(user, "<span class='notice'>You fill [reagent_container] from [src].</span>")
|
||||
to_chat(user, span_notice("You fill [reagent_container] from [src]."))
|
||||
return
|
||||
if(hidden_item)
|
||||
to_chat(user, "<span class='warning'>There is already something inside [src].</span>")
|
||||
to_chat(user, span_warning("There is already something inside [src]."))
|
||||
return
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
to_chat(user, "<span class='warning'>\The [I] is stuck to your hand, you cannot put it in [src]!</span>")
|
||||
to_chat(user, span_warning("\The [I] is stuck to your hand, you cannot put it in [src]!"))
|
||||
return
|
||||
hidden_item = I
|
||||
to_chat(user, "<span class='notice'>You hide [I] inside the basin.</span>")
|
||||
to_chat(user, span_notice("You hide [I] inside the basin."))
|
||||
|
||||
@@ -156,38 +156,38 @@
|
||||
if(I.tool_behaviour != TOOL_MINING)
|
||||
return
|
||||
. = TRUE
|
||||
to_chat(user, "<span class='notice'>You start digging [src]...</span>")
|
||||
to_chat(user, span_notice("You start digging [src]..."))
|
||||
if(I.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You finish digging.</span>")
|
||||
to_chat(user, span_notice("You finish digging."))
|
||||
deconstruct(TRUE)
|
||||
|
||||
/obj/structure/mineral_door/welder_act(mob/living/user, obj/item/I) //override if the door is supposed to be flammable.
|
||||
..()
|
||||
. = TRUE
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='warning'>[src] is still firmly secured to the ground!</span>")
|
||||
to_chat(user, span_warning("[src] is still firmly secured to the ground!"))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] starts to weld apart [src]!</span>", "<span class='notice'>You start welding apart [src].</span>")
|
||||
user.visible_message(span_notice("[user] starts to weld apart [src]!"), span_notice("You start welding apart [src]."))
|
||||
if(!I.use_tool(src, user, 60, 5, 50))
|
||||
to_chat(user, "<span class='warning'>You failed to weld apart [src]!</span>")
|
||||
to_chat(user, span_warning("You failed to weld apart [src]!"))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] welded [src] into pieces!</span>", "<span class='notice'>You welded apart [src]!</span>")
|
||||
user.visible_message(span_notice("[user] welded [src] into pieces!"), span_notice("You welded apart [src]!"))
|
||||
deconstruct(TRUE)
|
||||
|
||||
/obj/structure/mineral_door/proc/crowbar_door(mob/living/user, obj/item/I) //if the door is flammable, call this in crowbar_act() so we can still decon it
|
||||
. = TRUE
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='warning'>[src] is still firmly secured to the ground!</span>")
|
||||
to_chat(user, span_warning("[src] is still firmly secured to the ground!"))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] starts to pry apart [src]!</span>", "<span class='notice'>You start prying apart [src].</span>")
|
||||
user.visible_message(span_notice("[user] starts to pry apart [src]!"), span_notice("You start prying apart [src]."))
|
||||
if(!I.use_tool(src, user, 60, volume = 50))
|
||||
to_chat(user, "<span class='warning'>You failed to pry apart [src]!</span>")
|
||||
to_chat(user, span_warning("You failed to pry apart [src]!"))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] pried [src] into pieces!</span>", "<span class='notice'>You pried apart [src]!</span>")
|
||||
user.visible_message(span_notice("[user] pried [src] into pieces!"), span_notice("You pried apart [src]!"))
|
||||
deconstruct(TRUE)
|
||||
|
||||
|
||||
@@ -326,7 +326,7 @@
|
||||
/obj/structure/mineral_door/paperframe/examine(mob/user)
|
||||
. = ..()
|
||||
if(obj_integrity < max_integrity)
|
||||
. += "<span class='info'>It looks a bit damaged, you may be able to fix it with some <b>paper</b>.</span>"
|
||||
. += span_info("It looks a bit damaged, you may be able to fix it with some <b>paper</b>.")
|
||||
|
||||
/obj/structure/mineral_door/paperframe/pickaxe_door(mob/living/user, obj/item/I)
|
||||
return
|
||||
@@ -343,11 +343,11 @@
|
||||
return
|
||||
|
||||
if((!user.combat_mode) && istype(I, /obj/item/paper) && (obj_integrity < max_integrity))
|
||||
user.visible_message("<span class='notice'>[user] starts to patch the holes in [src].</span>", "<span class='notice'>You start patching some of the holes in [src]!</span>")
|
||||
user.visible_message(span_notice("[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, src))
|
||||
obj_integrity = min(obj_integrity+4,max_integrity)
|
||||
qdel(I)
|
||||
user.visible_message("<span class='notice'>[user] patches some of the holes in [src].</span>", "<span class='notice'>You patch some of the holes in [src]!</span>")
|
||||
user.visible_message(span_notice("[user] patches some of the holes in [src]."), span_notice("You patch some of the holes in [src]!"))
|
||||
return TRUE
|
||||
|
||||
return ..()
|
||||
|
||||
@@ -58,7 +58,7 @@
|
||||
if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
|
||||
return //no tele-grooming
|
||||
if(HAS_TRAIT(H, TRAIT_BALD))
|
||||
to_chat(H, "<span class='notice'>If only growing back hair were that easy for you...</span>")
|
||||
to_chat(H, span_notice("If only growing back hair were that easy for you..."))
|
||||
if(new_style)
|
||||
H.hairstyle = new_style
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
|
||||
. = ..()
|
||||
if(broken) // breaking a mirror truly gets you bad luck!
|
||||
to_chat(user, "<span class='warning'>A chill runs down your spine as [src] shatters...</span>")
|
||||
to_chat(user, span_warning("A chill runs down your spine as [src] shatters..."))
|
||||
user.AddComponent(/datum/component/omen, silent=TRUE) // we have our own message
|
||||
|
||||
/obj/structure/mirror/bullet_act(obj/projectile/P)
|
||||
@@ -85,7 +85,7 @@
|
||||
. = ..()
|
||||
if(broken) // breaking a mirror truly gets you bad luck!
|
||||
var/mob/living/unlucky_dude = P.firer
|
||||
to_chat(unlucky_dude, "<span class='warning'>A chill runs down your spine as [src] shatters...</span>")
|
||||
to_chat(unlucky_dude, span_warning("A chill runs down your spine as [src] shatters..."))
|
||||
unlucky_dude.AddComponent(/datum/component/omen, silent=TRUE) // we have our own message
|
||||
|
||||
/obj/structure/mirror/obj_break(damage_flag, mapload)
|
||||
@@ -116,9 +116,9 @@
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return TRUE
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin repairing [src]...</span>")
|
||||
to_chat(user, span_notice("You begin repairing [src]..."))
|
||||
if(I.use_tool(src, user, 10, volume=50))
|
||||
to_chat(user, "<span class='notice'>You repair [src].</span>")
|
||||
to_chat(user, span_notice("You repair [src]."))
|
||||
broken = 0
|
||||
icon_state = initial(icon_state)
|
||||
desc = initial(desc)
|
||||
@@ -218,7 +218,7 @@
|
||||
H.dna.features["mcolor"] = sanitize_hexcolor(new_mutantcolor)
|
||||
|
||||
else
|
||||
to_chat(H, "<span class='notice'>Invalid color. Your color is not bright enough.</span>")
|
||||
to_chat(H, span_notice("Invalid color. Your color is not bright enough."))
|
||||
|
||||
H.update_body()
|
||||
H.update_hair()
|
||||
@@ -234,7 +234,7 @@
|
||||
return
|
||||
H.gender = FEMALE
|
||||
H.body_type = FEMALE
|
||||
to_chat(H, "<span class='notice'>Man, you feel like a woman!</span>")
|
||||
to_chat(H, span_notice("Man, you feel like a woman!"))
|
||||
else
|
||||
return
|
||||
|
||||
@@ -244,7 +244,7 @@
|
||||
return
|
||||
H.gender = MALE
|
||||
H.body_type = MALE
|
||||
to_chat(H, "<span class='notice'>Whoa man, you feel like a man!</span>")
|
||||
to_chat(H, span_notice("Whoa man, you feel like a man!"))
|
||||
else
|
||||
return
|
||||
H.dna.update_ui_block(DNA_GENDER_BLOCK)
|
||||
|
||||
@@ -14,10 +14,10 @@
|
||||
/obj/structure/mopbucket/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/mop))
|
||||
if(reagents.total_volume < 1)
|
||||
to_chat(user, "<span class='warning'>[src] is out of water!</span>")
|
||||
to_chat(user, span_warning("[src] is out of water!"))
|
||||
else
|
||||
reagents.trans_to(I, 5, transfered_by = user)
|
||||
to_chat(user, "<span class='notice'>You wet [I] in [src].</span>")
|
||||
to_chat(user, span_notice("You wet [I] in [src]."))
|
||||
playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE)
|
||||
update_appearance()
|
||||
else
|
||||
|
||||
@@ -50,7 +50,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
if(locked)
|
||||
if(message_cooldown <= world.time)
|
||||
message_cooldown = world.time + 50
|
||||
to_chat(user, "<span class='warning'>[src]'s door won't budge!</span>")
|
||||
to_chat(user, span_warning("[src]'s door won't budge!"))
|
||||
return
|
||||
open()
|
||||
|
||||
@@ -62,7 +62,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
if(.)
|
||||
return
|
||||
if(locked)
|
||||
to_chat(user, "<span class='danger'>It's locked.</span>")
|
||||
to_chat(user, span_danger("It's locked."))
|
||||
return
|
||||
if(!connected)
|
||||
to_chat(user, "That doesn't appear to have a tray.")
|
||||
@@ -82,7 +82,7 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
add_fingerprint(user)
|
||||
if(istype(P, /obj/item/pen))
|
||||
if(!user.is_literate())
|
||||
to_chat(user, "<span class='notice'>You scribble illegibly on the side of [src]!</span>")
|
||||
to_chat(user, span_notice("You scribble illegibly on the side of [src]!"))
|
||||
return
|
||||
var/t = stripped_input(user, "What would you like the label to be?", text("[]", name), null)
|
||||
if (user.get_active_held_item() != P)
|
||||
@@ -109,13 +109,13 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||
user.visible_message(null, \
|
||||
"<span class='notice'>You lean on the back of [src] and start pushing the tray open... (this will take about [DisplayTimeText(breakout_time)].)</span>", \
|
||||
"<span class='hear'>You hear a metallic creaking from [src].</span>")
|
||||
span_notice("You lean on the back of [src] and start pushing the tray open... (this will take about [DisplayTimeText(breakout_time)].)"), \
|
||||
span_hear("You hear a metallic creaking from [src]."))
|
||||
if(do_after(user,(breakout_time), target = src))
|
||||
if(!user || user.stat != CONSCIOUS || user.loc != src )
|
||||
return
|
||||
user.visible_message("<span class='warning'>[user] successfully broke out of [src]!</span>", \
|
||||
"<span class='notice'>You successfully break out of [src]!</span>")
|
||||
user.visible_message(span_warning("[user] successfully broke out of [src]!"), \
|
||||
span_notice("You successfully break out of [src]!"))
|
||||
open()
|
||||
|
||||
/obj/structure/bodycontainer/proc/open()
|
||||
@@ -165,14 +165,14 @@ GLOBAL_LIST_EMPTY(bodycontainers) //Let them act as spawnpoints for revenants an
|
||||
|
||||
/obj/structure/bodycontainer/morgue/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>The speaker is [beeper ? "enabled" : "disabled"]. Alt-click to toggle it.</span>"
|
||||
. += span_notice("The speaker is [beeper ? "enabled" : "disabled"]. Alt-click to toggle it.")
|
||||
|
||||
/obj/structure/bodycontainer/morgue/AltClick(mob/user)
|
||||
..()
|
||||
if(!user.canUseTopic(src, !issilicon(user)))
|
||||
return
|
||||
beeper = !beeper
|
||||
to_chat(user, "<span class='notice'>You turn the speaker function [beeper ? "on" : "off"].</span>")
|
||||
to_chat(user, span_notice("You turn the speaker function [beeper ? "on" : "off"]."))
|
||||
|
||||
/obj/structure/bodycontainer/morgue/update_icon_state()
|
||||
if(!connected || connected.loc != src) // Open or tray is gone.
|
||||
@@ -218,7 +218,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
|
||||
var/id = 1
|
||||
|
||||
/obj/structure/bodycontainer/crematorium/attack_robot(mob/user) //Borgs can't use crematoriums without help
|
||||
to_chat(user, "<span class='warning'>[src] is locked against you.</span>")
|
||||
to_chat(user, span_warning("[src] is locked against you."))
|
||||
return
|
||||
|
||||
/obj/structure/bodycontainer/crematorium/Destroy()
|
||||
@@ -254,11 +254,11 @@ GLOBAL_LIST_EMPTY(crematoriums)
|
||||
var/list/conts = GetAllContents() - src - connected
|
||||
|
||||
if(!conts.len)
|
||||
audible_message("<span class='hear'>You hear a hollow crackle.</span>")
|
||||
audible_message(span_hear("You hear a hollow crackle."))
|
||||
return
|
||||
|
||||
else
|
||||
audible_message("<span class='hear'>You hear a roar as the crematorium activates.</span>")
|
||||
audible_message(span_hear("You hear a roar as the crematorium activates."))
|
||||
|
||||
locked = TRUE
|
||||
update_appearance()
|
||||
@@ -337,7 +337,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
|
||||
connected.close()
|
||||
add_fingerprint(user)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>That's not connected to anything!</span>")
|
||||
to_chat(user, span_warning("That's not connected to anything!"))
|
||||
|
||||
/obj/structure/tray/attackby(obj/P, mob/user, params)
|
||||
if(!istype(P, /obj/item/riding_offhand))
|
||||
@@ -368,7 +368,7 @@ GLOBAL_LIST_EMPTY(crematoriums)
|
||||
return
|
||||
O.forceMove(src.loc)
|
||||
if (user != O)
|
||||
visible_message("<span class='warning'>[user] stuffs [O] into [src].</span>")
|
||||
visible_message(span_warning("[user] stuffs [O] into [src]."))
|
||||
return
|
||||
|
||||
/*
|
||||
|
||||
@@ -45,16 +45,16 @@
|
||||
/obj/structure/noticeboard/attackby(obj/item/O, mob/user, params)
|
||||
if(istype(O, /obj/item/paper) || istype(O, /obj/item/photo))
|
||||
if(!allowed(user))
|
||||
to_chat(user, "<span class='warning'>You are not authorized to add notices!</span>")
|
||||
to_chat(user, span_warning("You are not authorized to add notices!"))
|
||||
return
|
||||
if(notices < MAX_NOTICES)
|
||||
if(!user.transferItemToLoc(O, src))
|
||||
return
|
||||
notices++
|
||||
icon_state = "nboard0[notices]"
|
||||
to_chat(user, "<span class='notice'>You pin the [O] to the noticeboard.</span>")
|
||||
to_chat(user, span_notice("You pin the [O] to the noticeboard."))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>The notice board is full!</span>")
|
||||
to_chat(user, span_warning("The notice board is full!"))
|
||||
else
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
petrified_mob = L
|
||||
if(L.buckled)
|
||||
L.buckled.unbuckle_mob(L,force=1)
|
||||
L.visible_message("<span class='warning'>[L]'s skin rapidly turns to marble!</span>", "<span class='userdanger'>Your body freezes up! Can't... move... can't... think...</span>")
|
||||
L.visible_message(span_warning("[L]'s skin rapidly turns to marble!"), span_userdanger("Your body freezes up! Can't... move... can't... think..."))
|
||||
L.forceMove(src)
|
||||
ADD_TRAIT(L, TRAIT_MUTE, STATUE_MUTE)
|
||||
L.faction += "mimic" //Stops mimics from instaqdeling people in statues
|
||||
@@ -50,7 +50,7 @@
|
||||
if(petrified_mob)
|
||||
S.mind.transfer_to(petrified_mob)
|
||||
petrified_mob.Paralyze(100)
|
||||
to_chat(petrified_mob, "<span class='notice'>You slowly come back to your senses. You are in control of yourself again!</span>")
|
||||
to_chat(petrified_mob, span_notice("You slowly come back to your senses. You are in control of yourself again!"))
|
||||
qdel(S)
|
||||
|
||||
for(var/obj/O in src)
|
||||
@@ -70,7 +70,7 @@
|
||||
if(!disassembled)
|
||||
if(petrified_mob)
|
||||
petrified_mob.dust()
|
||||
visible_message("<span class='danger'>[src] shatters!.</span>")
|
||||
visible_message(span_danger("[src] shatters!."))
|
||||
qdel(src)
|
||||
|
||||
|
||||
|
||||
@@ -39,14 +39,14 @@
|
||||
|
||||
/obj/structure/plaque/wrench_act(mob/living/user, obj/item/wrench/I)
|
||||
. = ..()
|
||||
user.visible_message("<span class='notice'>[user] starts removing [src]...</span>", \
|
||||
"<span class='notice'>You start unfastening [src].</span>")
|
||||
user.visible_message(span_notice("[user] starts removing [src]..."), \
|
||||
span_notice("You start unfastening [src]."))
|
||||
I.play_tool_sound(src)
|
||||
if(!I.use_tool(src, user, 4 SECONDS))
|
||||
return TRUE
|
||||
playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
user.visible_message("<span class='notice'>[user] unfastens [src].</span>", \
|
||||
"<span class='notice'>You unfasten [src].</span>")
|
||||
user.visible_message(span_notice("[user] unfastens [src]."), \
|
||||
span_notice("You unfasten [src]."))
|
||||
var/obj/item/plaque/unwrenched_plaque = new (get_turf(user))
|
||||
if(engraved) //If it's still just a basic unengraved plaque, we can (and should) skip some of the below variable transfers.
|
||||
unwrenched_plaque.name = name //Copy over the plaque structure variables to the plaque item we're creating when we unwrench it.
|
||||
@@ -63,16 +63,16 @@
|
||||
if(user.combat_mode)
|
||||
return FALSE
|
||||
if(obj_integrity == max_integrity)
|
||||
to_chat(user, "<span class='warning'>This plaque is already in perfect condition.</span>")
|
||||
to_chat(user, span_warning("This plaque is already in perfect condition."))
|
||||
return TRUE
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return TRUE
|
||||
user.visible_message("<span class='notice'>[user] starts repairing [src]...</span>", \
|
||||
"<span class='notice'>You start repairing [src].</span>")
|
||||
user.visible_message(span_notice("[user] starts repairing [src]..."), \
|
||||
span_notice("You start repairing [src]."))
|
||||
if(!I.use_tool(src, user, 4 SECONDS, volume = 50))
|
||||
return TRUE
|
||||
user.visible_message("<span class='notice'>[user] finishes repairing [src].</span>", \
|
||||
"<span class='notice'>You finish repairing [src].</span>")
|
||||
user.visible_message(span_notice("[user] finishes repairing [src]."), \
|
||||
span_notice("You finish repairing [src]."))
|
||||
obj_integrity = max_integrity
|
||||
return TRUE
|
||||
|
||||
@@ -81,23 +81,23 @@
|
||||
if(user.combat_mode)
|
||||
return FALSE
|
||||
if(obj_integrity == max_integrity)
|
||||
to_chat(user, "<span class='warning'>This plaque is already in perfect condition.</span>")
|
||||
to_chat(user, span_warning("This plaque is already in perfect condition."))
|
||||
return TRUE
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return TRUE
|
||||
user.visible_message("<span class='notice'>[user] starts repairing [src]...</span>", \
|
||||
"<span class='notice'>You start repairing [src].</span>")
|
||||
user.visible_message(span_notice("[user] starts repairing [src]..."), \
|
||||
span_notice("You start repairing [src]."))
|
||||
if(!I.use_tool(src, user, 4 SECONDS, volume = 50))
|
||||
return TRUE
|
||||
user.visible_message("<span class='notice'>[user] finishes repairing [src].</span>", \
|
||||
"<span class='notice'>You finish repairing [src].</span>")
|
||||
user.visible_message(span_notice("[user] finishes repairing [src]."), \
|
||||
span_notice("You finish repairing [src]."))
|
||||
obj_integrity = max_integrity
|
||||
return TRUE
|
||||
|
||||
/obj/structure/plaque/attackby(obj/item/I, mob/user, params)
|
||||
if(istype(I, /obj/item/pen/fountain))
|
||||
if(engraved)
|
||||
to_chat(user, "<span class='warning'>This plaque has already been engraved.</span>")
|
||||
to_chat(user, span_warning("This plaque has already been engraved."))
|
||||
return
|
||||
var/namechoice = input(user, "Title this plaque. (e.g. 'Best HoP Award', 'Great Ashwalker War Memorial')", "Plaque Customization")
|
||||
if(!namechoice)
|
||||
@@ -106,30 +106,30 @@
|
||||
if(!descriptionchoice)
|
||||
return
|
||||
if(!Adjacent(user)) //Make sure user is adjacent still
|
||||
to_chat(user, "<span class='warning'>You need to stand next to the plaque to engrave it!</span>")
|
||||
to_chat(user, span_warning("You need to stand next to the plaque to engrave it!"))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] begins engraving [src].</span>", \
|
||||
"<span class='notice'>You begin engraving [src].</span>")
|
||||
user.visible_message(span_notice("[user] begins engraving [src]."), \
|
||||
span_notice("You begin engraving [src]."))
|
||||
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]'"
|
||||
engraved = TRUE //The plaque now has a name, description, and can't be altered again.
|
||||
user.visible_message("<span class='notice'>[user] engraves [src].</span>", \
|
||||
"<span class='notice'>You engrave [src].</span>")
|
||||
user.visible_message(span_notice("[user] engraves [src]."), \
|
||||
span_notice("You engrave [src]."))
|
||||
return
|
||||
if(istype(I, /obj/item/pen))
|
||||
if(engraved)
|
||||
to_chat(user, "<span class='warning'>This plaque has already been engraved, and your pen isn't fancy enough to engrave it anyway! Find a fountain pen.</span>")
|
||||
to_chat(user, span_warning("This plaque has already been engraved, and your pen isn't fancy enough to engrave it anyway! Find a fountain pen."))
|
||||
return
|
||||
to_chat(user, "<span class='warning'>Your pen isn't fancy enough to engrave this! Find a fountain pen.</span>") //Go steal the Curator's.
|
||||
to_chat(user, span_warning("Your pen isn't fancy enough to engrave this! Find a fountain pen.")) //Go steal the Curator's.
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/item/plaque/attackby(obj/item/I, mob/user, params) //Same as part of the above, except for the item in hand instead of the structure.
|
||||
if(istype(I, /obj/item/pen/fountain))
|
||||
if(engraved)
|
||||
to_chat(user, "<span class='warning'>This plaque has already been engraved.</span>")
|
||||
to_chat(user, span_warning("This plaque has already been engraved."))
|
||||
return
|
||||
var/namechoice = input(user, "Title this plaque. (e.g. 'Best HoP Award', 'Great Ashwalker War Memorial')", "Plaque Customization")
|
||||
if(!namechoice)
|
||||
@@ -138,23 +138,23 @@
|
||||
if(!descriptionchoice)
|
||||
return
|
||||
if(!Adjacent(user)) //Make sure user is adjacent still
|
||||
to_chat(user, "<span class='warning'>You need to stand next to the plaque to engrave it!</span>")
|
||||
to_chat(user, span_warning("You need to stand next to the plaque to engrave it!"))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] begins engraving [src].</span>", \
|
||||
"<span class='notice'>You begin engraving [src].</span>")
|
||||
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.
|
||||
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]'"
|
||||
engraved = TRUE //The plaque now has a name, description, and can't be altered again.
|
||||
user.visible_message("<span class='notice'>[user] engraves [src].</span>", \
|
||||
"<span class='notice'>You engrave [src].</span>")
|
||||
user.visible_message(span_notice("[user] engraves [src]."), \
|
||||
span_notice("You engrave [src]."))
|
||||
return
|
||||
if(istype(I, /obj/item/pen))
|
||||
if(engraved)
|
||||
to_chat(user, "<span class='warning'>This plaque has already been engraved, and your pen isn't fancy enough to engrave it anyway! Find a fountain pen.</span>")
|
||||
to_chat(user, span_warning("This plaque has already been engraved, and your pen isn't fancy enough to engrave it anyway! Find a fountain pen."))
|
||||
return
|
||||
to_chat(user, "<span class='warning'>Your pen isn't fancy enough to engrave this! Find a fountain pen.</span>") //Go steal the Curator's.
|
||||
to_chat(user, span_warning("Your pen isn't fancy enough to engrave this! Find a fountain pen.")) //Go steal the Curator's.
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -175,8 +175,8 @@
|
||||
placed_plaque.pixel_x = 32
|
||||
else if(dir & WEST)
|
||||
placed_plaque.pixel_x = -32
|
||||
user.visible_message("<span class='notice'>[user] fastens [src] to [target_turf].</span>", \
|
||||
"<span class='notice'>You attach [src] to [target_turf].</span>")
|
||||
user.visible_message(span_notice("[user] fastens [src] to [target_turf]."), \
|
||||
span_notice("You attach [src] to [target_turf]."))
|
||||
playsound(target_turf, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
if(engraved)
|
||||
placed_plaque.name = name
|
||||
|
||||
@@ -20,9 +20,9 @@
|
||||
/obj/structure/plasticflaps/examine(mob/user)
|
||||
. = ..()
|
||||
if(anchored)
|
||||
. += "<span class='notice'>[src] are <b>screwed</b> to the floor.</span>"
|
||||
. += span_notice("[src] are <b>screwed</b> to the floor.")
|
||||
else
|
||||
. += "<span class='notice'>[src] are no longer <i>screwed</i> to the floor, and the flaps can be <b>cut</b> apart.</span>"
|
||||
. += span_notice("[src] are no longer <i>screwed</i> to the floor, and the flaps can be <b>cut</b> apart.")
|
||||
|
||||
/obj/structure/plasticflaps/screwdriver_act(mob/living/user, obj/item/W)
|
||||
if(..())
|
||||
@@ -30,13 +30,13 @@
|
||||
add_fingerprint(user)
|
||||
var/action = anchored ? "unscrews [src] from" : "screws [src] to"
|
||||
var/uraction = anchored ? "unscrew [src] from" : "screw [src] to"
|
||||
user.visible_message("<span class='warning'>[user] [action] the floor.</span>", "<span class='notice'>You start to [uraction] the floor...</span>", "<span class='hear'>You hear rustling noises.</span>")
|
||||
user.visible_message(span_warning("[user] [action] the floor."), span_notice("You start to [uraction] the floor..."), span_hear("You hear rustling noises."))
|
||||
if(!W.use_tool(src, user, 100, volume=100, extra_checks = CALLBACK(src, .proc/check_anchored_state, anchored)))
|
||||
return TRUE
|
||||
set_anchored(!anchored)
|
||||
update_atmos_behaviour()
|
||||
air_update_turf(TRUE)
|
||||
to_chat(user, "<span class='notice'>You [uraction] the floor.</span>")
|
||||
to_chat(user, span_notice("You [uraction] the floor."))
|
||||
return TRUE
|
||||
|
||||
///Update the flaps behaviour to gases, if not anchored will let air pass through
|
||||
@@ -46,11 +46,11 @@
|
||||
/obj/structure/plasticflaps/wirecutter_act(mob/living/user, obj/item/W)
|
||||
. = ..()
|
||||
if(!anchored)
|
||||
user.visible_message("<span class='warning'>[user] cuts apart [src].</span>", "<span class='notice'>You start to cut apart [src].</span>", "<span class='hear'>You hear cutting.</span>")
|
||||
user.visible_message(span_warning("[user] cuts apart [src]."), span_notice("You start to cut apart [src]."), span_hear("You hear cutting."))
|
||||
if(W.use_tool(src, user, 50, volume=100))
|
||||
if(anchored)
|
||||
return TRUE
|
||||
to_chat(user, "<span class='notice'>You cut apart [src].</span>")
|
||||
to_chat(user, span_notice("You cut apart [src]."))
|
||||
var/obj/item/stack/sheet/plastic/five/P = new(loc)
|
||||
P.add_fingerprint(user)
|
||||
qdel(src)
|
||||
|
||||
@@ -33,18 +33,18 @@
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin repairing [src]...</span>")
|
||||
to_chat(user, span_notice("You begin repairing [src]..."))
|
||||
if(I.use_tool(src, user, 40, volume=50))
|
||||
obj_integrity = max_integrity
|
||||
to_chat(user, "<span class='notice'>You repair [src].</span>")
|
||||
to_chat(user, span_notice("You repair [src]."))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src] is already in good condition!</span>")
|
||||
to_chat(user, span_warning("[src] is already in good condition!"))
|
||||
return
|
||||
|
||||
/obj/structure/railing/wirecutter_act(mob/living/user, obj/item/I)
|
||||
. = ..()
|
||||
if(!anchored)
|
||||
to_chat(user, "<span class='warning'>You cut apart the railing.</span>")
|
||||
to_chat(user, span_warning("You cut apart the railing."))
|
||||
I.play_tool_sound(src, 100)
|
||||
deconstruct()
|
||||
return TRUE
|
||||
@@ -60,10 +60,10 @@
|
||||
. = ..()
|
||||
if(flags_1&NODECONSTRUCT_1)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You begin to [anchored ? "unfasten the railing from":"fasten the railing to"] the floor...</span>")
|
||||
to_chat(user, span_notice("You begin to [anchored ? "unfasten the railing from":"fasten the railing to"] the floor..."))
|
||||
if(I.use_tool(src, user, volume = 75, extra_checks = CALLBACK(src, .proc/check_anchored, anchored)))
|
||||
set_anchored(!anchored)
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "fasten the railing to":"unfasten the railing from"] the floor.</span>")
|
||||
to_chat(user, span_notice("You [anchored ? "fasten the railing to":"unfasten the railing from"] the floor."))
|
||||
return TRUE
|
||||
|
||||
/obj/structure/railing/CanPass(atom/movable/mover, turf/target)
|
||||
@@ -111,13 +111,13 @@
|
||||
|
||||
/obj/structure/railing/proc/can_be_rotated(mob/user,rotation_type)
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='warning'>[src] cannot be rotated while it is fastened to the floor!</span>")
|
||||
to_chat(user, span_warning("[src] cannot be rotated while it is fastened to the floor!"))
|
||||
return FALSE
|
||||
|
||||
var/target_dir = turn(dir, rotation_type == ROTATION_CLOCKWISE ? -90 : 90)
|
||||
|
||||
if(!valid_window_location(loc, target_dir, is_fulltile = FALSE)) //Expanded to include rails, as well!
|
||||
to_chat(user, "<span class='warning'>[src] cannot be rotated in that direction!</span>")
|
||||
to_chat(user, span_warning("[src] cannot be rotated in that direction!"))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -39,9 +39,9 @@
|
||||
. += "It is set to [rotation_angle] degrees, and the rotation is [can_rotate ? "unlocked" : "locked"]."
|
||||
if(!admin)
|
||||
if(can_rotate)
|
||||
. += "<span class='notice'>Alt-click to adjust its direction.</span>"
|
||||
. += span_notice("Alt-click to adjust its direction.")
|
||||
else
|
||||
. += "<span class='notice'>Use screwdriver to unlock the rotation.</span>"
|
||||
. += span_notice("Use screwdriver to unlock the rotation.")
|
||||
|
||||
/obj/structure/reflector/proc/set_angle(new_angle)
|
||||
if(can_rotate)
|
||||
@@ -77,17 +77,17 @@
|
||||
|
||||
if(W.tool_behaviour == TOOL_SCREWDRIVER)
|
||||
can_rotate = !can_rotate
|
||||
to_chat(user, "<span class='notice'>You [can_rotate ? "unlock" : "lock"] [src]'s rotation.</span>")
|
||||
to_chat(user, span_notice("You [can_rotate ? "unlock" : "lock"] [src]'s rotation."))
|
||||
W.play_tool_sound(src)
|
||||
return
|
||||
|
||||
if(W.tool_behaviour == TOOL_WRENCH)
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='warning'>Unweld [src] from the floor first!</span>")
|
||||
to_chat(user, span_warning("Unweld [src] from the floor first!"))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] starts to dismantle [src].</span>", "<span class='notice'>You start to dismantle [src]...</span>")
|
||||
user.visible_message(span_notice("[user] starts to dismantle [src]."), span_notice("You start to dismantle [src]..."))
|
||||
if(W.use_tool(src, user, 80, volume=50))
|
||||
to_chat(user, "<span class='notice'>You dismantle [src].</span>")
|
||||
to_chat(user, span_notice("You dismantle [src]."))
|
||||
new framebuildstacktype(drop_location(), framebuildstackamount)
|
||||
if(buildstackamount)
|
||||
new buildstacktype(drop_location(), buildstackamount)
|
||||
@@ -97,34 +97,34 @@
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] starts to repair [src].</span>",
|
||||
"<span class='notice'>You begin repairing [src]...</span>",
|
||||
"<span class='hear'>You hear welding.</span>")
|
||||
user.visible_message(span_notice("[user] starts to repair [src]."),
|
||||
span_notice("You begin repairing [src]..."),
|
||||
span_hear("You hear welding."))
|
||||
if(W.use_tool(src, user, 40, volume=40))
|
||||
obj_integrity = max_integrity
|
||||
user.visible_message("<span class='notice'>[user] repairs [src].</span>", \
|
||||
"<span class='notice'>You finish repairing [src].</span>")
|
||||
user.visible_message(span_notice("[user] repairs [src]."), \
|
||||
span_notice("You finish repairing [src]."))
|
||||
|
||||
else if(!anchored)
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] starts to weld [src] to the floor.</span>",
|
||||
"<span class='notice'>You start to weld [src] to the floor...</span>",
|
||||
"<span class='hear'>You hear welding.</span>")
|
||||
user.visible_message(span_notice("[user] starts to weld [src] to the floor."),
|
||||
span_notice("You start to weld [src] to the floor..."),
|
||||
span_hear("You hear welding."))
|
||||
if (W.use_tool(src, user, 20, volume=50))
|
||||
set_anchored(TRUE)
|
||||
to_chat(user, "<span class='notice'>You weld [src] to the floor.</span>")
|
||||
to_chat(user, span_notice("You weld [src] to the floor."))
|
||||
else
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] starts to cut [src] free from the floor.</span>",
|
||||
"<span class='notice'>You start to cut [src] free from the floor...</span>",
|
||||
"<span class='hear'>You hear welding.</span>")
|
||||
user.visible_message(span_notice("[user] starts to cut [src] free from the floor."),
|
||||
span_notice("You start to cut [src] free from the floor..."),
|
||||
span_hear("You hear welding."))
|
||||
if (W.use_tool(src, user, 20, volume=50))
|
||||
set_anchored(FALSE)
|
||||
to_chat(user, "<span class='notice'>You cut [src] free from the floor.</span>")
|
||||
to_chat(user, span_notice("You cut [src] free from the floor."))
|
||||
|
||||
//Finishing the frame
|
||||
else if(istype(W, /obj/item/stack/sheet))
|
||||
@@ -136,14 +136,14 @@
|
||||
new /obj/structure/reflector/single(drop_location())
|
||||
qdel(src)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need five sheets of glass to create a reflector!</span>")
|
||||
to_chat(user, span_warning("You need five sheets of glass to create a reflector!"))
|
||||
return
|
||||
if(istype(S, /obj/item/stack/sheet/rglass))
|
||||
if(S.use(10))
|
||||
new /obj/structure/reflector/double(drop_location())
|
||||
qdel(src)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need ten sheets of reinforced glass to create a double reflector!</span>")
|
||||
to_chat(user, span_warning("You need ten sheets of reinforced glass to create a double reflector!"))
|
||||
return
|
||||
if(istype(S, /obj/item/stack/sheet/mineral/diamond))
|
||||
if(S.use(1))
|
||||
@@ -154,7 +154,7 @@
|
||||
|
||||
/obj/structure/reflector/proc/rotate(mob/user)
|
||||
if (!can_rotate || admin)
|
||||
to_chat(user, "<span class='warning'>The rotation is locked!</span>")
|
||||
to_chat(user, span_warning("The rotation is locked!"))
|
||||
return FALSE
|
||||
var/new_angle = input(user, "Input a new angle for primary reflection face.", "Reflector Angle", rotation_angle) as null|num
|
||||
if(!user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user)))
|
||||
|
||||
@@ -66,17 +66,17 @@ FLOOR SAFES
|
||||
if(I.w_class + space <= maxspace)
|
||||
space += I.w_class
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
to_chat(user, "<span class='warning'>\The [I] is stuck to your hand, you cannot put it in the safe!</span>")
|
||||
to_chat(user, span_warning("\The [I] is stuck to your hand, you cannot put it in the safe!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You put [I] in [src].</span>")
|
||||
to_chat(user, span_notice("You put [I] in [src]."))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[I] won't fit in [src].</span>")
|
||||
to_chat(user, span_warning("[I] won't fit in [src]."))
|
||||
else
|
||||
if(istype(I, /obj/item/clothing/neck/stethoscope))
|
||||
attack_hand(user)
|
||||
return
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You can't put [I] into the safe while it is closed!</span>")
|
||||
to_chat(user, span_warning("You can't put [I] into the safe while it is closed!"))
|
||||
return
|
||||
|
||||
/obj/structure/safe/blob_act(obj/structure/blob/B)
|
||||
@@ -141,9 +141,9 @@ FLOOR SAFES
|
||||
switch(action)
|
||||
if("open")
|
||||
if(!check_unlocked() && !open && !broken)
|
||||
to_chat(user, "<span class='warning'>You cannot open [src], as its lock is engaged!</span>")
|
||||
to_chat(user, span_warning("You cannot open [src], as its lock is engaged!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You [open ? "close" : "open"] [src].</span>")
|
||||
to_chat(user, span_notice("You [open ? "close" : "open"] [src]."))
|
||||
open = !open
|
||||
update_appearance()
|
||||
return TRUE
|
||||
@@ -151,7 +151,7 @@ FLOOR SAFES
|
||||
if(open)
|
||||
return
|
||||
if(broken)
|
||||
to_chat(user, "<span class='warning'>The dial will not turn, as the mechanism is destroyed!</span>")
|
||||
to_chat(user, span_warning("The dial will not turn, as the mechanism is destroyed!"))
|
||||
return
|
||||
var/ticks = text2num(params["num"])
|
||||
for(var/i = 1 to ticks)
|
||||
@@ -172,7 +172,7 @@ FLOOR SAFES
|
||||
if(open)
|
||||
return
|
||||
if(broken)
|
||||
to_chat(user, "<span class='warning'>The dial will not turn, as the mechanism is destroyed!</span>")
|
||||
to_chat(user, span_warning("The dial will not turn, as the mechanism is destroyed!"))
|
||||
return
|
||||
var/ticks = text2num(params["num"])
|
||||
for(var/i = 1 to ticks)
|
||||
@@ -216,7 +216,7 @@ FLOOR SAFES
|
||||
return TRUE
|
||||
if(current_tumbler_index > number_of_tumblers)
|
||||
locked = FALSE
|
||||
visible_message("<span class='boldnotice'>[pick("Spring", "Sprang", "Sproing", "Clunk", "Krunk")]!</span>")
|
||||
visible_message(span_boldnotice("[pick("Spring", "Sprang", "Sproing", "Clunk", "Krunk")]!"))
|
||||
return TRUE
|
||||
locked = TRUE
|
||||
return FALSE
|
||||
|
||||
@@ -111,17 +111,17 @@
|
||||
/obj/structure/showcase/attackby(obj/item/W, mob/user)
|
||||
if(W.tool_behaviour == TOOL_SCREWDRIVER && !anchored)
|
||||
if(deconstruction_state == SHOWCASE_SCREWDRIVERED)
|
||||
to_chat(user, "<span class='notice'>You screw the screws back into the showcase.</span>")
|
||||
to_chat(user, span_notice("You screw the screws back into the showcase."))
|
||||
W.play_tool_sound(src, 100)
|
||||
deconstruction_state = SHOWCASE_CONSTRUCTED
|
||||
else if (deconstruction_state == SHOWCASE_CONSTRUCTED)
|
||||
to_chat(user, "<span class='notice'>You unscrew the screws.</span>")
|
||||
to_chat(user, span_notice("You unscrew the screws."))
|
||||
W.play_tool_sound(src, 100)
|
||||
deconstruction_state = SHOWCASE_SCREWDRIVERED
|
||||
|
||||
if(W.tool_behaviour == TOOL_CROWBAR && deconstruction_state == SHOWCASE_SCREWDRIVERED)
|
||||
if(W.use_tool(src, user, 20, volume=100))
|
||||
to_chat(user, "<span class='notice'>You start to crowbar the showcase apart...</span>")
|
||||
to_chat(user, span_notice("You start to crowbar the showcase apart..."))
|
||||
new /obj/item/stack/sheet/iron(drop_location(), 4)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
/obj/machinery/shower/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>[reagents.total_volume]/[reagents.maximum_volume] liquids remaining.</span>"
|
||||
. += span_notice("[reagents.total_volume]/[reagents.maximum_volume] liquids remaining.")
|
||||
|
||||
/obj/machinery/shower/Destroy()
|
||||
QDEL_NULL(soundloop)
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
/obj/machinery/shower/interact(mob/M)
|
||||
if(reagents.total_volume < 5)
|
||||
to_chat(M,"<span class='notice'>\The [src] is dry.</span>")
|
||||
to_chat(M,span_notice("\The [src] is dry."))
|
||||
return FALSE
|
||||
on = !on
|
||||
update_appearance()
|
||||
@@ -74,7 +74,7 @@
|
||||
|
||||
/obj/machinery/shower/attackby(obj/item/I, mob/user, params)
|
||||
if(I.tool_behaviour == TOOL_ANALYZER)
|
||||
to_chat(user, "<span class='notice'>The water temperature seems to be [current_temperature].</span>")
|
||||
to_chat(user, span_notice("The water temperature seems to be [current_temperature]."))
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
/obj/machinery/shower/wrench_act(mob/living/user, obj/item/I)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>You begin to adjust the temperature valve with \the [I]...</span>")
|
||||
to_chat(user, span_notice("You begin to adjust the temperature valve with \the [I]..."))
|
||||
if(I.use_tool(src, user, 50))
|
||||
switch(current_temperature)
|
||||
if(SHOWER_NORMAL)
|
||||
@@ -100,7 +100,7 @@
|
||||
current_temperature = SHOWER_BOILING
|
||||
if(SHOWER_BOILING)
|
||||
current_temperature = SHOWER_NORMAL
|
||||
user.visible_message("<span class='notice'>[user] adjusts the shower with \the [I].</span>", "<span class='notice'>You adjust the shower with \the [I] to [current_temperature] temperature.</span>")
|
||||
user.visible_message(span_notice("[user] adjusts the shower with \the [I]."), span_notice("You adjust the shower with \the [I] to [current_temperature] temperature."))
|
||||
user.log_message("has wrenched a shower at [AREACOORD(src)] to [current_temperature].", LOG_ATTACK)
|
||||
add_hiddenprint(user)
|
||||
handle_mist()
|
||||
@@ -179,12 +179,12 @@
|
||||
if(current_temperature == SHOWER_FREEZING)
|
||||
if(iscarbon(L))
|
||||
C.adjust_bodytemperature(-80, 80)
|
||||
to_chat(L, "<span class='warning'>[src] is freezing!</span>")
|
||||
to_chat(L, span_warning("[src] is freezing!"))
|
||||
else if(current_temperature == SHOWER_BOILING)
|
||||
if(iscarbon(L))
|
||||
C.adjust_bodytemperature(35, 0, 500)
|
||||
L.adjustFireLoss(5)
|
||||
to_chat(L, "<span class='danger'>[src] is searing!</span>")
|
||||
to_chat(L, span_danger("[src] is searing!"))
|
||||
|
||||
|
||||
/obj/structure/showerframe
|
||||
@@ -209,7 +209,7 @@
|
||||
|
||||
/obj/structure/showerframe/proc/can_be_rotated(mob/user, rotation_type)
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='warning'>It is fastened to the floor!</span>")
|
||||
to_chat(user, span_warning("It is fastened to the floor!"))
|
||||
return !anchored
|
||||
|
||||
/obj/effect/mist
|
||||
|
||||
@@ -72,14 +72,14 @@
|
||||
. = ..()
|
||||
if(!buildable_sign)
|
||||
return TRUE
|
||||
user.visible_message("<span class='notice'>[user] starts removing [src]...</span>", \
|
||||
"<span class='notice'>You start unfastening [src].</span>")
|
||||
user.visible_message(span_notice("[user] starts removing [src]..."), \
|
||||
span_notice("You start unfastening [src]."))
|
||||
I.play_tool_sound(src)
|
||||
if(!I.use_tool(src, user, 4 SECONDS))
|
||||
return TRUE
|
||||
playsound(src, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
user.visible_message("<span class='notice'>[user] unfastens [src].</span>", \
|
||||
"<span class='notice'>You unfasten [src].</span>")
|
||||
user.visible_message(span_notice("[user] unfastens [src]."), \
|
||||
span_notice("You unfasten [src]."))
|
||||
var/obj/item/sign/unwrenched_sign = new (get_turf(user))
|
||||
if(type != /obj/structure/sign/blank) //If it's still just a basic sign backing, we can (and should) skip some of the below variable transfers.
|
||||
unwrenched_sign.name = name //Copy over the sign structure variables to the sign item we're creating when we unwrench a sign.
|
||||
@@ -98,16 +98,16 @@
|
||||
if(user.combat_mode)
|
||||
return FALSE
|
||||
if(obj_integrity == max_integrity)
|
||||
to_chat(user, "<span class='warning'>This sign is already in perfect condition.</span>")
|
||||
to_chat(user, span_warning("This sign is already in perfect condition."))
|
||||
return TRUE
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return TRUE
|
||||
user.visible_message("<span class='notice'>[user] starts repairing [src]...</span>", \
|
||||
"<span class='notice'>You start repairing [src].</span>")
|
||||
user.visible_message(span_notice("[user] starts repairing [src]..."), \
|
||||
span_notice("You start repairing [src]."))
|
||||
if(!I.use_tool(src, user, 4 SECONDS, volume =50 ))
|
||||
return TRUE
|
||||
user.visible_message("<span class='notice'>[user] finishes repairing [src].</span>", \
|
||||
"<span class='notice'>You finish repairing [src].</span>")
|
||||
user.visible_message(span_notice("[user] finishes repairing [src]."), \
|
||||
span_notice("You finish repairing [src]."))
|
||||
obj_integrity = max_integrity
|
||||
return TRUE
|
||||
|
||||
@@ -116,16 +116,16 @@
|
||||
if(user.combat_mode)
|
||||
return FALSE
|
||||
if(obj_integrity == max_integrity)
|
||||
to_chat(user, "<span class='warning'>This sign is already in perfect condition.</span>")
|
||||
to_chat(user, span_warning("This sign is already in perfect condition."))
|
||||
return TRUE
|
||||
if(!I.tool_start_check(user, amount=0))
|
||||
return TRUE
|
||||
user.visible_message("<span class='notice'>[user] starts repairing [src]...</span>", \
|
||||
"<span class='notice'>You start repairing [src].</span>")
|
||||
user.visible_message(span_notice("[user] starts repairing [src]..."), \
|
||||
span_notice("You start repairing [src]."))
|
||||
if(!I.use_tool(src, user, 4 SECONDS, volume =50 ))
|
||||
return TRUE
|
||||
user.visible_message("<span class='notice'>[user] finishes repairing [src].</span>", \
|
||||
"<span class='notice'>You finish repairing [src].</span>")
|
||||
user.visible_message(span_notice("[user] finishes repairing [src]."), \
|
||||
span_notice("You finish repairing [src]."))
|
||||
obj_integrity = max_integrity
|
||||
return TRUE
|
||||
|
||||
@@ -137,10 +137,10 @@
|
||||
if(!choice)
|
||||
return
|
||||
if(!Adjacent(user)) //Make sure user is adjacent still.
|
||||
to_chat(user, "<span class='warning'>You need to stand next to the sign to change it!</span>")
|
||||
to_chat(user, span_warning("You need to stand next to the sign to change it!"))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] begins changing [src].</span>", \
|
||||
"<span class='notice'>You begin changing [src].</span>")
|
||||
user.visible_message(span_notice("[user] begins changing [src]."), \
|
||||
span_notice("You begin changing [src]."))
|
||||
if(!do_after(user, 4 SECONDS, target = src)) //Small delay for changing signs instead of it being instant, so somebody could be shoved or stunned to prevent them from doing so.
|
||||
return
|
||||
var/sign_type = GLOB.editable_sign_types[choice]
|
||||
@@ -152,8 +152,8 @@
|
||||
changedsign.pixel_y = pixel_y
|
||||
changedsign.obj_integrity = obj_integrity
|
||||
qdel(src)
|
||||
user.visible_message("<span class='notice'>[user] finishes changing the sign.</span>", \
|
||||
"<span class='notice'>You finish changing the sign.</span>")
|
||||
user.visible_message(span_notice("[user] finishes changing the sign."), \
|
||||
span_notice("You finish changing the sign."))
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -165,15 +165,15 @@
|
||||
if(!choice)
|
||||
return
|
||||
if(!Adjacent(user)) //Make sure user is adjacent still.
|
||||
to_chat(user, "<span class='warning'>You need to stand next to the sign to change it!</span>")
|
||||
to_chat(user, span_warning("You need to stand next to the sign to change it!"))
|
||||
return
|
||||
if(!choice)
|
||||
return
|
||||
user.visible_message("<span class='notice'>You begin changing [src].</span>")
|
||||
user.visible_message(span_notice("You begin changing [src]."))
|
||||
if(!do_after(user, 4 SECONDS, target = src))
|
||||
return
|
||||
set_sign_type(GLOB.editable_sign_types[choice])
|
||||
user.visible_message("<span class='notice'>You finish changing the sign.</span>")
|
||||
user.visible_message(span_notice("You finish changing the sign."))
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -203,8 +203,8 @@
|
||||
placed_sign.pixel_x = 32
|
||||
else if(dir & WEST)
|
||||
placed_sign.pixel_x = -32
|
||||
user.visible_message("<span class='notice'>[user] fastens [src] to [target_turf].</span>", \
|
||||
"<span class='notice'>You attach the sign to [target_turf].</span>")
|
||||
user.visible_message(span_notice("[user] fastens [src] to [target_turf]."), \
|
||||
span_notice("You attach the sign to [target_turf]."))
|
||||
playsound(target_turf, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
placed_sign.update_integrity(get_integrity())
|
||||
placed_sign.setDir(dir)
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
next_use = world.time + rand(30,50)
|
||||
lastuser = M.ckey
|
||||
//blind message is the same because not everyone brings night vision to seances
|
||||
var/msg = "<span class='notice'>The planchette slowly moves... and stops at the letter \"[planchette]\".</span>"
|
||||
var/msg = span_notice("The planchette slowly moves... and stops at the letter \"[planchette]\".")
|
||||
visible_message(msg,"",msg)
|
||||
|
||||
/obj/structure/spirit_board/proc/spirit_board_checks(mob/M)
|
||||
@@ -60,7 +60,7 @@
|
||||
|
||||
|
||||
if(light_amount > 0.2)
|
||||
to_chat(M, "<span class='warning'>It's too bright here to use [src.name]!</span>")
|
||||
to_chat(M, span_warning("It's too bright here to use [src.name]!"))
|
||||
return FALSE
|
||||
|
||||
//mobs in range check
|
||||
@@ -68,12 +68,12 @@
|
||||
for(var/mob/living/L in orange(1,src))
|
||||
if(L.ckey && L.client)
|
||||
if((world.time - L.client.inactivity) < (world.time - 300) || L.stat != CONSCIOUS || HAS_TRAIT(L, TRAIT_HANDS_BLOCKED))//no playing with braindeads or corpses or handcuffed dudes.
|
||||
to_chat(M, "<span class='warning'>[L] doesn't seem to be paying attention...</span>")
|
||||
to_chat(M, span_warning("[L] doesn't seem to be paying attention..."))
|
||||
else
|
||||
users_in_range++
|
||||
|
||||
if(users_in_range < 2)
|
||||
to_chat(M, "<span class='warning'>There aren't enough people to use the [src.name]!</span>")
|
||||
to_chat(M, span_warning("There aren't enough people to use the [src.name]!"))
|
||||
return FALSE
|
||||
|
||||
return TRUE
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
/obj/structure/statue/proc/can_be_rotated(mob/user)
|
||||
if(!anchored)
|
||||
return TRUE
|
||||
to_chat(user, "<span class='warning'>It's bolted to the floor, you'll need to unwrench it first.</span>")
|
||||
to_chat(user, span_warning("It's bolted to the floor, you'll need to unwrench it first."))
|
||||
|
||||
/obj/structure/statue/proc/can_user_rotate(mob/user)
|
||||
return user.canUseTopic(src, BE_CLOSE, NO_DEXTERITY, FALSE, !iscyborg(user))
|
||||
@@ -40,11 +40,11 @@
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return FALSE
|
||||
|
||||
user.visible_message("<span class='notice'>[user] is slicing apart the [name].</span>", \
|
||||
"<span class='notice'>You are slicing apart the [name]...</span>")
|
||||
user.visible_message(span_notice("[user] is slicing apart the [name]."), \
|
||||
span_notice("You are slicing apart the [name]..."))
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
user.visible_message("<span class='notice'>[user] slices apart the [name].</span>", \
|
||||
"<span class='notice'>You slice apart the [name]!</span>")
|
||||
user.visible_message(span_notice("[user] slices apart the [name]."), \
|
||||
span_notice("You slice apart the [name]!"))
|
||||
deconstruct(TRUE)
|
||||
return
|
||||
return ..()
|
||||
@@ -359,7 +359,7 @@ Moving interrupts
|
||||
prepared_block.set_target(target,user)
|
||||
|
||||
/obj/item/chisel/proc/start_sculpting(mob/living/user)
|
||||
to_chat(user,"<span class='notice'>You start sculpting [prepared_block].</span>",type=MESSAGE_TYPE_INFO)
|
||||
to_chat(user,span_notice("You start sculpting [prepared_block]."),type=MESSAGE_TYPE_INFO)
|
||||
sculpting = TRUE
|
||||
//How long whole process takes
|
||||
var/sculpting_time = 30 SECONDS
|
||||
@@ -379,14 +379,14 @@ Moving interrupts
|
||||
total_progress_bar.end_progress()
|
||||
if(!interrupted && !QDELETED(prepared_block))
|
||||
prepared_block.create_statue()
|
||||
to_chat(user,"<span class='notice'>The statue is finished!</span>",type=MESSAGE_TYPE_INFO)
|
||||
to_chat(user,span_notice("The statue is finished!"),type=MESSAGE_TYPE_INFO)
|
||||
break_sculpting()
|
||||
|
||||
/obj/item/chisel/proc/set_block(obj/structure/carving_block/B,mob/living/user)
|
||||
prepared_block = B
|
||||
tracked_user = user
|
||||
RegisterSignal(tracked_user,COMSIG_MOVABLE_MOVED,.proc/break_sculpting)
|
||||
to_chat(user,"<span class='notice'>You prepare to work on [B].</span>",type=MESSAGE_TYPE_INFO)
|
||||
to_chat(user,span_notice("You prepare to work on [B]."),type=MESSAGE_TYPE_INFO)
|
||||
|
||||
/obj/item/chisel/dropped(mob/user, silent)
|
||||
. = ..()
|
||||
@@ -413,7 +413,7 @@ Moving interrupts
|
||||
var/image/chosen_looks = choices[choice]
|
||||
prepared_block.current_target = chosen_looks.appearance
|
||||
var/obj/structure/statue/S = choice
|
||||
to_chat(user,"<span class='notice'>You decide to sculpt [prepared_block] into [initial(S.name)].</span>",type=MESSAGE_TYPE_INFO)
|
||||
to_chat(user,span_notice("You decide to sculpt [prepared_block] into [initial(S.name)]."),type=MESSAGE_TYPE_INFO)
|
||||
|
||||
|
||||
/obj/structure/carving_block
|
||||
@@ -453,7 +453,7 @@ Moving interrupts
|
||||
else
|
||||
current_target = target.appearance
|
||||
var/mutable_appearance/ma = current_target
|
||||
to_chat(user,"<span class='notice'>You decide to sculpt [src] into [ma.name].</span>",type=MESSAGE_TYPE_INFO)
|
||||
to_chat(user,span_notice("You decide to sculpt [src] into [ma.name]."),type=MESSAGE_TYPE_INFO)
|
||||
|
||||
/obj/structure/carving_block/proc/reset_target()
|
||||
current_target = null
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
|
||||
|
||||
/obj/structure/table_frame/wrench_act(mob/living/user, obj/item/I)
|
||||
to_chat(user, "<span class='notice'>You start disassembling [src]...</span>")
|
||||
to_chat(user, span_notice("You start disassembling [src]..."))
|
||||
I.play_tool_sound(src)
|
||||
if(!I.use_tool(src, user, 3 SECONDS))
|
||||
return TRUE
|
||||
@@ -37,23 +37,23 @@
|
||||
var/obj/item/stack/material = I
|
||||
if(material.tableVariant)
|
||||
if(material.get_amount() < 1)
|
||||
to_chat(user, "<span class='warning'>You need one [material.name] sheet to do this!</span>")
|
||||
to_chat(user, span_warning("You need one [material.name] sheet to do this!"))
|
||||
return
|
||||
if(locate(/obj/structure/table) in loc)
|
||||
to_chat(user, "<span class='warning'>There's already a table built here!</span>")
|
||||
to_chat(user, span_warning("There's already a table built here!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding [material] to [src]...</span>")
|
||||
to_chat(user, span_notice("You start adding [material] to [src]..."))
|
||||
if(!do_after(user, 2 SECONDS, target = src) || !material.use(1) || (locate(/obj/structure/table) in loc))
|
||||
return
|
||||
make_new_table(material.tableVariant)
|
||||
else if(istype(material, /obj/item/stack/sheet))
|
||||
if(material.get_amount() < 1)
|
||||
to_chat(user, "<span class='warning'>You need one sheet to do this!</span>")
|
||||
to_chat(user, span_warning("You need one sheet to do this!"))
|
||||
return
|
||||
if(locate(/obj/structure/table) in loc)
|
||||
to_chat(user, "<span class='warning'>There's already a table built here!</span>")
|
||||
to_chat(user, span_warning("There's already a table built here!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding [material] to [src]...</span>")
|
||||
to_chat(user, span_notice("You start adding [material] to [src]..."))
|
||||
if(!do_after(user, 2 SECONDS, target = src) || !material.use(1) || (locate(/obj/structure/table) in loc))
|
||||
return
|
||||
var/list/material_list = list()
|
||||
@@ -107,9 +107,9 @@
|
||||
carpet_type = I.type
|
||||
if (toConstruct)
|
||||
if(material.get_amount() < 1)
|
||||
to_chat(user, "<span class='warning'>You need one [material.name] sheet to do this!</span>")
|
||||
to_chat(user, span_warning("You need one [material.name] sheet to do this!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start adding [material] to [src]...</span>")
|
||||
to_chat(user, span_notice("You start adding [material] to [src]..."))
|
||||
if(do_after(user, 20, target = src) && material.use(1))
|
||||
make_new_table(toConstruct, null, carpet_type)
|
||||
else
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
. += deconstruction_hints(user)
|
||||
|
||||
/obj/structure/table/proc/deconstruction_hints(mob/user)
|
||||
return "<span class='notice'>The top is <b>screwed</b> on, but the main <b>bolts</b> are also visible.</span>"
|
||||
return span_notice("The top is <b>screwed</b> on, but the main <b>bolts</b> are also visible.")
|
||||
|
||||
/obj/structure/table/update_icon(updates=ALL)
|
||||
. = ..()
|
||||
@@ -68,20 +68,20 @@
|
||||
if(isliving(user.pulling))
|
||||
var/mob/living/pushed_mob = user.pulling
|
||||
if(pushed_mob.buckled)
|
||||
to_chat(user, "<span class='warning'>[pushed_mob] is buckled to [pushed_mob.buckled]!</span>")
|
||||
to_chat(user, span_warning("[pushed_mob] is buckled to [pushed_mob.buckled]!"))
|
||||
return
|
||||
if(user.combat_mode)
|
||||
switch(user.grab_state)
|
||||
if(GRAB_PASSIVE)
|
||||
to_chat(user, "<span class='warning'>You need a better grip to do that!</span>")
|
||||
to_chat(user, span_warning("You need a better grip to do that!"))
|
||||
return
|
||||
if(GRAB_AGGRESSIVE)
|
||||
tablepush(user, pushed_mob)
|
||||
if(GRAB_NECK to GRAB_KILL)
|
||||
tablelimbsmash(user, pushed_mob)
|
||||
else
|
||||
pushed_mob.visible_message("<span class='notice'>[user] begins to place [pushed_mob] onto [src]...</span>", \
|
||||
"<span class='userdanger'>[user] begins to place [pushed_mob] onto [src]...</span>")
|
||||
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))
|
||||
tableplace(user, pushed_mob)
|
||||
else
|
||||
@@ -90,8 +90,8 @@
|
||||
else if(user.pulling.pass_flags & PASSTABLE)
|
||||
user.Move_Pulled(src)
|
||||
if (user.pulling.loc == loc)
|
||||
user.visible_message("<span class='notice'>[user] places [user.pulling] onto [src].</span>",
|
||||
"<span class='notice'>You place [user.pulling] onto [src].</span>")
|
||||
user.visible_message(span_notice("[user] places [user.pulling] onto [src]."),
|
||||
span_notice("You place [user.pulling] onto [src]."))
|
||||
user.stop_pulling()
|
||||
return ..()
|
||||
|
||||
@@ -117,13 +117,13 @@
|
||||
/obj/structure/table/proc/tableplace(mob/living/user, mob/living/pushed_mob)
|
||||
pushed_mob.forceMove(loc)
|
||||
pushed_mob.set_resting(TRUE, TRUE)
|
||||
pushed_mob.visible_message("<span class='notice'>[user] places [pushed_mob] onto [src].</span>", \
|
||||
"<span class='notice'>[user] places [pushed_mob] onto [src].</span>")
|
||||
pushed_mob.visible_message(span_notice("[user] places [pushed_mob] onto [src]."), \
|
||||
span_notice("[user] places [pushed_mob] onto [src]."))
|
||||
log_combat(user, pushed_mob, "places", null, "onto [src]")
|
||||
|
||||
/obj/structure/table/proc/tablepush(mob/living/user, mob/living/pushed_mob)
|
||||
if(HAS_TRAIT(user, TRAIT_PACIFISM))
|
||||
to_chat(user, "<span class='danger'>Throwing [pushed_mob] onto the table might hurt them!</span>")
|
||||
to_chat(user, span_danger("Throwing [pushed_mob] onto the table might hurt them!"))
|
||||
return
|
||||
var/added_passtable = FALSE
|
||||
if(!(pushed_mob.pass_flags & PASSTABLE))
|
||||
@@ -140,8 +140,8 @@
|
||||
if(user.mind?.martial_art.smashes_tables && user.mind?.martial_art.can_use(user))
|
||||
deconstruct(FALSE)
|
||||
playsound(pushed_mob, 'sound/effects/tableslam.ogg', 90, TRUE)
|
||||
pushed_mob.visible_message("<span class='danger'>[user] slams [pushed_mob] onto \the [src]!</span>", \
|
||||
"<span class='userdanger'>[user] slams you onto \the [src]!</span>")
|
||||
pushed_mob.visible_message(span_danger("[user] slams [pushed_mob] onto \the [src]!"), \
|
||||
span_userdanger("[user] slams you onto \the [src]!"))
|
||||
log_combat(user, pushed_mob, "tabled", null, "onto [src]")
|
||||
SEND_SIGNAL(pushed_mob, COMSIG_ADD_MOOD_EVENT, "table", /datum/mood_event/table)
|
||||
|
||||
@@ -157,8 +157,8 @@
|
||||
if(user.mind?.martial_art.smashes_tables && user.mind?.martial_art.can_use(user))
|
||||
deconstruct(FALSE)
|
||||
playsound(pushed_mob, 'sound/effects/bang.ogg', 90, TRUE)
|
||||
pushed_mob.visible_message("<span class='danger'>[user] smashes [pushed_mob]'s [banged_limb.name] against \the [src]!</span>",
|
||||
"<span class='userdanger'>[user] smashes your [banged_limb.name] against \the [src]</span>")
|
||||
pushed_mob.visible_message(span_danger("[user] smashes [pushed_mob]'s [banged_limb.name] against \the [src]!"),
|
||||
span_userdanger("[user] smashes your [banged_limb.name] against \the [src]"))
|
||||
log_combat(user, pushed_mob, "head slammed", null, "against [src]")
|
||||
SEND_SIGNAL(pushed_mob, COMSIG_ADD_MOOD_EVENT, "table", /datum/mood_event/table_limbsmash, banged_limb)
|
||||
|
||||
@@ -166,13 +166,13 @@
|
||||
var/list/modifiers = params2list(params)
|
||||
if(!(flags_1 & NODECONSTRUCT_1) && LAZYACCESS(modifiers, RIGHT_CLICK))
|
||||
if(I.tool_behaviour == TOOL_SCREWDRIVER && deconstruction_ready)
|
||||
to_chat(user, "<span class='notice'>You start disassembling [src]...</span>")
|
||||
to_chat(user, span_notice("You start disassembling [src]..."))
|
||||
if(I.use_tool(src, user, 20, volume=50))
|
||||
deconstruct(TRUE)
|
||||
return
|
||||
|
||||
if(I.tool_behaviour == TOOL_WRENCH && deconstruction_ready)
|
||||
to_chat(user, "<span class='notice'>You start deconstructing [src]...</span>")
|
||||
to_chat(user, span_notice("You start deconstructing [src]..."))
|
||||
if(I.use_tool(src, user, 40, volume=50))
|
||||
playsound(src.loc, 'sound/items/deconstruct.ogg', 50, TRUE)
|
||||
deconstruct(TRUE, 1)
|
||||
@@ -185,7 +185,7 @@
|
||||
var/obj/item/item = x
|
||||
AfterPutItemOnTable(item, user)
|
||||
SEND_SIGNAL(I, COMSIG_TRY_STORAGE_QUICK_EMPTY, drop_location())
|
||||
user.visible_message("<span class='notice'>[user] empties [I] on [src].</span>")
|
||||
user.visible_message(span_notice("[user] empties [I] on [src]."))
|
||||
return
|
||||
// If the tray IS empty, continue on (tray will be placed on the table like other items)
|
||||
|
||||
@@ -206,8 +206,8 @@
|
||||
else if(HAS_TRAIT(user, TRAIT_QUICK_CARRY))
|
||||
tableplace_delay = 2.75 SECONDS
|
||||
skills_space = " quickly"
|
||||
carried_mob.visible_message("<span class='notice'>[user] begins to[skills_space] place [carried_mob] onto [src]...</span>",
|
||||
"<span class='userdanger'>[user] begins to[skills_space] place [carried_mob] onto [src]...</span>")
|
||||
carried_mob.visible_message(span_notice("[user] begins to[skills_space] place [carried_mob] onto [src]..."),
|
||||
span_userdanger("[user] begins to[skills_space] place [carried_mob] onto [src]..."))
|
||||
if(do_after(user, tableplace_delay, target = carried_mob))
|
||||
user.unbuckle_mob(carried_mob)
|
||||
tableplace(user, carried_mob)
|
||||
@@ -253,7 +253,7 @@
|
||||
/obj/structure/table/rcd_act(mob/user, obj/item/construction/rcd/the_rcd, passed_mode)
|
||||
switch(passed_mode)
|
||||
if(RCD_DECONSTRUCT)
|
||||
to_chat(user, "<span class='notice'>You deconstruct the table.</span>")
|
||||
to_chat(user, span_notice("You deconstruct the table."))
|
||||
qdel(src)
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -354,8 +354,8 @@
|
||||
table_shatter(M)
|
||||
|
||||
/obj/structure/table/glass/proc/table_shatter(mob/living/L)
|
||||
visible_message("<span class='warning'>[src] breaks!</span>",
|
||||
"<span class='danger'>You hear breaking glass.</span>")
|
||||
visible_message(span_warning("[src] breaks!"),
|
||||
span_danger("You hear breaking glass."))
|
||||
var/turf/T = get_turf(src)
|
||||
playsound(T, "shatter", 50, TRUE)
|
||||
for(var/I in debris)
|
||||
@@ -511,22 +511,22 @@
|
||||
|
||||
/obj/structure/table/reinforced/deconstruction_hints(mob/user)
|
||||
if(deconstruction_ready)
|
||||
return "<span class='notice'>The top cover has been <i>welded</i> loose and the main frame's <b>bolts</b> are exposed.</span>"
|
||||
return span_notice("The top cover has been <i>welded</i> loose and the main frame's <b>bolts</b> are exposed.")
|
||||
else
|
||||
return "<span class='notice'>The top cover is firmly <b>welded</b> on.</span>"
|
||||
return span_notice("The top cover is firmly <b>welded</b> on.")
|
||||
|
||||
/obj/structure/table/reinforced/attackby_secondary(obj/item/weapon, mob/user, params)
|
||||
if(weapon.tool_behaviour == TOOL_WELDER)
|
||||
if(weapon.tool_start_check(user, amount = 0))
|
||||
if(deconstruction_ready)
|
||||
to_chat(user, "<span class='notice'>You start strengthening the reinforced table...</span>")
|
||||
to_chat(user, span_notice("You start strengthening the reinforced table..."))
|
||||
if (weapon.use_tool(src, user, 50, volume = 50))
|
||||
to_chat(user, "<span class='notice'>You strengthen the table.</span>")
|
||||
to_chat(user, span_notice("You strengthen the table."))
|
||||
deconstruction_ready = FALSE
|
||||
else
|
||||
to_chat(user, "<span class='notice'>You start weakening the reinforced table...</span>")
|
||||
to_chat(user, span_notice("You start weakening the reinforced table..."))
|
||||
if (weapon.use_tool(src, user, 50, volume = 50))
|
||||
to_chat(user, "<span class='notice'>You weaken the table.</span>")
|
||||
to_chat(user, span_notice("You weaken the table."))
|
||||
deconstruction_ready = TRUE
|
||||
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
|
||||
|
||||
@@ -584,7 +584,7 @@
|
||||
/obj/structure/table/optable/tablepush(mob/living/user, mob/living/pushed_mob)
|
||||
pushed_mob.forceMove(loc)
|
||||
pushed_mob.set_resting(TRUE, TRUE)
|
||||
visible_message("<span class='notice'>[user] lays [pushed_mob] on [src].</span>")
|
||||
visible_message(span_notice("[user] lays [pushed_mob] on [src]."))
|
||||
get_patient()
|
||||
|
||||
/obj/structure/table/optable/proc/get_patient()
|
||||
@@ -605,7 +605,7 @@
|
||||
/obj/structure/table/optable/proc/patient_deleted(datum/source)
|
||||
SIGNAL_HANDLER
|
||||
set_patient(null)
|
||||
|
||||
|
||||
/obj/structure/table/optable/proc/check_eligible_patient()
|
||||
get_patient()
|
||||
if(!patient)
|
||||
@@ -630,7 +630,7 @@
|
||||
|
||||
/obj/structure/rack/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>It's held together by a couple of <b>bolts</b>.</span>"
|
||||
. += span_notice("It's held together by a couple of <b>bolts</b>.")
|
||||
|
||||
/obj/structure/rack/CanAllowThrough(atom/movable/mover, turf/target)
|
||||
. = ..()
|
||||
@@ -670,7 +670,7 @@
|
||||
return
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.do_attack_animation(src, ATTACK_EFFECT_KICK)
|
||||
user.visible_message("<span class='danger'>[user] kicks [src].</span>", null, null, COMBAT_MESSAGE_RANGE)
|
||||
user.visible_message(span_danger("[user] kicks [src]."), null, null, COMBAT_MESSAGE_RANGE)
|
||||
take_damage(rand(4,8), BRUTE, MELEE, 1)
|
||||
|
||||
/obj/structure/rack/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
|
||||
@@ -719,13 +719,13 @@
|
||||
if(building)
|
||||
return
|
||||
building = TRUE
|
||||
to_chat(user, "<span class='notice'>You start constructing a rack...</span>")
|
||||
to_chat(user, span_notice("You start constructing a rack..."))
|
||||
if(do_after(user, 50, target = user, progress=TRUE))
|
||||
if(!user.temporarilyRemoveItemFromInventory(src))
|
||||
return
|
||||
var/obj/structure/rack/R = new /obj/structure/rack(user.loc)
|
||||
user.visible_message("<span class='notice'>[user] assembles \a [R].\
|
||||
</span>", "<span class='notice'>You assemble \a [R].</span>")
|
||||
</span>", span_notice("You assemble \a [R]."))
|
||||
R.add_fingerprint(user)
|
||||
qdel(src)
|
||||
building = FALSE
|
||||
|
||||
@@ -54,17 +54,17 @@
|
||||
default_unfasten_wrench(user, I, time = 20)
|
||||
return
|
||||
else if(!user.combat_mode)
|
||||
to_chat(user, "<span class='notice'>[I] does not fit into [src].</span>")
|
||||
to_chat(user, span_notice("[I] does not fit into [src]."))
|
||||
return
|
||||
else
|
||||
return ..()
|
||||
if(full)
|
||||
to_chat(user, "<span class='notice'>[src] can't hold any more of [I].</span>")
|
||||
to_chat(user, span_notice("[src] can't hold any more of [I]."))
|
||||
return
|
||||
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You put [I] in [src].</span>")
|
||||
to_chat(user, span_notice("You put [I] in [src]."))
|
||||
update_appearance()
|
||||
|
||||
/obj/structure/tank_dispenser/ui_state(mob/user)
|
||||
|
||||
@@ -40,18 +40,18 @@
|
||||
. += "It is holding one [tank]."
|
||||
else
|
||||
. += "It is empty."
|
||||
. += "<span class='notice'>It is held together by some <b>screws</b>.</span>"
|
||||
. += span_notice("It is held together by some <b>screws</b>.")
|
||||
|
||||
/obj/structure/tank_holder/attackby(obj/item/W, mob/living/user, params)
|
||||
if(user.combat_mode)
|
||||
return ..()
|
||||
if(W.tool_behaviour == TOOL_WRENCH)
|
||||
to_chat(user, "<span class='notice'>You begin to [anchored ? "unwrench" : "wrench"] [src].</span>")
|
||||
to_chat(user, span_notice("You begin to [anchored ? "unwrench" : "wrench"] [src]."))
|
||||
if(W.use_tool(src, user, 20, volume=50))
|
||||
to_chat(user, "<span class='notice'>You successfully [anchored ? "unwrench" : "wrench"] [src].</span>")
|
||||
to_chat(user, span_notice("You successfully [anchored ? "unwrench" : "wrench"] [src]."))
|
||||
set_anchored(!anchored)
|
||||
else if(!SEND_SIGNAL(W, COMSIG_CONTAINER_TRY_ATTACH, src, user))
|
||||
to_chat(user, "<span class='warning'>[W] does not fit in [src].</span>")
|
||||
to_chat(user, span_warning("[W] does not fit in [src]."))
|
||||
return
|
||||
|
||||
/obj/structure/tank_holder/screwdriver_act(mob/living/user, obj/item/I)
|
||||
@@ -79,7 +79,7 @@
|
||||
return ..()
|
||||
if(!Adjacent(user) || issilicon(user))
|
||||
return ..()
|
||||
to_chat(user, "<span class='notice'>You take [tank] from [src].</span>")
|
||||
to_chat(user, span_notice("You take [tank] from [src]."))
|
||||
add_fingerprint(user)
|
||||
tank.add_fingerprint(user)
|
||||
user.put_in_hands(tank)
|
||||
|
||||
@@ -83,7 +83,7 @@
|
||||
if(.)
|
||||
return
|
||||
if (moving && obj_flags & EMAGGED)
|
||||
visible_message("<span class='warning'>The [src]'s control panel fizzles slightly.</span>")
|
||||
visible_message(span_warning("The [src]'s control panel fizzles slightly."))
|
||||
return
|
||||
switch(action)
|
||||
if("toggle")
|
||||
@@ -113,10 +113,10 @@
|
||||
if (!istype(target, /obj/item/training_toolbox) && !istype(target, /obj/item/target))
|
||||
return ..()
|
||||
if (obj_flags & EMAGGED)
|
||||
to_chat(user, "<span class='warning'>The toolbox is somehow stuck on! It won't budge!</span>")
|
||||
to_chat(user, span_warning("The toolbox is somehow stuck on! It won't budge!"))
|
||||
return
|
||||
attach_item(target)
|
||||
to_chat(user, "<span class='notice'>You attach \the [attached_item] to the training device.</span>")
|
||||
to_chat(user, span_notice("You attach \the [attached_item] to the training device."))
|
||||
playsound(src, "rustle", 50, TRUE)
|
||||
|
||||
/**
|
||||
@@ -183,9 +183,9 @@
|
||||
if (!attached_item)
|
||||
return
|
||||
if (obj_flags & EMAGGED)
|
||||
to_chat(user, "<span class='warning'>The toolbox is somehow stuck on! It won't budge!</span>")
|
||||
to_chat(user, span_warning("The toolbox is somehow stuck on! It won't budge!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You remove \the [attached_item] from the training device.</span>")
|
||||
to_chat(user, span_notice("You remove \the [attached_item] from the training device."))
|
||||
remove_attached_item(user)
|
||||
playsound(src, "rustle", 50, TRUE)
|
||||
|
||||
@@ -320,7 +320,7 @@
|
||||
obj_flags |= EMAGGED
|
||||
remove_attached_item(throwing = TRUE) //Toss out the old attached item!
|
||||
attach_item(new /obj/item/storage/toolbox/syndicate(src))
|
||||
to_chat(user, "<span class='warning'>You override the training machine's safety protocols, and activate its realistic combat feature. A toolbox pops out of a slot on the top.</span>")
|
||||
to_chat(user, span_warning("You override the training machine's safety protocols, and activate its realistic combat feature. A toolbox pops out of a slot on the top."))
|
||||
playsound(src, 'sound/machines/click.ogg', 50, TRUE)
|
||||
add_overlay("evil_trainer")
|
||||
|
||||
@@ -328,12 +328,12 @@
|
||||
. = ..()
|
||||
var/has_buckled_mob = has_buckled_mobs()
|
||||
if(has_buckled_mob)
|
||||
. += "<span class='notice'><b>Alt-Click to unbuckle \the [buckled_mobs[1]]</b></span>"
|
||||
. += span_notice("<b>Alt-Click to unbuckle \the [buckled_mobs[1]]</b>")
|
||||
if (obj_flags & EMAGGED)
|
||||
. += "<span class='warning'>It has a dangerous-looking toolbox attached to it, and the control panel is smoking sightly...</span>"
|
||||
. += span_warning("It has a dangerous-looking toolbox attached to it, and the control panel is smoking sightly...")
|
||||
else if (!has_buckled_mob && attached_item) //Can't removed the syndicate toolbox!
|
||||
. += "<span class='notice'><b>Alt-Click to remove \the [attached_item]</b></span>"
|
||||
. += "<span class='notice'><b>Click to open control interface.</b></span>"
|
||||
. += span_notice("<b>Alt-Click to remove \the [attached_item]</b>")
|
||||
. += span_notice("<b>Click to open control interface.</b>")
|
||||
|
||||
/**
|
||||
* Device that simply counts the number of times you've hit a mob or target with. Looks like a toolbox but isn't.
|
||||
@@ -396,19 +396,19 @@
|
||||
|
||||
/obj/item/training_toolbox/AltClick(mob/user)
|
||||
. = ..()
|
||||
to_chat(user, "<span class='notice'>You push the 'Lap' button on the toolbox's display.</span>")
|
||||
to_chat(user, span_notice("You push the 'Lap' button on the toolbox's display."))
|
||||
lap_hits = initial(lap_hits)
|
||||
|
||||
/obj/item/training_toolbox/examine(mob/user)
|
||||
. = ..()
|
||||
if(!in_range(src, user) && !isobserver(user))
|
||||
. += "<span class='notice'>You can see a display on the back. You'll need to get closer to read it, though.</span>"
|
||||
. += span_notice("You can see a display on the back. You'll need to get closer to read it, though.")
|
||||
return
|
||||
. += "<span class='notice'>A display on the back reads:</span>"
|
||||
. += "<span class='notice'>Total Hits: <b>[total_hits]</b></span>"
|
||||
. += span_notice("A display on the back reads:")
|
||||
. += span_notice("Total Hits: <b>[total_hits]</b>")
|
||||
if (lap_hits != total_hits)
|
||||
. += "<span class='notice'>Current Lap: <b>[lap_hits]</b></span>"
|
||||
. += "<span class='notice'><b>Alt-Click to 'Lap' the hit counter.</b></span>"
|
||||
. += span_notice("Current Lap: <b>[lap_hits]</b>")
|
||||
. += span_notice("<b>Alt-Click to 'Lap' the hit counter.</b>")
|
||||
|
||||
#undef MIN_RANGE
|
||||
#undef MIN_SPEED
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
R.transfer_fingerprints_to(TP)
|
||||
TP.add_fingerprint(user)
|
||||
TP.setDir(turn(src.dir, -90))
|
||||
user.visible_message("<span class='notice'>[user] inserts [R].</span>", "<span class='notice'>You insert [R].</span>")
|
||||
user.visible_message(span_notice("[user] inserts [R]."), span_notice("You insert [R]."))
|
||||
qdel(R)
|
||||
|
||||
|
||||
@@ -69,10 +69,10 @@
|
||||
var/mob/living/GM = user.pulling
|
||||
if(user.grab_state >= GRAB_AGGRESSIVE)
|
||||
if(GM.buckled || GM.has_buckled_mobs())
|
||||
to_chat(user, "<span class='warning'>[GM] is attached to something!</span>")
|
||||
to_chat(user, span_warning("[GM] is attached to something!"))
|
||||
return
|
||||
for(var/obj/structure/transit_tube_pod/pod in loc)
|
||||
pod.visible_message("<span class='warning'>[user] starts putting [GM] into the [pod]!</span>")
|
||||
pod.visible_message(span_warning("[user] starts putting [GM] into the [pod]!"))
|
||||
if(do_after(user, 15, 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)
|
||||
@@ -86,7 +86,7 @@
|
||||
|
||||
else if(open_status == STATION_TUBE_OPEN)
|
||||
if(pod.contents.len && user.loc != pod)
|
||||
user.visible_message("<span class='notice'>[user] starts emptying [pod]'s contents onto the floor.</span>", "<span class='notice'>You start emptying [pod]'s contents onto the floor...</span>")
|
||||
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(pod && pod.loc == loc)
|
||||
for(var/atom/movable/AM in pod)
|
||||
@@ -249,13 +249,13 @@
|
||||
|
||||
/obj/structure/transit_tube/station/dispenser/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>This station will create a pod for you to ride, no need to wait for one.</span>"
|
||||
. += span_notice("This station will create a pod for you to ride, no need to wait for one.")
|
||||
|
||||
/obj/structure/transit_tube/station/dispenser/Bumped(atom/movable/AM)
|
||||
if(!(istype(AM) && AM.dir == boarding_dir))
|
||||
return
|
||||
var/obj/structure/transit_tube_pod/dispensed/pod = new(loc)
|
||||
AM.visible_message("<span class='notice'>[pod] forms around [AM].</span>", "<span class='notice'>[pod] materializes around you.</span>")
|
||||
AM.visible_message(span_notice("[pod] forms around [AM]."), span_notice("[pod] materializes around you."))
|
||||
playsound(src, 'sound/weapons/emitter2.ogg', 50, TRUE)
|
||||
pod.setDir(turn(src.dir, -90))
|
||||
AM.forceMove(pod)
|
||||
|
||||
@@ -35,11 +35,11 @@
|
||||
if(W.tool_behaviour == TOOL_WRENCH)
|
||||
if(tube_construction)
|
||||
for(var/obj/structure/transit_tube_pod/pod in src.loc)
|
||||
to_chat(user, "<span class='warning'>Remove the pod first!</span>")
|
||||
to_chat(user, span_warning("Remove the pod first!"))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] starts to detach \the [src].</span>", "<span class='notice'>You start to detach the [name]...</span>")
|
||||
user.visible_message(span_notice("[user] starts to detach \the [src]."), span_notice("You start to detach the [name]..."))
|
||||
if(W.use_tool(src, user, 2 SECONDS, volume=50))
|
||||
to_chat(user, "<span class='notice'>You detach the [name].</span>")
|
||||
to_chat(user, span_notice("You detach the [name]."))
|
||||
var/obj/structure/c_transit_tube/R = new tube_construction(loc)
|
||||
R.setDir(dir)
|
||||
transfer_fingerprints_to(R)
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
for(var/obj/structure/transit_tube/tube in source_turf)
|
||||
existing_tubes +=1
|
||||
if(existing_tubes >= 2)
|
||||
to_chat(user, "<span class='warning'>You cannot wrench any more transit tubes!</span> ")
|
||||
to_chat(user, "[span_warning("You cannot wrench any more transit tubes!")] ")
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -43,10 +43,10 @@
|
||||
..()
|
||||
if(!can_wrench_in_loc(user))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start attaching the [name]...</span>")
|
||||
to_chat(user, span_notice("You start attaching the [name]..."))
|
||||
add_fingerprint(user)
|
||||
if(I.use_tool(src, user, 2 SECONDS, volume=50, extra_checks=CALLBACK(src, .proc/can_wrench_in_loc, user)))
|
||||
to_chat(user, "<span class='notice'>You attach the [name].</span>")
|
||||
to_chat(user, span_notice("You attach the [name]."))
|
||||
var/obj/structure/transit_tube/R = new build_type(loc, dir)
|
||||
transfer_fingerprints_to(R)
|
||||
qdel(src)
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
if(!moving)
|
||||
I.play_tool_sound(src)
|
||||
if(contents.len)
|
||||
user.visible_message("<span class='notice'>[user] empties \the [src].</span>", "<span class='notice'>You empty \the [src].</span>")
|
||||
user.visible_message(span_notice("[user] empties \the [src]."), span_notice("You empty \the [src]."))
|
||||
empty_pod()
|
||||
else
|
||||
deconstruct(TRUE, user)
|
||||
@@ -52,7 +52,7 @@
|
||||
if(user)
|
||||
location = user.loc
|
||||
add_fingerprint(user)
|
||||
user.visible_message("<span class='notice'>[user] removes [src].</span>", "<span class='notice'>You remove [src].</span>")
|
||||
user.visible_message(span_notice("[user] removes [src]."), span_notice("You remove [src]."))
|
||||
var/obj/structure/c_transit_tube_pod/R = new/obj/structure/c_transit_tube_pod(location)
|
||||
transfer_fingerprints_to(R)
|
||||
R.setDir(dir)
|
||||
@@ -85,9 +85,9 @@
|
||||
if(!moving)
|
||||
user.changeNext_move(CLICK_CD_BREAKOUT)
|
||||
user.last_special = world.time + CLICK_CD_BREAKOUT
|
||||
to_chat(user, "<span class='notice'>You start trying to escape from the pod...</span>")
|
||||
to_chat(user, span_notice("You start trying to escape from the pod..."))
|
||||
if(do_after(user, 1 MINUTES, target = src))
|
||||
to_chat(user, "<span class='notice'>You manage to open the pod.</span>")
|
||||
to_chat(user, span_notice("You manage to open the pod."))
|
||||
empty_pod()
|
||||
|
||||
/obj/structure/transit_tube_pod/proc/empty_pod(atom/location)
|
||||
@@ -167,7 +167,7 @@
|
||||
var/list/savedcontents = contents.Copy()
|
||||
var/saveddir = dir
|
||||
var/turf/destination = get_edge_target_turf(src,saveddir)
|
||||
visible_message("<span class='warning'>[src] ejects its insides out!</span>")
|
||||
visible_message(span_warning("[src] ejects its insides out!"))
|
||||
deconstruct(FALSE)//we automatically deconstruct the pod
|
||||
for(var/i in savedcontents)
|
||||
var/atom/movable/AM = i
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
if(user.mind && (user.mind in immune_minds))
|
||||
return
|
||||
if(get_dist(user, src) <= 1)
|
||||
. += "<span class='notice'>You reveal [src]!</span>"
|
||||
. += span_notice("You reveal [src]!")
|
||||
flare()
|
||||
|
||||
/obj/structure/trap/proc/flare()
|
||||
@@ -186,7 +186,7 @@
|
||||
icon_state = "trap-fire"
|
||||
|
||||
/obj/structure/trap/fire/trap_effect(mob/living/L)
|
||||
to_chat(L, "<span class='danger'><B>Spontaneous combustion!</B></span>")
|
||||
to_chat(L, span_danger("<B>Spontaneous combustion!</B>"))
|
||||
L.Paralyze(20)
|
||||
new /obj/effect/hotspot(get_turf(src))
|
||||
|
||||
@@ -196,7 +196,7 @@
|
||||
icon_state = "trap-frost"
|
||||
|
||||
/obj/structure/trap/chill/trap_effect(mob/living/L)
|
||||
to_chat(L, "<span class='danger'><B>You're frozen solid!</B></span>")
|
||||
to_chat(L, span_danger("<B>You're frozen solid!</B>"))
|
||||
L.Paralyze(20)
|
||||
L.adjust_bodytemperature(-300)
|
||||
L.apply_status_effect(/datum/status_effect/freon)
|
||||
@@ -209,7 +209,7 @@
|
||||
|
||||
|
||||
/obj/structure/trap/damage/trap_effect(mob/living/L)
|
||||
to_chat(L, "<span class='danger'><B>The ground quakes beneath your feet!</B></span>")
|
||||
to_chat(L, span_danger("<B>The ground quakes beneath your feet!</B>"))
|
||||
L.Paralyze(100)
|
||||
L.adjustBruteLoss(35)
|
||||
var/obj/structure/flora/rock/giant_rock = new(get_turf(src))
|
||||
@@ -233,7 +233,7 @@
|
||||
icon_state = "trap-cult"
|
||||
|
||||
/obj/structure/trap/cult/trap_effect(mob/living/L)
|
||||
to_chat(L, "<span class='danger'><B>With a crack, the hostile constructs come out of hiding, stunning you!</B></span>")
|
||||
to_chat(L, span_danger("<B>With a crack, the hostile constructs come out of hiding, stunning you!</B>"))
|
||||
L.electrocute_act(10, src, flags = SHOCK_NOGLOVES) // electrocute act does a message.
|
||||
L.Paralyze(20)
|
||||
new /mob/living/simple_animal/hostile/construct/proteon/hostile(loc)
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
if(voting_active)
|
||||
apply_vote(I,user)
|
||||
else
|
||||
to_chat(user,"<span class='warning'>[src] is in maintenance mode. Voting is not possible at the moment.</span>")
|
||||
to_chat(user,span_warning("[src] is in maintenance mode. Voting is not possible at the moment."))
|
||||
return
|
||||
return ..()
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
if(!can_interact(user))
|
||||
return
|
||||
if(!is_operator(user))
|
||||
to_chat(user,"<span class='warning'>Voting box operator authorization required!</span>")
|
||||
to_chat(user,span_warning("Voting box operator authorization required!"))
|
||||
return
|
||||
|
||||
if(href_list["act"])
|
||||
@@ -77,7 +77,7 @@
|
||||
if("reset_voted")
|
||||
if(voted)
|
||||
voted.Cut()
|
||||
to_chat(user,"<span class='notice'>You reset the voter buffer. Everyone can vote again.</span>")
|
||||
to_chat(user,span_notice("You reset the voter buffer. Everyone can vote again."))
|
||||
if("raffle")
|
||||
raffle(user)
|
||||
if("shred")
|
||||
@@ -90,7 +90,7 @@
|
||||
|
||||
/obj/structure/votebox/proc/register_owner(obj/item/card/id/I,mob/living/user)
|
||||
owner = I
|
||||
to_chat(user,"<span class='notice'>You register [src] to your ID card.</span>")
|
||||
to_chat(user,span_notice("You register [src] to your ID card."))
|
||||
ui_interact(user)
|
||||
|
||||
/obj/structure/votebox/proc/set_description(mob/user)
|
||||
@@ -105,16 +105,16 @@
|
||||
var/obj/item/card/id/voter_card = user.get_idcard()
|
||||
if(id_auth)
|
||||
if(!voter_card)
|
||||
to_chat(user,"<span class='warning'>[src] requires a valid ID card to vote!</span>")
|
||||
to_chat(user,span_warning("[src] requires a valid ID card to vote!"))
|
||||
return
|
||||
if(voted && (voter_card in voted))
|
||||
to_chat(user,"<span class='warning'>[src] allows only one vote per person.</span>")
|
||||
to_chat(user,span_warning("[src] allows only one vote per person."))
|
||||
return
|
||||
if(user.transferItemToLoc(I,src))
|
||||
if(!voted)
|
||||
voted = list()
|
||||
voted += voter_card
|
||||
to_chat(user,"<span class='notice'>You cast your vote.</span>")
|
||||
to_chat(user,span_notice("You cast your vote."))
|
||||
|
||||
/obj/structure/votebox/proc/valid_vote(obj/item/paper/I)
|
||||
if(length_char(I.info) > VOTE_TEXT_LIMIT || findtext(I.info,"<h1>Voting Results:</h1><hr><ol>"))
|
||||
@@ -124,7 +124,7 @@
|
||||
/obj/structure/votebox/proc/shred(mob/user)
|
||||
for(var/obj/item/paper/P in contents)
|
||||
qdel(P)
|
||||
to_chat(user,"<span class='notice'>You shred the current votes.</span>")
|
||||
to_chat(user,span_notice("You shred the current votes."))
|
||||
|
||||
/obj/structure/votebox/wrench_act(mob/living/user, obj/item/I)
|
||||
. = ..()
|
||||
@@ -134,10 +134,10 @@
|
||||
/obj/structure/votebox/crowbar_act(mob/living/user, obj/item/I)
|
||||
. = ..()
|
||||
if(voting_active)
|
||||
to_chat(user,"<span class='warning'>You can only retrieve votes if maintenance mode is active!</span>")
|
||||
to_chat(user,span_warning("You can only retrieve votes if maintenance mode is active!"))
|
||||
return FALSE
|
||||
dump_contents()
|
||||
to_chat(user,"<span class='notice'>You open vote retrieval hatch and dump all the votes.</span>")
|
||||
to_chat(user,span_notice("You open vote retrieval hatch and dump all the votes."))
|
||||
return TRUE
|
||||
|
||||
/obj/structure/votebox/dump_contents()
|
||||
@@ -158,7 +158,7 @@
|
||||
else
|
||||
var/obj/item/paper/P = pick(options)
|
||||
user.put_in_hands(P)
|
||||
to_chat(user,"<span class='notice'>[src] pops out random vote.</span>")
|
||||
to_chat(user,span_notice("[src] pops out random vote."))
|
||||
|
||||
/obj/structure/votebox/proc/print_tally(mob/user)
|
||||
var/list/results = list()
|
||||
@@ -207,7 +207,7 @@
|
||||
P.name = "Voting Results"
|
||||
P.update_appearance()
|
||||
user.put_in_hands(P)
|
||||
to_chat(user,"<span class='notice'>[src] prints out the voting tally.</span>")
|
||||
to_chat(user,span_notice("[src] prints out the voting tally."))
|
||||
|
||||
/obj/structure/votebox/update_icon_state()
|
||||
icon_state = "votebox_[voting_active ? "active" : "maint"]"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
if(swirlie)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
playsound(src.loc, "swing_hit", 25, TRUE)
|
||||
swirlie.visible_message("<span class='danger'>[user] slams the toilet seat onto [swirlie]'s head!</span>", "<span class='userdanger'>[user] slams the toilet seat onto your head!</span>", "<span class='hear'>You hear reverberating porcelain.</span>")
|
||||
swirlie.visible_message(span_danger("[user] slams the toilet seat onto [swirlie]'s head!"), span_userdanger("[user] slams the toilet seat onto your head!"), span_hear("You hear reverberating porcelain."))
|
||||
log_combat(user, swirlie, "swirlied (brute)")
|
||||
swirlie.adjustBruteLoss(5)
|
||||
|
||||
@@ -34,15 +34,15 @@
|
||||
var/mob/living/GM = user.pulling
|
||||
if(user.grab_state >= GRAB_AGGRESSIVE)
|
||||
if(GM.loc != get_turf(src))
|
||||
to_chat(user, "<span class='warning'>[GM] needs to be on [src]!</span>")
|
||||
to_chat(user, span_warning("[GM] needs to be on [src]!"))
|
||||
return
|
||||
if(!swirlie)
|
||||
if(open)
|
||||
GM.visible_message("<span class='danger'>[user] starts to give [GM] a swirlie!</span>", "<span class='userdanger'>[user] starts to give you a swirlie...</span>")
|
||||
GM.visible_message(span_danger("[user] starts to give [GM] a swirlie!"), span_userdanger("[user] starts to give you a swirlie..."))
|
||||
swirlie = GM
|
||||
var/was_alive = (swirlie.stat != DEAD)
|
||||
if(do_after(user, 3 SECONDS, target = src, timed_action_flags = IGNORE_HELD_ITEM))
|
||||
GM.visible_message("<span class='danger'>[user] gives [GM] a swirlie!</span>", "<span class='userdanger'>[user] gives you a swirlie!</span>", "<span class='hear'>You hear a toilet flushing.</span>")
|
||||
GM.visible_message(span_danger("[user] gives [GM] a swirlie!"), span_userdanger("[user] gives you a swirlie!"), span_hear("You hear a toilet flushing."))
|
||||
if(iscarbon(GM))
|
||||
var/mob/living/carbon/C = GM
|
||||
if(!C.internal)
|
||||
@@ -56,22 +56,22 @@
|
||||
swirlie = null
|
||||
else
|
||||
playsound(src.loc, 'sound/effects/bang.ogg', 25, TRUE)
|
||||
GM.visible_message("<span class='danger'>[user] slams [GM.name] into [src]!</span>", "<span class='userdanger'>[user] slams you into [src]!</span>")
|
||||
GM.visible_message(span_danger("[user] slams [GM.name] into [src]!"), span_userdanger("[user] slams you into [src]!"))
|
||||
log_combat(user, GM, "toilet slammed")
|
||||
GM.adjustBruteLoss(5)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need a tighter grip!</span>")
|
||||
to_chat(user, span_warning("You need a tighter grip!"))
|
||||
|
||||
else if(cistern && !open && user.CanReach(src))
|
||||
if(!contents.len)
|
||||
to_chat(user, "<span class='notice'>The cistern is empty.</span>")
|
||||
to_chat(user, span_notice("The cistern is empty."))
|
||||
else
|
||||
var/obj/item/I = pick(contents)
|
||||
if(ishuman(user))
|
||||
user.put_in_hands(I)
|
||||
else
|
||||
I.forceMove(drop_location())
|
||||
to_chat(user, "<span class='notice'>You find [I] in the cistern.</span>")
|
||||
to_chat(user, span_notice("You find [I] in the cistern."))
|
||||
w_items -= I.w_class
|
||||
else
|
||||
open = !open
|
||||
@@ -97,10 +97,10 @@
|
||||
/obj/structure/toilet/attackby(obj/item/I, mob/living/user, params)
|
||||
add_fingerprint(user)
|
||||
if(I.tool_behaviour == TOOL_CROWBAR)
|
||||
to_chat(user, "<span class='notice'>You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]...</span>")
|
||||
to_chat(user, span_notice("You start to [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]..."))
|
||||
playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, TRUE)
|
||||
if(I.use_tool(src, user, 30))
|
||||
user.visible_message("<span class='notice'>[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!</span>", "<span class='notice'>You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!</span>", "<span class='hear'>You hear grinding porcelain.</span>")
|
||||
user.visible_message(span_notice("[user] [cistern ? "replaces the lid on the cistern" : "lifts the lid off the cistern"]!"), span_notice("You [cistern ? "replace the lid on the cistern" : "lift the lid off the cistern"]!"), span_hear("You hear grinding porcelain."))
|
||||
cistern = !cistern
|
||||
update_appearance()
|
||||
else if(I.tool_behaviour == TOOL_WRENCH && !(flags_1&NODECONSTRUCT_1))
|
||||
@@ -108,16 +108,16 @@
|
||||
deconstruct()
|
||||
else if(cistern && !user.combat_mode)
|
||||
if(I.w_class > WEIGHT_CLASS_NORMAL)
|
||||
to_chat(user, "<span class='warning'>[I] does not fit!</span>")
|
||||
to_chat(user, span_warning("[I] does not fit!"))
|
||||
return
|
||||
if(w_items + I.w_class > WEIGHT_CLASS_HUGE)
|
||||
to_chat(user, "<span class='warning'>The cistern is full!</span>")
|
||||
to_chat(user, span_warning("The cistern is full!"))
|
||||
return
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
to_chat(user, "<span class='warning'>\The [I] is stuck to your hand, you cannot put it in the cistern!</span>")
|
||||
to_chat(user, span_warning("\The [I] is stuck to your hand, you cannot put it in the cistern!"))
|
||||
return
|
||||
w_items += I.w_class
|
||||
to_chat(user, "<span class='notice'>You carefully place [I] into the cistern.</span>")
|
||||
to_chat(user, span_notice("You carefully place [I] into the cistern."))
|
||||
|
||||
else if(istype(I, /obj/item/reagent_containers) && !user.combat_mode)
|
||||
if (!open)
|
||||
@@ -128,7 +128,7 @@
|
||||
return
|
||||
var/obj/item/reagent_containers/RG = I
|
||||
RG.reagents.add_reagent(/datum/reagent/water, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
|
||||
to_chat(user, "<span class='notice'>You fill [RG] from [src]. Gross.</span>")
|
||||
to_chat(user, span_notice("You fill [RG] from [src]. Gross."))
|
||||
. = ..()
|
||||
|
||||
/obj/structure/toilet/secret
|
||||
@@ -185,23 +185,23 @@
|
||||
var/mob/living/GM = user.pulling
|
||||
if(user.grab_state >= GRAB_AGGRESSIVE)
|
||||
if(GM.loc != get_turf(src))
|
||||
to_chat(user, "<span class='notice'>[GM.name] needs to be on [src].</span>")
|
||||
to_chat(user, span_notice("[GM.name] needs to be on [src]."))
|
||||
return
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.visible_message("<span class='danger'>[user] slams [GM] into [src]!</span>", "<span class='danger'>You slam [GM] into [src]!</span>")
|
||||
user.visible_message(span_danger("[user] slams [GM] into [src]!"), span_danger("You slam [GM] into [src]!"))
|
||||
GM.adjustBruteLoss(8)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>You need a tighter grip!</span>")
|
||||
to_chat(user, span_warning("You need a tighter grip!"))
|
||||
|
||||
else if(exposed)
|
||||
if(!hiddenitem)
|
||||
to_chat(user, "<span class='warning'>There is nothing in the drain holder!</span>")
|
||||
to_chat(user, span_warning("There is nothing in the drain holder!"))
|
||||
else
|
||||
if(ishuman(user))
|
||||
user.put_in_hands(hiddenitem)
|
||||
else
|
||||
hiddenitem.forceMove(get_turf(src))
|
||||
to_chat(user, "<span class='notice'>You fish [hiddenitem] out of the drain enclosure.</span>")
|
||||
to_chat(user, span_notice("You fish [hiddenitem] out of the drain enclosure."))
|
||||
hiddenitem = null
|
||||
else
|
||||
..()
|
||||
@@ -209,28 +209,28 @@
|
||||
/obj/structure/urinal/attackby(obj/item/I, mob/living/user, params)
|
||||
if(exposed)
|
||||
if (hiddenitem)
|
||||
to_chat(user, "<span class='warning'>There is already something in the drain enclosure!</span>")
|
||||
to_chat(user, span_warning("There is already something in the drain enclosure!"))
|
||||
return
|
||||
if(I.w_class > 1)
|
||||
to_chat(user, "<span class='warning'>[I] is too large for the drain enclosure.</span>")
|
||||
to_chat(user, span_warning("[I] is too large for the drain enclosure."))
|
||||
return
|
||||
if(!user.transferItemToLoc(I, src))
|
||||
to_chat(user, "<span class='warning'>\[I] is stuck to your hand, you cannot put it in the drain enclosure!</span>")
|
||||
to_chat(user, span_warning("\[I] is stuck to your hand, you cannot put it in the drain enclosure!"))
|
||||
return
|
||||
hiddenitem = I
|
||||
to_chat(user, "<span class='notice'>You place [I] into the drain enclosure.</span>")
|
||||
to_chat(user, span_notice("You place [I] into the drain enclosure."))
|
||||
else
|
||||
return ..()
|
||||
|
||||
/obj/structure/urinal/screwdriver_act(mob/living/user, obj/item/I)
|
||||
if(..())
|
||||
return TRUE
|
||||
to_chat(user, "<span class='notice'>You start to [exposed ? "screw the cap back into place" : "unscrew the cap to the drain protector"]...</span>")
|
||||
to_chat(user, span_notice("You start to [exposed ? "screw the cap back into place" : "unscrew the cap to the drain protector"]..."))
|
||||
playsound(loc, 'sound/effects/stonedoor_openclose.ogg', 50, TRUE)
|
||||
if(I.use_tool(src, user, 20))
|
||||
user.visible_message("<span class='notice'>[user] [exposed ? "screws the cap back into place" : "unscrew the cap to the drain protector"]!</span>",
|
||||
"<span class='notice'>You [exposed ? "screw the cap back into place" : "unscrew the cap on the drain"]!</span>",
|
||||
"<span class='hear'>You hear metal and squishing noises.</span>")
|
||||
user.visible_message(span_notice("[user] [exposed ? "screws the cap back into place" : "unscrew the cap to the drain protector"]!"),
|
||||
span_notice("You [exposed ? "screw the cap back into place" : "unscrew the cap on the drain"]!"),
|
||||
span_hear("You hear metal and squishing noises."))
|
||||
exposed = !exposed
|
||||
return TRUE
|
||||
|
||||
@@ -245,7 +245,7 @@
|
||||
foodtypes = TOXIC | GROSS
|
||||
|
||||
/obj/item/food/urinalcake/attack_self(mob/living/user)
|
||||
user.visible_message("<span class='notice'>[user] squishes [src]!</span>", "<span class='notice'>You squish [src].</span>", "<i>You hear a squish.</i>")
|
||||
user.visible_message(span_notice("[user] squishes [src]!"), span_notice("You squish [src]."), "<i>You hear a squish.</i>")
|
||||
icon_state = "urinalcake_squish"
|
||||
addtimer(VARSET_CALLBACK(src, icon_state, "urinalcake"), 8)
|
||||
|
||||
@@ -292,7 +292,7 @@
|
||||
|
||||
/obj/structure/sink/examine(mob/user)
|
||||
. = ..()
|
||||
. += "<span class='notice'>[reagents.total_volume]/[reagents.maximum_volume] liquids remaining.</span>"
|
||||
. += span_notice("[reagents.total_volume]/[reagents.maximum_volume] liquids remaining.")
|
||||
|
||||
/obj/structure/sink/attack_hand(mob/living/user, list/modifiers)
|
||||
. = ..()
|
||||
@@ -305,17 +305,17 @@
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
if(reagents.total_volume < 5)
|
||||
to_chat(user, "<span class='warning'>The sink has no more contents left!</span>")
|
||||
to_chat(user, span_warning("The sink has no more contents left!"))
|
||||
return
|
||||
if(busy)
|
||||
to_chat(user, "<span class='warning'>Someone's already washing here!</span>")
|
||||
to_chat(user, span_warning("Someone's already washing here!"))
|
||||
return
|
||||
var/selected_area = parse_zone(user.zone_selected)
|
||||
var/washing_face = 0
|
||||
if(selected_area in list(BODY_ZONE_HEAD, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_PRECISE_EYES))
|
||||
washing_face = 1
|
||||
user.visible_message("<span class='notice'>[user] starts washing [user.p_their()] [washing_face ? "face" : "hands"]...</span>", \
|
||||
"<span class='notice'>You start washing your [washing_face ? "face" : "hands"]...</span>")
|
||||
user.visible_message(span_notice("[user] starts washing [user.p_their()] [washing_face ? "face" : "hands"]..."), \
|
||||
span_notice("You start washing your [washing_face ? "face" : "hands"]..."))
|
||||
busy = TRUE
|
||||
|
||||
if(!do_after(user, 40, target = src))
|
||||
@@ -332,31 +332,31 @@
|
||||
else if(ishuman(user))
|
||||
var/mob/living/carbon/human/human_user = user
|
||||
if(!human_user.wash_hands(CLEAN_WASH))
|
||||
to_chat(user, "<span class='warning'>Your hands are covered by something!</span>")
|
||||
to_chat(user, span_warning("Your hands are covered by something!"))
|
||||
return
|
||||
else
|
||||
user.wash(CLEAN_WASH)
|
||||
|
||||
user.visible_message("<span class='notice'>[user] washes [user.p_their()] [washing_face ? "face" : "hands"] using [src].</span>", \
|
||||
"<span class='notice'>You wash your [washing_face ? "face" : "hands"] using [src].</span>")
|
||||
user.visible_message(span_notice("[user] washes [user.p_their()] [washing_face ? "face" : "hands"] using [src]."), \
|
||||
span_notice("You wash your [washing_face ? "face" : "hands"] using [src]."))
|
||||
|
||||
/obj/structure/sink/attackby(obj/item/O, mob/living/user, params)
|
||||
if(busy)
|
||||
to_chat(user, "<span class='warning'>Someone's already washing here!</span>")
|
||||
to_chat(user, span_warning("Someone's already washing here!"))
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/reagent_containers))
|
||||
var/obj/item/reagent_containers/RG = O
|
||||
if(reagents.total_volume <= 0)
|
||||
to_chat(user, "<span class='notice'>\The [src] is dry.</span>")
|
||||
to_chat(user, span_notice("\The [src] is dry."))
|
||||
return FALSE
|
||||
if(RG.is_refillable())
|
||||
if(!RG.reagents.holder_full())
|
||||
reagents.trans_to(RG, RG.amount_per_transfer_from_this, transfered_by = user)
|
||||
begin_reclamation()
|
||||
to_chat(user, "<span class='notice'>You fill [RG] from [src].</span>")
|
||||
to_chat(user, span_notice("You fill [RG] from [src]."))
|
||||
return TRUE
|
||||
to_chat(user, "<span class='notice'>\The [RG] is full.</span>")
|
||||
to_chat(user, span_notice("\The [RG] is full."))
|
||||
return FALSE
|
||||
|
||||
if(istype(O, /obj/item/melee/baton))
|
||||
@@ -366,18 +366,18 @@
|
||||
user.Paralyze(B.stun_time)
|
||||
user.stuttering = B.stun_time/20
|
||||
B.deductcharge(B.cell_hit_cost)
|
||||
user.visible_message("<span class='warning'>[user] shocks [user.p_them()]self while attempting to wash the active [B.name]!</span>", \
|
||||
"<span class='userdanger'>You unwisely attempt to wash [B] while it's still on.</span>")
|
||||
user.visible_message(span_warning("[user] shocks [user.p_them()]self while attempting to wash the active [B.name]!"), \
|
||||
span_userdanger("You unwisely attempt to wash [B] while it's still on."))
|
||||
playsound(src, B.stun_sound, 50, TRUE)
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/mop))
|
||||
if(reagents.total_volume <= 0)
|
||||
to_chat(user, "<span class='notice'>\The [src] is dry.</span>")
|
||||
to_chat(user, span_notice("\The [src] is dry."))
|
||||
return FALSE
|
||||
reagents.trans_to(O, 5, transfered_by = user)
|
||||
begin_reclamation()
|
||||
to_chat(user, "<span class='notice'>You wet [O] in [src].</span>")
|
||||
to_chat(user, span_notice("You wet [O] in [src]."))
|
||||
playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE)
|
||||
return
|
||||
|
||||
@@ -389,20 +389,20 @@
|
||||
if(istype(O, /obj/item/stack/medical/gauze))
|
||||
var/obj/item/stack/medical/gauze/G = O
|
||||
new /obj/item/reagent_containers/glass/rag(src.loc)
|
||||
to_chat(user, "<span class='notice'>You tear off a strip of gauze and make a rag.</span>")
|
||||
to_chat(user, span_notice("You tear off a strip of gauze and make a rag."))
|
||||
G.use(1)
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/stack/sheet/cloth))
|
||||
var/obj/item/stack/sheet/cloth/cloth = O
|
||||
new /obj/item/reagent_containers/glass/rag(loc)
|
||||
to_chat(user, "<span class='notice'>You tear off a strip of cloth and make a rag.</span>")
|
||||
to_chat(user, span_notice("You tear off a strip of cloth and make a rag."))
|
||||
cloth.use(1)
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/stack/ore/glass))
|
||||
new /obj/item/stack/sheet/sandblock(loc)
|
||||
to_chat(user, "<span class='notice'>You wet the sand in the sink and form it into a block.</span>")
|
||||
to_chat(user, span_notice("You wet the sand in the sink and form it into a block."))
|
||||
O.use(1)
|
||||
return
|
||||
|
||||
@@ -412,7 +412,7 @@
|
||||
return
|
||||
|
||||
if(!user.combat_mode)
|
||||
to_chat(user, "<span class='notice'>You start washing [O]...</span>")
|
||||
to_chat(user, span_notice("You start washing [O]..."))
|
||||
busy = TRUE
|
||||
if(!do_after(user, 40, target = src))
|
||||
busy = FALSE
|
||||
@@ -420,8 +420,8 @@
|
||||
busy = FALSE
|
||||
O.wash(CLEAN_WASH)
|
||||
reagents.expose(O, TOUCH, 5 / max(reagents.total_volume, 5))
|
||||
user.visible_message("<span class='notice'>[user] washes [O] using [src].</span>", \
|
||||
"<span class='notice'>You wash [O] using [src].</span>")
|
||||
user.visible_message(span_notice("[user] washes [O] using [src]."), \
|
||||
span_notice("You wash [O] using [src]."))
|
||||
return 1
|
||||
else
|
||||
return ..()
|
||||
@@ -474,7 +474,7 @@
|
||||
|
||||
/obj/structure/sinkframe/proc/can_be_rotated(mob/user, rotation_type)
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='warning'>It is fastened to the floor!</span>")
|
||||
to_chat(user, span_warning("It is fastened to the floor!"))
|
||||
return !anchored
|
||||
|
||||
/obj/structure/sinkframe/attackby(obj/item/I, mob/living/user, params)
|
||||
@@ -508,14 +508,14 @@
|
||||
return
|
||||
|
||||
if(busy)
|
||||
to_chat(user, "<span class='warning'>Someone's already washing here!</span>")
|
||||
to_chat(user, span_warning("Someone's already washing here!"))
|
||||
return
|
||||
var/selected_area = parse_zone(user.zone_selected)
|
||||
var/washing_face = FALSE
|
||||
if(selected_area in list(BODY_ZONE_HEAD, BODY_ZONE_PRECISE_MOUTH, BODY_ZONE_PRECISE_EYES))
|
||||
washing_face = TRUE
|
||||
user.visible_message("<span class='notice'>[user] starts washing [user.p_their()] [washing_face ? "face" : "hands"]...</span>", \
|
||||
"<span class='notice'>You start washing your [washing_face ? "face" : "hands"]...</span>")
|
||||
user.visible_message(span_notice("[user] starts washing [user.p_their()] [washing_face ? "face" : "hands"]..."), \
|
||||
span_notice("You start washing your [washing_face ? "face" : "hands"]..."))
|
||||
busy = TRUE
|
||||
|
||||
if(!do_after(user, 4 SECONDS, target = src))
|
||||
@@ -530,17 +530,17 @@
|
||||
else if(ishuman(user))
|
||||
var/mob/living/carbon/human/human_user = user
|
||||
if(!human_user.wash_hands(CLEAN_WASH))
|
||||
to_chat(user, "<span class='warning'>Your hands are covered by something!</span>")
|
||||
to_chat(user, span_warning("Your hands are covered by something!"))
|
||||
return
|
||||
else
|
||||
user.wash(CLEAN_WASH)
|
||||
|
||||
user.visible_message("<span class='notice'>[user] washes [user.p_their()] [washing_face ? "face" : "hands"] using [src].</span>", \
|
||||
"<span class='notice'>You wash your [washing_face ? "face" : "hands"] using [src].</span>")
|
||||
user.visible_message(span_notice("[user] washes [user.p_their()] [washing_face ? "face" : "hands"] using [src]."), \
|
||||
span_notice("You wash your [washing_face ? "face" : "hands"] using [src]."))
|
||||
|
||||
/obj/structure/water_source/attackby(obj/item/O, mob/living/user, params)
|
||||
if(busy)
|
||||
to_chat(user, "<span class='warning'>Someone's already washing here!</span>")
|
||||
to_chat(user, span_warning("Someone's already washing here!"))
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/reagent_containers))
|
||||
@@ -548,9 +548,9 @@
|
||||
if(container.is_refillable())
|
||||
if(!container.reagents.holder_full())
|
||||
container.reagents.add_reagent(dispensedreagent, min(container.volume - container.reagents.total_volume, container.amount_per_transfer_from_this))
|
||||
to_chat(user, "<span class='notice'>You fill [container] from [src].</span>")
|
||||
to_chat(user, span_notice("You fill [container] from [src]."))
|
||||
return TRUE
|
||||
to_chat(user, "<span class='notice'>\The [container] is full.</span>")
|
||||
to_chat(user, span_notice("\The [container] is full."))
|
||||
return FALSE
|
||||
|
||||
if(istype(O, /obj/item/melee/baton))
|
||||
@@ -560,34 +560,34 @@
|
||||
user.Paralyze(baton.stun_time)
|
||||
user.stuttering = baton.stun_time * 0.05
|
||||
baton.deductcharge(baton.cell_hit_cost)
|
||||
user.visible_message("<span class='warning'>[user] shocks [user.p_them()]self while attempting to wash the active [baton.name]!</span>", \
|
||||
"<span class='userdanger'>You unwisely attempt to wash [baton] while it's still on.</span>")
|
||||
user.visible_message(span_warning("[user] shocks [user.p_them()]self while attempting to wash the active [baton.name]!"), \
|
||||
span_userdanger("You unwisely attempt to wash [baton] while it's still on."))
|
||||
playsound(src, baton.stun_sound, 50, TRUE)
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/mop))
|
||||
O.reagents.add_reagent(dispensedreagent, 5)
|
||||
to_chat(user, "<span class='notice'>You wet [O] in [src].</span>")
|
||||
to_chat(user, span_notice("You wet [O] in [src]."))
|
||||
playsound(loc, 'sound/effects/slosh.ogg', 25, TRUE)
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/stack/medical/gauze))
|
||||
var/obj/item/stack/medical/gauze/G = O
|
||||
new /obj/item/reagent_containers/glass/rag(loc)
|
||||
to_chat(user, "<span class='notice'>You tear off a strip of gauze and make a rag.</span>")
|
||||
to_chat(user, span_notice("You tear off a strip of gauze and make a rag."))
|
||||
G.use(1)
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/stack/sheet/cloth))
|
||||
var/obj/item/stack/sheet/cloth/cloth = O
|
||||
new /obj/item/reagent_containers/glass/rag(loc)
|
||||
to_chat(user, "<span class='notice'>You tear off a strip of cloth and make a rag.</span>")
|
||||
to_chat(user, span_notice("You tear off a strip of cloth and make a rag."))
|
||||
cloth.use(1)
|
||||
return
|
||||
|
||||
if(istype(O, /obj/item/stack/ore/glass))
|
||||
new /obj/item/stack/sheet/sandblock(loc)
|
||||
to_chat(user, "<span class='notice'>You wet the sand and form it into a block.</span>")
|
||||
to_chat(user, span_notice("You wet the sand and form it into a block."))
|
||||
O.use(1)
|
||||
return
|
||||
|
||||
@@ -595,7 +595,7 @@
|
||||
return
|
||||
|
||||
if(!user.combat_mode)
|
||||
to_chat(user, "<span class='notice'>You start washing [O]...</span>")
|
||||
to_chat(user, span_notice("You start washing [O]..."))
|
||||
busy = TRUE
|
||||
if(!do_after(user, 4 SECONDS, target = src))
|
||||
busy = FALSE
|
||||
@@ -603,8 +603,8 @@
|
||||
busy = FALSE
|
||||
O.wash(CLEAN_WASH)
|
||||
reagents.expose(O, TOUCH, 5 / max(reagents.total_volume, 5))
|
||||
user.visible_message("<span class='notice'>[user] washes [O] using [src].</span>", \
|
||||
"<span class='notice'>You wash [O] using [src].</span>")
|
||||
user.visible_message(span_notice("[user] washes [O] using [src]."), \
|
||||
span_notice("You wash [O] using [src]."))
|
||||
return TRUE
|
||||
|
||||
return ..()
|
||||
@@ -686,10 +686,10 @@
|
||||
if(anchored)
|
||||
return TRUE
|
||||
|
||||
user.visible_message("<span class='warning'>[user] cuts apart [src].</span>",
|
||||
"<span class='notice'>You start to cut apart [src].</span>", "<span class='hear'>You hear cutting.</span>")
|
||||
user.visible_message(span_warning("[user] cuts apart [src]."),
|
||||
span_notice("You start to cut apart [src]."), span_hear("You hear cutting."))
|
||||
if(I.use_tool(src, user, 50, volume=100) && !anchored)
|
||||
to_chat(user, "<span class='notice'>You cut apart [src].</span>")
|
||||
to_chat(user, span_notice("You cut apart [src]."))
|
||||
deconstruct()
|
||||
|
||||
return TRUE
|
||||
|
||||
@@ -93,11 +93,11 @@
|
||||
if(!W.tool_start_check(user, amount=0))
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] disassembles the windoor assembly.</span>",
|
||||
"<span class='notice'>You start to disassemble the windoor assembly...</span>")
|
||||
user.visible_message(span_notice("[user] disassembles the windoor assembly."),
|
||||
span_notice("You start to disassemble the windoor assembly..."))
|
||||
|
||||
if(W.use_tool(src, user, 40, volume=50))
|
||||
to_chat(user, "<span class='notice'>You disassemble the windoor assembly.</span>")
|
||||
to_chat(user, span_notice("You disassemble the windoor assembly."))
|
||||
var/obj/item/stack/sheet/rglass/RG = new (get_turf(src), 5)
|
||||
RG.add_fingerprint(user)
|
||||
if(secure)
|
||||
@@ -110,19 +110,19 @@
|
||||
if(W.tool_behaviour == TOOL_WRENCH && !anchored)
|
||||
for(var/obj/machinery/door/window/WD in loc)
|
||||
if(WD.dir == dir)
|
||||
to_chat(user, "<span class='warning'>There is already a windoor in that location!</span>")
|
||||
to_chat(user, span_warning("There is already a windoor in that location!"))
|
||||
return
|
||||
user.visible_message("<span class='notice'>[user] secures the windoor assembly to the floor.</span>",
|
||||
"<span class='notice'>You start to secure the windoor assembly to the floor...</span>")
|
||||
user.visible_message(span_notice("[user] secures the windoor assembly to the floor."),
|
||||
span_notice("You start to secure the windoor assembly to the floor..."))
|
||||
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(anchored)
|
||||
return
|
||||
for(var/obj/machinery/door/window/WD in loc)
|
||||
if(WD.dir == dir)
|
||||
to_chat(user, "<span class='warning'>There is already a windoor in that location!</span>")
|
||||
to_chat(user, span_warning("There is already a windoor in that location!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You secure the windoor assembly.</span>")
|
||||
to_chat(user, span_notice("You secure the windoor assembly."))
|
||||
set_anchored(TRUE)
|
||||
if(secure)
|
||||
name = "secure anchored windoor assembly"
|
||||
@@ -131,13 +131,13 @@
|
||||
|
||||
//Unwrenching an unsecure assembly un-anchors it. Step 4 undone
|
||||
else if(W.tool_behaviour == TOOL_WRENCH && anchored)
|
||||
user.visible_message("<span class='notice'>[user] unsecures the windoor assembly to the floor.</span>",
|
||||
"<span class='notice'>You start to unsecure the windoor assembly to the floor...</span>")
|
||||
user.visible_message(span_notice("[user] unsecures the windoor assembly to the floor."),
|
||||
span_notice("You start to unsecure the windoor assembly to the floor..."))
|
||||
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(!anchored)
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You unsecure the windoor assembly.</span>")
|
||||
to_chat(user, span_notice("You unsecure the windoor assembly."))
|
||||
set_anchored(FALSE)
|
||||
if(secure)
|
||||
name = "secure windoor assembly"
|
||||
@@ -148,16 +148,16 @@
|
||||
else if(istype(W, /obj/item/stack/sheet/plasteel) && !secure)
|
||||
var/obj/item/stack/sheet/plasteel/P = W
|
||||
if(P.get_amount() < 2)
|
||||
to_chat(user, "<span class='warning'>You need more plasteel to do this!</span>")
|
||||
to_chat(user, span_warning("You need more plasteel to do this!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You start to reinforce the windoor with plasteel...</span>")
|
||||
to_chat(user, span_notice("You start to reinforce the windoor with plasteel..."))
|
||||
|
||||
if(do_after(user,40, target = src))
|
||||
if(!src || secure || P.get_amount() < 2)
|
||||
return
|
||||
|
||||
P.use(2)
|
||||
to_chat(user, "<span class='notice'>You reinforce the windoor.</span>")
|
||||
to_chat(user, span_notice("You reinforce the windoor."))
|
||||
secure = TRUE
|
||||
if(anchored)
|
||||
name = "secure anchored windoor assembly"
|
||||
@@ -166,16 +166,16 @@
|
||||
|
||||
//Adding cable to the assembly. Step 5 complete.
|
||||
else if(istype(W, /obj/item/stack/cable_coil) && anchored)
|
||||
user.visible_message("<span class='notice'>[user] wires the windoor assembly.</span>", "<span class='notice'>You start to wire the windoor assembly...</span>")
|
||||
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(!src || !anchored || src.state != "01")
|
||||
return
|
||||
var/obj/item/stack/cable_coil/CC = W
|
||||
if(!CC.use(1))
|
||||
to_chat(user, "<span class='warning'>You need more cable to do this!</span>")
|
||||
to_chat(user, span_warning("You need more cable to do this!"))
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You wire the windoor.</span>")
|
||||
to_chat(user, span_notice("You wire the windoor."))
|
||||
state = "02"
|
||||
if(secure)
|
||||
name = "secure wired windoor assembly"
|
||||
@@ -188,13 +188,13 @@
|
||||
|
||||
//Removing wire from the assembly. Step 5 undone.
|
||||
if(W.tool_behaviour == TOOL_WIRECUTTER)
|
||||
user.visible_message("<span class='notice'>[user] cuts the wires from the airlock assembly.</span>", "<span class='notice'>You start to cut the wires from airlock assembly...</span>")
|
||||
user.visible_message(span_notice("[user] cuts the wires from the airlock assembly."), span_notice("You start to cut the wires from airlock assembly..."))
|
||||
|
||||
if(W.use_tool(src, user, 40, volume=100))
|
||||
if(state != "02")
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You cut the windoor wires.</span>")
|
||||
to_chat(user, span_notice("You cut the windoor wires."))
|
||||
new/obj/item/stack/cable_coil(get_turf(user), 1)
|
||||
state = "01"
|
||||
if(secure)
|
||||
@@ -207,14 +207,14 @@
|
||||
if(!user.transferItemToLoc(W, src))
|
||||
return
|
||||
W.play_tool_sound(src, 100)
|
||||
user.visible_message("<span class='notice'>[user] installs the electronics into the airlock assembly.</span>",
|
||||
"<span class='notice'>You start to install electronics into the airlock assembly...</span>")
|
||||
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(!src || electronics)
|
||||
W.forceMove(drop_location())
|
||||
return
|
||||
to_chat(user, "<span class='notice'>You install the airlock electronics.</span>")
|
||||
to_chat(user, span_notice("You install the airlock electronics."))
|
||||
name = "near finished windoor assembly"
|
||||
electronics = W
|
||||
else
|
||||
@@ -225,11 +225,11 @@
|
||||
if(!electronics)
|
||||
return
|
||||
|
||||
user.visible_message("<span class='notice'>[user] removes the electronics from the airlock assembly.</span>",
|
||||
"<span class='notice'>You start to uninstall electronics from the airlock assembly...</span>")
|
||||
user.visible_message(span_notice("[user] removes the electronics from the airlock assembly."),
|
||||
span_notice("You start to uninstall electronics from the airlock assembly..."))
|
||||
|
||||
if(W.use_tool(src, user, 40, volume=100) && electronics)
|
||||
to_chat(user, "<span class='notice'>You remove the airlock electronics.</span>")
|
||||
to_chat(user, span_notice("You remove the airlock electronics."))
|
||||
name = "wired windoor assembly"
|
||||
var/obj/item/electronics/airlock/ae
|
||||
ae = electronics
|
||||
@@ -250,16 +250,16 @@
|
||||
//Crowbar to complete the assembly, Step 7 complete.
|
||||
else if(W.tool_behaviour == TOOL_CROWBAR)
|
||||
if(!electronics)
|
||||
to_chat(usr, "<span class='warning'>The assembly is missing electronics!</span>")
|
||||
to_chat(usr, span_warning("The assembly is missing electronics!"))
|
||||
return
|
||||
user << browse(null, "window=windoor_access")
|
||||
user.visible_message("<span class='notice'>[user] pries the windoor into the frame.</span>",
|
||||
"<span class='notice'>You start prying the windoor into the frame...</span>")
|
||||
user.visible_message(span_notice("[user] pries the windoor into the frame."),
|
||||
span_notice("You start prying the windoor into the frame..."))
|
||||
|
||||
if(W.use_tool(src, user, 40, volume=100) && electronics)
|
||||
|
||||
density = TRUE //Shouldn't matter but just incase
|
||||
to_chat(user, "<span class='notice'>You finish the windoor.</span>")
|
||||
to_chat(user, span_notice("You finish the windoor."))
|
||||
|
||||
if(secure)
|
||||
var/obj/machinery/door/window/brigdoor/windoor = new /obj/machinery/door/window/brigdoor(loc)
|
||||
@@ -322,12 +322,12 @@
|
||||
|
||||
/obj/structure/windoor_assembly/proc/can_be_rotated(mob/user,rotation_type)
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='warning'>[src] cannot be rotated while it is fastened to the floor!</span>")
|
||||
to_chat(user, span_warning("[src] cannot be rotated while it is fastened to the floor!"))
|
||||
return FALSE
|
||||
var/target_dir = turn(dir, rotation_type == ROTATION_CLOCKWISE ? -90 : 90)
|
||||
|
||||
if(!valid_window_location(loc, target_dir, is_fulltile = FALSE))
|
||||
to_chat(user, "<span class='warning'>[src] cannot be rotated in that direction!</span>")
|
||||
to_chat(user, span_warning("[src] cannot be rotated in that direction!"))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -348,11 +348,11 @@
|
||||
return
|
||||
|
||||
if(facing == "l")
|
||||
to_chat(usr, "<span class='notice'>The windoor will now slide to the right.</span>")
|
||||
to_chat(usr, span_notice("The windoor will now slide to the right."))
|
||||
facing = "r"
|
||||
else
|
||||
facing = "l"
|
||||
to_chat(usr, "<span class='notice'>The windoor will now slide to the left.</span>")
|
||||
to_chat(usr, span_notice("The windoor will now slide to the left."))
|
||||
|
||||
update_appearance()
|
||||
return
|
||||
|
||||
@@ -36,18 +36,18 @@
|
||||
. = ..()
|
||||
if(reinf)
|
||||
if(anchored && state == WINDOW_SCREWED_TO_FRAME)
|
||||
. += "<span class='notice'>The window is <b>screwed</b> to the frame.</span>"
|
||||
. += span_notice("The window is <b>screwed</b> to the frame.")
|
||||
else if(anchored && state == WINDOW_IN_FRAME)
|
||||
. += "<span class='notice'>The window is <i>unscrewed</i> but <b>pried</b> into the frame.</span>"
|
||||
. += span_notice("The window is <i>unscrewed</i> but <b>pried</b> into the frame.")
|
||||
else if(anchored && state == WINDOW_OUT_OF_FRAME)
|
||||
. += "<span class='notice'>The window is out of the frame, but could be <i>pried</i> in. It is <b>screwed</b> to the floor.</span>"
|
||||
. += span_notice("The window is out of the frame, but could be <i>pried</i> in. It is <b>screwed</b> to the floor.")
|
||||
else if(!anchored)
|
||||
. += "<span class='notice'>The window is <i>unscrewed</i> from the floor, and could be deconstructed by <b>wrenching</b>.</span>"
|
||||
. += span_notice("The window is <i>unscrewed</i> from the floor, and could be deconstructed by <b>wrenching</b>.")
|
||||
else
|
||||
if(anchored)
|
||||
. += "<span class='notice'>The window is <b>screwed</b> to the floor.</span>"
|
||||
. += span_notice("The window is <b>screwed</b> to the floor.")
|
||||
else
|
||||
. += "<span class='notice'>The window is <i>unscrewed</i> from the floor, and could be deconstructed by <b>wrenching</b>.</span>"
|
||||
. += span_notice("The window is <i>unscrewed</i> from the floor, and could be deconstructed by <b>wrenching</b>.")
|
||||
|
||||
/obj/structure/window/Initialize(mapload, direct)
|
||||
. = ..()
|
||||
@@ -89,7 +89,7 @@
|
||||
/obj/structure/window/rcd_act(mob/user, obj/item/construction/rcd/the_rcd)
|
||||
switch(the_rcd.mode)
|
||||
if(RCD_DECONSTRUCT)
|
||||
to_chat(user, "<span class='notice'>You deconstruct the window.</span>")
|
||||
to_chat(user, span_notice("You deconstruct the window."))
|
||||
qdel(src)
|
||||
return TRUE
|
||||
return FALSE
|
||||
@@ -139,7 +139,7 @@
|
||||
|
||||
/obj/structure/window/attack_tk(mob/user)
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
user.visible_message("<span class='notice'>Something knocks on [src].</span>")
|
||||
user.visible_message(span_notice("Something knocks on [src]."))
|
||||
add_fingerprint(user)
|
||||
playsound(src, knocksound, 50, TRUE)
|
||||
return COMPONENT_CANCEL_ATTACK_CHAIN
|
||||
@@ -159,12 +159,12 @@
|
||||
user.changeNext_move(CLICK_CD_MELEE)
|
||||
|
||||
if(!user.combat_mode)
|
||||
user.visible_message("<span class='notice'>[user] knocks on [src].</span>", \
|
||||
"<span class='notice'>You knock on [src].</span>")
|
||||
user.visible_message(span_notice("[user] knocks on [src]."), \
|
||||
span_notice("You knock on [src]."))
|
||||
playsound(src, knocksound, 50, TRUE)
|
||||
else
|
||||
user.visible_message("<span class='warning'>[user] bashes [src]!</span>", \
|
||||
"<span class='warning'>You bash [src]!</span>")
|
||||
user.visible_message(span_warning("[user] bashes [src]!"), \
|
||||
span_warning("You bash [src]!"))
|
||||
playsound(src, bashsound, 100, TRUE)
|
||||
|
||||
/obj/structure/window/attack_paw(mob/user, list/modifiers)
|
||||
@@ -186,36 +186,36 @@
|
||||
if(!I.tool_start_check(user, amount = 0))
|
||||
return
|
||||
|
||||
to_chat(user, "<span class='notice'>You begin repairing [src]...</span>")
|
||||
to_chat(user, span_notice("You begin repairing [src]..."))
|
||||
if(I.use_tool(src, user, 40, volume = 50))
|
||||
obj_integrity = max_integrity
|
||||
update_nearby_icons()
|
||||
to_chat(user, "<span class='notice'>You repair [src].</span>")
|
||||
to_chat(user, span_notice("You repair [src]."))
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[src] is already in good condition!</span>")
|
||||
to_chat(user, span_warning("[src] is already in good condition!"))
|
||||
return
|
||||
|
||||
if(!(flags_1&NODECONSTRUCT_1) && !(reinf && state >= RWINDOW_FRAME_BOLTED))
|
||||
if(I.tool_behaviour == TOOL_SCREWDRIVER)
|
||||
to_chat(user, "<span class='notice'>You begin to [anchored ? "unscrew the window from":"screw the window to"] the floor...</span>")
|
||||
to_chat(user, span_notice("You begin to [anchored ? "unscrew the window from":"screw the window to"] the floor..."))
|
||||
if(I.use_tool(src, user, decon_speed, volume = 75, extra_checks = CALLBACK(src, .proc/check_anchored, anchored)))
|
||||
set_anchored(!anchored)
|
||||
to_chat(user, "<span class='notice'>You [anchored ? "fasten the window to":"unfasten the window from"] the floor.</span>")
|
||||
to_chat(user, span_notice("You [anchored ? "fasten the window to":"unfasten the window from"] the floor."))
|
||||
return
|
||||
else if(I.tool_behaviour == TOOL_WRENCH && !anchored)
|
||||
to_chat(user, "<span class='notice'>You begin to disassemble [src]...</span>")
|
||||
to_chat(user, span_notice("You begin to disassemble [src]..."))
|
||||
if(I.use_tool(src, user, decon_speed, volume = 75, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
var/obj/item/stack/sheet/G = new glass_type(user.loc, glass_amount)
|
||||
G.add_fingerprint(user)
|
||||
playsound(src, 'sound/items/Deconstruct.ogg', 50, TRUE)
|
||||
to_chat(user, "<span class='notice'>You successfully disassemble [src].</span>")
|
||||
to_chat(user, span_notice("You successfully disassemble [src]."))
|
||||
qdel(src)
|
||||
return
|
||||
else if(I.tool_behaviour == TOOL_CROWBAR && reinf && (state == WINDOW_OUT_OF_FRAME) && anchored)
|
||||
to_chat(user, "<span class='notice'>You begin to lever the window into the frame...</span>")
|
||||
to_chat(user, span_notice("You begin to lever the window into the frame..."))
|
||||
if(I.use_tool(src, user, 100, volume = 75, extra_checks = CALLBACK(src, .proc/check_state_and_anchored, state, anchored)))
|
||||
state = RWINDOW_SECURE
|
||||
to_chat(user, "<span class='notice'>You pry the window into the frame.</span>")
|
||||
to_chat(user, span_notice("You pry the window into the frame."))
|
||||
return
|
||||
|
||||
return ..()
|
||||
@@ -282,13 +282,13 @@
|
||||
|
||||
/obj/structure/window/proc/can_be_rotated(mob/user,rotation_type)
|
||||
if(anchored)
|
||||
to_chat(user, "<span class='warning'>[src] cannot be rotated while it is fastened to the floor!</span>")
|
||||
to_chat(user, span_warning("[src] cannot be rotated while it is fastened to the floor!"))
|
||||
return FALSE
|
||||
|
||||
var/target_dir = turn(dir, rotation_type == ROTATION_CLOCKWISE ? -90 : 90)
|
||||
|
||||
if(!valid_window_location(loc, target_dir, is_fulltile = fulltile))
|
||||
to_chat(user, "<span class='warning'>[src] cannot be rotated in that direction!</span>")
|
||||
to_chat(user, span_warning("[src] cannot be rotated in that direction!"))
|
||||
return FALSE
|
||||
return TRUE
|
||||
|
||||
@@ -401,76 +401,76 @@
|
||||
if(tool.tool_behaviour == TOOL_WELDER)
|
||||
var/obj/item/weldingtool/welder = tool
|
||||
if(welder.isOn())
|
||||
user.visible_message("<span class='notice'>[user] holds \the [tool] to the security screws on \the [src]...</span>",
|
||||
"<span class='notice'>You begin heating the security screws on \the [src]...</span>")
|
||||
user.visible_message(span_notice("[user] holds \the [tool] to the security screws on \the [src]..."),
|
||||
span_notice("You begin heating the security screws on \the [src]..."))
|
||||
if(tool.use_tool(src, user, 150, volume = 100))
|
||||
to_chat(user, "<span class='notice'>The security screws are glowing white hot and look ready to be removed.</span>")
|
||||
to_chat(user, span_notice("The security screws are glowing white hot and look ready to be removed."))
|
||||
state = RWINDOW_BOLTS_HEATED
|
||||
addtimer(CALLBACK(src, .proc/cool_bolts), 300)
|
||||
else if (tool.tool_behaviour)
|
||||
to_chat(user, "<span class='warning'>The security screws need to be heated first!</span>")
|
||||
to_chat(user, span_warning("The security screws need to be heated first!"))
|
||||
|
||||
if(RWINDOW_BOLTS_HEATED)
|
||||
if(tool.tool_behaviour == TOOL_SCREWDRIVER)
|
||||
user.visible_message("<span class='notice'>[user] digs into the heated security screws and starts removing them...</span>",
|
||||
"<span class='notice'>You dig into the heated screws hard and they start turning...</span>")
|
||||
user.visible_message(span_notice("[user] digs into the heated security screws and starts removing them..."),
|
||||
span_notice("You dig into the heated screws hard and they start turning..."))
|
||||
if(tool.use_tool(src, user, 50, volume = 50))
|
||||
state = RWINDOW_BOLTS_OUT
|
||||
to_chat(user, "<span class='notice'>The screws come out, and a gap forms around the edge of the pane.</span>")
|
||||
to_chat(user, span_notice("The screws come out, and a gap forms around the edge of the pane."))
|
||||
else if (tool.tool_behaviour)
|
||||
to_chat(user, "<span class='warning'>The security screws need to be removed first!</span>")
|
||||
to_chat(user, span_warning("The security screws need to be removed first!"))
|
||||
|
||||
if(RWINDOW_BOLTS_OUT)
|
||||
if(tool.tool_behaviour == TOOL_CROWBAR)
|
||||
user.visible_message("<span class='notice'>[user] wedges \the [tool] into the gap in the frame and starts prying...</span>",
|
||||
"<span class='notice'>You wedge \the [tool] into the gap in the frame and start prying...</span>")
|
||||
user.visible_message(span_notice("[user] wedges \the [tool] into the gap in the frame and starts prying..."),
|
||||
span_notice("You wedge \the [tool] into the gap in the frame and start prying..."))
|
||||
if(tool.use_tool(src, user, 40, volume = 50))
|
||||
state = RWINDOW_POPPED
|
||||
to_chat(user, "<span class='notice'>The panel pops out of the frame, exposing some thin metal bars that looks like they can be cut.</span>")
|
||||
to_chat(user, span_notice("The panel pops out of the frame, exposing some thin metal bars that looks like they can be cut."))
|
||||
else if (tool.tool_behaviour)
|
||||
to_chat(user, "<span class='warning'>The gap needs to be pried first!</span>")
|
||||
to_chat(user, span_warning("The gap needs to be pried first!"))
|
||||
|
||||
if(RWINDOW_POPPED)
|
||||
if(tool.tool_behaviour == TOOL_WIRECUTTER)
|
||||
user.visible_message("<span class='notice'>[user] starts cutting the exposed bars on \the [src]...</span>",
|
||||
"<span class='notice'>You start cutting the exposed bars on \the [src]</span>")
|
||||
user.visible_message(span_notice("[user] starts cutting the exposed bars on \the [src]..."),
|
||||
span_notice("You start cutting the exposed bars on \the [src]"))
|
||||
if(tool.use_tool(src, user, 20, volume = 50))
|
||||
state = RWINDOW_BARS_CUT
|
||||
to_chat(user, "<span class='notice'>The panels falls out of the way exposing the frame bolts.</span>")
|
||||
to_chat(user, span_notice("The panels falls out of the way exposing the frame bolts."))
|
||||
else if (tool.tool_behaviour)
|
||||
to_chat(user, "<span class='warning'>The bars need to be cut first!</span>")
|
||||
to_chat(user, span_warning("The bars need to be cut first!"))
|
||||
|
||||
if(RWINDOW_BARS_CUT)
|
||||
if(tool.tool_behaviour == TOOL_WRENCH)
|
||||
user.visible_message("<span class='notice'>[user] starts unfastening \the [src] from the frame...</span>",
|
||||
"<span class='notice'>You start unfastening the bolts from the frame...</span>")
|
||||
user.visible_message(span_notice("[user] starts unfastening \the [src] from the frame..."),
|
||||
span_notice("You start unfastening the bolts from the frame..."))
|
||||
if(tool.use_tool(src, user, 40, volume = 50))
|
||||
to_chat(user, "<span class='notice'>You unscrew the bolts from the frame and the window pops loose.</span>")
|
||||
to_chat(user, span_notice("You unscrew the bolts from the frame and the window pops loose."))
|
||||
state = WINDOW_OUT_OF_FRAME
|
||||
set_anchored(FALSE)
|
||||
else if (tool.tool_behaviour)
|
||||
to_chat(user, "<span class='warning'>The bolts need to be loosened first!</span>")
|
||||
to_chat(user, span_warning("The bolts need to be loosened first!"))
|
||||
|
||||
return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN
|
||||
|
||||
/obj/structure/window/proc/cool_bolts()
|
||||
if(state == RWINDOW_BOLTS_HEATED)
|
||||
state = RWINDOW_SECURE
|
||||
visible_message("<span class='notice'>The bolts on \the [src] look like they've cooled off...</span>")
|
||||
visible_message(span_notice("The bolts on \the [src] look like they've cooled off..."))
|
||||
|
||||
/obj/structure/window/reinforced/examine(mob/user)
|
||||
. = ..()
|
||||
switch(state)
|
||||
if(RWINDOW_SECURE)
|
||||
. += "<span class='notice'>It's been screwed in with one way screws, you'd need to <b>heat them</b> to have any chance of backing them out.</span>"
|
||||
. += span_notice("It's been screwed in with one way screws, you'd need to <b>heat them</b> to have any chance of backing them out.")
|
||||
if(RWINDOW_BOLTS_HEATED)
|
||||
. += "<span class='notice'>The screws are glowing white hot, and you'll likely be able to <b>unscrew them</b> now.</span>"
|
||||
. += span_notice("The screws are glowing white hot, and you'll likely be able to <b>unscrew them</b> now.")
|
||||
if(RWINDOW_BOLTS_OUT)
|
||||
. += "<span class='notice'>The screws have been removed, revealing a small gap you could fit a <b>prying tool</b> in.</span>"
|
||||
. += span_notice("The screws have been removed, revealing a small gap you could fit a <b>prying tool</b> in.")
|
||||
if(RWINDOW_POPPED)
|
||||
. += "<span class='notice'>The main plate of the window has popped out of the frame, exposing some bars that look like they can be <b>cut</b>.</span>"
|
||||
. += span_notice("The main plate of the window has popped out of the frame, exposing some bars that look like they can be <b>cut</b>.")
|
||||
if(RWINDOW_BARS_CUT)
|
||||
. += "<span class='notice'>The main pane can be easily moved out of the way to reveal some <b>bolts</b> holding the frame in.</span>"
|
||||
. += span_notice("The main pane can be easily moved out of the way to reveal some <b>bolts</b> holding the frame in.")
|
||||
|
||||
/obj/structure/window/reinforced/spawner/east
|
||||
dir = EAST
|
||||
@@ -542,43 +542,43 @@
|
||||
switch(state)
|
||||
if(RWINDOW_SECURE)
|
||||
if(I.tool_behaviour == TOOL_WELDER && user.combat_mode)
|
||||
user.visible_message("<span class='notice'>[user] holds \the [I] to the security screws on \the [src]...</span>",
|
||||
"<span class='notice'>You begin heating the security screws on \the [src]...</span>")
|
||||
user.visible_message(span_notice("[user] holds \the [I] to the security screws on \the [src]..."),
|
||||
span_notice("You begin heating the security screws on \the [src]..."))
|
||||
if(I.use_tool(src, user, 180, volume = 100))
|
||||
to_chat(user, "<span class='notice'>The security screws are glowing white hot and look ready to be removed.</span>")
|
||||
to_chat(user, span_notice("The security screws are glowing white hot and look ready to be removed."))
|
||||
state = RWINDOW_BOLTS_HEATED
|
||||
addtimer(CALLBACK(src, .proc/cool_bolts), 300)
|
||||
return
|
||||
if(RWINDOW_BOLTS_HEATED)
|
||||
if(I.tool_behaviour == TOOL_SCREWDRIVER)
|
||||
user.visible_message("<span class='notice'>[user] digs into the heated security screws and starts removing them...</span>",
|
||||
"<span class='notice'>You dig into the heated screws hard and they start turning...</span>")
|
||||
user.visible_message(span_notice("[user] digs into the heated security screws and starts removing them..."),
|
||||
span_notice("You dig into the heated screws hard and they start turning..."))
|
||||
if(I.use_tool(src, user, 80, volume = 50))
|
||||
state = RWINDOW_BOLTS_OUT
|
||||
to_chat(user, "<span class='notice'>The screws come out, and a gap forms around the edge of the pane.</span>")
|
||||
to_chat(user, span_notice("The screws come out, and a gap forms around the edge of the pane."))
|
||||
return
|
||||
if(RWINDOW_BOLTS_OUT)
|
||||
if(I.tool_behaviour == TOOL_CROWBAR)
|
||||
user.visible_message("<span class='notice'>[user] wedges \the [I] into the gap in the frame and starts prying...</span>",
|
||||
"<span class='notice'>You wedge \the [I] into the gap in the frame and start prying...</span>")
|
||||
user.visible_message(span_notice("[user] wedges \the [I] into the gap in the frame and starts prying..."),
|
||||
span_notice("You wedge \the [I] into the gap in the frame and start prying..."))
|
||||
if(I.use_tool(src, user, 50, volume = 50))
|
||||
state = RWINDOW_POPPED
|
||||
to_chat(user, "<span class='notice'>The panel pops out of the frame, exposing some thin metal bars that looks like they can be cut.</span>")
|
||||
to_chat(user, span_notice("The panel pops out of the frame, exposing some thin metal bars that looks like they can be cut."))
|
||||
return
|
||||
if(RWINDOW_POPPED)
|
||||
if(I.tool_behaviour == TOOL_WIRECUTTER)
|
||||
user.visible_message("<span class='notice'>[user] starts cutting the exposed bars on \the [src]...</span>",
|
||||
"<span class='notice'>You start cutting the exposed bars on \the [src]</span>")
|
||||
user.visible_message(span_notice("[user] starts cutting the exposed bars on \the [src]..."),
|
||||
span_notice("You start cutting the exposed bars on \the [src]"))
|
||||
if(I.use_tool(src, user, 30, volume = 50))
|
||||
state = RWINDOW_BARS_CUT
|
||||
to_chat(user, "<span class='notice'>The panels falls out of the way exposing the frame bolts.</span>")
|
||||
to_chat(user, span_notice("The panels falls out of the way exposing the frame bolts."))
|
||||
return
|
||||
if(RWINDOW_BARS_CUT)
|
||||
if(I.tool_behaviour == TOOL_WRENCH)
|
||||
user.visible_message("<span class='notice'>[user] starts unfastening \the [src] from the frame...</span>",
|
||||
"<span class='notice'>You start unfastening the bolts from the frame...</span>")
|
||||
user.visible_message(span_notice("[user] starts unfastening \the [src] from the frame..."),
|
||||
span_notice("You start unfastening the bolts from the frame..."))
|
||||
if(I.use_tool(src, user, 50, volume = 50))
|
||||
to_chat(user, "<span class='notice'>You unfasten the bolts from the frame and the window pops loose.</span>")
|
||||
to_chat(user, span_notice("You unfasten the bolts from the frame and the window pops loose."))
|
||||
state = WINDOW_OUT_OF_FRAME
|
||||
set_anchored(FALSE)
|
||||
return
|
||||
@@ -588,15 +588,15 @@
|
||||
. = ..()
|
||||
switch(state)
|
||||
if(RWINDOW_SECURE)
|
||||
. += "<span class='notice'>It's been screwed in with one way screws, you'd need to <b>heat them</b> to have any chance of backing them out.</span>"
|
||||
. += span_notice("It's been screwed in with one way screws, you'd need to <b>heat them</b> to have any chance of backing them out.")
|
||||
if(RWINDOW_BOLTS_HEATED)
|
||||
. += "<span class='notice'>The screws are glowing white hot, and you'll likely be able to <b>unscrew them</b> now.</span>"
|
||||
. += span_notice("The screws are glowing white hot, and you'll likely be able to <b>unscrew them</b> now.")
|
||||
if(RWINDOW_BOLTS_OUT)
|
||||
. += "<span class='notice'>The screws have been removed, revealing a small gap you could fit a <b>prying tool</b> in.</span>"
|
||||
. += span_notice("The screws have been removed, revealing a small gap you could fit a <b>prying tool</b> in.")
|
||||
if(RWINDOW_POPPED)
|
||||
. += "<span class='notice'>The main plate of the window has popped out of the frame, exposing some bars that look like they can be <b>cut</b>.</span>"
|
||||
. += span_notice("The main plate of the window has popped out of the frame, exposing some bars that look like they can be <b>cut</b>.")
|
||||
if(RWINDOW_BARS_CUT)
|
||||
. += "<span class='notice'>The main pane can be easily moved out of the way to reveal some <b>bolts</b> holding the frame in.</span>"
|
||||
. += span_notice("The main pane can be easily moved out of the way to reveal some <b>bolts</b> holding the frame in.")
|
||||
|
||||
/obj/structure/window/plasma/reinforced/spawner/east
|
||||
dir = EAST
|
||||
@@ -792,7 +792,7 @@
|
||||
/obj/structure/window/paperframe/examine(mob/user)
|
||||
. = ..()
|
||||
if(obj_integrity < max_integrity)
|
||||
. += "<span class='info'>It looks a bit damaged, you may be able to fix it with some <b>paper</b>.</span>"
|
||||
. += span_info("It looks a bit damaged, you may be able to fix it with some <b>paper</b>.")
|
||||
|
||||
/obj/structure/window/paperframe/spawnDebris(location)
|
||||
. = list(new /obj/item/stack/sheet/mineral/wood(location))
|
||||
@@ -828,11 +828,11 @@
|
||||
if(user.combat_mode)
|
||||
return ..()
|
||||
if(istype(W, /obj/item/paper) && obj_integrity < max_integrity)
|
||||
user.visible_message("<span class='notice'>[user] starts to patch the holes in \the [src].</span>")
|
||||
user.visible_message(span_notice("[user] starts to patch the holes in \the [src]."))
|
||||
if(do_after(user, 20, target = src))
|
||||
obj_integrity = min(obj_integrity+4,max_integrity)
|
||||
qdel(W)
|
||||
user.visible_message("<span class='notice'>[user] patches some of the holes in \the [src].</span>")
|
||||
user.visible_message(span_notice("[user] patches some of the holes in \the [src]."))
|
||||
if(obj_integrity == max_integrity)
|
||||
update_appearance()
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user