Merge pull request #15663 from deathride58/blockquotes

Blockquotes for chat; Prettier examine text and more!
This commit is contained in:
silicons
2022-06-10 22:09:12 -07:00
committed by GitHub
24 changed files with 196 additions and 89 deletions

View File

@@ -346,9 +346,9 @@
/datum/component/embedded/proc/examineTurf(datum/source, mob/user, list/examine_list)
if(harmful)
examine_list += "\t <a href='?src=[REF(src)];embedded_object=[REF(weapon)]' class='warning'>There is \a [weapon] embedded in [parent]!</a>"
examine_list += "<a href='?src=[REF(src)];embedded_object=[REF(weapon)]' class='warning'>There is \a [weapon] embedded in [parent]!</a>"
else
examine_list += "\t <a href='?src=[REF(src)];embedded_object=[REF(weapon)]' class='warning'>There is \a [weapon] stuck to [parent]!</a>"
examine_list += "<a href='?src=[REF(src)];embedded_object=[REF(weapon)]' class='warning'>There is \a [weapon] stuck to [parent]!</a>"
/// Someone is ripping out the item from the turf by hand

View File

@@ -50,7 +50,7 @@
STOP_PROCESSING(SSobj, src)
/datum/component/mood/proc/print_mood(mob/user)
var/msg = "<span class='info'>*---------*\n<EM>Your current mood</EM>\n"
var/msg = "<blockquote class='[sanity > SANITY_DISTURBED ? "nicegreen" : "warning"]'><span class='info'><EM>Your current mood</EM></span>\n"
msg += "<span class='notice'>My mental status: </span>" //Long term
switch(sanity)
if(SANITY_GREAT to INFINITY)
@@ -69,23 +69,23 @@
msg += "<span class='notice'>My current mood: </span>" //Short term
switch(mood_level)
if(1)
msg += "<span class='boldwarning'>I wish I was dead!<span>\n"
msg += "<span class='boldwarning'>I wish I was dead!</span>\n"
if(2)
msg += "<span class='boldwarning'>I feel terrible...<span>\n"
msg += "<span class='boldwarning'>I feel terrible...</span>\n"
if(3)
msg += "<span class='boldwarning'>I feel very upset.<span>\n"
msg += "<span class='boldwarning'>I feel very upset.</span>\n"
if(4)
msg += "<span class='boldwarning'>I'm a bit sad.<span>\n"
msg += "<span class='boldwarning'>I'm a bit sad.</span>\n"
if(5)
msg += "<span class='nicegreen'>I'm alright.<span>\n"
msg += "<span class='nicegreen'>I'm alright.</span>\n"
if(6)
msg += "<span class='nicegreen'>I feel pretty okay.<span>\n"
msg += "<span class='nicegreen'>I feel pretty okay.</span>\n"
if(7)
msg += "<span class='nicegreen'>I feel pretty good.<span>\n"
msg += "<span class='nicegreen'>I feel pretty good.</span>\n"
if(8)
msg += "<span class='nicegreen'>I feel amazing!<span>\n"
msg += "<span class='nicegreen'>I feel amazing!</span>\n"
if(9)
msg += "<span class='nicegreen'>I love life!<span>\n"
msg += "<span class='nicegreen'>I love life!</span>\n"
msg += "<span class='notice'>Moodlets:\n</span>"//All moodlets
if(mood_events.len)
@@ -93,7 +93,8 @@
var/datum/mood_event/event = mood_events[i]
msg += event.description
else
msg += "<span class='nicegreen'>I don't have much of a reaction to anything right now.<span>\n"
msg += "<span class='nicegreen'>I don't have much of a reaction to anything right now.</span>\n"
msg += "</blockquote>"
to_chat(user || parent, msg)
///Called after moodevent/s have been added/removed.

View File

@@ -118,7 +118,7 @@
if(WOUND_SEVERITY_LOSS)
msg = "[victim.p_their(TRUE)] [limb.name] [description]." // different format
msg = "<span class='notice'><i><b>[msg]</b></i></span>"
return "\t[msg]"
return "[msg]"
/// Whether a scar can currently be seen by the viewer
/datum/scar/proc/is_visible(mob/viewer)

View File

