mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
Links many map-specific details such as the station name, z-level information, and allowed jobs from global vars to map datum vars, which should help us maintain multiple maps at once in the future, which will be needed for the future Southern Cross. Note that a config change will be needed to change GENERATE_ASTEROID to GENERATE_MAP, otherwise no changes should be required to continue normal map usage. To change to a different map, it's suggested to tick the file that ticks all the other needed files, which for the Northern Star is called northern_star.dm.
136 lines
6.6 KiB
Plaintext
136 lines
6.6 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["faction"] >> pref.faction
|
|
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["faction"] << pref.faction
|
|
S["religion"] << pref.religion
|
|
S["nanotrasen_relation"] << pref.nanotrasen_relation
|
|
|
|
/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.faction) pref.faction = "None"
|
|
if(!pref.religion) pref.religion = "None"
|
|
|
|
pref.nanotrasen_relation = sanitize_inlist(pref.nanotrasen_relation, COMPANY_ALIGNMENTS, initial(pref.nanotrasen_relation))
|
|
|
|
// Moved from /datum/preferences/proc/copy_to()
|
|
/datum/category_item/player_setup_item/general/background/copy_to_mob(var/mob/living/carbon/human/character)
|
|
character.med_record = pref.med_record
|
|
character.sec_record = pref.sec_record
|
|
character.gen_record = pref.gen_record
|
|
character.home_system = pref.home_system
|
|
character.citizenship = pref.citizenship
|
|
character.personal_faction = pref.faction
|
|
character.religion = pref.religion
|
|
|
|
/datum/category_item/player_setup_item/general/background/content(var/mob/user)
|
|
. += "<b>Background Information</b><br>"
|
|
. += "[using_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/>"
|
|
. += "Faction: <a href='?src=\ref[src];faction=1'>[pref.faction]</a><br/>"
|
|
. += "Religion: <a href='?src=\ref[src];religion=1'>[pref.religion]</a><br/>"
|
|
|
|
. += "<br/><b>Records</b>:<br/>"
|
|
if(jobban_isbanned(user, "Records"))
|
|
. += "<span class='danger'>You are banned from using character records.</span><br>"
|
|
else
|
|
. += "Medical Records:<br>"
|
|
. += "<a href='?src=\ref[src];set_medical_records=1'>[TextPreview(pref.med_record,40)]</a><br><br>"
|
|
. += "Employment Records:<br>"
|
|
. += "<a href='?src=\ref[src];set_general_records=1'>[TextPreview(pref.gen_record,40)]</a><br><br>"
|
|
. += "Security Records:<br>"
|
|
. += "<a href='?src=\ref[src];set_security_records=1'>[TextPreview(pref.sec_record,40)]</a><br>"
|
|
|
|
/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["faction"])
|
|
var/choice = input(user, "Please choose a faction to work for.", "Character Preference", pref.faction) as null|anything in faction_choices + list("None","Other")
|
|
if(!choice || !CanUseTopic(user))
|
|
return TOPIC_NOACTION
|
|
if(choice == "Other")
|
|
var/raw_choice = sanitize(input(user, "Please enter a faction.", "Character Preference") as text|null, MAX_NAME_LEN)
|
|
if(raw_choice)
|
|
pref.faction = raw_choice
|
|
else
|
|
pref.faction = 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_RECORD_LENGTH, 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_RECORD_LENGTH, 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_RECORD_LENGTH, extra = 0)
|
|
if(!isnull(sec_medical) && !jobban_isbanned(user, "Records") && CanUseTopic(user))
|
|
pref.sec_record = sec_medical
|
|
return TOPIC_REFRESH
|
|
|
|
return ..()
|