From 94534f36b617c4aa2e2cef6c2962a10c6f6d48c3 Mon Sep 17 00:00:00 2001
From: FalloutFalcon <86381784+FalloutFalcon@users.noreply.github.com>
Date: Sun, 2 Jun 2024 01:40:56 -0500
Subject: [PATCH] Examine text improvments to humans and id cards (#3031)
## About The Pull Request
fixes a bug introduced by guest book that shows "this person is ."
improve id examines and attack self to be a bit clearer
adds a way to quickly figure out the faction of a ship
![image](https://github.com/shiptest-ss13/Shiptest/assets/86381784/40847538-f696-4861-92a8-a3b5a39fd535)
![image](https://github.com/shiptest-ss13/Shiptest/assets/86381784/529d41ce-d142-4893-8d7d-6ce9a1310576)
## Why It's Good For The Game
bug fix and makes it much easier to read id cards
## Changelog
:cl:
tweak: tweaked id card examine information and formating
fix: human examine bug when middle aged
/:cl:
---
code/__HELPERS/names.dm | 100 ++++++++----------
code/game/objects/items/cards_ids.dm | 48 ++++++---
.../mob/living/carbon/human/examine.dm | 3 +-
.../mob/living/carbon/human/human_helpers.dm | 31 +++---
.../overmap/ships/controlled_ship_datum.dm | 3 +
5 files changed, 101 insertions(+), 84 deletions(-)
diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm
index 7cdaf32b0531..7054c051f707 100644
--- a/code/__HELPERS/names.dm
+++ b/code/__HELPERS/names.dm
@@ -233,64 +233,52 @@ GLOBAL_DATUM(syndicate_code_response_regex, /regex)
else
. += ", "
+#define FACTION_SYNDICATE "Syndicate"
+ #define FACTION_NGR "New Gorlex Republic"
+ #define FACTION_CYBERSUN "CyberSun"
+ #define FACTION_SUNS "Student-Union of Naturalistic Sciences"
+#define FACTION_SOLGOV "SolGov"
+#define FACTION_SRM "Saint-Roumain Militia"
+#define FACTION_INTEQ "Inteq Risk Management Group"
+#define FACTION_CLIP "CLIP Minutemen"
+#define FACTION_NT "Nanotrasen"
+ #define FACTION_NS_LOGI "N+S Logistics"
+ #define FACTION_VIGILITAS "Vigilitas Interstellar"
+#define FACTION_FRONTIER "Frontiersmen Fleet"
+#define FACTION_PGF "Pan-Gezenan Federation"
+#define FACTION_INDEPENDENT "Independent"
+
+#define PREFIX_SYNDICATE list("SEV", "SSV")
+ #define PREFIX_NGR list("NGRV")
+ #define PREFIX_CYBERSUN list("CSSV")
+ #define PREFIX_SUNS list("SUNS")
+#define PREFIX_SOLGOV list("SCSV")
+#define PREFIX_SRM list("SRSV")
+#define PREFIX_INTEQ list("IRMV")
+#define PREFIX_CLIP list("CMSV", "CMGSV")
+#define PREFIX_NT list("NTSV")
+ #define PREFIX_NS_LOGI list("NSSV")
+ #define PREFIX_VIGILITAS list("VISV")
+#define PREFIX_FRONTIER list("FFV")
+#define PREFIX_PGF list("PGF", "PGFMC", "PGFN")
+#define PREFIX_INDEPENDENT list("SV", "IMV", "ISV")
+
/// List of all ship factions to their prefixes.
GLOBAL_LIST_INIT(ship_faction_to_prefixes, list(
- "Syndicate" = list(
- "SEV",
- "SSV",
- ),
- "New Gorlex Republic" = list(
- "NGRV",
- ),
- "CyberSun" = list(
- "CSSV",
- ),
- "Student-Union of Naturalistic Sciences" = list(
- "SUNS",
- ),
- "SolGov" = list(
- "SCSV",
- ),
- "Saint-Roumain Militia" = list(
- "SRSV",
- ),
- "Independent" = list(
- "SV",
- "IMV",
- "ISV",
- "XSV",
- ),
- "Inteq Risk Management Group" = list(
- "IRMV",
- ),
- "CLIP Minutemen" = list(
- "CMSV",
- "CMGSV",
- ),
- "CLIP Government" = list(
- "LGSV",
- "CGSV",
- ),
- "Nanotrasen" = list(
- "NTSV",
- ),
- "N+S Logistics" = list(
- "NSSV",
- ),
- "Vigilitas Interstellar" = list(
- "VISV",
- ),
- "Frontiersmen Fleet" = list(
- "FFV",
- ),
- "Saint-Roumaine Militia" = list(
- "SRSV",
- ),
- "Pan-Gezenan Federation" = list(
- "PGF",
- "PGFMC",
- "PGFN",
- ),
+ FACTION_SYNDICATE = PREFIX_SYNDICATE,
+ FACTION_NGR = PREFIX_NGR,
+ FACTION_CYBERSUN = PREFIX_CYBERSUN,
+ FACTION_SUNS = PREFIX_SUNS,
+ FACTION_SOLGOV = PREFIX_SOLGOV,
+ FACTION_SRM = PREFIX_SRM,
+ FACTION_INTEQ = PREFIX_INTEQ,
+ FACTION_CLIP = PREFIX_CLIP,
+ FACTION_NT = PREFIX_NT,
+ FACTION_NS_LOGI = PREFIX_NS_LOGI,
+ FACTION_VIGILITAS = PREFIX_VIGILITAS,
+ FACTION_FRONTIER = PREFIX_FRONTIER,
+ FACTION_PGF = PREFIX_PGF,
+ FACTION_INDEPENDENT = PREFIX_INDEPENDENT
))
/proc/ship_prefix_to_faction(prefix)
diff --git a/code/game/objects/items/cards_ids.dm b/code/game/objects/items/cards_ids.dm
index 2e93b662799a..9d5623498733 100644
--- a/code/game/objects/items/cards_ids.dm
+++ b/code/game/objects/items/cards_ids.dm
@@ -180,7 +180,18 @@
/obj/item/card/id/attack_self(mob/user)
if(Adjacent(user))
- user.visible_message("[user] shows you: [icon2html(src, viewers(user))] \the [initial(name)] [(!registered_name) ? "(" : "([registered_name]"][(!assignment) ? ")" : ", [assignment])"].", "You show \the [initial(name)] [(!registered_name) ? "(" : "([registered_name],"] [(!assignment) ? ")" : "[assignment])"].")
+ var/id_message = "\the [initial(name)] "
+ var/list/id_info = list()
+ if(assignment)
+ id_info += "JOB: [assignment]"
+ if(registered_name)
+ id_info += "NAME: [registered_name]"
+ if(id_info)
+ id_message += id_info.Join(", ")
+ var/self_message = span_notice("You show [id_message]")
+ var/other_message = span_notice("[user] shows you: [icon2html(src, viewers(user))] [id_message]")
+
+ user.visible_message(other_message, self_message)
add_fingerprint(user)
/obj/item/card/id/vv_edit_var(var_name, var_value)
@@ -320,33 +331,42 @@
/obj/item/card/id/examine(mob/user)
. = ..()
- if(registered_account)
- . += "The account linked to the card belongs to '[registered_account.account_holder]' and reports a balance of [registered_account.account_balance] cr."
. += "There's more information below, you can look again to take a closer look..."
/obj/item/card/id/examine_more(mob/user)
var/list/msg = list("You examine [src] closer, and note the following...")
if(registered_name)
- msg += "This access card is assigned to [registered_name]."
+ msg += "NAME:"
+ msg += "[registered_name]"
if(registered_age)
- msg += "The card indicates that the holder is [registered_age] years old. [(registered_age < AGE_MINOR) ? "There's a holographic stripe that reads 'MINOR: DO NOT SERVE ALCOHOL OR TOBACCO' along the bottom of the card." : ""]"
- if(mining_points)
- msg += "There's [mining_points] mining equipment redemption point\s loaded onto this card."
+ msg += "AGE:"
+ msg += "[registered_age] years old [(registered_age < AGE_MINOR) ? "There's a holographic stripe that reads 'MINOR: DO NOT SERVE ALCOHOL OR TOBACCO' along the bottom of the card." : ""]"
if(length(ship_access))
+ msg += "SHIP ACCESS:"
+
+ var/list/ship_factions = list()
+ for(var/datum/overmap/ship/controlled/ship in ship_access)
+ var/faction = ship.get_faction()
+ if(!(faction in ship_factions))
+ ship_factions += faction
+ msg += "[ship_factions.Join(", ")]"
+
var/list/ship_names = list()
for(var/datum/overmap/ship/controlled/ship in ship_access)
ship_names += ship.name
- msg += "The card has access to the following ships: [ship_names.Join(", ")]"
+ msg += "[ship_names.Join(", ")]"
+
if(registered_account)
- msg += "The account linked to the ID belongs to '[registered_account.account_holder]' and reports a balance of [registered_account.account_balance] cr."
- msg += "Alt-Click the ID to pull money from the linked account in the form of holochips."
- msg += "You can insert credits into the linked account by pressing holochips, cash, or coins against the ID."
+ msg += "ACCOUNT:"
+ msg += "LINKED ACCOUNT HOLDER: '[registered_account.account_holder]'"
+ msg += "BALANCE: [registered_account.account_balance] cr."
+ msg += "Alt-click the ID to pull money from the account in the form of holochips."
+ msg += "You can insert credits into the account by pressing holochips, cash, or coins against the ID."
if(registered_account.account_holder == user.real_name)
- msg += "If you lose this ID card, you can reclaim your account by Alt-Clicking a blank ID card while holding it and entering your account ID number."
+ msg += "If you lose this ID card, you can reclaim your account by Alt-click a blank ID card and entering your account ID number."
else
- msg += "There is no registered account linked to this card. Alt-Click to add one."
-
+ msg += "There is no registered account. Alt-click to add one."
return msg
/obj/item/card/id/GetAccess()
diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm
index 59f97d172ad1..64882c75ec4e 100644
--- a/code/modules/mob/living/carbon/human/examine.dm
+++ b/code/modules/mob/living/carbon/human/examine.dm
@@ -416,4 +416,5 @@
. = ..()
if ((wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE)))
return
- . += list(span_notice("[p_they(TRUE)] appear[p_s()] to be [get_age()]."))
+ if(get_age())
+ . += list(span_notice("[p_they(TRUE)] appear[p_s()] to be [get_age()]."))
diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm
index b98466301f63..5d8264c14ac3 100644
--- a/code/modules/mob/living/carbon/human/human_helpers.dm
+++ b/code/modules/mob/living/carbon/human/human_helpers.dm
@@ -34,7 +34,7 @@
/mob/living/carbon/human/get_visible_name()
if(name_override)
return name_override
- return get_generic_name(lowercase = TRUE)
+ return get_generic_name(TRUE, lowercase = TRUE)
//Returns "Unknown" if facially disfigured and real_name if not. Useful for setting name when Fluacided or when updating a human's name variable
/mob/living/carbon/human/proc/get_face_name(if_no_face = get_generic_name(lowercase = TRUE))
@@ -177,7 +177,7 @@
var/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
if((obscured & ITEM_SLOT_ICLOTHING) && skipface || isipc(src))
- return ""
+ return FALSE
switch(age)
if(70 to INFINITY)
return "Geriatric"
@@ -188,27 +188,35 @@
if(40 to 50)
return "Middle-Aged"
if(24 to 40)
- return "" //not necessary because this is basically the most common age range
+ return FALSE //not necessary because this is basically the most common age range
if(18 to 24)
return "Young"
else
return "Puzzling"
/mob/living/carbon/human/proc/get_generic_name(prefixed = FALSE, lowercase = FALSE)
+ var/final_string = ""
var/obscured = check_obscured_slots()
var/skipface = (wear_mask && (wear_mask.flags_inv & HIDEFACE)) || (head && (head.flags_inv & HIDEFACE))
var/hide_features = (obscured & ITEM_SLOT_ICLOTHING) && skipface
- var/visible_adjective
+
if(generic_adjective && !hide_features)
- visible_adjective = "[generic_adjective] "
+ final_string += "[generic_adjective] "
+
var/visible_age = get_age()
if(visible_age)
- visible_age = "[visible_age] "
- var/visible_gender = get_gender()
- var/final_string = "[visible_adjective][visible_age][dna.species.name] [visible_gender]"
+ final_string += "[visible_age] "
+
+ final_string += "[dna.species.name] "
+
+ final_string += get_gender()
+
if(prefixed)
final_string = "\A [final_string]"
- return lowercase ? lowertext(final_string) : final_string
+
+ if(lowercase)
+ final_string = lowertext(final_string)
+ return final_string
/mob/living/carbon/human/proc/get_gender()
var/visible_gender = p_they()
@@ -218,10 +226,7 @@
if("she")
visible_gender = "Woman"
if("they")
- if(ishuman(src))
- visible_gender = "Person"
- else
- visible_gender = "Creature"
+ visible_gender = "Person"
else
visible_gender = "Thing"
return visible_gender
diff --git a/code/modules/overmap/ships/controlled_ship_datum.dm b/code/modules/overmap/ships/controlled_ship_datum.dm
index b87d3efda187..ec4b78629027 100644
--- a/code/modules/overmap/ships/controlled_ship_datum.dm
+++ b/code/modules/overmap/ships/controlled_ship_datum.dm
@@ -436,6 +436,9 @@
SStgui.close_uis(helm)
helm.say(helm_locked ? "Helm console is now locked." : "Helm console has been unlocked.")
+/datum/overmap/ship/controlled/proc/get_faction()
+ return source_template.faction_name
+
/obj/item/key/ship
name = "ship key"
desc = "A key for locking and unlocking the helm of a ship, comes with a ball chain so it can be worn around the neck. Comes with a cute little shuttle-shaped keychain."