@@ -167,7 +167,7 @@
if(WOUND_INFECTION_SEPTIC to INFINITY)
. += "Infection Level: <span class='deadsay'>LOSS IMMINENT</span>\n"
if(infestation > sanitization)
. += "\tSurgical debridement, antiobiotics/sterilizers, or regenerative mesh will rid infection. Paramedic UV penlights are also effective.\n"
. += "Surgical debridement, antiobiotics/sterilizers, or regenerative mesh will rid infection. Paramedic UV penlights are also effective.\n"
if(flesh_damage > 0)
. += "Flesh damage detected: Please apply ointment or regenerative mesh to allow recovery.\n"

View File

@@ -518,7 +518,7 @@
. = list("[get_examine_string(user, TRUE)].")
if(desc)
. += desc
. += "<hr>[desc]"
if(custom_materials)
var/list/materials_list = list()

View File

@@ -230,13 +230,13 @@
if(beaker)
if(beaker.reagents && beaker.reagents.reagent_list.len)
. += "\t<span class='notice'>Attached is \a [beaker] with [beaker.reagents.total_volume] units of liquid.</span>\n"
. += "<span class='notice'>Attached is \a [beaker] with [beaker.reagents.total_volume] units of liquid.</span>\n"
else
. += "\t<span class='notice'>Attached is an empty [beaker.name].</span>\n"
. += "<span class='notice'>Attached is an empty [beaker.name].</span>\n"
else
. += "\t<span class='notice'>No chemicals are attached.</span>\n"
. += "<span class='notice'>No chemicals are attached.</span>\n"
. += "\t<span class='notice'>[attached ? attached : "No one"] is attached.</span>"
. += "<span class='notice'>[attached ? attached : "No one"] is attached.</span>"
/obj/machinery/iv_drip/telescopic
name = "telescopic IV drip"

View File

