diff --git a/code/game/gamemodes/clock_cult/clock_items/clock_components.dm b/code/game/gamemodes/clock_cult/clock_items/clock_components.dm
index 65c4f9f0af..5ff7b0f6f2 100644
--- a/code/game/gamemodes/clock_cult/clock_items/clock_components.dm
+++ b/code/game/gamemodes/clock_cult/clock_items/clock_components.dm
@@ -27,7 +27,7 @@
if(iscultist(user) || (user.mind && user.mind.isholy))
to_chat(user, "[cultist_message]")
if(user.mind && user.mind.isholy)
- to_chat(user, "The power of your faith melts away the [src]!")
+ to_chat(user, "The power of your faith melts away [src]!")
var/obj/item/ore/slag/wrath = new /obj/item/ore/slag
qdel(src)
user.put_in_active_hand(wrath)
diff --git a/code/game/gamemodes/cult/cult_items.dm b/code/game/gamemodes/cult/cult_items.dm
index 1b760617d0..2026efeb78 100644
--- a/code/game/gamemodes/cult/cult_items.dm
+++ b/code/game/gamemodes/cult/cult_items.dm
@@ -112,9 +112,9 @@
/obj/item/twohanded/required/cult_bastard/attack_self(mob/user)
dash_toggled = !dash_toggled
if(dash_toggled)
- to_chat(loc, "You raise the [src] and prepare to jaunt with it.")
+ to_chat(loc, "You raise [src] and prepare to jaunt with it.")
else
- to_chat(loc, "You lower the [src] and prepare to swing it normally.")
+ to_chat(loc, "You lower [src] and prepare to swing it normally.")
/obj/item/twohanded/required/cult_bastard/pickup(mob/living/user)
. = ..()
diff --git a/code/game/gamemodes/cult/runes.dm b/code/game/gamemodes/cult/runes.dm
index 089265d2fb..a38a361cf3 100644
--- a/code/game/gamemodes/cult/runes.dm
+++ b/code/game/gamemodes/cult/runes.dm
@@ -486,7 +486,7 @@ structure_check() searches for nearby cultist structures required for the invoca
/obj/effect/rune/narsie/attackby(obj/I, mob/user, params) //Since the narsie rune takes a long time to make, add logging to removal.
if((istype(I, /obj/item/tome) && iscultist(user)))
- user.visible_message("[user.name] begins erasing the [src]...", "You begin erasing the [src]...")
+ user.visible_message("[user.name] begins erasing [src]...", "You begin erasing [src]...")
if(do_after(user, 50, target = src)) //Prevents accidental erasures.
log_game("Summon Narsie rune erased by [user.mind.key] (ckey) with a tome")
message_admins("[key_name_admin(user)] erased a Narsie rune with a tome")
diff --git a/code/game/machinery/PDApainter.dm b/code/game/machinery/PDApainter.dm
index 00289ee84b..61d5627354 100644
--- a/code/game/machinery/PDApainter.dm
+++ b/code/game/machinery/PDApainter.dm
@@ -122,7 +122,7 @@
ejectpda()
else
- to_chat(user, "\The [src] is empty.")
+ to_chat(user, "[src] is empty.")
/obj/machinery/pdapainter/verb/ejectpda()
@@ -138,7 +138,7 @@
storedpda = null
update_icon()
else
- to_chat(usr, "The [src] is empty.")
+ to_chat(usr, "[src] is empty.")
/obj/machinery/pdapainter/power_change()
diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index c39c66f6fc..f0f1ba62fe 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -45,7 +45,7 @@
if(!isarea(a))
return
if(a.power_equip == 0) // There's no APC in this area, don't try to cheat power!
- to_chat(user, "The [src] blinks red as you try to insert the cell!")
+ to_chat(user, "[src] blinks red as you try to insert the cell!")
return
if(!user.transferItemToLoc(W,src))
return
diff --git a/code/game/machinery/computer/telecrystalconsoles.dm b/code/game/machinery/computer/telecrystalconsoles.dm
index eb6c2902e8..4fefdb044e 100644
--- a/code/game/machinery/computer/telecrystalconsoles.dm
+++ b/code/game/machinery/computer/telecrystalconsoles.dm
@@ -31,7 +31,7 @@ GLOBAL_LIST_INIT(possible_uplinker_IDs, list("Alfa","Bravo","Charlie","Delta","E
/obj/machinery/computer/telecrystals/uplinker/attackby(obj/item/I, mob/user, params)
if(uplinkholder)
- to_chat(user, "The [src] already has an uplink in it.")
+ to_chat(user, "[src] already has an uplink in it.")
return
if(I.hidden_uplink)
if(!user.transferItemToLoc(I, src))
diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm
index 4c90f3ae4e..de26806273 100644
--- a/code/game/machinery/dance_machine.dm
+++ b/code/game/machinery/dance_machine.dm
@@ -62,10 +62,10 @@
if(!active)
if(istype(O, /obj/item/wrench))
if(!anchored && !isinspace())
- to_chat(user,"You secure the [src] to the floor.")
+ to_chat(user,"You secure [src] to the floor.")
anchored = TRUE
else if(anchored)
- to_chat(user,"You unsecure and disconnect the [src].")
+ to_chat(user,"You unsecure and disconnect [src].")
anchored = FALSE
playsound(src, 'sound/items/deconstruct.ogg', 50, 1)
return
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index c3af2043ad..28e6efeb05 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -1298,7 +1298,7 @@
if(result)
open(2)
if(density && !open(2))
- to_chat(user, "Despite your attempts, the [src] refuses to open.")
+ to_chat(user, "Despite your attempts, [src] refuses to open.")
/obj/machinery/door/airlock/plasma/attackby(obj/item/C, mob/user, params)
if(C.is_hot() > 300)//If the temperature of the object is over 300, then ignite
diff --git a/code/game/machinery/firealarm.dm b/code/game/machinery/firealarm.dm
index ebbeb1bee2..99a8f15f5d 100644
--- a/code/game/machinery/firealarm.dm
+++ b/code/game/machinery/firealarm.dm
@@ -82,7 +82,7 @@
return
emagged = TRUE
if(user)
- user.visible_message("Sparks fly out of the [src]!",
+ user.visible_message("Sparks fly out of [src]!",
"You emag [src], disabling its thermal sensors.")
playsound(src, "sparks", 50, 1)
diff --git a/code/game/machinery/pipe/construction.dm b/code/game/machinery/pipe/construction.dm
index 34d2edc56c..7a8f1f1779 100644
--- a/code/game/machinery/pipe/construction.dm
+++ b/code/game/machinery/pipe/construction.dm
@@ -245,13 +245,13 @@ GLOBAL_LIST_INIT(pipeID2State, list(
user.visible_message( \
"[user] fastens \the [src].", \
"You fasten \the [src].", \
- "You hear ratchet.")
+ "You hear ratcheting.")
qdel(src)
/obj/item/pipe/suicide_act(mob/user)
if(pipe_type in list(PIPE_PUMP, PIPE_PASSIVE_GATE, PIPE_VOLUME_PUMP))
- user.visible_message("[user] shoves the [src] in [user.p_their()] mouth and turns it on! It looks like [user.p_theyre()] trying to commit suicide!")
+ user.visible_message("[user] shoves [src] in [user.p_their()] mouth and turns it on! It looks like [user.p_theyre()] trying to commit suicide!")
if(iscarbon(user))
var/mob/living/carbon/C = user
for(var/i=1 to 20)
diff --git a/code/game/machinery/quantum_pad.dm b/code/game/machinery/quantum_pad.dm
index 6af0240214..bf3c94646c 100644
--- a/code/game/machinery/quantum_pad.dm
+++ b/code/game/machinery/quantum_pad.dm
@@ -51,13 +51,13 @@
if(istype(I, /obj/item/device/multitool))
var/obj/item/device/multitool/M = I
M.buffer = src
- to_chat(user, "You save the data in the [I.name]'s buffer.")
+ to_chat(user, "You save the data in [I]'s buffer.")
return 1
else if(istype(I, /obj/item/device/multitool))
var/obj/item/device/multitool/M = I
if(istype(M.buffer, /obj/machinery/quantumpad))
linked_pad = M.buffer
- to_chat(user, "You link the [src] to the one in the [I.name]'s buffer.")
+ to_chat(user, "You link [src] to the one in [I]'s buffer.")
return 1
if(exchange_parts(user, I))
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index d2ea1a4fd6..0d11c6a741 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -71,7 +71,7 @@
safety_mode = FALSE
update_icon()
playsound(src, "sparks", 75, 1, -1)
- to_chat(user, "You use the cryptographic sequencer on the [src].")
+ to_chat(user, "You use the cryptographic sequencer on [src].")
/obj/machinery/recycler/update_icon()
..()
diff --git a/code/game/machinery/syndicatebomb.dm b/code/game/machinery/syndicatebomb.dm
index d279f2849f..a700485544 100644
--- a/code/game/machinery/syndicatebomb.dm
+++ b/code/game/machinery/syndicatebomb.dm
@@ -167,11 +167,11 @@
return
playsound(loc, WT.usesound, 50, 1)
- to_chat(user, "You start to cut the [src] apart...")
+ to_chat(user, "You start to cut [src] apart...")
if(do_after(user, 20*I.toolspeed, target = src))
if(!WT.isOn() || !WT.remove_fuel(5, user))
return
- to_chat(user, "You cut the [src] apart.")
+ to_chat(user, "You cut [src] apart.")
new /obj/item/stack/sheet/plasteel( loc, 5)
qdel(src)
else
@@ -467,7 +467,7 @@
beakers += I
to_chat(user, "You load [src] with [I].")
else
- to_chat(user, "The [I] wont fit! The [src] can only hold up to [max_beakers] containers.")
+ to_chat(user, "[I] won't fit! \The [src] can only hold up to [max_beakers] containers.")
return
..()
diff --git a/code/game/mecha/equipment/mecha_equipment.dm b/code/game/mecha/equipment/mecha_equipment.dm
index 1e7c2b9f20..fa03878998 100644
--- a/code/game/mecha/equipment/mecha_equipment.dm
+++ b/code/game/mecha/equipment/mecha_equipment.dm
@@ -35,7 +35,7 @@
if(chassis.selected == src)
chassis.selected = null
src.update_chassis_page()
- chassis.occupant_message("The [src] is destroyed!")
+ chassis.occupant_message("[src] is destroyed!")
chassis.log_append_to_last("[src] is destroyed.",1)
SEND_SOUND(chassis.occupant, sound(istype(src, /obj/item/mecha_parts/mecha_equipment/weapon) ? 'sound/mecha/weapdestr.ogg' : 'sound/mecha/critdestr.ogg', volume=50))
chassis = null
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index 310e9985f5..0b99d811b3 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -472,7 +472,7 @@
occupant_message("Syringe loaded.")
update_equip_info()
return 1
- occupant_message("The [src] syringe chamber is full.")
+ occupant_message("[src]'s syringe chamber is full.")
return 0
/obj/item/mecha_parts/mecha_equipment/medical/syringe_gun/proc/analyze_reagents(atom/A)
diff --git a/code/game/mecha/equipment/tools/other_tools.dm b/code/game/mecha/equipment/tools/other_tools.dm
index 1256ab8315..5d38d372b5 100644
--- a/code/game/mecha/equipment/tools/other_tools.dm
+++ b/code/game/mecha/equipment/tools/other_tools.dm
@@ -430,12 +430,12 @@
if(prob(10))
GM.gases[/datum/gas/plasma][MOLES] += 100
GM.temperature = 1500+T0C //should be enough to start a fire
- T.visible_message("The [src] suddenly disgorges a cloud of heated plasma.")
+ T.visible_message("[src] suddenly disgorges a cloud of heated plasma.")
qdel(src)
else
GM.gases[/datum/gas/plasma][MOLES] += 5
GM.temperature = istype(T) ? T.air.return_temperature() : T20C
- T.visible_message("The [src] suddenly disgorges a cloud of plasma.")
+ T.visible_message("[src] suddenly disgorges a cloud of plasma.")
T.assume_air(GM)
return
diff --git a/code/game/objects/buckling.dm b/code/game/objects/buckling.dm
index ac54647468..8352a12e5e 100644
--- a/code/game/objects/buckling.dm
+++ b/code/game/objects/buckling.dm
@@ -47,9 +47,9 @@
return FALSE
if(!M.can_buckle() && !force)
if(M == usr)
- to_chat(M, "You are unable to buckle yourself to the [src]!")
+ to_chat(M, "You are unable to buckle yourself to [src]!")
else
- to_chat(usr, "You are unable to buckle [M] to the [src]!")
+ to_chat(usr, "You are unable to buckle [M] to [src]!")
return FALSE
if(M.pulledby && buckle_prevents_pull)
diff --git a/code/game/objects/items/RCD.dm b/code/game/objects/items/RCD.dm
index a2f80a94a9..1a18258c42 100644
--- a/code/game/objects/items/RCD.dm
+++ b/code/game/objects/items/RCD.dm
@@ -8,7 +8,7 @@ RCD
ARCD
*/
-obj/item/construction
+/obj/item/construction
opacity = 0
density = FALSE
anchored = FALSE
@@ -32,7 +32,7 @@ obj/item/construction
/obj/item/construction/Initialize()
. = ..()
- desc = "A [src]. It currently holds [matter]/[max_matter] matter-units."
+ desc = "\A [src]. It currently holds [matter]/[max_matter] matter-units."
spark_system = new /datum/effect_system/spark_spread
spark_system.set_up(5, 0, src)
spark_system.attach(src)
@@ -49,7 +49,7 @@ obj/item/construction
if(istype(W, /obj/item/rcd_ammo))
var/obj/item/rcd_ammo/R = W
if((matter + R.ammoamt) > max_matter)
- to_chat(user, "The [src] can't hold any more matter-units!")
+ to_chat(user, "[src] can't hold any more matter-units!")
return
qdel(W)
matter += R.ammoamt
@@ -60,7 +60,7 @@ obj/item/construction
else if(istype(W, /obj/item/stack/sheet/plasteel))
loaded = loadwithsheets(W, plasteelmultiplier*sheetmultiplier, user) //Plasteel is worth 3 times more than glass or metal
if(loaded)
- to_chat(user, "The [src] now holds [matter]/[max_matter] matter-units.")
+ to_chat(user, "[src] now holds [matter]/[max_matter] matter-units.")
desc = "A RCD. It currently holds [matter]/[max_matter] matter-units."
else
return ..()
@@ -72,9 +72,9 @@ obj/item/construction
S.use(amount_to_use)
matter += value*amount_to_use
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
- to_chat(user, "You insert [amount_to_use] [S.name] sheets into the [src]. ")
+ to_chat(user, "You insert [amount_to_use] [S.name] sheets into [src]. ")
return 1
- to_chat(user, "You can't insert any more [S.name] sheets into the [src]!")
+ to_chat(user, "You can't insert any more [S.name] sheets into [src]!")
return 0
/obj/item/construction/proc/activate()
@@ -91,7 +91,7 @@ obj/item/construction
to_chat(user, no_ammo_message)
return 0
matter -= amount
- desc = "A [src]. It currently holds [matter]/[max_matter] matter-units."
+ desc = "\A [src]. It currently holds [matter]/[max_matter] matter-units."
update_icon()
return 1
@@ -103,7 +103,7 @@ obj/item/construction
/obj/item/construction/proc/range_check(atom/A, mob/user)
if(!(A in view(7, get_turf(user))))
- to_chat(user, "The \'Out of Range\' light on the [src] blinks red.")
+ to_chat(user, "The \'Out of Range\' light on [src] blinks red.")
return FALSE
else
return TRUE
diff --git a/code/game/objects/items/RCL.dm b/code/game/objects/items/RCL.dm
index 176b9d19f9..2aa303a021 100644
--- a/code/game/objects/items/RCL.dm
+++ b/code/game/objects/items/RCL.dm
@@ -42,7 +42,7 @@
else
return
update_icon()
- to_chat(user, "You add the cables to the [src]. It now contains [loaded.amount].")
+ to_chat(user, "You add the cables to [src]. It now contains [loaded.amount].")
else if(istype(W, /obj/item/screwdriver))
if(!loaded)
return
diff --git a/code/game/objects/items/RSF.dm b/code/game/objects/items/RSF.dm
index 9b0251e8dc..eec97044bc 100644
--- a/code/game/objects/items/RSF.dm
+++ b/code/game/objects/items/RSF.dm
@@ -135,9 +135,9 @@ RSF
/obj/item/cookiesynth/emag_act(mob/user)
emagged = !emagged
if(emagged)
- to_chat(user, "You short out the [src]'s reagent safety checker!")
+ to_chat(user, "You short out [src]'s reagent safety checker!")
else
- to_chat(user, "You reset the [src]'s reagent safety checker!")
+ to_chat(user, "You reset [src]'s reagent safety checker!")
toxin = 0
/obj/item/cookiesynth/attack_self(mob/user)
@@ -166,7 +166,7 @@ RSF
if (!(istype(A, /obj/structure/table) || isfloorturf(A)))
return
if(matter < 1)
- to_chat(user, "The [src] doesn't have enough matter left. Wait for it to recharge!")
+ to_chat(user, "[src] doesn't have enough matter left. Wait for it to recharge!")
return
if(iscyborg(user))
var/mob/living/silicon/robot/R = user
diff --git a/code/game/objects/items/cigs_lighters.dm b/code/game/objects/items/cigs_lighters.dm
index 5f90dd1b51..915279d7fb 100644
--- a/code/game/objects/items/cigs_lighters.dm
+++ b/code/game/objects/items/cigs_lighters.dm
@@ -77,11 +77,11 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/obj/item/clothing/mask/cigarette/cig = help_light_cig(M)
if(lit && cig && user.a_intent == INTENT_HELP)
if(cig.lit)
- to_chat(user, "The [cig.name] is already lit.")
+ to_chat(user, "[cig] is already lit.")
if(M == user)
cig.attackby(src, user)
else
- cig.light("[user] holds the [name] out for [M], and lights the [cig.name].")
+ cig.light("[user] holds [src] out for [M], and lights [cig].")
else
..()
@@ -627,7 +627,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
//VAPE NATION//
///////////////
/obj/item/clothing/mask/vape
- name = "E-Cigarette"
+ name = "\improper E-Cigarette"
desc = "A classy and highly sophisticated electronic cigarette, for classy and dignified gentlemen. A warning label reads \"Warning: Do not fill with flammable materials.\""//<<< i'd vape to that.
icon = 'icons/obj/clothing/masks.dmi'
icon_state = null
@@ -659,23 +659,23 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(reagents.total_volume < chem_volume)
if(O.reagents.total_volume > 0)
O.reagents.trans_to(src,25)
- to_chat(user, "You add the contents of [O] to the [src]")
+ to_chat(user, "You add the contents of [O] to [src].")
else
- to_chat(user, "The [O] is empty!")
+ to_chat(user, "[O] is empty!")
else
to_chat(user, "[src] can't hold anymore reagents!")
if(istype(O, /obj/item/screwdriver))
if(!screw)
screw = 1
- to_chat(user, "You open the cap on the [src]")
+ to_chat(user, "You open the cap on [src].")
if(super)
add_overlay("vapeopen_med")
else
add_overlay("vapeopen_low")
else
screw = 0
- to_chat(user, "You close the cap on the [src]")
+ to_chat(user, "You close the cap on [src].")
cut_overlays()
if(istype(O, /obj/item/device/multitool))
@@ -683,16 +683,16 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(!super)
cut_overlays()
super = 1
- to_chat(user, "You increase the voltage in the [src]")
+ to_chat(user, "You increase the voltage of [src].")
add_overlay("vapeopen_med")
else
cut_overlays()
super = 0
- to_chat(user, "You decrease the voltage in the [src]")
+ to_chat(user, "You decrease the voltage of [src].")
add_overlay("vapeopen_low")
if(screw && emagged)
- to_chat(user, "The [name] can't be modified!")
+ to_chat(user, "[src] can't be modified!")
/obj/item/clothing/mask/vape/emag_act(mob/user)// I WON'T REGRET WRITTING THIS, SURLY.
@@ -701,19 +701,19 @@ CIGARETTE PACKETS ARE IN FANCY.DM
cut_overlays()
emagged = TRUE
super = 0
- to_chat(user, "You maximize the voltage in the [src]")
+ to_chat(user, "You maximize the voltage of [src].")
add_overlay("vapeopen_high")
var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread //for effect
sp.set_up(5, 1, src)
sp.start()
else
- to_chat(user, "The [name] is already emagged!")
+ to_chat(user, "[src] is already emagged!")
else
- to_chat(user, "You need to open the cap to do that")
+ to_chat(user, "You need to open the cap to do that.")
/obj/item/clothing/mask/vape/attack_self(mob/user)
if(reagents.total_volume > 0)
- to_chat(user, "you empty [src] of all reagents.")
+ to_chat(user, "You empty [src] of all reagents.")
reagents.clear_reagents()
return
@@ -764,7 +764,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
if(!reagents.total_volume)
if(ismob(loc))
- to_chat(M, "The [name] is empty!")
+ to_chat(M, "[src] is empty!")
STOP_PROCESSING(SSobj, src)
//it's reusable so it won't unequip when empty
return
@@ -788,7 +788,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
var/datum/effect_system/spark_spread/sp = new /datum/effect_system/spark_spread
sp.set_up(5, 1, src)
sp.start()
- to_chat(M, "The [name] suddenly explodes in your mouth!")
+ to_chat(M, "[src] suddenly explodes in your mouth!")
qdel(src)
return
diff --git a/code/game/objects/items/devices/traitordevices.dm b/code/game/objects/items/devices/traitordevices.dm
index 663eed0a8d..c97ad1271c 100644
--- a/code/game/objects/items/devices/traitordevices.dm
+++ b/code/game/objects/items/devices/traitordevices.dm
@@ -241,7 +241,7 @@ effective or pretty fucking useless.
var/range = 12
/obj/item/device/jammer/attack_self(mob/user)
- to_chat(user,"You [active ? "deactivate" : "activate"] the [src].")
+ to_chat(user,"You [active ? "deactivate" : "activate"] [src].")
active = !active
if(active)
GLOB.active_jammers |= src
diff --git a/code/game/objects/items/grenades/plastic.dm b/code/game/objects/items/grenades/plastic.dm
index 6c2ddd7ee7..e2a8be7936 100644
--- a/code/game/objects/items/grenades/plastic.dm
+++ b/code/game/objects/items/grenades/plastic.dm
@@ -99,7 +99,7 @@
if(ismob(AM))
return
- to_chat(user, "You start planting the [src]. The timer is set to [det_time]...")
+ to_chat(user, "You start planting [src]. The timer is set to [det_time]...")
if(do_after(user, 30, target = AM))
if(!user.temporarilyRemoveItemFromInventory(src))
@@ -126,7 +126,7 @@
/obj/item/grenade/plastic/suicide_act(mob/user)
message_admins("[ADMIN_LOOKUPFLW(user)] suicided with [src] at [ADMIN_COORDJMP(user)]",0,1)
log_game("[key_name(user)] suicided with [src] at [COORD(user)]")
- user.visible_message("[user] activates the [src] and holds it above [user.p_their()] head! It looks like [user.p_theyre()] going out with a bang!")
+ user.visible_message("[user] activates [src] and holds it above [user.p_their()] head! It looks like [user.p_theyre()] going out with a bang!")
var/message_say = "FOR NO RAISIN!"
if(user.mind)
if(user.mind.special_role)
diff --git a/code/game/objects/items/robot/robot_items.dm b/code/game/objects/items/robot/robot_items.dm
index 64fea6ef19..2a9e6d0114 100644
--- a/code/game/objects/items/robot/robot_items.dm
+++ b/code/game/objects/items/robot/robot_items.dm
@@ -274,17 +274,22 @@
to_chat(user, "You stop charging [target].")
/obj/item/device/harmalarm
+<<<<<<< HEAD
name = "Sonic Harm Prevention Tool"
desc = "Releases a harmless blast that confuses most organics. For when the harm is JUST TOO MUCH"
+=======
+ name = "\improper Sonic Harm Prevention Tool"
+ desc = "Releases a harmless blast that confuses most organics. For when the harm is JUST TOO MUCH."
+>>>>>>> 7998a3c... Merge pull request #31601 from AutomaticFrenzy/patch/thethe
icon_state = "megaphone"
var/cooldown = 0
/obj/item/device/harmalarm/emag_act(mob/user)
emagged = !emagged
if(emagged)
- to_chat(user, "You short out the safeties on the [src]!")
+ to_chat(user, "You short out the safeties on [src]!")
else
- to_chat(user, "You reset the safeties on the [src]!")
+ to_chat(user, "You reset the safeties on [src]!")
/obj/item/device/harmalarm/attack_self(mob/user)
var/safety = !emagged
@@ -503,9 +508,8 @@
//Peacekeeper Cyborg Projectile Dampenening Field
/obj/item/borg/projectile_dampen
- name = "Hyperkinetic Dampening projector"
- desc = "A device that projects a dampening field that weakenss kinetic energy above a certain threshold. Projects a field that drains power per second \
- while active, that will weaken and slow damaging projectiles inside its field. Still being a prototype, it tends to induce a charge on ungrounded metallic surfaces."
+ name = "\improper Hyperkinetic Dampening projector"
+ desc = "A device that projects a dampening field that weakens kinetic energy above a certain threshold. Projects a field that drains power per second while active, that will weaken and slow damaging projectiles inside its field. Still being a prototype, it tends to induce a charge on ungrounded metallic surfaces."
icon = 'icons/obj/device.dmi'
icon_state = "shield"
var/maxenergy = 1500
@@ -544,7 +548,7 @@
/obj/item/borg/projectile_dampen/attack_self(mob/user)
if(cycle_delay > world.time)
- to_chat(user, "\the [src] is still recycling its projectors!")
+ to_chat(user, "[src] is still recycling its projectors!")
return
cycle_delay = world.time + PKBORG_DAMPEN_CYCLE_DELAY
active = !active
@@ -553,7 +557,7 @@
else
deactivate_field()
update_icon()
- to_chat(user, "You [active? "activate":"deactivate"] the [src].")
+ to_chat(user, "You [active? "activate":"deactivate"] [src].")
/obj/item/borg/projectile_dampen/update_icon()
icon_state = "[initial(icon_state)][active]"
@@ -601,7 +605,7 @@
energy = Clamp(energy - usage, 0, maxenergy)
if(energy <= 0)
deactivate_field()
- visible_message("The [src] blinks \"ENERGY DEPLETED\"")
+ visible_message("[src] blinks \"ENERGY DEPLETED\".")
/obj/item/borg/projectile_dampen/proc/process_recharge()
if(!istype(host))
diff --git a/code/game/objects/items/stacks/telecrystal.dm b/code/game/objects/items/stacks/telecrystal.dm
index 4cb4b6e8d6..87978ac58e 100644
--- a/code/game/objects/items/stacks/telecrystal.dm
+++ b/code/game/objects/items/stacks/telecrystal.dm
@@ -23,15 +23,15 @@
if(isitem(I) && I.hidden_uplink && I.hidden_uplink.active) //No metagaming by using this on every PDA around just to see if it gets used up.
I.hidden_uplink.telecrystals += amount
use(amount)
- to_chat(user, "You slot [src] into the [I] and charge its internal uplink.")
+ to_chat(user, "You slot [src] into [I] and charge its internal uplink.")
else if(istype(I, /obj/item/cartridge/virus/frame))
var/obj/item/cartridge/virus/frame/cart = I
if(!cart.charges)
- to_chat(user, "The [cart] is out of charges, it's refusing to accept the [src]")
+ to_chat(user, "[cart] is out of charges, it's refusing to accept [src].")
return
cart.telecrystals += amount
use(amount)
- to_chat(user, "You slot [src] into the [cart]. The next time it's used, it will also give telecrystals")
+ to_chat(user, "You slot [src] into [cart]. The next time it's used, it will also give telecrystals.")
/obj/item/stack/telecrystal/five
amount = 5
diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm
index 313988b7d4..7cd28e3bc9 100644
--- a/code/game/objects/items/storage/boxes.dm
+++ b/code/game/objects/items/storage/boxes.dm
@@ -681,7 +681,7 @@
if(istype(W, /obj/item/pen))
//if a pen is used on the sack, dialogue to change its design appears
if(contents.len)
- to_chat(user, "You can't modify this [src] with items still inside!")
+ to_chat(user, "You can't modify [src] with items still inside!")
return
var/list/designs = list(NODESIGN, NANOTRASEN, SYNDI, HEART, SMILE, "Cancel")
var/switchDesign = input("Select a Design:", "Paper Sack Design", designs[1]) in designs
@@ -691,7 +691,7 @@
var/choice = designs.Find(switchDesign)
if(design == designs[choice] || designs[choice] == "Cancel")
return 0
- to_chat(usr, "You make some modifications to the [src] using your pen.")
+ to_chat(usr, "You make some modifications to [src] using your pen.")
design = designs[choice]
icon_state = "paperbag_[design]"
item_state = "paperbag_[design]"
@@ -710,12 +710,12 @@
else if(W.is_sharp())
if(!contents.len)
if(item_state == "paperbag_None")
- user.show_message("You cut eyeholes into the [src].", 1)
+ user.show_message("You cut eyeholes into [src].", 1)
new /obj/item/clothing/head/papersack(user.loc)
qdel(src)
return 0
else if(item_state == "paperbag_SmileyFace")
- user.show_message("You cut eyeholes into the [src] and modify the design.", 1)
+ user.show_message("You cut eyeholes into [src] and modify the design.", 1)
new /obj/item/clothing/head/papersack/smiley(user.loc)
qdel(src)
return 0
diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm
index bc1a4aa321..150eb178d4 100644
--- a/code/game/objects/items/teleportation.dm
+++ b/code/game/objects/items/teleportation.dm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
#define SOURCE_PORTAL 1
#define DESTINATION_PORTAL 2
@@ -220,3 +221,227 @@ Frequency:
if(active_portal_pairs[i] == P)
return DESTINATION_PORTAL
return FALSE
+=======
+
+#define SOURCE_PORTAL 1
+#define DESTINATION_PORTAL 2
+
+/* Teleportation devices.
+ * Contains:
+ * Locator
+ * Hand-tele
+ */
+
+/*
+ * Locator
+ */
+/obj/item/locator
+ name = "locator"
+ desc = "Used to track those with locater implants."
+ icon = 'icons/obj/device.dmi'
+ icon_state = "locator"
+ var/temp = null
+ var/frequency = 1451
+ var/broadcasting = null
+ var/listening = 1
+ flags_1 = CONDUCT_1
+ w_class = WEIGHT_CLASS_SMALL
+ item_state = "electronic"
+ lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
+ throw_speed = 3
+ throw_range = 7
+ materials = list(MAT_METAL=400)
+ origin_tech = "magnets=3;bluespace=2"
+
+/obj/item/locator/attack_self(mob/user)
+ user.set_machine(src)
+ var/dat
+ if (src.temp)
+ dat = "[src.temp]
Clear"
+ else
+ dat = {"
+Persistent Signal Locator
+Frequency:
+-
+- [format_frequency(src.frequency)]
++
++
+
+Refresh"}
+ user << browse(dat, "window=radio")
+ onclose(user, "radio")
+ return
+
+/obj/item/locator/Topic(href, href_list)
+ ..()
+ if (usr.stat || usr.restrained())
+ return
+ var/turf/current_location = get_turf(usr)//What turf is the user on?
+ if(!current_location || current_location.z == ZLEVEL_CENTCOM)//If turf was not found or they're on CentCom
+ to_chat(usr, "[src] is malfunctioning.")
+ return
+ if(usr.contents.Find(src) || (in_range(src, usr) && isturf(loc)))
+ usr.set_machine(src)
+ if (href_list["refresh"])
+ src.temp = "Persistent Signal Locator
"
+ var/turf/sr = get_turf(src)
+
+ if (sr)
+ src.temp += "Located Beacons:
"
+
+ for(var/obj/item/device/radio/beacon/W in GLOB.teleportbeacons)
+ if (W.frequency == src.frequency)
+ var/turf/tr = get_turf(W)
+ if (tr.z == sr.z && tr)
+ var/direct = max(abs(tr.x - sr.x), abs(tr.y - sr.y))
+ if (direct < 5)
+ direct = "very strong"
+ else
+ if (direct < 10)
+ direct = "strong"
+ else
+ if (direct < 20)
+ direct = "weak"
+ else
+ direct = "very weak"
+ src.temp += "[W.code]-[dir2text(get_dir(sr, tr))]-[direct]
"
+
+ src.temp += "Extranneous Signals:
"
+ for (var/obj/item/implant/tracking/W in GLOB.tracked_implants)
+ if (!W.imp_in || !ismob(W.loc))
+ continue
+ else
+ var/mob/M = W.loc
+ if (M.stat == DEAD)
+ if (M.timeofdeath + 6000 < world.time)
+ continue
+
+ var/turf/tr = get_turf(W)
+ if (tr.z == sr.z && tr)
+ var/direct = max(abs(tr.x - sr.x), abs(tr.y - sr.y))
+ if (direct < 20)
+ if (direct < 5)
+ direct = "very strong"
+ else
+ if (direct < 10)
+ direct = "strong"
+ else
+ direct = "weak"
+ src.temp += "[W.imp_in.name]-[dir2text(get_dir(sr, tr))]-[direct]
"
+
+ src.temp += "You are at \[[sr.x],[sr.y],[sr.z]\] in orbital coordinates.
Refresh
"
+ else
+ src.temp += "Processing Error: Unable to locate orbital position.
"
+ else
+ if (href_list["freq"])
+ src.frequency += text2num(href_list["freq"])
+ src.frequency = sanitize_frequency(src.frequency)
+ else
+ if (href_list["temp"])
+ src.temp = null
+ if (ismob(src.loc))
+ attack_self(src.loc)
+ else
+ for(var/mob/M in viewers(1, src))
+ if (M.client)
+ src.attack_self(M)
+ return
+
+
+/*
+ * Hand-tele
+ */
+/obj/item/hand_tele
+ name = "hand tele"
+ desc = "A portable item using blue-space technology."
+ icon = 'icons/obj/device.dmi'
+ icon_state = "hand_tele"
+ item_state = "electronic"
+ lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi'
+ throwforce = 0
+ w_class = WEIGHT_CLASS_SMALL
+ throw_speed = 3
+ throw_range = 5
+ materials = list(MAT_METAL=10000)
+ origin_tech = "magnets=3;bluespace=4"
+ armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 30, bio = 0, rad = 0, fire = 100, acid = 100)
+ resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF
+ var/list/active_portal_pairs
+ var/max_portal_pairs = 3
+
+/obj/item/hand_tele/Initialize()
+ . = ..()
+ active_portal_pairs = list()
+
+/obj/item/hand_tele/afterattack(atom/target, mob/user, proximity, params)
+ if(is_parent_of_portal(target))
+ qdel(target)
+ to_chat(user, "You dispel [target] remotely with \the [src]!")
+ return ..()
+
+
+/obj/item/hand_tele/attack_self(mob/user)
+ var/turf/current_location = get_turf(user)//What turf is the user on?
+ var/area/current_area = current_location.loc
+ if(!current_location || current_area.noteleport || current_location.z > ZLEVEL_SPACEMAX || !isturf(user.loc))//If turf was not found or they're on z level 2 or >7 which does not currently exist. or if user is not located on a turf
+ to_chat(user, "\The [src] is malfunctioning.")
+ return
+ var/list/L = list( )
+ for(var/obj/machinery/computer/teleporter/com in GLOB.machines)
+ if(com.target)
+ var/area/A = get_area(com.target)
+ if(!A || A.noteleport)
+ continue
+ if(com.power_station && com.power_station.teleporter_hub && com.power_station.engaged)
+ L["[get_area(com.target)] (Active)"] = com.target
+ else
+ L["[get_area(com.target)] (Inactive)"] = com.target
+ var/list/turfs = list( )
+ for(var/turf/T in urange(10, orange=1))
+ if(T.x>world.maxx-8 || T.x<8)
+ continue //putting them at the edge is dumb
+ if(T.y>world.maxy-8 || T.y<8)
+ continue
+ var/area/A = T.loc
+ if(A.noteleport)
+ continue
+ turfs += T
+ if(turfs.len)
+ L["None (Dangerous)"] = pick(turfs)
+ var/t1 = input(user, "Please select a teleporter to lock in on.", "Hand Teleporter") as null|anything in L
+ if (!t1 || user.get_active_held_item() != src || user.incapacitated())
+ return
+ if(active_portal_pairs.len >= max_portal_pairs)
+ user.show_message("\The [src] is recharging!")
+ return
+ var/atom/T = L[t1]
+ var/area/A = get_area(T)
+ if(A.noteleport)
+ to_chat(user, "\The [src] is malfunctioning.")
+ return
+ user.show_message("Locked In.", 2)
+ var/list/obj/effect/portal/created = create_portal_pair(current_location, get_teleport_turf(get_turf(T)), src, 300, 1)
+ if(!(LAZYLEN(created) == 2))
+ return
+ try_move_adjacent(created[1])
+ active_portal_pairs[created[1]] = created[2]
+ var/obj/effect/portal/c1 = created[1]
+ var/obj/effect/portal/c2 = created[2]
+ investigate_log("was used by [key_name(user)] at [COORD(user)] to create a portal pair with destinations [COORD(c1)] and [COORD(c2)].", INVESTIGATE_PORTAL)
+ add_fingerprint(user)
+
+/obj/item/hand_tele/proc/on_portal_destroy(obj/effect/portal/P)
+ active_portal_pairs -= P //If this portal pair is made by us it'll be erased along with the other portal by the portal.
+
+/obj/item/hand_tele/proc/is_parent_of_portal(obj/effect/portal/P)
+ if(!istype(P))
+ return FALSE
+ if(active_portal_pairs[P])
+ return SOURCE_PORTAL
+ for(var/i in active_portal_pairs)
+ if(active_portal_pairs[i] == P)
+ return DESTINATION_PORTAL
+ return FALSE
+>>>>>>> 7998a3c... Merge pull request #31601 from AutomaticFrenzy/patch/thethe
diff --git a/code/game/objects/items/toys.dm b/code/game/objects/items/toys.dm
index 0ed1a7c566..47b2dcce9c 100644
--- a/code/game/objects/items/toys.dm
+++ b/code/game/objects/items/toys.dm
@@ -1105,7 +1105,7 @@
/obj/item/toy/figure/attack_self(mob/user as mob)
if(cooldown <= world.time)
cooldown = world.time + 50
- to_chat(user, "The [src] says \"[toysay]\"")
+ to_chat(user, "[src] says \"[toysay]\"")
playsound(user, toysound, 20, 1)
/obj/item/toy/figure/cmo
diff --git a/code/game/objects/structures.dm b/code/game/objects/structures.dm
index 85d124fefc..56b5469c86 100644
--- a/code/game/objects/structures.dm
+++ b/code/game/objects/structures.dm
@@ -31,7 +31,7 @@
user.changeNext_move(CLICK_CD_MELEE)
user.do_attack_animation(src)
structureclimber.Knockdown(40)
- structureclimber.visible_message("[structureclimber.name] has been knocked off the [src]", "You're knocked off the [src]!", "You see [structureclimber.name] get knocked off the [src]")
+ structureclimber.visible_message("[structureclimber] has been knocked off [src].", "You're knocked off [src]!", "You see [structureclimber] get knocked off [src].")
interact(user)
/obj/structure/interact(mob/user)
diff --git a/code/game/objects/structures/displaycase.dm b/code/game/objects/structures/displaycase.dm
index 93e70cef72..6d43d91ce7 100644
--- a/code/game/objects/structures/displaycase.dm
+++ b/code/game/objects/structures/displaycase.dm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
/obj/structure/displaycase
name = "display case"
icon = 'icons/obj/stationobjs.dmi'
@@ -360,3 +361,367 @@
name = initial(I.name)
icon = initial(I.icon)
icon_state = initial(I.icon_state)
+=======
+/obj/structure/displaycase
+ name = "display case"
+ icon = 'icons/obj/stationobjs.dmi'
+ icon_state = "glassbox0"
+ desc = "A display case for prized possessions."
+ density = TRUE
+ anchored = TRUE
+ resistance_flags = ACID_PROOF
+ armor = list(melee = 30, bullet = 0, laser = 0, energy = 0, bomb = 10, bio = 0, rad = 0, fire = 70, acid = 100)
+ max_integrity = 200
+ integrity_failure = 50
+ var/obj/item/showpiece = null
+ var/alert = TRUE
+ var/open = FALSE
+ var/openable = TRUE
+ var/obj/item/electronics/airlock/electronics
+ var/start_showpiece_type = null //add type for items on display
+
+/obj/structure/displaycase/Initialize()
+ . = ..()
+ if(start_showpiece_type)
+ showpiece = new start_showpiece_type (src)
+ update_icon()
+
+/obj/structure/displaycase/Destroy()
+ if(electronics)
+ QDEL_NULL(electronics)
+ if(showpiece)
+ QDEL_NULL(showpiece)
+ return ..()
+
+/obj/structure/displaycase/examine(mob/user)
+ ..()
+ if(alert)
+ to_chat(user, "Hooked up with an anti-theft system.")
+ if(showpiece)
+ to_chat(user, "There's [showpiece] inside.")
+
+
+/obj/structure/displaycase/proc/dump()
+ if (showpiece)
+ showpiece.forceMove(loc)
+ showpiece = null
+
+/obj/structure/displaycase/play_attack_sound(damage_amount, damage_type = BRUTE, damage_flag = 0)
+ switch(damage_type)
+ if(BRUTE)
+ playsound(src.loc, 'sound/effects/glasshit.ogg', 75, 1)
+ if(BURN)
+ playsound(src.loc, 'sound/items/welder.ogg', 100, 1)
+
+/obj/structure/displaycase/deconstruct(disassembled = TRUE)
+ if(!(flags_1 & NODECONSTRUCT_1))
+ dump()
+ if(!disassembled)
+ new /obj/item/shard( src.loc )
+ trigger_alarm()
+ qdel(src)
+
+/obj/structure/displaycase/obj_break(damage_flag)
+ if(!broken && !(flags_1 & NODECONSTRUCT_1))
+ density = FALSE
+ broken = 1
+ new /obj/item/shard( src.loc )
+ playsound(src, "shatter", 70, 1)
+ update_icon()
+ trigger_alarm()
+
+/obj/structure/displaycase/proc/trigger_alarm()
+ //Activate Anti-theft
+ if(alert)
+ var/area/alarmed = get_area(src)
+ alarmed.burglaralert(src)
+ playsound(src, 'sound/effects/alert.ogg', 50, 1)
+
+/*
+
+*/
+
+/obj/structure/displaycase/proc/is_directional(atom/A)
+ try
+ getFlatIcon(A,defdir=4)
+ catch
+ return 0
+ return 1
+
+/obj/structure/displaycase/proc/get_flat_icon_directional(atom/A)
+ //Get flatIcon even if dir is mismatched for directionless icons
+ //SLOW
+ var/icon/I
+ if(is_directional(A))
+ I = getFlatIcon(A)
+ else
+ var/old_dir = A.dir
+ A.setDir(2)
+ I = getFlatIcon(A)
+ A.setDir(old_dir)
+ return I
+
+/obj/structure/displaycase/update_icon()
+ var/icon/I
+ if(open)
+ I = icon('icons/obj/stationobjs.dmi',"glassbox_open")
+ else
+ I = icon('icons/obj/stationobjs.dmi',"glassbox0")
+ if(broken)
+ I = icon('icons/obj/stationobjs.dmi',"glassboxb0")
+ if(showpiece)
+ var/icon/S = get_flat_icon_directional(showpiece)
+ S.Scale(17,17)
+ I.Blend(S,ICON_UNDERLAY,8,8)
+ src.icon = I
+ return
+
+/obj/structure/displaycase/attackby(obj/item/W, mob/user, params)
+ if(W.GetID() && !broken && openable)
+ if(allowed(user))
+ to_chat(user, "You [open ? "close":"open"] [src].")
+ toggle_lock(user)
+ else
+ to_chat(user, "Access denied.")
+ else if(istype(W, /obj/item/weldingtool) && user.a_intent == INTENT_HELP && !broken)
+ var/obj/item/weldingtool/WT = W
+ if(obj_integrity < max_integrity && WT.remove_fuel(5, user))
+ to_chat(user, "You begin repairing [src].")
+ playsound(loc, WT.usesound, 40, 1)
+ if(do_after(user, 40*W.toolspeed, target = src))
+ obj_integrity = max_integrity
+ playsound(loc, 'sound/items/welder2.ogg', 50, 1)
+ update_icon()
+ to_chat(user, "You repair [src].")
+ else
+ to_chat(user, "[src] is already in good condition!")
+ return
+ else if(!alert && istype(W, /obj/item/crowbar) && openable) //Only applies to the lab cage and player made display cases
+ if(broken)
+ if(showpiece)
+ to_chat(user, "Remove the displayed object first.")
+ else
+ to_chat(user, "You remove the destroyed case")
+ qdel(src)
+ else
+ to_chat(user, "You start to [open ? "close":"open"] [src].")
+ if(do_after(user, 20*W.toolspeed, target = src))
+ to_chat(user, "You [open ? "close":"open"] [src].")
+ toggle_lock(user)
+ else if(open && !showpiece)
+ if(user.transferItemToLoc(W, src))
+ showpiece = W
+ to_chat(user, "You put [W] on display")
+ update_icon()
+ else if(istype(W, /obj/item/stack/sheet/glass) && broken)
+ var/obj/item/stack/sheet/glass/G = W
+ if(G.get_amount() < 2)
+ to_chat(user, "You need two glass sheets to fix the case!")
+ return
+ to_chat(user, "You start fixing [src]...")
+ if(do_after(user, 20, target = src))
+ G.use(2)
+ broken = 0
+ obj_integrity = max_integrity
+ update_icon()
+ else
+ return ..()
+
+/obj/structure/displaycase/proc/toggle_lock(mob/user)
+ open = !open
+ update_icon()
+
+/obj/structure/displaycase/attack_paw(mob/user)
+ return src.attack_hand(user)
+
+/obj/structure/displaycase/attack_hand(mob/user)
+ user.changeNext_move(CLICK_CD_MELEE)
+ if (showpiece && (broken || open))
+ to_chat(user, "You deactivate the hover field built into the case.")
+ dump()
+ src.add_fingerprint(user)
+ update_icon()
+ return
+ else
+ //prevents remote "kicks" with TK
+ if (!Adjacent(user))
+ return
+ user.visible_message("[user] kicks the display case.", null, null, COMBAT_MESSAGE_RANGE)
+ user.do_attack_animation(src, ATTACK_EFFECT_KICK)
+ take_damage(2)
+
+
+
+/obj/structure/displaycase_chassis
+ anchored = TRUE
+ density = FALSE
+ name = "display case chassis"
+ desc = "The wooden base of a display case."
+ icon = 'icons/obj/stationobjs.dmi'
+ icon_state = "glassbox_chassis"
+ var/obj/item/electronics/airlock/electronics
+
+
+/obj/structure/displaycase_chassis/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/wrench)) //The player can only deconstruct the wooden frame
+ to_chat(user, "You start disassembling [src]...")
+ playsound(src.loc, I.usesound, 50, 1)
+ if(do_after(user, 30*I.toolspeed, target = src))
+ playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
+ new /obj/item/stack/sheet/mineral/wood(get_turf(src), 5)
+ qdel(src)
+
+ else if(istype(I, /obj/item/electronics/airlock))
+ to_chat(user, "You start installing the electronics into [src]...")
+ playsound(src.loc, I.usesound, 50, 1)
+ if(do_after(user, 30, target = src) && user.transferItemToLoc(I,src))
+ electronics = I
+ to_chat(user, "You install the airlock electronics.")
+
+ 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, "You need ten glass sheets to do this!")
+ return
+ to_chat(user, "You start adding [G] to [src]...")
+ if(do_after(user, 20, target = src))
+ G.use(10)
+ var/obj/structure/displaycase/display = new(src.loc)
+ if(electronics)
+ electronics.loc = display
+ display.electronics = electronics
+ if(electronics.one_access)
+ display.req_one_access = electronics.accesses
+ else
+ display.req_access = electronics.accesses
+ qdel(src)
+ else
+ return ..()
+
+//The captains display case requiring specops ID access is intentional.
+//The lab cage and captains display case do not spawn with electronics, which is why req_access is needed.
+/obj/structure/displaycase/captain
+ alert = 1
+ start_showpiece_type = /obj/item/gun/energy/laser/captain
+ req_access = list(ACCESS_CENT_SPECOPS)
+
+/obj/structure/displaycase/labcage
+ name = "lab cage"
+ desc = "A glass lab container for storing interesting creatures."
+ start_showpiece_type = /obj/item/clothing/mask/facehugger/lamarr
+ req_access = list(ACCESS_RD)
+
+
+
+/obj/structure/displaycase/trophy
+ name = "trophy display case"
+ desc = "Store your trophies of accomplishment in here, and they will stay forever."
+ var/trophy_message = ""
+ var/placer_key = ""
+ var/added_roundstart = TRUE
+ var/is_locked = TRUE
+
+ alert = TRUE
+ integrity_failure = 0
+ openable = FALSE
+
+/obj/structure/displaycase/trophy/Initialize()
+ . = ..()
+ GLOB.trophy_cases += src
+
+/obj/structure/displaycase/trophy/Destroy()
+ GLOB.trophy_cases -= src
+ return ..()
+
+/obj/structure/displaycase/trophy/examine(mob/user)
+ ..()
+ if(trophy_message)
+ to_chat(user, "The plaque reads:")
+ to_chat(user, trophy_message)
+
+/obj/structure/displaycase/trophy/attackby(obj/item/W, mob/user, params)
+
+ if(!user.Adjacent(src)) //no TK museology
+ return
+ if(user.a_intent == INTENT_HARM)
+ return ..()
+
+ if(user.is_holding_item_of_type(/obj/item/key/displaycase))
+ if(added_roundstart)
+ is_locked = !is_locked
+ to_chat(user, "You [!is_locked ? "un" : ""]lock the case.")
+ else
+ to_chat(user, "The lock is stuck shut!")
+ return
+
+ if(is_locked)
+ to_chat(user, "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, "You've already put something new in this case.")
+ return
+
+ if(is_type_in_typecache(W, GLOB.blacklisted_cargo_types))
+ to_chat(user, "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, "The case rejects the [W].")
+ return
+
+ if(user.transferItemToLoc(W, src))
+
+ if(showpiece)
+ to_chat(user, "You press a button, and [showpiece] descends into the floor of the case.")
+ QDEL_NULL(showpiece)
+
+ to_chat(user, "You insert [W] into the case.")
+ showpiece = W
+ added_roundstart = FALSE
+ update_icon()
+
+ placer_key = user.ckey
+
+ trophy_message = W.desc //default value
+
+ var/chosen_plaque = stripped_input(user, "What would you like the plaque to say? Default value is item's description.", "Trophy Plaque")
+ if(chosen_plaque)
+ if(user.Adjacent(src))
+ trophy_message = chosen_plaque
+ to_chat(user, "You set the plaque's text.")
+ else
+ to_chat(user, "You are too far to set the plaque's text.")
+
+ SSpersistence.SaveTrophy(src)
+ return TRUE
+
+ else
+ to_chat(user, "\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("The [showpiece] crumbles to dust!")
+ new /obj/effect/decal/cleanable/ash(loc)
+ QDEL_NULL(showpiece)
+ else
+ ..()
+
+/obj/item/key/displaycase
+ name = "display case key"
+ desc = "The key to the curator's display cases."
+
+/obj/item/showpiece_dummy
+ name = "Cheap replica"
+
+/obj/item/showpiece_dummy/Initialize(mapload, path)
+ . = ..()
+ var/obj/item/I = path
+ name = initial(I.name)
+ icon = initial(I.icon)
+ icon_state = initial(I.icon_state)
+>>>>>>> 7998a3c... Merge pull request #31601 from AutomaticFrenzy/patch/thethe
diff --git a/code/game/objects/structures/hivebot.dm b/code/game/objects/structures/hivebot.dm
index ea649a1f86..73b1e12924 100644
--- a/code/game/objects/structures/hivebot.dm
+++ b/code/game/objects/structures/hivebot.dm
@@ -5,6 +5,7 @@
icon_state = "def_radar-off"
anchored = TRUE
density = TRUE
+<<<<<<< HEAD
var/bot_type = "norm"
var/bot_amt = 10
@@ -34,3 +35,34 @@
playsound(src.loc, 'sound/effects/empulse.ogg', 25, 1)
qdel(src)
return
+=======
+ var/bot_type = "norm"
+ var/bot_amt = 10
+
+/obj/structure/hivebot_beacon/New()
+ ..()
+ var/datum/effect_system/smoke_spread/smoke = new
+ smoke.set_up(2, loc)
+ smoke.start()
+ visible_message("[src] warps in!")
+ playsound(src.loc, 'sound/effects/empulse.ogg', 25, 1)
+ addtimer(CALLBACK(src, .proc/warpbots), rand(10, 600))
+
+/obj/structure/hivebot_beacon/proc/warpbots()
+ icon_state = "def_radar"
+ visible_message("[src] turns on!")
+ while(bot_amt > 0)
+ bot_amt--
+ switch(bot_type)
+ if("norm")
+ new /mob/living/simple_animal/hostile/hivebot(get_turf(src))
+ if("range")
+ new /mob/living/simple_animal/hostile/hivebot/range(get_turf(src))
+ if("rapid")
+ new /mob/living/simple_animal/hostile/hivebot/rapid(get_turf(src))
+ sleep(100)
+ visible_message("[src] warps out!")
+ playsound(src.loc, 'sound/effects/empulse.ogg', 25, 1)
+ qdel(src)
+ return
+>>>>>>> 7998a3c... Merge pull request #31601 from AutomaticFrenzy/patch/thethe
diff --git a/code/game/objects/structures/kitchen_spike.dm b/code/game/objects/structures/kitchen_spike.dm
index a01cb936fc..85e03b2d45 100644
--- a/code/game/objects/structures/kitchen_spike.dm
+++ b/code/game/objects/structures/kitchen_spike.dm
@@ -48,6 +48,7 @@
desc = "A spike for collecting meat from animals"
density = TRUE
anchored = TRUE
+<<<<<<< HEAD
buckle_lying = 0
can_buckle = 1
max_integrity = 250
@@ -149,3 +150,106 @@
qdel(src)
#undef VIABLE_MOB_CHECK
+=======
+ buckle_lying = 0
+ can_buckle = 1
+ max_integrity = 250
+
+
+/obj/structure/kitchenspike/attack_paw(mob/user)
+ return src.attack_hand(usr)
+
+
+/obj/structure/kitchenspike/attackby(obj/item/I, mob/user, params)
+ if(istype(I, /obj/item/crowbar))
+ if(!has_buckled_mobs())
+ playsound(loc, I.usesound, 100, 1)
+ if(do_after(user, 20*I.toolspeed, target = src))
+ to_chat(user, "You pry the spikes out of the frame.")
+ deconstruct(TRUE)
+ else
+ to_chat(user, "You can't do that while something's on the spike!")
+ else
+ return ..()
+
+/obj/structure/kitchenspike/attack_hand(mob/user)
+ if(VIABLE_MOB_CHECK(user.pulling) && user.a_intent == INTENT_GRAB && !has_buckled_mobs())
+ var/mob/living/L = user.pulling
+ if(do_mob(user, src, 120))
+ if(has_buckled_mobs()) //to prevent spam/queing up attacks
+ return
+ if(L.buckled)
+ return
+ if(user.pulling != L)
+ return
+ playsound(src.loc, 'sound/effects/splat.ogg', 25, 1)
+ L.visible_message("[user] slams [L] onto the meat spike!", "[user] slams you onto the meat spike!", "You hear a squishy wet noise.")
+ L.loc = src.loc
+ L.emote("scream")
+ L.add_splatter_floor()
+ L.adjustBruteLoss(30)
+ L.setDir(2)
+ buckle_mob(L, force=1)
+ var/matrix/m180 = matrix(L.transform)
+ m180.Turn(180)
+ animate(L, transform = m180, time = 3)
+ L.pixel_y = L.get_standard_pixel_y_offset(180)
+ else if (has_buckled_mobs())
+ for(var/mob/living/L in buckled_mobs)
+ user_unbuckle_mob(L, user)
+ else
+ ..()
+
+
+
+/obj/structure/kitchenspike/user_buckle_mob(mob/living/M, mob/living/user) //Don't want them getting put on the rack other than by spiking
+ return
+
+/obj/structure/kitchenspike/user_unbuckle_mob(mob/living/buckled_mob, mob/living/carbon/human/user)
+ if(buckled_mob)
+ var/mob/living/M = buckled_mob
+ if(M != user)
+ M.visible_message(\
+ "[user] tries to pull [M] free of [src]!",\
+ "[user] is trying to pull you off [src], opening up fresh wounds!",\
+ "You hear a squishy wet noise.")
+ if(!do_after(user, 300, target = src))
+ if(M && M.buckled)
+ M.visible_message(\
+ "[user] fails to free [M]!",\
+ "[user] fails to pull you off of [src].")
+ return
+
+ else
+ M.visible_message(\
+ "[M] struggles to break free from [src]!",\
+ "You struggle to break free from [src], exacerbating your wounds! (Stay still for two minutes.)",\
+ "You hear a wet squishing noise..")
+ M.adjustBruteLoss(30)
+ if(!do_after(M, 1200, target = src))
+ if(M && M.buckled)
+ to_chat(M, "You fail to free yourself!")
+ return
+ if(!M.buckled)
+ return
+ var/matrix/m180 = matrix(M.transform)
+ m180.Turn(180)
+ animate(M, transform = m180, time = 3)
+ M.pixel_y = M.get_standard_pixel_y_offset(180)
+ M.adjustBruteLoss(30)
+ src.visible_message(text("[M] falls free of [src]!"))
+ unbuckle_mob(M,force=1)
+ M.emote("scream")
+ M.AdjustKnockdown(20)
+
+/obj/structure/kitchenspike/deconstruct(disassembled = TRUE)
+ if(disassembled)
+ var/obj/F = new /obj/structure/kitchenspike_frame(src.loc)
+ transfer_fingerprints_to(F)
+ else
+ new /obj/item/stack/sheet/metal(src.loc, 4)
+ new /obj/item/stack/rods(loc, 4)
+ qdel(src)
+
+#undef VIABLE_MOB_CHECK
+>>>>>>> 7998a3c... Merge pull request #31601 from AutomaticFrenzy/patch/thethe
diff --git a/code/game/objects/structures/reflector.dm b/code/game/objects/structures/reflector.dm
index 5b758377c4..5db90a60da 100644
--- a/code/game/objects/structures/reflector.dm
+++ b/code/game/objects/structures/reflector.dm
@@ -47,10 +47,10 @@
return
if(istype(W, /obj/item/wrench))
if(anchored)
- to_chat(user, "Unweld the [src] first!")
+ to_chat(user, "Unweld [src] first!")
if(do_after(user, 80*W.toolspeed, target = src))
playsound(src.loc, W.usesound, 50, 1)
- to_chat(user, "You dismantle the [src].")
+ to_chat(user, "You dismantle [src].")
new framebuildstacktype(loc, framebuildstackamount)
new buildstacktype(loc, buildstackamount)
qdel(src)
@@ -60,7 +60,7 @@
if(0)
if (WT.remove_fuel(0,user))
playsound(src.loc, 'sound/items/welder2.ogg', 50, 1)
- user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \
+ user.visible_message("[user.name] starts to weld [src] to the floor.", \
"You start to weld \the [src] to the floor...", \
"You hear welding.")
if (do_after(user,20*W.toolspeed, target = src))
@@ -71,7 +71,7 @@
if(1)
if (WT.remove_fuel(0,user))
playsound(src.loc, 'sound/items/welder2.ogg', 50, 1)
- user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \
+ user.visible_message("[user.name] starts to cut [src] free from the floor.", \
"You start to cut \the [src] free from the floor...", \
"You hear welding.")
if (do_after(user,20*W.toolspeed, target = src))
diff --git a/code/modules/awaymissions/mission_code/wildwest.dm b/code/modules/awaymissions/mission_code/wildwest.dm
index 11d461e2af..fe349e8494 100644
--- a/code/modules/awaymissions/mission_code/wildwest.dm
+++ b/code/modules/awaymissions/mission_code/wildwest.dm
@@ -126,7 +126,7 @@
var/mob/living/carbon/human/M = AM
if(M.stat != DEAD && M.ckey)
- visible_message("[M] triggered the [src]!")
+ visible_message("[M] triggered [src]!")
triggered = 1
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm
index fb1fbc5eb0..2494da0c23 100644
--- a/code/modules/clothing/chameleon.dm
+++ b/code/modules/clothing/chameleon.dm
@@ -383,7 +383,7 @@
randomise_action.UpdateButtonIcon()
/obj/item/clothing/mask/chameleon/drone/attack_self(mob/user)
- to_chat(user, "The [src] does not have a voice changer.")
+ to_chat(user, "[src] does not have a voice changer.")
/obj/item/clothing/shoes/chameleon
name = "black shoes"
diff --git a/code/modules/clothing/glasses/glasses.dm b/code/modules/clothing/glasses/glasses.dm
index 9c0b78e1d1..fb7abd7622 100644
--- a/code/modules/clothing/glasses/glasses.dm
+++ b/code/modules/clothing/glasses/glasses.dm
@@ -28,7 +28,7 @@
var/mob/living/carbon/human/H = src.loc
if(!(H.disabilities & BLIND))
if(H.glasses == src)
- to_chat(H, "The [src] overloads and blinds you!")
+ to_chat(H, "[src] overloads and blinds you!")
H.flash_act(visual = 1)
H.blind_eyes(3)
H.blur_eyes(5)
diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm
index 13221350ee..5fa3a5fa35 100644
--- a/code/modules/clothing/suits/armor.dm
+++ b/code/modules/clothing/suits/armor.dm
@@ -242,7 +242,7 @@
if(world.time < reactivearmor_cooldown)
owner.visible_message("The reactive incendiary armor on [owner] activates, but fails to send out flames as it is still recharging its flame jets!")
return
- owner.visible_message("The [src] blocks the [attack_text], sending out jets of flame!")
+ owner.visible_message("[src] blocks [attack_text], sending out jets of flame!")
for(var/mob/living/carbon/C in range(6, owner))
if(C != owner)
C.fire_stacks += 8
@@ -294,7 +294,7 @@
sparks.start()
owner.visible_message("The tesla capacitors on [owner]'s reactive tesla armor are still recharging! The armor merely emits some sparks.")
return
- owner.visible_message("The [src] blocks the [attack_text], sending out arcs of lightning!")
+ owner.visible_message("[src] blocks [attack_text], sending out arcs of lightning!")
tesla_zap(owner,tesla_range,tesla_power,tesla_boom, tesla_stun)
reactivearmor_cooldown = world.time + reactivearmor_cooldown_duration
return 1
diff --git a/code/modules/fields/fields.dm b/code/modules/fields/fields.dm
index 218c19ff22..867a12f2d4 100644
--- a/code/modules/fields/fields.dm
+++ b/code/modules/fields/fields.dm
@@ -300,7 +300,7 @@
/obj/item/device/multitool/field_debug/attack_self(mob/user)
operating = !operating
- to_chat(user, "You turn the [src] [operating? "on":"off"].")
+ to_chat(user, "You turn [src] [operating? "on":"off"].")
if(!istype(current) && operating)
setup_debug_field()
else if(!operating)
diff --git a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm
index d6037af55b..8b91e6838c 100644
--- a/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm
+++ b/code/modules/food_and_drinks/kitchen_machinery/food_cart.dm
@@ -70,10 +70,10 @@
if(!DG.reagents.total_volume) //glass is empty
qdel(DG)
glasses++
- to_chat(user, "The [src] accepts the drinking glass, sterilizing it.")
+ to_chat(user, "[src] accepts the drinking glass, sterilizing it.")
else if(istype(O, /obj/item/reagent_containers/food/snacks))
if(isFull())
- to_chat(user, "The [src] is at full capacity.")
+ to_chat(user, "[src] is at full capacity.")
else
var/obj/item/reagent_containers/food/snacks/S = O
if(!user.transferItemToLoc(S, src))
@@ -87,12 +87,12 @@
if(G.get_amount() >= 1)
G.use(1)
glasses += 4
- to_chat(user, "The [src] accepts a sheet of glass.")
+ to_chat(user, "[src] accepts a sheet of glass.")
else if(istype(O, /obj/item/storage/bag/tray))
var/obj/item/storage/bag/tray/T = O
for(var/obj/item/reagent_containers/food/snacks/S in T.contents)
if(isFull())
- to_chat(user, "The [src] is at full capacity.")
+ to_chat(user, "[src] is at full capacity.")
break
else
T.remove_from_storage(S, src)
@@ -138,11 +138,11 @@
if(href_list["mix"])
if(reagents.trans_id_to(mixer, href_list["mix"], portion) == 0)
- to_chat(usr, "The [mixer] is full!")
+ to_chat(usr, "[mixer] is full!")
if(href_list["transfer"])
if(mixer.reagents.trans_id_to(src, href_list["transfer"], portion) == 0)
- to_chat(usr, "The [src] is full!")
+ to_chat(usr, "[src] is full!")
updateDialog()
diff --git a/code/modules/holiday/easter.dm b/code/modules/holiday/easter.dm
index 71ff26a17e..3e8985c79a 100644
--- a/code/modules/holiday/easter.dm
+++ b/code/modules/holiday/easter.dm
@@ -135,7 +135,7 @@
/obj/item/reagent_containers/food/snacks/egg/attack_self(mob/user)
..()
if(containsPrize)
- to_chat(user, "You unwrap the [src] and find a prize inside!")
+ to_chat(user, "You unwrap [src] and find a prize inside!")
dispensePrize(get_turf(user))
containsPrize = FALSE
qdel(src)
diff --git a/code/modules/hydroponics/grown/citrus.dm b/code/modules/hydroponics/grown/citrus.dm
index 2abbab0f29..1b0cdc00d2 100644
--- a/code/modules/hydroponics/grown/citrus.dm
+++ b/code/modules/hydroponics/grown/citrus.dm
@@ -109,7 +109,7 @@
/obj/item/reagent_containers/food/snacks/grown/firelemon/attack_self(mob/living/user)
var/area/A = get_area(user)
- user.visible_message("[user] primes the [src]!", "You prime the [src]!")
+ user.visible_message("[user] primes [src]!", "You prime [src]!")
var/message = "[ADMIN_LOOKUPFLW(user)] primed a combustible lemon for detonation at [A] [ADMIN_COORDJMP(user)]"
GLOB.bombers += message
message_admins(message)
diff --git a/code/modules/mining/equipment/wormhole_jaunter.dm b/code/modules/mining/equipment/wormhole_jaunter.dm
index 28a946a56b..b9e7cf544f 100644
--- a/code/modules/mining/equipment/wormhole_jaunter.dm
+++ b/code/modules/mining/equipment/wormhole_jaunter.dm
@@ -71,7 +71,7 @@
triggered = TRUE
if(triggered)
- usr.visible_message("The [src] overloads and activates!")
+ usr.visible_message("[src] overloads and activates!")
SSblackbox.add_details("jaunter","EMP") // EMP accidental activation
activate(usr)
@@ -81,7 +81,7 @@
SSblackbox.add_details("jaunter","Chasm") // chasm automatic activation
activate(user, FALSE)
else
- to_chat(user, "The [src] is not attached to your belt, preventing it from saving you from the chasm. RIP.")
+ to_chat(user, "[src] is not attached to your belt, preventing it from saving you from the chasm. RIP.")
//jaunter tunnel
/obj/effect/portal/wormhole/jaunt_tunnel
diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm
index 5f995956be..6e899269f3 100644
--- a/code/modules/mob/living/silicon/robot/robot.dm
+++ b/code/modules/mob/living/silicon/robot/robot.dm
@@ -1149,7 +1149,7 @@
/mob/living/silicon/robot/buckle_mob(mob/living/M, force = FALSE, check_loc = TRUE)
if(!is_type_in_typecache(M, can_ride_typecache))
- M.visible_message("[M] really can't seem to mount the [src]...")
+ M.visible_message("[M] really can't seem to mount [src]...")
return
if(!riding_datum)
riding_datum = new /datum/riding/cyborg(src)
diff --git a/code/modules/mob/living/simple_animal/bot/mulebot.dm b/code/modules/mob/living/simple_animal/bot/mulebot.dm
index 6130d92aff..3360efc79c 100644
--- a/code/modules/mob/living/simple_animal/bot/mulebot.dm
+++ b/code/modules/mob/living/simple_animal/bot/mulebot.dm
@@ -115,7 +115,7 @@
emagged = TRUE
if(!open)
locked = !locked
- to_chat(user, "You [locked ? "lock" : "unlock"] the [src]'s controls!")
+ to_chat(user, "You [locked ? "lock" : "unlock"] [src]'s controls!")
flick("mulebot-emagged", src)
playsound(src, "sparks", 100, 0)
diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm
index 592679d35b..4053df61a6 100644
--- a/code/modules/mob/living/simple_animal/guardian/guardian.dm
+++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm
@@ -143,7 +143,7 @@ GLOBAL_LIST_EMPTY(parasites) //all currently existing/living guardians
qdel(src)
else
to_chat(src, "Your summoner has died!")
- visible_message("The [src] dies along with its user!")
+ visible_message("[src] dies along with its user!")
death(TRUE)
qdel(src)
snapback()
diff --git a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm
index c21b1474d8..1353293484 100644
--- a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm
+++ b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm
@@ -70,7 +70,7 @@
/obj/guardian_bomb/proc/detonate(mob/living/user)
if(isliving(user))
if(user != spawner && user != spawner.summoner && !spawner.hasmatchingsummoner(user))
- to_chat(user, "The [src] was boobytrapped!")
+ to_chat(user, "[src] was boobytrapped!")
to_chat(spawner, "Success! Your trap caught [user]")
var/turf/T = get_turf(src)
stored_obj.forceMove(T)
diff --git a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm
index d348660143..c3eff66d18 100644
--- a/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm
+++ b/code/modules/mob/living/simple_animal/hostile/wumborian_fugu.dm
@@ -115,7 +115,7 @@
if(proximity_flag && isanimal(target))
var/mob/living/simple_animal/A = target
if(A.buffed || (A.type in banned_mobs) || A.stat)
- to_chat(user, "Something's interfering with the [src]'s effects. It's no use.")
+ to_chat(user, "Something's interfering with [src]'s effects. It's no use.")
return
A.buffed++
A.maxHealth *= 1.5
diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm
index 99eb6f1a23..12f7d403c2 100644
--- a/code/modules/modular_computers/laptop_vendor.dm
+++ b/code/modules/modular_computers/laptop_vendor.dm
@@ -247,7 +247,7 @@
if(!user.temporarilyRemoveItemFromInventory(c))
return
credits += c.value
- visible_message("[usr] inserts [c.value] credits into the [src].")
+ visible_message("[usr] inserts [c.value] credits into [src].")
qdel(c)
return
diff --git a/code/modules/paperwork/contract.dm b/code/modules/paperwork/contract.dm
index 22c89dfda0..a02e98ed2b 100644
--- a/code/modules/paperwork/contract.dm
+++ b/code/modules/paperwork/contract.dm
@@ -179,7 +179,7 @@
else if(istype(P, /obj/item/stamp))
to_chat(user, "You stamp the paper with your rubber stamp, however the ink ignites as you release the stamp.")
else if(P.is_hot())
- user.visible_message("[user] brings [P] next to [src], but [src] does not catch fire!", "The [src] refuses to ignite!")
+ user.visible_message("[user] brings [P] next to [src], but [src] does not catch fire!", "[src] refuses to ignite!")
else
return ..()
diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm
index 8b4be79e99..f9d0faa16e 100644
--- a/code/modules/paperwork/filingcabinet.dm
+++ b/code/modules/paperwork/filingcabinet.dm
@@ -216,4 +216,4 @@ GLOBAL_LIST_EMPTY(employmentCabinets)
sleep(100) // prevents the devil from just instantly emptying the cabinet, ensuring an easy win.
cooldown = 0
else
- to_chat(user, "The [src] is jammed, give it a few seconds.")
+ to_chat(user, "[src] is jammed, give it a few seconds.")
diff --git a/code/modules/paperwork/paperplane.dm b/code/modules/paperwork/paperplane.dm
index 3e4d3ba3be..12fff6844f 100644
--- a/code/modules/paperwork/paperplane.dm
+++ b/code/modules/paperwork/paperplane.dm
@@ -33,7 +33,7 @@
/obj/item/paperplane/suicide_act(mob/living/user)
user.Stun(200)
- user.visible_message("[user] jams the [src] in [user.p_their()] nose. It looks like [user.p_theyre()] trying to commit suicide!")
+ user.visible_message("[user] jams [src] in [user.p_their()] nose. It looks like [user.p_theyre()] trying to commit suicide!")
user.adjust_blurriness(6)
user.adjust_eye_damage(rand(6,8))
sleep(10)
@@ -67,7 +67,7 @@
else if(P.is_hot())
if(user.disabilities & CLUMSY && prob(10))
user.visible_message("[user] accidentally ignites themselves!", \
- "You miss the [src] and accidentally light yourself on fire!")
+ "You miss [src] and accidentally light yourself on fire!")
user.dropItemToGround(P)
user.adjust_fire_stacks(1)
user.IgniteMob()
diff --git a/code/modules/power/floodlight.dm b/code/modules/power/floodlight.dm
index 8d49f02eef..6b33d6d1c5 100644
--- a/code/modules/power/floodlight.dm
+++ b/code/modules/power/floodlight.dm
@@ -10,21 +10,21 @@
/obj/structure/floodlight_frame/attackby(obj/item/O, mob/user, params)
if(istype(O, /obj/item/wrench) && (state == FLOODLIGHT_NEEDS_WRENCHING))
- to_chat(user, "You secure the [src].")
+ to_chat(user, "You secure [src].")
anchored = TRUE
state = FLOODLIGHT_NEEDS_WIRES
desc = "A bare metal frame looking vaguely like a floodlight. Requires wiring."
else if(istype(O, /obj/item/stack/cable_coil) && (state == FLOODLIGHT_NEEDS_WIRES))
var/obj/item/stack/S = O
if(S.use(5))
- to_chat(user, "You wire the [src].")
+ to_chat(user, "You wire [src].")
name = "wired [name]"
desc = "A bare metal frame looking vaguely like a floodlight. Requires securing with a screwdriver."
icon_state = "floodlight_c2"
state = FLOODLIGHT_NEEDS_SECURING
else if(istype(O, /obj/item/light/tube) && (state == FLOODLIGHT_NEEDS_LIGHTS))
if(user.transferItemToLoc(O))
- to_chat(user, "You put lights in the [src].")
+ to_chat(user, "You put lights in [src].")
new /obj/machinery/power/floodlight(src.loc)
qdel(src)
else if(istype(O, /obj/item/screwdriver) && (state == FLOODLIGHT_NEEDS_SECURING))
@@ -79,7 +79,7 @@
if(4)
setting_text = "high power"
if(user)
- to_chat(user, "You set the [src] to [setting_text].")
+ to_chat(user, "You set [src] to [setting_text].")
/obj/machinery/power/floodlight/attackby(obj/item/O, mob/user, params)
if(istype(O, /obj/item/wrench))
diff --git a/code/modules/power/singularity/collector.dm b/code/modules/power/singularity/collector.dm
index b73285570a..3ce0b4699a 100644
--- a/code/modules/power/singularity/collector.dm
+++ b/code/modules/power/singularity/collector.dm
@@ -76,13 +76,17 @@ GLOBAL_LIST_EMPTY(rad_collectors)
/obj/machinery/power/rad_collector/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/device/multitool))
+<<<<<<< HEAD
to_chat(user, "The [W.name] detects that [last_power]W were recently produced.")
+=======
+ to_chat(user, "[W] detects that [last_power]W is being processed.")
+>>>>>>> 7998a3c... Merge pull request #31601 from AutomaticFrenzy/patch/thethe
return TRUE
else if(istype(W, /obj/item/device/analyzer) && loaded_tank)
atmosanalyzer_scan(loaded_tank.air_contents, user)
else if(istype(W, /obj/item/tank/internals/plasma))
if(!anchored)
- to_chat(user, "The [src] needs to be secured to the floor first!")
+ to_chat(user, "[src] needs to be secured to the floor first!")
return TRUE
if(loaded_tank)
to_chat(user, "There's already a plasma tank loaded!")
diff --git a/code/modules/power/singularity/emitter.dm b/code/modules/power/singularity/emitter.dm
index 70875741fd..45b6801355 100644
--- a/code/modules/power/singularity/emitter.dm
+++ b/code/modules/power/singularity/emitter.dm
@@ -137,7 +137,7 @@
else
to_chat(user, "The controls are locked!")
else
- to_chat(user, "The [src] needs to be firmly secured to the floor first!")
+ to_chat(user, "[src] needs to be firmly secured to the floor first!")
return 1
/obj/machinery/power/emitter/attack_animal(mob/living/simple_animal/M)
@@ -349,7 +349,7 @@
locked = FALSE
emagged = TRUE
if(user)
- user.visible_message("[user.name] emags the [src].","You short out the lock.")
+ user.visible_message("[user.name] emags [src].","You short out the lock.")
/obj/machinery/power/emitter/prototype
diff --git a/code/modules/power/singularity/field_generator.dm b/code/modules/power/singularity/field_generator.dm
index 5a0f096564..74aa140721 100644
--- a/code/modules/power/singularity/field_generator.dm
+++ b/code/modules/power/singularity/field_generator.dm
@@ -63,18 +63,18 @@ field_generator power level display
if(state == FG_WELDED)
if(get_dist(src, user) <= 1)//Need to actually touch the thing to turn it on
if(active >= FG_CHARGING)
- to_chat(user, "You are unable to turn off the [name] once it is online!")
+ to_chat(user, "You are unable to turn off [src] once it is online!")
return 1
else
- user.visible_message("[user.name] turns on the [name].", \
- "You turn on the [name].", \
+ user.visible_message("[user] turns on [src].", \
+ "You turn on [src].", \
"You hear heavy droning.")
turn_on()
investigate_log("activated by [user.key].", INVESTIGATE_SINGULO)
add_fingerprint(user)
else
- to_chat(user, "The [src] needs to be firmly secured to the floor first!")
+ to_chat(user, "[src] needs to be firmly secured to the floor first!")
/obj/machinery/field/generator/can_be_unfasten_wrench(mob/user, silent)
if(state == FG_WELDED)
@@ -102,12 +102,12 @@ field_generator power level display
var/obj/item/weldingtool/WT = W
switch(state)
if(FG_UNSECURED)
- to_chat(user, "The [name] needs to be wrenched to the floor!")
+ to_chat(user, "[src] needs to be wrenched to the floor!")
if(FG_SECURED)
if (WT.remove_fuel(0,user))
playsound(loc, WT.usesound, 50, 1)
- user.visible_message("[user.name] starts to weld the [name] to the floor.", \
+ user.visible_message("[user] starts to weld [src] to the floor.", \
"You start to weld \the [src] to the floor...", \
"You hear welding.")
if(do_after(user,20*W.toolspeed, target = src) && state == FG_SECURED && WT.isOn())
@@ -117,7 +117,7 @@ field_generator power level display
if(FG_WELDED)
if (WT.remove_fuel(0,user))
playsound(loc, WT.usesound, 50, 1)
- user.visible_message("[user.name] starts to cut the [name] free from the floor.", \
+ user.visible_message("[user] starts to cut [src] free from the floor.", \
"You start to cut \the [src] free from the floor...", \
"You hear welding.")
if(do_after(user,20*W.toolspeed, target = src) && state == FG_WELDED && WT.isOn())
diff --git a/code/modules/projectiles/guns/misc/blastcannon.dm b/code/modules/projectiles/guns/misc/blastcannon.dm
index 8772ae05c0..dfbcc61f37 100644
--- a/code/modules/projectiles/guns/misc/blastcannon.dm
+++ b/code/modules/projectiles/guns/misc/blastcannon.dm
@@ -28,7 +28,7 @@
if(bomb)
bomb.forceMove(user.loc)
user.put_in_hands(bomb)
- user.visible_message("[user] detaches the [bomb] from the [src]")
+ user.visible_message("[user] detaches [bomb] from [src].")
bomb = null
update_icon()
return ..()
@@ -50,9 +50,9 @@
to_chat(user, "What good would an incomplete bomb do?")
return FALSE
if(!user.transferItemToLoc(O, src))
- to_chat(user, "The [O] seems to be stuck to your hand!")
+ to_chat(user, "[O] seems to be stuck to your hand!")
return FALSE
- user.visible_message("[user] attaches the [O] to the [src]!")
+ user.visible_message("[user] attaches [O] to [src]!")
bomb = O
update_icon()
return TRUE
diff --git a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
index 6acc9926c6..f5ff59d1ac 100644
--- a/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
+++ b/code/modules/reagents/chemistry/machinery/chem_dispenser.dm
@@ -217,7 +217,7 @@
beaker.reagents.remove_all()
cell.use(total/powerefficiency)
cell.emp_act()
- visible_message(" The [src] malfunctions, spraying chemicals everywhere!")
+ visible_message("[src] malfunctions, spraying chemicals everywhere!")
..()
/obj/machinery/chem_dispenser/constructable
diff --git a/code/modules/research/experimentor.dm b/code/modules/research/experimentor.dm
index 3a2b1f6b7f..29a1340d5b 100644
--- a/code/modules/research/experimentor.dm
+++ b/code/modules/research/experimentor.dm
@@ -113,7 +113,7 @@
if(!is_insertion_ready(user))
return
if(!checkCircumstances(O))
- to_chat(user, "The [O] is not yet valid for the [src] and must be completed!")
+ to_chat(user, "[O] is not yet valid for [src] and must be completed!")
return
if(!O.origin_tech)
to_chat(user, "This doesn't seem to have a tech origin!")
@@ -125,7 +125,7 @@
if(!user.transferItemToLoc(O, src))
return
loaded_item = O
- to_chat(user, "You add the [O.name] to the machine.")
+ to_chat(user, "You add [O] to the machine.")
flick("h_lathe_load", src)
@@ -687,13 +687,13 @@
qdel(src) //Comment this line to produce a light grenade (the bomb that keeps on exploding when used)!!
/obj/item/relic/proc/teleport(mob/user)
- to_chat(user, "The [src] begins to vibrate!")
+ to_chat(user, "[src] begins to vibrate!")
addtimer(CALLBACK(src, .proc/do_teleport, user), rand(10, 30))
/obj/item/relic/proc/do_teleport(mob/user)
var/turf/userturf = get_turf(user)
if(loc == user && userturf.z != ZLEVEL_CENTCOM) //Because Nuke Ops bringing this back on their shuttle, then looting the ERT area is 2fun4you!
- visible_message("The [src] twists and bends, relocating itself!")
+ visible_message("[src] twists and bends, relocating itself!")
throwSmoke(userturf)
do_teleport(user, userturf, 8, asoundin = 'sound/effects/phasein.ogg')
throwSmoke(get_turf(user))
diff --git a/code/modules/research/rdmachines.dm b/code/modules/research/rdmachines.dm
index 0ea18b2ff9..973a496254 100644
--- a/code/modules/research/rdmachines.dm
+++ b/code/modules/research/rdmachines.dm
@@ -74,7 +74,7 @@
//whether the machine can have an item inserted in its current state.
/obj/machinery/r_n_d/proc/is_insertion_ready(mob/user)
if(panel_open)
- to_chat(user, "You can't load the [src.name] while it's opened!")
+ to_chat(user, "You can't load [src] while it's opened!")
return
if (disabled)
return
@@ -84,19 +84,19 @@
console.SyncRDevices()
if(!linked_console)
- to_chat(user, "The [name] must be linked to an R&D console first!")
+ to_chat(user, "[src] must be linked to an R&D console first!")
return
if (busy)
- to_chat(user, "The [src.name] is busy right now.")
+ to_chat(user, "[src] is busy right now.")
return
if(stat & BROKEN)
- to_chat(user, "The [src.name] is broken.")
+ to_chat(user, "[src] is broken.")
return
if(stat & NOPOWER)
- to_chat(user, "The [src.name] has no power.")
+ to_chat(user, "[src] has no power.")
return
if(loaded_item)
- to_chat(user, "The [src] is already loaded.")
+ to_chat(user, "[src] is already loaded.")
return
return 1
diff --git a/code/modules/station_goals/shield.dm b/code/modules/station_goals/shield.dm
index 6639297e23..c7120168d0 100644
--- a/code/modules/station_goals/shield.dm
+++ b/code/modules/station_goals/shield.dm
@@ -83,7 +83,7 @@
/obj/machinery/satellite
- name = "Defunct Satellite"
+ name = "\improper Defunct Satellite"
desc = ""
icon = 'icons/obj/machines/satellite.dmi'
icon_state = "sat_inactive"
@@ -104,10 +104,10 @@
/obj/machinery/satellite/proc/toggle(mob/user)
if(!active && !isinspace())
if(user)
- to_chat(user, "You can only active the [src] in space.")
+ to_chat(user, "You can only activate [src] in space.")
return FALSE
if(user)
- to_chat(user, "You [active ? "deactivate": "activate"] the [src]")
+ to_chat(user, "You [active ? "deactivate": "activate"] [src].")
active = !active
if(active)
animate(src, pixel_y = 2, time = 10, loop = -1)