diff --git a/code/__defines/span.dm b/code/__defines/span.dm
index fe949e69b0..2459b4d9f9 100644
--- a/code/__defines/span.dm
+++ b/code/__defines/span.dm
@@ -226,6 +226,8 @@
#define span_massive(str) "" + str + ""
+#define span_extramassive(str) "" + str + ""
+
#define span_narsie(str) "" + str + ""
#define span_cascade(str) "" + str + ""
diff --git a/code/__defines/vv.dm b/code/__defines/vv.dm
index 977a282d60..13b7f2eb98 100644
--- a/code/__defines/vv.dm
+++ b/code/__defines/vv.dm
@@ -20,9 +20,9 @@
#define VV_MARKED_DATUM "Marked Datum"
#define VV_BITFIELD "Bitfield"
-#define VV_MSG_MARKED "
Marked Object"
-#define VV_MSG_EDITED "
Var Edited"
-#define VV_MSG_DELETED "
Deleted"
+#define VV_MSG_MARKED "
" + span_small(span_red(span_bold("Marked Object")))
+#define VV_MSG_EDITED "
" + span_small(span_red(span_bold("Var Edited")))
+#define VV_MSG_DELETED "
" + span_small(span_red(span_bold("Deleted")))
#define VV_NORMAL_LIST_NO_EXPAND_THRESHOLD 50
#define VV_SPECIAL_LIST_NO_EXPAND_THRESHOLD 150
diff --git a/code/_helpers/logging.dm b/code/_helpers/logging.dm
index 29e5bd05dc..93862ae051 100644
--- a/code/_helpers/logging.dm
+++ b/code/_helpers/logging.dm
@@ -371,7 +371,7 @@
name = M.name
if(include_link && is_special_character(M) && highlight_special_characters)
- name = "[name]" //Orange
+ name = span_orange("[name]") //Orange
. += "/([name])"
diff --git a/code/controllers/subsystems/events.dm b/code/controllers/subsystems/events.dm
index 2e91ad3b15..1a7ce0a4aa 100644
--- a/code/controllers/subsystems/events.dm
+++ b/code/controllers/subsystems/events.dm
@@ -76,7 +76,7 @@ SUBSYSTEM_DEF(events)
if(!report_at_round_end)
return
- to_chat(world, "
Random Events This Round:")
+ to_chat(world, "
" + span_large(span_bold("Random Events This Round:")))
for(var/datum/event/E in active_events|finished_events)
var/datum/event_meta/EM = E.event_meta
if(EM.name == "Nothing")
diff --git a/code/controllers/subsystems/statpanel.dm b/code/controllers/subsystems/statpanel.dm
index bd3dba2ac4..413c38d343 100644
--- a/code/controllers/subsystems/statpanel.dm
+++ b/code/controllers/subsystems/statpanel.dm
@@ -158,17 +158,17 @@ SUBSYSTEM_DEF(statpanels)
target.obj_window.atoms_to_show += target.obj_window.examine_target
START_PROCESSING(SSobj_tab_items, target.obj_window)
refresh_client_obj_view(target)
- examine_update += "[target.examine_icon] [description_holders["name"]]" //The name, written in big letters.
+ examine_update += "[target.examine_icon] " + span_giant("[description_holders["name"]]") //The name, written in big letters.
examine_update += "[description_holders["desc"]]" //the default examine text.
if(description_holders["info"])
- examine_update += "" + span_bold("[replacetext(description_holders["info"], "\n", "
")]") + "
" //Blue, informative text.
+ examine_update += span_blue(span_bold("[replacetext(description_holders["info"], "\n", "
")]")) + "
" //Blue, informative text.
if(description_holders["interactions"])
for(var/line in description_holders["interactions"])
- examine_update += "" + span_bold("[line]") + "
"
+ examine_update += span_blue(span_bold("[line]")) + "
"
if(description_holders["fluff"])
- examine_update += "" + span_bold("[replacetext(description_holders["fluff"], "\n", "
")]") + "
" //Green, fluff-related text.
+ examine_update += span_green(span_bold("[replacetext(description_holders["fluff"], "\n", "
")]")) + "
" //Green, fluff-related text.
if(description_holders["antag"])
- examine_update += "" + span_bold("[description_holders["antag"]]") + "
" //Red, malicious antag-related text
+ examine_update += span_red(span_bold("[description_holders["antag"]]")) + "
" //Red, malicious antag-related text
target.stat_panel.send_message("update_examine", examine_update)
diff --git a/code/datums/managed_browsers/changelingevolution.dm b/code/datums/managed_browsers/changelingevolution.dm
index 635b9dd9b5..e09511fef5 100644
--- a/code/datums/managed_browsers/changelingevolution.dm
+++ b/code/datums/managed_browsers/changelingevolution.dm
@@ -103,18 +103,18 @@
my_client.mob.mind.changeling.purchasePower(M, Thepower)
if(href_list["tutorial"])
- textbody = "
| " + span_grey(span_bold("Civilian")) + " | "//Grey
for(var/job in civilian_positions)
counter++
if(counter >= 6)
@@ -124,7 +124,7 @@
accesses += ""
for(var/A in get_region_accesses(i))
if(A in writer.GetAccess())
- accesses += topic_link(src,"access=[A]","[replacetext(get_access_desc(A), " ", " ")]") + " "
+ accesses += topic_link(src,"access=[A]",span_red("[replacetext(get_access_desc(A), " ", " ")]")) + " "
else
accesses += topic_link(src,"access=[A]",replacetext(get_access_desc(A), " ", " ")) + " "
accesses += " "
@@ -185,7 +185,7 @@
L += R
for(var/R in sortList(L))
crew += "[R] "
- return "Crew Manifest: Please use security record computer to modify entries.
[crew][topic_link(src,"print","Print")]
[topic_link(src,"mode=0","Access ID modification console.")] "
+ return "" + span_bold("Crew Manifest:") + " Please use security record computer to modify entries.
[crew][topic_link(src,"print","Print")]
[topic_link(src,"mode=0","Access ID modification console.")] "
// These are here partly in order to be overwritten by the centcom card computer code
/datum/file/program/card_comp/proc/authenticate()
@@ -336,7 +336,7 @@
var/accesses = "[using_map.boss_name]:"
for(var/A in get_all_centcom_access())
if(A in writer.GetAccess())
- accesses += topic_link(src,"access=[A]","[replacetext(get_centcom_access_desc(A), " ", " ")]") + " "
+ accesses += topic_link(src,"access=[A]",span_red("[replacetext(get_centcom_access_desc(A), " ", " ")]")) + " "
else
accesses += topic_link(src,"access=[A]",replacetext(get_centcom_access_desc(A), " ", " ")) + " "
return accesses
diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm
index c6b20d01fe..b337e6b2ca 100644
--- a/code/game/machinery/doors/airlock_electronics.dm
+++ b/code/game/machinery/doors/airlock_electronics.dm
@@ -39,7 +39,7 @@
t1 += "Access requirement is set to "
t1 += one_access ? "ONE " : "ALL "
- t1 += conf_access == null ? "All " : "All "
+ t1 += conf_access == null ? span_red("All") + " " : "All "
t1 += " "
diff --git a/code/game/machinery/pandemic.dm b/code/game/machinery/pandemic.dm
index 54791587ed..55db46704a 100644
--- a/code/game/machinery/pandemic.dm
+++ b/code/game/machinery/pandemic.dm
@@ -337,7 +337,7 @@
var/signature
if(tgui_alert(user, "Would you like to add your signature?", "Signature", list("Yes","No")) == "Yes")
- signature = "[user ? user.real_name : "Anonymous"]"
+ signature = "" + span_italics("[user ? user.real_name : "Anonymous"]") + ""
else
signature = ""
@@ -346,17 +346,17 @@
visible_message(span_notice("[src] rattles and prints out a sheet of paper."))
playsound(loc, 'sound/machines/printer.ogg', 50, 1)
- P.info = " Releasing Virus "
+ P.info = span_underline(span_huge(span_bold(" Releasing Virus ")))
P.info += " "
- P.info += "Name of the Virus: [D.name] "
- P.info += "Symptoms: [symtoms] "
- P.info += "Spreads by: [D.spread_text] "
- P.info += "Cured by: [D.cure_text] "
+ P.info += span_underline("Name of the Virus:") + " [D.name] "
+ P.info += span_underline("Symptoms:") + " [symtoms] "
+ P.info += span_underline("Spreads by:") + " [D.spread_text] "
+ P.info += span_underline("Cured by:") + " [D.cure_text] "
P.info += " "
- P.info += "Reason for releasing: [reason]"
+ P.info += span_underline("Reason for releasing:") + " [reason]"
P.info += " "
P.info += "The Virologist is responsible for any biohazards caused by the virus released. "
- P.info += "Virologist's sign: [signature] "
+ P.info += span_underline("Virologist's sign:") + " [signature] "
P.info += "If approved, stamp below with the Chief Medical Officer's stamp, and/or the Captain's stamp if required:"
P.updateinfolinks()
P.name = "Releasing Virus - [D.name]"
diff --git a/code/game/machinery/records_scanner.dm b/code/game/machinery/records_scanner.dm
index eb4a74aa3c..e7fa6f487b 100644
--- a/code/game/machinery/records_scanner.dm
+++ b/code/game/machinery/records_scanner.dm
@@ -59,16 +59,15 @@
marks += row["rank"]
qdel(cquery)
*/
- var/text = {"
- Report
- Name: [mname]
- Age: [age]
- Sex: [gender]
- DNA: [dna]
- Blood Type: [bloodtype]
- Fingerprint: [fingerprint]
-
- Black Marks: "}
+ var/text = "\
+ " span_huge("Report") + " \
+ " + span_bold(span_underline("Name")) + " : [mname]\
+ " + span_bold(span_underline("Age")) + " : [age]\
+ " + span_bold(span_underline("Sex")) + " : [gender]\
+ " + span_bold(span_underline("DNA")) + " : [dna]\
+ " + span_bold(span_underline("Blood Type")) + " : [bloodtype]\
+ " + span_bold(span_underline("Fingerprint")) + " : [fingerprint]\
+ " + span_bold(span_underline("Black Marks")) + " : "
for(var/A in marks)
text += span_danger("[A]") + " "
to_chat(user, span_notice("You feel a sting as the scanner extracts some of your blood."))
diff --git a/code/game/machinery/requests_console.dm b/code/game/machinery/requests_console.dm
index 8f998d90d9..70ab58035e 100644
--- a/code/game/machinery/requests_console.dm
+++ b/code/game/machinery/requests_console.dm
@@ -255,7 +255,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
if(inoperable(MAINT)) return
if(screen == RCS_MESSAUTH)
var/obj/item/card/id/T = O
- msgVerified = text("Verified by [T.registered_name] ([T.assignment])")
+ msgVerified = span_green(span_bold("Verified by [T.registered_name] ([T.assignment])"))
SStgui.update_uis(src)
if(screen == RCS_ANNOUNCE)
var/obj/item/card/id/ID = O
@@ -270,7 +270,7 @@ var/list/obj/machinery/requests_console/allConsoles = list()
if(inoperable(MAINT)) return
if(screen == RCS_MESSAUTH)
var/obj/item/stamp/T = O
- msgStamped = text("Stamped with the [T.name]")
+ msgStamped = span_blue(span_bold("Stamped with the [T.name]"))
SStgui.update_uis(src)
return
diff --git a/code/game/machinery/syndicatebeacon.dm b/code/game/machinery/syndicatebeacon.dm
index 6e65c39eb6..a6fed880a7 100644
--- a/code/game/machinery/syndicatebeacon.dm
+++ b/code/game/machinery/syndicatebeacon.dm
@@ -18,17 +18,17 @@
/obj/machinery/syndicate_beacon/attack_hand(var/mob/user as mob)
user.set_machine(src)
- var/dat = "Scanning [pick("retina pattern", "voice print", "fingerprints", "dna sequence")]... Identity confirmed, "
+ var/dat = span_darkgreen(span_italics("Scanning [pick("retina pattern", "voice print", "fingerprints", "dna sequence")]... Identity confirmed, "))
if(ishuman(user) || isAI(user))
if(is_special_character(user))
- dat += "Operative record found. Greetings, Agent [user.name]. "
+ dat += span_darkgreen(span_italics("Operative record found. Greetings, Agent [user.name]. "))
else if(charges < 1)
dat += "Connection severed. "
else
var/honorific = "Mr."
if(user.gender == FEMALE)
honorific = "Ms."
- dat += "Identity not found in operative database. What can the Syndicate do for you today, [honorific] [user.name]? "
+ dat += span_red(span_italics("Identity not found in operative database. What can the Syndicate do for you today, [honorific] [user.name]? "))
if(!selfdestructing)
dat += "
\"[pick("I want to switch teams.", "I want to work for you.", "Let me join you.", "I can be of use to you.", "You want me working for you, and here's why...", "Give me an objective.", "How's the 401k over at the Syndicate?")]\" "
dat += temptext
@@ -44,13 +44,13 @@
return
var/mob/M = locate(href_list["traitormob"])
if(M.mind.special_role || jobban_isbanned(M, JOB_SYNDICATE))
- temptext = "We have no need for you at this time. Have a pleasant day. "
+ temptext = span_italics("We have no need for you at this time. Have a pleasant day.") + " "
updateUsrDialog(usr)
return
charges -= 1
switch(rand(1,2))
if(1)
- temptext = "Double-crosser. You planned to betray us from the start. Allow us to repay the favor in kind."
+ temptext = span_red(span_italics(span_bold("Double-crosser. You planned to betray us from the start. Allow us to repay the favor in kind.")))
updateUsrDialog(usr)
spawn(rand(50,200)) selfdestruct()
return
diff --git a/code/game/machinery/syndicatebeacon_vr.dm b/code/game/machinery/syndicatebeacon_vr.dm
index dd3f00cb5d..356ba99d6d 100644
--- a/code/game/machinery/syndicatebeacon_vr.dm
+++ b/code/game/machinery/syndicatebeacon_vr.dm
@@ -2,17 +2,17 @@
/obj/machinery/syndicate_beacon/virgo/attack_hand(var/mob/user)
user.set_machine(src)
- var/dat = "Scanning [pick("retina pattern", "voice print", "fingerprints", "dna sequence")]... Identity confirmed, "
+ var/dat = span_darkgreen(span_italics("Scanning [pick("retina pattern", "voice print", "fingerprints", "dna sequence")]... Identity confirmed, "))
if(ishuman(user) || isAI(user))
if(is_special_character(user))
- dat += "Operative record found. Greetings, Agent [user.name]. "
+ dat += span_darkgreen(span_italics("Operative record found. Greetings, Agent [user.name]. "))
else if(charges < 1)
dat += "Connection severed. "
else
var/honorific = "Mr."
if(user.gender == FEMALE)
honorific = "Ms."
- dat += "Identity not found in operative database. What can the Black Market do for you today, [honorific] [user.name]? "
+ dat += span_red(span_italics("Identity not found in operative database. What can the Black Market do for you today, [honorific] [user.name]? "))
if(!selfdestructing)
dat += "
\"[pick("Send me some supplies!", "Transfer supplies.")]\" "
dat += temptext
diff --git a/code/game/machinery/telecomms/traffic_control.dm b/code/game/machinery/telecomms/traffic_control.dm
index 9d3da2bef7..ad2177261e 100644
--- a/code/game/machinery/telecomms/traffic_control.dm
+++ b/code/game/machinery/telecomms/traffic_control.dm
@@ -149,7 +149,7 @@
if("scan")
if(servers.len > 0)
- temp = "- FAILED: CANNOT PROBE WHEN BUFFER FULL -"
+ temp = span_red("- FAILED: CANNOT PROBE WHEN BUFFER FULL -")
else
for(var/obj/machinery/telecomms/server/T in range(25, src))
@@ -157,9 +157,9 @@
servers.Add(T)
if(!servers.len)
- temp = "- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -"
+ temp = span_red("- FAILED: UNABLE TO LOCATE SERVERS IN \[[network]\] -")
else
- temp = "- [servers.len] SERVERS PROBED & BUFFERED -"
+ temp = span_blue("- [servers.len] SERVERS PROBED & BUFFERED -")
screen = 0
@@ -197,14 +197,14 @@
if(newnet && ((usr in range(1, src)) || issilicon(usr)))
if(length(newnet) > 15)
- temp = "- FAILED: NETWORK TAG STRING TOO LENGHTLY -"
+ temp = span_red("- FAILED: NETWORK TAG STRING TOO LENGHTLY -")
else
network = newnet
screen = 0
servers = list()
- temp = "- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -"
+ temp = span_blue("- NEW NETWORK TAG SET IN ADDRESS \[[network]\] -")
updateUsrDialog(usr)
return
diff --git a/code/game/magic/archived_book.dm b/code/game/magic/archived_book.dm
index 36da263386..a4630f9c62 100644
--- a/code/game/magic/archived_book.dm
+++ b/code/game/magic/archived_book.dm
@@ -54,7 +54,7 @@ var/global/datum/book_manager/book_mgr = new()
establish_old_db_connection()
if(!SSdbcore.IsConnected())
- dat += "ERROR: Unable to contact External Archive. Please contact your system administrator for assistance."
+ dat += span_red(span_bold("ERROR") + ": Unable to contact External Archive. Please contact your system administrator for assistance.")
else
dat += {"(Order book by SS13BN)
diff --git a/code/game/mecha/combat/fighter.dm b/code/game/mecha/combat/fighter.dm
index 36dc2e670e..2e0217bc44 100644
--- a/code/game/mecha/combat/fighter.dm
+++ b/code/game/mecha/combat/fighter.dm
@@ -238,7 +238,7 @@
/obj/mecha/combat/fighter/Bump(atom/obstacle)
. = ..()
if(istype(obstacle, /obj) || istype(obstacle, /turf))
- occupant_message("COLLISION ALERT!")
+ occupant_message(span_bolddanger(span_large("COLLISION ALERT!")))
take_damage(20, "brute")
playsound(src, 'sound/mecha/fighter/fighter_collision.ogg', 50)
diff --git a/code/game/mecha/equipment/tools/sleeper.dm b/code/game/mecha/equipment/tools/sleeper.dm
index 45e12b412c..5bd3c26fe5 100644
--- a/code/game/mecha/equipment/tools/sleeper.dm
+++ b/code/game/mecha/equipment/tools/sleeper.dm
@@ -149,13 +149,32 @@
t1 = "*dead*"
else
t1 = "Unknown"
- return {"Health: [occupant.health]% ([t1])
- Core Temperature: [src.occupant.bodytemperature-T0C]°C ([src.occupant.bodytemperature*1.8-459.67]°F)
- Brute Damage: [occupant.getBruteLoss()]%
- Respiratory Damage: [occupant.getOxyLoss()]%
- Toxin Content: [occupant.getToxLoss()]%
- Burn Severity: [occupant.getFireLoss()]%
- "}
+ var/text = ""
+ var/entry = span_bold("Health:") + " [occupant.health]% ([t1])"
+ text += occupant.health > 50 ? span_blue(entry) : span_red(entry)
+ text += " "
+
+ entry = span_bold("Core Temperature:") + " [src.occupant.bodytemperature-T0C]°C ([src.occupant.bodytemperature*1.8-459.67]°F)"
+ text += occupant.bodytemperature > 50 ? span_blue(entry) : span_red(entry)
+ text += " "
+
+ entry = span_bold("Brute Damage:") + " [occupant.getBruteLoss()]%"
+ text += occupant.getBruteLoss() < 60 ? span_blue(entry) : span_red(entry)
+ text += " "
+
+ entry = span_bold("Respiratory Damage:") + " [occupant.getOxyLoss()]%"
+ text += occupant.getOxyLoss() < 60 ? span_blue(entry) : span_red(entry)
+ text += " "
+
+ entry = span_bold("Toxin Content:") + " [occupant.getToxLoss()]%"
+ text += occupant.getToxLoss() < 60 ? span_blue(entry) : span_red(entry)
+ text += " "
+
+ entry = span_bold("Burn Severity:") + " [occupant.getFireLoss()]%"
+ text += occupant.getFireLoss() < 60 ? span_blue(entry) : span_red(entry)
+ text += " "
+
+ return text
/obj/item/mecha_parts/mecha_equipment/tool/sleeper/proc/get_occupant_reagents()
if(occupant.reagents)
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index 2a8c08be57..89851235bb 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -1593,8 +1593,8 @@
V.show_message("The [W] bounces off [src.name] armor.", 1)
*/
else
- src.occupant_message("[user] hits [src] with [W].")
- user.visible_message("[user] hits [src] with [W].", "You hit [src] with [W].")
+ src.occupant_message(span_boldwarning("[user] hits [src] with [W].")))
+ user.visible_message(span_boldwarning("[user] hits [src] with [W]."))", span_boldwarning("You hit [src] with [W].")))
src.take_damage(W.force,W.damtype)
src.check_for_internal_damage(list(MECHA_INT_TEMP_CONTROL,MECHA_INT_TANK_BREACH,MECHA_INT_CONTROL_LOST))
*/
@@ -2206,11 +2206,11 @@
/obj/mecha/proc/report_internal_damage()
var/output = null
var/list/dam_reports = list(
- "[MECHA_INT_FIRE]" = "INTERNAL FIRE",
- "[MECHA_INT_TEMP_CONTROL]" = "LIFE SUPPORT SYSTEM MALFUNCTION",
- "[MECHA_INT_TANK_BREACH]" = "GAS TANK BREACH",
- "[MECHA_INT_CONTROL_LOST]" = "COORDINATION SYSTEM CALIBRATION FAILURE - Recalibrate",
- "[MECHA_INT_SHORT_CIRCUIT]" = "SHORT CIRCUIT"
+ "[MECHA_INT_FIRE]" = span_red(span_bold("INTERNAL FIRE")),
+ "[MECHA_INT_TEMP_CONTROL]" = span_red(span_bold("LIFE SUPPORT SYSTEM MALFUNCTION")),
+ "[MECHA_INT_TANK_BREACH]" = span_red(span_bold("GAS TANK BREACH")),
+ "[MECHA_INT_CONTROL_LOST]" = span_red(span_bold("COORDINATION SYSTEM CALIBRATION FAILURE")) + " - Recalibrate",
+ "[MECHA_INT_SHORT_CIRCUIT]" = span_red(span_bold("SHORT CIRCUIT"))
)
for(var/tflag in dam_reports)
var/intdamflag = text2num(tflag)
@@ -2218,7 +2218,7 @@
output += dam_reports[tflag]
output += " "
if(return_pressure() > WARNING_HIGH_PRESSURE)
- output += "DANGEROUSLY HIGH CABIN PRESSURE "
+ output += span_red(span_bold("DANGEROUSLY HIGH CABIN PRESSURE")) + " "
return output
@@ -2235,13 +2235,13 @@
var/output = {"[report_internal_damage()]
Armor Integrity: [AC?"[round(AC.integrity / AC.max_integrity * 100, 0.1)]%":span_warning("ARMOR MISSING")]
Hull Integrity: [HC?"[round(HC.integrity / HC.max_integrity * 100, 0.1)]%":span_warning("HULL MISSING")]
- [integrity<30?"DAMAGE LEVEL CRITICAL ":null]
+ [integrity<30? span_red(span_bold("DAMAGE LEVEL CRITICAL")) + " ":null]
Chassis Integrity: [integrity]%
Powercell charge: [isnull(cell_charge)?"No powercell installed":"[cell.percent()]%"]
Air source: [use_internal_tank?"Internal Airtank":"Environment"]
Airtank pressure: [tank_pressure]kPa
Airtank temperature: [tank_temperature]K|[tank_temperature - T0C]°C
- Cabin pressure: [cabin_pressure>WARNING_HIGH_PRESSURE ? "[cabin_pressure]": cabin_pressure]kPa
+ Cabin pressure: [cabin_pressure>WARNING_HIGH_PRESSURE ? span_red("[cabin_pressure]"): cabin_pressure]kPa
Cabin temperature: [return_temperature()]K|[return_temperature() - T0C]°C
Lights: [lights?"on":"off"]
[src.dna?"DNA-locked: [src.dna] \[Reset\] ":null]
@@ -2387,7 +2387,7 @@
var/a_name = get_access_desc(a)
if(!a_name) continue //there's some strange access without a name
output += "[a_name] - Add "
- output += " Finish (Warning! The ID upload panel will be locked. It can be unlocked only through Exosuit Interface.)"
+ output += " Finish " + span_red("(Warning! The ID upload panel will be locked. It can be unlocked only through Exosuit Interface.)")
output += ""
user << browse(output, "window=exosuit_add_access")
onclose(user, "exosuit_add_access")
@@ -2430,12 +2430,16 @@
/obj/mecha/proc/log_message(message as text,red=null)
log.len++
- log[log.len] = list("time"=world.timeofday,"message"="[red?"":null][message][red?"":null]")
+ if(red)
+ message = span_red(message)
+ log[log.len] = list("time"=world.timeofday,"message"=message)
return log.len
/obj/mecha/proc/log_append_to_last(message as text,red=null)
var/list/last_entry = src.log[src.log.len]
- last_entry["message"] += " [red?"":null][message][red?"":null]"
+ if(red)
+ message = span_red(message)
+ last_entry["message"] += " " + message
return
diff --git a/code/game/objects/items/devices/paicard.dm b/code/game/objects/items/devices/paicard.dm
index 4723bc7d7d..b89a34df9d 100644
--- a/code/game/objects/items/devices/paicard.dm
+++ b/code/game/objects/items/devices/paicard.dm
@@ -244,10 +244,10 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
if(pai)
dat += {"
- Personal AI Device
+ "} + span_bold("Personal AI Device") + {"
- | [pai.name] |
+ "} + span_bold("[pai.name]") + {" |
| Integrity: [pai.health] |
@@ -300,7 +300,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
"}
else //
dat += span_bold("Radio Uplink") + " "
- dat += "Radio firmware not loaded. Please install a pAI personality to load firmware. "
+ dat += span_red(span_italics("Radio firmware not loaded. Please install a pAI personality to load firmware.")) + " "
/* - //A button for instantly deleting people from the game is lame, especially considering that pAIs on our server tend to activate without a master.
dat += {"
@@ -315,7 +315,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
else
if(looking_for_personality)
dat += {"
- pAI Request Module
+ "} + span_bold("pAI Request Module") + {"
Requesting AI personalities from central database... If there are no entries, or if a suitable entry is not listed, check again later as more personalities may be added.
Searching for personalities
@@ -329,7 +329,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
"}
else
dat += {"
- pAI Request Module
+ "} + span_bold("pAI Request Module") + {"
No personality is installed.
@@ -368,7 +368,7 @@ GLOBAL_LIST_BOILERPLATE(all_pai_cards, /obj/item/paicard)
var/confirm = tgui_alert(usr, "Are you CERTAIN you wish to delete the current personality? This action cannot be undone.", "Personality Wipe", list("Yes", "No"))
if(confirm == "Yes")
for(var/mob/M in src)
- to_chat(M, "You feel yourself slipping away from reality.")
+ to_chat(M, span_red("You feel yourself slipping away from reality."))
to_chat(M, "Byte by byte you lose your sense of self.")
to_chat(M, "Your mental faculties leave you.")
to_chat(M, "oblivion... ")
diff --git a/code/game/objects/items/toys/toys.dm b/code/game/objects/items/toys/toys.dm
index 253b4932a2..6539d9c532 100644
--- a/code/game/objects/items/toys/toys.dm
+++ b/code/game/objects/items/toys/toys.dm
@@ -386,7 +386,7 @@
name = JOB_CLOWN + " action figure"
desc = "A \"Space Life\" brand " + JOB_CLOWN + " action figure."
icon_state = "clown"
- toysay = "Honk!"
+ toysay = "" + span_bold("Honk!") + ""
/obj/item/toy/figure/corgi
name = "Corgi action figure"
diff --git a/code/game/objects/items/weapons/autopsy.dm b/code/game/objects/items/weapons/autopsy.dm
index cfe04ba837..8de0ca3bb1 100644
--- a/code/game/objects/items/weapons/autopsy.dm
+++ b/code/game/objects/items/weapons/autopsy.dm
@@ -111,13 +111,13 @@
if(0)
damage_desc = "Unknown"
if(1 to 5)
- damage_desc = "negligible"
+ damage_desc = span_green("negligible")
if(5 to 15)
- damage_desc = "light"
+ damage_desc = span_green("light")
if(15 to 30)
- damage_desc = "moderate"
+ damage_desc = span_orange("moderate")
if(30 to 1000)
- damage_desc = "severe"
+ damage_desc = span_red("severe")
if(!total_score) total_score = D.organs_scanned.len
diff --git a/code/game/objects/items/weapons/hydroponics.dm b/code/game/objects/items/weapons/hydroponics.dm
index 59944b5a65..b2463cb19e 100644
--- a/code/game/objects/items/weapons/hydroponics.dm
+++ b/code/game/objects/items/weapons/hydroponics.dm
@@ -63,13 +63,12 @@
var/dat = "Select an item: "
if (contents.len == 0)
- dat += "No seeds loaded!"
+ dat += span_red("No seeds loaded!")
else
for (var/O in item_quants)
if(item_quants[O] > 0)
var/N = item_quants[O]
- dat += "[capitalize(O)]:"
- dat += " [N] "
+ dat += span_blue(span_bold("[capitalize(O)]") + ": [N] ")
dat += "Vend"
dat += " "
diff --git a/code/game/objects/items/weapons/implants/implant.dm b/code/game/objects/items/weapons/implants/implant.dm
index bb4ac898d7..d52e1a0dde 100644
--- a/code/game/objects/items/weapons/implants/implant.dm
+++ b/code/game/objects/items/weapons/implants/implant.dm
@@ -136,18 +136,18 @@ GLOBAL_LIST_BOILERPLATE(all_tracking_implants, /obj/item/implant/tracking)
return 1
/obj/item/implant/tracking/get_data()
- var/dat = {"Implant Specifications:
-Name: Tracking Beacon
-Life: 10 minutes after death of host
-Important Notes: None
+ var/dat = {""} +span_bold("Implant Specifications:") + {"
+"} + span_bold("Name:") + {"Tracking Beacon
+"} + span_bold("Life:") + {"10 minutes after death of host
+"} + span_bold("Important Notes:") + {"None
-Implant Details:
-Function: Continuously transmits low power signal. Useful for tracking.
-Special Features:
-Neuro-Safe- Specialized shell absorbs excess voltages self-destructing the chip if
+"} + span_bold("Implant Details:") + {"
+"} + span_bold("Function:") + {"Continuously transmits low power signal. Useful for tracking.
+"} + span_bold("Special Features:") + {"
+"} + span_italics("Neuro-Safe") + {"- Specialized shell absorbs excess voltages self-destructing the chip if
a malfunction occurs thereby securing safety of subject. The implant will melt and
disintegrate into bio-safe elements.
-Integrity: Gradient creates slight risk of being overcharged and frying the
+"} + span_bold("Integrity:") + {"Gradient creates slight risk of being overcharged and frying the
circuitry. As a result neurotoxins can cause massive damage.
Implant Specifics: "}
return dat
@@ -182,15 +182,15 @@ Implant Specifics: "}
/obj/item/implant/dexplosive/get_data()
var/dat = {"
-Implant Specifications:
-Name: Robust Corp RX-78 Employee Management Implant
-Life: Activates upon death.
-Important Notes: Explodes
+"} + span_bold("Implant Specifications:") + {"
+"} + span_bold("Name:") + {"Robust Corp RX-78 Employee Management Implant
+"} + span_bold("Life:") + {"Activates upon death.
+"} + span_bold("Important Notes:") + {"Explodes
-Implant Details:
-Function: Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.
-Special Features: Explodes
-Integrity: Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
+"} + span_bold("Implant Details:") + {"
+"} + span_bold("Function:") + {"Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.
+"} + span_bold("Special Features:") + {"Explodes
+"} + span_bold("Integrity:") + {"Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
@@ -221,15 +221,15 @@ Implant Specifics: "}
/obj/item/implant/explosive/get_data()
var/dat = {"
-Implant Specifications:
-Name: Robust Corp RX-78 Intimidation Class Implant
-Life: Activates upon codephrase.
-Important Notes: Explodes
+"} + span_bold("Implant Specifications:") + {"
+"} + span_bold("Name:") + {"Robust Corp RX-78 Intimidation Class Implant
+"} + span_bold("Life:") + {"Activates upon codephrase.
+"} + span_bold("Important Notes:") + {"Explodes
-Implant Details:
-Function: Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.
-Special Features: Explodes
-Integrity: Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
+"} + span_bold("Implant Details:") + {"
+"} + span_bold("Function:") + {"Contains a compact, electrically detonated explosive that detonates upon receiving a specially encoded signal or upon host death.
+"} + span_bold("Special Features:") + {"Explodes
+"} + span_bold("Integrity:") + {"Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
/obj/item/implant/explosive/hear_talk(mob/M, list/message_pieces, verb)
@@ -357,19 +357,19 @@ GLOBAL_LIST_BOILERPLATE(all_chem_implants, /obj/item/implant/chem)
/obj/item/implant/chem/get_data()
var/dat = {"
-Implant Specifications:
-Name: Robust Corp MJ-420 Prisoner Management Implant
-Life: Deactivates upon death but remains within the body.
-Important Notes: Due to the system functioning off of nutrients in the implanted subject's body, the subject
-will suffer from an increased appetite.
+"} + span_bold("Implant Specifications:") + {"
+"} + span_bold("Name:") + {"Robust Corp MJ-420 Prisoner Management Implant
+"} + span_bold("Life:") + {"Deactivates upon death but remains within the body.
+"} + span_bold("Important Notes: Due to the system functioning off of nutrients in the implanted subject's body, the subject") + {"
+"} + span_bold("will suffer from an increased appetite.") + {"
-Implant Details:
-Function: Contains a small capsule that can contain various chemicals. Upon receiving a specially encoded signal
+"} + span_bold("Implant Details:") + {"
+"} + span_bold("Function:") + {"Contains a small capsule that can contain various chemicals. Upon receiving a specially encoded signal
the implant releases the chemicals directly into the blood stream.
-Special Features:
-Micro-Capsule- Can be loaded with any sort of chemical agent via the common syringe and can hold 50 units.
+Special Features:
+"} + span_italics("Micro-Capsule") + {"- Can be loaded with any sort of chemical agent via the common syringe and can hold 50 units.
Can only be loaded while still in its original case.
-Integrity: Implant will last so long as the subject is alive. However, if the subject suffers from malnutrition,
+"} + span_bold("Integrity:") + {"Implant will last so long as the subject is alive. However, if the subject suffers from malnutrition,
the implant may become unstable and either pre-maturely inject the subject or simply break."}
return dat
@@ -428,15 +428,15 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/implant/loyalty/get_data()
var/dat = {"
-Implant Specifications:
-Name: [using_map.company_name] Employee Management Implant
-Life: Ten years.
-Important Notes: Personnel injected with this device tend to be much more loyal to the company.
+"} + span_bold("Implant Specifications:") + {"
+"} + span_bold("Name:") + {"[using_map.company_name] Employee Management Implant
+"} + span_bold("Life:") + {"Ten years.
+"} + span_bold("Important Notes:") + {"Personnel injected with this device tend to be much more loyal to the company.
-Implant Details:
-Function: Contains a small pod of nanobots that manipulate the host's mental functions.
-Special Features: Will prevent and cure most forms of brainwashing.
-Integrity: Implant will last so long as the nanobots are inside the bloodstream."}
+"} + span_bold("Implant Details:") + {"
+"} + span_bold("Function:") + {"Contains a small pod of nanobots that manipulate the host's mental functions.
+"} + span_bold("Special Features:") + {"Will prevent and cure most forms of brainwashing.
+"} + span_bold("Integrity:") + {"Implant will last so long as the nanobots are inside the bloodstream."}
return dat
/obj/item/implant/loyalty/handle_implant(mob/M, target_zone = BP_TORSO)
@@ -464,15 +464,15 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/implant/adrenalin/get_data()
var/dat = {"
-Implant Specifications:
-Name: Cybersun Industries Adrenalin Implant
-Life: Five days.
-Important Notes: Illegal
+"} + span_bold("Implant Specifications:") + {"
+"} + span_bold("Name:") + {"Cybersun Industries Adrenalin Implant
+"} + span_bold("Life:") + {"Five days.
+"} + span_bold("Important Notes: ") + span_red("llegal") + {"
-Implant Details: Subjects injected with implant can activate a massive injection of adrenalin.
-Function: Contains nanobots to stimulate body to mass-produce Adrenalin.
-Special Features: Will prevent and cure most forms of brainwashing.
-Integrity: Implant can only be used three times before the nanobots are depleted."}
+"} + span_bold("Implant Details:") + {"Subjects injected with implant can activate a massive injection of adrenalin.
+"} + span_bold("Function:") + {"Contains nanobots to stimulate body to mass-produce adrenalin.
+"} + span_bold("Special Features:") + {"Will prevent and cure most forms of brainwashing.
+"} + span_bold("Integrity:") + {"Implant can only be used three times before the nanobots are depleted."}
return dat
@@ -503,15 +503,15 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/implant/death_alarm/get_data()
var/dat = {"
-Implant Specifications:
-Name: [using_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor
-Life: Activates upon death.
-Important Notes: Alerts crew to crewmember death.
+"} + span_bold("Implant Specifications:") + {"
+"} + span_bold("Name:") + {"[using_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor
+"} + span_bold("Life:") + {"Activates upon death.
+"} + span_bold("Important Notes:") + {"Alerts crew to crewmember death.
-Implant Details:
-Function: Contains a compact radio signaler that triggers when the host's lifesigns cease.
-Special Features: Alerts crew to crewmember death.
-Integrity: Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
+"} + span_bold("Implant Details:") + {"
+"} + span_bold("Function:") + {"Contains a compact radio signaler that triggers when the host's lifesigns cease.
+"} + span_bold("Special Features:") + {"Alerts crew to crewmember death.
+"} + span_bold("Integrity:") + {"Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
/obj/item/implant/death_alarm/process()
@@ -588,15 +588,15 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/implant/compressed/get_data()
var/dat = {"
-Implant Specifications:
-Name: [using_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor
-Life: Activates upon death.
-Important Notes: Alerts crew to crewmember death.
+"} + span_bold("Implant Specifications:") + {"
+"} + span_bold("Name:") + {"[using_map.company_name] \"Profit Margin\" Class Employee Lifesign Sensor
+"} + span_bold("Life:") + {"Activates upon death.
+"} + span_bold("Important Notes:") + {"Alerts crew to crewmember death.
-Implant Details:
-Function: Contains a compact radio signaler that triggers when the host's lifesigns cease.
-Special Features: Alerts crew to crewmember death.
-Integrity: Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
+"} + span_bold("Implant Details:") + {"
+"} + span_bold("Function:") + {"Contains a compact radio signaler that triggers when the host's lifesigns cease.
+"} + span_bold("Special Features:") + {"Alerts crew to crewmember death.
+"} + span_bold("Integrity:") + {"Implant will occasionally be degraded by the body's immune system and thus will occasionally malfunction."}
return dat
/obj/item/implant/compressed/trigger(emote, mob/source as mob)
diff --git a/code/game/objects/items/weapons/implants/implantchair.dm b/code/game/objects/items/weapons/implants/implantchair.dm
index 1042c9f8ab..4369659fb5 100644
--- a/code/game/objects/items/weapons/implants/implantchair.dm
+++ b/code/game/objects/items/weapons/implants/implantchair.dm
@@ -29,15 +29,15 @@
var/health_text = ""
if(src.occupant)
if(src.occupant.health <= -100)
- health_text = "Dead"
+ health_text = span_red("Dead")
else if(src.occupant.health < 0)
- health_text = "[round(src.occupant.health,0.1)]"
+ health_text = span_red("[round(src.occupant.health,0.1)]")
else
health_text = "[round(src.occupant.health,0.1)]"
var/dat = span_bold("Implanter Status") + " "
- dat += span_bold("Current occupant:") + " [src.occupant ? " Name: [src.occupant] Health: [health_text] " : "None"] "
+ dat += span_bold("Current occupant:") + " [src.occupant ? " Name: [src.occupant] Health: [health_text] " : span_red("None")] "
dat += span_bold("Implants:") + " [src.implant_list.len ? "[implant_list.len]" : "Replenish"] "
if(src.occupant)
dat += "[src.ready ? "Implant" : "Recharging"] "
diff --git a/code/game/objects/items/weapons/implants/implantfreedom.dm b/code/game/objects/items/weapons/implants/implantfreedom.dm
index 34d6921821..8285a27bbe 100644
--- a/code/game/objects/items/weapons/implants/implantfreedom.dm
+++ b/code/game/objects/items/weapons/implants/implantfreedom.dm
@@ -49,22 +49,22 @@
return
/obj/item/implant/freedom/post_implant(mob/source)
- source.mind.store_memory("Freedom implant can be activated by using the [src.activation_emote] emote, say *[src.activation_emote] to attempt to activate.", 0, 0)
- to_chat(source, "The implanted freedom implant can be activated by using the [src.activation_emote] emote, say *[src.activation_emote] to attempt to activate.")
+ source.mind.store_memory("Freedom implant can be activated by using the [src.activation_emote] emote, " + span_bold("say *[src.activation_emote] ") + "to attempt to activate.", 0, 0)
+ to_chat(source, "The implanted freedom implant can be activated by using the [src.activation_emote] emote, " + span_bold("say *[src.activation_emote]") + "to attempt to activate.")
/obj/item/implant/freedom/get_data()
var/dat = {"
-Implant Specifications:
-Name: Freedom Beacon
-Life: optimum 5 uses
-Important Notes: Illegal
+"} + span_bold("Implant Specifications:") + {"
+"} + span_bold("Name:") + {"Freedom Beacon
+"} + span_bold("Life:") + {"optimum 5 uses
+"} + span_bold("Important Notes:") + span_red("Illegal") + {"
-Implant Details:
-Function: Transmits a specialized cluster of signals to override handcuff locking
+"} + span_bold("Implant Details:") + {"
+"} + span_bold("Function:") + {"Transmits a specialized cluster of signals to override handcuff locking
mechanisms
-Special Features:
-Neuro-Scan- Analyzes certain shadow signals in the nervous system
-Integrity: The battery is extremely weak and commonly after injection its
+"} + span_bold("Special Features:") + {"
+"} + span_italics("Neuro-Scan") + {"- Analyzes certain shadow signals in the nervous system
+"} + span_bold("Integrity:") + {"The battery is extremely weak and commonly after injection its
life can drive down to only 1 use.
No Implant Specifics"}
return dat
diff --git a/code/game/objects/items/weapons/manuals.dm b/code/game/objects/items/weapons/manuals.dm
index d8d1e99b52..52dcb2d808 100644
--- a/code/game/objects/items/weapons/manuals.dm
+++ b/code/game/objects/items/weapons/manuals.dm
@@ -33,9 +33,9 @@
Setting up the accelerator
- - Wrench all pieces to the floor
- - Add wires to all the pieces
- - Close all the panels with your screwdriver
+ - "} + span_bold("Wrench") + {" all pieces to the floor
+ - Add "} + span_bold("wires") + {" to all the pieces
+ - Close all the panels with your "} + span_bold("screwdriver") + {"
Using the accelerator
@@ -44,7 +44,7 @@
Open the control panel
Set the speed to 2
Start firing at the singularity generator
- When the singularity reaches a large enough size so it starts moving on it's own set the speed down to 0, but don't shut it off
+ "} + span_red(span_bold("When the singularity reaches a large enough size so it starts moving on it's own set the speed down to 0, but don't shut it off")) + {"
Remember to wear a radiation suit when working with this machine... we did tell you that at the start, right?
@@ -132,7 +132,7 @@
Ensure the engine room has power. The blast doors and ejection platform are unresponsive without power.
Press Engine Ventilatory Control button to open engine core blast door to space. (In CE Office and next to the reactor shroud)
Press Emergency Core Eject button to eject supermatter crystal. (In CE Office, only) NOTE: Attempting crystal ejection while engine core vent is closed will result in ejection failure.
- In event of ejection failure, good luck.
+ In event of ejection failure, "} + span_italics("good luck.") + {"
|