@@ -145,32 +145,29 @@ GENETICS SCANNER
mob_status = "<span class='alert'><b>Deceased</b></span>"
oxy_loss = max(rand(1, 40), oxy_loss, (300 - (tox_loss + fire_loss + brute_loss))) // Random oxygen loss
var/msg = "<span class='info'>*---------*\nAnalyzing results for [M]:\n\tOverall status: [mob_status]"
var/msg = "<span class='info'>Analyzing results for [M]:\n<blockquote class='notice'>Overall status: [mob_status]"
// Damage descriptions
if(brute_loss > 10)
msg += "\n\t<span class='alert'>[brute_loss > 50 ? "Severe" : "Minor"] tissue damage detected.</span>"
msg += "\n<span class='alert'>[brute_loss > 50 ? "Severe" : "Minor"] tissue damage detected.</span>"
if(fire_loss > 10)
msg += "\n\t<span class='alert'>[fire_loss > 50 ? "Severe" : "Minor"] burn damage detected.</span>"
msg += "\n<span class='alert'>[fire_loss > 50 ? "Severe" : "Minor"] burn damage detected.</span>"
if(oxy_loss > 10)
msg += "\n\t<span class='info'><span class='alert'>[oxy_loss > 50 ? "Severe" : "Minor"] oxygen deprivation detected.</span>"
msg += "\n<span class='info'><span class='alert'>[oxy_loss > 50 ? "Severe" : "Minor"] oxygen deprivation detected.</span>"
if(tox_loss > 10)
msg += "\n\t<span class='alert'>[tox_loss > 50 ? "Severe" : "Minor"] amount of [HAS_TRAIT(M, TRAIT_ROBOTIC_ORGANISM) ? "system corruption" : "toxin damage"] detected.</span>"
msg += "\n<span class='alert'>[tox_loss > 50 ? "Severe" : "Minor"] amount of [HAS_TRAIT(M, TRAIT_ROBOTIC_ORGANISM) ? "system corruption" : "toxin damage"] detected.</span>"
if(M.getStaminaLoss())
msg += "\n\t<span class='alert'>Subject appears to be suffering from fatigue.</span>"
msg += "\n<span class='alert'>Subject appears to be suffering from fatigue.</span>"
if(advanced)
msg += "\n\t<span class='info'>Fatigue Level: [M.getStaminaLoss()]%.</span>"
msg += "\n<span class='info'>Fatigue Level: [M.getStaminaLoss()]%.</span>"
if (M.getCloneLoss())
msg += "\n\t<span class='alert'>Subject appears to have [M.getCloneLoss() > 30 ? "Severe" : "Minor"] cellular damage.</span>"
msg += "\n<span class='alert'>Subject appears to have [M.getCloneLoss() > 30 ? "Severe" : "Minor"] cellular damage.</span>"
if(advanced)
msg += "\n\t<span class='info'>Cellular Damage Level: [M.getCloneLoss()].</span>"
msg += "\n<span class='info'>Cellular Damage Level: [M.getCloneLoss()].</span>"
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(advanced && H.has_dna())
msg += "\n\t<span class='info'>Genetic Stability: [H.dna.stability]%.</span>"
to_chat(user, msg)
msg = ""
msg += "\n<span class='info'>Genetic Stability: [H.dna.stability]%.</span>"
// Body part damage report
var/list/dmgreport = list()
@@ -178,7 +175,7 @@ GENETICS SCANNER
var/mob/living/carbon/C = M
var/list/damaged = C.get_damaged_bodyparts(1,1)
if(length(damaged)>0 || oxy_loss>0 || tox_loss>0 || fire_loss>0)
dmgreport += "<table style='margin-left:33px'><tr><font face='Verdana'>\
dmgreport += "<table><tr><font face='Verdana'>\
<td style='width: 90px;'><font color='#0000CC'>Damage:</font></td>\
<td style='width: 55px;'><font color='red'><b>Brute</b></font></td>\
<td style='width: 45px;'><font color='orange'><b>Burn</b></font></td>\
@@ -196,7 +193,7 @@ GENETICS SCANNER
<td><font color='red'>[(org.brute_dam > 0) ? "[org.brute_dam]" : "0"]</font></td>\
<td><font color='orange'>[(org.burn_dam > 0) ? "[org.burn_dam]" : "0"]</font></td></tr>"
dmgreport += "</table>"
to_chat(user, dmgreport.Join())
msg += "\n[dmgreport.Join()]"
//Organ damages report
@@ -317,7 +314,7 @@ GENETICS SCANNER
damage_message += " <font color='red'>Minor [O.name] failure detected.</span>"
if(temp_message || damage_message)
msg += "\t<b><span class='info'>[uppertext(O.name)]:</b></span> [damage_message] [temp_message]\n"
msg += "\n<b><span class='info'>[uppertext(O.name)]:</b></span> [damage_message] [temp_message]\n"
@@ -332,24 +329,24 @@ GENETICS SCANNER
var/has_liver = C.dna && !(NOLIVER in C.dna.species.species_traits)
var/has_stomach = C.dna && !(NOSTOMACH in C.dna.species.species_traits)
if(!M.getorganslot(ORGAN_SLOT_EYES))
msg += "\t<span class='alert'><b>Subject does not have eyes.</b></span>\n"
msg += "<span class='alert'><b>Subject does not have eyes.</b></span>\n"
if(!M.getorganslot(ORGAN_SLOT_EARS))
msg += "\t<span class='alert'><b>Subject does not have ears.</b></span>\n"
msg += "<span class='alert'><b>Subject does not have ears.</b></span>\n"
if(!M.getorganslot(ORGAN_SLOT_BRAIN))
msg += "\t<span class='alert'><b>Subject's brain function is non-existent!</b></span>\n"
msg += "<span class='alert'><b>Subject's brain function is non-existent!</b></span>\n"
if(has_liver && !M.getorganslot(ORGAN_SLOT_LIVER))
msg += "\t<span class='alert'><b>Subject's liver is missing!</b></span>\n"
msg += "<span class='alert'><b>Subject's liver is missing!</b></span>\n"
if(blooded && !M.getorganslot(ORGAN_SLOT_HEART))
msg += "\t<span class='alert'><b>Subject's heart is missing!</b></span>\n"
msg += "<span class='alert'><b>Subject's heart is missing!</b></span>\n"
if(breathes && !M.getorganslot(ORGAN_SLOT_LUNGS))
msg += "\t<span class='alert'><b>Subject's lungs have collapsed from trauma!</b></span>\n"
msg += "<span class='alert'><b>Subject's lungs have collapsed from trauma!</b></span>\n"
if(has_stomach && !M.getorganslot(ORGAN_SLOT_STOMACH))
msg += "\t<span class='alert'><b>Subject's stomach is missing!</span>\n"
msg += "<span class='alert'><b>Subject's stomach is missing!</span>\n"
if(M.radiation)
msg += "\t<span class='alert'>Subject is irradiated.</span>\n"
msg += "\t<span class='info'>Radiation Level: [M.radiation] rad</span>\n"
msg += "<span class='alert'>Subject is irradiated.</span>\n"
msg += "<span class='info'>Radiation Level: [M.radiation] rad</span>\n"
@@ -383,11 +380,11 @@ GENETICS SCANNER
else if (S.flying_species != initial(S.flying_species))
mutant = TRUE
msg += "\t<span class='info'>Reported Species: [H.spec_trait_examine_font()][H.dna.custom_species ? H.dna.custom_species : S.name]</font></span>\n"
msg += "\t<span class='info'>Base Species: [H.spec_trait_examine_font()][S.name]</font></span>\n"
msg += "\n<span class='info'>Reported Species: [H.spec_trait_examine_font()][H.dna.custom_species ? H.dna.custom_species : S.name]</font></span>\n"
msg += "<span class='info'>Base Species: [H.spec_trait_examine_font()][S.name]</font></span>\n"
if(mutant)
msg += "\t<span class='info'>Subject has mutations present.</span>\n"
msg += "\t<span class='info'>Body temperature: [round(M.bodytemperature-T0C,0.1)] &deg;C ([round(M.bodytemperature*1.8-459.67,0.1)] &deg;F)</span>\n"
msg += "<span class='info'>Subject has mutations present.</span>\n"
msg += "<span class='info'>Body temperature: [round(M.bodytemperature-T0C,0.1)] &deg;C ([round(M.bodytemperature*1.8-459.67,0.1)] &deg;F)</span>\n"
// Time of death
if(M.tod && (M.stat == DEAD || ((HAS_TRAIT(M, TRAIT_FAKEDEATH)) && !advanced)))
@@ -452,14 +449,14 @@ GENETICS SCANNER
if(cyberimp_detect)
msg += "<span class='notice'>Detected cybernetic modifications:</span>\n"
msg += "<span class='notice'>[cyberimp_detect]</span>\n"
msg += "<span class='notice'>*---------*</span>"
msg += "</blockquote>"
to_chat(user, msg)
SEND_SIGNAL(M, COMSIG_NANITE_SCAN, user, FALSE)
/proc/chemscan(mob/living/user, mob/living/M)
if(istype(M))
if(M.reagents)
var/msg = "<span class='info'>*---------*\n"
var/msg = "<blockquote class='purple'>"
if(M.reagents.reagent_list.len)
var/list/datum/reagent/reagents = list()
for(var/datum/reagent/R in M.reagents.reagent_list)
@@ -498,7 +495,7 @@ GENETICS SCANNER
if(95 to INFINITY)
msg += "<span class='danger'>Subject contains a extremely dangerous amount of toxic isomers.</span>\n"
msg += "*---------*</span>"
msg += "</blockquote>"
to_chat(user, msg)
/obj/item/healthanalyzer/verb/toggle_mode()
@@ -529,12 +526,14 @@ GENETICS SCANNER
var/render_list = ""
for(var/i in patient.get_wounded_bodyparts())
if(render_list == "")
render_list += "<blockquote class='warning'>"
var/obj/item/bodypart/wounded_part = i
render_list += "<span class='alert ml-1'><b>Warning: Physical trauma[LAZYLEN(wounded_part.wounds) > 1? "s" : ""] detected in [wounded_part.name]</b>"
for(var/k in wounded_part.wounds)
var/datum/wound/W = k
render_list += "<div class='ml-2'>[W.get_scanner_description()]</div>\n"
render_list += "</span>"
render_list += "</blockquote>"
if(render_list == "")
if(istype(scanner))

