diff --git a/code/__DEFINES/spans.dm b/code/__DEFINES/spans.dm
index c54af39d56..b6b633d91a 100644
--- a/code/__DEFINES/spans.dm
+++ b/code/__DEFINES/spans.dm
@@ -114,6 +114,3 @@
#define span_warning(str) ("" + str + "")
#define span_yell(str) ("" + str + "")
#define span_yellowteamradio(str) ("" + str + "")
-
-//SANDSTORM DEFINES
-#define span_love(str) ("" + str + "")
diff --git a/code/__SANDCODE/DEFINES/spans.dm b/code/__SANDCODE/DEFINES/spans.dm
new file mode 100644
index 0000000000..f8002c5e5a
--- /dev/null
+++ b/code/__SANDCODE/DEFINES/spans.dm
@@ -0,0 +1,3 @@
+#define span_lewd(str) ("" + str + "")
+#define span_love(str) ("" + str + "")
+#define span_userlove(str) ("" + str + "")
diff --git a/code/modules/arousal/arousal.dm b/code/modules/arousal/arousal.dm
index 6ad0d941c3..95ddc3c955 100644
--- a/code/modules/arousal/arousal.dm
+++ b/code/modules/arousal/arousal.dm
@@ -91,10 +91,10 @@
to_chat(src,"Your [G.name] cannot cum.")
return
if(mb_time) //as long as it's not instant, give a warning
- to_chat(src,"You feel yourself about to orgasm.")
+ to_chat(src, span_userlove("You feel yourself about to orgasm."))
if(!do_after(src, mb_time, target = src) || !G.climaxable(src, TRUE))
return
- to_chat(src,"You climax[isturf(loc) ? " onto [loc]" : ""] with your [G.name].")
+ to_chat(src, span_userlove("You climax[isturf(loc) ? " onto [loc]" : ""] with your [G.name]."))
do_climax(fluid_source, loc, G)
/mob/living/carbon/human/proc/mob_climax_partner(obj/item/organ/genital/G, mob/living/L, spillage = TRUE, mb_time = 30, obj/item/organ/genital/Lgen = null) //Used for climaxing with any living thing
@@ -102,16 +102,16 @@
if(!fluid_source)
return
if(mb_time) //Skip warning if this is an instant climax.
- to_chat(src,"You're about to climax [(Lgen) ? "in [L]'s [Lgen.name]" : "with [L]"]!")
- to_chat(L,"[src] is about to climax [(Lgen) ? "in your [Lgen.name]" : "with you"]!")
+ to_chat(src, span_userlove("You're about to climax [(Lgen) ? "in [L]'s [Lgen.name]" : "with [L]"]!"))
+ to_chat(L, span_userlove("[src] is about to climax [(Lgen) ? "in your [Lgen.name]" : "with you"]!"))
if(!do_after(src, mb_time, target = src) || !in_range(src, L) || !G.climaxable(src, TRUE))
return
if(spillage)
- to_chat(src,"You orgasm with [L], spilling out of [(Lgen) ? "[L.p_their()] [Lgen.name]" : "[L.p_them()]"], using your [G.name].")
- to_chat(L,"[src] climaxes [(Lgen) ? "in your [Lgen.name]" : "with you"], overflowing and spilling, using [p_their()] [G.name]!")
+ to_chat(src, span_userlove("You orgasm with [L], spilling out of [(Lgen) ? "[L.p_their()] [Lgen.name]" : "[L.p_them()]"], using your [G.name]."))
+ to_chat(L, span_userlove("[src] climaxes [(Lgen) ? "in your [Lgen.name]" : "with you"], overflowing and spilling, using [p_their()] [G.name]!"))
else //knots and other non-spilling orgasms
- to_chat(src,"You climax [(Lgen) ? "in [L]'s [Lgen.name]" : "with [L]"], your [G.name] spilling nothing.")
- to_chat(L,"[src] climaxes [(Lgen) ? "in your [Lgen.name]" : "with you"], [p_their()] [G.name] spilling nothing!")
+ to_chat(src, span_userlove("You climax [(Lgen) ? "in [L]'s [Lgen.name]" : "with [L]"], your [G.name] spilling nothing."))
+ to_chat(L, span_userlove("[src] climaxes [(Lgen) ? "in your [Lgen.name]" : "with you"], [p_their()] [G.name] spilling nothing!"))
//SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "orgasm", /datum/mood_event/orgasm) //Sandstorm edit
do_climax(fluid_source, spillage ? loc : L, G, spillage)
L.receive_climax(src, Lgen, G, spillage)
@@ -121,10 +121,10 @@
if(!fluid_source)
return
if(mb_time)
- to_chat(src,"You start to [G.masturbation_verb] your [G.name] over [container].")
+ to_chat(src, span_userlove("You start to [G.masturbation_verb] your [G.name] over [container]."))
if(!do_after(src, mb_time, target = src) || !in_range(src, container) || !G.climaxable(src, TRUE))
return
- to_chat(src,"You used your [G.name] to fill [container].")
+ to_chat(src, span_userlove("You used your [G.name] to fill [container]."))
message_admins("[ADMIN_LOOKUPFLW(src)] used their [G.name] to fill [container].")
log_consent("[key_name(src)] used their [G.name] to fill [container].")
do_climax(fluid_source, container, G, FALSE)
diff --git a/code/modules/arousal/genitals.dm b/code/modules/arousal/genitals.dm
index accf1a29ea..eee6b131e1 100644
--- a/code/modules/arousal/genitals.dm
+++ b/code/modules/arousal/genitals.dm
@@ -162,9 +162,9 @@
var/original_state = picked_organ.aroused_state
picked_organ.set_aroused_state(!picked_organ.aroused_state)
if(original_state != picked_organ.aroused_state)
- to_chat(src,"[picked_organ.aroused_state ? picked_organ.arousal_verb : picked_organ.unarousal_verb].")
+ to_chat(src, span_userlove("[picked_organ.aroused_state ? picked_organ.arousal_verb : picked_organ.unarousal_verb]."))
else
- to_chat(src,"You can't make that genital [picked_organ.aroused_state ? "unaroused" : "aroused"]!")
+ to_chat(src, span_userlove("You can't make that genital [picked_organ.aroused_state ? "unaroused" : "aroused"]!"))
picked_organ.update_appearance()
if(ishuman(src))
var/mob/living/carbon/human/human = src
diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
index 5fdf4574f4..348556c337 100644
--- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm
@@ -1088,7 +1088,7 @@
var/list/adjusted = H.adjust_arousal(5,aphro = TRUE)
for(var/g in adjusted)
var/obj/item/organ/genital/G = g
- to_chat(M, "You feel like playing with your [G.name]!")
+ to_chat(M, span_userlove("You feel like playing with your [G.name]!"))
..()
/datum/reagent/consumable/monkey_energy
diff --git a/code/modules/reagents/chemistry/reagents/drug_reagents.dm b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
index 4848347df2..c709fd09a7 100644
--- a/code/modules/reagents/chemistry/reagents/drug_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/drug_reagents.dm
@@ -570,13 +570,13 @@
M.emote(pick("moan","blush"))
if(prob(min(current_cycle/4,10)))
var/aroused_message = pick("You feel frisky.", "You're having trouble suppressing your urges.", "You feel in the mood.")
- to_chat(M, "[aroused_message]")
+ to_chat(M, span_userlove("[aroused_message]"))
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/list/genits = H.adjust_arousal(current_cycle, "crocin", aphro = TRUE) // redundant but should still be here
for(var/g in genits)
var/obj/item/organ/genital/G = g
- to_chat(M, "[G.arousal_verb]!")
+ to_chat(M, span_userlove("[G.arousal_verb]!"))
..()
/datum/reagent/drug/aphrodisiacplus
@@ -603,14 +603,14 @@
aroused_message = pick("You need to fuck someone!", "You're bursting with sexual tension!", "You can't get sex off your mind!")
else
aroused_message = pick("You feel a bit hot.", "You feel strong sexual urges.", "You feel in the mood.", "You're ready to go down on someone.")
- to_chat(M, "[aroused_message]")
+ to_chat(M, span_userlove("[aroused_message]"))
REMOVE_TRAIT(M,TRAIT_NEVERBONER,APHRO_TRAIT)
if(ishuman(M))
var/mob/living/carbon/human/H = M
var/list/genits = H.adjust_arousal(100, "hexacrocin", aphro = TRUE) // redundant but should still be here
for(var/g in genits)
var/obj/item/organ/genital/G = g
- to_chat(M, "[G.arousal_verb]!")
+ to_chat(M, span_userlove("[G.arousal_verb]!"))
..()
/datum/reagent/drug/aphrodisiacplus/addiction_act_stage2(mob/living/M)
@@ -631,7 +631,7 @@
if(M && M.client?.prefs.arousable && !(M.client?.prefs.cit_toggles & NO_APHRO) && prob(33))
if(prob(5) && ishuman(M) && M.has_dna() && (M.client?.prefs.cit_toggles & BIMBOFICATION))
if(!HAS_TRAIT(M,TRAIT_PERMABONER))
- to_chat(M, "Your libido is going haywire!")
+ to_chat(M, span_userlove("Your libido is going haywire!"))
M.log_message("Made perma-horny by hexacrocin.",LOG_EMOTE)
ADD_TRAIT(M,TRAIT_PERMABONER,APHRO_TRAIT)
..()
@@ -677,6 +677,6 @@
/datum/reagent/drug/anaphrodisiacplus/overdose_process(mob/living/M)
if(M && M.client?.prefs.arousable && prob(5))
- to_chat(M, "You feel like you'll never feel aroused again...")
+ to_chat(M, span_userlove("You feel like you'll never feel aroused again..."))
ADD_TRAIT(M,TRAIT_NEVERBONER,APHRO_TRAIT)
..()
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 601ac81f0f..73e3367260 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -2417,7 +2417,7 @@
var/list/adjusted = H.adjust_arousal(2,"catnip", aphro = TRUE)
for(var/g in adjusted)
var/obj/item/organ/genital/G = g
- to_chat(M, "You feel like playing with your [G.name]!")
+ to_chat(M, span_userlove("You feel like playing with your [G.name]!"))
..()
/datum/reagent/preservahyde
diff --git a/modular_sand/code/controllers/subsystem/language.dm b/modular_sand/code/controllers/subsystem/language.dm
index faa3fa3e1d..c0abd0b720 100644
--- a/modular_sand/code/controllers/subsystem/language.dm
+++ b/modular_sand/code/controllers/subsystem/language.dm
@@ -24,7 +24,7 @@
continue
if(valid_languages.len)
var/list/sorted_valid = sortList(valid_languages)
- to_chat(user, "You are able to speak in [sorted_valid.Join(", ")]. If you're actually good at [valid_languages.len > 1 ? "them" : "it"] or not, it's up to you.")
+ to_chat(user, span_notice("You are able to speak in [sorted_valid.Join(", ")]. If you're actually good at [valid_languages.len > 1 ? "them" : "it"] or not, it's up to you."))
if(invalid_languages.len)
var/list/sorted_invalid = sortList(invalid_languages)
- to_chat(user, "[sorted_invalid.Join(", ")] [invalid_languages.len > 1 ? "are" : "is a"] restricted language[invalid_languages.len > 1 ? "s" : ""], and ha[invalid_languages.len > 1 ? "ve" : "s"] not been assigned.")
+ to_chat(user, span_warning("[sorted_invalid.Join(", ")] [invalid_languages.len > 1 ? "are" : "is a"] restricted language[invalid_languages.len > 1 ? "s" : ""], and ha[invalid_languages.len > 1 ? "ve" : "s"] not been assigned."))
diff --git a/modular_sand/code/datums/components/container_item/tank_holder.dm b/modular_sand/code/datums/components/container_item/tank_holder.dm
index b68c413519..765335987c 100644
--- a/modular_sand/code/datums/components/container_item/tank_holder.dm
+++ b/modular_sand/code/datums/components/container_item/tank_holder.dm
@@ -17,12 +17,12 @@
var/obj/item/I = parent
if(container.contents.len)
if(user)
- to_chat(user, "There's already something in [container].")
+ to_chat(user, span_warning("There's already something in [container]."))
return TRUE
if(user)
if(!user.transferItemToLoc(I, container))
return TRUE
- to_chat(user, "You put [I] into [container].")
+ to_chat(user, span_notice("You put [I] into [container]."))
else
I.forceMove(container)
container.tank = I
diff --git a/modular_sand/code/datums/elements/holder_micro.dm b/modular_sand/code/datums/elements/holder_micro.dm
index 1863fb3139..bdf38e1125 100644
--- a/modular_sand/code/datums/elements/holder_micro.dm
+++ b/modular_sand/code/datums/elements/holder_micro.dm
@@ -26,7 +26,7 @@
/datum/element/mob_holder/micro/on_examine(mob/living/source, mob/user, list/examine_list)
if(ishuman(user) && !istype(source.loc, /obj/item/clothing/head/mob_holder) && (abs(get_size(user)/get_size(source)) >= 2.0))
- examine_list += "Looks like [source.p_they(FALSE)] can be picked up using Alt+Click and grab intent!"
+ examine_list += span_notice("Looks like [source.p_they(FALSE)] can be picked up using Alt+Click and grab intent!")
/datum/element/mob_holder/micro/proc/mob_pickup_micro(mob/living/source, mob/user)
var/obj/item/clothing/head/mob_holder/micro/holder = new(get_turf(source), source, worn_state, alt_worn, right_hand, left_hand, inv_slots)
@@ -50,41 +50,41 @@
if(!ishuman(user) || !user.Adjacent(source) || user.incapacitated())
return FALSE
if(source == user)
- to_chat(user, "You can't pick yourself up.")
+ to_chat(user, span_warning("You can't pick yourself up."))
source.balloon_alert(user, "cannot pick yourself!")
return FALSE
if(abs(get_size(user)/get_size(source)) < 2.0 )
- to_chat(user, "They're too big to pick up!")
+ to_chat(user, span_warning("They're too big to pick up!"))
source.balloon_alert(user, "too big to pick up!")
return FALSE
if(user.get_active_held_item())
- to_chat(user, "Your hands are full!")
+ to_chat(user, span_warning("Your hands are full!"))
source.balloon_alert(user, "hands are full!")
return FALSE
if(source.buckled)
- to_chat(user, "[source] is buckled to something!")
+ to_chat(user, span_warning("[source] is buckled to something!"))
source.balloon_alert(user, "buckled to something!")
return FALSE
- source.visible_message("[user] starts picking up [source].", \
- "[user] starts picking you up!")
+ source.visible_message(span_warning("[user] starts picking up [source]."), \
+ span_userdanger("[user] starts picking you up!"))
source.balloon_alert(user, "picking up")
var/p = abs(get_size(source)/get_size(user) * 40) //Scale how fast the pickup will be depending on size difference
if(!do_after(user, p, target = source))
return FALSE
if(user.get_active_held_item())
- to_chat(user, "Your hands are full!")
+ to_chat(user, span_warning("Your hands are full!"))
source.balloon_alert(user, "hands full!")
return FALSE
if(source.buckled)
- to_chat(user, "[source] is buckled to something!")
+ to_chat(user, span_warning("[source] is buckled to something!"))
source.balloon_alert(user, "buckled!")
return FALSE
- source.visible_message("[user] picks up [source]!",
- "[user] picks you up!",
+ source.visible_message(span_warning("[user] picks up [source]!"),
+ span_userdanger("[user] picks you up!"),
target = user,
- target_message = "You pick [source] up.")
+ target_message = span_notice("You pick [source] up."))
source.drop_all_held_items()
mob_pickup_micro(source, user)
return TRUE
@@ -100,14 +100,14 @@
//TODO: add a timer to escape someone's grip dependant on size diff
/obj/item/clothing/head/mob_holder/micro/container_resist(mob/living/user)
if(user.incapacitated())
- to_chat(user, "You can't escape while you're restrained like this!")
+ to_chat(user, span_warning("You can't escape while you're restrained like this!"))
return
var/mob/living/L = loc
- visible_message("[src] begins to squirm in [L]'s grasp!")
+ visible_message(span_warning("[src] begins to squirm in [L]'s grasp!"))
if(!do_after(user, 12 SECONDS, target = src, required_mobility_flags = MOBILITY_RESIST))
if(!user || user.stat != CONSCIOUS || user.loc != src)
return
- to_chat(loc, "[src] stops resisting.")
+ to_chat(loc, span_warning("[src] stops resisting."))
return
visible_message("[src] escapes [L]!")
release()
@@ -133,17 +133,17 @@
var/mob/living/carbon/human/M = held_mob
if(istype(M))
if(user.a_intent == "harm") //TO:DO, rework all of these interactions to be a lot more in depth
- visible_message("[user] slams their fist down on [M]!", runechat_popup = TRUE, rune_msg = " slams their fist down on [M]!")
+ visible_message(span_danger("[user] slams their fist down on [M]!"), runechat_popup = TRUE, rune_msg = " slams their fist down on [M]!")
playsound(loc, 'sound/weapons/punch1.ogg', 50, 1)
M.adjustBruteLoss(5)
return
if(user.a_intent == "disarm")
- visible_message("[user] pins [M] down with a finger!", runechat_popup = TRUE, rune_msg = " pins [M] down with a finger!")
+ visible_message(span_danger("[user] pins [M] down with a finger!"), runechat_popup = TRUE, rune_msg = " pins [M] down with a finger!")
playsound(loc, 'sound/effects/bodyfall1.ogg', 50, 1)
M.adjustStaminaLoss(10)
return
if(user.a_intent == "grab")
- visible_message("[user] squeezes their fist around [M]!", runechat_popup = TRUE, rune_msg = " squeezes their fist around [M]!")
+ visible_message(span_danger("[user] squeezes their fist around [M]!"), runechat_popup = TRUE, rune_msg = " squeezes their fist around [M]!")
playsound(loc, 'sound/weapons/thudswoosh.ogg', 50, 1)
M.adjustOxyLoss(5)
return
diff --git a/modular_sand/code/datums/interactions/_interaction.dm b/modular_sand/code/datums/interactions/_interaction.dm
index c46ce23784..b7077ae80d 100644
--- a/modular_sand/code/datums/interactions/_interaction.dm
+++ b/modular_sand/code/datums/interactions/_interaction.dm
@@ -46,17 +46,17 @@
if(require_user_mouth)
if(!user.has_mouth() && !issilicon(user)) //Again, silicons do not have the required parts normally.
if(!silent)
- to_chat(user, "You don't have a mouth.")
+ to_chat(user, span_warning("You don't have a mouth."))
return FALSE
if(!user.mouth_is_free() && !issilicon(user)) //Borgs cannot wear mouthgear, bypassing the check.
if(!silent)
- to_chat(user, "Your mouth is covered.")
+ to_chat(user, span_warning("Your mouth is covered."))
return FALSE
if(require_user_hands && !user.has_hands() && !issilicon(user)) //Edited to allow silicons to interact.
if(!silent)
- to_chat(user, "You don't have hands.")
+ to_chat(user, span_warning("You don't have hands."))
return FALSE
if(COOLDOWN_FINISHED(user, last_interaction_time))
@@ -100,13 +100,13 @@
/datum/interaction/proc/do_action(mob/living/user, mob/living/target)
if(!user_is_target)
if(user == target) //tactical href fix
- to_chat(user, "You cannot target yourself.")
+ to_chat(user, span_warning("You cannot target yourself."))
return
if(get_dist(user, target) > max_distance)
- to_chat(user, "They are too far away.")
+ to_chat(user, span_warning("They are too far away."))
return
if(needs_physical_contact && !(user.Adjacent(target) && target.Adjacent(user)))
- to_chat(user, "You cannot get to them.")
+ to_chat(user, span_warning("You cannot get to them."))
return
if(!evaluate_user(user, silent = FALSE))
return
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/breasts.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/breasts.dm
index b0eb318147..af839a057b 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/breasts.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/breasts.dm
@@ -30,7 +30,7 @@
"lets a large stream of [u_His] own abundant [lowertext(milktext)] coat the back of \the [target]'s throat"
)
- message = "\The [user] [pick(lines)]"
+ message = span_lewd("\The [user] [pick(lines)]")
user.visible_message(message, ignored_mobs = user.get_unconsenting())
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/oral1.ogg',
'modular_sand/sound/interactions/oral2.ogg'), 70, 1, -1)
@@ -59,56 +59,56 @@
/datum/interaction/lewd/titgrope/display_interaction(mob/living/carbon/human/user, mob/living/carbon/human/target)
if(user.a_intent == INTENT_HELP)
user.visible_message(
- pick("\The [user] gently gropes \the [target]'s breast.",
- "\The [user] softly squeezes \the [target]'s breasts.",
- "\The [user] grips \the [target]'s breasts.",
- "\The [user] runs a few fingers over \the [target]'s breast.",
- "\The [user] delicately teases \the [target]'s nipple.",
- "\The [user] traces a touch across \the [target]'s breast."))
+ pick(span_lewd("\The [user] gently gropes \the [target]'s breast."),
+ span_lewd("\The [user] softly squeezes \the [target]'s breasts."),
+ span_lewd("\The [user] grips \the [target]'s breasts."),
+ span_lewd("\The [user] runs a few fingers over \the [target]'s breast."),
+ span_lewd("\The [user] delicately teases \the [target]'s nipple."),
+ span_lewd("\The [user] traces a touch across \the [target]'s breast.")))
if(user.a_intent == INTENT_HARM)
user.visible_message(
- pick("\The [user] aggressively gropes \the [target]'s breast.",
- "\The [user] grabs \the [target]'s breasts.",
- "\The [user] tightly squeezes \the [target]'s breasts.",
- "\The [user] slaps at \the [target]'s breasts.",
- "\The [user] gropes \the [target]'s breasts roughly."))
+ pick(span_lewd("\The [user] aggressively gropes \the [target]'s breast."),
+ span_lewd("\The [user] grabs \the [target]'s breasts."),
+ span_lewd("\The [user] tightly squeezes \the [target]'s breasts."),
+ span_lewd("\The [user] slaps at \the [target]'s breasts."),
+ span_lewd("\The [user] gropes \the [target]'s breasts roughly.")))
if(prob(5 + target.get_lust()))
if(target.a_intent == INTENT_HELP)
user.visible_message(
- pick("\The [target] shivers in arousal.",
- "\The [target] moans quietly.",
- "\The [target] breathes out a soft moan.",
- "\The [target] gasps.",
- "\The [target] shudders softly.",
- "\The [target] trembles as hands run across bare skin."))
+ pick(span_lewd("\The [target] shivers in arousal."),
+ span_lewd("\The [target] moans quietly."),
+ span_lewd("\The [target] breathes out a soft moan."),
+ span_lewd("\The [target] gasps."),
+ span_lewd("\The [target] shudders softly."),
+ span_lewd("\The [target] trembles as hands run across bare skin.")))
if(target.get_lust() < 5)
target.set_lust(5)
if(target.a_intent == INTENT_DISARM)
if (target.restrained())
user.visible_message(
- pick("\The [target] twists playfully against the restraints.",
- "\The [target] squirms away from [user]'s hand.",
- "\The [target] slides back from [user]'s roaming hand.",
- "\The [target] thrusts bare breasts forward into [user]'s hands."))
+ pick(span_lewd("\The [target] twists playfully against the restraints."),
+ span_lewd("\The [target] squirms away from [user]'s hand."),
+ span_lewd("\The [target] slides back from [user]'s roaming hand."),
+ span_lewd("\The [target] thrusts bare breasts forward into [user]'s hands.")))
else
user.visible_message(
- pick("\The [target] playfully bats at [user]'s hand.",
- "\The [target] squirms away from [user]'s hand.",
- "\The [target] guides [user]'s hand across bare breasts.",
- "\The [target] teasingly laces a few fingers over [user]'s knuckles."))
+ pick(span_lewd("\The [target] playfully bats at [user]'s hand."),
+ span_lewd("\The [target] squirms away from [user]'s hand."),
+ span_lewd("\The [target] guides [user]'s hand across bare breasts."),
+ span_lewd("\The [target] teasingly laces a few fingers over [user]'s knuckles.")))
if(target.get_lust() < 10)
target.add_lust(1)
if(target.a_intent == INTENT_GRAB)
user.visible_message(
- pick("\The [target] grips [user]'s wrist tight.",
- "\The [target] digs nails into [user]'s arm.",
- "\The [target] grabs [user]'s wrist for a second."))
+ pick(span_lewd("\The [target] grips [user]'s wrist tight."),
+ span_lewd("\The [target] digs nails into [user]'s arm."),
+ span_lewd("\The [target] grabs [user]'s wrist for a second.")))
if(target.a_intent == INTENT_HARM)
user.adjustBruteLoss(1)
user.visible_message(
- pick("\The [target] pushes [user] roughly away.",
- "\The [target] digs nails angrily into [user]'s arm.",
- "\The [target] fiercely struggles against [user].",
- "\The [target] claws [user]'s forearm, drawing blood.",
- "\The [target] slaps [user]'s hand away."))
+ pick(span_lewd("\The [target] pushes [user] roughly away."),
+ span_lewd("\The [target] digs nails angrily into [user]'s arm."),
+ span_lewd("\The [target] fiercely struggles against [user]."),
+ span_lewd("\The [target] claws [user]'s forearm, drawing blood."),
+ span_lewd("\The [target] slaps [user]'s hand away.")))
return
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/cursed/earfuck.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/cursed/earfuck.dm
index ff97771ad1..6c432ec2ce 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/cursed/earfuck.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/cursed/earfuck.dm
@@ -41,6 +41,6 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/champ1.ogg',
'modular_sand/sound/interactions/champ2.ogg'), 50, 1, -1)
- user.visible_message(message = "\The [user] [message]", ignored_mobs = user.get_unconsenting(TRUE))
+ user.visible_message(message = span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting(TRUE))
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_EARS, partner)
partner.handle_post_sex(LOW_LUST, null, user)
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/cursed/eyefuck.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/cursed/eyefuck.dm
index 6533f8e7c0..f74673570c 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/cursed/eyefuck.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/cursed/eyefuck.dm
@@ -41,6 +41,6 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/champ1.ogg',
'modular_sand/sound/interactions/champ2.ogg'), 50, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting(TRUE))
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting(TRUE))
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_EYES, partner)
partner.handle_post_sex(LOW_LUST, null, user)
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/facefuck.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/facefuck.dm
index e66cce7f28..e775e95e96 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/facefuck.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/facefuck.dm
@@ -103,7 +103,7 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/oral1.ogg',
'modular_sand/sound/interactions/oral2.ogg'), 70, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
if(retaliation_message)
user.visible_message("\The [partner] [retaliation_message]", ignored_mobs = user.get_unconsenting())
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_MOUTH, partner)
@@ -154,7 +154,7 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/oral1.ogg',
'modular_sand/sound/interactions/oral2.ogg'), 70, 1, -1)
- user.visible_message(message = "\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(message = span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
if(retaliation_message)
user.visible_message(message = "\The [partner] [retaliation_message]", ignored_mobs = user.get_unconsenting())
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_THROAT, partner)
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/feet.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/feet.dm
index 27b745dff1..bdb3d9444b 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/feet.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/feet.dm
@@ -50,7 +50,7 @@
'modular_sand/sound/interactions/foot_dry2.ogg',
'modular_sand/sound/interactions/foot_dry3.ogg',
'modular_sand/sound/interactions/foot_dry4.ogg'), 70, 1, -1)
- user.visible_message(message = "\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(message = span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
partner.handle_post_sex(LOW_LUST, null, user)
/datum/interaction/lewd/grindmouth
@@ -105,7 +105,7 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/foot_wet1.ogg',
'modular_sand/sound/interactions/foot_wet2.ogg',
'modular_sand/sound/interactions/foot_wet3.ogg'), 70, 1, -1)
- user.visible_message(message = "\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(message = span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
partner.handle_post_sex(LOW_LUST, null, user)
/datum/interaction/lewd/footjob
@@ -136,7 +136,7 @@
'modular_sand/sound/interactions/foot_dry3.ogg',
'modular_sand/sound/interactions/foot_wet1.ogg',
'modular_sand/sound/interactions/foot_wet2.ogg'), 70, 1, -1)
- user.visible_message(message = "\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(message = span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
partner.handle_post_sex(NORMAL_LUST, CUM_TARGET_FEET, user)
/datum/interaction/lewd/footjob/double
@@ -164,7 +164,7 @@
'modular_sand/sound/interactions/foot_dry3.ogg',
'modular_sand/sound/interactions/foot_wet1.ogg',
'modular_sand/sound/interactions/foot_wet2.ogg'), 70, 1, -1)
- user.visible_message(message = "\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(message = span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
partner.handle_post_sex(NORMAL_LUST, CUM_TARGET_FEET, user)
/datum/interaction/lewd/footjob/vagina
@@ -193,5 +193,5 @@
'modular_sand/sound/interactions/foot_dry3.ogg',
'modular_sand/sound/interactions/foot_wet1.ogg',
'modular_sand/sound/interactions/foot_wet2.ogg'), 70, 1, -1)
- user.visible_message(message = "\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(message = span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
partner.handle_post_sex(NORMAL_LUST, CUM_TARGET_FEET, user)
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/frotting.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/frotting.dm
index 4c8e1c5eac..f91a041d47 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/frotting.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/frotting.dm
@@ -13,7 +13,7 @@
message = "rubs [t_His] penis against [partner]'s."
user.set_is_fucking(partner, CUM_TARGET_PENIS, user.getorganslot(ORGAN_SLOT_PENIS))
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_PENIS, partner)
partner.handle_post_sex(NORMAL_LUST, CUM_TARGET_PENIS, user)
@@ -40,6 +40,6 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/squelch1.ogg',
'modular_sand/sound/interactions/squelch2.ogg',
'modular_sand/sound/interactions/squelch3.ogg'), 70, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
partner.handle_post_sex(NORMAL_LUST, CUM_TARGET_VAGINA, user)
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_VAGINA, partner)
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/fuck.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/fuck.dm
index 128e13edb7..4f168664f2 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/fuck.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/fuck.dm
@@ -24,7 +24,7 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/champ1.ogg',
'modular_sand/sound/interactions/champ2.ogg'), 50, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_VAGINA, partner)
partner.handle_post_sex(NORMAL_LUST, CUM_TARGET_PENIS, user)
@@ -55,7 +55,7 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/bang1.ogg',
'modular_sand/sound/interactions/bang2.ogg',
'modular_sand/sound/interactions/bang3.ogg'), 70, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_ANUS, partner)
partner.handle_post_sex(NORMAL_LUST, null, user)
@@ -84,7 +84,7 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/bang1.ogg',
'modular_sand/sound/interactions/bang2.ogg',
'modular_sand/sound/interactions/bang3.ogg'), 70, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_BREASTS, partner)
/datum/interaction/lewd/footfuck
@@ -116,7 +116,7 @@
'modular_sand/sound/interactions/foot_dry3.ogg',
'modular_sand/sound/interactions/foot_wet1.ogg',
'modular_sand/sound/interactions/foot_wet2.ogg'), 70, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_FEET, partner)
/datum/interaction/lewd/footfuck/double
@@ -144,7 +144,7 @@
'modular_sand/sound/interactions/foot_dry3.ogg',
'modular_sand/sound/interactions/foot_wet1.ogg',
'modular_sand/sound/interactions/foot_wet2.ogg'), 70, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_FEET, partner)
/datum/interaction/lewd/footfuck/vag
@@ -177,5 +177,5 @@
'modular_sand/sound/interactions/foot_dry3.ogg',
'modular_sand/sound/interactions/foot_wet1.ogg',
'modular_sand/sound/interactions/foot_wet2.ogg'), 70, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_FEET, partner)
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/handjob.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/handjob.dm
index 830000d654..3fbe2f4587 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/handjob.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/handjob.dm
@@ -22,5 +22,5 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/bang1.ogg',
'modular_sand/sound/interactions/bang2.ogg',
'modular_sand/sound/interactions/bang3.ogg'), 70, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
partner.handle_post_sex(NORMAL_LUST, CUM_TARGET_HAND, user)
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/kiss.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/kiss.dm
index 7f49fd21dd..8e196c8a19 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/kiss.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/kiss.dm
@@ -16,6 +16,6 @@
/datum/interaction/lewd/kiss/display_interaction(mob/living/user, mob/living/partner)
if(user.get_lust() >= 3)
- user.visible_message("\The [user] gives an intense, lingering kiss to \the [partner].")
+ user.visible_message(span_lewd("\The [user] gives an intense, lingering kiss to \the [partner]."))
else
- user.visible_message("\The [user] kisses \the [partner] deeply.")
+ user.visible_message(span_lewd("\The [user] kisses \the [partner] deeply."))
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/lick.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/lick.dm
index 807d7f39af..6798d07d62 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/lick.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/lick.dm
@@ -6,7 +6,7 @@
max_distance = 1
/datum/interaction/lewd/rimjob/display_interaction(mob/living/user, mob/living/partner)
- user.visible_message("\The [user] licks \the [partner]'s asshole.", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] licks \the [partner]'s asshole."), ignored_mobs = user.get_unconsenting())
playlewdinteractionsound(get_turf(user), 'modular_sand/sound/interactions/champ_fingering.ogg', 50, 1, -1)
partner.handle_post_sex(NORMAL_LUST, null, user)
@@ -29,5 +29,5 @@
message = "licks \the [partner]'s [partner.has_feet() == 1 ? "foot" : "feet"]."
playlewdinteractionsound(get_turf(user), 'modular_sand/sound/interactions/champ_fingering.ogg', 50, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
user.handle_post_sex(LOW_LUST, null, user)
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/mount.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/mount.dm
index e476effec2..6e7d5aedb2 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/mount.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/mount.dm
@@ -19,7 +19,7 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/bang1.ogg',
'modular_sand/sound/interactions/bang2.ogg',
'modular_sand/sound/interactions/bang3.ogg'), 70, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
partner.handle_post_sex(NORMAL_LUST, CUM_TARGET_VAGINA, user)
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_PENIS, partner)
@@ -44,7 +44,7 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/bang1.ogg',
'modular_sand/sound/interactions/bang2.ogg',
'modular_sand/sound/interactions/bang3.ogg'), 70, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
partner.handle_post_sex(NORMAL_LUST, CUM_TARGET_ANUS, user)
user.handle_post_sex(NORMAL_LUST, null, partner)
@@ -72,7 +72,7 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/squelch1.ogg',
'modular_sand/sound/interactions/squelch2.ogg',
'modular_sand/sound/interactions/squelch3.ogg'), 70, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
user.handle_post_sex(LOW_LUST, null, partner)
/datum/interaction/lewd/thighs
@@ -154,7 +154,7 @@
'modular_sand/sound/interactions/foot_wet1.ogg',
'modular_sand/sound/interactions/foot_dry3.ogg')
playlewdinteractionsound(get_turf(user), file, 70, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
user.handle_post_sex(lust_increase, THIGH_SMOTHERING, partner)
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/oral1.ogg',
'modular_sand/sound/interactions/oral2.ogg'), 70, 1, -1)
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/nipsuck.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/nipsuck.dm
index 617821e111..e5a0b8911e 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/nipsuck.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/nipsuck.dm
@@ -10,9 +10,9 @@
/datum/interaction/lewd/nipsuck/display_interaction(mob/living/carbon/human/user, mob/living/carbon/human/target)
if((user.a_intent == INTENT_HELP) || (user.a_intent == INTENT_DISARM))
user.visible_message(
- pick("\The [user] gently sucks on \the [target]'s [pick("nipple", "nipples")].",
- "\The [user] gently nibs \the [target]'s [pick("nipple", "nipples")].",
- "\The [user] licks \the [target]'s [pick("nipple", "nipples")]."))
+ pick(span_lewd("\The [user] gently sucks on \the [target]'s [pick("nipple", "nipples")]."),
+ span_lewd("\The [user] gently nibs \the [target]'s [pick("nipple", "nipples")]."),
+ span_lewd("\The [user] licks \the [target]'s [pick("nipple", "nipples")].")))
if(target.has_breasts(REQUIRE_EXPOSED))
var/modifier = 1
var/obj/item/organ/genital/breasts/B = target.getorganslot(ORGAN_SLOT_BREASTS)
@@ -31,8 +31,8 @@
if(user.a_intent == INTENT_HARM)
user.visible_message(
- pick("\The [user] bites \the [target]'s [pick("nipple", "nipples")].",
- "\The [user] aggressively sucks \the [target]'s [pick("nipple", "nipples")]."))
+ pick(span_lewd("\The [user] bites \the [target]'s [pick("nipple", "nipples")]."),
+ span_lewd("\The [user] aggressively sucks \the [target]'s [pick("nipple", "nipples")].")))
if(target.has_breasts(REQUIRE_EXPOSED))
var/modifier = 1
var/obj/item/organ/genital/breasts/B = target.getorganslot(ORGAN_SLOT_BREASTS)
@@ -51,9 +51,9 @@
if(user.a_intent == INTENT_GRAB)
user.visible_message(
- pick("\The [user] sucks \the [target]'s [pick("nipple", "nipples")] intently.",
- "\The [user] feasts \the [target]'s [pick("nipple", "nipples")].",
- "\The [user] glomps \the [target]'s [pick("nipple", "nipples")]."))
+ pick(span_lewd("\The [user] sucks \the [target]'s [pick("nipple", "nipples")] intently."),
+ span_lewd("\The [user] feasts \the [target]'s [pick("nipple", "nipples")]."),
+ span_lewd("\The [user] glomps \the [target]'s [pick("nipple", "nipples")].")))
if(target.has_breasts(REQUIRE_EXPOSED))
var/modifier = 1
var/obj/item/organ/genital/breasts/B = target.getorganslot(ORGAN_SLOT_BREASTS)
@@ -74,66 +74,66 @@
if(target.a_intent == INTENT_HELP)
if(!target.has_breasts())
user.visible_message(
- pick("\The [target] shivers in arousal.",
- "\The [target] moans quietly.",
- "\The [target] breathes out a soft moan.",
- "\The [target] gasps.",
- "\The [target] shudders softly.",
- "\The [target] trembles as their chest gets molested."))
+ pick(span_lewd("\The [target] shivers in arousal."),
+ span_lewd("\The [target] moans quietly."),
+ span_lewd("\The [target] breathes out a soft moan."),
+ span_lewd("\The [target] gasps."),
+ span_lewd("\The [target] shudders softly."),
+ span_lewd("\The [target] trembles as their chest gets molested.")))
else
user.visible_message(
- pick("\The [target] shivers in arousal.",
- "\The [target] moans quietly.",
- "\The [target] breathes out a soft moan.",
- "\The [target] gasps.",
- "\The [target] shudders softly.",
- "\The [target] trembles as their breasts get molested.",
- "\The [target] quivers in arousal as \the [user] delights themselves on their milk."))
+ pick(span_lewd("\The [target] shivers in arousal."),
+ span_lewd("\The [target] moans quietly."),
+ span_lewd("\The [target] breathes out a soft moan."),
+ span_lewd("\The [target] gasps."),
+ span_lewd("\The [target] shudders softly."),
+ span_lewd("\The [target] trembles as their breasts get molested."),
+ span_lewd("\The [target] quivers in arousal as \the [user] delights themselves on their milk.")))
if(target.get_lust() < 5)
target.set_lust(5)
if(target.a_intent == INTENT_DISARM)
if (target.restrained())
if(!target.has_breasts())
user.visible_message(
- pick("\The [target] twists playfully against the restraints.",
- "\The [target] squirms away from \the [user]'s mouth.",
- "\The [target] slides back from \the [user]'s mouth.",
- "\The [target] thrusts their bare chest forward into \the [user]'s mouth."))
+ pick(span_lewd("\The [target] twists playfully against the restraints."),
+ span_lewd("\The [target] squirms away from \the [user]'s mouth."),
+ span_lewd("\The [target] slides back from \the [user]'s mouth."),
+ span_lewd("\The [target] thrusts their bare chest forward into \the [user]'s mouth.")))
else
user.visible_message(
- pick("\The [target] twists playfully against the restraints.",
- "\The [target] squirms away from \the [user]'s mouth.",
- "\The [target] slides back from \the [user]'s mouth.",
- "\The [target] thrust their bare breasts forward into \the [user]'s mouth."))
+ pick(span_lewd("\The [target] twists playfully against the restraints."),
+ span_lewd("\The [target] squirms away from \the [user]'s mouth."),
+ span_lewd("\The [target] slides back from \the [user]'s mouth."),
+ span_lewd("\The [target] thrust their bare breasts forward into \the [user]'s mouth.")))
else
if(!target.has_breasts())
user.visible_message(
- pick("\The [target] playfully shoos away \the [user]'s head.",
- "\The [target] squirms away from \the [user]'s mouth.",
- "\The [target] holds \the [user]'s head against their chest.",
- "\The [target] teasingly caresses \the [user]'s neck."))
+ pick(span_lewd("\The [target] playfully shoos away \the [user]'s head."),
+ span_lewd("\The [target] squirms away from \the [user]'s mouth."),
+ span_lewd("\The [target] holds \the [user]'s head against their chest."),
+ span_lewd("\The [target] teasingly caresses \the [user]'s neck.")))
else
user.visible_message(
- pick("\The [target] playfully shoos away \the [user]'s head.",
- "\The [target] squirms away from \the [user]'s mouth.",
- "\The [target] holds \the [user]'s head against their breast.",
- "\The [target] teasingly caresses \the [user]'s neck.",
- "\The [target] rubs their breasts against \the [user]'s head."))
+ pick(span_lewd("\The [target] playfully shoos away \the [user]'s head."),
+ span_lewd("\The [target] squirms away from \the [user]'s mouth."),
+ span_lewd("\The [target] holds \the [user]'s head against their breast."),
+ span_lewd("\The [target] teasingly caresses \the [user]'s neck."),
+ span_lewd("\The [target] rubs their breasts against \the [user]'s head.")))
if(target.get_lust() < 10)
target.add_lust(1)
if(target.a_intent == INTENT_GRAB)
user.visible_message(
- pick("\The [target] grips \the [user]'s head tight.",
- "\The [target] digs nails into \the [user]'s scalp.",
- "\The [target] grabs and shoves \the [user]'s head away."))
+ pick(span_lewd("\The [target] grips \the [user]'s head tight."),
+ span_lewd("\The [target] digs nails into \the [user]'s scalp."),
+ span_lewd("\The [target] grabs and shoves \the [user]'s head away.")))
if(target.a_intent == INTENT_HARM)
user.adjustBruteLoss(1)
user.visible_message(
- pick("\The [target] slaps \the [user] away.",
- "\The [target] scratches [user]'s face.",
- "\The [target] fiercely struggles against [user].",
- "\The [target] claws [user]'s face, drawing blood.",
- "\The [target] elbows [user]'s mouth away."))
+ pick(span_lewd("\The [target] slaps \the [user] away."),
+ span_lewd("\The [target] scratches [user]'s face."),
+ span_lewd("\The [target] fiercely struggles against [user]."),
+ span_lewd("\The [target] claws [user]'s face, drawing blood."),
+ span_lewd("\The [target] elbows [user]'s mouth away.")))
target.dir = get_dir(target, user)
user.dir = get_dir(user, target)
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/oral1.ogg',
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/nuts.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/nuts.dm
index 912b227915..3210d01ed3 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/nuts.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/nuts.dm
@@ -29,7 +29,7 @@
'modular_sand/sound/interactions/nuts2.ogg',
'modular_sand/sound/interactions/nuts3.ogg',
'modular_sand/sound/interactions/nuts4.ogg'), 70, 1, -1)*/ //These files don't even exist but nobody noticed because double-quotes were used instead of single.
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
user.handle_post_sex(lust_increase, CUM_TARGET_MOUTH, partner)
/datum/interaction/lewd/nut_smack
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/oral.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/oral.dm
index 2ea1ef6e19..eaf4fef71d 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/oral.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/oral.dm
@@ -121,5 +121,5 @@
'modular_sand/sound/interactions/bj9.ogg',
'modular_sand/sound/interactions/bj10.ogg',
'modular_sand/sound/interactions/bj11.ogg'), 50, 1, -1)
- user.visible_message("\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
partner.handle_post_sex(lust_increase, CUM_TARGET_MOUTH, user)
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/self/breasts.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/self/breasts.dm
index f4d4599d3d..5c91e50a3c 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/self/breasts.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/self/breasts.dm
@@ -32,7 +32,7 @@
"gasps.",
"shudders softly.",
"trembles as [t_His] hands run across bare skin.")]")
- user.visible_message(message = "\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(message = span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
playlewdinteractionsound(get_turf(user), 'modular_sand/sound/interactions/squelch1.ogg', 50, 1, -1)
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_HAND, user)
@@ -68,7 +68,7 @@
"fills [u_His] own mouth with a big gulp of [u_His] warm [lowertext(milktext)]"
)
- message = "\The [user] [pick(lines)]"
+ message = span_lewd("\The [user] [pick(lines)]")
user.visible_message(message, ignored_mobs = user.get_unconsenting())
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/oral1.ogg',
'modular_sand/sound/interactions/oral2.ogg'), 70, 1, -1)
diff --git a/modular_sand/code/datums/interactions/interaction_datums/lewd/self/jack.dm b/modular_sand/code/datums/interactions/interaction_datums/lewd/self/jack.dm
index 9c29503cf2..704797cd5d 100644
--- a/modular_sand/code/datums/interactions/interaction_datums/lewd/self/jack.dm
+++ b/modular_sand/code/datums/interactions/interaction_datums/lewd/self/jack.dm
@@ -27,5 +27,5 @@
playlewdinteractionsound(get_turf(user), pick('modular_sand/sound/interactions/bang1.ogg',
'modular_sand/sound/interactions/bang2.ogg',
'modular_sand/sound/interactions/bang3.ogg'), 70, 1, -1)
- user.visible_message(message = "\The [user] [message]", ignored_mobs = user.get_unconsenting())
+ user.visible_message(message = span_lewd("\The [user] [message]"), ignored_mobs = user.get_unconsenting())
user.handle_post_sex(NORMAL_LUST, CUM_TARGET_HAND, user)
diff --git a/modular_sand/code/datums/interactions/interaction_interface.dm b/modular_sand/code/datums/interactions/interaction_interface.dm
index ce2ecbaec8..6ba790ad5c 100644
--- a/modular_sand/code/datums/interactions/interaction_interface.dm
+++ b/modular_sand/code/datums/interactions/interaction_interface.dm
@@ -18,7 +18,7 @@
set desc = "Allows you to set your gender."
if(stat != CONSCIOUS)
- to_chat(usr, "You cannot toggle your gender while unconcious!")
+ to_chat(usr, span_warning("You cannot toggle your gender while unconcious!"))
return
var/choice = tgui_alert(usr, "Select Gender.", "Gender", list("Both", "Male", "Female"))
@@ -214,10 +214,10 @@
var/original_state = genital.aroused_state
genital.set_aroused_state(params["set_arousal"])// i'm not making it just `!aroused_state` because
if(original_state != genital.aroused_state) // someone just might port skyrat's new genitals
- to_chat(self, "[genital.aroused_state ? genital.arousal_verb : genital.unarousal_verb].")
+ to_chat(self, span_userlove("[genital.aroused_state ? genital.arousal_verb : genital.unarousal_verb]."))
. = TRUE
else
- to_chat(self, "You can't make that genital [genital.aroused_state ? "unaroused" : "aroused"]!")
+ to_chat(self, span_userlove("You can't make that genital [genital.aroused_state ? "unaroused" : "aroused"]!"))
. = FALSE
genital.update_appearance()
if(ishuman(self))
diff --git a/modular_sand/code/datums/interactions/lewd_definitions.dm b/modular_sand/code/datums/interactions/lewd_definitions.dm
index 0ea0a87ca8..8e4f70569d 100644
--- a/modular_sand/code/datums/interactions/lewd_definitions.dm
+++ b/modular_sand/code/datums/interactions/lewd_definitions.dm
@@ -418,9 +418,9 @@
if(moan == lastmoan)
moan--
if(!is_muzzled())
- visible_message(message = "\The [src] [pick("moans", "moans in pleasure")].", ignored_mobs = get_unconsenting())
+ visible_message(message = span_lewd("\The [src] [pick("moans", "moans in pleasure")]."), ignored_mobs = get_unconsenting())
if(is_muzzled())//immursion
- audible_message("[src] [pick("mimes a pleasured moan","moans in silence")].")
+ audible_message(span_lewd("[src] [pick("mimes a pleasured moan","moans in silence")]."))
lastmoan = moan
/mob/living/proc/cum(mob/living/partner, target_orifice)
@@ -781,7 +781,7 @@
playlewdinteractionsound(loc, pick('modular_sand/sound/interactions/final_f1.ogg',
'modular_sand/sound/interactions/final_f2.ogg',
'modular_sand/sound/interactions/final_f3.ogg'), 70, 1, 0)
- visible_message(message = "\The [src] [message]", ignored_mobs = get_unconsenting())
+ visible_message(message = span_userlove("\The [src] [message]"), ignored_mobs = get_unconsenting())
multiorgasms += 1
COOLDOWN_START(src, refractory_period, (rand(300, 900) - get_sexual_potency()))//sex cooldown
diff --git a/modular_sand/code/datums/interactions/lewd_interactions.dm b/modular_sand/code/datums/interactions/lewd_interactions.dm
index 27b9d68d70..d03b569129 100644
--- a/modular_sand/code/datums/interactions/lewd_interactions.dm
+++ b/modular_sand/code/datums/interactions/lewd_interactions.dm
@@ -73,17 +73,17 @@
return FALSE
if(user_not_tired && !COOLDOWN_FINISHED(user, refractory_period))
if(!silent) //bye spam
- to_chat(user, "You're still exhausted from the last time. You need to wait [DisplayTimeText(COOLDOWN_TIMELEFT(user, refractory_period), 1)] until you can do that!")
+ to_chat(user, span_warning("You're still exhausted from the last time. You need to wait [DisplayTimeText(COOLDOWN_TIMELEFT(user, refractory_period), 1)] until you can do that!"))
return FALSE
if(require_user_bottomless && !user.is_bottomless())
if(!silent)
- to_chat(user, "Your pants are in the way.")
+ to_chat(user, span_warning("Your pants are in the way."))
return FALSE
if(require_user_topless && !user.is_topless())
if(!silent)
- to_chat(user, "Your top is in the way.")
+ to_chat(user, span_warning("Your top is in the way."))
return FALSE
if(require_user_penis)
@@ -91,17 +91,17 @@
if(REQUIRE_EXPOSED)
if(!user.has_penis(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Your penis need to be exposed.")
+ to_chat(user, span_warning("Your penis need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!user.has_penis(REQUIRE_ANY))
if(!silent)
- to_chat(user, "You don't have a penis.")
+ to_chat(user, span_warning("You don't have a penis."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!user.has_penis(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Your penis need to be unexposed.")
+ to_chat(user, span_warning("Your penis need to be unexposed."))
return FALSE
if(require_user_balls)
@@ -109,17 +109,17 @@
if(REQUIRE_EXPOSED)
if(!user.has_balls(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Your balls need to be exposed.")
+ to_chat(user, span_warning("Your balls need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!user.has_balls(REQUIRE_ANY))
if(!silent)
- to_chat(user, "You don't have balls.")
+ to_chat(user, span_warning("You don't have balls."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!user.has_balls(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Your balls need to be unexposed.")
+ to_chat(user, span_warning("Your balls need to be unexposed."))
return FALSE
if(require_user_anus)
@@ -127,17 +127,17 @@
if(REQUIRE_EXPOSED)
if(!user.has_anus(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Your anus need to be exposed.")
+ to_chat(user, span_warning("Your anus need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!user.has_anus(REQUIRE_ANY))
if(!silent)
- to_chat(user, "You don't have an anus.")
+ to_chat(user, span_warning("You don't have an anus."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!user.has_anus(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Your anus need to be unexposed.")
+ to_chat(user, span_warning("Your anus need to be unexposed."))
return FALSE
if(require_user_vagina)
@@ -145,17 +145,17 @@
if(REQUIRE_EXPOSED)
if(!user.has_vagina(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Your vagina need to be exposed.")
+ to_chat(user, span_warning("Your vagina need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!user.has_vagina(REQUIRE_ANY))
if(!silent)
- to_chat(user, "You don't have a vagina.")
+ to_chat(user, span_warning("You don't have a vagina."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!user.has_vagina(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Your vagina need to be unexposed.")
+ to_chat(user, span_warning("Your vagina need to be unexposed."))
return FALSE
if(require_user_breasts)
@@ -163,17 +163,17 @@
if(REQUIRE_EXPOSED)
if(!user.has_breasts(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Your breasts need to be exposed.")
+ to_chat(user, span_warning("Your breasts need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!user.has_breasts(REQUIRE_ANY))
if(!silent)
- to_chat(user, "You don't have breasts.")
+ to_chat(user, span_warning("You don't have breasts."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!user.has_breasts(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Your breasts need to be unexposed.")
+ to_chat(user, span_warning("Your breasts need to be unexposed."))
return FALSE
if(require_user_feet)
@@ -181,22 +181,22 @@
if(REQUIRE_EXPOSED)
if(!user.has_feet(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Your feet need to be exposed.")
+ to_chat(user, span_warning("Your feet need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!user.has_feet(REQUIRE_ANY))
if(!silent)
- to_chat(user, "You don't have enough feet.")
+ to_chat(user, span_warning("You don't have enough feet."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!user.has_feet(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Your feet need to be unexposed.")
+ to_chat(user, span_warning("Your feet need to be unexposed."))
return FALSE
if(require_user_num_feet && (user.get_num_feet() < require_user_num_feet))
if(!silent)
- to_chat(user, "You don't have enough feet.")
+ to_chat(user, span_warning("You don't have enough feet."))
return FALSE
if(require_user_eyes)
@@ -204,17 +204,17 @@
if(REQUIRE_EXPOSED)
if(!user.has_eyes(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Your eyes need to be exposed.")
+ to_chat(user, span_warning("Your eyes need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!user.has_eyes(REQUIRE_ANY))
if(!silent)
- to_chat(user, "You don't have eyes.")
+ to_chat(user, span_warning("You don't have eyes."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!user.has_eyes(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Your eyes need to be unexposed.")
+ to_chat(user, span_warning("Your eyes need to be unexposed."))
return FALSE
if(require_user_eyesockets)
@@ -222,17 +222,17 @@
if(REQUIRE_EXPOSED)
if(!user.has_eyesockets(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Your eyesockets need to be exposed.")
+ to_chat(user, span_warning("Your eyesockets need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!user.has_eyesockets(REQUIRE_ANY))
if(!silent)
- to_chat(user, "You still have eyes.")
+ to_chat(user, span_warning("You still have eyes."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!user.has_eyesockets(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Your eyesockets need to be unexposed.")
+ to_chat(user, span_warning("Your eyesockets need to be unexposed."))
return FALSE
if(require_user_ears)
@@ -240,17 +240,17 @@
if(REQUIRE_EXPOSED)
if(!user.has_ears(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Your ears need to be exposed.")
+ to_chat(user, span_warning("Your ears need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!user.has_ears(REQUIRE_ANY))
if(!silent)
- to_chat(user, "You don't have ears.")
+ to_chat(user, span_warning("You don't have ears."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!user.has_ears(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Your ears need to be unexposed.")
+ to_chat(user, span_warning("Your ears need to be unexposed."))
return FALSE
if(require_user_earsockets)
@@ -258,17 +258,17 @@
if(REQUIRE_EXPOSED)
if(!user.has_earsockets(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Your earsockets need to be exposed.")
+ to_chat(user, span_warning("Your earsockets need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!user.has_earsockets(REQUIRE_ANY))
if(!silent)
- to_chat(user, "You still have eyes.")
+ to_chat(user, span_warning("You still have eyes."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!user.has_earsockets(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Your earsockets need to be unexposed.")
+ to_chat(user, span_warning("Your earsockets need to be unexposed."))
return FALSE
if(extreme)
@@ -276,7 +276,7 @@
if(cli)
if(cli.prefs.extremepref == "No")
if(!silent)
- to_chat(user, "That's way too much for you.")
+ to_chat(user, span_warning("That's way too much for you."))
return FALSE
if(require_ooc_consent)
@@ -292,17 +292,17 @@
return FALSE
if(target_not_tired && !COOLDOWN_FINISHED(target, refractory_period))
if(!silent) //same with this
- to_chat(user, "They're still exhausted from the last time. They need to wait [DisplayTimeText(COOLDOWN_TIMELEFT(target, refractory_period), 1)] until you can do that!")
+ to_chat(user, span_warning("They're still exhausted from the last time. They need to wait [DisplayTimeText(COOLDOWN_TIMELEFT(target, refractory_period), 1)] until you can do that!"))
return FALSE
if(require_target_bottomless && !target.is_bottomless())
if(!silent)
- to_chat(user, "Their pants are in the way.")
+ to_chat(user, span_warning("Their pants are in the way."))
return FALSE
if(require_target_topless && !target.is_topless())
if(!silent)
- to_chat(user, "Their clothes are in the way.")
+ to_chat(user, span_warning("Their clothes are in the way."))
return FALSE
if(require_target_penis)
@@ -310,17 +310,17 @@
if(REQUIRE_EXPOSED)
if(!target.has_penis(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Their penis needs to be exposed.")
+ to_chat(user, span_warning("Their penis needs to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!target.has_penis(REQUIRE_ANY))
if(!silent)
- to_chat(user, "They don't have a penis.")
+ to_chat(user, span_warning("They don't have a penis."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!target.has_penis(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Their penis needs to be unexposed.")
+ to_chat(user, span_warning("Their penis needs to be unexposed."))
return FALSE
if(require_target_balls)
@@ -328,17 +328,17 @@
if(REQUIRE_EXPOSED)
if(!target.has_balls(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Their balls need to be exposed.")
+ to_chat(user, span_warning("Their balls need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!target.has_balls(REQUIRE_ANY))
if(!silent)
- to_chat(user, "They don't have balls.")
+ to_chat(user, span_warning("They don't have balls."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!target.has_balls(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Their balls need to be unexposed.")
+ to_chat(user, span_warning("Their balls need to be unexposed."))
return FALSE
if(require_target_anus)
@@ -346,17 +346,17 @@
if(REQUIRE_EXPOSED)
if(!target.has_anus(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Their anus needs to be exposed.")
+ to_chat(user, span_warning("Their anus needs to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!target.has_anus(REQUIRE_ANY))
if(!silent)
- to_chat(user, "They don't have an anus.")
+ to_chat(user, span_warning("They don't have an anus."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!target.has_anus(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Their anus needs to be unexposed.")
+ to_chat(user, span_warning("Their anus needs to be unexposed."))
return FALSE
if(require_target_vagina)
@@ -364,17 +364,17 @@
if(REQUIRE_EXPOSED)
if(!target.has_vagina(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Their vagina needs to be exposed.")
+ to_chat(user, span_warning("Their vagina needs to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!target.has_vagina(REQUIRE_ANY))
if(!silent)
- to_chat(user, "They don't have a vagina.")
+ to_chat(user, span_warning("They don't have a vagina."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!target.has_vagina(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Their vagina needs to be unexposed.")
+ to_chat(user, span_warning("Their vagina needs to be unexposed."))
return FALSE
if(require_target_breasts)
@@ -382,17 +382,17 @@
if(REQUIRE_EXPOSED)
if(!target.has_breasts(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Their breasts need to be exposed.")
+ to_chat(user, span_warning("Their breasts need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!target.has_breasts(REQUIRE_ANY))
if(!silent)
- to_chat(user, "They don't have breasts.")
+ to_chat(user, span_warning("They don't have breasts."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!target.has_breasts(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Their breasts need to be unexposed.")
+ to_chat(user, span_warning("Their breasts need to be unexposed."))
return FALSE
if(require_target_feet)
@@ -400,22 +400,22 @@
if(REQUIRE_EXPOSED)
if(!target.has_feet(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Their feet need to be exposed.")
+ to_chat(user, span_warning("Their feet need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!target.has_feet(REQUIRE_ANY))
if(!silent)
- to_chat(user, "They don't have enough feet.")
+ to_chat(user, span_warning("They don't have enough feet."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!target.has_feet(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Their feet need to be unexposed.")
+ to_chat(user, span_warning("Their feet need to be unexposed."))
return FALSE
if(require_target_num_feet && (target.get_num_feet() < require_target_num_feet))
if(!silent)
- to_chat(user, "They don't have enough feet.")
+ to_chat(user, span_warning("They don't have enough feet."))
return FALSE
if(require_target_eyes)
@@ -423,17 +423,17 @@
if(REQUIRE_EXPOSED)
if(!target.has_eyes(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Their eyes need to be exposed.")
+ to_chat(user, span_warning("Their eyes need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!target.has_eyes(REQUIRE_ANY))
if(!silent)
- to_chat(user, "They don't have eyes.")
+ to_chat(user, span_warning("They don't have eyes."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!target.has_eyes(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Their eyes need to be unexposed.")
+ to_chat(user, span_warning("Their eyes need to be unexposed."))
return FALSE
if(require_target_eyesockets)
@@ -441,17 +441,17 @@
if(REQUIRE_EXPOSED)
if(!target.has_eyesockets(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Their eyesockets need to be exposed.")
+ to_chat(user, span_warning("Their eyesockets need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!target.has_eyesockets(REQUIRE_ANY))
if(!silent)
- to_chat(user, "They still have eyes.")
+ to_chat(user, span_warning("They still have eyes."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!target.has_eyesockets(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Their eyesockets need to be unexposed.")
+ to_chat(user, span_warning("Their eyesockets need to be unexposed."))
return FALSE
if(require_target_ears)
@@ -459,17 +459,17 @@
if(REQUIRE_EXPOSED)
if(!target.has_ears(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Their ears need to be exposed.")
+ to_chat(user, span_warning("Their ears need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!target.has_ears(REQUIRE_ANY))
if(!silent)
- to_chat(user, "They don't have ears.")
+ to_chat(user, span_warning("They don't have ears."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!target.has_ears(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Their ears need to be unexposed.")
+ to_chat(user, span_warning("Their ears need to be unexposed."))
return FALSE
if(require_target_earsockets)
@@ -477,17 +477,17 @@
if(REQUIRE_EXPOSED)
if(!target.has_earsockets(REQUIRE_EXPOSED))
if(!silent)
- to_chat(user, "Their earsockets need to be exposed.")
+ to_chat(user, span_warning("Their earsockets need to be exposed."))
return FALSE
if(REQUIRE_ANY)
if(!target.has_earsockets(REQUIRE_ANY))
if(!silent)
- to_chat(user, "They still have eyes.")
+ to_chat(user, span_warning("They still have eyes."))
return FALSE
if(REQUIRE_UNEXPOSED)
if(!target.has_earsockets(REQUIRE_UNEXPOSED))
if(!silent)
- to_chat(user, "Their earsockets need to be unexposed.")
+ to_chat(user, span_warning("Their earsockets need to be unexposed."))
return FALSE
if(extreme)
@@ -495,7 +495,7 @@
if(cli)
if(target.client.prefs.extremepref == "No")
if(!silent)
- to_chat(user, "For some reason, you don't want to do this to [target].")
+ to_chat(user, span_warning("For some reason, you don't want to do this to [target]."))
return FALSE
if(require_ooc_consent)
diff --git a/modular_sand/code/datums/interactions/lewd_objects.dm b/modular_sand/code/datums/interactions/lewd_objects.dm
index e90b76abc7..c2bb19045a 100644
--- a/modular_sand/code/datums/interactions/lewd_objects.dm
+++ b/modular_sand/code/datums/interactions/lewd_objects.dm
@@ -22,7 +22,7 @@
if(M.has_mouth() && !M.is_mouth_covered())
message = (user == M) ? pick("fucks [possessive_verb] own mouth with \the [src]", "shoves \the [src] into [possessive_verb] mouth", "jams \the [src] into [possessive_verb] mouth") : pick("fucks [M]'s mouth with \the [src]", "jams \the [src] into [M]'s mouth")
if(message)
- user.visible_message("[user] [message].")
+ user.visible_message(span_lewd("[user] [message]."))
M.handle_post_sex(lust_amt, null, user)
playsound(loc, pick('modular_sand/sound/interactions/bang4.ogg',
'modular_sand/sound/interactions/bang5.ogg',
@@ -32,7 +32,7 @@
/obj/item/dildo/attack_self(mob/living/carbon/human/user as mob)
hole = hole == CUM_TARGET_VAGINA ? CUM_TARGET_ANUS : CUM_TARGET_VAGINA
- to_chat(user, "Now targetting \the [hole].")
+ to_chat(user, span_notice("Now targetting \the [hole]."))
//begin redds code
/obj/item/dildo/cyborg
diff --git a/modular_sand/code/datums/traits/negative.dm b/modular_sand/code/datums/traits/negative.dm
index 68a127d961..f5133d3ca1 100644
--- a/modular_sand/code/datums/traits/negative.dm
+++ b/modular_sand/code/datums/traits/negative.dm
@@ -3,8 +3,8 @@
desc = "You never learned galactic common."
value = 0
mob_trait = TRAIT_SHELTERED
- gain_text = "You do not understand galactic common."
- lose_text = "You start to put together what people are saying in galactic common."
+ gain_text = span_danger("You do not understand galactic common.")
+ lose_text = span_notice("You start to put together what people are saying in galactic common.")
medical_record_text = "Patient looks perplexed when questioned in galactic common."
/datum/quirk/sheltered/on_spawn()
diff --git a/modular_sand/code/datums/traits/neutral.dm b/modular_sand/code/datums/traits/neutral.dm
index bd161be5f4..9e7e08fdba 100644
--- a/modular_sand/code/datums/traits/neutral.dm
+++ b/modular_sand/code/datums/traits/neutral.dm
@@ -18,6 +18,6 @@
value = 0
human_only = TRUE
mob_trait = TRAIT_INFERTILE
- gain_text = "Your womb starts feeling dry and empty, all the life in it begins to fade away..."
- lose_text = "You feel the warm blow of life flooding your womb, full of newfound, vibrant fertility!"
+ gain_text = span_notice("Your womb starts feeling dry and empty, all the life in it begins to fade away...")
+ lose_text = span_love("You feel the warm blow of life flooding your womb, full of newfound, vibrant fertility!")
medical_record_text = "Patient doesn't seem able to ovulate properly..."
diff --git a/modular_sand/code/game/machinery/autodoc.dm b/modular_sand/code/game/machinery/autodoc.dm
index 5d8fa2429e..fcd00555c4 100644
--- a/modular_sand/code/game/machinery/autodoc.dm
+++ b/modular_sand/code/game/machinery/autodoc.dm
@@ -26,11 +26,11 @@
/obj/machinery/autodoc/examine(mob/user)
. = ..()
if((obj_flags & EMAGGED) && panel_open)
- . += "[src]'s surgery protocols have been corrupted!"
+ . += span_warning("[src]'s surgery protocols have been corrupted!")
if(processing)
- . += "[src] is currently inserting [storedorgan] into [occupant]."
+ . += span_notice("[src] is currently inserting [storedorgan] into [occupant].")
else if(storedorgan)
- . += "[src] is prepared to insert [storedorgan]."
+ . += span_notice("[src] is prepared to insert [storedorgan].")
/obj/machinery/autodoc/close_machine(mob/user)
..()
@@ -40,16 +40,16 @@
occupant.forceMove(drop_location())
occupant = null
return
- to_chat(occupant, "You enter [src].")
+ to_chat(occupant, span_notice("You enter [src]."))
dosurgery()
/obj/machinery/autodoc/proc/dosurgery()
if(!storedorgan && !(obj_flags & EMAGGED))
- to_chat(occupant, "[src] currently has no implant stored.")
+ to_chat(occupant, span_notice("[src] currently has no implant stored."))
return
- occupant.visible_message("[occupant] presses a button on [src], and you hear a mechanical noise.", "You feel a sharp sting as [src] starts inserting the organ into your body.")
+ occupant.visible_message(span_notice("[occupant] presses a button on [src], and you hear a mechanical noise."), span_notice("You feel a sharp sting as [src] starts inserting the organ into your body."))
playsound(get_turf(occupant), 'sound/weapons/circsawhit.ogg', 50, 1)
processing = TRUE
update_icon()
@@ -66,7 +66,7 @@
if(!processing)
return
- occupant.visible_message("[src] dismembers [occupant]!", "[src] saws up your body!")
+ occupant.visible_message(span_warning("[src] dismembers [occupant]!"), span_warning("[src] saws up your body!"))
else
sleep(surgerytime)
@@ -78,14 +78,14 @@
currentorgan.forceMove(get_turf(src))
storedorgan.Insert(occupant)//insert stored organ into the user
storedorgan = null
- occupant.visible_message("[src] completes the surgery procedure.", "[src] inserts the organ into your body.")
+ occupant.visible_message(span_notice("[src] completes the surgery procedure."), span_notice("[src] inserts the organ into your body."))
playsound(src, 'sound/machines/microwave/microwave-end.ogg', 100, 0)
processing = FALSE
open_machine()
/obj/machinery/autodoc/open_machine(mob/user)
if(processing)
- occupant.visible_message("[user] cancels [src]'s procedure.", "[src] stops inserting the organ into your body.")
+ occupant.visible_message(span_notice("[user] cancels [src]'s procedure."), span_notice("[src] stops inserting the organ into your body."))
processing = FALSE
if(occupant)
occupant.forceMove(drop_location())
@@ -94,7 +94,7 @@
/obj/machinery/autodoc/interact(mob/user)
if(panel_open)
- to_chat(user, "Close the maintenance panel first.")
+ to_chat(user, span_notice("Close the maintenance panel first."))
return
if(state_open)
@@ -106,13 +106,13 @@
/obj/machinery/autodoc/attackby(obj/item/I, mob/user, params)
if(istype(I, organ_type))
if(storedorgan)
- to_chat(user, "[src] already has an implant stored.")
+ to_chat(user, span_notice("[src] already has an implant stored."))
return
if(!user.transferItemToLoc(I, src))
return
storedorgan = I
I.forceMove(src)
- to_chat(user, "You insert the [I] into [src].")
+ to_chat(user, span_notice("You insert the [I] into [src]."))
else
return ..()
@@ -121,10 +121,10 @@
if(..())
return
if(occupant)
- to_chat(user, "[src] is currently occupied!")
+ to_chat(user, span_warning("[src] is currently occupied!"))
return
if(state_open)
- to_chat(user, "[src] must be closed to [panel_open ? "close" : "open"] its maintenance hatch!")
+ to_chat(user, span_warning("[src] must be closed to [panel_open ? "close" : "open"] its maintenance hatch!"))
return
if(default_deconstruction_screwdriver(user, icon_state, icon_state, I))
if(storedorgan)
@@ -164,4 +164,4 @@
if(obj_flags & EMAGGED)
return
obj_flags |= EMAGGED
- to_chat(user, "You reprogram [src]'s surgery procedures.")
+ to_chat(user, span_warning("You reprogram [src]'s surgery procedures."))
diff --git a/modular_sand/code/game/machinery/cryptominers.dm b/modular_sand/code/game/machinery/cryptominers.dm
index a3c6eccac9..33f87a8e9f 100644
--- a/modular_sand/code/game/machinery/cryptominers.dm
+++ b/modular_sand/code/game/machinery/cryptominers.dm
@@ -52,19 +52,19 @@
if(id_card)
var/obj/item/card/id/CARD = id_card
if(CARD.bank_support != ID_FREE_BANK_ACCOUNT)
- to_chat(user, "This ID has no banking support whatsover, must be an older model...")
+ to_chat(user, span_warning("This ID has no banking support whatsover, must be an older model..."))
return
if(!CARD.registered_account)
- to_chat(user, "ERROR: No bank account found.")
+ to_chat(user, span_warning("ERROR: No bank account found."))
return
- to_chat(user, "You link \the [CARD] to \the [src].")
+ to_chat(user, span_notice("You link \the [CARD] to \the [src]."))
pay_me = CARD.registered_account
- say("Now using [pay_me.account_holder ? "[pay_me.account_holder]'s" : "ERROR"] account.")
+ say("Now using [pay_me.account_holder ? "[pay_me.account_holder]'s" : span_boldwarning("ERROR")] account.")
return
/obj/machinery/cryptominer/AltClick(mob/user)
- user.visible_message("[user] begins resetting \the [src].",
- "You begin resetting \the [src].")
+ user.visible_message(span_warning("[user] begins resetting \the [src]."),
+ span_warning("You begin resetting \the [src]."))
balloon_alert(user, "resetting")
if(do_after(user, 5 SECONDS, target = src))
pay_me = SSeconomy.get_dep_account(ACCOUNT_CAR)
@@ -73,7 +73,7 @@
/obj/machinery/cryptominer/examine(mob/user)
. = ..()
if(in_range(user, src) || isobserver(user))
- . += "A little screen on the machine reads: Currently the linked bank account is [pay_me.account_holder ? "[pay_me.account_holder]'s" : "ERROR"]."
+ . += span_notice("A little screen on the machine reads: Currently the linked bank account is [pay_me.account_holder ? "[pay_me.account_holder]'s" : span_boldwarning("ERROR")].")
. += "Modify the destination of the credits using your id on it while it is inactive and has it's panel open."
. += "Alt-Click to reset to the Cargo budget."
@@ -101,17 +101,17 @@
var/datum/gas_mixture/env = T.return_air()
if(!env)
return
-
+
// Get temp
var/env_temp = env.return_temperature()
-
+
// Check for temperature effects
// Minimum (most likely)
if(env_temp <= mintemp)
produce_points(3)
// Mid
else if((env_temp <= midtemp) && (env_temp >= mintemp))
- produce_points(1)
+ produce_points(1)
// Maximum
else if((env_temp <= maxtemp) && (env_temp >= midtemp))
produce_points(0.20)
@@ -120,7 +120,7 @@
say("Critical overheating detected! Shutting off!")
playsound(loc, 'sound/machines/beep.ogg', 50, TRUE, -1)
set_mining(FALSE)
-
+
// Increase heat by heatingPower
env.set_temperature(env_temp + heatingPower)
@@ -135,13 +135,13 @@
/obj/machinery/cryptominer/attack_hand(mob/living/user)
. = ..()
if(!is_operational())
- to_chat(user, "[src] has to be on to do this!")
+ to_chat(user, span_warning("[src] has to be on to do this!"))
balloon_alert(user, "no power!")
return FALSE
if(mining)
set_mining(FALSE)
- visible_message("[src] slowly comes to a halt.",
- "You turn off [src].")
+ visible_message(span_warning("[src] slowly comes to a halt."),
+ span_warning("You turn off [src]."))
balloon_alert(user, "turned off")
return
balloon_alert(user, "turned on")
diff --git a/modular_sand/code/game/mecha/mecha_construction_paths.dm b/modular_sand/code/game/mecha/mecha_construction_paths.dm
index 4459823bc0..5b55ec5221 100644
--- a/modular_sand/code/game/mecha/mecha_construction_paths.dm
+++ b/modular_sand/code/game/mecha/mecha_construction_paths.dm
@@ -102,45 +102,45 @@
switch(index)
if(1)
- user.visible_message("[user] wrenches [parent]'s parts.", "You wrench [parent]'s parts.")
+ user.visible_message("[user] wrenches [parent]'s parts.", span_notice("You wrench [parent]'s parts."))
if(2)
if(diff==FORWARD)
- user.visible_message("[user] welds [parent]'s parts.", "You weld [parent]'s parts")
+ user.visible_message("[user] welds [parent]'s parts.", span_notice("You weld [parent]'s parts"))
else
- user.visible_message("[user] unwrenches [parent]'s parts.", "You unwrench [parent]'s parts.")
+ user.visible_message("[user] unwrenches [parent]'s parts.", span_notice("You unwrench [parent]'s parts."))
if(3)
if(diff==FORWARD)
- user.visible_message("[user] slots bluespace crystals onto [parent].", "You slot the bluespace crystals onto [parent].")
+ user.visible_message("[user] slots bluespace crystals onto [parent].", span_notice("You slot the bluespace crystals onto [parent]."))
else
- user.visible_message("[user] unwelds [parent]'s parts.", "You unweld [parent]'s parts.")
+ user.visible_message("[user] unwelds [parent]'s parts.", span_notice("You unweld [parent]'s parts."))
if(4)
if(diff==FORWARD)
- user.visible_message("[user] secures the [parent]'s bluespace crystal slots.", "You secure the [parent]'s bluespace crystal slots")
+ user.visible_message("[user] secures the [parent]'s bluespace crystal slots.", span_notice("You secure the [parent]'s bluespace crystal slots"))
else
- user.visible_message("[user] removes the bluespace crystals from [parent].", "You remove [parent]'s bluespace crystals.")
+ user.visible_message("[user] removes the bluespace crystals from [parent].", span_notice("You remove [parent]'s bluespace crystals."))
if(5)
if(diff==FORWARD)
- user.visible_message("[user] slots the capacitor onto [parent].", "You slot the capacitor onto [parent].")
+ user.visible_message("[user] slots the capacitor onto [parent].", span_notice("You slot the capacitor onto [parent]."))
else
- user.visible_message("[user] unsecures the bluespace crystal slots from [parent].", "You unsecure [parent]'s bluespace crystal slots.")
+ user.visible_message("[user] unsecures the bluespace crystal slots from [parent].", span_notice("You unsecure [parent]'s bluespace crystal slots."))
if(6)
if(diff==FORWARD)
- user.visible_message("[user] secures [parent]'s capacitor.", "You secure [parent]'s capacitor.")
+ user.visible_message("[user] secures [parent]'s capacitor.", span_notice("You secure [parent]'s capacitor."))
else
- user.visible_message("[user] removes the [parent]'s capacitor.", "You remove the [parent]'s capacitor.")
+ user.visible_message("[user] removes the [parent]'s capacitor.", span_notice("You remove the [parent]'s capacitor."))
if(7)
if(diff==FORWARD)
- user.visible_message("[user] wires the [parent].", "You wire the [parent].")
+ user.visible_message("[user] wires the [parent].", span_notice("You wire the [parent]."))
else
- user.visible_message("[user] unsecures [parent]'s capacitor.", "You unsecure [parent]'s capacitor.")
+ user.visible_message("[user] unsecures [parent]'s capacitor.", span_notice("You unsecure [parent]'s capacitor."))
if(8)
if(diff==FORWARD)
- user.visible_message("[user] links [parent]'s wires to the limbs.", "You link [parent]'s wires to the limbs.")
+ user.visible_message("[user] links [parent]'s wires to the limbs.", span_notice("You link [parent]'s wires to the limbs."))
else
- user.visible_message("[user] snips off [parent]'s wires.", "You snip off [parent]'s wires.")
+ user.visible_message("[user] snips off [parent]'s wires.", span_notice("You snip off [parent]'s wires."))
if(9)
if(diff==FORWARD)
- user.visible_message("[user] welds [parent]'s external armor layer.", "You weld [parent]'s external armor layer.")
+ user.visible_message("[user] welds [parent]'s external armor layer.", span_notice("You weld [parent]'s external armor layer."))
else
- user.visible_message("[user] unlinks [parent]'s wires from the limbs.", "You unlink [parent]'s wires from the limbs.")
+ user.visible_message("[user] unlinks [parent]'s wires from the limbs.", span_notice("You unlink [parent]'s wires from the limbs."))
return TRUE
diff --git a/modular_sand/code/game/objects/items/borg_shapeshifter.dm b/modular_sand/code/game/objects/items/borg_shapeshifter.dm
index 64878711b6..0216524d69 100644
--- a/modular_sand/code/game/objects/items/borg_shapeshifter.dm
+++ b/modular_sand/code/game/objects/items/borg_shapeshifter.dm
@@ -111,18 +111,18 @@
if(isturf(user.loc))
toggle(user)
else
- to_chat(user, "You can't use [src] while inside something!")
+ to_chat(user, span_warning("You can't use [src] while inside something!"))
else
- to_chat(user, "You need at least [activationCost] charge in your cell to use [src]!")
+ to_chat(user, span_warning("You need at least [activationCost] charge in your cell to use [src]!"))
/obj/item/borg_shapeshifter/proc/toggle(mob/living/silicon/robot/user)
if(active)
playsound(src, 'sound/effects/pop.ogg', 100, TRUE, -6)
- to_chat(user, "You deactivate \the [src].")
+ to_chat(user, span_notice("You deactivate \the [src]."))
deactivate(user)
else
if(animation_playing)
- to_chat(user, "\the [src] is recharging.")
+ to_chat(user, span_notice("\the [src] is recharging."))
return
var/mob/living/silicon/robot/R = loc
var/static/list/module_icons = sortList(list(
@@ -574,7 +574,7 @@
return FALSE
animation_playing = TRUE
- to_chat(user, "You activate \the [src].")
+ to_chat(user, span_notice("You activate \the [src]."))
playsound(src, 'sound/effects/seedling_chargeup.ogg', 100, TRUE, -6)
var/start = user.filters.len
var/X,Y,rsq,i,f
@@ -591,10 +591,10 @@
animate(offset=f:offset-1, time=rand()*20+10)
if (do_after(user, 50, target=user) && user.cell.use(activationCost))
playsound(src, 'sound/effects/bamf.ogg', 100, TRUE, -6)
- to_chat(user, "You are now disguised as the Nanotrasen cyborg \"[friendlyName]\".")
+ to_chat(user, span_notice("You are now disguised as the Nanotrasen cyborg \"[friendlyName]\"."))
activate(user, module_selection)
else
- to_chat(user, "The chameleon field fizzles.")
+ to_chat(user, span_warning("The chameleon field fizzles."))
do_sparks(3, FALSE, user)
for(i=1, i<=min(7, user.filters.len), ++i) // removing filters that are animating does nothing, we gotta stop the animations first
f = user.filters[start+i]
@@ -656,7 +656,7 @@
/obj/item/borg_shapeshifter/proc/disrupt(mob/living/silicon/robot/user)
if(active)
- to_chat(user, "Your chameleon field deactivates.")
+ to_chat(user, span_danger("Your chameleon field deactivates."))
deactivate(user)
/obj/item/borg_shapeshifter/stable
diff --git a/modular_sand/code/game/objects/items/chrono_eraser.dm b/modular_sand/code/game/objects/items/chrono_eraser.dm
index d3f803e38f..a168920e1d 100644
--- a/modular_sand/code/game/objects/items/chrono_eraser.dm
+++ b/modular_sand/code/game/objects/items/chrono_eraser.dm
@@ -86,7 +86,7 @@
var/mob/living/user = loc
if(F.gun)
if(isliving(user) && F.captured)
- to_chat(user, "FAIL: [F.captured] already has an existing connection.")
+ to_chat(user, span_alert("FAIL: [F.captured] already has an existing connection."))
field_disconnect(F)
else
startpos = get_turf(src)
@@ -94,7 +94,7 @@
F.gun = src
if(isliving(user) && F.captured)
playsound(user,'sound/effects/clock_tick.ogg' , 50, 1)
- to_chat(user, "Connection established with target: [F.captured]")
+ to_chat(user, span_notice("Connection established with target: [F.captured]"))
/obj/item/gun/energy/chrono_gun/proc/field_disconnect(obj/structure/chrono_field/F)
@@ -104,7 +104,7 @@
F.gun = null
if(isliving(user) && F.captured)
F.captured.adjustOrganLoss(ORGAN_SLOT_BRAIN, 199, 199) //not so fast!
- to_chat(user, "Disconnected from target: [F.captured]")
+ to_chat(user, span_alert("Disconnected from target: [F.captured]"))
field = null
startpos = null
@@ -215,9 +215,9 @@
AM.forceMove(drop_location())
qdel(src)
else if(tickstokill <= 0)
- to_chat(captured, "As the last essence of your being is erased from time, you are taken back to your most enjoyable memory. You feel happy...")
+ to_chat(captured, span_boldnotice("As the last essence of your being is erased from time, you are taken back to your most enjoyable memory. You feel happy..."))
playsound(captured,'sound/effects/lingreadapt.ogg' , 50, 1)
- captured.visible_message("[captured] dematerialises out of the timestream!")
+ captured.visible_message(span_danger("[captured] dematerialises out of the timestream!"))
var/mob/dead/observer/ghost = captured.ghostize(1)
if(captured.mind)
if(ghost)
diff --git a/modular_sand/code/game/objects/items/computermath.dm b/modular_sand/code/game/objects/items/computermath.dm
index 19a3e17512..2188f05ff9 100644
--- a/modular_sand/code/game/objects/items/computermath.dm
+++ b/modular_sand/code/game/objects/items/computermath.dm
@@ -240,7 +240,7 @@
// me fail arithmetic, me brian hurt
playsound(src, 'sound/machines/buzz-sigh.ogg', 30, 1)
if(difficulty == "Easy") // me fail arithmetic, me brian hurt //nice one, brain damage for it, very cool.
- to_chat(user,"You feel sad after failing such an easy question...")
+ to_chat(user,span_warning("You feel sad after failing such an easy question..."))
SEND_SIGNAL(LM, COMSIG_ADD_MOOD_EVENT, "failed_easy", /datum/mood_event/failed_easy)
return
diff --git a/modular_sand/code/game/objects/items/cosmetics.dm b/modular_sand/code/game/objects/items/cosmetics.dm
index b43112c55c..10db30229e 100644
--- a/modular_sand/code/game/objects/items/cosmetics.dm
+++ b/modular_sand/code/game/objects/items/cosmetics.dm
@@ -4,7 +4,7 @@
/obj/item/razor/proc/new_hairstyle(mob/living/carbon/human/H, mob/user, mirror)
var/location = user.zone_selected
if (H == user && !mirror)
- to_chat(user, "You need a mirror to properly style your own hair!")
+ to_chat(user, span_warning("You need a mirror to properly style your own hair!"))
balloon_alert(user, "need mirror!")
return
if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
@@ -13,12 +13,12 @@
if(!new_style)
return
if(!get_location_accessible(H, location))
- to_chat(user, "The headgear is in the way!")
+ to_chat(user, span_warning("The headgear is in the way!"))
balloon_alert(user, "headgear in the way!")
return
- user.visible_message("[user] tries to change [H]'s hairstyle using [src].", "You try to change [H]'s hairstyle using [src].")
+ user.visible_message(span_notice("[user] tries to change [H]'s hairstyle using [src]."), span_notice("You try to change [H]'s hairstyle using [src]."))
if(new_style && do_after(user, 60, target = H))
- user.visible_message("[user] successfully changes [H]'s hairstyle using [src].", "You successfully change [H]'s hairstyle using [src].")
+ user.visible_message(span_notice("[user] successfully changes [H]'s hairstyle using [src]."), span_notice("You successfully change [H]'s hairstyle using [src]."))
H.balloon_alert(user, "changed hairstyle")
H.hair_style = new_style
H.update_hair()
@@ -26,7 +26,7 @@
/obj/item/razor/proc/new_facial_hairstyle(mob/living/carbon/human/H, mob/user, var/mirror)
var/location = user.zone_selected
if(H == user && !mirror)
- to_chat(user, "You need a mirror to properly style your own facial hair!")
+ to_chat(user, span_warning("You need a mirror to properly style your own facial hair!"))
balloon_alert(user, "need mirror!")
return
if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
@@ -35,12 +35,12 @@
if(!new_style)
return
if(!get_location_accessible(H, location))
- to_chat(user, "The mask is in the way!")
+ to_chat(user, span_warning("The mask is in the way!"))
balloon_alert(user, "mask in the way!")
return
- user.visible_message("[user] tries to change [H]'s facial hair style using [src].", "You try to change [H]'s facial hair style using [src].")
+ user.visible_message(span_notice("[user] tries to change [H]'s facial hair style using [src]."), span_notice("You try to change [H]'s facial hair style using [src]."))
if(new_style && do_after(user, 60, target = H))
- user.visible_message("[user] successfully changes [H]'s facial hair style using [src].", "You successfully change [H]'s facial hair style using [src].")
+ user.visible_message(span_notice("[user] successfully changes [H]'s facial hair style using [src]."), span_notice("You successfully change [H]'s facial hair style using [src]."))
H.balloon_alert(user, "changed facial hair style")
H.facial_hair_style = new_style
H.update_hair()
@@ -64,7 +64,7 @@
var/extended_icon_state = "straightrazor_open"
/obj/item/razor/straightrazor/suicide_act(mob/user)
- user.visible_message("[user] is slitting [user.p_their()] own throat with [src]! It looks like [user.p_theyre()] trying to commit suicide!")
+ user.visible_message(span_suicide("[user] is slitting [user.p_their()] own throat with [src]! It looks like [user.p_theyre()] trying to commit suicide!"))
return (BRUTELOSS)
/obj/item/razor/straightrazor/attack_self(mob/user)
@@ -102,6 +102,6 @@
/obj/item/handmirror/attack_self(mob/user)
ADD_TRAIT(user, TRAIT_SELF_AWARE, "mirror_trait")
- to_chat(user, "You look into the mirror")
+ to_chat(user, span_notice("You look into the mirror"))
sleep(15 SECONDS)
REMOVE_TRAIT(user, TRAIT_SELF_AWARE, "mirror_trait")
diff --git a/modular_sand/code/game/objects/items/devices/dogborg_sleeper.dm b/modular_sand/code/game/objects/items/devices/dogborg_sleeper.dm
index 00f94fa31e..c0dbc0d4a4 100644
--- a/modular_sand/code/game/objects/items/devices/dogborg_sleeper.dm
+++ b/modular_sand/code/game/objects/items/devices/dogborg_sleeper.dm
@@ -25,20 +25,20 @@
if(!hound || !istype(target) || !proximity || target.anchored)
return
if(length(contents) > (max_item_count - 1))
- to_chat(user,"Your [src] is full. Eject or process contents to continue.")
+ to_chat(user,span_warning("Your [src] is full. Eject or process contents to continue."))
return
if(isitem(target))
var/obj/item/I = target
if(CheckAccepted(I))
- to_chat(user,"[I] registers an error code to your [src]")
+ to_chat(user,span_warning("[I] registers an error code to your [src]"))
return
if(I.w_class > WEIGHT_CLASS_NORMAL)
- to_chat(user,"[I] is too large to fit into your [src]")
+ to_chat(user,span_warning("[I] is too large to fit into your [src]"))
return
- user.visible_message("[hound.name] is ingesting [I] into their [src.name].", "You start ingesting [target] into your [src.name]...")
+ user.visible_message(span_warning("[hound.name] is ingesting [I] into their [src.name]."), span_notice("You start ingesting [target] into your [src.name]..."))
if(do_after(user, 15, target = target) && length(contents) < max_item_count)
I.forceMove(src)
- I.visible_message("[hound.name]'s garbage processor groans lightly as [I] slips inside.", "Your garbage compactor groans lightly as [I] slips inside.")
+ I.visible_message(span_warning("[hound.name]'s garbage processor groans lightly as [I] slips inside."), span_notice("Your garbage compactor groans lightly as [I] slips inside."))
playsound(hound, 'sound/machines/disposalflush.ogg', 50, 1)
if(length(contents) > 11) //grow that tum after a certain junk amount
hound.sleeper_r = 1
@@ -51,18 +51,18 @@
if(iscarbon(target) || issilicon(target))
var/mob/living/trashman = target
if(!CHECK_BITFIELD(trashman.vore_flags,DEVOURABLE))
- to_chat(user, "[target] registers an error code to your [src]")
+ to_chat(user, span_warning("[target] registers an error code to your [src]"))
return
if(patient)
- to_chat(user,"Your [src] is already occupied.")
+ to_chat(user,span_warning("Your [src] is already occupied."))
return
if(trashman.buckled)
- to_chat(user,"[trashman] is buckled and can not be put into your [src].")
+ to_chat(user,span_warning("[trashman] is buckled and can not be put into your [src]."))
return
- user.visible_message("[hound.name] is ingesting [trashman] into their [src].", "You start ingesting [trashman] into your [src.name]...")
+ user.visible_message(span_warning("[hound.name] is ingesting [trashman] into their [src]."), span_notice("You start ingesting [trashman] into your [src.name]..."))
if(do_after(user, 30, target = trashman) && !patient && !trashman.buckled && length(contents) < max_item_count)
trashman.forceMove(src)
trashman.reset_perspective(src)
update_gut(user)
- user.visible_message("[hound.name]'s garbage processor groans lightly as [trashman] slips inside.", "Your garbage compactor groans lightly as [trashman] slips inside.")
+ user.visible_message(span_warning("[hound.name]'s garbage processor groans lightly as [trashman] slips inside."), span_notice("Your garbage compactor groans lightly as [trashman] slips inside."))
playsound(hound, 'sound/effects/bin_close.ogg', 80, 1)
diff --git a/modular_sand/code/game/objects/items/devices/extra_arm.dm b/modular_sand/code/game/objects/items/devices/extra_arm.dm
index 55a40eb163..35949fc463 100644
--- a/modular_sand/code/game/objects/items/devices/extra_arm.dm
+++ b/modular_sand/code/game/objects/items/devices/extra_arm.dm
@@ -11,8 +11,8 @@
M.change_number_of_hands(limbs+1)
used = TRUE
icon_state = "extra_arm_none"
- M.visible_message("[M] presses a button on [src], and you hear a disgusting noise.", "You feel a sharp sting as [src] plunges into your body.")
+ M.visible_message(span_notice("[M] presses a button on [src], and you hear a disgusting noise."), span_notice("You feel a sharp sting as [src] plunges into your body."))
M.balloon_alert(M, "arm implanted")
- to_chat(M, "You feel more dexterous.")
+ to_chat(M, span_notice("You feel more dexterous."))
playsound(get_turf(M), 'sound/misc/splort.ogg', 50, 1)
desc += "Looks like it's been used up."
diff --git a/modular_sand/code/game/objects/items/fleshlight.dm b/modular_sand/code/game/objects/items/fleshlight.dm
index 4850667649..80bf2bca06 100644
--- a/modular_sand/code/game/objects/items/fleshlight.dm
+++ b/modular_sand/code/game/objects/items/fleshlight.dm
@@ -20,7 +20,7 @@
/obj/item/fleshlight/examine(mob/user)
. = ..()
- . += "Alt-Click \the [name] to customize it."
+ . += span_notice("Alt-Click \the [name] to customize it.")
/obj/item/fleshlight/update_appearance(updates)
. = ..()
@@ -60,7 +60,7 @@
message = (user == M) ? pick("pumps [src] on [possessive_verb] penis") : pick("pumps \the [src] on [M]'s penis")
lust_amt = NORMAL_LUST
if(message)
- user.visible_message("[user] [message].")
+ user.visible_message(span_lewd("[user] [message]."))
M.handle_post_sex(lust_amt, null, user)
playlewdinteractionsound(loc, pick('modular_sand/sound/interactions/bang4.ogg',
'modular_sand/sound/interactions/bang5.ogg',
@@ -92,9 +92,9 @@
/obj/item/portallight/examine(mob/user)
. = ..()
if(!portalunderwear)
- . += "The device is unpaired, to pair, swipe against a pair of portal panties."
+ . += span_notice("The device is unpaired, to pair, swipe against a pair of portal panties.")
else
- . += "The device is paired, and awaiting input. "
+ . += span_notice("The device is paired, and awaiting input. ")
/obj/item/portallight/update_appearance(updates)
. = ..()
@@ -142,17 +142,17 @@
arouse_only_target = TRUE
target = "hand"
if(!useable)
- to_chat(user, "It seems the device has failed or your partner is not wearing their device.")
+ to_chat(user, span_notice("It seems the device has failed or your partner is not wearing their device."))
if(message)
var/mob/living/carbon/human/portal_target = ishuman(portalunderwear.loc) && portalunderwear.current_equipped_slot == ITEM_SLOT_UNDERWEAR ? portalunderwear.loc : null
if(portalunderwear.targetting == "vagina")
V = portal_target.getorganslot(ORGAN_SLOT_VAGINA)
if(portal_target && (portal_target?.client?.prefs.toggles & VERB_CONSENT || !portal_target.ckey))
- user.visible_message("[user] [message].")
+ user.visible_message(span_lewd("[user] [message]."))
if(!arouse_only_target)
if(M.handle_post_sex(lust_amt, null, null))
if(P)
- to_chat(portal_target, "You feel a [P.shape] penis of [P.length] inches go deep into your [portalunderwear.targetting] and cum!")
+ to_chat(portal_target, span_userlove("You feel a [P.shape] penis of [P.length] inches go deep into your [portalunderwear.targetting] and cum!"))
switch(user.zone_selected)
if(BODY_ZONE_PRECISE_GROIN)
playlewdinteractionsound(loc, pick('modular_sand/sound/interactions/bang4.ogg',
@@ -169,16 +169,16 @@
if(M != user)
message = replacetext(message, "[M]", "someone")
message = replacetext(message, "[src]", "your [targeted]")
- to_chat(portal_target, "You feel something on your panties, it [message][P ? ", it is a [P.shape] penis of [P.length] inches" : ""].")
+ to_chat(portal_target, span_lewd("You feel something on your panties, it [message][P ? ", it is a [P.shape] penis of [P.length] inches" : ""]."))
if(portal_target.handle_post_sex(lust_amt, null, null))
switch(portalunderwear.targetting)
if("vagina")
- to_chat(M, "You feel \the [V] squirt over your [target]!")
+ to_chat(M, span_userlove("You feel \the [V] squirt over your [target]!"))
if("anus")
- to_chat(M, "You feel the anus constrict on your [target]!")
+ to_chat(M, span_userlove("You feel the anus constrict on your [target]!"))
portal_target.do_jitter_animation() //make your partner shake too!
else
- user.visible_message("\The [src] beeps and does not let [M] through.")
+ user.visible_message(span_warning("\The [src] beeps and does not let [M] through."))
else if(user.a_intent == INTENT_HARM)
return ..()
@@ -232,7 +232,7 @@
if(isliving(portalunderwear.loc))
portalunderwear.audible_message("[icon2html(portalunderwear, hearers(portalunderwear))] *beep* *beep* *beep*")
playsound(portalunderwear, 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE)
- to_chat(portalunderwear.loc, "The panties beep as the link to the [src] is lost.")
+ to_chat(portalunderwear.loc, span_notice("The panties beep as the link to the [src] is lost."))
. = ..()
/**
@@ -254,14 +254,14 @@
/obj/item/clothing/underwear/briefs/panties/portalpanties/attack_self(mob/user)
. = ..()
targetting = targetting == "anus" ? "vagina" : "anus"
- to_chat(user, "Now when worn the portal will now be facing \an [targetting].")
+ to_chat(user, span_notice("Now when worn the portal will now be facing \an [targetting]."))
/obj/item/clothing/underwear/briefs/panties/portalpanties/examine(mob/user)
. = ..()
if(!portallight)
- . += "The device is unpaired, to pair, swipe the fleshlight against this pair of portal panties(TM). "
+ . += span_notice("The device is unpaired, to pair, swipe the fleshlight against this pair of portal panties(TM). ")
else
- . += "The device is paired, and awaiting attachment. "
+ . += span_notice("The device is paired, and awaiting attachment. ")
/obj/item/clothing/underwear/briefs/panties/portalpanties/attackby(obj/item/I, mob/living/user) //pairing
if(istype(I, /obj/item/portallight))
@@ -271,9 +271,9 @@
P.portalunderwear = src //pair the panties on the fleshlight.
P.icon_state = "paired" //we are paired!
playsound(src, 'sound/machines/ping.ogg', 50, FALSE)
- to_chat(user, "[P] has been linked up successfully.")
+ to_chat(user, span_notice("[P] has been linked up successfully."))
else
- to_chat(user, "[P] has already been linked to another pair of underwear.")
+ to_chat(user, span_notice("[P] has already been linked to another pair of underwear."))
else
..() //just allows people to hit it with other objects, if they so wished.
@@ -285,11 +285,11 @@
switch(targetting)
if("vagina")
if(!human.has_vagina(REQUIRE_EXPOSED))
- to_chat(human, "The vagina is covered or there is none!")
+ to_chat(human, span_warning("The vagina is covered or there is none!"))
return FALSE
if("anus")
if(!human.has_anus(REQUIRE_EXPOSED))
- to_chat(human, "The anus is covered or there is none!")
+ to_chat(human, span_warning("The anus is covered or there is none!"))
return FALSE
return TRUE
@@ -300,7 +300,7 @@
if(!portallight)
audible_message("[icon2html(src, hearers(src))] *beep* *beep* *beep*")
playsound(src, 'sound/machines/triple_beep.ogg', ASSEMBLY_BEEP_VOLUME, TRUE)
- to_chat(user, "The panties are not linked to a portal fleshlight.")
+ to_chat(user, span_notice("The panties are not linked to a portal fleshlight."))
else
update_portal()
RegisterSignal(user, COMSIG_PARENT_QDELETING, .proc/drop_out)
diff --git a/modular_sand/code/game/objects/items/plushes/goat_boss.dm b/modular_sand/code/game/objects/items/plushes/goat_boss.dm
index 9209390bba..a754f936f8 100644
--- a/modular_sand/code/game/objects/items/plushes/goat_boss.dm
+++ b/modular_sand/code/game/objects/items/plushes/goat_boss.dm
@@ -26,27 +26,27 @@
if (!targets_to_pick_from.len)
return
target = pick(targets_to_pick_from)
- visible_message("[src] stares at [target].")
+ visible_message(span_notice("[src] stares at [target]."))
if (world.time > cooldown && target)
ram()
/obj/item/toy/plush/goatplushie/angry/proc/ram()
if(prob((obj_flags & EMAGGED) ? 98:90) && isturf(loc) && considered_alive(target.mind) && !faction_check(list("goat"), target.faction, FALSE))
throw_at(target, 10, 10)
- visible_message("[src] rams [target]!")
+ visible_message(span_danger("[src] rams [target]!"))
cooldown = world.time + cooldown_modifier
target = null
- visible_message("[src] looks disinterested.")
+ visible_message(span_notice("[src] looks disinterested."))
/obj/item/toy/plush/goatplushie/angry/emag_act(mob/user)
if (obj_flags&EMAGGED)
- visible_message("[src] already looks angry enough, you shouldn't anger it more.")
+ visible_message(span_notice("[src] already looks angry enough, you shouldn't anger it more."))
return
cooldown_modifier = cooldown_modifier/2 * 0.75
throwforce = 12.5
force = 10
obj_flags |= EMAGGED
- visible_message("[src] stares at [user] angrily before going docile.")
+ visible_message(span_danger("[src] stares at [user] angrily before going docile."))
/obj/item/toy/plush/goatplushie/angry/Destroy()
STOP_PROCESSING(SSprocessing, src)
@@ -85,14 +85,14 @@
/obj/item/toy/plush/goatplushie/angry/kinggoat/ascendedkinggoat/attackby(obj/item/I,mob/living/user,params)
if(I.get_sharpness())
- user.visible_message("[user] attempts to destroy [src]!", "[I] bounces off [src]'s back before breaking into millions of pieces... [src] glares at [user]!") // You fucked up now son
+ user.visible_message(span_notice("[user] attempts to destroy [src]!"), span_suicide("[I] bounces off [src]'s back before breaking into millions of pieces... [src] glares at [user]!")) // You fucked up now son
I.play_tool_sound(src)
qdel(I)
user.gib()
/obj/item/toy/plush/goatplushie/angry/kinggoat/attackby(obj/item/I,mob/living/user,params)
if(I.get_sharpness())
- user.visible_message("[user] rips [src] to shreds!", "[src]'s death has attracted the attention of the king goat plushie guards!")
+ user.visible_message(span_notice("[user] rips [src] to shreds!"), span_notice("[src]'s death has attracted the attention of the king goat plushie guards!"))
I.play_tool_sound(src)
qdel(src)
var/turf/location = get_turf(user)
@@ -109,7 +109,7 @@
new/obj/item/toy/plush/goatplushie/angry/guardgoat(location)
new/obj/item/toy/plush/goatplushie/angry/guardgoat(location)
if(istype(I, /obj/item/reagent_containers/food/snacks/grown/cabbage))
- user.visible_message("[user] watches as [src] takes a bite out of the cabbage!", "[src]'s fur starts glowing. It seems they have ascended!")
+ user.visible_message(span_notice("[user] watches as [src] takes a bite out of the cabbage!"), span_notice("[src]'s fur starts glowing. It seems they have ascended!"))
playsound(src, 'sound/items/eatfood.ogg', 50, 1)
qdel(I)
qdel(src)
diff --git a/modular_sand/code/game/objects/items/robot/robot_upgrades.dm b/modular_sand/code/game/objects/items/robot/robot_upgrades.dm
index 902493c969..1a5296378c 100644
--- a/modular_sand/code/game/objects/items/robot/robot_upgrades.dm
+++ b/modular_sand/code/game/objects/items/robot/robot_upgrades.dm
@@ -16,7 +16,7 @@
if(!XW)
XW = locate() in R.module
if(XW)
- to_chat(user, "This unit is already equipped with an experimental welding tool module.")
+ to_chat(user, span_warning("This unit is already equipped with an experimental welding tool module."))
return FALSE
XW = new(R.module)
qdel(WT)
@@ -83,7 +83,7 @@
if(!BD)
BD = locate() in R.module //There's gotta be a smarter way to do this.
if(BD)
- to_chat(user, "This unit is already equipped with a BSRPD module.")
+ to_chat(user, span_warning("This unit is already equipped with a BSRPD module."))
return FALSE
BD = new(R.module)
@@ -138,11 +138,11 @@
if(.)
if(R.hasExpanded)
- to_chat(usr, "This unit already has an expand module installed!")
+ to_chat(usr, span_notice("This unit already has an expand module installed!"))
return FALSE
if(R.hasShrunk)
- to_chat(usr, "This unit already has an shrink module installed!")
+ to_chat(usr, span_notice("This unit already has an shrink module installed!"))
return FALSE
R.mob_transforming = TRUE
@@ -179,11 +179,11 @@
if(.)
if(R.hasShrunk)
- to_chat(usr, "This unit already has an shrink module installed!")
+ to_chat(usr, span_notice("This unit already has an shrink module installed!"))
return FALSE
if(R.hasExpanded)
- to_chat(usr, "This unit already has an expand module installed!")
+ to_chat(usr, span_notice("This unit already has an expand module installed!"))
return FALSE
@@ -237,7 +237,7 @@
if(!shuttle_maker)
shuttle_maker = locate() in R.module
if(shuttle_maker)
- to_chat(user, "This unit is already equipped with a rapid shuttle designator module.")
+ to_chat(user, span_warning("This unit is already equipped with a rapid shuttle designator module."))
return FALSE
shuttle_maker = new(R.module)
R.module.basic_modules += shuttle_maker
diff --git a/modular_sand/code/game/objects/items/stacks/tiles/tile_reskinning.dm b/modular_sand/code/game/objects/items/stacks/tiles/tile_reskinning.dm
index 7f240548e6..2feb8f236a 100644
--- a/modular_sand/code/game/objects/items/stacks/tiles/tile_reskinning.dm
+++ b/modular_sand/code/game/objects/items/stacks/tiles/tile_reskinning.dm
@@ -39,4 +39,4 @@ GLOBAL_LIST_EMPTY(tile_reskin_lists)
/obj/item/stack/tile/examine(mob/user)
. = ..()
if(tile_reskin_types)
- . += "These kinds of tiles can be re-skinned! Use it on hand to reskin."
+ . += span_notice("These kinds of tiles can be re-skinned! Use it on hand to reskin.")
diff --git a/modular_sand/code/game/objects/structures/ghost_role_spawners.dm b/modular_sand/code/game/objects/structures/ghost_role_spawners.dm
index d1c2ab7ce0..89b7c20ef5 100644
--- a/modular_sand/code/game/objects/structures/ghost_role_spawners.dm
+++ b/modular_sand/code/game/objects/structures/ghost_role_spawners.dm
@@ -36,7 +36,7 @@
ADD_TRAIT(new_spawn, TRAIT_SIXTHSENSE, GHOSTROLE_TRAIT)
ADD_TRAIT(new_spawn, TRAIT_EXEMPT_HEALTH_EVENTS, GHOSTROLE_TRAIT)
ADD_TRAIT(new_spawn, TRAIT_NO_MIDROUND_ANTAG, GHOSTROLE_TRAIT) //The mob can't be made into a random antag, they are still eligible for ghost roles popups.
- to_chat(new_spawn,"Ghosting is free!")
+ to_chat(new_spawn,span_boldwarning("Ghosting is free!"))
var/datum/action/toggle_dead_chat_mob/D = new(new_spawn)
D.Grant(new_spawn)
var/datum/action/disguise/disguise_action = new(new_spawn)
diff --git a/modular_sand/code/game/objects/structures/tank_holder.dm b/modular_sand/code/game/objects/structures/tank_holder.dm
index 5f88eceed9..b0a720af7f 100644
--- a/modular_sand/code/game/objects/structures/tank_holder.dm
+++ b/modular_sand/code/game/objects/structures/tank_holder.dm
@@ -30,13 +30,13 @@
/obj/structure/tank_holder/examine(mob/user)
. = ..()
- . += "It is held together by some screws."
+ . += span_notice("It is held together by some screws.")
/obj/structure/tank_holder/attackby(obj/item/W, mob/user, params)
if(user.a_intent == INTENT_HARM)
return ..()
if(!SEND_SIGNAL(W, COMSIG_CONTAINER_TRY_ATTACH, src, user))
- to_chat(user, "[W] does not fit in [src].")
+ to_chat(user, span_warning("[W] does not fit in [src]."))
/obj/structure/tank_holder/screwdriver_act(mob/living/user, obj/item/I)
if(..())
@@ -63,7 +63,7 @@
return ..()
if(!Adjacent(user) || issilicon(user))
return ..()
- to_chat(user, "You take [tank] from [src].")
+ to_chat(user, span_notice("You take [tank] from [src]."))
add_fingerprint(user)
tank.add_fingerprint(user)
user.put_in_hands(tank)
diff --git a/modular_sand/code/game/turfs/open.dm b/modular_sand/code/game/turfs/open.dm
index 13f7e25990..5e66692c37 100644
--- a/modular_sand/code/game/turfs/open.dm
+++ b/modular_sand/code/game/turfs/open.dm
@@ -7,7 +7,7 @@
/obj/item/wallframe/light_fixture/small/proc/attach_floor(turf/a_floor, mob/user)
playsound(src.loc, 'sound/machines/click.ogg', 75, 1)
user.visible_message("[user.name] attaches [src] to \the [a_floor].",
- "You attach [src] to \the [a_floor].",
+ span_notice("You attach [src] to \the [a_floor]."),
"You hear clicking.")
a_floor.balloon_alert(user, "attached to floor")
var/obj/O = new /obj/structure/light_construct/floor(a_floor, 1, TRUE)
diff --git a/modular_sand/code/game/turfs/simulated/floor/plating.dm b/modular_sand/code/game/turfs/simulated/floor/plating.dm
index 4393ff0180..75235f067a 100644
--- a/modular_sand/code/game/turfs/simulated/floor/plating.dm
+++ b/modular_sand/code/game/turfs/simulated/floor/plating.dm
@@ -4,25 +4,25 @@
/turf/open/floor/plating/examine(mob/user)
. = ..()
if(!(baseturfs == /turf/baseturf_bottom || istype(baseturfs, /turf/open/space)))
- . += "\The [src] cannot be removed from the floor."
+ . += span_notice("\The [src] cannot be removed from the floor.")
else if(unfastened)
- . += "\The [src] could be welded off the floor."
- . += "The screws on [src] appear loose."
+ . += span_notice("\The [src] could be welded off the floor.")
+ . += span_warning("The screws on [src] appear loose.")
else
- . += "The screws on [src] could be loosened with a screwdriver."
+ . += span_notice("The screws on [src] could be loosened with a screwdriver.")
/turf/open/floor/plating/screwdriver_act(mob/living/user, obj/item/I)
if(type == /turf/open/floor/plating)
if(baseturfs == /turf/baseturf_bottom || istype(baseturfs, /turf/open/space))
- to_chat(user, "You start [unfastened ? "fastening" : "unfastening"] [src].")
+ to_chat(user, span_notice("You start [unfastened ? "fastening" : "unfastening"] [src]."))
balloon_alert(user, "[unfastened ? "fastening" : "unfastening"]")
if(!I.use_tool(src, user, 20, volume = 80))
return
- to_chat(user, "You [unfastened ? "fasten" : "unfasten"] [src].")
+ to_chat(user, span_notice("You [unfastened ? "fasten" : "unfasten"] [src]."))
balloon_alert(user, "[unfastened ? "fastened" : "unfastened"]")
unfastened = !unfastened
else
- to_chat(user, "You cannot remove this plating.")
+ to_chat(user, span_warning("You cannot remove this plating."))
balloon_alert(user, "can't remove!")
return
@@ -30,13 +30,13 @@
. = ..()
if(type == /turf/open/floor/plating && unfastened)
if(baseturfs == /turf/baseturf_bottom || istype(baseturfs, /turf/open/space))
- to_chat(user, "You start removing [src], exposing space after you're done!")
+ to_chat(user, span_warning("You start removing [src], exposing space after you're done!"))
balloon_alert(user, "removing")
if(!I.use_tool(src, user, 50, volume = 160)) //extra loud to let people know something's going down
return
new /obj/item/stack/tile/plasteel(get_turf(src))
ReplaceWithLattice()
- to_chat(user, "You remove [src].")
+ to_chat(user, span_notice("You remove [src]."))
balloon_alert(user, "removed")
return
else
diff --git a/modular_sand/code/modules/admin/verbs/randomverbs.dm b/modular_sand/code/modules/admin/verbs/randomverbs.dm
index 5bb62c4415..ac491b22be 100644
--- a/modular_sand/code/modules/admin/verbs/randomverbs.dm
+++ b/modular_sand/code/modules/admin/verbs/randomverbs.dm
@@ -16,5 +16,5 @@
SSshuttle.autoEnd()
SSblackbox.record_feedback("tally", "admin_verb", 1, "End Shift") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc!
log_admin("[key_name(usr)] ended the shift.")
- message_admins("[key_name_admin(usr)] ended the shift.")
+ message_admins(span_adminnotice("[key_name_admin(usr)] ended the shift."))
return
diff --git a/modular_sand/code/modules/arousal/arousal.dm b/modular_sand/code/modules/arousal/arousal.dm
index f6a8a68fac..fc5de73f14 100644
--- a/modular_sand/code/modules/arousal/arousal.dm
+++ b/modular_sand/code/modules/arousal/arousal.dm
@@ -35,7 +35,7 @@
if(prob(30 + clamp((70*(rand() + (h_self.sexual_potency + h_partner.sexual_potency)/200)), 0, 70)) && !W.impregnated)
W.impregnated = TRUE
log_game("Debug: [h_self] has been impregnated by [h_partner]")
- to_chat(src, "You feel your hormones change, and a motherly instinct take over.")
+ to_chat(src, span_userlove("You feel your hormones change, and a motherly instinct take over."))
var/obj/item/organ/genital/breasts/B = h_self.getorganslot(ORGAN_SLOT_BREASTS)
if(B)
B.fluid_rate *= 2
diff --git a/modular_sand/code/modules/client/preferences.dm b/modular_sand/code/modules/client/preferences.dm
index 611f3b41d6..3efa0eefee 100644
--- a/modular_sand/code/modules/client/preferences.dm
+++ b/modular_sand/code/modules/client/preferences.dm
@@ -50,9 +50,9 @@
language -= lang
else if(check_language_maxhit())
if(CONFIG_GET(number/max_languages) == 1)
- to_chat(usr, "You can only have 1 additional language!")
+ to_chat(usr, span_danger("You can only have 1 additional language!"))
else
- to_chat(usr, "You can only have up to [CONFIG_GET(number/max_languages)] additional languages!")
+ to_chat(usr, span_danger("You can only have up to [CONFIG_GET(number/max_languages)] additional languages!"))
else
language += lang
diff --git a/modular_sand/code/modules/clothing/gloves/_gloves.dm b/modular_sand/code/modules/clothing/gloves/_gloves.dm
index 65f7de4825..092e25511d 100644
--- a/modular_sand/code/modules/clothing/gloves/_gloves.dm
+++ b/modular_sand/code/modules/clothing/gloves/_gloves.dm
@@ -50,11 +50,11 @@
var/obj/item/clothing/accessory/ring/A = I
if(length(attached_accessories) >= max_accessories)
if(user)
- to_chat(user, "[src] already has [length(attached_accessories)] accessories.")
+ to_chat(user, span_warning("[src] already has [length(attached_accessories)] accessories."))
return
if(dummy_thick)
if(user)
- to_chat(user, "[src] is too bulky and cannot have accessories attached to it!")
+ to_chat(user, span_warning("[src] is too bulky and cannot have accessories attached to it!"))
return
else
if(user && !user.temporarilyRemoveItemFromInventory(I))
@@ -63,7 +63,7 @@
return
if(user && notifyAttach)
- to_chat(user, "You attach [I] to [src].")
+ to_chat(user, span_notice("You attach [I] to [src]."))
if((flags_inv & HIDEACCESSORY) || (A.flags_inv & HIDEACCESSORY))
return TRUE
@@ -95,9 +95,9 @@
var/obj/item/clothing/accessory/ring/A = attached_accessories[length(attached_accessories)]
A.detach(src, user)
if(user.put_in_hands(A))
- to_chat(user, "You detach [A] from [src].")
+ to_chat(user, span_notice("You detach [A] from [src]."))
else
- to_chat(user, "You detach [A] from [src] and it falls on the floor.")
+ to_chat(user, span_notice("You detach [A] from [src] and it falls on the floor."))
if(ishuman(loc))
var/mob/living/carbon/human/H = loc
diff --git a/modular_sand/code/modules/clothing/gloves/accessories.dm b/modular_sand/code/modules/clothing/gloves/accessories.dm
index 8356e9fd9e..1c3986de1f 100644
--- a/modular_sand/code/modules/clothing/gloves/accessories.dm
+++ b/modular_sand/code/modules/clothing/gloves/accessories.dm
@@ -15,11 +15,11 @@
var/strip_silence = FALSE
/obj/item/clothing/accessory/ring/suicide_act(mob/living/carbon/user)
- user.visible_message("\[user] is putting the [src] in [user.p_their()] mouth! It looks like [user] is trying to choke on the [src]!")
+ user.visible_message(span_suicide("\[user] is putting the [src] in [user.p_their()] mouth! It looks like [user] is trying to choke on the [src]!"))
return OXYLOSS
/obj/item/clothing/accessory/ring/attack_self(mob/user)
- user.visible_message("\The [user] gets down on one knee, presenting \the [src].","You get down on one knee, presenting \the [src].")
+ user.visible_message(span_warning("\The [user] gets down on one knee, presenting \the [src]."),span_warning("You get down on one knee, presenting \the [src]."))
/obj/item/clothing/accessory/ring/proc/Touch(atom/A, proximity)
return FALSE // return TRUE to cancel attack_hand()
diff --git a/modular_sand/code/modules/clothing/spacesuits/chronosuit.dm b/modular_sand/code/modules/clothing/spacesuits/chronosuit.dm
index aa4cdcc530..fd6ce75120 100644
--- a/modular_sand/code/modules/clothing/spacesuits/chronosuit.dm
+++ b/modular_sand/code/modules/clothing/spacesuits/chronosuit.dm
@@ -70,8 +70,8 @@
switch(severity)
if(1)
if(activated && user && ishuman(user) && (user.wear_suit == src))
- to_chat(user, "E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD")
- to_chat(user, "An electromagnetic pulse disrupts your [name] and violently tears you out of time-bluespace!")
+ to_chat(user, span_danger("E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD"))
+ to_chat(user, span_userdanger("An electromagnetic pulse disrupts your [name] and violently tears you out of time-bluespace!"))
user.emote("scream")
deactivate(1, 1)
diff --git a/modular_sand/code/modules/clothing/spacesuits/hardsuit.dm b/modular_sand/code/modules/clothing/spacesuits/hardsuit.dm
index d48f9b16a1..63777f7482 100644
--- a/modular_sand/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/modular_sand/code/modules/clothing/spacesuits/hardsuit.dm
@@ -101,7 +101,7 @@
var/mob/living/carbon/human/user = src.loc
playsound(src.loc, 'modular_sand/sound/misc/suitmalf.ogg', 60, 1, 10)
if (ishuman(user) && (user.wear_suit == src))
- to_chat(user, "The motors on your armor cease to function, causing the full weight of the suit to weigh on you all at once!")
+ to_chat(user, span_danger("The motors on your armor cease to function, causing the full weight of the suit to weigh on you all at once!"))
user.emote("scream")
user.adjustStaminaLoss(stamdamageemp)
user.adjustBruteLoss(brutedamageemp)
diff --git a/modular_sand/code/modules/hydroponics/hydroponics.dm b/modular_sand/code/modules/hydroponics/hydroponics.dm
index fbe22b96ea..e383980184 100644
--- a/modular_sand/code/modules/hydroponics/hydroponics.dm
+++ b/modular_sand/code/modules/hydroponics/hydroponics.dm
@@ -1,7 +1,7 @@
/obj/machinery/hydroponics/proc/harvest_dead(mob/user)
dead = FALSE
if(user)
- to_chat(user, "You remove the dead plant from [src].")
+ to_chat(user, span_notice("You remove the dead plant from [src]."))
qdel(myseed)
myseed = null
update_icon()
diff --git a/modular_sand/code/modules/integrated_electronics/subtypes/output.dm b/modular_sand/code/modules/integrated_electronics/subtypes/output.dm
index 45e991aad7..1c16cb3445 100644
--- a/modular_sand/code/modules/integrated_electronics/subtypes/output.dm
+++ b/modular_sand/code/modules/integrated_electronics/subtypes/output.dm
@@ -51,7 +51,7 @@
user.transferItemToLoc(O,src)
encryption_keys += O
recalculate_channels()
- to_chat(user, "You slide \the [O] inside the circuit.")
+ to_chat(user, span_notice("You slide \the [O] inside the circuit."))
else
..()
@@ -75,10 +75,10 @@
O.forceMove(drop_location())
encryption_keys.Cut()
set_pin_data(IC_OUTPUT, 1, WEAKREF(null))
- to_chat(user, "You slide the encryption keys out of the circuit.")
+ to_chat(user, span_notice("You slide the encryption keys out of the circuit."))
recalculate_channels()
else
- to_chat(user, "There are no encryption keys to remove from the mechanism.")
+ to_chat(user, span_notice("There are no encryption keys to remove from the mechanism."))
/obj/item/radio/headset/integrated
diff --git a/modular_sand/code/modules/mining/equipment/kinetic_crusher.dm b/modular_sand/code/modules/mining/equipment/kinetic_crusher.dm
index 4ed5eff3f7..5943ce5194 100644
--- a/modular_sand/code/modules/mining/equipment/kinetic_crusher.dm
+++ b/modular_sand/code/modules/mining/equipment/kinetic_crusher.dm
@@ -30,7 +30,7 @@
L.loot = null
L.crusher_loot = null
L.faction = user.faction.Copy()
- user.visible_message("[user] revives [target] with [src], as a friendly fauna")
+ user.visible_message(span_notice("[user] revives [target] with [src], as a friendly fauna"))
playsound(src,'sound/effects/supermatter.ogg',50,1)
/obj/item/crusher_trophy/golden_skull/on_melee_hit(mob/living/target, mob/living/user)
@@ -53,10 +53,10 @@
L.attack_same = 0
L.loot = null
L.crusher_loot = null
- user.visible_message("[user] revives [target] with [src], as a friendly legion.")
+ user.visible_message(span_notice("[user] revives [target] with [src], as a friendly legion."))
playsound(src,'sound/effects/supermatter.ogg',50,1)
else
- (to_chat(user, "You cancel turning [target] into a legion."))
+ (to_chat(user, span_notice("You cancel turning [target] into a legion.")))
//rogue process
/obj/item/crusher_trophy/brokentech
@@ -344,22 +344,22 @@
/obj/item/melee/zweihander/examine(mob/living/user)
. = ..()
- . += "Mark a large creature with the destabilizing force, then hit them in melee to do [force + detonation_damage] damage."
- . += "Does [force + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force + detonation_damage]."
+ . += span_notice("Mark a large creature with the destabilizing force, then hit them in melee to do [force + detonation_damage] damage.")
+ . += span_notice("Does [force + detonation_damage + backstab_bonus] damage if the target is backstabbed, instead of [force + detonation_damage].")
for(var/t in trophies)
var/obj/item/crusher_trophy/T = t
- . += "It has \a [T] attached, which causes [T.effect_desc()]."
+ . += span_notice("It has \a [T] attached, which causes [T.effect_desc()].")
/obj/item/melee/zweihander/attackby(obj/item/I, mob/living/user)
if(istype(I, /obj/item/crowbar))
if(LAZYLEN(trophies))
- to_chat(user, "You remove [src]'s trophies.")
+ to_chat(user, span_notice("You remove [src]'s trophies."))
I.play_tool_sound(src)
for(var/t in trophies)
var/obj/item/crusher_trophy/T = t
T.remove_from(src, user)
else
- to_chat(user, "There are no trophies on [src].")
+ to_chat(user, span_warning("There are no trophies on [src]."))
else if(istype(I, /obj/item/crusher_trophy))
var/obj/item/crusher_trophy/T = I
T.add_to(src, user)
diff --git a/modular_sand/code/modules/mining/equipment/regenerative_core.dm b/modular_sand/code/modules/mining/equipment/regenerative_core.dm
index 4d508dd6c1..b9fc7acfd3 100644
--- a/modular_sand/code/modules/mining/equipment/regenerative_core.dm
+++ b/modular_sand/code/modules/mining/equipment/regenerative_core.dm
@@ -12,16 +12,16 @@
return
var/mob/living/carbon/human/H = target
if(inert)
- to_chat(user, "[src] has decayed and can no longer be used to heal.")
+ to_chat(user, span_notice("[src] has decayed and can no longer be used to heal."))
return
if(H.stat == DEAD)
- to_chat(user, "[src] are useless on the dead.")
+ to_chat(user, span_notice("[src] are useless on the dead."))
return
if(H != user)
H.visible_message("[user] forces [H] to apply [src]... Black tendrils entangle and reinforce [H.p_them()]!")
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other"))
else
- to_chat(user, "You start to smear [src] on yourself. Disgusting tendrils hold you together and allow you to keep moving, but for how long?")
+ to_chat(user, span_notice("You start to smear [src] on yourself. Disgusting tendrils hold you together and allow you to keep moving, but for how long?"))
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self"))
if(is_station_level(H.z))
H.adjustBruteLoss(-25, 0)
diff --git a/modular_sand/code/modules/mining/lavaland/necropolis_chests.dm b/modular_sand/code/modules/mining/lavaland/necropolis_chests.dm
index aaca5e7faa..09d5b00d97 100644
--- a/modular_sand/code/modules/mining/lavaland/necropolis_chests.dm
+++ b/modular_sand/code/modules/mining/lavaland/necropolis_chests.dm
@@ -156,7 +156,7 @@
/obj/item/projectile/heckhook/on_hit(atom/target)
. = ..()
var/atom/A = target
- A.visible_message("[A] is snagged by [firer]'s hook!")
+ A.visible_message(span_danger("[A] is snagged by [firer]'s hook!"))
new /datum/forced_movement(firer, get_turf(A), 1, TRUE)
/obj/item/projectile/heckhook/Destroy()
@@ -184,7 +184,7 @@
to_chat(user, "You will now fire normal shotgun rounds.")
/obj/item/gun/ballistic/revolver/doublebarrel/super/sawoff(mob/user)
- to_chat(user, "Why would you mutilate this work of art?")
+ to_chat(user, span_warning("Why would you mutilate this work of art?"))
return
/obj/item/gun/ballistic/revolver/doublebarrel/super/upgraded
@@ -235,7 +235,7 @@
/obj/item/crucible/suicide_act(mob/living/carbon/user)
if(wielded)
- user.visible_message("[user] DOOMs themselves with the [src]!")
+ user.visible_message(span_suicide("[user] DOOMs themselves with the [src]!"))
var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD)//stole from chainsaw code
var/obj/item/organ/brain/B = user.getorganslot(ORGAN_SLOT_BRAIN)
@@ -250,12 +250,12 @@
myhead.drop_limb()
sleep(3)
else
- user.visible_message("[user] panics and starts choking to death!")
+ user.visible_message(span_suicide("[user] panics and starts choking to death!"))
return OXYLOSS
else
- user.visible_message("[user] begins beating [user.p_them()]self to death with \the [src]'s handle! It probably would've been cooler if [user.p_they()] turned it on first!")
+ user.visible_message(span_suicide("[user] begins beating [user.p_them()]self to death with \the [src]'s handle! It probably would've been cooler if [user.p_they()] turned it on first!"))
return BRUTELOSS
/obj/item/crucible/update_icon_state()
@@ -336,7 +336,7 @@
var/mob/living/carbon/C = user
if(C.wear_mask)
in_mouth = ", barely missing [user.p_their()] nose"
- . = "[user] swings [user.p_their()] [name][in_mouth]. [user.p_they(TRUE)] light[user.p_s()] [user.p_their()] [A.name] in the process."
+ . = span_warning("[user] swings [user.p_their()] [name][in_mouth]. [user.p_they(TRUE)] light[user.p_s()] [user.p_their()] [A.name] in the process.")
playsound(loc, hitsound, get_clamped_volume(), 1, -1)
add_fingerprint(user)
@@ -437,12 +437,12 @@
sharpness = SHARP_NONE
if(ghost_counter >= 4)
sharpness = SHARP_POINTY
- user.visible_message("[user] strikes with the force of [ghost_counter] vengeful spirits!")
+ user.visible_message(span_danger("[user] strikes with the force of [ghost_counter] vengeful spirits!"))
/obj/item/melee/ghost_sword/run_block(mob/living/owner, atom/object, damage, attack_text, attack_type, armour_penetration, mob/attacker, def_zone, final_block_chance, list/block_return)
var/ghost_counter = ghost_check()
final_block_chance = clamp((ghost_counter * 5), 10, 50)
- owner.visible_message("[owner] is protected by a ring of [ghost_counter] ghosts!")
+ owner.visible_message(span_danger("[owner] is protected by a ring of [ghost_counter] ghosts!"))
return ..()
/obj/item/clothing/neck/necklace/memento_mori/king
@@ -503,7 +503,7 @@
var/choosey = choices[choice]
var/obj/machinery/anomalous_crystal/A = new choosey(user.loc)
A.activation_method = method
- to_chat(user, "[A] appears under your feet as the [src] breaks apart!")
+ to_chat(user, span_userdanger("[A] appears under your feet as the [src] breaks apart!"))
qdel(src)
//normal chests
@@ -744,7 +744,7 @@
/obj/item/stock_parts/cell/high/plus/argent/attack_self(mob/user)
..()
- user.visible_message("[user] crushes the [src] in his hands, absorbing it's energy!")
+ user.visible_message(span_danger("[user] crushes the [src] in his hands, absorbing it's energy!"))
playsound(user.loc, 'sound/effects/hit_on_shattered_glass.ogg', 100, TRUE)
var/mob/living/M = user
M.apply_status_effect(onuse)
@@ -822,13 +822,13 @@
/obj/item/clothing/mask/gas/dagoth/ui_action_click(mob/user, action)
if(istype(action, /datum/action/item_action/ashstorm))
if(storm_cooldown > world.time)
- to_chat(user, "The [src] is still recharging!")
+ to_chat(user, span_warning("The [src] is still recharging!"))
return
var/area/user_area = get_base_area(user)
var/turf/user_turf = get_turf(user)
if(!user_area || !user_turf || (user_area.type in excluded_areas))
- to_chat(user, "Something is preventing you from using the [src] here.")
+ to_chat(user, span_warning("Something is preventing you from using the [src] here."))
return
var/datum/weather/A
for(var/V in SSweather.processing)
@@ -840,10 +840,10 @@
if(A)
if(A.stage != END_STAGE)
if(A.stage == WIND_DOWN_STAGE)
- to_chat(user, "The storm is already ending! It would be a waste to use the [src] now.")
+ to_chat(user, span_warning("The storm is already ending! It would be a waste to use the [src] now."))
return
- user.visible_message("[user] gazes into the sky with [src], seemingly repelling the current storm!", \
- "You gaze intently skyward, dispelling the storm!")
+ user.visible_message(span_warning("[user] gazes into the sky with [src], seemingly repelling the current storm!"), \
+ span_notice("You gaze intently skyward, dispelling the storm!"))
playsound(user, 'sound/magic/staff_change.ogg', 200, 0)
A.wind_down()
log_game("[user] ([key_name(user)]) has dispelled a storm at [AREACOORD(user_turf)]")
@@ -858,8 +858,8 @@
A.telegraph_duration = 100
A.end_duration = 100
- user.visible_message("[user] gazes skyward with his [src], terrible red lightning strikes seem to accompany them!", \
- "You gaze skyward with [src], calling down a terrible storm!")
+ user.visible_message(span_warning("[user] gazes skyward with his [src], terrible red lightning strikes seem to accompany them!"), \
+ span_notice("You gaze skyward with [src], calling down a terrible storm!"))
playsound(user, 'sound/magic/staff_change.ogg', 200, 0)
A.telegraph()
storm_cooldown = world.time + 200
@@ -973,9 +973,9 @@
//Apply a temp buff until the necklace is used
/obj/item/clothing/neck/necklace/necklace_of_the_forsaken/proc/temp_buff(mob/living/carbon/human/user)
- to_chat(user, "You feel as if you have a second chance at something, but you're not sure what.")
+ to_chat(user, span_warning("You feel as if you have a second chance at something, but you're not sure what."))
if(do_after(user, 40, target = user))
- to_chat(user, "The ember warms you...")
+ to_chat(user, span_notice("The ember warms you..."))
ADD_TRAIT(user, TRAIT_NOHARDCRIT, "necklace_of_the_forsaken")//less chance of being gibbed
active_owner = user
@@ -986,7 +986,7 @@
return
var/mob/living/carbon/C = active_owner
active_owner = null
- to_chat(C, "You feel a scorching burn fill your body and limbs!")
+ to_chat(C, span_userdanger("You feel a scorching burn fill your body and limbs!"))
C.revive(TRUE, FALSE)
remove_necklace() //remove buffs
@@ -1013,7 +1013,7 @@
if(iscarbon(owner))
MM.temp_buff(owner)
src.desc = "Revive or fully heal yourself, but you can only do this once! Can be used when knocked out or dead."
- to_chat(MM.active_owner, "You have binded the ember to yourself! The next time you use the necklace it will heal you!")
+ to_chat(MM.active_owner, span_userdanger("You have binded the ember to yourself! The next time you use the necklace it will heal you!"))
else if(MM.numUses >= 1 && MM.active_owner)//revive / heal then remove usage
MM.second_chance()
MM.numUses = 0
diff --git a/modular_sand/code/modules/mining/machine_bluespaceminer.dm b/modular_sand/code/modules/mining/machine_bluespaceminer.dm
index 513a22e4cc..9241f8745e 100644
--- a/modular_sand/code/modules/mining/machine_bluespaceminer.dm
+++ b/modular_sand/code/modules/mining/machine_bluespaceminer.dm
@@ -19,15 +19,15 @@
/obj/machinery/mineral/bluespace_miner/examine(mob/user)
. = ..()
if(in_range(user, src) || isobserver(user))
- . += "A small screen on the machine reads, \"Efficiency at [multiplier * 100]%\""
+ . += span_notice("A small screen on the machine reads, \"Efficiency at [multiplier * 100]%\"")
if(multiplier >= 5)
- . += "Bluespace generation is active."
+ . += span_notice("Bluespace generation is active.")
if(!anchored)
- . += "The machine won't work while not firmly secured to the ground."
+ . += span_warning("The machine won't work while not firmly secured to the ground.")
if(!materials?.silo)
- . += "No ore silo connected. Use a multi-tool to link an ore silo to this machine."
+ . += span_notice("No ore silo connected. Use a multi-tool to link an ore silo to this machine.")
else if(materials?.on_hold())
- . += "Ore silo access is on hold, please contact the quartermaster."
+ . += span_warning("Ore silo access is on hold, please contact the quartermaster.")
/obj/machinery/mineral/bluespace_miner/RefreshParts()
multiplier = 0
@@ -50,7 +50,7 @@
/obj/machinery/mineral/bluespace_miner/multitool_act(mob/living/user, obj/item/M)
. = ..()
if(!M.buffer || !istype(M.buffer, /obj/machinery/ore_silo))
- to_chat(user, "You need to multitool the ore silo first.")
+ to_chat(user, span_warning("You need to multitool the ore silo first."))
balloon_alert(user, "invalid buffer!")
return TRUE
diff --git a/modular_sand/code/modules/mob/living/carbon/show.dm b/modular_sand/code/modules/mob/living/carbon/show.dm
index edd752ed8a..7e96c07c77 100644
--- a/modular_sand/code/modules/mob/living/carbon/show.dm
+++ b/modular_sand/code/modules/mob/living/carbon/show.dm
@@ -15,6 +15,6 @@
if(!I && arm)
usr.show_message("[usr] holds up [arm].", 1)
else if(!arm && !I)
- to_chat(usr, "You frown because now there's nothing you can show.")
+ to_chat(usr, span_notice("You frown because now there's nothing you can show."))
else if(!HAS_TRAIT(I, ABSTRACT_ITEM_TRAIT))
I.showoff(src)
diff --git a/modular_sand/code/modules/mob/living/silicon/silicon.dm b/modular_sand/code/modules/mob/living/silicon/silicon.dm
index 6109a0c8fc..af295e91c1 100644
--- a/modular_sand/code/modules/mob/living/silicon/silicon.dm
+++ b/modular_sand/code/modules/mob/living/silicon/silicon.dm
@@ -10,6 +10,6 @@
set desc = "Allows you to eat someone."
if(!CHECK_BITFIELD(T.vore_flags, DEVOURABLE))
- to_chat(src, "System error: Unauthorized operation.")
+ to_chat(src, span_warning("System error: Unauthorized operation."))
return
return feed_grabbed_to_self(src,T)
diff --git a/modular_sand/code/modules/mob/living/simple_animal/bot/hugbot.dm b/modular_sand/code/modules/mob/living/simple_animal/bot/hugbot.dm
index 0822ec540e..5250ceaffc 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/bot/hugbot.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/bot/hugbot.dm
@@ -145,7 +145,7 @@
/mob/living/simple_animal/bot/hugbot/attack_hand(mob/living/carbon/human/H)
if(H.a_intent == INTENT_DISARM && mode != BOT_TIPPED)
- H.visible_message("[H] begins tipping over [src].", "You begin tipping over [src]...")
+ H.visible_message(span_danger("[H] begins tipping over [src]."), span_warning("You begin tipping over [src]..."))
balloon_alert(H, "tipping over")
if(world.time > last_tipping_action_voice + 15 SECONDS)
@@ -159,7 +159,7 @@
tip_over(H)
else if(H.a_intent == INTENT_HELP && mode == BOT_TIPPED)
- H.visible_message("[H] begins righting [src].", "You begin righting [src]...")
+ H.visible_message(span_notice("[H] begins righting [src]."), span_notice("You begin righting [src]..."))
balloon_alert(H, "righting")
if(do_after(H, 3 SECONDS, target=src))
set_right(H)
@@ -170,8 +170,8 @@
..()
if(emagged == 2)
if(user)
- to_chat(user, "You short out [src]'s manipulator pressure sensors.")
- visible_message("[src]'s arm twitches violently!")
+ to_chat(user, span_notice("You short out [src]'s manipulator pressure sensors."))
+ visible_message(span_danger("[src]'s arm twitches violently!"))
flick("medibot_spark", src)
playsound(src, "sparks", 75, 1)
@@ -347,9 +347,9 @@
// Hey, didyah know that you Han't hug people as non-carbon? Well you can't hug people as non-carbon. Hence this mess
if(zone_selected == BODY_ZONE_PRECISE_MOUTH)
visible_message( \
- "[src] boops [H]'s nose.", \
- "You boop [H] on the nose.", target = H,
- target_message = "[src] boops your nose.")
+ span_notice("[src] boops [H]'s nose."), \
+ span_notice("You boop [H] on the nose."), target = H,
+ target_message = span_notice("[src] boops your nose."))
playsound(H, 'sound/items/Nose_boop.ogg', 50, 0)
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "headpat", /datum/mood_event/headpat)
else if(check_zone(zone_selected) == BODY_ZONE_HEAD)
@@ -357,9 +357,9 @@
if(ishuman(H))
S = H.dna.species
- visible_message("[src] gives [H] a pat on the head to make [H.p_them()] feel better!", \
- "You give [src] a pat on the head to make [H.p_them()] feel better!", target = H,
- target_message = "[src] gives you a pat on the head to make you feel better!")
+ visible_message(span_notice("[src] gives [H] a pat on the head to make [H.p_them()] feel better!"), \
+ span_notice("You give [src] a pat on the head to make [H.p_them()] feel better!"), target = H,
+ target_message = span_notice("[src] gives you a pat on the head to make you feel better!"))
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "headpat", /datum/mood_event/headpat)
if(S?.can_wag_tail(src) && !H.dna.species.is_wagging_tail())
var/static/list/many_tails = list("tail_human", "tail_lizard", "mam_tail")
@@ -368,9 +368,9 @@
H.emote("wag")
break
else
- visible_message("[src] hugs [H] to make [H.p_them()] feel better!", \
- "You hug [H] to make [H.p_them()] feel better!", target = H,\
- target_message = "[src] hugs you to make you feel better!")
+ visible_message(span_notice("[src] hugs [H] to make [H.p_them()] feel better!"), \
+ span_notice("You hug [H] to make [H.p_them()] feel better!"), target = H,\
+ target_message = span_notice("[src] hugs you to make you feel better!"))
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "hug", /datum/mood_event/hug)
playsound(H.loc, 'sound/weapons/thudswoosh.ogg', 50, 1, -1)
@@ -390,7 +390,7 @@
/mob/living/simple_animal/bot/hugbot/explode()
on = FALSE
- visible_message("[src] blows apart!")
+ visible_message(span_boldannounce("[src] blows apart!"))
do_sparks(3, TRUE, src)
var/atom/Tsec = drop_location()
drop_part(/obj/item/storage/box/hug, Tsec)
@@ -416,19 +416,19 @@
var/mob/living/simple_animal/bot/hugbot/A = new(drop_location())
A.name = created_name
A.robot_arm = W.type
- to_chat(user, "You add [W] to [src]. Beep boop!")
+ to_chat(user, span_notice("You add [W] to [src]. Beep boop!"))
qdel(W)
qdel(src)
/obj/item/storage/box/hug/attackby(obj/item/I, mob/user, params)
if((istype(I, /obj/item/bodypart/l_arm/robot)) || (istype(I, /obj/item/bodypart/r_arm/robot)))
if(contents.len) //prevent accidently deleting contents
- to_chat(user, "You need to empty [src] out first!")
+ to_chat(user, span_warning("You need to empty [src] out first!"))
return
if(!user.temporarilyRemoveItemFromInventory(I))
return
qdel(I)
- to_chat(user, "You add [I] to the [src]! You've got a hugbot assembly now!")
+ to_chat(user, span_notice("You add [I] to the [src]! You've got a hugbot assembly now!"))
var/obj/item/bot_assembly/hugbot/A = new
qdel(src)
user.put_in_hands(A)
@@ -438,7 +438,7 @@
// Skyrat exclusive: Tipping over hugbots. Because fuck medbots.
/mob/living/simple_animal/bot/hugbot/proc/tip_over(mob/user)
mobility_flags &= ~MOBILITY_MOVE
- user.visible_message("[user] tips over [src]!", "You tip [src] over!")
+ user.visible_message(span_danger("[user] tips over [src]!"), span_danger("You tip [src] over!"))
balloon_alert(user, "tipped over")
mode = BOT_TIPPED
tipper_name = user.name // Skyrat fix
@@ -449,14 +449,14 @@
mobility_flags &= MOBILITY_MOVE
var/list/messagevoice
if(user)
- user.visible_message("[user] sets [src] right-side up!", "You set [src] right-side up!")
+ user.visible_message(span_notice("[user] sets [src] right-side up!"), span_green("You set [src] right-side up!"))
balloon_alert(user, "set right")
if(user.name == tipper_name)
messagevoice = list("I forgive you." = 'sound/voice/medbot/forgive.ogg')
else
messagevoice = list("Thank you!" = 'sound/voice/medbot/thank_you.ogg', "You are a good person." = 'sound/voice/medbot/youre_good.ogg')
else
- visible_message("[src] manages to writhe wiggle enough to right itself.")
+ visible_message(span_notice("[src] manages to writhe wiggle enough to right itself."))
messagevoice = list("Fuck you." = 'sound/voice/medbot/fuck_you.ogg', "Your behavior has been reported, have a nice day." = 'sound/voice/medbot/reported.ogg')
tipper_name = null
diff --git a/modular_sand/code/modules/mob/living/simple_animal/friendly/doges.dm b/modular_sand/code/modules/mob/living/simple_animal/friendly/doges.dm
index ef6991e2d5..fa3b49613a 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/friendly/doges.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/friendly/doges.dm
@@ -22,7 +22,7 @@
. = ..()
if(.)
for(var/obj/item/reagent_containers/food/snacks/burger/burbger in view(1, src))
- visible_message("\The [src] consumes the [burbger]!")
+ visible_message(span_danger("\The [src] consumes the [burbger]!"))
qdel(burbger)
revive(full_heal = 1)
@@ -33,7 +33,7 @@
qdel(I)
if(stat == DEAD)
visible_message("\The [src] stands right back up after nibbling the [I]!")
- else
+ else
visible_message("\The [src] swallows the [I] whole!")
revive(full_heal = 1)
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/gladiator.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/gladiator.dm
index 5d5ce750c6..47c1faced2 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/gladiator.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/gladiator.dm
@@ -195,11 +195,11 @@ They deal 35 brute (armor is considered).
if(isliving(A))
var/mob/living/LM = A
forceMove(LM.loc)
- visible_message("[src] knocks [LM] down!")
+ visible_message(span_userdanger("[src] knocks [LM] down!"))
LM.DefaultCombatKnockdown(60)
discharge()
else if(istype(A, /turf/closed))
- visible_message("[src] crashes headfirst into [A]!")
+ visible_message(span_userdanger("[src] crashes headfirst into [A]!"))
discharge(1.33)
/mob/living/simple_animal/hostile/megafauna/gladiator/proc/update_phase()
@@ -231,7 +231,7 @@ They deal 35 brute (armor is considered).
move_to_delay = move_to_charge
/mob/living/simple_animal/hostile/megafauna/gladiator/proc/zweispin()
- visible_message("[src] lifts his zweihander, and prepares to spin!")
+ visible_message(span_boldwarning("[src] lifts his zweihander, and prepares to spin!"))
speen = TRUE
animate(src, color = "#ff6666", 10)
sleep(5)
@@ -285,7 +285,7 @@ They deal 35 brute (armor is considered).
/mob/living/simple_animal/hostile/megafauna/gladiator/proc/chargeattack(atom/target, var/range)
face_atom(target)
- visible_message("[src] lifts his shield, and prepares to charge!")
+ visible_message(span_boldwarning("[src] lifts his shield, and prepares to charge!"))
animate(src, color = "#ff6666", 3)
sleep(4)
face_atom(target)
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/glaurung.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/glaurung.dm
index 5d2d96aa86..1e80a992b8 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/glaurung.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/glaurung.dm
@@ -82,7 +82,7 @@ Difficulty: Medium
/mob/living/simple_animal/hostile/megafauna/dragon/glaurung/AltClickOn(atom/movable/A)
if(!istype(A))
- to_chat(src, "Your wings are too damaged for old swoop maneuvers.")
+ to_chat(src, span_warning("Your wings are too damaged for old swoop maneuvers."))
return
/obj/item/gps/internal/glaurung
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/king_of_goats.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/king_of_goats.dm
index f3980bc9fd..4b78bb7dbf 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/king_of_goats.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/king_of_goats.dm
@@ -164,7 +164,7 @@ Difficulty: Insanely Hard
/mob/living/simple_animal/hostile/megafauna/king/Retaliate()
..()
if(stat == CONSCIOUS && prob(5))
- visible_message("\The [src] bellows indignantly, with a judgemental gleam in his eye.")
+ visible_message(span_warning("\The [src] bellows indignantly, with a judgemental gleam in his eye."))
/mob/living/simple_animal/hostile/megafauna/king/phase2/Retaliate()
set waitfor = FALSE
@@ -172,16 +172,16 @@ Difficulty: Insanely Hard
if(spellscast < 5)
if(prob(5) && move_to_delay >= 3) //speed buff
spellscast++
- visible_message("\The [src] shimmers and seems to phase in and out of reality itself!")
+ visible_message(span_cult("\The [src] shimmers and seems to phase in and out of reality itself!"))
move_to_delay = 1
else if(prob(5) && melee_damage_lower != 50) //damage buff
spellscast++
- visible_message("\The [src]' horns grow larger and more menacing!")
+ visible_message(span_cult("\The [src]' horns grow larger and more menacing!"))
melee_damage_lower = 50
else if(prob(5)) //spawn adds
spellscast++
- visible_message("\The [src] summons the imperial guard to his aid, and they appear in a flash!")
+ visible_message(span_cult("\The [src] summons the imperial guard to his aid, and they appear in a flash!"))
var/mob/living/simple_animal/hostile/retaliate/goat/guard/master/M = new(get_step(src,pick(GLOB.cardinals)))
M.enemies |= enemies
var/mob/living/simple_animal/hostile/retaliate/goat/guard/G = new(get_step(src,pick(GLOB.cardinals)))
@@ -191,12 +191,12 @@ Difficulty: Insanely Hard
else if(prob(5)) //EMP blast
spellscast++
- visible_message("\The [src] disrupts nearby electrical equipment!")
+ visible_message(span_cult("\The [src] disrupts nearby electrical equipment!"))
empulse(get_turf(src), 5, 2, 0)
else if(prob(5) && melee_damage_type == BRUTE && !special_attacks) //elemental attacks
spellscast++
- visible_message("\The [src]' horns flicker with holy white flames!")
+ visible_message(span_cult("\The [src]' horns flicker with holy white flames!"))
melee_damage_type = BURN
else if(prob(5)) //earthquake spell
@@ -213,7 +213,7 @@ Difficulty: Insanely Hard
if(!(getBruteLoss() > health_holder))
adjustBruteLoss(health_holder - getBruteLoss()) //our own magicks cannot harm us
else
- visible_message("\The [src] loses concentration and huffs haughtily.")
+ visible_message(span_notice("\The [src] loses concentration and huffs haughtily."))
stop_automated_movement = FALSE
else return
@@ -225,7 +225,7 @@ Difficulty: Insanely Hard
revive(TRUE)
stun_chance = 10
update_icon()
- visible_message("\The [src]' wounds close with a flash, and when he emerges, he's even larger than before!")
+ visible_message(span_cult("\The [src]' wounds close with a flash, and when he emerges, he's even larger than before!"))
/mob/living/simple_animal/hostile/megafauna/king/phase2/update_icon()
@@ -248,20 +248,20 @@ Difficulty: Insanely Hard
if(!.)
return FALSE
if(special_attacks >= 5 && melee_damage_type != BRUTE)
- visible_message("The energy surrounding \the [src]'s horns dissipates.")
+ visible_message(span_cult("The energy surrounding \the [src]'s horns dissipates."))
melee_damage_type = BRUTE
if(special_attacks >= 5 && melee_damage_lower == 50)
- visible_message("The [src]' horns shrink back down to normal size.")
+ visible_message(span_cult("The [src]' horns shrink back down to normal size."))
melee_damage_lower = 40
/mob/living/simple_animal/hostile/megafauna/king/proc/OnDeath()
- visible_message("\The [src] lets loose a terrific wail as its wounds close shut with a flash of light, and its eyes glow even brighter than before!")
+ visible_message(span_cult("\The [src] lets loose a terrific wail as its wounds close shut with a flash of light, and its eyes glow even brighter than before!"))
new /mob/living/simple_animal/hostile/megafauna/king/phase2(get_turf(src))
qdel(src)
/mob/living/simple_animal/hostile/megafauna/king/phase2/OnDeath()
if(phase3)
- visible_message("\The [src] shrieks as the seal on his power breaks and he starts to break apart!")
+ visible_message(span_cult("\The [src] shrieks as the seal on his power breaks and he starts to break apart!"))
new /obj/structure/ladder/unbreakable/goat(loc)
new /obj/item/gun/energy/goatgun(loc)
new /obj/item/toy/plush/goatplushie/angry/kinggoat(loc) //If someone dies from this after beating the king goat im going to laugh
@@ -278,7 +278,7 @@ Difficulty: Insanely Hard
L.gib()
if(prob(stun_chance))
L.Stun(5)
- visible_message("\The [L] is bowled over by the impact of [src]'s attack!")
+ visible_message(span_warning("\The [L] is bowled over by the impact of [src]'s attack!"))
/mob/living/simple_animal/hostile/megafauna/king/phase2/AttackingTarget()
. = ..()
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm
index f671e2f9eb..ed66903f0f 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/legion.dm
@@ -33,7 +33,7 @@
L.GiveTarget(target)
- visible_message("[src] splits in twain!")
+ visible_message(span_boldannounce("[src] splits in twain!"))
else
var/last_legion = TRUE
for(var/mob/living/simple_animal/hostile/megafauna/legion/other in GLOB.mob_living_list)
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
index 0f062d21b1..b7476832fe 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/megafauna.dm
@@ -48,7 +48,7 @@
if((faction_check_mob(M) && attack_same) || (!faction_check_mob(M)) || (!ismegafauna(M)))
enemies |= M
if(!retaliated)
- src.visible_message("[src] seems pretty pissed off at [M]!")
+ src.visible_message(span_userdanger("[src] seems pretty pissed off at [M]!"))
retaliated = TRUE
retaliatedcooldown = world.time + retaliatedcooldowntime
else if(ismecha(A))
@@ -61,7 +61,7 @@
continue
enemies |= living
if(!retaliated)
- visible_message("[src] seems pretty pissed off at [M]!")
+ visible_message(span_userdanger("[src] seems pretty pissed off at [M]!"))
retaliated = TRUE
retaliatedcooldown = world.time + retaliatedcooldowntime
@@ -129,9 +129,9 @@
if(KA && KA.bayonet)
message = pick(glorymessagespka | glorymessagespkabayonet)
if(message)
- visible_message("[slayer] [message]")
+ visible_message(span_danger("[slayer] [message]"))
else
- visible_message("[slayer] does something generally considered brutal to [src]... Whatever that may be!")
+ visible_message(span_danger("[slayer] does something generally considered brutal to [src]... Whatever that may be!"))
adjustHealth(maxHealth, TRUE, TRUE)
if(mob_biotypes & MOB_ORGANIC)
new /obj/effect/gibspawner/generic(src.loc)
@@ -139,14 +139,14 @@
new /obj/effect/gibspawner/robot(src.loc)
slayer.heal_overall_damage(gloryhealth,gloryhealth)
else
- to_chat(slayer, "You fail to glory kill [src]!")
+ to_chat(slayer, span_danger("You fail to glory kill [src]!"))
/mob/living/simple_animal/hostile/megafauna/devour(mob/living/L)
if(!L)
return
visible_message(
- "[src] devours [L]!",
- "You feast on [L], restoring your health!")
+ span_danger("[src] devours [L]!"),
+ span_userdanger("You feast on [L], restoring your health!"))
if(!is_station_level(z) || client) //NPC monsters won't heal while on station
adjustBruteLoss(-L.maxHealth/2)
L.gib()
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/rogueprocess.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/rogueprocess.dm
index f1df97f500..fb49b7fa98 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/rogueprocess.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/rogueprocess.dm
@@ -170,7 +170,7 @@
if(path > 2)
if(!target)
return
- visible_message("[src] raises it's plasma cutter!")
+ visible_message(span_boldwarning("[src] raises it's plasma cutter!"))
sleep(3)
var/turf/startloc = get_turf(src)
var/obj/item/projectile/P = new /obj/item/projectile/plasma/rogue(startloc)
@@ -186,7 +186,7 @@
if(theline > 2)
if(!target)
return
- visible_message("[src] raises it's tri-shot plasma cutter!")
+ visible_message(span_boldwarning("[src] raises it's tri-shot plasma cutter!"))
var/ogangle = Get_Angle(src, target)
sleep(7)
var/turf/startloc = get_turf(src)
@@ -212,7 +212,7 @@
Y.fire(otherangle2)
/mob/living/simple_animal/hostile/megafauna/rogueprocess/proc/knockdown(range = 2)
- visible_message("[src] smashes into the ground!")
+ visible_message(span_boldwarning("[src] smashes into the ground!"))
playsound(src,'sound/misc/crunch.ogg', 200, 1)
var/list/hit_things = list()
sleep(7)
@@ -231,7 +231,7 @@
sleep(3)
/mob/living/simple_animal/hostile/megafauna/rogueprocess/proc/shockwave(direction, range, wave_duration = 1.5)
- visible_message("[src] smashes the ground in a general direction!!")
+ visible_message(span_boldwarning("[src] smashes the ground in a general direction!!"))
playsound(src,'sound/misc/crunch.ogg', 200, 1)
sleep(7)
var/list/hit_things = list()
@@ -272,7 +272,7 @@
sleep(wave_duration)
/mob/living/simple_animal/hostile/megafauna/rogueprocess/proc/ultishockwave(range, iteration_duration = 5)
- visible_message("[src] smashes the ground around them!!")
+ visible_message(span_boldwarning("[src] smashes the ground around them!!"))
playsound(src,'sound/misc/crunch.ogg', 200, 1)
sleep(10)
var/list/hit_things = list()
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/sif.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/sif.dm
index f6f0e81988..7a48f329d2 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/sif.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/megafauna/sif.dm
@@ -122,7 +122,7 @@ Difficulty: Medium
spawn(30)
if(!QDELETED(src))
new /mob/living/simple_animal/hostile/megafauna/sif(get_turf(src.loc))
- visible_message("The ground shakes.")
+ visible_message(span_notice("The ground shakes."))
playsound(get_turf(src.loc), 'sound/effects/curse3.ogg', 100, 1)
playsound(get_turf(src.loc), 'sound/effects/meteorimpact.ogg', 100, 1)
qdel(src)
@@ -223,7 +223,7 @@ Difficulty: Medium
else
if(passed == 1)
- visible_message("[src] dodged the projectile!", "You dodge the projectile!")
+ visible_message(span_danger("[src] dodged the projectile!"), span_userdanger("You dodge the projectile!"))
playsound(src, pick('sound/weapons/bulletflyby.ogg', 'sound/weapons/bulletflyby2.ogg', 'sound/weapons/bulletflyby3.ogg'), 300, 1)
return 0
@@ -233,7 +233,7 @@ Difficulty: Medium
/mob/living/simple_animal/hostile/megafauna/sif/proc/angered()
src.angered = TRUE
src.stageTwo = TRUE
- src.visible_message("[src] lets out a ear ripping howl!", "[src] lets out an ear ripping roar!")
+ src.visible_message(span_userdanger("[src] lets out a ear ripping howl!"), span_userdanger("[src] lets out an ear ripping roar!"))
playsound(src, 'modular_sand/sound/sif/howl.ogg', 100, 1)
var/mob/living/L = target
shake_camera(L, 4, 3)
@@ -247,7 +247,7 @@ Difficulty: Medium
/mob/living/simple_animal/hostile/megafauna/sif/proc/enraged()
src.stageThree = TRUE
src.enraged = TRUE
- src.visible_message("[src] lets out a ear ripping yelp!", "[src] lets out an ear ripping yelp!")
+ src.visible_message(span_userdanger("[src] lets out a ear ripping yelp!"), span_userdanger("[src] lets out an ear ripping yelp!"))
playsound(src, 'modular_sand/sound/sif/howl.ogg', 100, 1)
var/mob/living/L = target
shake_camera(L, 8, 6)
@@ -355,7 +355,7 @@ Difficulty: Medium
DestroySurroundings()
if(isliving(A))
var/mob/living/L = A
- L.visible_message("[src] stomps on [L]!", "[src] stomps on you!")
+ L.visible_message(span_danger("[src] stomps on [L]!"), span_userdanger("[src] stomps on you!"))
src.forceMove(get_turf(L))
L.apply_damage(20, BRUTE)
playsound(get_turf(L), 'modular_sand/sound/sif/sif_stomp.ogg', 400, 1)
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/candy.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/candy.dm
index 82ccc551ee..63ad4d8cf0 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/candy.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/candy.dm
@@ -51,28 +51,28 @@
name = "Blood Charge"
icon_icon = 'modular_sand/icons/mob/actions/actions_elites.dmi'
button_icon_state = "blood_charge"
- chosen_message = "You will attempt to charge your target."
+ chosen_message = span_boldwarning("You will attempt to charge your target.")
chosen_attack_num = BLOOD_CHARGE
/datum/action/innate/elite_attack/bloody_trap
name = "Bloody Trap"
icon_icon = 'modular_sand/icons/mob/actions/actions_elites.dmi'
button_icon_state = "bloody_trap"
- chosen_message = "You will attempt to trap your target."
+ chosen_message = span_boldwarning("You will attempt to trap your target.")
chosen_attack_num = BLOODY_TRAP
/datum/action/innate/elite_attack/meat_shield
name = "Meat Shield"
icon_icon = 'modular_sand/icons/mob/actions/actions_elites.dmi'
button_icon_state = "meat_shield"
- chosen_message = "You will attempt to shield yourself."
+ chosen_message = span_boldwarning("You will attempt to shield yourself.")
chosen_attack_num = MEAT_SHIELD
/datum/action/innate/elite_attack/knockdown
name = "Knockdown"
icon_icon = 'modular_sand/icons/mob/actions/actions_elites.dmi'
button_icon_state = "knockdown"
- chosen_message = "You will knock down every mob around you."
+ chosen_message = span_boldwarning("You will knock down every mob around you.")
chosen_attack_num = KNOCKDOWN
@@ -105,7 +105,7 @@
var/dir_to_target = get_dir(get_turf(src), get_turf(target))
var/turf/T = get_turf(src)
playsound(src,'sound/magic/demon_attack1.ogg', 200, 1)
- visible_message("[src] prepares to charge!")
+ visible_message(span_boldwarning("[src] prepares to charge!"))
for(var/i in 1 to 6)
new /obj/effect/temp_visual/dir_setting/bloodsplatter/candy(T, get_dir(T, target))
T = get_step(T, dir_to_target)
@@ -120,7 +120,7 @@
if(bline.len > 6)
return FALSE
ranged_cooldown = world.time + 100
- visible_message("[src] traps [target]!")
+ visible_message(span_boldwarning("[src] traps [target]!"))
for(var/turf/J in view(1, target) - get_turf(target))
new /obj/effect/temp_visual/bloodwall(J, src)
sleep(5)
@@ -134,13 +134,13 @@
for(var/obj/effect/temp_visual/bloodwall/B in N.contents)
bloodwalls += B
var/obj/effect/temp_visual/bloodwall/chosen = pick(bloodwalls)
- visible_message("One of the blood walls disappear!")
+ visible_message(span_boldwarning("One of the blood walls disappear!"))
qdel(chosen)
/mob/living/simple_animal/hostile/asteroid/elite/candy/proc/meatshield()
ranged_cooldown = world.time + 25
playsound(src,'sound/magic/Blind.ogg', 200, 1)
- visible_message("[src] raises a wall!")
+ visible_message(span_boldwarning("[src] raises a wall!"))
var/turf/T = get_turf(get_step(src, src.dir))
var/list/hit_things = list()
new /obj/effect/temp_visual/bloodwall(T, src)
@@ -172,7 +172,7 @@
/mob/living/simple_animal/hostile/asteroid/elite/candy/proc/knockdown()
ranged_cooldown = world.time + 100
playsound(src,'sound/misc/crunch.ogg', 200, 1)
- visible_message("[src] clenches his fists and smashes the ground!")
+ visible_message(span_boldwarning("[src] clenches his fists and smashes the ground!"))
var/list/hit_things = list()
sleep(10)
for(var/turf/T in view(1, src))
@@ -217,8 +217,8 @@
if(faction_check_mob(L))
return
hit_things += L
- visible_message("[src] attacks [L] with much force!")
- to_chat(L, "[src] grabs you and throws you with much force!")
+ visible_message(span_boldwarning("[src] attacks [L] with much force!"))
+ to_chat(L, span_userdanger("[src] grabs you and throws you with much force!"))
L.safe_throw_at(throwtarget, 10, 1, src)
//L.Paralyze(20)
L.Stun(20) //substituting this for the Paralyze from the line above, because we don't have tg paralysis stuff
@@ -270,7 +270,7 @@
icon_state = "vial"
/obj/item/bloodcrawlbottle/attack_self(mob/user)
- to_chat(user, "You drink the bottle's contents.")
+ to_chat(user, span_notice("You drink the bottle's contents."))
var/obj/effect/proc_holder/spell/bloodcrawl/S = new /obj/effect/proc_holder/spell/bloodcrawl/
user.mind.AddSpell(S)
user.log_message("learned the spell bloodcrawl ([S])", LOG_ATTACK, color="orange")
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/drakeling.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/drakeling.dm
index 66e5997888..a59927c59e 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/drakeling.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/drakeling.dm
@@ -51,28 +51,28 @@
name = "Lava Moat"
icon_icon = 'modular_sand/icons/mob/actions/actions_elites.dmi'
button_icon_state = "lava_moat"
- chosen_message = "You will attempt to create a lava moat around you."
+ chosen_message = span_boldwarning("You will attempt to create a lava moat around you.")
chosen_attack_num = LAVA_MOAT
/datum/action/innate/elite_attack/lavaaround
name = "Lava Rivers"
icon_icon = 'modular_sand/icons/mob/actions/actions_elites.dmi'
button_icon_state = "lava_around"
- chosen_message = "You will now create lava rivers at your cardinal directions."
+ chosen_message = span_boldwarning("You will now create lava rivers at your cardinal directions.")
chosen_attack_num = LAVA_AROUND
/datum/action/innate/elite_attack/firespew
name = "Fire Spew"
icon_icon = 'modular_sand/icons/mob/actions/actions_elites.dmi'
button_icon_state = "fire_spew"
- chosen_message = "You will now spew fire at your target."
+ chosen_message = span_boldwarning("You will now spew fire at your target.")
chosen_attack_num = FIRE_SPEW
/datum/action/innate/elite_attack/firemoat
name = "Fire Moat"
icon_icon = 'modular_sand/icons/mob/actions/actions_elites.dmi'
button_icon_state = "fire_moat"
- chosen_message = "You will now spew fire at all cardinal directions."
+ chosen_message = span_boldwarning("You will now spew fire at all cardinal directions.")
chosen_attack_num = FIRE_MOAT
/mob/living/simple_animal/hostile/asteroid/elite/drakeling/OpenFire()
@@ -101,7 +101,7 @@
//Drakeling actions
/mob/living/simple_animal/hostile/asteroid/elite/drakeling/proc/lava_moat()
ranged_cooldown = world.time + 25
- visible_message("[src] spews lava around themselves! Get back!")
+ visible_message(span_boldwarning("[src] spews lava around themselves! Get back!"))
for(var/turf/T in oview(1, src))
new /obj/effect/temp_visual/lava_warning/drakeling(T, 40)
@@ -112,7 +112,7 @@
/mob/living/simple_animal/hostile/asteroid/elite/drakeling/proc/fire_spew()
ranged_cooldown = world.time + 25
- visible_message("[src] spews fire!")
+ visible_message(span_boldwarning("[src] spews fire!"))
playsound(src,'sound/magic/Fireball.ogg', 200, 1)
sleep(5)
fire_wall(src.dir, 10)
@@ -120,7 +120,7 @@
/mob/living/simple_animal/hostile/asteroid/elite/drakeling/proc/fire_moat()
ranged_cooldown = world.time + 100
playsound(src,'sound/magic/Fireball.ogg', 200, 1)
- visible_message("[src] violently puffs smoke!They're going to make a fire moat!")
+ visible_message(span_boldwarning("[src] violently puffs smoke!They're going to make a fire moat!"))
sleep(5)
for(var/d in GLOB.alldirs)
INVOKE_ASYNC(src, .proc/fire_wall, d, 10)
@@ -139,7 +139,7 @@
else
hitlist += L
L.adjustFireLoss(20)
- to_chat(L, "You're hit by [src]'s fire breath!")
+ to_chat(L, span_userdanger("You're hit by [src]'s fire breath!"))
T = get_step(T, dir)
sleep(1)
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm
index ccba5d65a6..f47f7d8a9d 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm
@@ -25,14 +25,14 @@ obj/item/tumor_shard/afterattack(atom/target, mob/user, proximity_flag)
if(istype(target, /mob/living/simple_animal/hostile/asteroid/elite) && proximity_flag)
var/mob/living/simple_animal/hostile/asteroid/elite/E = target
if(E.stat != DEAD || E.sentience_type != SENTIENCE_BOSS || !E.key)
- user.visible_message("It appears [E] is unable to be revived right now. Perhaps try again later.")
+ user.visible_message(span_notice("It appears [E] is unable to be revived right now. Perhaps try again later."))
return
E.faction = list("neutral")
E.revive(full_heal = TRUE, admin_revive = TRUE)
- user.visible_message("[user] stabs [E] with [src], reviving it.")
+ user.visible_message(span_notice("[user] stabs [E] with [src], reviving it."))
E.playsound_local(get_turf(E), 'sound/effects/magic.ogg', 40, 0)
to_chat(E, "You have been revived by [user]. You owe [user] a great debt. Assist [user.p_them()] in achieving [user.p_their()] goals, regardless of risk.Note that you now share the loyalties of [user]. You are expected not to intentionally sabotage their faction unless commanded to!")
+ to_chat(E, span_big bold("Note that you now share the loyalties of [user]. You are expected not to intentionally sabotage their faction unless commanded to!"))
E.maxHealth = E.maxHealth * 0.5
E.health = E.maxHealth
E.desc = "[E.desc] However, this one appears appears less wild in nature, and calmer around people."
@@ -40,4 +40,4 @@ obj/item/tumor_shard/afterattack(atom/target, mob/user, proximity_flag)
E.owner = user
qdel(src)
else
- to_chat(user, "[src] only works on the corpse of a sentient lavaland elite.")
+ to_chat(user, span_info("[src] only works on the corpse of a sentient lavaland elite."))
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/fanaticminer.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/fanaticminer.dm
index cd81e17cc3..5a07d9aa66 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/fanaticminer.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/fanaticminer.dm
@@ -52,28 +52,28 @@
name = "Axe Slam"
icon_icon = 'modular_sand/icons/mob/actions/actions_elites.dmi'
button_icon_state = "axe_slam"
- chosen_message = "You will attempt to slam your axe."
+ chosen_message = span_boldwarning("You will attempt to slam your axe.")
chosen_attack_num = AXE_SLAM
/datum/action/innate/elite_attack/summon_shambler
name = "Summon Shambler"
icon_icon = 'modular_sand/icons/mob/actions/actions_elites.dmi'
button_icon_state = "summon_shambler"
- chosen_message = "You will attempt to summon a shambling miner."
+ chosen_message = span_boldwarning("You will attempt to summon a shambling miner.")
chosen_attack_num = SUMMON_SHAMBLER
/datum/action/innate/elite_attack/dash
name = "Dash"
icon_icon = 'modular_sand/icons/mob/actions/actions_elites.dmi'
button_icon_state = "dash"
- chosen_message = "You will attempt to dash near your target."
+ chosen_message = span_boldwarning("You will attempt to dash near your target.")
chosen_attack_num = DASH
/datum/action/innate/elite_attack/axe_throw
name = "Axe Throw"
icon_icon = 'modular_sand/icons/mob/actions/actions_elites.dmi'
button_icon_state = "axe_throw"
- chosen_message = "You will attempt to throw your axe."
+ chosen_message = span_boldwarning("You will attempt to throw your axe.")
chosen_attack_num = AXE_THROW
/mob/living/simple_animal/hostile/asteroid/elite/minerpriest/OpenFire()
@@ -107,26 +107,26 @@
for(var/i in 1 to 3)
new /obj/effect/temp_visual/dragon_swoop/priest(T)
T = get_step(T, dir_to_target)
- visible_message("[src] prepares to slam his axe!")
+ visible_message(span_boldwarning("[src] prepares to slam his axe!"))
sleep(5)
playsound(src,'sound/misc/crunch.ogg', 200, 1)
T = get_step(get_turf(src), dir_to_target)
var/list/hit_things = list()
- visible_message("[src] slams his axe!")
+ visible_message(span_boldwarning("[src] slams his axe!"))
for(var/i in 1 to 3)
for(var/mob/living/L in T.contents)
if(faction_check_mob(L))
return
hit_things += L
- visible_message("[src] slams his axe on [L]!")
- to_chat(L, "[src] slams his axe on you!")
+ visible_message(span_boldwarning("[src] slams his axe on [L]!"))
+ to_chat(L, span_userdanger("[src] slams his axe on you!"))
L.Stun(15)
L.adjustBruteLoss(30)
T = get_step(T, dir_to_target)
/mob/living/simple_animal/hostile/asteroid/elite/minerpriest/proc/summon_shambler(target)
ranged_cooldown = world.time + 150
- visible_message("[src] summons a minion!")
+ visible_message(span_boldwarning("[src] summons a minion!"))
playsound(src,'sound/magic/CastSummon.ogg', 200, 1)
var/list/turfs = list()
for(var/turf/T in oview(2, src))
@@ -139,7 +139,7 @@
/mob/living/simple_animal/hostile/asteroid/elite/minerpriest/proc/dash(atom/dash_target)
ranged_cooldown = world.time + 20
- visible_message("[src] dashes into the air!")
+ visible_message(span_boldwarning("[src] dashes into the air!"))
playsound(src,'sound/magic/blink.ogg', 200, 1)
var/list/accessable_turfs = list()
var/self_dist_to_target = 0
@@ -179,7 +179,7 @@
/mob/living/simple_animal/hostile/asteroid/elite/minerpriest/proc/axe_throw(target)
ranged_cooldown = world.time + 20
- visible_message("[src] prepares to throw his axe!")
+ visible_message(span_boldwarning("[src] prepares to throw his axe!"))
var/turf/targetturf = get_turf(target)
playsound(src,'sound/weapons/fwoosh.wav', 200, 1)
Shoot(targetturf)
@@ -189,8 +189,8 @@
var/mob/living/carbon/human/H = new /mob/living/carbon/human(src.loc)
if(src.client)
H.client = src.client
- to_chat(H, "You have been finally enlightened. Serving the necropolis is not your duty anymore, thanks to whoever defeated you. You owe them a great debt.Note that you now share the loyalties of the one who defeated you. You are expected not to intentionally sabotage their faction unless commanded to!")
+ to_chat(H, span_userdanger("You have been finally enlightened. Serving the necropolis is not your duty anymore, thanks to whoever defeated you. You owe them a great debt."))
+ to_chat(H, span_big(span_bold("Note that you now share the loyalties of the one who defeated you. You are expected not to intentionally sabotage their faction unless commanded to!")))
else
H.adjustBruteLoss(200)
H.equipOutfit(/datum/outfit/job/miner/equipped/priest)
diff --git a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/miningmobs.dm b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/miningmobs.dm
index e6b8f83e80..3d41c938f7 100644
--- a/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/miningmobs.dm
+++ b/modular_sand/code/modules/mob/living/simple_animal/hostile/mining_mobs/miningmobs.dm
@@ -49,9 +49,9 @@
if(KA && KA.bayonet)
message = pick(glorymessagespka | glorymessagespkabayonet)
if(message)
- visible_message("[slayer] [message]")
+ visible_message(span_danger("[slayer] [message]"))
else
- visible_message("[slayer] does something generally considered brutal to [src]... Whatever that may be!")
+ visible_message(span_danger("[slayer] does something generally considered brutal to [src]... Whatever that may be!"))
slayer.heal_overall_damage(gloryhealth,gloryhealth)
playsound(src.loc, death_sound, 150, TRUE, -1)
crusher_drop_mod *= 2
@@ -61,4 +61,4 @@
else if(mob_biotypes & MOB_ROBOTIC)
new /obj/effect/gibspawner/robot(src.loc)
else
- to_chat(slayer, "You fail to glory kill [src]!")
+ to_chat(slayer, span_danger("You fail to glory kill [src]!"))
diff --git a/modular_sand/code/modules/projectiles/guns/energy/kinetic_accelerator.dm b/modular_sand/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
index dccf94c0a9..ac51d7e5ec 100644
--- a/modular_sand/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
+++ b/modular_sand/code/modules/projectiles/guns/energy/kinetic_accelerator.dm
@@ -8,7 +8,7 @@
if(!suppressed)
playsound(src.loc, 'sound/weapons/kenetic_reload.ogg', 60, 1)
else
- to_chat(loc, "[src] silently charges up.")
+ to_chat(loc, span_warning("[src] silently charges up."))
update_icon()
overheat = FALSE
else //this is a terrible solution, but it ensures that it wont be stuck on dischaged if it fails to reload in an obj
@@ -32,16 +32,16 @@
var/obj/item/borg/upgrade/modkit/MK = I
switch(MK.type)
if(/obj/item/borg/upgrade/modkit/chassis_mod)
- to_chat(user, "This modkit is unsuitable for [src]!")
+ to_chat(user, span_userdanger("This modkit is unsuitable for [src]!"))
return FALSE
if(/obj/item/borg/upgrade/modkit/chassis_mod/orange)
- to_chat(user, "This modkit is unsuitable for [src]!")
+ to_chat(user, span_userdanger("This modkit is unsuitable for [src]!"))
return FALSE
if(/obj/item/borg/upgrade/modkit/tracer)
- to_chat(user, "This modkit is unsuitable for [src]!")
+ to_chat(user, span_userdanger("This modkit is unsuitable for [src]!"))
return FALSE
if(/obj/item/borg/upgrade/modkit/tracer/adjustable)
- to_chat(user, "This modkit is unsuitable for [src]!")
+ to_chat(user, span_userdanger("This modkit is unsuitable for [src]!"))
return FALSE
MK.install(src, user)
else
@@ -53,16 +53,16 @@
var/obj/item/borg/upgrade/modkit/MK = src
switch(MK.type)
if(/obj/item/borg/upgrade/modkit/chassis_mod)
- to_chat(user, "This modkit is unsuitable for [A]!")
+ to_chat(user, span_userdanger("This modkit is unsuitable for [A]!"))
return FALSE
if(/obj/item/borg/upgrade/modkit/chassis_mod/orange)
- to_chat(user, "This modkit is unsuitable for [A]!")
+ to_chat(user, span_userdanger("This modkit is unsuitable for [A]!"))
return FALSE
if(/obj/item/borg/upgrade/modkit/tracer)
- to_chat(user, "This modkit is unsuitable for [A]!")
+ to_chat(user, span_userdanger("This modkit is unsuitable for [A]!"))
return FALSE
if(/obj/item/borg/upgrade/modkit/tracer/adjustable)
- to_chat(user, "This modkit is unsuitable for [A]!")
+ to_chat(user, span_userdanger("This modkit is unsuitable for [A]!"))
return FALSE
install(A, user)
else
@@ -391,7 +391,7 @@
/mob/living/simple_animal/hostile/asteroid/hivelordbrood/explosivelegion/death()
explosion(src.loc, 0, 0, 1, 2, 0, FALSE, 2)
- src.visible_message("The [src] explodes!")
+ src.visible_message(span_danger("The [src] explodes!"))
..()
/obj/item/borg/upgrade/modkit/skull
@@ -435,7 +435,7 @@
else
hitlist += L
L.adjustFireLoss(src.modifier)
- to_chat(L, "You're hit by [KA]'s fire breath!")
+ to_chat(L, span_userdanger("You're hit by [KA]'s fire breath!"))
//king goat
/obj/item/borg/upgrade/modkit/cooldown/cooler
name = "cooler modification kit"
diff --git a/modular_sand/code/modules/reagents/chemistry/reagents/other_reagents.dm b/modular_sand/code/modules/reagents/chemistry/reagents/other_reagents.dm
index e5dcebcbdb..344087f408 100644
--- a/modular_sand/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/modular_sand/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -25,7 +25,7 @@
/datum/reagent/dragons_blood/admin/reaction_mob(mob/living/L, method=TOUCH, reac_volume, show_message = 1, touch_protection = 0)
if(method==PATCH || method==INGEST || method==INJECT || (method == VAPOR && prob(min(reac_volume,100)*(1 - touch_protection))))
- to_chat(user, "Power courses through you! You can now shift your form at will.")
+ to_chat(user, span_danger("Power courses through you! You can now shift your form at will."))
var/obj/effect/proc_holder/spell/targeted/shapeshift/dragon/D = new
var/user.mind.AddSpell(D)
*/ //FIX THIS SHIT
diff --git a/modular_sand/code/modules/resize/resizing.dm b/modular_sand/code/modules/resize/resizing.dm
index f00762bb04..9d0302561d 100644
--- a/modular_sand/code/modules/resize/resizing.dm
+++ b/modular_sand/code/modules/resize/resizing.dm
@@ -26,9 +26,9 @@
//Smaller person being stepped on
if(get_size(user) > get_size(target) && iscarbon(src))
if(istype(user) && user.dna.features["taur"] == "Naga" || user.dna.features["taur"] == "Tentacle")
- target.visible_message("[src] carefully slithers around [target].", "[src]'s huge tail slithers besides you.")
+ target.visible_message(span_notice("[src] carefully slithers around [target]."), span_notice("[src]'s huge tail slithers besides you."))
else
- target.visible_message("[src] carefully steps over [target].", "[src] steps over you carefully.")
+ target.visible_message(span_notice("[src] carefully steps over [target]."), span_notice("[src] steps over you carefully."))
return TRUE
//Smaller person stepping under a larger person
@@ -69,9 +69,9 @@
addtimer(CALLBACK(user, /mob/.proc/remove_movespeed_modifier, MOVESPEED_ID_STOMP, TRUE), 3) //0.3 seconds
if(get_size(user) > get_size(target) && iscarbon(user))
if(istype(user) && user.dna.features["taur"] == "Naga" || user.dna.features["taur"] == "Tentacle")
- target.visible_message("[src] carefully rolls their tail over [target]!", "[src]'s huge tail rolls over you!")
+ target.visible_message(span_danger("[src] carefully rolls their tail over [target]!"), span_danger("[src]'s huge tail rolls over you!"))
else
- target.visible_message("[src] carefully steps on [target]!", "[src] steps onto you with force!")
+ target.visible_message(span_danger("[src] carefully steps on [target]!"), span_danger("[src] steps onto you with force!"))
return TRUE
if(user.a_intent == "harm" && CHECK_MOBILITY(user, MOBILITY_MOVE) && !user.buckled)
@@ -85,9 +85,9 @@
//user.Stun(20)
if(get_size(user) > get_size(target) && iscarbon(user))
if(istype(user) && (user.dna.features["taur"] == "Naga" || user.dna.features["taur"] == "Tentacle"))
- target.visible_message("[src] mows down [target] under their tail!", "[src] plows their tail over you mercilessly!")
+ target.visible_message(span_danger("[src] mows down [target] under their tail!"), span_userdanger("[src] plows their tail over you mercilessly!"))
else
- target.visible_message("[src] slams their foot down on [target], crushing them!", "[src] crushes you under their foot!")
+ target.visible_message(span_danger("[src] slams their foot down on [target], crushing them!"), span_userdanger("[src] crushes you under their foot!"))
return TRUE
if(user.a_intent == "grab" && CHECK_MOBILITY(user, MOBILITY_MOVE) && !user.buckled)
@@ -101,17 +101,17 @@
var/feetCover = (user.wear_suit && (user.wear_suit.body_parts_covered & FEET)) || (user.w_uniform && (user.w_uniform.body_parts_covered & FEET) || (user.shoes && (user.shoes.body_parts_covered & FEET)))
if(feetCover)
if(user?.dna?.features["taur"] == "Naga" || user?.dna?.features["taur"] == "Tentacle")
- target.visible_message("[src] pins [target] under their tail!", "[src] pins you beneath their tail!")
+ target.visible_message(span_danger("[src] pins [target] under their tail!"), span_danger("[src] pins you beneath their tail!"))
else
- target.visible_message("[src] pins [target] helplessly underfoot!", "[src] pins you underfoot!")
+ target.visible_message(span_danger("[src] pins [target] helplessly underfoot!"), span_danger("[src] pins you underfoot!"))
return TRUE
else
if(user?.dna?.features["taur"] == "Naga" || user?.dna?.features["taur"] == "Tentacle")
- target.visible_message("[user] snatches up [target] underneath their tail!", "[src]'s tail winds around you and snatches you in its coils!")
+ target.visible_message(span_danger("[user] snatches up [target] underneath their tail!"), span_userdanger("[src]'s tail winds around you and snatches you in its coils!"))
//target.mob_pickup_micro_feet(user)
SEND_SIGNAL(target, COMSIG_MICRO_PICKUP_FEET, user)
else
- target.visible_message("[user] stomps down on [target], curling their toes and picking them up!", "[src]'s toes pin you down and curl around you, picking you up!")
+ target.visible_message(span_danger("[user] stomps down on [target], curling their toes and picking them up!"), span_userdanger("[src]'s toes pin you down and curl around you, picking you up!"))
//target.mob_pickup_micro_feet(user)
SEND_SIGNAL(target, COMSIG_MICRO_PICKUP_FEET, user)
return TRUE
@@ -126,18 +126,18 @@
if(ishuman(src))
var/mob/living/carbon/human/validmob = src
if(validmob?.dna?.features["taur"] == "Naga" || validmob?.dna?.features["taur"] == "Tentacle")
- visible_message("[validmob] carefully slithers around [target].", "You carefully slither around [target].")
+ visible_message(span_notice("[validmob] carefully slithers around [target]."), span_notice("You carefully slither around [target]."))
else
- visible_message("[validmob] carefully steps around [target].", "You carefully steps around [target].")
+ visible_message(span_notice("[validmob] carefully steps around [target]."), span_notice("You carefully steps around [target]."))
//smaller person stepping under another person... TO DO, fix and allow special interactions with naga legs to be seen
/mob/living/proc/micro_step_under(mob/living/target)
if(ishuman(src))
var/mob/living/carbon/human/validmob = src
if(validmob?.dna?.features["taur"] == "Naga" || validmob?.dna?.features["taur"] == "Tentacle")
- visible_message("[validmob] bounds over [target]'s tail.", "You jump over [target]'s thick tail.")
+ visible_message(span_notice("[validmob] bounds over [target]'s tail."), span_notice("You jump over [target]'s thick tail."))
else
- visible_message("[validmob] runs between [target]'s legs.", "You run between [target]'s legs.")
+ visible_message(span_notice("[validmob] runs between [target]'s legs."), span_notice("You run between [target]'s legs."))
//Proc for scaling stamina damage on size difference
/mob/living/carbon/proc/sizediffStamLoss(mob/living/carbon/target)
diff --git a/modular_sand/code/modules/resize/sizechems.dm b/modular_sand/code/modules/resize/sizechems.dm
index c914a5e370..61d80f81ca 100644
--- a/modular_sand/code/modules/resize/sizechems.dm
+++ b/modular_sand/code/modules/resize/sizechems.dm
@@ -78,7 +78,7 @@
var/size = get_size(M)
if(size < RESIZE_MACRO)
M.update_size(size + 0.025)
- M.visible_message("[pick("[M] grows!", "[M] expands in size!", "[M] pushes outwards in stature!")]", "[pick("You feel your body fighting for space and growing!", "The world contracts inwards in every direction!", "You feel your muscles expand, and your surroundings shrink!")]")
+ M.visible_message(span_danger("[pick("[M] grows!", "[M] expands in size!", "[M] pushes outwards in stature!")]"), span_danger("[pick("You feel your body fighting for space and growing!", "The world contracts inwards in every direction!", "You feel your muscles expand, and your surroundings shrink!")]"))
..()
. = 1
@@ -125,6 +125,6 @@
var/size = get_size(M)
if(size > RESIZE_MICRO)
M.update_size(size - 0.025)
- M.visible_message("[pick("[M] shrinks down!", "[M] dwindles in size!", "[M] compresses down!")]", "[pick("You feel your body compressing in size!", "The world pushes outwards in every direction!", "You feel your muscles contract, and your surroundings grow!")]")
+ M.visible_message(span_danger("[pick("[M] shrinks down!", "[M] dwindles in size!", "[M] compresses down!")]"), span_danger("[pick("You feel your body compressing in size!", "The world pushes outwards in every direction!", "You feel your muscles contract, and your surroundings grow!")]"))
..()
. = 1
diff --git a/modular_sand/code/modules/ruins/lavalandruin_code/doom.dm b/modular_sand/code/modules/ruins/lavalandruin_code/doom.dm
index 8d31ecefce..0384a10c14 100644
--- a/modular_sand/code/modules/ruins/lavalandruin_code/doom.dm
+++ b/modular_sand/code/modules/ruins/lavalandruin_code/doom.dm
@@ -35,14 +35,14 @@
/obj/effect/mine/pickup/bloodbath/berserk/mineEffect(mob/living/carbon/victim)
if(!victim.client || !istype(victim))
return
- to_chat(victim, "RIP AND TEAR")
+ to_chat(victim, span_reallybig(span_redtext("RIP AND TEAR")))
var/old_color = victim.client.color
var/static/list/red_splash = list(1,0,0,0.8,0.2,0, 0.8,0,0.2,0.1,0,0)
var/static/list/pure_red = list(0,0,0,0,0,0,0,0,0,1,0,0)
victim.log_message("entered a berserk frenzy", LOG_ATTACK)
victim.reagents.add_reagent(/datum/reagent/medicine/adminordrazine,50)
- to_chat(victim, "KILL, KILL, KILL!")
+ to_chat(victim, span_warning("KILL, KILL, KILL!"))
victim.client.color = pure_red
animate(victim.client,color = red_splash, time = 10, easing = SINE_EASING|EASE_OUT)
sleep(duration)
diff --git a/modular_sand/code/modules/ruins/lavalandruin_code/misc.dm b/modular_sand/code/modules/ruins/lavalandruin_code/misc.dm
index 7a4e6c40f4..ecf4bf0f91 100644
--- a/modular_sand/code/modules/ruins/lavalandruin_code/misc.dm
+++ b/modular_sand/code/modules/ruins/lavalandruin_code/misc.dm
@@ -33,7 +33,7 @@
if(M.stat != DEAD)
ourmegafauna |= M
if(!length(ourmegafauna))
- visible_message("[src] shines brightly, turning into [upgradedname]!")
+ visible_message(span_warning("[src] shines brightly, turning into [upgradedname]!"))
name = upgradedname
desc = upgradeddesc
block_chance = 66
@@ -87,10 +87,10 @@
if(ishuman(mover))
var/mob/living/carbon/human/H = mover
if(cmegalist.len <= megalist.len - 2)
- H.visible_message("[H] pushes through [src]!", "You deserve your reward. Reap your hunt.")
+ H.visible_message(span_warning("[H] pushes through [src]!"), span_notice("You deserve your reward. Reap your hunt."))
return TRUE
else
- to_chat(H, "Just touching the door burns your hand... You're not ready.")
+ to_chat(H, span_warning("Just touching the door burns your hand... You're not ready."))
H.apply_damage(damage = 5,damagetype = BURN, def_zone = H.get_bodypart(BODY_ZONE_R_ARM), blocked = FALSE, forced = FALSE)
/area/ruin/powered/wrath
diff --git a/modular_sand/code/modules/shuttle/shuttle_creation/shuttle_upgrades.dm b/modular_sand/code/modules/shuttle/shuttle_creation/shuttle_upgrades.dm
index 028f384600..ddb1a84fd8 100644
--- a/modular_sand/code/modules/shuttle/shuttle_creation/shuttle_upgrades.dm
+++ b/modular_sand/code/modules/shuttle/shuttle_creation/shuttle_upgrades.dm
@@ -11,14 +11,14 @@
if(!istype(O, /obj/machinery/computer))
return
if(!istype(O, /obj/machinery/computer/custom_shuttle))
- to_chat(user, "This upgrade only works on a custom shuttle flight console.")
+ to_chat(user, span_warning("This upgrade only works on a custom shuttle flight console."))
return
if(!user.transferItemToLoc(src, get_turf(O)))
return
var/obj/machinery/computer/custom_shuttle/link_comp = O
if(link_comp.smooth_sailing)
- to_chat(usr, "The shuttle is already sailing smoothly!")
+ to_chat(usr, span_notice("The shuttle is already sailing smoothly!"))
return
link_comp.smooth_sailing = TRUE
playsound(src, 'sound/machines/terminal_insert_disc.ogg', 50, 0)
- to_chat(usr, "You insert the disk into the flight computer, allowing you to not be thrown around like a ragdoll when launching.")
+ to_chat(usr, span_notice("You insert the disk into the flight computer, allowing you to not be thrown around like a ragdoll when launching."))
diff --git a/modular_sand/code/modules/surgery/organs/augments_arms.dm b/modular_sand/code/modules/surgery/organs/augments_arms.dm
index 115755da4a..3fff77b3ed 100644
--- a/modular_sand/code/modules/surgery/organs/augments_arms.dm
+++ b/modular_sand/code/modules/surgery/organs/augments_arms.dm
@@ -18,7 +18,7 @@
if(obj_flags & EMAGGED)
return
obj_flags |= EMAGGED
- to_chat(usr, "You unlock [src]'s integrated dagger!")
+ to_chat(usr, span_notice("You unlock [src]'s integrated dagger!"))
items_list += new /obj/item/pen/edagger(src)
return TRUE
@@ -38,6 +38,6 @@
if(obj_flags & EMAGGED)
return
obj_flags |= EMAGGED
- to_chat(usr, "You unlock [src]'s integrated dagger!")
+ to_chat(usr, span_notice("You unlock [src]'s integrated dagger!"))
items_list += new /obj/item/pen/edagger(src)
return TRUE
diff --git a/modular_sand/code/modules/telescience/telesci_computer.dm b/modular_sand/code/modules/telescience/telesci_computer.dm
index a6ea1c57ff..456ff83891 100644
--- a/modular_sand/code/modules/telescience/telesci_computer.dm
+++ b/modular_sand/code/modules/telescience/telesci_computer.dm
@@ -48,7 +48,7 @@
/obj/machinery/computer/telescience/examine(mob/user)
. = ..()
- . += "There are [crystals ? crystals : "no"] bluespace crystal\s in the crystal slots."
+ . += span_notice("There are [crystals ? crystals : "no"] bluespace crystal\s in the crystal slots.")
/obj/machinery/computer/telescience/Initialize(mapload)
. = ..()
@@ -56,18 +56,18 @@
crystals = starting_crystals
/obj/machinery/computer/telescience/attack_paw(mob/user)
- to_chat(user, "You are too primitive to use this computer!")
+ to_chat(user, span_warning("You are too primitive to use this computer!"))
return
/obj/machinery/computer/telescience/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/stack/ore/bluespace_crystal))
var/obj/item/stack/ore/bluespace_crystal/CRYSTAL = W
if(crystals >= max_crystals)
- to_chat(user, "There are not enough crystal slots.")
+ to_chat(user, span_warning("There are not enough crystal slots."))
return
if(!user.dropItemToGround(user.get_active_held_item()))
return
- user.visible_message("[user] inserts [CRYSTAL] into \the [src]'s crystal slot.", "You insert [CRYSTAL] into \the [src]'s crystal slot.")
+ user.visible_message("[user] inserts [CRYSTAL] into \the [src]'s crystal slot.", span_notice("You insert [CRYSTAL] into \the [src]'s crystal slot."))
balloon_alert(user, "inserted bluespace")
CRYSTAL.use(1)
crystals++
@@ -79,7 +79,7 @@
if(!user.transferItemToLoc(W, src))
return
inserted_gps = W
- user.visible_message("[user] inserts [W] into \the [src]'s GPS device slot.", "You insert [W] into \the [src]'s GPS device slot.")
+ user.visible_message("[user] inserts [W] into \the [src]'s GPS device slot.", span_notice("You insert [W] into \the [src]'s GPS device slot."))
balloon_alert(user, "inserted GPS")
else if(W.tool_behaviour == TOOL_MULTITOOL)
if(W.buffer && istype(W.buffer, /obj/machinery/telepad))
@@ -180,7 +180,7 @@
/obj/machinery/computer/telescience/proc/telefail()
sparks()
- visible_message("The telepad weakly fizzles.")
+ visible_message(span_warning("The telepad weakly fizzles."))
/obj/machinery/computer/telescience/proc/doteleport(mob/user)
diff --git a/modular_sand/code/modules/tgs/chat_commands.dm b/modular_sand/code/modules/tgs/chat_commands.dm
index e502eb3acc..c87de31a3d 100644
--- a/modular_sand/code/modules/tgs/chat_commands.dm
+++ b/modular_sand/code/modules/tgs/chat_commands.dm
@@ -20,6 +20,6 @@
/datum/tgs_chat_command/restart/Run(datum/tgs_chat_user/sender)
. = "Restarting."
- to_chat(world, "Server restart - Initialized by [sender.friendly_name] on Discord.")
+ to_chat(world, span_boldwarning("Server restart - Initialized by [sender.friendly_name] on Discord."))
send2adminchat("Server", "[sender.friendly_name] forced a restart.")
addtimer(CALLBACK(src, world.TgsEndProcess()), 1 SECONDS)
diff --git a/tgstation.dme b/tgstation.dme
index 110012f0c5..5922f1271a 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -240,6 +240,7 @@
#include "code\__SANDCODE\DEFINES\runechat_defines.dm"
#include "code\__SANDCODE\DEFINES\signals.dm"
#include "code\__SANDCODE\DEFINES\sizecode.dm"
+#include "code\__SANDCODE\DEFINES\spans.dm"
#include "code\__SANDCODE\DEFINES\status_effects.dm"
#include "code\__SANDCODE\DEFINES\strippable.dm"
#include "code\__SANDCODE\DEFINES\subsystems.dm"