mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-24 09:02:27 +00:00
Intent of this PR: make factions actually matter. How we're going to do this: Make factions limit job choices. Make factions have alternative loadouts that override job uniforms Make factions be visible in the employment records. Revert existing faction loadout options or put them behind a preference, in favour of new shit.
176 lines
7.2 KiB
Plaintext
176 lines
7.2 KiB
Plaintext
/datum/category_item/player_setup_item/general/background
|
|
name = "Background"
|
|
sort_order = 5
|
|
|
|
/datum/category_item/player_setup_item/general/background/load_character(var/savefile/S)
|
|
S["med_record"] >> pref.med_record
|
|
S["sec_record"] >> pref.sec_record
|
|
S["gen_record"] >> pref.gen_record
|
|
S["home_system"] >> pref.home_system
|
|
S["citizenship"] >> pref.citizenship
|
|
S["religion"] >> pref.religion
|
|
S["nanotrasen_relation"] >> pref.nanotrasen_relation
|
|
|
|
/datum/category_item/player_setup_item/general/background/save_character(var/savefile/S)
|
|
S["med_record"] << pref.med_record
|
|
S["sec_record"] << pref.sec_record
|
|
S["gen_record"] << pref.gen_record
|
|
S["home_system"] << pref.home_system
|
|
S["citizenship"] << pref.citizenship
|
|
S["religion"] << pref.religion
|
|
S["nanotrasen_relation"] << pref.nanotrasen_relation
|
|
|
|
/datum/category_item/player_setup_item/general/background/gather_load_query()
|
|
return list(
|
|
"ss13_characters_flavour" = list(
|
|
"vars" = list(
|
|
"records_employment" = "gen_record",
|
|
"records_medical" = "med_record",
|
|
"records_security" = "sec_record",
|
|
"records_ccia" = "ccia_record"
|
|
),
|
|
"args" = list("char_id")
|
|
),
|
|
"ss13_characters" = list(
|
|
"vars" = list(
|
|
"nt_relation" = "nanotrasen_relation",
|
|
"home_system",
|
|
"citizenship",
|
|
"religion"
|
|
),
|
|
"args" = list("id")
|
|
)
|
|
)
|
|
|
|
/datum/category_item/player_setup_item/general/background/gather_load_parameters()
|
|
return list(
|
|
"id" = pref.current_character,
|
|
"char_id" = pref.current_character
|
|
)
|
|
|
|
/datum/category_item/player_setup_item/general/background/gather_save_query()
|
|
return list(
|
|
"ss13_characters_flavour" = list(
|
|
"records_employment",
|
|
"records_medical",
|
|
"records_security",
|
|
"char_id" = 1
|
|
),
|
|
"ss13_characters" = list(
|
|
"nt_relation",
|
|
"home_system",
|
|
"citizenship",
|
|
"religion","id" = 1,
|
|
"ckey" = 1
|
|
)
|
|
)
|
|
|
|
/datum/category_item/player_setup_item/general/background/gather_save_parameters()
|
|
return list(
|
|
"records_employment" = pref.gen_record,
|
|
"records_medical" = pref.med_record,
|
|
"records_security" = pref.sec_record,
|
|
"char_id" = pref.current_character,
|
|
"nt_relation" = pref.nanotrasen_relation,
|
|
"home_system" = pref.home_system,
|
|
"citizenship" = pref.citizenship,
|
|
"religion" = pref.religion,
|
|
"id" = pref.current_character,
|
|
"ckey" = PREF_CLIENT_CKEY
|
|
)
|
|
|
|
/datum/category_item/player_setup_item/general/background/sanitize_character()
|
|
if(!pref.home_system)
|
|
pref.home_system = "Unset"
|
|
if(!pref.citizenship)
|
|
pref.citizenship = "None"
|
|
if(!pref.religion)
|
|
pref.religion = "None"
|
|
|
|
pref.nanotrasen_relation = sanitize_inlist(pref.nanotrasen_relation, COMPANY_ALIGNMENTS, initial(pref.nanotrasen_relation))
|
|
|
|
/datum/category_item/player_setup_item/general/background/content(var/mob/user)
|
|
var/list/dat = list(
|
|
"<b>Background Information</b><br>",
|
|
"[current_map.company_name] Relation: <a href='?src=\ref[src];nt_relation=1'>[pref.nanotrasen_relation]</a><br/>",
|
|
"Home System: <a href='?src=\ref[src];home_system=1'>[pref.home_system]</a><br/>",
|
|
"Citizenship: <a href='?src=\ref[src];citizenship=1'>[pref.citizenship]</a><br/>",
|
|
"Religion: <a href='?src=\ref[src];religion=1'>[pref.religion]</a><br/>",
|
|
"<br/><b>Records</b>:<br/>"
|
|
)
|
|
|
|
if(jobban_isbanned(user, "Records"))
|
|
dat += "<span class='danger'>You are banned from using character records.</span><br>"
|
|
else
|
|
dat += "Medical Records:<br>"
|
|
dat += "<a href='?src=\ref[src];set_medical_records=1'>[TextPreview(pref.med_record,40)]</a><br><br>"
|
|
dat += "Employment Records:<br>"
|
|
dat += "<a href='?src=\ref[src];set_general_records=1'>[TextPreview(pref.gen_record,40)]</a><br><br>"
|
|
dat += "Security Records:<br>"
|
|
dat += "<a href='?src=\ref[src];set_security_records=1'>[TextPreview(pref.sec_record,40)]</a><br>"
|
|
|
|
. = dat.Join()
|
|
|
|
/datum/category_item/player_setup_item/general/background/OnTopic(var/href,var/list/href_list, var/mob/user)
|
|
if(href_list["nt_relation"])
|
|
var/new_relation = input(user, "Choose your relation to NT. Note that this represents what others can find out about your character by researching your background, not what your character actually thinks.", "Character Preference", pref.nanotrasen_relation) as null|anything in COMPANY_ALIGNMENTS
|
|
if(new_relation && CanUseTopic(user))
|
|
pref.nanotrasen_relation = new_relation
|
|
return TOPIC_REFRESH
|
|
|
|
else if(href_list["home_system"])
|
|
var/choice = input(user, "Please choose a home system.", "Character Preference", pref.home_system) as null|anything in home_system_choices + list("Unset","Other")
|
|
if(!choice || !CanUseTopic(user))
|
|
return TOPIC_NOACTION
|
|
if(choice == "Other")
|
|
var/raw_choice = sanitize(input(user, "Please enter a home system.", "Character Preference") as text|null, MAX_NAME_LEN)
|
|
if(raw_choice && CanUseTopic(user))
|
|
pref.home_system = raw_choice
|
|
else
|
|
pref.home_system = choice
|
|
return TOPIC_REFRESH
|
|
|
|
else if(href_list["citizenship"])
|
|
var/choice = input(user, "Please choose your current citizenship.", "Character Preference", pref.citizenship) as null|anything in citizenship_choices + list("None","Other")
|
|
if(!choice || !CanUseTopic(user))
|
|
return TOPIC_NOACTION
|
|
if(choice == "Other")
|
|
var/raw_choice = sanitize(input(user, "Please enter your current citizenship.", "Character Preference") as text|null, MAX_NAME_LEN)
|
|
if(raw_choice && CanUseTopic(user))
|
|
pref.citizenship = raw_choice
|
|
else
|
|
pref.citizenship = choice
|
|
return TOPIC_REFRESH
|
|
|
|
else if(href_list["religion"])
|
|
var/choice = input(user, "Please choose a religion.", "Character Preference", pref.religion) as null|anything in religion_choices + list("None","Other")
|
|
if(!choice || !CanUseTopic(user))
|
|
return TOPIC_NOACTION
|
|
if(choice == "Other")
|
|
var/raw_choice = sanitize(input(user, "Please enter a religon.", "Character Preference") as text|null, MAX_NAME_LEN)
|
|
if(raw_choice)
|
|
pref.religion = sanitize(raw_choice)
|
|
else
|
|
pref.religion = choice
|
|
return TOPIC_REFRESH
|
|
|
|
else if(href_list["set_medical_records"])
|
|
var/new_medical = sanitize(input(user,"Enter medical information here.","Character Preference", html_decode(pref.med_record)) as message|null, MAX_PAPER_MESSAGE_LEN, extra = 0)
|
|
if(!isnull(new_medical) && !jobban_isbanned(user, "Records") && CanUseTopic(user))
|
|
pref.med_record = new_medical
|
|
return TOPIC_REFRESH
|
|
|
|
else if(href_list["set_general_records"])
|
|
var/new_general = sanitize(input(user,"Enter employment information here.","Character Preference", html_decode(pref.gen_record)) as message|null, MAX_PAPER_MESSAGE_LEN, extra = 0)
|
|
if(!isnull(new_general) && !jobban_isbanned(user, "Records") && CanUseTopic(user))
|
|
pref.gen_record = new_general
|
|
return TOPIC_REFRESH
|
|
|
|
else if(href_list["set_security_records"])
|
|
var/sec_medical = sanitize(input(user,"Enter security information here.","Character Preference", html_decode(pref.sec_record)) as message|null, MAX_PAPER_MESSAGE_LEN, extra = 0)
|
|
if(!isnull(sec_medical) && !jobban_isbanned(user, "Records") && CanUseTopic(user))
|
|
pref.sec_record = sec_medical
|
|
return TOPIC_REFRESH
|
|
|
|
return ..()
|