View File

@@ -43,7 +43,7 @@
/mob/living/simple_animal/hostile/clockwork/examine(mob/user)
var/t_He = p_they(TRUE)
var/t_s = p_s()
var/msg = "<span class='brass'>*---------*\nThis is [icon2html(src, user)] \a <b>[src]</b>!\n"
var/msg = "<span class='brass'>This is [icon2html(src, user)] \a <b>[src]</b>!\n"
msg += "[desc]\n"
if(health < maxHealth)
msg += "<span class='warning'>"
@@ -55,7 +55,7 @@
var/addendum = examine_info()
if(addendum)
msg += "[addendum]\n"
msg += "*---------*</span>"
msg += "</span>"
return list(msg)

View File

@@ -63,7 +63,7 @@
/mob/living/carbon/true_devil/examine(mob/user)
. = list("<span class='info'>*---------*\nThis is [icon2html(src, user)] <b>[src]</b>!")
. = list("<span class='info'>This is [icon2html(src, user)] <b>[src]</b>!")
//Left hand items
for(var/obj/item/I in held_items)
@@ -81,7 +81,7 @@
. += "<span class='warning'>You can see hellfire inside its gaping wounds.</span>"
else if(health < (maxHealth/2))
. += "<span class='warning'>You can see hellfire inside its wounds.</span>"
. += "*---------*</span>"
. += "</span>"
/mob/living/carbon/true_devil/IsAdvancedToolUser()
return 1

