diff --git a/code/__DEFINES/chat.dm b/code/__DEFINES/chat.dm index 78a3c993b2c..910e999d61d 100644 --- a/code/__DEFINES/chat.dm +++ b/code/__DEFINES/chat.dm @@ -34,3 +34,5 @@ text = "DEBUG: [msg]") /// Used for debug messages to the server #define debug_world_log(msg) if (GLOB.Debug2) log_world("DEBUG: [msg]") +/// Adds a generic box around whatever message you're sending in chat. Really makes things stand out. +#define examine_block(str) ("
" + str + "
") diff --git a/code/__DEFINES/~skyrat_defines/chat.dm b/code/__DEFINES/~skyrat_defines/chat.dm index a7792f3bded..cc41ace6f28 100644 --- a/code/__DEFINES/~skyrat_defines/chat.dm +++ b/code/__DEFINES/~skyrat_defines/chat.dm @@ -3,5 +3,3 @@ #define EXAMINE_SECTION_BREAK "
" -/// Adds a generic box around whatever message you're sending in chat. Really makes things stand out. -#define examine_block(str) ("
" + str + "
") diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index d0bf2482a83..79506c5e9de 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -412,4 +412,4 @@ message = html_encode(message) else message = copytext(message, 2) - to_chat(target, span_purple("Tip of the round: [message]")) + to_chat(target, span_purple(examine_block("Tip of the round: [message]"))) diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 800a852eb64..608aff7acb0 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -48,7 +48,7 @@ RegisterSignal(parent, COMSIG_ADD_MOOD_EVENT_RND, .proc/add_event) //Mood events that are only for RnD members /datum/component/mood/proc/print_mood(mob/user) - var/msg = "[span_info("*---------*\nMy current mental status:")]\n" + var/msg = "[span_info("My current mental status:")]\n" msg += span_notice("My current sanity: ") //Long term //ORIGINAL /* @@ -150,7 +150,7 @@ msg += span_boldnicegreen(event.description + "\n") else msg += "[span_grey("I don't have much of a reaction to anything right now.")]\n" - to_chat(user, examine_block(msg)) //SKYRAT EDIT CHANGE + to_chat(user, examine_block(msg)) ///Called after moodevent/s have been added/removed. /datum/component/mood/proc/update_mood() diff --git a/code/datums/elements/weapon_description.dm b/code/datums/elements/weapon_description.dm index a3a331989fa..1d8bc8f3e04 100644 --- a/code/datums/elements/weapon_description.dm +++ b/code/datums/elements/weapon_description.dm @@ -62,7 +62,7 @@ SIGNAL_HANDLER if(href_list["examine"]) - to_chat(user, span_notice(examine_block("[build_label_text(source)]"))) //SKYRAT EDIT CHANGE + to_chat(user, span_notice(examine_block("[build_label_text(source)]"))) /** * diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 2dbcaf4a05a..67b3ce3be13 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -263,12 +263,12 @@ if(!length(shown_skills)) to_chat(user, span_notice("You don't seem to have any particularly outstanding skills.")) return - var/msg = "[span_info("Your skills")]\n
" //SKYRAT EDIT CHANGE + var/msg = "[span_info("Your skills")]\n" for(var/i in shown_skills) var/datum/skill/the_skill = i msg += "[initial(the_skill.name)] - [get_skill_level_name(the_skill)]\n" msg += "" - to_chat(user, examine_block(msg)) //SKYRAT EDIT CHANGE + to_chat(user, examine_block(msg)) /datum/mind/proc/set_death_time() SIGNAL_HANDLER diff --git a/code/game/atoms.dm b/code/game/atoms.dm index 8dc93ba4217..a30e685385b 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -602,10 +602,10 @@ * [COMSIG_ATOM_GET_EXAMINE_NAME] signal */ /atom/proc/get_examine_name(mob/user) - . = "\a [src]" + . = "\a [src]" var/list/override = list(gender == PLURAL ? "some" : "a", " ", "[name]") if(article) - . = "[article] [src]" + . = "[article] [src]" override[EXAMINE_POSITION_ARTICLE] = article if(SEND_SIGNAL(src, COMSIG_ATOM_GET_EXAMINE_NAME, user, override) & COMPONENT_EXNAME_CHANGED) . = override.Join("") @@ -637,7 +637,11 @@ * Produces a signal [COMSIG_PARENT_EXAMINE] */ /atom/proc/examine(mob/user) - . = list("[get_examine_string(user, TRUE)].", EXAMINE_SECTION_BREAK) // SKYRAT EDIT CHANGE - original: list("[get_examine_string(user, TRUE)].") + var/examine_string = get_examine_string(user, thats = TRUE) + if(examine_string) + . = list("[examine_string].", EXAMINE_SECTION_BREAK) // SKYRAT EDIT CHANGE + else + . = list() . += get_name_chaser(user) if(desc) @@ -665,7 +669,7 @@ if(length(reagents.reagent_list)) if(user.can_see_reagents()) //Show each individual reagent for(var/datum/reagent/current_reagent as anything in reagents.reagent_list) - . += "• [round(current_reagent.volume, 0.01)] units of [current_reagent.name]" // SKYRAT EDIT CHANGE - added bullet + . += "• [round(current_reagent.volume, 0.01)] units of [current_reagent.name]" if(reagents.is_reacting) . += span_warning("  It is currently reacting!") // SKYRAT EDIT CHANGE - added spacing . += span_notice("The solution's pH is [round(reagents.ph, 0.01)] and has a temperature of [reagents.chem_temp]K.") diff --git a/code/game/objects/items/devices/scanners/gas_analyzer.dm b/code/game/objects/items/devices/scanners/gas_analyzer.dm index 4297245040d..e3f6aab6ad4 100644 --- a/code/game/objects/items/devices/scanners/gas_analyzer.dm +++ b/code/game/objects/items/devices/scanners/gas_analyzer.dm @@ -189,5 +189,5 @@ message += span_notice("Volume: [volume] L") // don't want to change the order volume appears in, suck it // we let the join apply newlines so we do need handholding - to_chat(user, jointext(message, "\n"), type = MESSAGE_TYPE_INFO) + to_chat(user, examine_block(jointext(message, "\n")), type = MESSAGE_TYPE_INFO) return TRUE diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm index 26e6c99c211..60418e40e2d 100644 --- a/code/game/objects/items/devices/scanners/health_analyzer.dm +++ b/code/game/objects/items/devices/scanners/health_analyzer.dm @@ -396,7 +396,7 @@ // SKYRAT EDIT END if(tochat) - to_chat(user, jointext(render_list, ""), trailing_newline = FALSE, type = MESSAGE_TYPE_INFO) + to_chat(user, examine_block(jointext(render_list, "")), trailing_newline = FALSE, type = MESSAGE_TYPE_INFO) else return(jointext(render_list, "")) @@ -455,7 +455,7 @@ render_list += "[allergies]\n" // we handled the last
so we don't need handholding - to_chat(user, examine_block(jointext(render_list, "")), trailing_newline = FALSE, type = MESSAGE_TYPE_INFO) //SKYRAT EDIT CHANGE + to_chat(user, examine_block(jointext(render_list, "")), trailing_newline = FALSE, type = MESSAGE_TYPE_INFO) /obj/item/healthanalyzer/AltClick(mob/user) ..() @@ -495,7 +495,7 @@ else to_chat(user, "No wounds detected in subject.") else - to_chat(user, examine_block(jointext(render_list, "")), type = MESSAGE_TYPE_INFO) //SKYRAT EDIT CHANGE + to_chat(user, examine_block(jointext(render_list, "")), type = MESSAGE_TYPE_INFO) /obj/item/healthanalyzer/wound name = "first aid analyzer" diff --git a/code/game/objects/items/devices/scanners/slime_scanner.dm b/code/game/objects/items/devices/scanners/slime_scanner.dm index 502a345a558..81b197bfaf8 100644 --- a/code/game/objects/items/devices/scanners/slime_scanner.dm +++ b/code/game/objects/items/devices/scanners/slime_scanner.dm @@ -23,8 +23,7 @@ slime_scan(T, user) /proc/slime_scan(mob/living/simple_animal/slime/T, mob/living/user) - var/to_render = "========================\ - \nSlime scan results:\ + var/to_render = "Slime scan results:\ \n[span_notice("[T.colour] [T.is_adult ? "adult" : "baby"] slime")]\ \nNutrition: [T.nutrition]/[T.get_max_nutrition()]" if (T.nutrition < T.get_starve_nutrition()) @@ -51,4 +50,4 @@ if(T.effectmod) to_render += "\n[span_notice("Core mutation in progress: [T.effectmod]")]\ \n[span_notice("Progress in core mutation: [T.applied] / [SLIME_EXTRACT_CROSSING_REQUIRED]")]" - to_chat(user, to_render + "\n========================") + to_chat(user, examine_block(to_render)) diff --git a/code/modules/hydroponics/grown/weeds/kudzu.dm b/code/modules/hydroponics/grown/weeds/kudzu.dm index b965a5fbffb..45be37cd671 100644 --- a/code/modules/hydroponics/grown/weeds/kudzu.dm +++ b/code/modules/hydroponics/grown/weeds/kudzu.dm @@ -54,7 +54,7 @@ var/output_message = "" for(var/datum/spacevine_mutation/SM in mutations) kudzu_mutations += "[(kudzu_mutations == "") ? "" : ", "][SM.name]" - output_message += "- Plant Mutations: [(kudzu_mutations == "") ? "None." : "[kudzu_mutations]."]" + output_message += "Plant Mutations: [(kudzu_mutations == "") ? "None." : "[kudzu_mutations]."]" return output_message /obj/item/seeds/kudzu/on_chem_reaction(datum/reagents/reagents) diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm index 4f136a4fef0..d00a6937a9e 100644 --- a/code/modules/hydroponics/hydroitemdefines.dm +++ b/code/modules/hydroponics/hydroitemdefines.dm @@ -74,19 +74,19 @@ */ /obj/item/plant_analyzer/proc/do_plant_stats_scan(atom/scan_target, mob/user) if(istype(scan_target, /obj/machinery/hydroponics)) - to_chat(user, examine_block(scan_tray_stats(scan_target))) //SKYRAT EDIT CHANGE + to_chat(user, examine_block(scan_tray_stats(scan_target))) return TRUE if(istype(scan_target, /obj/structure/glowshroom)) var/obj/structure/glowshroom/shroom_plant = scan_target - to_chat(user, examine_block(scan_plant_stats(shroom_plant.myseed))) //SKYRAT EDIT CHANGE + to_chat(user, examine_block(scan_plant_stats(shroom_plant.myseed))) return TRUE if(istype(scan_target, /obj/item/graft)) - to_chat(user, examine_block(get_graft_text(scan_target))) //SKYRAT EDIT CHANGE + to_chat(user, examine_block(get_graft_text(scan_target))) return TRUE if(isitem(scan_target)) var/obj/item/scanned_object = scan_target if(scanned_object.get_plant_seed() || istype(scanned_object, /obj/item/seeds)) - to_chat(user, examine_block(scan_plant_stats(scanned_object))) //SKYRAT EDIT CHANGE + to_chat(user, examine_block(scan_plant_stats(scanned_object))) return TRUE if(isliving(scan_target)) var/mob/living/L = scan_target @@ -107,19 +107,19 @@ */ /obj/item/plant_analyzer/proc/do_plant_chem_scan(atom/scan_target, mob/user) if(istype(scan_target, /obj/machinery/hydroponics)) - to_chat(user, examine_block(scan_tray_chems(scan_target))) //SKYRAT EDIT CHANGE + to_chat(user, examine_block(scan_tray_chems(scan_target))) return TRUE if(istype(scan_target, /obj/structure/glowshroom)) var/obj/structure/glowshroom/shroom_plant = scan_target - to_chat(user, examine_block(scan_plant_chems(shroom_plant.myseed))) //SKYRAT EDIT CHANGE + to_chat(user, examine_block(scan_plant_chems(shroom_plant.myseed))) return TRUE if(istype(scan_target, /obj/item/graft)) - to_chat(user, examine_block(get_graft_text(scan_target))) //SKYRAT EDIT CHANGE + to_chat(user, examine_block(get_graft_text(scan_target))) return TRUE if(isitem(scan_target)) var/obj/item/scanned_object = scan_target if(scanned_object.get_plant_seed() || istype(scanned_object, /obj/item/seeds)) - to_chat(user, examine_block(scan_plant_chems(scanned_object))) //SKYRAT EDIT CHANGE + to_chat(user, examine_block(scan_plant_chems(scanned_object))) return TRUE if(isliving(scan_target)) var/mob/living/L = scan_target @@ -167,24 +167,24 @@ * Returns the formatted message as text. */ /obj/item/plant_analyzer/proc/scan_tray_stats(obj/machinery/hydroponics/scanned_tray) - var/returned_message = "*---------*\n" + var/returned_message = "" if(scanned_tray.myseed) - returned_message += "*** [span_bold("[scanned_tray.myseed.plantname]")] ***\n" - returned_message += "- Plant Age: [span_notice("[scanned_tray.age]")]\n" - returned_message += "- Plant Health: [span_notice("[scanned_tray.plant_health]")]\n" - returned_message += scan_plant_stats(scanned_tray.myseed) + returned_message += "[span_bold("[scanned_tray.myseed.plantname]")]" + returned_message += "\nPlant Age: [span_notice("[scanned_tray.age]")]" + returned_message += "\nPlant Health: [span_notice("[scanned_tray.plant_health]")]" + returned_message += scan_plant_stats(scanned_tray.myseed, TRUE) + returned_message += "\nGrowth medium" else - returned_message += span_bold("No plant found.\n") + returned_message += span_bold("No plant found.") - returned_message += "- Weed level: [span_notice("[scanned_tray.weedlevel] / [MAX_TRAY_WEEDS]")]\n" - returned_message += "- Pest level: [span_notice("[scanned_tray.pestlevel] / [MAX_TRAY_PESTS]")]\n" - returned_message += "- Toxicity level: [span_notice("[scanned_tray.toxic] / [MAX_TRAY_TOXINS]")]\n" - returned_message += "- Water level: [span_notice("[scanned_tray.waterlevel] / [scanned_tray.maxwater]")]\n" - returned_message += "- Nutrition level: [span_notice("[scanned_tray.reagents.total_volume] / [scanned_tray.maxnutri]")]\n" + returned_message += "\nWeed level: [span_notice("[scanned_tray.weedlevel] / [MAX_TRAY_WEEDS]")]" + returned_message += "\nPest level: [span_notice("[scanned_tray.pestlevel] / [MAX_TRAY_PESTS]")]" + returned_message += "\nToxicity level: [span_notice("[scanned_tray.toxic] / [MAX_TRAY_TOXINS]")]" + returned_message += "\nWater level: [span_notice("[scanned_tray.waterlevel] / [scanned_tray.maxwater]")]" + returned_message += "\nNutrition level: [span_notice("[scanned_tray.reagents.total_volume] / [scanned_tray.maxnutri]")]" if(scanned_tray.yieldmod != 1) - returned_message += "- Yield modifier on harvest: [span_notice("[scanned_tray.yieldmod]x")]\n" + returned_message += "\nYield modifier on harvest: [span_notice("[scanned_tray.yieldmod]x")]" - returned_message += "*---------*" return span_info(returned_message) /** @@ -196,22 +196,21 @@ * Returns the formatted message as text. */ /obj/item/plant_analyzer/proc/scan_tray_chems(obj/machinery/hydroponics/scanned_tray) - var/returned_message = "*---------*\n" + var/returned_message = "" if(scanned_tray.myseed) - returned_message += "*** [span_bold("[scanned_tray.myseed.plantname]")] ***\n" - returned_message += "- Plant Age: [span_notice("[scanned_tray.age]")]\n" - returned_message += scan_plant_chems(scanned_tray.myseed) + returned_message += "[span_bold("[scanned_tray.myseed.plantname]")]" + returned_message += "\nPlant Age: [span_notice("[scanned_tray.age]")]" + returned_message += scan_plant_chems(scanned_tray.myseed, TRUE) else - returned_message += span_bold("No plant found.\n") + returned_message += span_bold("No plant found.") - returned_message += "- Tray contains:\n" + returned_message += "\nGrowth medium contains:" if(scanned_tray.reagents.reagent_list.len) for(var/datum/reagent/reagent_id in scanned_tray.reagents.reagent_list) - returned_message += "- [span_notice("[reagent_id.volume] / [scanned_tray.maxnutri] units of [reagent_id]")]\n" + returned_message += "\n[span_notice("• [reagent_id.volume] / [scanned_tray.maxnutri] units of [reagent_id]")]" else - returned_message += "[span_notice("No reagents found.")]\n" + returned_message += "\n[span_notice("No reagents found.")]" - returned_message += "*---------*" return span_info(returned_message) /** @@ -222,8 +221,12 @@ * * Returns the formatted output as text. */ -/obj/item/plant_analyzer/proc/scan_plant_stats(obj/item/scanned_object) - var/returned_message = "*---------*\nThis is [span_name("\a [scanned_object]")].\n" +/obj/item/plant_analyzer/proc/scan_plant_stats(obj/item/scanned_object, in_tray = FALSE) + var/returned_message = "" + if(!in_tray) + returned_message += "This is [span_name("\a [scanned_object]")]." + else + returned_message += "\nSeed Stats" var/obj/item/seeds/our_seed = scanned_object if(!istype(our_seed)) //if we weren't passed a seed, we were passed a plant with a seed our_seed = scanned_object.get_plant_seed() @@ -231,9 +234,8 @@ if(our_seed && istype(our_seed)) returned_message += get_analyzer_text_traits(our_seed) else - returned_message += "*---------*\nNo genes found.\n*---------*" + returned_message += "\nNo genes found." - returned_message += "\n" return span_info(returned_message) /** @@ -244,8 +246,12 @@ * * Returns the formatted output as text. */ -/obj/item/plant_analyzer/proc/scan_plant_chems(obj/item/scanned_object) - var/returned_message = "*---------*\nThis is [span_name("\a [scanned_object]")].\n" +/obj/item/plant_analyzer/proc/scan_plant_chems(obj/item/scanned_object, in_tray = FALSE) + var/returned_message = "" + if(!in_tray) + returned_message += "This is [span_name("\a [scanned_object]")]." + else + returned_message += "\nSeed Stats" var/obj/item/seeds/our_seed = scanned_object if(!istype(our_seed)) //if we weren't passed a seed, we were passed a plant with a seed our_seed = scanned_object.get_plant_seed() @@ -255,9 +261,8 @@ else if (our_seed.reagents_add?.len) //we have a seed with reagent genes returned_message += get_analyzer_text_chem_genes(our_seed) else - returned_message += "*---------*\nNo reagents found.\n*---------*" + returned_message += "\nNo reagents found." - returned_message += "\n" return span_info(returned_message) /** @@ -270,28 +275,28 @@ /obj/item/plant_analyzer/proc/get_analyzer_text_traits(obj/item/seeds/scanned) var/text = "" if(scanned.get_gene(/datum/plant_gene/trait/plant_type/weed_hardy)) - text += "- Plant type: [span_notice("Weed. Can grow in nutrient-poor soil.")]\n" + text += "\nPlant type: [span_notice("Weed. Can grow in nutrient-poor soil.")]" else if(scanned.get_gene(/datum/plant_gene/trait/plant_type/fungal_metabolism)) - text += "- Plant type: [span_notice("Mushroom. Can grow in dry soil.")]\n" + text += "\nPlant type: [span_notice("Mushroom. Can grow in dry soil.")]" else if(scanned.get_gene(/datum/plant_gene/trait/plant_type/alien_properties)) - text += "- Plant type: [span_warning("UNKNOWN")] \n" + text += "\nPlant type: [span_warning("UNKNOWN")]" else - text += "- Plant type: [span_notice("Normal plant")]\n" + text += "\nPlant type: [span_notice("Normal plant")]" if(scanned.potency != -1) - text += "- Potency: [span_notice("[scanned.potency]")]\n" + text += "\nPotency: [span_notice("[scanned.potency]")]" if(scanned.yield != -1) - text += "- Yield: [span_notice("[scanned.yield]")]\n" - text += "- Maturation speed: [span_notice("[scanned.maturation]")]\n" + text += "\nYield: [span_notice("[scanned.yield]")]" + text += "\nMaturation speed: [span_notice("[scanned.maturation]")]" if(scanned.yield != -1) - text += "- Production speed: [span_notice("[scanned.production]")]\n" - text += "- Endurance: [span_notice("[scanned.endurance]")]\n" - text += "- Lifespan: [span_notice("[scanned.lifespan]")]\n" - text += "- Instability: [span_notice("[scanned.instability]")]\n" - text += "- Weed Growth Rate: [span_notice("[scanned.weed_rate]")]\n" - text += "- Weed Vulnerability: [span_notice("[scanned.weed_chance]")]\n" + text += "\nProduction speed: [span_notice("[scanned.production]")]" + text += "\nEndurance: [span_notice("[scanned.endurance]")]" + text += "\nLifespan: [span_notice("[scanned.lifespan]")]" + text += "\nInstability: [span_notice("[scanned.instability]")]" + text += "\nWeed Growth Rate: [span_notice("[scanned.weed_rate]")]" + text += "\nWeed Vulnerability: [span_notice("[scanned.weed_chance]")]" if(scanned.rarity) - text += "- Species Discovery Value: [span_notice("[scanned.rarity]")]\n" + text += "\nSpecies Discovery Value: [span_notice("[scanned.rarity]")]" var/all_removable_traits = "" var/all_immutable_traits = "" for(var/datum/plant_gene/trait/traits in scanned.genes) @@ -302,17 +307,14 @@ else all_immutable_traits += "[(all_immutable_traits == "") ? "" : ", "][traits.get_name()]" - text += "- Plant Traits: [span_notice("[all_removable_traits? all_removable_traits : "None."]")]\n" - text += "- Core Plant Traits: [span_notice("[all_immutable_traits? all_immutable_traits : "None."]")]\n" + text += "\nPlant Traits: [span_notice("[all_removable_traits? all_removable_traits : "None."]")]" + text += "\nCore Plant Traits: [span_notice("[all_immutable_traits? all_immutable_traits : "None."]")]" var/datum/plant_gene/scanned_graft_result = scanned.graft_gene? new scanned.graft_gene : new /datum/plant_gene/trait/repeated_harvest - text += "- Grafting this plant would give: [span_notice("[scanned_graft_result.get_name()]")]\n" + text += "\nGrafting this plant would give: [span_notice("[scanned_graft_result.get_name()]")]" QDEL_NULL(scanned_graft_result) //graft genes are stored as typepaths so if we want to get their formatted name we need a datum ref - musn't forget to clean up afterwards - text += "*---------*" var/unique_text = scanned.get_unique_analyzer_text() if(unique_text) - text += "\n" - text += unique_text - text += "\n*---------*" + text += "\n[unique_text]" return text /** @@ -323,12 +325,9 @@ * Returns the formatted output as text. */ /obj/item/plant_analyzer/proc/get_analyzer_text_chem_genes(obj/item/seeds/scanned) - var/text = "" - text += "- Plant Reagent Genes -\n" - text += "*---------*\n" + var/text = "\nPlant Reagent Genes:" for(var/datum/plant_gene/reagent/gene in scanned.genes) - text += "- [gene.get_name()] -\n" - text += "*---------*" + text += "\n• [gene.get_name()]" return text /** @@ -341,21 +340,19 @@ /obj/item/plant_analyzer/proc/get_analyzer_text_chem_contents(obj/item/scanned_plant) var/text = "" var/reagents_text = "" - text += "- Plant Reagents -\n" - text += "Maximum reagent capacity: [scanned_plant.reagents.maximum_volume]\n" + text += "\nPlant Reagents:" var/chem_cap = 0 for(var/_reagent in scanned_plant.reagents.reagent_list) var/datum/reagent/reagent = _reagent var/amount = reagent.volume chem_cap += reagent.volume - reagents_text += "\n- [reagent.name]: [amount]" - if(chem_cap > 100) - text += "- [span_danger("Reagent Traits Over 100% Production")]\n" - + reagents_text += "\n• [reagent.name]: [amount]" if(reagents_text) - text += "*---------*" text += reagents_text - text += "\n*---------*" + text += "\nMaximum reagent capacity: [scanned_plant.reagents.maximum_volume]" + if(chem_cap > 100) + text += "\n[span_danger("Reagent Traits Over 100% Production")]" + return text /** @@ -366,19 +363,17 @@ * Returns the formatted output as text. */ /obj/item/plant_analyzer/proc/get_graft_text(obj/item/graft/scanned_graft) - var/text = "*---------*\n- Plant Graft -\n" + var/text = "Plant Graft" if(scanned_graft.parent_name) - text += "- Parent Plant: [span_notice("[scanned_graft.parent_name]")] -\n" + text += "\nParent Plant: [span_notice("[scanned_graft.parent_name]")]" if(scanned_graft.stored_trait) - text += "- Graftable Traits: [span_notice("[scanned_graft.stored_trait.get_name()]")] -\n" - text += "*---------*\n" - text += "- Yield: [span_notice("[scanned_graft.yield]")]\n" - text += "- Production speed: [span_notice("[scanned_graft.production]")]\n" - text += "- Endurance: [span_notice("[scanned_graft.endurance]")]\n" - text += "- Lifespan: [span_notice("[scanned_graft.lifespan]")]\n" - text += "- Weed Growth Rate: [span_notice("[scanned_graft.weed_rate]")]\n" - text += "- Weed Vulnerability: [span_notice("[scanned_graft.weed_chance]")]\n" - text += "*---------*" + text += "\nGraftable Traits: [span_notice("[scanned_graft.stored_trait.get_name()]")]" + text += "\nYield: [span_notice("[scanned_graft.yield]")]" + text += "\nProduction speed: [span_notice("[scanned_graft.production]")]" + text += "\nEndurance: [span_notice("[scanned_graft.endurance]")]" + text += "\nLifespan: [span_notice("[scanned_graft.lifespan]")]" + text += "\nWeed Growth Rate: [span_notice("[scanned_graft.weed_rate]")]" + text += "\nWeed Vulnerability: [span_notice("[scanned_graft.weed_chance]")]" return span_info(text) diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index 4804078c395..cd3ca96304d 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -6,7 +6,7 @@ var/t_has = p_have() var/t_is = p_are() - . = list("This is [icon2html(src, user)] \a [src]!", EXAMINE_SECTION_BREAK) // SKYRAT EDIT CHANGE - HR padding + . = list("This is [icon2html(src, user)] \a [src]!>", EXAMINE_SECTION_BREAK) // SKYRAT EDIT CHANGE - HR padding var/obscured = check_obscured_slots() if (handcuffed) @@ -153,7 +153,7 @@ . += "[t_He] look[p_s()] very happy." if(MOOD_LEVEL_HAPPY4 to INFINITY) . += "[t_He] look[p_s()] ecstatic." - //. += "*---------*" SKYRAT EDIT REMOVAL + . += "" SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .) diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 07c7c87c1a8..b5636d7209a 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -444,13 +444,13 @@ "\[Add comment\]"), "") // SKYRAT EDIT ADDITION BEGIN - EXAMINE RECORDS if(target_record && length(target_record.fields["past_records"]) > RECORDS_INVISIBLE_THRESHOLD) - . += "Security record: \[View security records\]" + . += "Security record: \[View security records\]" if (record_cache && length(record_cache.fields["past_records"]) > RECORDS_INVISIBLE_THRESHOLD) . += "\[View general records\]" //SKYRAT EDIT ADDITION END else if(isobserver(user)) - . += "Traits: [get_quirk_string(FALSE, CAT_QUIRK_ALL)]" + . += span_info("Traits: [get_quirk_string(FALSE, CAT_QUIRK_ALL)]") //SKYRAT EDIT ADDITION BEGIN - EXAMINE RECORDS if(isobserver(user) || user.mind?.can_see_exploitables || user.mind?.has_exploitables_override) @@ -502,7 +502,7 @@ . += span_notice("They look different than usual: [temporary_flavor_text]") else . += span_notice("They look different than usual: [copytext_char(temporary_flavor_text, 1, 37)]... More...") - //. += "*---------*
" SKYRAT EDIT REMOVAL + . += "" SEND_SIGNAL(src, COMSIG_PARENT_EXAMINE, user, .) /** diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index 434630f5f8f..577c5622a29 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -719,11 +719,11 @@ /mob/living/carbon/human/check_self_for_injuries() if(stat >= UNCONSCIOUS) return - var/list/combined_msg = list("
") //SKYRAT EDIT CHANGE + var/list/combined_msg = list() - visible_message(span_notice("[src] examines [p_them()]self.")) //SKYRAT EDIT CHANGE + visible_message(span_notice("[src] examines [p_them()]self.")) - combined_msg += span_boldnotice("You check yourself for injuries.
")//SKYRAT EDIT ADDITION + combined_msg += span_notice("You check yourself for injuries.") var/list/missing = list(BODY_ZONE_HEAD, BODY_ZONE_CHEST, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) @@ -920,7 +920,7 @@ if(quirks.len) combined_msg += span_notice("You have these quirks: [get_quirk_string(FALSE, CAT_QUIRK_ALL)].") - to_chat(src, combined_msg.Join("\n")) + to_chat(src, examine_block(combined_msg.Join("\n"))) /mob/living/carbon/human/damage_clothes(damage_amount, damage_type = BRUTE, damage_flag = 0, def_zone) if(damage_type != BRUTE && damage_type != BURN) diff --git a/code/modules/mob/living/carbon/human/login.dm b/code/modules/mob/living/carbon/human/login.dm index b66d842fd10..dc2e5e70546 100644 --- a/code/modules/mob/living/carbon/human/login.dm +++ b/code/modules/mob/living/carbon/human/login.dm @@ -7,7 +7,6 @@ return var/list/print_msg = list() - print_msg += span_info("*---------*") print_msg += span_userdanger("As you snap back to consciousness, you recall people messing with your stuff...") afk_thefts = reverse_range(afk_thefts) @@ -28,7 +27,6 @@ if(LAZYLEN(afk_thefts) >= AFK_THEFT_MAX_MESSAGES) print_msg += span_warning("There may have been more, but that's all you can remember...") - print_msg += span_info("*---------*") - to_chat(src, print_msg.Join("\n")) + to_chat(src, examine_block(print_msg.Join("\n"))) LAZYNULL(afk_thefts) diff --git a/code/modules/mob/living/silicon/ai/examine.dm b/code/modules/mob/living/silicon/ai/examine.dm index 9320e2dcc25..1029e80f3fc 100644 --- a/code/modules/mob/living/silicon/ai/examine.dm +++ b/code/modules/mob/living/silicon/ai/examine.dm @@ -14,9 +14,12 @@ else . += span_warning("Its casing is melted and heat-warped!") if(deployed_shell) - . += "The wireless networking light is blinking.\n" + . += "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...\n" - //. += "*---------*" SKYRAT EDIT REMOVAL + . += "[src]Core.exe has stopped responding! NTOS is searching for a solution to the problem..." + . += "" . += ..() + +/mob/living/silicon/ai/get_examine_string(mob/user, thats = FALSE) + return null diff --git a/code/modules/mob/living/silicon/robot/examine.dm b/code/modules/mob/living/silicon/robot/examine.dm index dff385641b8..117bf4d5b0f 100644 --- a/code/modules/mob/living/silicon/robot/examine.dm +++ b/code/modules/mob/living/silicon/robot/examine.dm @@ -1,5 +1,5 @@ /mob/living/silicon/robot/examine(mob/user) - . = list("This is [icon2html(src, user)] \a [src]!") //SKYRAT EDIT CHANGE + . = list("This is [icon2html(src, user)] [src]!") if(desc) . += "[desc]" @@ -42,7 +42,7 @@ if(SOFT_CRIT, UNCONSCIOUS, HARD_CRIT) . += span_warning("It doesn't seem to be responding.") if(DEAD) - . += "It looks like its system is corrupted and requires a reset." + . += span_deadsay("It looks like its system is corrupted and requires a reset.") //SKYRAT EDIT ADDITION BEGIN - CUSTOMIZATION var/flavor_text_link /// The first 1-FLAVOR_PREVIEW_LIMIT characters in the mob's client's silicon_flavor_text preference datum. FLAVOR_PREVIEW_LIMIT is defined in flavor_defines.dm. @@ -63,6 +63,9 @@ else . += span_notice("They look different than usual: [copytext_char(temporary_flavor_text, 1, 37)]... More...") //SKYRAT EDIT ADDITION END - //. += "*---------*" + . += "" . += ..() + +/mob/living/silicon/robot/get_examine_string(mob/user, thats = FALSE) + return null diff --git a/code/modules/mob/living/simple_animal/constructs.dm b/code/modules/mob/living/simple_animal/constructs.dm index 3a15e3044e9..f05a08fc487 100644 --- a/code/modules/mob/living/simple_animal/constructs.dm +++ b/code/modules/mob/living/simple_animal/constructs.dm @@ -98,7 +98,7 @@ . += span_warning("[t_He] look[t_s] slightly dented.") else . += span_warning("[t_He] look[t_s] severely dented!") - //. += "*---------*" SKYRAT EDIT REMOVAL + . += "" /mob/living/simple_animal/hostile/construct/attack_animal(mob/living/simple_animal/user, list/modifiers) if(isconstruct(user)) //is it a construct? diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index 0f280ad651c..5df42a47290 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -286,7 +286,7 @@ . += span_deadsay("A message repeatedly flashes on its display: \"REBOOT -- REQUIRED\".") else . += span_deadsay("A message repeatedly flashes on its display: \"ERROR -- OFFLINE\".") - //. += "*---------*" SKYRAT EDIT REMOVAL + . += "" /mob/living/simple_animal/drone/assess_threat(judgement_criteria, lasercolor = "", datum/callback/weaponcheck=null) //Secbots won't hunt maintenance drones. diff --git a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm index f6d3bc9d430..210a3f17202 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/dextrous.dm @@ -25,7 +25,7 @@ . += "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." - //. += "*---------*" SKYRAT EDIT REMOVAL + . += "" else return ..() diff --git a/code/modules/mob/living/simple_animal/slime/slime.dm b/code/modules/mob/living/simple_animal/slime/slime.dm index be783b6eecf..f7148925b3a 100644 --- a/code/modules/mob/living/simple_animal/slime/slime.dm +++ b/code/modules/mob/living/simple_animal/slime/slime.dm @@ -465,7 +465,7 @@ if(10) . += span_warning("It is radiating with massive levels of electrical activity!") - //. += "*---------*" SKYRAT EDIT REMOVAL + . += "" /mob/living/simple_animal/slime/proc/discipline_slime(mob/user) if(stat) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index d97483a96d9..757d2111581 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -542,7 +542,7 @@ else result = examinify.examine(src) // if a tree is examined but no client is there to see it, did the tree ever really exist? - //SKYRAT EDIT ADDITION + //SKYRAT EDIT CHANGE if(result.len) for(var/i = 1; i <= length(result); i++) if(result[i] != EXAMINE_SECTION_BREAK) @@ -554,7 +554,7 @@ i-- //SKYRAT EDIT END - to_chat(src, "
[result.Join()]
") //SKYRAT EDIT CHANGE + to_chat(src, examine_block("[result.Join()]")) SEND_SIGNAL(src, COMSIG_MOB_EXAMINATE, examinify) diff --git a/code/modules/modular_computers/hardware/card_slot.dm b/code/modules/modular_computers/hardware/card_slot.dm index 2e527435c8e..6c4ab0155b0 100644 --- a/code/modules/modular_computers/hardware/card_slot.dm +++ b/code/modules/modular_computers/hardware/card_slot.dm @@ -98,6 +98,8 @@ to_chat(user, span_warning("There are no cards in \the [src].")) return FALSE + SpinAnimation() + if(user && !issilicon(user) && in_range(src, user)) user.put_in_hands(stored_card) else diff --git a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss index dfcdaeb4b78..030a465c224 100644 --- a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss +++ b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss @@ -963,6 +963,13 @@ em { margin-left: 3em; } +.examine_block { + background: #1b1c1e; + border: 1px solid #a4bad6; + margin: 0.5em; + padding: 0.5em 0.75em; +} + .tooltip { font-style: italic; border-bottom: 1px dashed #fff; diff --git a/tgui/packages/tgui-panel/styles/goon/chat-light.scss b/tgui/packages/tgui-panel/styles/goon/chat-light.scss index bde11555618..52a03906036 100644 --- a/tgui/packages/tgui-panel/styles/goon/chat-light.scss +++ b/tgui/packages/tgui-panel/styles/goon/chat-light.scss @@ -920,6 +920,13 @@ h2.alert { margin-left: 3em; } +.examine_block { + background: #f2f7fa; + border: 1px solid #111a27; + margin: 0.5em; + padding: 0.5em 0.75em; +} + .tooltip { font-style: italic; border-bottom: 1px dashed #000;