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:
Watermelon914
2021-06-14 21:03:53 +01:00
committed by GitHub
parent b9982f6970
commit 375a20e49b
1676 changed files with 15455 additions and 15226 deletions
+29 -29
View File
@@ -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
+4 -4
View File
@@ -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)
+7 -7
View File
@@ -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]."))
+9 -9
View File
@@ -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)
+9 -9
View File
@@ -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)
+8 -8
View File
@@ -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))
+1 -1
View File
@@ -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 ..()
+56 -56
View File
@@ -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)
. = ..()
+3 -3
View File
@@ -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)
+50 -50
View File
@@ -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
+3 -3
View File
@@ -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")
+7 -7
View File
@@ -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
+8 -8
View File
@@ -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)
+10 -10
View File
@@ -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)
+13 -13
View File
@@ -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
+3 -3
View File
@@ -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)
+8 -8
View File
@@ -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)
+4 -4
View File
@@ -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
+65 -65
View File
@@ -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)
+17 -17
View File
@@ -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
+14 -14
View File
@@ -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)
+2 -2
View File
@@ -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)
+1 -1
View File
@@ -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)
+3 -3
View File
@@ -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
+2 -2
View File
@@ -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)
+13 -13
View File
@@ -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
View File
@@ -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)
+4 -4
View File
@@ -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.
+7 -7
View File
@@ -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)
+2 -2
View File
@@ -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()
+4 -4
View File
@@ -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
+9 -9
View File
@@ -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."))
+13 -13
View File
@@ -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 ..()
+8 -8
View File
@@ -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)
+2 -2
View File
@@ -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
+14 -14
View File
@@ -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
/*
+3 -3
View File
@@ -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
+6 -6
View File
@@ -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)
+8 -8
View File
@@ -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
+22 -22
View File
@@ -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)))
+9 -9
View File
@@ -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
+3 -3
View File
@@ -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)
+8 -8
View File
@@ -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
+24 -24
View File
@@ -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)
+4 -4
View File
@@ -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
+10 -10
View File
@@ -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
+9 -9
View File
@@ -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
+34 -34
View File
@@ -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)
+5 -5
View File
@@ -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
+5 -5
View File
@@ -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)
+12 -12
View File
@@ -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"]"
+73 -73
View File
@@ -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
+72 -72
View File
@@ -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