View File

@@ -6,7 +6,7 @@
var/t_has = p_have()
var/t_is = p_are()
. = list("<span class='info'>*---------*\nThis is [icon2html(src, user)] \a <EM>[src]</EM>!")
. = list("<span class='info'>This is [icon2html(src, user)] \a <EM>[src]</EM>!")
if (handcuffed)
. += "<span class='warning'>[t_He] [t_is] [icon2html(handcuffed, user)] handcuffed!</span>"
@@ -152,8 +152,11 @@
. += "[t_He] look[p_s()] very happy."
if(MOOD_LEVEL_HAPPY4 to INFINITY)
. += "[t_He] look[p_s()] ecstatic."
if(LAZYLEN(.) > 1)
.[2] = "<hr>[.[2]]"
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .)
. += "*---------*</span>"
/mob/living/carbon/examine_more(mob/user)
if(!all_scars)

View File

@@ -13,7 +13,7 @@
if(HAS_TRAIT(L, TRAIT_PROSOPAGNOSIA))
obscure_name = TRUE
. = list("<span class='info'>*---------*\nThis is <EM>[!obscure_name ? name : "Unknown"]</EM>!")
. = list("<span class='info'>This is <EM>[!obscure_name ? name : "Unknown"]</EM>!")
var/vampDesc = ReturnVampExamine(user) // Vamps recognize the names of other vamps.
var/vassDesc = ReturnVassalExamine(user) // Vassals recognize each other's marks.
@@ -442,9 +442,10 @@
else if(isobserver(user) && traitstring)
. += "<span class='info'><b>Traits:</b> [traitstring]</span>"
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .) //This also handles flavor texts now
if(LAZYLEN(.) > 2) //Want this to appear after species text
.[3] = "<hr>[.[3]]"
. += "*---------*</span>"
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .) //This also handles flavor texts now
/mob/living/proc/status_effect_examines(pronoun_replacement) //You can include this in any mob's examine() to show the examine texts of status effects!
var/list/dat = list()

View File

