mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-09 16:05:07 +00:00
[Records rework] Creates defaults for all records (#4614)
## About The Pull Request This PR does four things: - Shortens and simplifies the medical records template, making it more accessible - Expands Security records flavor into a personnel file that includes exploitables and your character's background, so that you can have Security records without having a criminal history - Creates defaults for medical records, general records, and Security records in the character creator, rather than just the wiki. - Removes exploitables and background records as they've now been integrated into Security records. ## Why It's Good For The Game This PR should make records more accessible for individual players by reducing the amount of work involved, as well as expanding Security records to be more useful. ## Proof Of Testing <img width="656" height="494" alt="image" src="https://github.com/user-attachments/assets/2b5455b2-0e73-4e0a-b9c8-fd278db85040" /> ## Changelog 🆑 ReturnToZender (code) add: All records now have enhanced defaults when making a new character add: Security records have been expanded into personnel records, containing more information on your character del: Exploitables and Background records have been merged into the definition of Security records, which are now Personnel Records. /🆑
This commit is contained in:
@@ -143,8 +143,7 @@ GLOBAL_DATUM_INIT(manifest, /datum/manifest, new)
|
|||||||
locked_dna = record_dna,
|
locked_dna = record_dna,
|
||||||
mind_ref = person.mind,
|
mind_ref = person.mind,
|
||||||
// BUBBER EDIT ADDITION BEGIN - Records
|
// BUBBER EDIT ADDITION BEGIN - Records
|
||||||
exploitable_information = person_client?.prefs.read_preference(/datum/preference/text/exploitable) || "",
|
exploitable_information = person_client?.prefs.read_preference(/datum/preference/text/security) || "",
|
||||||
background_information = person_client?.prefs.read_preference(/datum/preference/text/background) || "",
|
|
||||||
// BUBBER EDIT END
|
// BUBBER EDIT END
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -168,7 +168,6 @@
|
|||||||
datum/mind/mind_ref,
|
datum/mind/mind_ref,
|
||||||
// BUBBER EDIT BEGIN - Records
|
// BUBBER EDIT BEGIN - Records
|
||||||
exploitable_information = "",
|
exploitable_information = "",
|
||||||
background_information = "",
|
|
||||||
)
|
)
|
||||||
. = ..()
|
. = ..()
|
||||||
src.locked_dna = locked_dna
|
src.locked_dna = locked_dna
|
||||||
@@ -177,8 +176,7 @@
|
|||||||
|
|
||||||
GLOB.manifest.locked += src
|
GLOB.manifest.locked += src
|
||||||
|
|
||||||
// BUBBER EDIT BEGIn - Records
|
// BUBBER EDIT BEGIN - Records
|
||||||
src.background_information = background_information
|
|
||||||
src.exploitable_information = exploitable_information
|
src.exploitable_information = exploitable_information
|
||||||
// BUBBER EDIT END
|
// BUBBER EDIT END
|
||||||
|
|
||||||
|
|||||||
@@ -407,8 +407,6 @@
|
|||||||
to_chat(usr, "<b>Medical Record:</b> [target_record.past_medical_records]")
|
to_chat(usr, "<b>Medical Record:</b> [target_record.past_medical_records]")
|
||||||
if(href_list["genrecords"])
|
if(href_list["genrecords"])
|
||||||
to_chat(usr, "<b>General Record:</b> [target_record.past_general_records]")
|
to_chat(usr, "<b>General Record:</b> [target_record.past_general_records]")
|
||||||
if(target_locked_record && href_list["bgrecords"])
|
|
||||||
to_chat(usr, "<b>Background information:</b> [target_locked_record.background_information]")
|
|
||||||
if(isobserver(usr) || usr.mind.can_see_exploitables || usr.mind.has_exploitables_override)
|
if(isobserver(usr) || usr.mind.can_see_exploitables || usr.mind.has_exploitables_override)
|
||||||
if(target_locked_record && href_list["exprecords"])
|
if(target_locked_record && href_list["exprecords"])
|
||||||
to_chat(usr, "<b>Exploitable information:</b> [target_locked_record.exploitable_information]")
|
to_chat(usr, "<b>Exploitable information:</b> [target_locked_record.exploitable_information]")
|
||||||
|
|||||||
@@ -11,7 +11,5 @@
|
|||||||
var/past_security_records
|
var/past_security_records
|
||||||
|
|
||||||
/datum/record/locked
|
/datum/record/locked
|
||||||
/// Contains their background information.
|
|
||||||
var/background_information
|
|
||||||
/// Contains their exploitable information.,
|
/// Contains their exploitable information.,
|
||||||
var/exploitable_information
|
var/exploitable_information
|
||||||
|
|||||||
@@ -86,6 +86,9 @@
|
|||||||
savefile_key = "general_record"
|
savefile_key = "general_record"
|
||||||
maximum_value_length = MAX_FLAVOR_LEN
|
maximum_value_length = MAX_FLAVOR_LEN
|
||||||
|
|
||||||
|
/datum/preference/text/general/create_default_value()
|
||||||
|
return "PERSONAL INFORMATION \n\ Name: \n\ Species: \n\ Physical Description: Height, weight, visible age \n\ Birthdate: \n\ Homeworld: \n\ Preferred Language: \n\ Spoken Languages: \n\ Contact Info: Home, next of kin, phone number"
|
||||||
|
|
||||||
/datum/preference/text/general/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences)
|
/datum/preference/text/general/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences)
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
@@ -95,6 +98,9 @@
|
|||||||
savefile_key = "medical_record"
|
savefile_key = "medical_record"
|
||||||
maximum_value_length = MAX_FLAVOR_LEN
|
maximum_value_length = MAX_FLAVOR_LEN
|
||||||
|
|
||||||
|
/datum/preference/text/medical/create_default_value()
|
||||||
|
return "PHYSICAL EVALUATIONS \n\ \n\ PSYCHOLOGICAL EVALUATIONS \n\ \n\ MEDICATION HISTORY \n\ \n\ SURGICAL HISTORY \n\ \n\ DOCTOR NOTES:"
|
||||||
|
|
||||||
/datum/preference/text/medical/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences)
|
/datum/preference/text/medical/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences)
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
@@ -104,26 +110,8 @@
|
|||||||
savefile_key = "security_record"
|
savefile_key = "security_record"
|
||||||
maximum_value_length = MAX_FLAVOR_LEN
|
maximum_value_length = MAX_FLAVOR_LEN
|
||||||
|
|
||||||
|
/datum/preference/text/security/create_default_value()
|
||||||
|
return "EDUCATION \n\ \n\ EMPLOYMENT HISTORY \n\ Employed since: \n\ CRIMINAL HISTORY \n\ \n\ Loyalty Rating: \n\ Pressure Points: points used to control crewmember \n\ \n\ CASEWORKER NOTES:"
|
||||||
|
|
||||||
/datum/preference/text/security/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences)
|
/datum/preference/text/security/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences)
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/datum/preference/text/exploitable
|
|
||||||
category = PREFERENCE_CATEGORY_NON_CONTEXTUAL
|
|
||||||
savefile_identifier = PREFERENCE_CHARACTER
|
|
||||||
savefile_key = "exploitable_info"
|
|
||||||
maximum_value_length = MAX_FLAVOR_LEN
|
|
||||||
|
|
||||||
/datum/preference/text/exploitable/create_default_value()
|
|
||||||
return EXPLOITABLE_DEFAULT_TEXT
|
|
||||||
|
|
||||||
/datum/preference/text/exploitable/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences)
|
|
||||||
return FALSE
|
|
||||||
|
|
||||||
/datum/preference/text/background
|
|
||||||
category = PREFERENCE_CATEGORY_NON_CONTEXTUAL
|
|
||||||
savefile_identifier = PREFERENCE_CHARACTER
|
|
||||||
savefile_key = "background_info"
|
|
||||||
maximum_value_length = MAX_FLAVOR_LEN
|
|
||||||
|
|
||||||
/datum/preference/text/background/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences)
|
|
||||||
return FALSE
|
|
||||||
|
|||||||
@@ -86,13 +86,6 @@
|
|||||||
if(!isnull(target_record)) // this can be null
|
if(!isnull(target_record)) // this can be null
|
||||||
to_chat(usr, "<b>Exploitable information:</b> [target_record.exploitable_information]")
|
to_chat(usr, "<b>Exploitable information:</b> [target_record.exploitable_information]")
|
||||||
|
|
||||||
else if(action == "show_background")
|
|
||||||
var/background_id = params["background_id"]
|
|
||||||
var/datum/record/locked/target_record = find_record(background_id, TRUE)
|
|
||||||
if(!isnull(target_record))
|
|
||||||
to_chat(usr, "<b>Background information:</b> [target_record.background_information]")
|
|
||||||
|
|
||||||
|
|
||||||
/datum/record_manifest/ui_data(mob/user)
|
/datum/record_manifest/ui_data(mob/user)
|
||||||
var/list/positions = list()
|
var/list/positions = list()
|
||||||
|
|
||||||
|
|||||||
@@ -236,13 +236,6 @@ GLOBAL_DATUM(character_directory, /datum/character_directory)
|
|||||||
noncon = READ_PREFS(mob, choiced/erp_status_nc)
|
noncon = READ_PREFS(mob, choiced/erp_status_nc)
|
||||||
character_ad = READ_PREFS(mob, text/character_ad)
|
character_ad = READ_PREFS(mob, text/character_ad)
|
||||||
ooc_notes = READ_PREFS(mob, text/ooc_notes)
|
ooc_notes = READ_PREFS(mob, text/ooc_notes)
|
||||||
//If the user is an antagonist or Observer, we want them to be able to see exploitables in the Directory.
|
|
||||||
if(user.mind?.has_antag_datum(/datum/antagonist) || isobserver(user))
|
|
||||||
if(exploitable == EXPLOITABLE_DEFAULT_TEXT)
|
|
||||||
exploitable = "Unset"
|
|
||||||
else exploitable = READ_PREFS(mob, text/exploitable)
|
|
||||||
else exploitable = "Obscured"
|
|
||||||
//And finally, we want to get the mob's name, taking into account disguised names.
|
|
||||||
name = mob.real_name ? mob.name : mob.real_name
|
name = mob.real_name ? mob.name : mob.real_name
|
||||||
|
|
||||||
directory_mobs.Add(list(list(
|
directory_mobs.Add(list(list(
|
||||||
|
|||||||
@@ -82,16 +82,16 @@ export const custom_smell: Feature<string> = {
|
|||||||
export const general_record: Feature<string> = {
|
export const general_record: Feature<string> = {
|
||||||
name: 'Records - General',
|
name: 'Records - General',
|
||||||
description:
|
description:
|
||||||
'Viewable with any records access. \
|
'The first part of any record that describes you. \
|
||||||
For general viewing-things like employment, qualifications, etc.',
|
For a quick description, your languages and origin, and birthday.',
|
||||||
component: FeatureTextInput,
|
component: FeatureTextInput,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const security_record: Feature<string> = {
|
export const security_record: Feature<string> = {
|
||||||
name: 'Records - Security',
|
name: 'Records - Personnel',
|
||||||
description:
|
description:
|
||||||
'Viewable with security access. \
|
'Viewable with security access, or by Command. \
|
||||||
For criminal records, arrest history, things like that.',
|
For employment and criminal history, loyalties and exploitables information, and more.',
|
||||||
component: FeatureTextInput,
|
component: FeatureTextInput,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -103,22 +103,6 @@ export const medical_record: Feature<string> = {
|
|||||||
component: FeatureTextInput,
|
component: FeatureTextInput,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const exploitable_info: Feature<string> = {
|
|
||||||
name: 'Records - Exploitable',
|
|
||||||
description:
|
|
||||||
'Can be IC or OOC. Viewable by certain antagonists/OPFOR users, as well as ghosts. Generally contains \
|
|
||||||
things like weaknesses, strengths, important background, trigger words, etc. It ALSO may contain things like \
|
|
||||||
antagonist preferences, e.g. if you want to be antagonized, by whom, with what, etc.',
|
|
||||||
component: FeatureTextInput,
|
|
||||||
};
|
|
||||||
|
|
||||||
export const background_info: Feature<string> = {
|
|
||||||
name: 'Records - Background',
|
|
||||||
description:
|
|
||||||
'Only viewable by yourself and ghosts. You can have whatever you want in here - it may be valuable as a way to orient yourself to what your character is.',
|
|
||||||
component: FeatureTextInput,
|
|
||||||
};
|
|
||||||
|
|
||||||
export const pda_ringer: Feature<string> = {
|
export const pda_ringer: Feature<string> = {
|
||||||
name: 'PDA Ringer Message',
|
name: 'PDA Ringer Message',
|
||||||
description:
|
description:
|
||||||
|
|||||||
Reference in New Issue
Block a user