mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-20 06:32:56 +00:00
3591 individual conflicts Update build.js Update install_node.sh Update byond.js oh my fucking god hat slow huh holy shit we all fall down 2 more I missed 2900 individual conflicts 2700 Individual conflicts replaces yarn file with tg version, bumping us down to 2200-ish Down to 2000 individual conflicts 140 down mmm aaaaaaaaaaaaaaaaaaa not yt 575 soon 900 individual conflicts 600 individual conflicts, 121 file conflicts im not okay 160 across 19 files 29 in 4 files 0 conflicts, compiletime fix time some minor incap stuff missed ticks weird dupe definition stuff missed ticks 2 incap fixes undefs and pie fix Radio update and some extra minor stuff returns a single override no more dupe definitions, 175 compiletime errors Unticked file fix sound and emote stuff honk and more radio stuff
207 lines
5.7 KiB
Plaintext
207 lines
5.7 KiB
Plaintext
/// A preference for a name. Used not just for normal names, but also for clown names, etc.
|
|
/datum/preference/name
|
|
category = "names"
|
|
priority = PREFERENCE_PRIORITY_NAMES
|
|
savefile_identifier = PREFERENCE_CHARACTER
|
|
abstract_type = /datum/preference/name
|
|
|
|
/// The display name when showing on the "other names" panel
|
|
var/explanation
|
|
|
|
/// These will be grouped together on the preferences menu
|
|
var/group
|
|
|
|
/// Whether or not to allow numbers in the person's name
|
|
var/allow_numbers = TRUE //SKYRAT EDIT CHANGE Caligra be damned if not
|
|
|
|
/// If the highest priority job matches this, will prioritize this name in the UI
|
|
var/relevant_job
|
|
|
|
|
|
/datum/preference/name/apply_to_human(mob/living/carbon/human/target, value)
|
|
// Only real_name applies directly, everything else is applied by something else
|
|
return
|
|
|
|
|
|
/datum/preference/name/deserialize(input, datum/preferences/preferences)
|
|
return reject_bad_name("[input]", allow_numbers)
|
|
|
|
|
|
/datum/preference/name/serialize(input)
|
|
// `is_valid` should always be run before `serialize`, so it should not
|
|
// be possible for this to return `null`.
|
|
return reject_bad_name(input, allow_numbers)
|
|
|
|
|
|
/datum/preference/name/is_valid(value)
|
|
return istext(value) && !isnull(reject_bad_name(value, allow_numbers))
|
|
|
|
|
|
/// A character's real name
|
|
/datum/preference/name/real_name
|
|
explanation = "Name"
|
|
// The `_` makes it first in ABC order.
|
|
group = "_real_name"
|
|
savefile_key = "real_name"
|
|
|
|
/datum/preference/name/real_name/apply_to_human(mob/living/carbon/human/target, value)
|
|
target.real_name = value
|
|
target.name = value
|
|
target.log_mob_tag("TAG: [target.tag] RENAMED: [key_name(target)]")
|
|
|
|
/datum/preference/name/real_name/create_informed_default_value(datum/preferences/preferences)
|
|
return generate_random_name_species_based(
|
|
preferences.read_preference(/datum/preference/choiced/gender),
|
|
TRUE,
|
|
preferences.read_preference(/datum/preference/choiced/species),
|
|
)
|
|
|
|
/datum/preference/name/real_name/deserialize(input, datum/preferences/preferences)
|
|
input = ..(input)
|
|
if (!input)
|
|
return input
|
|
|
|
if (CONFIG_GET(flag/humans_need_surnames) && preferences.read_preference(/datum/preference/choiced/species) == /datum/species/human)
|
|
var/first_space = findtext(input, " ")
|
|
if(!first_space) //we need a surname
|
|
input += " [pick(GLOB.last_names)]"
|
|
else if(first_space == length(input))
|
|
input += "[pick(GLOB.last_names)]"
|
|
|
|
return reject_bad_name(input, allow_numbers)
|
|
|
|
/// The name for a backup human, when nonhumans are made into head of staff
|
|
/datum/preference/name/backup_human
|
|
explanation = "Backup human name"
|
|
group = "backup_human"
|
|
savefile_key = "human_name"
|
|
|
|
/datum/preference/name/backup_human/create_informed_default_value(datum/preferences/preferences)
|
|
return generate_random_name(preferences.read_preference(/datum/preference/choiced/gender))
|
|
|
|
/datum/preference/name/clown
|
|
savefile_key = "clown_name"
|
|
|
|
explanation = "Clown name"
|
|
group = "fun"
|
|
relevant_job = /datum/job/clown
|
|
|
|
/datum/preference/name/clown/create_default_value()
|
|
return pick(GLOB.clown_names)
|
|
|
|
/datum/preference/name/mime
|
|
savefile_key = "mime_name"
|
|
|
|
explanation = "Mime name"
|
|
group = "fun"
|
|
relevant_job = /datum/job/mime
|
|
|
|
/datum/preference/name/mime/create_default_value()
|
|
return pick(GLOB.mime_names)
|
|
|
|
/datum/preference/name/cyborg
|
|
savefile_key = "cyborg_name"
|
|
|
|
allow_numbers = TRUE
|
|
can_randomize = FALSE
|
|
|
|
explanation = "Cyborg name"
|
|
group = "silicons"
|
|
relevant_job = /datum/job/cyborg
|
|
|
|
/datum/preference/name/cyborg/create_default_value()
|
|
return DEFAULT_CYBORG_NAME
|
|
|
|
/datum/preference/name/ai
|
|
savefile_key = "ai_name"
|
|
|
|
allow_numbers = TRUE
|
|
explanation = "AI name"
|
|
group = "silicons"
|
|
relevant_job = /datum/job/ai
|
|
|
|
/datum/preference/name/ai/create_default_value()
|
|
return pick(GLOB.ai_names)
|
|
|
|
/datum/preference/name/religion
|
|
savefile_key = "religion_name"
|
|
|
|
allow_numbers = TRUE
|
|
|
|
explanation = "Religion name"
|
|
group = "religion"
|
|
|
|
/datum/preference/name/religion/create_default_value()
|
|
return pick(GLOB.religion_names)
|
|
|
|
/datum/preference/name/deity
|
|
savefile_key = "deity_name"
|
|
|
|
allow_numbers = TRUE
|
|
can_randomize = FALSE
|
|
|
|
explanation = "Deity name"
|
|
group = "religion"
|
|
|
|
/datum/preference/name/deity/create_default_value()
|
|
return DEFAULT_DEITY
|
|
|
|
/datum/preference/name/bible
|
|
savefile_key = "bible_name"
|
|
|
|
allow_numbers = TRUE
|
|
can_randomize = FALSE
|
|
|
|
explanation = "Bible name"
|
|
group = "religion"
|
|
|
|
/datum/preference/name/bible/create_default_value()
|
|
return DEFAULT_BIBLE
|
|
|
|
/// The first name given to nuclear operative antagonists. The last name will be chosen by the team leader.
|
|
/datum/preference/name/operative_alias
|
|
savefile_key = "operative_alias"
|
|
allow_numbers = TRUE //You can get a little wacky with your alias nobody will judge you
|
|
explanation = "Operative Alias"
|
|
group = "antagonists"
|
|
|
|
/datum/preference/name/operative_alias/create_default_value()
|
|
return pick(GLOB.operative_aliases)
|
|
|
|
/datum/preference/name/operative_alias/is_accessible(datum/preferences/preferences)
|
|
. = ..()
|
|
if(!.)
|
|
return FALSE
|
|
|
|
// If one of the roles is ticked in the antag prefs menu, this option will show.
|
|
var/static/list/ops_roles = list(ROLE_OPERATIVE, ROLE_LONE_OPERATIVE, ROLE_OPERATIVE_MIDROUND, ROLE_CLOWN_OPERATIVE)
|
|
if(length(ops_roles & preferences.be_special))
|
|
return TRUE
|
|
|
|
return FALSE
|
|
|
|
|
|
/// The name to use while bitrunning
|
|
/datum/preference/name/hacker_alias
|
|
explanation = "Hacker alias"
|
|
group = "bitrunning"
|
|
savefile_key = "hacker_alias"
|
|
relevant_job = /datum/job/bitrunner
|
|
|
|
|
|
/datum/preference/name/hacker_alias/create_default_value()
|
|
return pick(GLOB.hacker_aliases)
|
|
|
|
|
|
/datum/preference/name/hacker_alias/is_valid(value)
|
|
return !isnull(permissive_sanitize_name(value))
|
|
|
|
|
|
/datum/preference/name/hacker_alias/deserialize(input, datum/preferences/preferences)
|
|
return permissive_sanitize_name(input)
|
|
|
|
|
|
/datum/preference/name/hacker_alias/serialize(input)
|
|
return permissive_sanitize_name(input)
|
|
|