@@ -550,7 +550,7 @@
to_chat(src, "<span class='notice'>You succesfuly remove the durathread strand.</span>")
remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND)
return
var/to_send = ""
var/to_send = "<blockquote class ='notice'>"
visible_message("[src] examines [p_them()]self.", \
"<span class='notice'>You check yourself for injuries.</span>")
@@ -597,27 +597,27 @@
var/no_damage
if(status == "OK" || status == "no damage")
no_damage = TRUE
to_send += "\t <span class='[no_damage ? "notice" : "warning"]'>Your [LB.name] [HAS_TRAIT(src, TRAIT_SELF_AWARE) ? "has" : "is"] [status].</span>\n"
to_send += "<span class='[no_damage ? "notice" : "warning"]'>Your [LB.name] [HAS_TRAIT(src, TRAIT_SELF_AWARE) ? "has" : "is"] [status].</span>\n"
for(var/thing in LB.wounds)
var/datum/wound/W = thing
var/msg
switch(W.severity)
if(WOUND_SEVERITY_TRIVIAL)
msg = "\t <span class='danger'>Your [LB.name] is suffering [W.a_or_from] [lowertext(W.name)].</span>"
msg = "<span class='danger'>Your [LB.name] is suffering [W.a_or_from] [lowertext(W.name)].</span>"
if(WOUND_SEVERITY_MODERATE)
msg = "\t <span class='warning'>Your [LB.name] is suffering [W.a_or_from] [lowertext(W.name)]!</span>"
msg = "<span class='warning'>Your [LB.name] is suffering [W.a_or_from] [lowertext(W.name)]!</span>"
if(WOUND_SEVERITY_SEVERE)
msg = "\t <span class='warning'><b>Your [LB.name] is suffering [W.a_or_from] [lowertext(W.name)]!</b></span>"
msg = "<span class='warning'><b>Your [LB.name] is suffering [W.a_or_from] [lowertext(W.name)]!</b></span>"
if(WOUND_SEVERITY_CRITICAL)
msg = "\t <span class='warning'><b>Your [LB.name] is suffering [W.a_or_from] [lowertext(W.name)]!!</b></span>"
msg = "<span class='warning'><b>Your [LB.name] is suffering [W.a_or_from] [lowertext(W.name)]!!</b></span>"
to_chat(src, msg)
for(var/obj/item/I in LB.embedded_objects)
if(I.isEmbedHarmless())
to_chat(src, "\t <a href='?src=[REF(src)];embedded_object=[REF(I)];embedded_limb=[REF(LB)]' class='warning'>There is \a [I] stuck to your [LB.name]!</a>")
to_chat(src, "<a href='?src=[REF(src)];embedded_object=[REF(I)];embedded_limb=[REF(LB)]' class='warning'>There is \a [I] stuck to your [LB.name]!</a>")
else
to_chat(src, "\t <a href='?src=[REF(src)];embedded_object=[REF(I)];embedded_limb=[REF(LB)]' class='warning'>There is \a [I] embedded in your [LB.name]!</a>")
to_chat(src, "<a href='?src=[REF(src)];embedded_object=[REF(I)];embedded_limb=[REF(LB)]' class='warning'>There is \a [I] embedded in your [LB.name]!</a>")
for(var/t in missing)
to_send += "<span class='boldannounce'>Your [parse_zone(t)] is missing!</span>\n"
@@ -724,6 +724,8 @@
if(roundstart_quirks.len)
to_send += "<span class='notice'>You have these quirks: [get_trait_string()].</span>\n"
to_send += "</blockquote>"
to_chat(src, to_send)
else
if(wear_suit)

View File

@@ -7,8 +7,8 @@
return
var/list/print_msg = list()
print_msg += "<span class='info'>*---------*</span>"
print_msg += "<span class='userdanger'>As you snap back to consciousness, you recall people messing with your stuff...</span>"
print_msg += "<blockquote class='warning'>"
afk_thefts = reverseRange(afk_thefts)
@@ -22,13 +22,14 @@
var/time_since = world.time - iter_theft[AFK_THEFT_TIME]
if(time_since > AFK_THEFT_FORGET_DETAILS_TIME)
print_msg += "\t<span class='danger'><b>Someone [theft_message], but it was at least [DisplayTimeText(AFK_THEFT_FORGET_DETAILS_TIME)] ago.</b></span>"
print_msg += "<span class='danger'><b>Someone [theft_message], but it was at least [DisplayTimeText(AFK_THEFT_FORGET_DETAILS_TIME)] ago.</b></span>"
else
print_msg += "\t<span class='danger'><b>[thief_name] [theft_message] roughly [DisplayTimeText(time_since, 10)] ago.</b></span>"
print_msg += "<span class='danger'><b>[thief_name] [theft_message] roughly [DisplayTimeText(time_since, 10)] ago.</b></span>"
print_msg += "</blockquote>"
if(LAZYLEN(afk_thefts) >= AFK_THEFT_MAX_MESSAGES)
print_msg += "<span class='warning'>There may have been more, but that's all you can remember...</span>"
print_msg += "<span class='info'>*---------*</span>"
to_chat(src, print_msg.Join("\n"))
LAZYNULL(afk_thefts)

View File

@@ -1,5 +1,5 @@
/mob/living/silicon/ai/examine(mob/user)
. = list("<span class='info'>*---------*\nThis is [icon2html(src, user)] <EM>[src]</EM>!")
. = list("<span class='info'>This is [icon2html(src, user)] <EM>[src]</EM>!")
if (stat == DEAD)
. += "<span class='deadsay'>It appears to be powered-down.</span>"
else
@@ -17,6 +17,8 @@
. += "The wireless networking light is blinking."
else if (!shunted && !client)
. += "[src]Core.exe has stopped responding! NTOS is searching for a solution to the problem..."
. += "*---------*</span>"
if(LAZYLEN(.) > 1)
.[2] = "<hr>[.[2]]"
. += ..()

