diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm
index 1171c646104..0d26ff0d940 100644
--- a/code/game/objects/items/candle.dm
+++ b/code/game/objects/items/candle.dm
@@ -59,8 +59,7 @@
if(!src.lit)
src.lit = 1
//src.damtype = "fire"
- for(var/mob/O in viewers(usr, null))
- O.show_message(flavor_text, 1)
+ usr.visible_message(flavor_text)
SetLuminosity(CANDLE_LUMINOSITY)
if(!infinite)
SSobj.processing |= src
diff --git a/code/game/objects/items/devices/PDA/PDA.dm b/code/game/objects/items/devices/PDA/PDA.dm
index e49f4b19ace..c30b883c460 100644
--- a/code/game/objects/items/devices/PDA/PDA.dm
+++ b/code/game/objects/items/devices/PDA/PDA.dm
@@ -778,7 +778,7 @@ var/global/list/obj/item/device/pda/PDAs = list()
/obj/item/device/pda/proc/show_to_ghosts(mob/living/user, datum/data_pda_msg/msg,multiple = 0)
for(var/mob/M in player_list)
if(isobserver(M) && M.client && (M.client.prefs.chat_toggles & CHAT_GHOSTPDA))
- M.show_message("(F) [msg.sender] PDA Message --> [multiple ? "Everyone" : msg.recipient]: [msg.message][msg.get_photo_ref()]")
+ M << "(F) [msg.sender] PDA Message --> [multiple ? "Everyone" : msg.recipient]: [msg.message][msg.get_photo_ref()]"
/obj/item/device/pda/proc/can_send(obj/item/device/pda/P)
if(!P || qdeleted(P) || P.toff)
@@ -944,9 +944,9 @@ var/global/list/obj/item/device/pda/PDAs = list()
switch(scanmode)
if(1)
- user.visible_message(text("[] has analyzed []'s vitals!", user, C))
+ C.visible_message("[user] has analyzed [C]'s vitals!")
healthscan(user, C, 1)
- src.add_fingerprint(user)
+ add_fingerprint(user)
if(2)
// Unused
diff --git a/code/game/objects/items/devices/radio/radio.dm b/code/game/objects/items/devices/radio/radio.dm
index 954302bf055..639e59c9008 100644
--- a/code/game/objects/items/devices/radio/radio.dm
+++ b/code/game/objects/items/devices/radio/radio.dm
@@ -543,10 +543,10 @@
return
b_stat = !( b_stat )
if(!istype(src, /obj/item/device/radio/beacon))
- if (b_stat)
- user.show_message("The radio can now be attached and modified!")
+ if(b_stat)
+ user << "The radio can now be attached and modified!"
else
- user.show_message("The radio can no longer be modified or attached!")
+ user << "The radio can no longer be modified or attached!"
updateDialog()
//Foreach goto(83)
add_fingerprint(user)
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 32fdb40f65b..38404d1658e 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -114,7 +114,8 @@ MASS SPECTROMETER
// Used by the PDA medical scanner too
/proc/healthscan(mob/living/user, mob/living/M, mode = 1)
-
+ if(user.stat || user.eye_blind)
+ return
//Damage specifics
var/oxy_loss = M.getOxyLoss()
var/tox_loss = M.getToxLoss()
@@ -199,8 +200,8 @@ MASS SPECTROMETER
if(CI.status == ORGAN_ROBOTIC)
implant_detect += "[H.name] is modified with a [CI.name].
"
if(implant_detect)
- user.show_message("Detected cybernetic modifications:")
- user.show_message("[implant_detect]")
+ user << "Detected cybernetic modifications:"
+ user << "[implant_detect]"
/proc/chemscan(mob/living/user, mob/living/M)
if(ishuman(M))
@@ -250,11 +251,13 @@ MASS SPECTROMETER
/obj/item/device/analyzer/attack_self(mob/user)
- if (user.stat)
+ add_fingerprint(user)
+
+ if (user.stat || user.eye_blind)
return
var/turf/location = user.loc
- if (!( istype(location, /turf) ))
+ if(!istype(location))
return
var/datum/gas_mixture/environment = location.return_air()
@@ -262,11 +265,11 @@ MASS SPECTROMETER
var/pressure = environment.return_pressure()
var/total_moles = environment.total_moles()
- user.show_message("Results:", 1)
+ user << "Results:"
if(abs(pressure - ONE_ATMOSPHERE) < 10)
- user.show_message("Pressure: [round(pressure,0.1)] kPa", 1)
+ user << "Pressure: [round(pressure,0.1)] kPa"
else
- user.show_message("Pressure: [round(pressure,0.1)] kPa", 1)
+ user << "Pressure: [round(pressure,0.1)] kPa"
if(total_moles)
var/o2_concentration = environment.oxygen/total_moles
var/n2_concentration = environment.nitrogen/total_moles
@@ -275,30 +278,28 @@ MASS SPECTROMETER
var/unknown_concentration = 1-(o2_concentration+n2_concentration+co2_concentration+plasma_concentration)
if(abs(n2_concentration - N2STANDARD) < 20)
- user.show_message("Nitrogen: [round(n2_concentration*100)] %", 1)
+ user << "Nitrogen: [round(n2_concentration*100)] %"
else
- user.show_message("Nitrogen: [round(n2_concentration*100)] %", 1)
+ user << "Nitrogen: [round(n2_concentration*100)] %"
if(abs(o2_concentration - O2STANDARD) < 2)
- user.show_message("Oxygen: [round(o2_concentration*100)] %", 1)
+ user << "Oxygen: [round(o2_concentration*100)] %"
else
- user.show_message("Oxygen: [round(o2_concentration*100)] %", 1)
+ user << "Oxygen: [round(o2_concentration*100)] %"
if(co2_concentration > 0.01)
- user.show_message("CO2: [round(co2_concentration*100)] %", 1)
+ user << "CO2: [round(co2_concentration*100)] %"
else
- user.show_message("CO2: [round(co2_concentration*100)] %", 1)
+ user << "CO2: [round(co2_concentration*100)] %"
if(plasma_concentration > 0.01)
- user.show_message("Plasma: [round(plasma_concentration*100)] %", 1)
+ user << "Plasma: [round(plasma_concentration*100)] %"
if(unknown_concentration > 0.01)
- user.show_message("Unknown: [round(unknown_concentration*100)] %", 1)
+ user << "Unknown: [round(unknown_concentration*100)] %"
- user.show_message("Temperature: [round(environment.temperature-T0C)] °C", 1)
+ user << "Temperature: [round(environment.temperature-T0C)] °C"
- src.add_fingerprint(user)
- return
/obj/item/device/mass_spectrometer
desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample."
@@ -327,7 +328,7 @@ MASS SPECTROMETER
icon_state = initial(icon_state)
/obj/item/device/mass_spectrometer/attack_self(mob/user)
- if (user.stat)
+ if (user.stat || user.eye_blind)
return
if (crit_fail)
user << "This device has critically failed and is no longer functional!"
@@ -340,7 +341,7 @@ MASS SPECTROMETER
for(var/datum/reagent/R in reagents.reagent_list)
if(R.id != "blood")
reagents.clear_reagents()
- user.show_message("The sample was contaminated! Please insert another sample.", 1)
+ user << "The sample was contaminated! Please insert another sample."
return
else
blood_traces = params2list(R.data["trace_chem"])
@@ -367,7 +368,7 @@ MASS SPECTROMETER
dat += ""
user << dat
reagents.clear_reagents()
- return
+
/obj/item/device/mass_spectrometer/adv
name = "advanced mass-spectrometer"
@@ -389,32 +390,34 @@ MASS SPECTROMETER
materials = list(MAT_METAL=30, MAT_GLASS=20)
/obj/item/device/slime_scanner/attack(mob/living/M, mob/living/user)
+ if(user.stat || user.eye_blind)
+ return
if (!isslime(M))
- user.show_message("This device can only scan slimes!", 1)
+ user << "This device can only scan slimes!"
return
var/mob/living/simple_animal/slime/T = M
- user.show_message("Slime scan results:", 1)
- user.show_message(text("[T.colour] [] slime", T.is_adult ? "adult" : "baby"), 1)
- user.show_message(text("Nutrition: [T.nutrition]/[]", T.get_max_nutrition()), 1)
+ user << "Slime scan results:"
+ user << "[T.colour] [T.is_adult ? "adult" : "baby"] slime"
+ user << "Nutrition: [T.nutrition]/[T.get_max_nutrition()]"
if (T.nutrition < T.get_starve_nutrition())
- user.show_message("Warning: slime is starving!", 1)
+ user << "Warning: slime is starving!"
else if (T.nutrition < T.get_hunger_nutrition())
- user.show_message("Warning: slime is hungry", 1)
- user.show_message("Electric change strength: [T.powerlevel]", 1)
- user.show_message("Health: [T.health]", 1)
+ user << "Warning: slime is hungry"
+ user << "Electric change strength: [T.powerlevel]"
+ user << "Health: [T.health]"
if (T.slime_mutation[4] == T.colour)
- user.show_message("This slime does not evolve any further.", 1)
+ user << "This slime does not evolve any further."
else
if (T.slime_mutation[3] == T.slime_mutation[4])
if (T.slime_mutation[2] == T.slime_mutation[1])
- user.show_message("Possible mutation: [T.slime_mutation[3]]", 1)
- user.show_message("Genetic destability: [T.mutation_chance/2] % chance of mutation on splitting", 1)
+ user << "Possible mutation: [T.slime_mutation[3]]"
+ user << "Genetic destability: [T.mutation_chance/2] % chance of mutation on splitting"
else
- user.show_message("Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]] (x2)", 1)
- user.show_message("Genetic destability: [T.mutation_chance] % chance of mutation on splitting", 1)
+ user << "Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]] (x2)"
+ user << "Genetic destability: [T.mutation_chance] % chance of mutation on splitting"
else
- user.show_message("Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]], [T.slime_mutation[4]]", 1)
- user.show_message("Genetic destability: [T.mutation_chance] % chance of mutation on splitting", 1)
+ user << "Possible mutations: [T.slime_mutation[1]], [T.slime_mutation[2]], [T.slime_mutation[3]], [T.slime_mutation[4]]"
+ user << "Genetic destability: [T.mutation_chance] % chance of mutation on splitting"
if (T.cores > 1)
- user.show_message("Anomalious slime core amount detected", 1)
- user.show_message("Growth progress: [T.amount_grown]/[SLIME_EVOLUTION_THRESHOLD]", 1)
+ user << "Anomalious slime core amount detected"
+ user << "Growth progress: [T.amount_grown]/[SLIME_EVOLUTION_THRESHOLD]"
diff --git a/code/game/objects/items/weapons/storage/secure.dm b/code/game/objects/items/weapons/storage/secure.dm
index a91ba35482c..a80a611d619 100644
--- a/code/game/objects/items/weapons/storage/secure.dm
+++ b/code/game/objects/items/weapons/storage/secure.dm
@@ -36,21 +36,21 @@
if (istype(W, /obj/item/weapon/screwdriver))
if (do_after(user, 20/W.toolspeed, target = src))
src.open =! src.open
- user.show_message(text("You [] the service panel.", (src.open ? "open" : "close")))
+ user.show_message("You [open ? "open" : "close"] the service panel.", 1)
return
if ((istype(W, /obj/item/device/multitool)) && (src.open == 1)&& (!src.l_hacking))
- user.show_message(text("Now attempting to reset internal memory, please hold."), 1)
+ user.show_message("Now attempting to reset internal memory, please hold.", 1)
src.l_hacking = 1
if (do_after(usr, 100/W.toolspeed, target = src))
if (prob(40))
src.l_setshort = 1
src.l_set = 0
- user.show_message(text("Internal memory reset. Please give it a few seconds to reinitialize."), 1)
+ user.show_message("Internal memory reset. Please give it a few seconds to reinitialize.", 1)
sleep(80)
src.l_setshort = 0
src.l_hacking = 0
else
- user.show_message(text("Unable to reset internal memory."), 1)
+ user.show_message("Unable to reset internal memory.", 1)
src.l_hacking = 0
else src.l_hacking = 0
return
diff --git a/code/game/objects/items/weapons/teleportation.dm b/code/game/objects/items/weapons/teleportation.dm
index 029c0fd0238..2406d7b9d7b 100644
--- a/code/game/objects/items/weapons/teleportation.dm
+++ b/code/game/objects/items/weapons/teleportation.dm
@@ -156,7 +156,7 @@ Frequency:
if(turfs.len)
L["None (Dangerous)"] = pick(turfs)
var/t1 = input(user, "Please select a teleporter to lock in on.", "Hand Teleporter") in L
- if ((user.get_active_hand() != src || user.stat || user.restrained()))
+ if (user.get_active_hand() != src || user.incapacitated())
return
if(active_portals >= 3)
user.show_message("\The [src] is recharging!")
@@ -166,7 +166,6 @@ Frequency:
var/obj/effect/portal/P = new /obj/effect/portal(get_turf(src), T, src)
try_move_adjacent(P)
active_portals++
- src.add_fingerprint(user)
- return
+ add_fingerprint(user)
diff --git a/code/modules/admin/verbs/debug.dm b/code/modules/admin/verbs/debug.dm
index 855b63efa69..de914537a72 100644
--- a/code/modules/admin/verbs/debug.dm
+++ b/code/modules/admin/verbs/debug.dm
@@ -201,7 +201,7 @@ But you can call procs that are of type /mob/living/carbon/human/proc/ for that
t+= "Plasma : [env.toxins]\n"
t+= "CO2: [env.carbon_dioxide]\n"
- usr.show_message(t, 1)
+ usr << t
feedback_add_details("admin_verb","ASL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
/client/proc/cmd_admin_robotize(mob/M in mob_list)
diff --git a/code/modules/assembly/health.dm b/code/modules/assembly/health.dm
index febe545a30e..34c82ac8c6b 100644
--- a/code/modules/assembly/health.dm
+++ b/code/modules/assembly/health.dm
@@ -74,7 +74,7 @@
if(!secured)
user.show_message("The [name] is unsecured!")
return 0
- var/dat = text("Health Sensor [scanning?"On":"Off"]")
+ var/dat = "Health Sensor [scanning?"On":"Off"]"
if(scanning && health_scan)
dat += "
Health: [health_scan]"
user << browse(dat, "window=hscan")
diff --git a/code/modules/food&drinks/drinks/drinks/bottle.dm b/code/modules/food&drinks/drinks/drinks/bottle.dm
index 9b9bccc986e..c41e3682c35 100644
--- a/code/modules/food&drinks/drinks/drinks/bottle.dm
+++ b/code/modules/food&drinks/drinks/drinks/bottle.dm
@@ -125,8 +125,7 @@
/obj/item/weapon/reagent_containers/food/drinks/bottle/proc/SplashReagents(var/mob/M)
if(src.reagents.total_volume)
- for(var/mob/O in viewers(M, null))
- O.show_message(text("The contents of \the [src] splashes all over [M]!"), 1)
+ M.visible_message("The contents of \the [src] splashes all over [M]!")
reagents.reaction(M, TOUCH)
reagents.clear_reagents()
return
diff --git a/code/modules/games/cards.dm b/code/modules/games/cards.dm
index 0efe72640e1..baec9c92ea7 100644
--- a/code/modules/games/cards.dm
+++ b/code/modules/games/cards.dm
@@ -87,7 +87,7 @@
else return ..()
/obj/item/weapon/deck/proc/dealTo(mob/living/target, mob/living/source)
- if (!src.cards.len)
+ if (!cards.len)
source.show_message("There are no cards in the deck.")
return
@@ -185,10 +185,10 @@
. = ..()
if((!concealed || src.loc == usr) && cards.len)
- usr.show_message("It contains: ")
+ usr.show_message("It contains: ", 1)
for (var/datum/playingcard/card in cards)
- usr.show_message("The [card.name].")
+ usr.show_message("The [card.name].", 1)
/obj/item/weapon/hand/proc/update_conceal()
if (src.concealed) src.hi.updateContent("headbar", "You are currently concealing your hand. Reveal your hand.")
diff --git a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
index 05bc607668b..4f01f0ca45d 100644
--- a/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
+++ b/code/modules/mob/living/carbon/alien/humanoid/alien_powers.dm
@@ -90,8 +90,7 @@ Doesn't work on other aliens/AI.*/
if(locate(/obj/structure/alien/weeds/node) in get_turf(user))
src << "There's already a weed node here."
return 0
- for(var/mob/O in viewers(user, null))
- O.show_message(text("[user] has planted some alien weeds!"), 1)
+ user.visible_message("[user] has planted some alien weeds!")
new/obj/structure/alien/weeds/node(user.loc)
return 1
@@ -241,7 +240,7 @@ Doesn't work on other aliens/AI.*/
user << "There is already a resin structure there."
return 0
var/choice = input("Choose what you wish to shape.","Resin building") as null|anything in structures
- if(!choice)
+ if(!choice)
return 0
if (!cost_check(check_turf,user))
return 0
diff --git a/code/modules/mob/living/silicon/pai/software.dm b/code/modules/mob/living/silicon/pai/software.dm
index 4aea4929e76..80babb296c8 100644
--- a/code/modules/mob/living/silicon/pai/software.dm
+++ b/code/modules/mob/living/silicon/pai/software.dm
@@ -260,8 +260,7 @@
if(href_list["cable"])
var/turf/T = get_turf(src.loc)
src.cable = new /obj/item/weapon/pai_cable(T)
- for (var/mob/M in viewers(T))
- M.show_message("A port on [src] opens to reveal [src.cable], which promptly falls to the floor.", 3, "You hear the soft click of something light and hard falling to the ground.", 2)
+ T.visible_message("A port on [src] opens to reveal [src.cable], which promptly falls to the floor.", "You hear the soft click of something light and hard falling to the ground.")
//src.updateUsrDialog() We only need to account for the single mob this is intended for, and he will *always* be able to call this window
src.paiInterface() // So we'll just call the update directly rather than doing some default checks
return
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 82362afc3c1..96b23eb6a57 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -42,108 +42,100 @@ var/next_mob_id = 0
for(var/datum/gas/trace_gas in environment.trace_gases)
t+= "[trace_gas.type]: [trace_gas.moles] \n"
- usr.show_message(t, 1)
+ usr << t
-/mob/proc/show_message(msg, type, alt, alt_type)//Message, type of message (1 or 2), alternative message, alt message type (1 or 2)
+/mob/proc/show_message(msg, type, alt_msg, alt_type)//Message, type of message (1 or 2), alternative message, alt message type (1 or 2)
- if(!client) return
+ if(!client)
+ return
msg = copytext(msg, 1, MAX_MESSAGE_LEN)
- if (type)
- if(type & 1 && (disabilities & BLIND || paralysis) )//Vision related
- if (!( alt ))
+ if(type)
+ if(type & 1 && eye_blind )//Vision related
+ if(!alt_msg)
return
else
- msg = alt
+ msg = alt_msg
type = alt_type
- if (type & 2 && ear_deaf)//Hearing related
- if (!( alt ))
+
+ if(type & 2 && ear_deaf)//Hearing related
+ if(!alt_msg)
return
else
- msg = alt
+ msg = alt_msg
type = alt_type
- if ((type & 1 && disabilities & BLIND))
+ if(type & 1 && eye_blind)
return
- // Added voice muffling for Issue 41.
- if(stat == UNCONSCIOUS || sleeping > 0)
- src << "... You can almost hear someone talking ..."
+ // voice muffling
+ if(stat == UNCONSCIOUS)
+ if(type & 2) //audio
+ src << "... You can almost hear something ..."
else
src << msg
- return
-// Show a message to all mobs who sees the src mob and the src mob itself
+// Show a message the src mob and to all player mobs who sees the src mob
// This would be for visible actions by the src mob
// message is the message output to anyone who can see e.g. "[src] does something!"
// self_message (optional) is what the src mob sees e.g. "You do something!"
// blind_message (optional) is what blind people will hear e.g. "You hear something!"
/mob/visible_message(message, self_message, blind_message)
- var/list/mob_viewers = list()
- var/list/possible_viewers = list()
- mob_viewers |= src
- mob_viewers |= viewers(src)
- var/heard = get_hear(7, src)
- for(var/atom/movable/A in heard)
- possible_viewers |= recursive_hear_check(A)
- for(var/mob/B in possible_viewers)
- if(B in mob_viewers)
+ var/turf/T = get_turf(src)
+ if(!T)
+ return
+ for(var/P in player_list)
+ var/mob/M = P
+ var/turf/U = get_turf(P)
+ if(!U)
continue
- if(isturf(B.loc))
- continue
- var/turf/T = get_turf(B)
- if(src in view(T))
- mob_viewers |= B
+ if(get_dist(T,U)<7 && inLineOfSight(T.x,T.y, U.x,U.y,T.z))
+ var/msg = message
+ if(M == src) //the src always see the main message or self message
+ if(self_message)
+ msg = self_message
+ else
+ if(M.see_invisibleThe slime extract begins to vibrate violently !"), 1)
+ var/turf/T = get_turf(holder.my_atom)
+ T.visible_message("The slime extract begins to vibrate violently !")
spawn(50)
-
chemical_mob_spawn(holder, 5, "Gold Slime")
/datum/chemical_reaction/slimecritlesser
@@ -117,10 +116,9 @@
/datum/chemical_reaction/slimecritlesser/on_reaction(datum/reagents/holder)
feedback_add_details("slime_cores_used","[type]")
- for(var/mob/O in viewers(get_turf(holder.my_atom), null))
- O.show_message(text("The slime extract begins to vibrate violently !"), 1)
+ var/turf/T = get_turf(holder.my_atom)
+ T.visible_message("The slime extract begins to vibrate violently !")
spawn(50)
-
chemical_mob_spawn(holder, 3, "Lesser Gold Slime", "neutral")
/datum/chemical_reaction/slimecritfriendly
@@ -134,10 +132,9 @@
/datum/chemical_reaction/slimecritfriendly/on_reaction(datum/reagents/holder)
feedback_add_details("slime_cores_used","[type]")
- for(var/mob/O in viewers(get_turf(holder.my_atom), null))
- O.show_message(text("The slime extract begins to vibrate adorably !"), 1)
+ var/turf/T = get_turf(holder.my_atom)
+ T.visible_message("The slime extract begins to vibrate adorably !")
spawn(50)
-
chemical_mob_spawn(holder, 1, "Friendly Gold Slime", "neutral")
//Silver
@@ -262,8 +259,8 @@
/datum/chemical_reaction/slimefreeze/on_reaction(datum/reagents/holder)
feedback_add_details("slime_cores_used","[type]")
- for(var/mob/O in viewers(get_turf(holder.my_atom), null))
- O.show_message(text("The slime extract begins to vibrate violently !"), 1)
+ var/turf/T = get_turf(holder.my_atom)
+ T.visible_message("The slime extract begins to vibrate adorably !")
spawn(50)
if(holder && holder.my_atom)
playsound(get_turf(holder.my_atom), 'sound/effects/phasein.ogg', 100, 1)
@@ -310,8 +307,8 @@
/datum/chemical_reaction/slimefire/on_reaction(datum/reagents/holder)
feedback_add_details("slime_cores_used","[type]")
- for(var/mob/O in viewers(get_turf(holder.my_atom), null))
- O.show_message(text("The slime extract begins to vibrate violently !"), 1)
+ var/turf/TU = get_turf(holder.my_atom)
+ TU.visible_message("The slime extract begins to vibrate adorably !")
spawn(50)
if(holder && holder.my_atom)
var/turf/simulated/T = get_turf(holder.my_atom)
@@ -359,8 +356,8 @@
/datum/chemical_reaction/slimeglow/on_reaction(datum/reagents/holder)
feedback_add_details("slime_cores_used","[type]")
- for(var/mob/O in viewers(get_turf(holder.my_atom), null))
- O.show_message(text("The slime begins to emit a soft light. Squeezing it will cause it to grow brightly."), 1)
+ var/turf/T = get_turf(holder.my_atom)
+ T.visible_message("The slime begins to emit a soft light. Squeezing it will cause it to grow brightly.")
var/obj/item/device/flashlight/slime/F = new /obj/item/device/flashlight/slime
F.loc = get_turf(holder.my_atom)
@@ -438,8 +435,7 @@
feedback_add_details("slime_cores_used","[type]")
for(var/mob/living/simple_animal/slime/slime in viewers(get_turf(holder.my_atom), null))
slime.rabid = 1
- for(var/mob/O in viewers(get_turf(holder.my_atom), null))
- O.show_message(text("The [slime] is driven into a frenzy!"), 1)
+ slime.visible_message("The [slime] is driven into a frenzy!")
/datum/chemical_reaction/slimespeed
@@ -498,8 +494,8 @@
/datum/chemical_reaction/slimeexplosion/on_reaction(datum/reagents/holder)
feedback_add_details("slime_cores_used","[type]")
- for(var/mob/O in viewers(get_turf(holder.my_atom), null))
- O.show_message(text("The slime extract begins to vibrate violently !"), 1)
+ var/turf/T = get_turf(holder.my_atom)
+ T.visible_message("The slime extract begins to vibrate violently !")
spawn(50)
if(holder && holder.my_atom)
explosion(get_turf(holder.my_atom), 1 ,3, 6)