View File

@@ -1,5 +1,4 @@
/mob/living/silicon/examine(mob/user) //Displays a silicon's laws to ghosts
. = ..()
if(laws && isobserver(user))
. += "<b>[src] has the following laws:</b>"
for(var/law in laws.get_law_list(include_zeroth = TRUE))

View File

@@ -1,5 +1,5 @@
/mob/living/silicon/robot/examine(mob/user)
. = list("<span class='info'>*---------*\nThis is [icon2html(src, user)] \a <EM>[src]</EM>, a [src.module.name] unit!")
. = list("<span class='info'>This is [icon2html(src, user)] \a <EM>[src]</EM>, a [src.module.name] unit!")
if(desc)
. += "[desc]"
@@ -49,8 +49,9 @@
if(DEAD)
. += "<span class='deadsay'>It looks like its system is corrupted and requires a reset.</span>"
if(LAZYLEN(.) > 1)
.[2] = "<hr>[.[2]]"
SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, usr, .)
. += "*---------*</span>"
. += ..()

View File

@@ -83,13 +83,12 @@
/mob/living/simple_animal/hostile/construct/examine(mob/user)
var/t_He = p_they(TRUE)
var/t_s = p_s()
. = list("<span class='cult'>*---------*\nThis is [icon2html(src, user)] \a <b>[src]</b>!\n[desc]")
. = list("<span class='cult'>This is [icon2html(src, user)] \a <b>[src]</b>!\n[desc]</span>")
if(health < maxHealth)
if(health >= maxHealth/2)
. += "<span class='warning'>[t_He] look[t_s] slightly dented.</span>"
else
. += "<span class='warning'><b>[t_He] look[t_s] severely dented!</b></span>"
. += "*---------*</span>"
/mob/living/simple_animal/hostile/construct/attack_animal(mob/living/simple_animal/M)
if(isconstruct(M)) //is it a construct?

View File

@@ -178,7 +178,7 @@
/mob/living/simple_animal/drone/examine(mob/user)
. = list("<span class='info'>*---------*\nThis is [icon2html(src, user)] \a <b>[src]</b>!")
. = list("<span class='info'>This is [icon2html(src, user)] \a <b>[src]</b>!")
//Hands
for(var/obj/item/I in held_items)
@@ -214,7 +214,7 @@
. += "<span class='deadsay'>A message repeatedly flashes on its display: \"REBOOT -- REQUIRED\".</span>"
else
. += "<span class='deadsay'>A message repeatedly flashes on its display: \"ERROR -- OFFLINE\".</span>"
. += "*---------*</span>"
. += "</span>"
/mob/living/simple_animal/drone/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) //Secbots won't hunt maintenance drones.

View File

@@ -18,14 +18,14 @@
/mob/living/simple_animal/hostile/guardian/dextrous/examine(mob/user)
if(dextrous)
. = list("<span class='info'>*---------*\nThis is [icon2html(src)] \a <b>[src]</b>!\n[desc]")
. = list("<span class='info'>This is [icon2html(src)] \a <b>[src]</b>!\n[desc]")
for(var/obj/item/I in held_items)
if(!(I.item_flags & ABSTRACT))
. += "It has [I.get_examine_string(user)] in its [get_held_index_name(get_held_index_of_item(I))]."
if(internal_storage && !(internal_storage.item_flags & ABSTRACT))
. += "It is holding [internal_storage.get_examine_string(user)] in its internal storage."
. += "*---------*</span>"
. += "</span>"
else
return ..()

View File

@@ -421,7 +421,7 @@
return
/mob/living/simple_animal/slime/examine(mob/user)
. = list("<span class='info'>*---------*\nThis is [icon2html(src, user)] \a <EM>[src]</EM>!")
. = list("<span class='info'>This is [icon2html(src, user)] \a <EM>[src]</EM>!")
if (src.stat == DEAD)
. += "<span class='deadsay'>It is limp and unresponsive.</span>"
else
@@ -446,7 +446,7 @@
if(10)
. += "<span class='warning'><B>It is radiating with massive levels of electrical activity!</B></span>"
. += "*---------*</span>"
. += "</span>"
/mob/living/simple_animal/slime/proc/discipline_slime(mob/user)
if(stat)

View File

@@ -330,7 +330,7 @@
else
result = A.examine(src) // if a tree is examined but no client is there to see it, did the tree ever really exist?
to_chat(src, result.Join("\n"))
to_chat(src, "<blockquote class='info'>[result.Join("\n")]</blockquote>")
SEND_SIGNAL(src, COMSIG_MOB_EXAMINATE, A)
/mob/proc/clear_from_recent_examines(atom/A)

View File

@@ -98,3 +98,24 @@ $color-bg-section: base.$color-bg-section !default;
pointer-events: none;
}
}
blockquote {
background-color: rgba($text-color, 0.05);
border-left: 0.15em solid;
border-color: $text-color;
padding-left: 0.3em;
padding-right: 0.3em;
margin-bottom: 0.15em;
margin-left: 0.3em;
margin-right: 0em;
}
hr {
background-color: rgba($text-color, 0.25);
height: 0.15em;
border-style: none;
margin-left: 1em;
margin-right: 2em;
margin-bottom: 0.3em;
margin-top: 0.3em;
}

View File

@@ -447,6 +447,10 @@ em {
font-style: italic;
}
blockquote.warning {
border-color: #c51e1e;
}
.alertwarning {
color: #FF0000;
font-weight: bold;
@@ -486,10 +490,18 @@ em {
color: #9ab0ff;
}
blockquote.info {
border-color: #9ab0ff;
}
.notice {
color: #6685f5;
}
blockquote.notice {
border-color: #6685f5;
}
.tinynotice {
color: #6685f5;
font-size: 85%;
@@ -545,18 +557,34 @@ em {
color: #059223;
}
blockquote.green {
border-color: #059223;
}
.red {
color: #FF0000;
}
blockquote.red {
border-color: #FF0000;
}
.blue {
color: #215cff;
}
blockquote.blue {
border-color: #215cff;
}
.nicegreen {
color: #059223;
}
blockquote.nicegreen {
border-color: #059223;
}
/* hornichems */
.userlove {
color: #ff42a6;
@@ -575,6 +603,10 @@ em {
color: #973e3b;
}
blockquote.cult {
border-color: #973e3b;
}
.cultitalic {
color: #973e3b;
font-style: italic;
@@ -630,6 +662,10 @@ em {
color: #9956d3;
}
blockquote.purple {
border-color: #9956d3;
}
.holoparasite {
color: #88809c;
}
@@ -693,6 +729,10 @@ em {
color: #BE8700;
}
blockquote.brass {
border-color: #BE8700;
}
.heavy_brass {
color: #BE8700;
font-weight: bold;

View File

@@ -484,6 +484,10 @@ h1.alert, h2.alert {
font-style: italic;
}
blockquote.warning {
border-color: #ff0000;
}
.alertwarning {
color: #FF0000;
font-weight: bold;
@@ -522,11 +526,18 @@ h1.alert, h2.alert {
.info {
color: #0000CC;
}
blockquote.info {
border-color: #0000CC;
}
.notice {
color: #000099;
}
blockquote.notice {
border-color: #000099;
}
.tinynotice {
color: #000099;
font-size: 85%;
@@ -582,18 +593,33 @@ h1.alert, h2.alert {
color: #03ff39;
}
blockquote.green {
border-color: #03ff39;
}
.red {
color: #FF0000;
}
blockquote.red {
border-color: #FF0000;
}
.blue {
color: #0000FF;
}
blockquote.blue {
border-color: #0000FF;
}
.nicegreen {
color: #14a833;
}
blockquote.nicegreen {
border-color: #14a833;
}
.userlove {
color: #FF1493;
font-style: italic;
@@ -611,6 +637,10 @@ h1.alert, h2.alert {
color: #973e3b;
}
blockquote.cult {
border-color: #973e3b;
}
.cultitalic {
color: #973e3b;
font-style: italic;
@@ -666,6 +696,10 @@ h1.alert, h2.alert {
color: #5e2d79;
}
blockquote.purple {
border-color: #5e2d79;
}
.holoparasite {
color: #35333a;
}
@@ -730,6 +764,10 @@ h1.alert, h2.alert {
color: #BE8700;
}
blockquote.brass {
border-color: #BE8700;
}
.heavy_brass {
color: #BE8700;
font-weight: bold;