mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2025-12-21 07:32:02 +00:00
Merge branch 'master' into development
# Conflicts: # code/modules/client/preference_setup/loadout/loadout_xeno.dm # code/modules/customitems/item_defines.dm
This commit is contained in:
@@ -37,22 +37,24 @@
|
||||
pref.be_special_role -= role
|
||||
|
||||
/datum/category_item/player_setup_item/antagonism/candidacy/content(var/mob/user)
|
||||
. += "<b>Special Role Availability:</b><br>"
|
||||
. += "<table>"
|
||||
var/list/dat = list(
|
||||
"<b>Special Role Availability:</b><br>",
|
||||
"<table>"
|
||||
)
|
||||
var/is_global_banned = jobban_isbanned(preference_mob(), "Antagonist")
|
||||
for(var/antag_type in all_antag_types)
|
||||
var/datum/antagonist/antag = all_antag_types[antag_type]
|
||||
. += "<tr><td>[antag.role_text]: </td><td>"
|
||||
dat += "<tr><td>[antag.role_text]: </td><td>"
|
||||
var/ban_reason = jobban_isbanned(preference_mob(), antag.bantype)
|
||||
if(ban_reason == "AGE WHITELISTED")
|
||||
. += "<span class='danger'>\[IN [player_old_enough_for_role(preference_mob(), antag.bantype)] DAYS\]</span><br>"
|
||||
dat += "<span class='danger'>\[IN [player_old_enough_for_role(preference_mob(), antag.bantype)] DAYS\]</span><br>"
|
||||
else if(is_global_banned || ban_reason)
|
||||
. += "<span class='danger'>\[<a href='?src=\ref[user.client];view_jobban=[is_global_banned ? "Antagonist" : "[antag.bantype]"];'>BANNED</a>\]</span><br>"
|
||||
dat += "<span class='danger'>\[<a href='?src=\ref[user.client];view_jobban=[is_global_banned ? "Antagonist" : "[antag.bantype]"];'>BANNED</a>\]</span><br>"
|
||||
else if(antag.role_type in pref.be_special_role)
|
||||
. += "<b>Yes</b> / <a href='?src=\ref[src];del_special=[antag.role_type]'>No</a></br>"
|
||||
dat += "<b>Yes</b> / <a href='?src=\ref[src];del_special=[antag.role_type]'>No</a></br>"
|
||||
else
|
||||
. += "<a href='?src=\ref[src];add_special=[antag.role_type]'>Yes</a> / <b>No</b></br>"
|
||||
. += "</td></tr>"
|
||||
dat += "<a href='?src=\ref[src];add_special=[antag.role_type]'>Yes</a> / <b>No</b></br>"
|
||||
dat += "</td></tr>"
|
||||
|
||||
var/list/ghost_traps = get_ghost_traps()
|
||||
for(var/ghost_trap_key in ghost_traps)
|
||||
@@ -60,7 +62,7 @@
|
||||
if(!ghost_trap.list_as_special_role)
|
||||
continue
|
||||
|
||||
. += "<tr><td>[(ghost_trap.ghost_trap_role)]: </td><td>"
|
||||
dat += "<tr><td>[(ghost_trap.ghost_trap_role)]: </td><td>"
|
||||
var/ban_state = banned_from_ghost_role(preference_mob(), ghost_trap)
|
||||
if(ban_state == AGEBAN)
|
||||
var/age_to_beat = 0
|
||||
@@ -68,15 +70,17 @@
|
||||
age_to_beat = player_old_enough_for_role(preference_mob(), A)
|
||||
if (age_to_beat)
|
||||
break
|
||||
. += "<span class='danger'>\[IN [age_to_beat] DAYS\]</span><br>"
|
||||
dat += "<span class='danger'>\[IN [age_to_beat] DAYS\]</span><br>"
|
||||
else if (ban_state == RANBAN)
|
||||
. += "<span class='danger'>\[<a href='?src=\ref[user.client];view_jobban=[ghost_trap];'>BANNED</a>\]</span><br>"
|
||||
dat += "<span class='danger'>\[<a href='?src=\ref[user.client];view_jobban=[ghost_trap];'>BANNED</a>\]</span><br>"
|
||||
else if(ghost_trap.pref_check in pref.be_special_role)
|
||||
. += "<b>Yes</b> / <a href='?src=\ref[src];del_special=[ghost_trap.pref_check]'>No</a></br>"
|
||||
dat += "<b>Yes</b> / <a href='?src=\ref[src];del_special=[ghost_trap.pref_check]'>No</a></br>"
|
||||
else
|
||||
. += "<a href='?src=\ref[src];add_special=[ghost_trap.pref_check]'>Yes</a> / <b>No</b></br>"
|
||||
. += "</td></tr>"
|
||||
. += "</table>"
|
||||
dat += "<a href='?src=\ref[src];add_special=[ghost_trap.pref_check]'>Yes</a> / <b>No</b></br>"
|
||||
dat += "</td></tr>"
|
||||
dat += "</table>"
|
||||
|
||||
. = dat.Join()
|
||||
|
||||
/datum/category_item/player_setup_item/proc/banned_from_ghost_role(var/mob, var/datum/ghosttrap/ghost_trap)
|
||||
for(var/ban_type in ghost_trap.ban_checks)
|
||||
|
||||
@@ -13,15 +13,39 @@ var/global/list/uplink_locations = list("PDA", "Headset", "None")
|
||||
S["exploit_record"] << pref.exploit_record
|
||||
|
||||
/datum/category_item/player_setup_item/antagonism/basic/gather_load_query()
|
||||
return list("ss13_characters_flavour" = list("vars" = list("records_exploit" = "exploit_record"), "args" = list("char_id")),
|
||||
"ss13_characters" = list("vars" = list("uplink_location" = "uplinklocation"), "args" = list("id")))
|
||||
return list(
|
||||
"ss13_characters_flavour" = list(
|
||||
"vars" = list(
|
||||
"records_exploit" = "exploit_record"
|
||||
),
|
||||
"args" = list("char_id")
|
||||
),
|
||||
"ss13_characters" = list(
|
||||
"vars" = list(
|
||||
"uplink_location" = "uplinklocation"
|
||||
),
|
||||
"args" = list("id")
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/antagonism/basic/gather_load_parameters()
|
||||
return list("char_id" = pref.current_character, "id" = pref.current_character)
|
||||
return list(
|
||||
"char_id" = pref.current_character,
|
||||
"id" = pref.current_character
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/antagonism/basic/gather_save_query()
|
||||
return list("ss13_characters_flavour" = list("records_exploit", "char_id" = 1),
|
||||
"ss13_characters" = list("uplink_location", "id" = 1, "ckey" = 1))
|
||||
return list(
|
||||
"ss13_characters_flavour" = list(
|
||||
"records_exploit",
|
||||
"char_id" = 1
|
||||
),
|
||||
"ss13_characters" = list(
|
||||
"uplink_location",
|
||||
"id" = 1,
|
||||
"ckey" = 1
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/antagonism/basic/gather_save_parameters()
|
||||
return list("records_exploit" = pref.exploit_record, "char_id" = pref.current_character, "uplink_location" = pref.uplinklocation, "id" = pref.current_character, "ckey" = pref.client.ckey)
|
||||
@@ -30,13 +54,17 @@ var/global/list/uplink_locations = list("PDA", "Headset", "None")
|
||||
pref.uplinklocation = sanitize_inlist(pref.uplinklocation, uplink_locations, initial(pref.uplinklocation))
|
||||
|
||||
/datum/category_item/player_setup_item/antagonism/basic/content(var/mob/user)
|
||||
. +="<b>Antag Setup:</b><br>"
|
||||
. +="Uplink Type: <a href='?src=\ref[src];antagtask=1'>[pref.uplinklocation]</a><br>"
|
||||
. +="Exploitable information:<br>"
|
||||
var/list/dat = list(
|
||||
"<b>Antag Setup:</b><br>",
|
||||
"Uplink Type: <a href='?src=\ref[src];antagtask=1'>[pref.uplinklocation]</a><br>",
|
||||
"Exploitable information:<br>"
|
||||
)
|
||||
if(jobban_isbanned(user, "Records"))
|
||||
. += "<b>You are banned from using character records.</b><br>"
|
||||
dat += "<b>You are banned from using character records.</b><br>"
|
||||
else
|
||||
. +="<a href='?src=\ref[src];exploitable_record=1'>[TextPreview(pref.exploit_record,40)]</a><br>"
|
||||
dat +="<a href='?src=\ref[src];exploitable_record=1'>[TextPreview(pref.exploit_record,40)]</a><br>"
|
||||
|
||||
. = dat.Join()
|
||||
|
||||
/datum/category_item/player_setup_item/antagonism/basic/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||
if (href_list["antagtask"])
|
||||
|
||||
@@ -4,52 +4,64 @@
|
||||
var/static/list/valid_player_genders = list(MALE, FEMALE)
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/load_character(var/savefile/S)
|
||||
S["real_name"] >> pref.real_name
|
||||
S["gender"] >> pref.gender
|
||||
S["age"] >> pref.age
|
||||
S["species"] >> pref.species
|
||||
S["spawnpoint"] >> pref.spawnpoint
|
||||
S["OOC_Notes"] >> pref.metadata
|
||||
S["real_name"] >> pref.real_name
|
||||
S["gender"] >> pref.gender
|
||||
S["age"] >> pref.age
|
||||
S["species"] >> pref.species
|
||||
S["spawnpoint"] >> pref.spawnpoint
|
||||
S["OOC_Notes"] >> pref.metadata
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/save_character(var/savefile/S)
|
||||
S["real_name"] << pref.real_name
|
||||
S["gender"] << pref.gender
|
||||
S["age"] << pref.age
|
||||
S["species"] << pref.species
|
||||
S["spawnpoint"] << pref.spawnpoint
|
||||
S["OOC_Notes"] << pref.metadata
|
||||
S["real_name"] << pref.real_name
|
||||
S["gender"] << pref.gender
|
||||
S["age"] << pref.age
|
||||
S["species"] << pref.species
|
||||
S["spawnpoint"] << pref.spawnpoint
|
||||
S["OOC_Notes"] << pref.metadata
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/gather_load_query()
|
||||
return list("ss13_characters" = list("vars" = list("name" = "real_name",
|
||||
"gender",
|
||||
"age",
|
||||
"metadata",
|
||||
"spawnpoint",
|
||||
"species"),
|
||||
"args" = list("id")))
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
"vars" = list(
|
||||
"name" = "real_name",
|
||||
"gender",
|
||||
"age",
|
||||
"metadata",
|
||||
"spawnpoint",
|
||||
"species"
|
||||
),
|
||||
"args" = list("id")
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/gather_load_parameters()
|
||||
return list("id" = pref.current_character)
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/gather_save_query()
|
||||
return list("ss13_characters" = list("name",
|
||||
"gender",
|
||||
"age",
|
||||
"metadata",
|
||||
"spawnpoint",
|
||||
"species",
|
||||
"id" = 1,
|
||||
"ckey" = 1))
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
"name",
|
||||
"gender",
|
||||
"age",
|
||||
"metadata",
|
||||
"spawnpoint",
|
||||
"species",
|
||||
"id" = 1,
|
||||
"ckey" = 1
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/gather_save_parameters()
|
||||
return list("name" = pref.real_name,
|
||||
"gender" = pref.gender,
|
||||
"age" = pref.age,
|
||||
"metadata" = pref.metadata,
|
||||
"spawnpoint" = pref.spawnpoint,
|
||||
"species" = pref.species,
|
||||
"id" = pref.current_character,
|
||||
"ckey" = pref.client.ckey)
|
||||
return list(
|
||||
"name" = pref.real_name,
|
||||
"gender" = pref.gender,
|
||||
"age" = pref.age,
|
||||
"metadata" = pref.metadata,
|
||||
"spawnpoint" = pref.spawnpoint,
|
||||
"species" = pref.species,
|
||||
"id" = pref.current_character,
|
||||
"ckey" = pref.client.ckey
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/load_special()
|
||||
pref.can_edit_name = 1
|
||||
@@ -74,27 +86,29 @@
|
||||
if(!pref.species || !(pref.species in playable_species))
|
||||
pref.species = "Human"
|
||||
|
||||
pref.age = sanitize_integer(text2num(pref.age), pref.getMinAge(), pref.getMaxAge(), initial(pref.age))
|
||||
pref.gender = sanitize_inlist(pref.gender, valid_player_genders, pick(valid_player_genders))
|
||||
pref.real_name = sanitize_name(pref.real_name, pref.species)
|
||||
pref.age = sanitize_integer(text2num(pref.age), pref.getMinAge(), pref.getMaxAge(), initial(pref.age))
|
||||
pref.gender = sanitize_inlist(pref.gender, valid_player_genders, pick(valid_player_genders))
|
||||
pref.real_name = sanitize_name(pref.real_name, pref.species)
|
||||
if(!pref.real_name)
|
||||
pref.real_name = random_name(pref.gender, pref.species)
|
||||
pref.spawnpoint = sanitize_inlist(pref.spawnpoint, spawntypes, initial(pref.spawnpoint))
|
||||
pref.real_name = random_name(pref.gender, pref.species)
|
||||
pref.spawnpoint = sanitize_inlist(pref.spawnpoint, spawntypes, initial(pref.spawnpoint))
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/content()
|
||||
. = "<b>Name:</b> "
|
||||
var/list/dat = list("<b>Name:</b> ")
|
||||
if (pref.can_edit_name)
|
||||
. += "<a href='?src=\ref[src];rename=1'><b>[pref.real_name]</b></a><br>"
|
||||
dat += "<a href='?src=\ref[src];rename=1'><b>[pref.real_name]</b></a><br>"
|
||||
else
|
||||
. += "<b>[pref.real_name]</b><br> (<a href='?src=\ref[src];namehelp=1'>?</a>)"
|
||||
dat += "<b>[pref.real_name]</b><br> (<a href='?src=\ref[src];namehelp=1'>?</a>)"
|
||||
if (pref.can_edit_name)
|
||||
. += "(<a href='?src=\ref[src];random_name=1'>Random Name</A>)"
|
||||
. += "<br>"
|
||||
. += "<b>Gender:</b> <a href='?src=\ref[src];gender=1'><b>[capitalize(lowertext(pref.gender))]</b></a><br>"
|
||||
. += "<b>Age:</b> <a href='?src=\ref[src];age=1'>[pref.age]</a><br>"
|
||||
. += "<b>Spawn Point</b>: <a href='?src=\ref[src];spawnpoint=1'>[pref.spawnpoint]</a><br>"
|
||||
dat += "(<a href='?src=\ref[src];random_name=1'>Random Name</A>)"
|
||||
dat += "<br>"
|
||||
dat += "<b>Gender:</b> <a href='?src=\ref[src];gender=1'><b>[capitalize(lowertext(pref.gender))]</b></a><br>"
|
||||
dat += "<b>Age:</b> <a href='?src=\ref[src];age=1'>[pref.age]</a><br>"
|
||||
dat += "<b>Spawn Point</b>: <a href='?src=\ref[src];spawnpoint=1'>[pref.spawnpoint]</a><br>"
|
||||
if(config.allow_Metadata)
|
||||
. += "<b>OOC Notes:</b> <a href='?src=\ref[src];metadata=1'> Edit </a><br>"
|
||||
dat += "<b>OOC Notes:</b> <a href='?src=\ref[src];metadata=1'> Edit </a><br>"
|
||||
|
||||
. = dat.Join()
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||
if(href_list["rename"])
|
||||
|
||||
@@ -3,26 +3,39 @@
|
||||
sort_order = 2
|
||||
|
||||
/datum/category_item/player_setup_item/general/language/load_character(var/savefile/S)
|
||||
S["language"] >> pref.alternate_languages
|
||||
S["language"] >> pref.alternate_languages
|
||||
|
||||
/datum/category_item/player_setup_item/general/language/save_character(var/savefile/S)
|
||||
S["language"] << pref.alternate_languages
|
||||
S["language"] << pref.alternate_languages
|
||||
|
||||
/datum/category_item/player_setup_item/general/language/gather_load_query()
|
||||
return list("ss13_characters" = list("vars" = list("language" = "alternate_languages"), "args" = list("id")))
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
"vars" = list(
|
||||
"language" = "alternate_languages"
|
||||
),
|
||||
"args" = list("id")
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/language/gather_load_parameters()
|
||||
return list("id" = pref.current_character)
|
||||
|
||||
/datum/category_item/player_setup_item/general/language/gather_save_query()
|
||||
return list("ss13_characters" = list("id" = 1,
|
||||
"ckey" = 1,
|
||||
"language"))
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
"id" = 1,
|
||||
"ckey" = 1,
|
||||
"language"
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/language/gather_save_parameters()
|
||||
return list("language" = list2params(pref.alternate_languages),
|
||||
"id" = pref.current_character,
|
||||
"ckey" = pref.client.ckey)
|
||||
return list(
|
||||
"language" = list2params(pref.alternate_languages),
|
||||
"id" = pref.current_character,
|
||||
"ckey" = pref.client.ckey
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/language/sanitize_character(var/sql_load = 0)
|
||||
if (sql_load)
|
||||
@@ -58,22 +71,24 @@
|
||||
cat.modified = TRUE
|
||||
|
||||
/datum/category_item/player_setup_item/general/language/content()
|
||||
. += "<b>Languages</b><br>"
|
||||
var/list/dat = list("<b>Languages</b><br>")
|
||||
var/datum/species/S = all_species[pref.species]
|
||||
if(S.language)
|
||||
. += "- [S.language]<br>"
|
||||
dat += "- [S.language]<br>"
|
||||
if(S.default_language && S.default_language != S.language)
|
||||
. += "- [S.default_language]<br>"
|
||||
dat += "- [S.default_language]<br>"
|
||||
if(S.num_alternate_languages)
|
||||
if(pref.alternate_languages.len)
|
||||
for(var/i = 1 to pref.alternate_languages.len)
|
||||
var/lang = pref.alternate_languages[i]
|
||||
. += "- [lang] - <a href='?src=\ref[src];remove_language=[i]'>remove</a><br>"
|
||||
dat += "- [lang] - <a href='?src=\ref[src];remove_language=[i]'>remove</a><br>"
|
||||
|
||||
if(pref.alternate_languages.len < S.num_alternate_languages)
|
||||
. += "- <a href='?src=\ref[src];add_language=1'>add</a> ([S.num_alternate_languages - pref.alternate_languages.len] remaining)<br>"
|
||||
dat += "- <a href='?src=\ref[src];add_language=1'>add</a> ([S.num_alternate_languages - pref.alternate_languages.len] remaining)<br>"
|
||||
else
|
||||
. += "- [pref.species] cannot choose secondary languages.<br>"
|
||||
dat += "- [pref.species] cannot choose secondary languages.<br>"
|
||||
|
||||
. = dat.Join()
|
||||
|
||||
/datum/category_item/player_setup_item/general/language/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||
if(href_list["remove_language"])
|
||||
|
||||
@@ -5,123 +5,135 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
sort_order = 3
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/load_character(var/savefile/S)
|
||||
S["hair_red"] >> pref.r_hair
|
||||
S["hair_green"] >> pref.g_hair
|
||||
S["hair_blue"] >> pref.b_hair
|
||||
S["facial_red"] >> pref.r_facial
|
||||
S["facial_green"] >> pref.g_facial
|
||||
S["facial_blue"] >> pref.b_facial
|
||||
S["skin_tone"] >> pref.s_tone
|
||||
S["skin_red"] >> pref.r_skin
|
||||
S["skin_green"] >> pref.g_skin
|
||||
S["skin_blue"] >> pref.b_skin
|
||||
S["hair_style_name"] >> pref.h_style
|
||||
S["facial_style_name"] >> pref.f_style
|
||||
S["eyes_red"] >> pref.r_eyes
|
||||
S["eyes_green"] >> pref.g_eyes
|
||||
S["eyes_blue"] >> pref.b_eyes
|
||||
S["b_type"] >> pref.b_type
|
||||
S["disabilities"] >> pref.disabilities
|
||||
S["organ_data"] >> pref.organ_data
|
||||
S["rlimb_data"] >> pref.rlimb_data
|
||||
S["body_markings"] >> pref.body_markings
|
||||
S["hair_red"] >> pref.r_hair
|
||||
S["hair_green"] >> pref.g_hair
|
||||
S["hair_blue"] >> pref.b_hair
|
||||
S["facial_red"] >> pref.r_facial
|
||||
S["facial_green"] >> pref.g_facial
|
||||
S["facial_blue"] >> pref.b_facial
|
||||
S["skin_tone"] >> pref.s_tone
|
||||
S["skin_red"] >> pref.r_skin
|
||||
S["skin_green"] >> pref.g_skin
|
||||
S["skin_blue"] >> pref.b_skin
|
||||
S["hair_style_name"] >> pref.h_style
|
||||
S["facial_style_name"] >> pref.f_style
|
||||
S["eyes_red"] >> pref.r_eyes
|
||||
S["eyes_green"] >> pref.g_eyes
|
||||
S["eyes_blue"] >> pref.b_eyes
|
||||
S["b_type"] >> pref.b_type
|
||||
S["disabilities"] >> pref.disabilities
|
||||
S["organ_data"] >> pref.organ_data
|
||||
S["rlimb_data"] >> pref.rlimb_data
|
||||
S["body_markings"] >> pref.body_markings
|
||||
pref.preview_icon = null
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/save_character(var/savefile/S)
|
||||
S["hair_red"] << pref.r_hair
|
||||
S["hair_green"] << pref.g_hair
|
||||
S["hair_blue"] << pref.b_hair
|
||||
S["facial_red"] << pref.r_facial
|
||||
S["facial_green"] << pref.g_facial
|
||||
S["facial_blue"] << pref.b_facial
|
||||
S["skin_tone"] << pref.s_tone
|
||||
S["skin_red"] << pref.r_skin
|
||||
S["skin_green"] << pref.g_skin
|
||||
S["skin_blue"] << pref.b_skin
|
||||
S["hair_style_name"] << pref.h_style
|
||||
S["facial_style_name"] << pref.f_style
|
||||
S["eyes_red"] << pref.r_eyes
|
||||
S["eyes_green"] << pref.g_eyes
|
||||
S["eyes_blue"] << pref.b_eyes
|
||||
S["b_type"] << pref.b_type
|
||||
S["disabilities"] << pref.disabilities
|
||||
S["organ_data"] << pref.organ_data
|
||||
S["rlimb_data"] << pref.rlimb_data
|
||||
S["body_markings"] << pref.body_markings
|
||||
S["hair_red"] << pref.r_hair
|
||||
S["hair_green"] << pref.g_hair
|
||||
S["hair_blue"] << pref.b_hair
|
||||
S["facial_red"] << pref.r_facial
|
||||
S["facial_green"] << pref.g_facial
|
||||
S["facial_blue"] << pref.b_facial
|
||||
S["skin_tone"] << pref.s_tone
|
||||
S["skin_red"] << pref.r_skin
|
||||
S["skin_green"] << pref.g_skin
|
||||
S["skin_blue"] << pref.b_skin
|
||||
S["hair_style_name"] << pref.h_style
|
||||
S["facial_style_name"] << pref.f_style
|
||||
S["eyes_red"] << pref.r_eyes
|
||||
S["eyes_green"] << pref.g_eyes
|
||||
S["eyes_blue"] << pref.b_eyes
|
||||
S["b_type"] << pref.b_type
|
||||
S["disabilities"] << pref.disabilities
|
||||
S["organ_data"] << pref.organ_data
|
||||
S["rlimb_data"] << pref.rlimb_data
|
||||
S["body_markings"] << pref.body_markings
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/gather_load_query()
|
||||
return list("ss13_characters" = list("vars" = list("hair_colour",
|
||||
"facial_colour",
|
||||
"skin_tone" = "s_tone",
|
||||
"skin_colour",
|
||||
"hair_style" = "h_style",
|
||||
"facial_style" = "f_style",
|
||||
"eyes_colour",
|
||||
"b_type",
|
||||
"disabilities",
|
||||
"organs_data" = "organ_data",
|
||||
"organs_robotic" = "rlimb_data",
|
||||
"body_markings"),
|
||||
"args" = list("id")))
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
"vars" = list(
|
||||
"hair_colour",
|
||||
"facial_colour",
|
||||
"skin_tone" = "s_tone",
|
||||
"skin_colour",
|
||||
"hair_style" = "h_style",
|
||||
"facial_style" = "f_style",
|
||||
"eyes_colour",
|
||||
"b_type",
|
||||
"disabilities",
|
||||
"organs_data" = "organ_data",
|
||||
"organs_robotic" = "rlimb_data",
|
||||
"body_markings"
|
||||
),
|
||||
"args" = list("id")
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/gather_load_parameters()
|
||||
return list("id" = pref.current_character)
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/gather_save_query()
|
||||
return list("ss13_characters" = list("hair_colour",
|
||||
"facial_colour",
|
||||
"skin_tone",
|
||||
"skin_colour",
|
||||
"hair_style",
|
||||
"facial_style",
|
||||
"eyes_colour",
|
||||
"b_type",
|
||||
"disabilities",
|
||||
"organs_data",
|
||||
"organs_robotic",
|
||||
"body_markings",
|
||||
"id" = 1,
|
||||
"ckey" = 1))
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
"hair_colour",
|
||||
"facial_colour",
|
||||
"skin_tone",
|
||||
"skin_colour",
|
||||
"hair_style",
|
||||
"facial_style",
|
||||
"eyes_colour",
|
||||
"b_type",
|
||||
"disabilities",
|
||||
"organs_data",
|
||||
"organs_robotic",
|
||||
"body_markings",
|
||||
"id" = 1,
|
||||
"ckey" = 1
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/gather_save_parameters()
|
||||
return list("hair_colour" = "#" + num2hex(pref.r_hair, 2) + num2hex(pref.g_hair, 2) + num2hex(pref.b_hair, 2),
|
||||
"facial_colour" = "#" + num2hex(pref.r_facial, 2) + num2hex(pref.g_facial, 2) + num2hex(pref.b_facial, 2),
|
||||
"skin_tone" = pref.s_tone,
|
||||
"skin_colour" = "#" + num2hex(pref.r_skin, 2) + num2hex(pref.g_skin, 2) + num2hex(pref.b_skin, 2),
|
||||
"hair_style" = pref.h_style,
|
||||
"facial_style" = pref.f_style,
|
||||
"eyes_colour" = "#" + num2hex(pref.r_eyes, 2) + num2hex(pref.g_eyes, 2) + num2hex(pref.b_eyes, 2),
|
||||
"b_type" = pref.b_type,
|
||||
"disabilities" = pref.disabilities,
|
||||
"organs_data" = list2params(pref.organ_data),
|
||||
"organs_robotic"= list2params(pref.rlimb_data),
|
||||
"body_markings" = json_encode(pref.body_markings),
|
||||
"id" = pref.current_character,
|
||||
"ckey" = pref.client.ckey)
|
||||
return list(
|
||||
"hair_colour" = rgb(pref.r_hair, pref.g_hair, pref.b_hair),
|
||||
"facial_colour" = rgb(pref.r_facial, pref.g_facial, pref.b_facial),
|
||||
"skin_tone" = pref.s_tone,
|
||||
"skin_colour" = rgb(pref.r_skin, pref.g_skin, pref.b_skin) ,
|
||||
"hair_style" = pref.h_style,
|
||||
"facial_style" = pref.f_style,
|
||||
"eyes_colour" = rgb(pref.r_eyes, pref.g_eyes, pref.b_eyes),
|
||||
"b_type" = pref.b_type,
|
||||
"disabilities" = pref.disabilities,
|
||||
"organs_data" = list2params(pref.organ_data),
|
||||
"organs_robotic"= list2params(pref.rlimb_data),
|
||||
"body_markings" = json_encode(pref.body_markings),
|
||||
"id" = pref.current_character,
|
||||
"ckey" = pref.client.ckey
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/sanitize_character(var/sql_load = 0)
|
||||
if (sql_load)
|
||||
pref.hair_colour = sanitize_hexcolor(pref.hair_colour)
|
||||
pref.r_hair = GetRedPart(pref.hair_colour)
|
||||
pref.g_hair = GetGreenPart(pref.hair_colour)
|
||||
pref.b_hair = GetBluePart(pref.hair_colour)
|
||||
pref.r_hair = GetRedPart(pref.hair_colour)
|
||||
pref.g_hair = GetGreenPart(pref.hair_colour)
|
||||
pref.b_hair = GetBluePart(pref.hair_colour)
|
||||
|
||||
pref.facial_colour = sanitize_hexcolor(pref.facial_colour)
|
||||
pref.r_facial = GetRedPart(pref.facial_colour)
|
||||
pref.g_facial = GetGreenPart(pref.facial_colour)
|
||||
pref.b_facial = GetBluePart(pref.facial_colour)
|
||||
pref.r_facial = GetRedPart(pref.facial_colour)
|
||||
pref.g_facial = GetGreenPart(pref.facial_colour)
|
||||
pref.b_facial = GetBluePart(pref.facial_colour)
|
||||
|
||||
pref.s_tone = text2num(pref.s_tone)
|
||||
pref.s_tone = text2num(pref.s_tone)
|
||||
|
||||
pref.skin_colour = sanitize_hexcolor(pref.skin_colour)
|
||||
pref.r_skin = GetRedPart(pref.skin_colour)
|
||||
pref.g_skin = GetGreenPart(pref.skin_colour)
|
||||
pref.b_skin = GetBluePart(pref.skin_colour)
|
||||
pref.r_skin = GetRedPart(pref.skin_colour)
|
||||
pref.g_skin = GetGreenPart(pref.skin_colour)
|
||||
pref.b_skin = GetBluePart(pref.skin_colour)
|
||||
|
||||
pref.skin_colour = sanitize_hexcolor(pref.skin_colour)
|
||||
pref.r_eyes = GetRedPart(pref.eyes_colour)
|
||||
pref.g_eyes = GetGreenPart(pref.eyes_colour)
|
||||
pref.b_eyes = GetBluePart(pref.eyes_colour)
|
||||
pref.r_eyes = GetRedPart(pref.eyes_colour)
|
||||
pref.g_eyes = GetGreenPart(pref.eyes_colour)
|
||||
pref.b_eyes = GetBluePart(pref.eyes_colour)
|
||||
|
||||
pref.disabilities = text2num(pref.disabilities)
|
||||
|
||||
@@ -137,24 +149,24 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
log_debug("BODY MARKINGS: Caught [e]. Initial value: [before]")
|
||||
pref.body_markings = list()
|
||||
|
||||
pref.r_hair = sanitize_integer(pref.r_hair, 0, 255, initial(pref.r_hair))
|
||||
pref.g_hair = sanitize_integer(pref.g_hair, 0, 255, initial(pref.g_hair))
|
||||
pref.b_hair = sanitize_integer(pref.b_hair, 0, 255, initial(pref.b_hair))
|
||||
pref.r_facial = sanitize_integer(pref.r_facial, 0, 255, initial(pref.r_facial))
|
||||
pref.g_facial = sanitize_integer(pref.g_facial, 0, 255, initial(pref.g_facial))
|
||||
pref.b_facial = sanitize_integer(pref.b_facial, 0, 255, initial(pref.b_facial))
|
||||
pref.s_tone = sanitize_integer(pref.s_tone, -185, 34, initial(pref.s_tone))
|
||||
pref.r_skin = sanitize_integer(pref.r_skin, 0, 255, initial(pref.r_skin))
|
||||
pref.g_skin = sanitize_integer(pref.g_skin, 0, 255, initial(pref.g_skin))
|
||||
pref.b_skin = sanitize_integer(pref.b_skin, 0, 255, initial(pref.b_skin))
|
||||
pref.h_style = sanitize_inlist(pref.h_style, hair_styles_list, initial(pref.h_style))
|
||||
pref.f_style = sanitize_inlist(pref.f_style, facial_hair_styles_list, initial(pref.f_style))
|
||||
pref.r_eyes = sanitize_integer(pref.r_eyes, 0, 255, initial(pref.r_eyes))
|
||||
pref.g_eyes = sanitize_integer(pref.g_eyes, 0, 255, initial(pref.g_eyes))
|
||||
pref.b_eyes = sanitize_integer(pref.b_eyes, 0, 255, initial(pref.b_eyes))
|
||||
pref.b_type = sanitize_text(pref.b_type, initial(pref.b_type))
|
||||
pref.r_hair = sanitize_integer(pref.r_hair, 0, 255, initial(pref.r_hair))
|
||||
pref.g_hair = sanitize_integer(pref.g_hair, 0, 255, initial(pref.g_hair))
|
||||
pref.b_hair = sanitize_integer(pref.b_hair, 0, 255, initial(pref.b_hair))
|
||||
pref.r_facial = sanitize_integer(pref.r_facial, 0, 255, initial(pref.r_facial))
|
||||
pref.g_facial = sanitize_integer(pref.g_facial, 0, 255, initial(pref.g_facial))
|
||||
pref.b_facial = sanitize_integer(pref.b_facial, 0, 255, initial(pref.b_facial))
|
||||
pref.s_tone = sanitize_integer(pref.s_tone, -185, 34, initial(pref.s_tone))
|
||||
pref.r_skin = sanitize_integer(pref.r_skin, 0, 255, initial(pref.r_skin))
|
||||
pref.g_skin = sanitize_integer(pref.g_skin, 0, 255, initial(pref.g_skin))
|
||||
pref.b_skin = sanitize_integer(pref.b_skin, 0, 255, initial(pref.b_skin))
|
||||
pref.h_style = sanitize_inlist(pref.h_style, hair_styles_list, initial(pref.h_style))
|
||||
pref.f_style = sanitize_inlist(pref.f_style, facial_hair_styles_list, initial(pref.f_style))
|
||||
pref.r_eyes = sanitize_integer(pref.r_eyes, 0, 255, initial(pref.r_eyes))
|
||||
pref.g_eyes = sanitize_integer(pref.g_eyes, 0, 255, initial(pref.g_eyes))
|
||||
pref.b_eyes = sanitize_integer(pref.b_eyes, 0, 255, initial(pref.b_eyes))
|
||||
pref.b_type = sanitize_text(pref.b_type, initial(pref.b_type))
|
||||
|
||||
pref.disabilities = sanitize_integer(pref.disabilities, 0, 65535, initial(pref.disabilities))
|
||||
pref.disabilities = sanitize_integer(pref.disabilities, 0, 65535, initial(pref.disabilities))
|
||||
if (!pref.organ_data || !islist(pref.organ_data))
|
||||
pref.organ_data = list()
|
||||
if (!pref.rlimb_data || !islist(pref.rlimb_data))
|
||||
@@ -163,25 +175,25 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
pref.body_markings = list()
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/content(var/mob/user)
|
||||
var/list/out = list()
|
||||
pref.update_preview_icon()
|
||||
if(!pref.preview_icon)
|
||||
pref.update_preview_icon()
|
||||
user << browse_rsc(pref.preview_icon, "previewicon.png")
|
||||
|
||||
var/datum/species/mob_species = all_species[pref.species]
|
||||
. += "<table><tr style='vertical-align:top'><td><b>Body</b> "
|
||||
. += "(<a href='?src=\ref[src];random=1'>®</A>)"
|
||||
. += "<br>"
|
||||
. += "Species: <a href='?src=\ref[src];show_species=1'>[pref.species]</a><br>"
|
||||
. += "Blood Type: <a href='?src=\ref[src];blood_type=1'>[pref.b_type]</a><br>"
|
||||
out += "<table><tr style='vertical-align:top'><td><b>Body</b> "
|
||||
out += "(<a href='?src=\ref[src];random=1'>®</A>)"
|
||||
out += "<br>"
|
||||
out += "Species: <a href='?src=\ref[src];show_species=1'>[pref.species]</a><br>"
|
||||
out += "Blood Type: <a href='?src=\ref[src];blood_type=1'>[pref.b_type]</a><br>"
|
||||
if(has_flag(mob_species, HAS_SKIN_TONE))
|
||||
. += "Skin Tone: <a href='?src=\ref[src];skin_tone=1'>[-pref.s_tone + 35]/220</a><br>"
|
||||
. += "Needs Glasses: <a href='?src=\ref[src];disabilities=[NEARSIGHTED]'><b>[pref.disabilities & NEARSIGHTED ? "Yes" : "No"]</b></a><br>"
|
||||
out += "Skin Tone: <a href='?src=\ref[src];skin_tone=1'>[-pref.s_tone + 35]/220</a><br>"
|
||||
out += "Needs Glasses: <a href='?src=\ref[src];disabilities=[NEARSIGHTED]'><b>[pref.disabilities & NEARSIGHTED ? "Yes" : "No"]</b></a><br>"
|
||||
if(!(has_flag(mob_species, HAS_FBP)))
|
||||
. += "Limbs: <a href='?src=\ref[src];limbs=1'>Adjust</a><br>"
|
||||
. += "Internal Organs: <a href='?src=\ref[src];organs=1'>Adjust</a><br>"
|
||||
. += "Prosthesis/Amputations: <a href='?src=\ref[src];reset_organs=1'>Reset</a><br>"
|
||||
|
||||
out += "Limbs: <a href='?src=\ref[src];limbs=1'>Adjust</a><br>"
|
||||
out += "Internal Organs: <a href='?src=\ref[src];organs=1'>Adjust</a><br>"
|
||||
out += "Prosthesis/Amputations: <a href='?src=\ref[src];reset_organs=1'>Reset</a><br>"
|
||||
|
||||
//display limbs below
|
||||
var/ind = 0
|
||||
@@ -220,69 +232,71 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
if(status == "cyborg")
|
||||
++ind
|
||||
if(ind > 1)
|
||||
. += ", "
|
||||
out += ", "
|
||||
var/datum/robolimb/R
|
||||
if(pref.rlimb_data[name] && all_robolimbs[pref.rlimb_data[name]])
|
||||
R = all_robolimbs[pref.rlimb_data[name]]
|
||||
else
|
||||
R = basic_robolimb
|
||||
. += "\t[R.company] [organ_name] prosthesis"
|
||||
out += "\t[R.company] [organ_name] prosthesis"
|
||||
else if(status == "amputated")
|
||||
++ind
|
||||
if(ind > 1)
|
||||
. += ", "
|
||||
. += "\tAmputated [organ_name]"
|
||||
out += ", "
|
||||
out += "\tAmputated [organ_name]"
|
||||
else if(status == "mechanical")
|
||||
++ind
|
||||
if(ind > 1)
|
||||
. += ", "
|
||||
. += "\tMechanical [organ_name]"
|
||||
out += ", "
|
||||
out += "\tMechanical [organ_name]"
|
||||
else if(status == "assisted")
|
||||
++ind
|
||||
if(ind > 1)
|
||||
. += ", "
|
||||
out += ", "
|
||||
switch(organ_name)
|
||||
if("heart")
|
||||
. += "\tPacemaker-assisted [organ_name]"
|
||||
out += "\tPacemaker-assisted [organ_name]"
|
||||
if("voicebox") //on adding voiceboxes for speaking skrell/similar replacements
|
||||
. += "\tSurgically altered [organ_name]"
|
||||
out += "\tSurgically altered [organ_name]"
|
||||
if("eyes")
|
||||
. += "\tRetinal overlayed [organ_name]"
|
||||
out += "\tRetinal overlayed [organ_name]"
|
||||
else
|
||||
. += "\tMechanically assisted [organ_name]"
|
||||
out += "\tMechanically assisted [organ_name]"
|
||||
if(!ind)
|
||||
. += "\[...\]<br><br>"
|
||||
out += "\[...\]<br><br>"
|
||||
else
|
||||
. += "<br><br>"
|
||||
out += "<br><br>"
|
||||
|
||||
. += "</td><td><b>Preview</b><br>"
|
||||
. += "<div class='statusDisplay'><center><img src=previewicon.png width=[pref.preview_icon.Width()] height=[pref.preview_icon.Height()]></center></div>"
|
||||
. += "<br><a href='?src=\ref[src];toggle_clothing=1'>[pref.dress_mob ? "Hide equipment" : "Show equipment"]</a>"
|
||||
. += "</td></tr></table>"
|
||||
out += "</td><td><b>Preview</b><br>"
|
||||
out += "<div class='statusDisplay'><center><img src=previewicon.png width=[pref.preview_icon.Width()] height=[pref.preview_icon.Height()]></center></div>"
|
||||
out += "<br><a href='?src=\ref[src];toggle_clothing=1'>[pref.dress_mob ? "Hide equipment" : "Show equipment"]</a>"
|
||||
out += "</td></tr></table>"
|
||||
|
||||
. += "<b>Hair</b><br>"
|
||||
out += "<b>Hair</b><br>"
|
||||
if(has_flag(mob_species, HAS_HAIR_COLOR))
|
||||
. += "<a href='?src=\ref[src];hair_color=1'>Change Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_hair, 2)][num2hex(pref.g_hair, 2)][num2hex(pref.b_hair, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_hair, 2)][num2hex(pref.g_hair, 2)][num2hex(pref.b_hair, 2)]'><tr><td>__</td></tr></table></font> "
|
||||
. += " Style: <a href='?src=\ref[src];hair_style=1'>[pref.h_style]</a><br>"
|
||||
out += "<a href='?src=\ref[src];hair_color=1'>Change Color</a> [HTML_RECT(rgb(pref.r_hair, pref.g_hair, pref.b_hair))] "
|
||||
out += " Style: <a href='?src=\ref[src];hair_style=1'>[pref.h_style]</a><br>"
|
||||
|
||||
. += "<br><b>Facial</b><br>"
|
||||
out += "<br><b>Facial</b><br>"
|
||||
if(has_flag(mob_species, HAS_HAIR_COLOR))
|
||||
. += "<a href='?src=\ref[src];facial_color=1'>Change Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_facial, 2)][num2hex(pref.g_facial, 2)][num2hex(pref.b_facial, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_facial, 2)][num2hex(pref.g_facial, 2)][num2hex(pref.b_facial, 2)]'><tr><td>__</td></tr></table></font> "
|
||||
. += " Style: <a href='?src=\ref[src];facial_style=1'>[pref.f_style]</a><br>"
|
||||
out += "<a href='?src=\ref[src];facial_color=1'>Change Color</a> [HTML_RECT(rgb(pref.r_facial, pref.g_facial, pref.b_facial))] "
|
||||
out += " Style: <a href='?src=\ref[src];facial_style=1'>[pref.f_style]</a><br>"
|
||||
|
||||
if(has_flag(mob_species, HAS_EYE_COLOR))
|
||||
. += "<br><b>Eyes</b><br>"
|
||||
. += "<a href='?src=\ref[src];eye_color=1'>Change Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_eyes, 2)][num2hex(pref.g_eyes, 2)][num2hex(pref.b_eyes, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_eyes, 2)][num2hex(pref.g_eyes, 2)][num2hex(pref.b_eyes, 2)]'><tr><td>__</td></tr></table></font><br>"
|
||||
out += "<br><b>Eyes</b><br>"
|
||||
out += "<a href='?src=\ref[src];eye_color=1'>Change Color</a> [HTML_RECT(rgb(pref.r_eyes, pref.g_eyes, pref.b_eyes))] <br>"
|
||||
|
||||
if(has_flag(mob_species, HAS_SKIN_COLOR))
|
||||
. += "<br><b>Body Color</b><br>"
|
||||
. += "<a href='?src=\ref[src];skin_color=1'>Change Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_skin, 2)][num2hex(pref.g_skin, 2)][num2hex(pref.b_skin, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_skin, 2)][num2hex(pref.g_skin, 2)][num2hex(pref.b_skin, 2)]'><tr><td>__</td></tr></table></font><br>"
|
||||
out += "<br><b>Body Color</b><br>"
|
||||
out += "<a href='?src=\ref[src];skin_color=1'>Change Color</a> [HTML_RECT(rgb(pref.r_skin, pref.g_skin, pref.b_skin))] <br>"
|
||||
|
||||
. += "<br><a href='?src=\ref[src];marking_style=1'>Body Markings +</a><br>"
|
||||
out += "<br><a href='?src=\ref[src];marking_style=1'>Body Markings +</a><br>"
|
||||
for(var/M in pref.body_markings)
|
||||
. += "[M] <a href='?src=\ref[src];marking_remove=[M]'>-</a> <a href='?src=\ref[src];marking_color=[M]'>Color</a>"
|
||||
. += "<font face='fixedsys' size='3' color='[pref.body_markings[M]]'><table style='display:inline;' bgcolor='[pref.body_markings[M]]'><tr><td>__</td></tr></table></font>"
|
||||
. += "<br>"
|
||||
out += "[M] <a href='?src=\ref[src];marking_remove=[M]'>-</a> <a href='?src=\ref[src];marking_color=[M]'>Color</a>"
|
||||
out += HTML_RECT(pref.body_markings[M])
|
||||
out += "<br>"
|
||||
|
||||
. = out.Join()
|
||||
|
||||
/datum/category_item/player_setup_item/general/body/proc/has_flag(var/datum/species/mob_species, var/flag)
|
||||
return mob_species && (mob_species.appearance_flags & flag)
|
||||
@@ -320,22 +334,26 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
if(prev_species != pref.species)
|
||||
mob_species = all_species[pref.species]
|
||||
|
||||
var/bodytype = mob_species.get_bodytype()
|
||||
|
||||
//grab one of the valid hair styles for the newly chosen species
|
||||
var/list/valid_hairstyles = list()
|
||||
for(var/hairstyle in hair_styles_list)
|
||||
var/datum/sprite_accessory/S = hair_styles_list[hairstyle]
|
||||
if(pref.gender == MALE && S.gender == FEMALE)
|
||||
continue
|
||||
if(pref.gender == FEMALE && S.gender == MALE)
|
||||
continue
|
||||
if(!(mob_species.get_bodytype() in S.species_allowed) || mob_species.name == "Industrial Frame") //super snowflake check because Industrial Frames are IPC bodytypes, but don't have an IPC head.
|
||||
continue
|
||||
valid_hairstyles[hairstyle] = hair_styles_list[hairstyle]
|
||||
|
||||
// Snowflake check for industrials - they're an IPC bodytype but don't have IPC screens.
|
||||
if (mob_species.name != "Industrial Frame")
|
||||
for(var/hairstyle in hair_styles_list)
|
||||
var/datum/sprite_accessory/S = hair_styles_list[hairstyle]
|
||||
if(pref.gender == MALE && S.gender == FEMALE)
|
||||
continue
|
||||
if(pref.gender == FEMALE && S.gender == MALE)
|
||||
continue
|
||||
if(!(bodytype in S.species_allowed))
|
||||
continue
|
||||
valid_hairstyles[hairstyle] = hair_styles_list[hairstyle]
|
||||
|
||||
if(valid_hairstyles.len)
|
||||
pref.h_style = pick(valid_hairstyles)
|
||||
else
|
||||
//this shouldn't happen
|
||||
else // Species has no hair, or something fucked up.
|
||||
pref.h_style = hair_styles_list["Bald"]
|
||||
|
||||
//grab one of the valid facial hair styles for the newly chosen species
|
||||
@@ -346,7 +364,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
continue
|
||||
if(pref.gender == FEMALE && S.gender == MALE)
|
||||
continue
|
||||
if(!(mob_species.get_bodytype() in S.species_allowed))
|
||||
if(!(bodytype in S.species_allowed))
|
||||
continue
|
||||
|
||||
valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle]
|
||||
@@ -374,18 +392,19 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
return TOPIC_NOACTION
|
||||
var/new_hair = input(user, "Choose your character's hair colour:", "Character Preference", rgb(pref.r_hair, pref.g_hair, pref.b_hair)) as color|null
|
||||
if(new_hair && has_flag(mob_species, HAS_HAIR_COLOR) && CanUseTopic(user))
|
||||
pref.r_hair = hex2num(copytext(new_hair, 2, 4))
|
||||
pref.g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||
pref.b_hair = hex2num(copytext(new_hair, 6, 8))
|
||||
pref.r_hair = GetRedPart(new_hair)
|
||||
pref.g_hair = GetGreenPart(new_hair)
|
||||
pref.b_hair = GetBluePart(new_hair)
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["hair_style"])
|
||||
if(mob_species.bald)
|
||||
return
|
||||
var/bodytype = mob_species.get_bodytype()
|
||||
var/list/valid_hairstyles = list()
|
||||
for(var/hairstyle in hair_styles_list)
|
||||
var/datum/sprite_accessory/S = hair_styles_list[hairstyle]
|
||||
if(!(mob_species.get_bodytype() in S.species_allowed))
|
||||
if(!(bodytype in S.species_allowed))
|
||||
continue
|
||||
|
||||
valid_hairstyles[hairstyle] = hair_styles_list[hairstyle]
|
||||
@@ -400,9 +419,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
return TOPIC_NOACTION
|
||||
var/new_facial = input(user, "Choose your character's facial-hair colour:", "Character Preference", rgb(pref.r_facial, pref.g_facial, pref.b_facial)) as color|null
|
||||
if(new_facial && has_flag(mob_species, HAS_HAIR_COLOR) && CanUseTopic(user))
|
||||
pref.r_facial = hex2num(copytext(new_facial, 2, 4))
|
||||
pref.g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||
pref.b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||
pref.r_facial = GetRedPart(new_facial)
|
||||
pref.g_facial = GetGreenPart(new_facial)
|
||||
pref.b_facial = GetBluePart(new_facial)
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["eye_color"])
|
||||
@@ -410,9 +429,9 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
return TOPIC_NOACTION
|
||||
var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference", rgb(pref.r_eyes, pref.g_eyes, pref.b_eyes)) as color|null
|
||||
if(new_eyes && has_flag(mob_species, HAS_EYE_COLOR) && CanUseTopic(user))
|
||||
pref.r_eyes = hex2num(copytext(new_eyes, 2, 4))
|
||||
pref.g_eyes = hex2num(copytext(new_eyes, 4, 6))
|
||||
pref.b_eyes = hex2num(copytext(new_eyes, 6, 8))
|
||||
pref.r_eyes = GetRedPart(new_eyes)
|
||||
pref.g_eyes = GetGreenPart(new_eyes)
|
||||
pref.b_eyes = GetRedPart(new_eyes)
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["skin_tone"])
|
||||
@@ -428,22 +447,23 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
return TOPIC_NOACTION
|
||||
var/new_skin = input(user, "Choose your character's skin colour: ", "Character Preference", rgb(pref.r_skin, pref.g_skin, pref.b_skin)) as color|null
|
||||
if(new_skin && has_flag(mob_species, HAS_SKIN_COLOR) && CanUseTopic(user))
|
||||
pref.r_skin = hex2num(copytext(new_skin, 2, 4))
|
||||
pref.g_skin = hex2num(copytext(new_skin, 4, 6))
|
||||
pref.b_skin = hex2num(copytext(new_skin, 6, 8))
|
||||
pref.r_skin = GetRedPart(new_skin)
|
||||
pref.g_skin = GetGreenPart(new_skin)
|
||||
pref.b_skin = GetBluePart(new_skin)
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["facial_style"])
|
||||
if(mob_species.bald)
|
||||
return
|
||||
var/list/valid_facialhairstyles = list()
|
||||
var/bodytype = mob_species.get_bodytype()
|
||||
for(var/facialhairstyle in facial_hair_styles_list)
|
||||
var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle]
|
||||
if(pref.gender == MALE && S.gender == FEMALE)
|
||||
continue
|
||||
if(pref.gender == FEMALE && S.gender == MALE)
|
||||
continue
|
||||
if(!(mob_species.get_bodytype() in S.species_allowed))
|
||||
if(!(bodytype in S.species_allowed))
|
||||
continue
|
||||
|
||||
valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle]
|
||||
@@ -454,7 +474,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["marking_style"])
|
||||
var/list/usable_markings = pref.body_markings.Copy() ^ body_marking_styles_list.Copy()
|
||||
var/list/usable_markings = pref.body_markings ^ body_marking_styles_list
|
||||
for(var/M in usable_markings)
|
||||
var/datum/sprite_accessory/S = usable_markings[M]
|
||||
if(!S.species_allowed.len)
|
||||
@@ -616,15 +636,19 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
if(!pref.species_preview || !(pref.species_preview in all_species))
|
||||
pref.species_preview = "Human"
|
||||
var/datum/species/current_species = all_species[pref.species_preview]
|
||||
var/dat = "<body>"
|
||||
dat += "<center><h2>[current_species.name] \[<a href='?src=\ref[src];show_species=1'>change</a>\]</h2></center><hr/>"
|
||||
dat += "<table padding='8px'>"
|
||||
dat += "<tr>"
|
||||
dat += "<td width = 400>[current_species.blurb]</td>"
|
||||
dat += "<td width = 200 align='center'>"
|
||||
var/list/dat = list(
|
||||
"<body>",
|
||||
"<center><h2>[current_species.name] \[<a href='?src=\ref[src];show_species=1'>change</a>\]</h2></center><hr/>",
|
||||
"<table padding='8px'>",
|
||||
"<tr>",
|
||||
"<td width = 400>[current_species.blurb]</td>",
|
||||
"<td width = 200 align='center'>"
|
||||
)
|
||||
if("preview" in icon_states(current_species.icobase))
|
||||
var/curr_name = html_encode(current_species.name)
|
||||
usr << browse_rsc(icon(current_species.icobase,"preview"), "species_preview_[curr_name].png")
|
||||
var/icon/preview = icon(current_species.icobase, "preview")
|
||||
preview.Scale(64, 64) // Scale it here to stop it blurring.
|
||||
usr << browse_rsc(preview, "species_preview_[curr_name].png")
|
||||
dat += "<img src='species_preview_[curr_name].png' width='64px' height='64px'><br/><br/>"
|
||||
dat += "<b>Language:</b> [current_species.language]<br/>"
|
||||
dat += "<small>"
|
||||
@@ -667,12 +691,12 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
|
||||
if(restricted == 1)
|
||||
dat += "<font color='red'><b>You cannot play as this species.</br><small>If you wish to be whitelisted, you can make an application post on <a href='?src=\ref[user];preference=open_whitelist_forum'>the forums</a>.</small></b></font></br>"
|
||||
else if(restricted == 2)
|
||||
dat += "<font color='red'><b>You cannot play as this species.</br><small>This species is not available for play as a station race..</small></b></font></br>"
|
||||
dat += "<font color='red'><b>You cannot play as this species.</br><small>This species is not available for play as a station race.</small></b></font></br>"
|
||||
if(!restricted || check_rights(R_ADMIN, 0))
|
||||
dat += "\[<a href='?src=\ref[src];set_species=[html_encode(pref.species_preview)]'>select</a>\]"
|
||||
dat += "</center></body>"
|
||||
|
||||
user << browse(dat, "window=species;size=700x400")
|
||||
user << browse(dat.Join(), "window=species;size=700x400")
|
||||
|
||||
/*/datum/category_item/player_setup_item/general/body/proc/reset_limbs()
|
||||
|
||||
|
||||
@@ -3,28 +3,54 @@
|
||||
sort_order = 4
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/load_character(var/savefile/S)
|
||||
S["underwear"] >> pref.underwear
|
||||
S["undershirt"] >> pref.undershirt
|
||||
S["socks"] >> pref.socks
|
||||
S["backbag"] >> pref.backbag
|
||||
S["underwear"] >> pref.underwear
|
||||
S["undershirt"] >> pref.undershirt
|
||||
S["socks"] >> pref.socks
|
||||
S["backbag"] >> pref.backbag
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/save_character(var/savefile/S)
|
||||
S["underwear"] << pref.underwear
|
||||
S["undershirt"] << pref.undershirt
|
||||
S["socks"] << pref.socks
|
||||
S["backbag"] << pref.backbag
|
||||
S["underwear"] << pref.underwear
|
||||
S["undershirt"] << pref.undershirt
|
||||
S["socks"] << pref.socks
|
||||
S["backbag"] << pref.backbag
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/gather_load_query()
|
||||
return list("ss13_characters" = list("vars" = list("underwear", "undershirt", "socks", "backbag"), "args" = list("id")))
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
"vars" = list(
|
||||
"underwear",
|
||||
"undershirt",
|
||||
"socks",
|
||||
"backbag"
|
||||
),
|
||||
"args" = list("id")
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/gather_load_parameters()
|
||||
return list("id" = pref.current_character)
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/gather_save_query()
|
||||
return list("ss13_characters" = list("underwear", "undershirt", "socks", "backbag", "id" = 1, "ckey" = 1))
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
"underwear",
|
||||
"undershirt",
|
||||
"socks",
|
||||
"backbag",
|
||||
"id" = 1,
|
||||
"ckey" = 1
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/gather_save_parameters()
|
||||
return list("underwear" = pref.underwear, "undershirt" = pref.undershirt, "socks" = pref.socks, "backbag" = pref.backbag, "id" = pref.current_character, "ckey" = pref.client.ckey)
|
||||
return list(
|
||||
"underwear" = pref.underwear,
|
||||
"undershirt" = pref.undershirt,
|
||||
"socks" = pref.socks,
|
||||
"backbag" = pref.backbag,
|
||||
"id" = pref.current_character,
|
||||
"ckey" = pref.client.ckey
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/sanitize_character(var/sql_load = 0)
|
||||
if (sql_load)
|
||||
@@ -42,11 +68,14 @@
|
||||
pref.socks = null
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/content()
|
||||
. += "<b>Equipment:</b><br>"
|
||||
. += "Underwear: <a href='?src=\ref[src];change_underwear=1'><b>[get_key_by_value(get_undies(),pref.underwear)]</b></a><br>"
|
||||
. += "Undershirt: <a href='?src=\ref[src];change_undershirt=1'><b>[get_key_by_value(undershirt_t,pref.undershirt)]</b></a><br>"
|
||||
. += "Socks: <a href='?src=\ref[src];change_socks=1'><b>[get_key_by_value(get_gender_socks(),pref.socks)]</b></a><br>"
|
||||
. += "Backpack Type: <a href='?src=\ref[src];change_backpack=1'><b>[backbaglist[pref.backbag]]</b></a><br>"
|
||||
var/list/dat = list()
|
||||
dat += "<b>Equipment:</b><br>"
|
||||
dat += "Underwear: <a href='?src=\ref[src];change_underwear=1'><b>[get_key_by_value(get_undies(),pref.underwear)]</b></a><br>"
|
||||
dat += "Undershirt: <a href='?src=\ref[src];change_undershirt=1'><b>[get_key_by_value(undershirt_t,pref.undershirt)]</b></a><br>"
|
||||
dat += "Socks: <a href='?src=\ref[src];change_socks=1'><b>[get_key_by_value(get_gender_socks(),pref.socks)]</b></a><br>"
|
||||
dat += "Backpack Type: <a href='?src=\ref[src];change_backpack=1'><b>[backbaglist[pref.backbag]]</b></a><br>"
|
||||
|
||||
. = dat.Join()
|
||||
|
||||
/datum/category_item/player_setup_item/general/equipment/proc/get_undies()
|
||||
return pref.gender == MALE ? underwear_m : underwear_f
|
||||
|
||||
@@ -3,55 +3,86 @@
|
||||
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
|
||||
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
|
||||
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/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", "faction", "religion"), "args" = list("id")))
|
||||
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",
|
||||
"faction",
|
||||
"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)
|
||||
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", "faction", "religion", "id" = 1, "ckey" = 1))
|
||||
return list(
|
||||
"ss13_characters_flavour" = list(
|
||||
"records_employment",
|
||||
"records_medical",
|
||||
"records_security",
|
||||
"char_id" = 1
|
||||
),
|
||||
"ss13_characters" = list(
|
||||
"nt_relation",
|
||||
"home_system",
|
||||
"citizenship",
|
||||
"faction",
|
||||
"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,
|
||||
"faction" = pref.faction,
|
||||
"religion" = pref.religion,
|
||||
"id" = pref.current_character,
|
||||
"ckey" = pref.client.ckey)
|
||||
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,
|
||||
"faction" = pref.faction,
|
||||
"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)
|
||||
@@ -66,23 +97,27 @@
|
||||
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)
|
||||
. += "<b>Background Information</b><br>"
|
||||
. += "[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/>"
|
||||
var/list/dat = list(
|
||||
"<b>Background Information</b><br>",
|
||||
"[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/>"
|
||||
)
|
||||
|
||||
. += "<br/><b>Records</b>:<br/>"
|
||||
if(jobban_isbanned(user, "Records"))
|
||||
. += "<span class='danger'>You are banned from using character records.</span><br>"
|
||||
dat += "<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>"
|
||||
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"])
|
||||
|
||||
@@ -3,78 +3,87 @@
|
||||
sort_order = 6
|
||||
|
||||
/datum/category_item/player_setup_item/general/flavor/load_character(var/savefile/S)
|
||||
S["flavor_texts_general"] >> pref.flavor_texts["general"]
|
||||
S["flavor_texts_head"] >> pref.flavor_texts["head"]
|
||||
S["flavor_texts_face"] >> pref.flavor_texts["face"]
|
||||
S["flavor_texts_eyes"] >> pref.flavor_texts["eyes"]
|
||||
S["flavor_texts_torso"] >> pref.flavor_texts["torso"]
|
||||
S["flavor_texts_arms"] >> pref.flavor_texts["arms"]
|
||||
S["flavor_texts_hands"] >> pref.flavor_texts["hands"]
|
||||
S["flavor_texts_legs"] >> pref.flavor_texts["legs"]
|
||||
S["flavor_texts_feet"] >> pref.flavor_texts["feet"]
|
||||
S["flavor_texts_general"] >> pref.flavor_texts["general"]
|
||||
S["flavor_texts_head"] >> pref.flavor_texts["head"]
|
||||
S["flavor_texts_face"] >> pref.flavor_texts["face"]
|
||||
S["flavor_texts_eyes"] >> pref.flavor_texts["eyes"]
|
||||
S["flavor_texts_torso"] >> pref.flavor_texts["torso"]
|
||||
S["flavor_texts_arms"] >> pref.flavor_texts["arms"]
|
||||
S["flavor_texts_hands"] >> pref.flavor_texts["hands"]
|
||||
S["flavor_texts_legs"] >> pref.flavor_texts["legs"]
|
||||
S["flavor_texts_feet"] >> pref.flavor_texts["feet"]
|
||||
|
||||
//Flavour text for robots.
|
||||
S["flavour_texts_robot_Default"] >> pref.flavour_texts_robot["Default"]
|
||||
for(var/module in robot_module_types)
|
||||
S["flavour_texts_robot_[module]"] >> pref.flavour_texts_robot[module]
|
||||
|
||||
S["signature"] >> pref.signature
|
||||
S["signfont"] >> pref.signfont
|
||||
S["signature"] >> pref.signature
|
||||
S["signfont"] >> pref.signfont
|
||||
|
||||
/datum/category_item/player_setup_item/general/flavor/save_character(var/savefile/S)
|
||||
S["flavor_texts_general"] << pref.flavor_texts["general"]
|
||||
S["flavor_texts_head"] << pref.flavor_texts["head"]
|
||||
S["flavor_texts_face"] << pref.flavor_texts["face"]
|
||||
S["flavor_texts_eyes"] << pref.flavor_texts["eyes"]
|
||||
S["flavor_texts_torso"] << pref.flavor_texts["torso"]
|
||||
S["flavor_texts_arms"] << pref.flavor_texts["arms"]
|
||||
S["flavor_texts_hands"] << pref.flavor_texts["hands"]
|
||||
S["flavor_texts_legs"] << pref.flavor_texts["legs"]
|
||||
S["flavor_texts_feet"] << pref.flavor_texts["feet"]
|
||||
S["flavor_texts_general"] << pref.flavor_texts["general"]
|
||||
S["flavor_texts_head"] << pref.flavor_texts["head"]
|
||||
S["flavor_texts_face"] << pref.flavor_texts["face"]
|
||||
S["flavor_texts_eyes"] << pref.flavor_texts["eyes"]
|
||||
S["flavor_texts_torso"] << pref.flavor_texts["torso"]
|
||||
S["flavor_texts_arms"] << pref.flavor_texts["arms"]
|
||||
S["flavor_texts_hands"] << pref.flavor_texts["hands"]
|
||||
S["flavor_texts_legs"] << pref.flavor_texts["legs"]
|
||||
S["flavor_texts_feet"] << pref.flavor_texts["feet"]
|
||||
|
||||
S["flavour_texts_robot_Default"] << pref.flavour_texts_robot["Default"]
|
||||
for(var/module in robot_module_types)
|
||||
S["flavour_texts_robot_[module]"] << pref.flavour_texts_robot[module]
|
||||
|
||||
S["signature"] << pref.signature
|
||||
S["signfont"] << pref.signfont
|
||||
S["signature"] << pref.signature
|
||||
S["signfont"] << pref.signfont
|
||||
|
||||
/datum/category_item/player_setup_item/general/flavor/gather_load_query()
|
||||
var/list/var_list = list("flavour_general" = "flavor_texts/general",
|
||||
"flavour_head" = "flavor_texts/head",
|
||||
"flavour_face" = "flavor_texts/face",
|
||||
"flavour_eyes" = "flavor_texts/eyes",
|
||||
"flavour_torso" = "flavor_texts/torso",
|
||||
"flavour_arms" = "flavor_texts/arms",
|
||||
"flavour_hands" = "flavor_texts/hands",
|
||||
"flavour_legs" = "flavor_texts/legs",
|
||||
"flavour_feet" = "flavor_texts/feet",
|
||||
"robot_default" = "flavour_texts_robot/Default",
|
||||
"signature" = "signature",
|
||||
"signature_font" = "signfont")
|
||||
var/list/var_list = list(
|
||||
"flavour_general" = "flavor_texts/general",
|
||||
"flavour_head" = "flavor_texts/head",
|
||||
"flavour_face" = "flavor_texts/face",
|
||||
"flavour_eyes" = "flavor_texts/eyes",
|
||||
"flavour_torso" = "flavor_texts/torso",
|
||||
"flavour_arms" = "flavor_texts/arms",
|
||||
"flavour_hands" = "flavor_texts/hands",
|
||||
"flavour_legs" = "flavor_texts/legs",
|
||||
"flavour_feet" = "flavor_texts/feet",
|
||||
"robot_default" = "flavour_texts_robot/Default",
|
||||
"signature" = "signature",
|
||||
"signature_font" = "signfont"
|
||||
)
|
||||
|
||||
for (var/module in robot_module_types)
|
||||
var_list["robot_[module]"] = "flavour_texts_robot/[module]"
|
||||
|
||||
return list("ss13_characters_flavour" = list("vars" = var_list, "args" = list("char_id")))
|
||||
return list(
|
||||
"ss13_characters_flavour" = list(
|
||||
"vars" = var_list,
|
||||
"args" = list("char_id")
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/general/flavor/gather_load_parameters()
|
||||
return list("char_id" = pref.current_character)
|
||||
|
||||
/datum/category_item/player_setup_item/general/flavor/gather_save_query()
|
||||
var/list/var_list = list("flavour_general",
|
||||
"flavour_head",
|
||||
"flavour_face",
|
||||
"flavour_eyes",
|
||||
"flavour_torso",
|
||||
"flavour_arms",
|
||||
"flavour_hands",
|
||||
"flavour_legs",
|
||||
"flavour_feet",
|
||||
"robot_default",
|
||||
"signature",
|
||||
"signature_font",
|
||||
"char_id" = 1)
|
||||
var/list/var_list = list(
|
||||
"flavour_general",
|
||||
"flavour_head",
|
||||
"flavour_face",
|
||||
"flavour_eyes",
|
||||
"flavour_torso",
|
||||
"flavour_arms",
|
||||
"flavour_hands",
|
||||
"flavour_legs",
|
||||
"flavour_feet",
|
||||
"robot_default",
|
||||
"signature",
|
||||
"signature_font",
|
||||
"char_id" = 1
|
||||
)
|
||||
|
||||
for (var/module in robot_module_types)
|
||||
var_list += "robot_[module]"
|
||||
@@ -82,19 +91,21 @@
|
||||
return list("ss13_characters_flavour" = var_list)
|
||||
|
||||
/datum/category_item/player_setup_item/general/flavor/gather_save_parameters()
|
||||
var/list/var_list = list("char_id" = pref.current_character,
|
||||
"flavour_general" = pref.flavor_texts["general"],
|
||||
"flavour_head" = pref.flavor_texts["head"],
|
||||
"flavour_face" = pref.flavor_texts["face"],
|
||||
"flavour_eyes" = pref.flavor_texts["eyes"],
|
||||
"flavour_torso" = pref.flavor_texts["torso"],
|
||||
"flavour_arms" = pref.flavor_texts["arms"],
|
||||
"flavour_hands" = pref.flavor_texts["hands"],
|
||||
"flavour_legs" = pref.flavor_texts["legs"],
|
||||
"flavour_feet" = pref.flavor_texts["feet"],
|
||||
"robot_default" = pref.flavour_texts_robot["Default"],
|
||||
"signature" = pref.signature,
|
||||
"signature_font" = pref.signfont)
|
||||
var/list/var_list = list(
|
||||
"char_id" = pref.current_character,
|
||||
"flavour_general" = pref.flavor_texts["general"],
|
||||
"flavour_head" = pref.flavor_texts["head"],
|
||||
"flavour_face" = pref.flavor_texts["face"],
|
||||
"flavour_eyes" = pref.flavor_texts["eyes"],
|
||||
"flavour_torso" = pref.flavor_texts["torso"],
|
||||
"flavour_arms" = pref.flavor_texts["arms"],
|
||||
"flavour_hands" = pref.flavor_texts["hands"],
|
||||
"flavour_legs" = pref.flavor_texts["legs"],
|
||||
"flavour_feet" = pref.flavor_texts["feet"],
|
||||
"robot_default" = pref.flavour_texts_robot["Default"],
|
||||
"signature" = pref.signature,
|
||||
"signature_font" = pref.signfont
|
||||
)
|
||||
|
||||
for (var/module in robot_module_types)
|
||||
var_list["robot_[module]"] += pref.flavour_texts_robot[module]
|
||||
@@ -108,15 +119,18 @@
|
||||
pref.signfont = "Verdana"
|
||||
|
||||
/datum/category_item/player_setup_item/general/flavor/content(var/mob/user)
|
||||
. += "<b>Flavor:</b><br>"
|
||||
. += "<a href='?src=\ref[src];flavor_text=open'>Set Flavor Text</a><br/>"
|
||||
. += "<a href='?src=\ref[src];flavour_text_robot=open'>Set Robot Flavor Text</a><br/>"
|
||||
. += "<br>"
|
||||
. += "Signature: <font face='[pref.signfont ? pref.signfont : "Verdana"]'>[pref.signature]</font><br/>"
|
||||
. += "<a href='?src=\ref[src];edit_signature=text'>Edit Text</a> | "
|
||||
. += "<a href='?src=\ref[src];edit_signature=font'>Edit Font</a> | "
|
||||
. += "<a href='?src=\ref[src];edit_signature=help'>Help</a> | "
|
||||
. += "<a href='?src=\ref[src];edit_signature=reset'>Reset</a><br/>"
|
||||
var/list/dat = list(
|
||||
"<b>Flavor:</b><br>",
|
||||
"<a href='?src=\ref[src];flavor_text=open'>Set Flavor Text</a><br/>",
|
||||
"<a href='?src=\ref[src];flavour_text_robot=open'>Set Robot Flavor Text</a><br/>",
|
||||
"<br>",
|
||||
"Signature: <font face='[pref.signfont ? pref.signfont : "Verdana"]'>[pref.signature]</font><br/>",
|
||||
"<a href='?src=\ref[src];edit_signature=text'>Edit Text</a> | ",
|
||||
"<a href='?src=\ref[src];edit_signature=font'>Edit Font</a> | ",
|
||||
"<a href='?src=\ref[src];edit_signature=help'>Help</a> | ",
|
||||
"<a href='?src=\ref[src];edit_signature=reset'>Reset</a><br/>"
|
||||
)
|
||||
. = dat.Join()
|
||||
|
||||
/datum/category_item/player_setup_item/general/flavor/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||
if(href_list["flavor_text"])
|
||||
@@ -178,11 +192,11 @@
|
||||
if ("help")
|
||||
var/html = ""
|
||||
html += "A character's signature can be augmented with the following tags:<br>"
|
||||
html += "<ul><li><i>Italics</i> - \[i\]text\[\\i\]</li>"
|
||||
html += "<li><b>Bold</b> - \[b\]text\[\\b\]</li>"
|
||||
html += "<li><u>Underline</u> - \[u\]text\[\\u\]</li>"
|
||||
html += "<li><font size='4'>Large text</font> - \[large\]text\[\\large\]</li>"
|
||||
html += "<li><font size='1'>Small text</font> - \[small\]text\[\\small\]</li></ul>"
|
||||
html += "<ul><li><i>Italics</i> - \[i\]text\[/i\]</li>"
|
||||
html += "<li><b>Bold</b> - \[b\]text\[/b\]</li>"
|
||||
html += "<li><u>Underline</u> - \[u\]text\[/u\]</li>"
|
||||
html += "<li><font size='4'>Large text</font> - \[large\]text\[/large\]</li>"
|
||||
html += "<li><font size='1'>Small text</font> - \[small\]text\[/small\]</li></ul>"
|
||||
html += "<br><br>Beyond that, a maximum of 100 symbols are allowed for the signature text."
|
||||
html += " Note that this includes mark-up symbols."
|
||||
|
||||
|
||||
@@ -3,47 +3,74 @@
|
||||
sort_order = 1
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/ui/load_preferences(var/savefile/S)
|
||||
S["UI_style"] >> pref.UI_style
|
||||
S["UI_style_color"] >> pref.UI_style_color
|
||||
S["UI_style_alpha"] >> pref.UI_style_alpha
|
||||
S["ooccolor"] >> pref.ooccolor
|
||||
S["UI_style"] >> pref.UI_style
|
||||
S["UI_style_color"] >> pref.UI_style_color
|
||||
S["UI_style_alpha"] >> pref.UI_style_alpha
|
||||
S["ooccolor"] >> pref.ooccolor
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/ui/save_preferences(var/savefile/S)
|
||||
S["UI_style"] << pref.UI_style
|
||||
S["UI_style_color"] << pref.UI_style_color
|
||||
S["UI_style_alpha"] << pref.UI_style_alpha
|
||||
S["ooccolor"] << pref.ooccolor
|
||||
S["UI_style"] << pref.UI_style
|
||||
S["UI_style_color"] << pref.UI_style_color
|
||||
S["UI_style_alpha"] << pref.UI_style_alpha
|
||||
S["ooccolor"] << pref.ooccolor
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/ui/gather_load_query()
|
||||
return list("ss13_player_preferences" = list("vars" = list("UI_style", "UI_style_color", "UI_style_alpha", "ooccolor"), "args" = list("ckey")))
|
||||
return list(
|
||||
"ss13_player_preferences" = list(
|
||||
"vars" = list(
|
||||
"UI_style",
|
||||
"UI_style_color",
|
||||
"UI_style_alpha",
|
||||
"ooccolor"
|
||||
),
|
||||
"args" = list("ckey")
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/ui/gather_load_parameters()
|
||||
return list("ckey" = pref.client.ckey)
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/ui/gather_save_query()
|
||||
return list("ss13_player_preferences" = list("UI_style", "UI_style_color", "UI_style_alpha", "ooccolor", "ckey" = 1))
|
||||
return list(
|
||||
"ss13_player_preferences" = list(
|
||||
"UI_style",
|
||||
"UI_style_color",
|
||||
"UI_style_alpha",
|
||||
"ooccolor",
|
||||
"ckey" = 1
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/ui/gather_save_parameters()
|
||||
return list("ckey" = pref.client.ckey, "UI_style_alpha" = pref.UI_style_alpha, "UI_style_color" = pref.UI_style_color, "UI_style" = pref.UI_style, "ooccolor" = pref.ooccolor)
|
||||
return list(
|
||||
"ckey" = pref.client.ckey,
|
||||
"UI_style_alpha" = pref.UI_style_alpha,
|
||||
"UI_style_color" = pref.UI_style_color,
|
||||
"UI_style" = pref.UI_style,
|
||||
"ooccolor" = pref.ooccolor
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/ui/sanitize_preferences()
|
||||
pref.UI_style = sanitize_inlist(pref.UI_style, all_ui_styles, initial(pref.UI_style))
|
||||
pref.UI_style_color = sanitize_hexcolor(pref.UI_style_color, initial(pref.UI_style_color))
|
||||
pref.UI_style_alpha = sanitize_integer(text2num(pref.UI_style_alpha), 0, 255, initial(pref.UI_style_alpha))
|
||||
pref.ooccolor = sanitize_hexcolor(pref.ooccolor, initial(pref.ooccolor))
|
||||
pref.UI_style = sanitize_inlist(pref.UI_style, all_ui_styles, initial(pref.UI_style))
|
||||
pref.UI_style_color = sanitize_hexcolor(pref.UI_style_color, initial(pref.UI_style_color))
|
||||
pref.UI_style_alpha = sanitize_integer(text2num(pref.UI_style_alpha), 0, 255, initial(pref.UI_style_alpha))
|
||||
pref.ooccolor = sanitize_hexcolor(pref.ooccolor, initial(pref.ooccolor))
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/ui/content(var/mob/user)
|
||||
. += "<b>UI Settings</b><br>"
|
||||
. += "<b>UI Style:</b> <a href='?src=\ref[src];select_style=1'><b>[pref.UI_style]</b></a><br>"
|
||||
. += "<b>Custom UI</b> (recommended for White UI):<br>"
|
||||
. += "-Color: <a href='?src=\ref[src];select_color=1'><b>[pref.UI_style_color]</b></a><3E><table style='display:inline;' bgcolor='[pref.UI_style_color]'><tr><td>__</td></tr></table><3E><a href='?src=\ref[src];reset=ui'>reset</a><br>"
|
||||
. += "-Alpha(transparency): <a href='?src=\ref[src];select_alpha=1'><b>[pref.UI_style_alpha]</b></a><EFBFBD><a href='?src=\ref[src];reset=alpha'>reset</a><br>"
|
||||
/datum/category_item/player_setup_item/player_global/ui/content(mob/user)
|
||||
var/list/dat = list()
|
||||
dat += "<b>UI Settings</b><br>"
|
||||
dat += "<b>UI Style:</b> <a href='?src=\ref[src];select_style=1'><b>[pref.UI_style]</b></a><br>"
|
||||
dat += "<b>Custom UI</b> (recommended for White UI):<br>"
|
||||
dat += "-Color: <a href='?src=\ref[src];select_color=1'><b>[pref.UI_style_color]</b></a> [HTML_RECT(pref.UI_style_color)] - <a href='?src=\ref[src];reset=ui'>reset</a><br>"
|
||||
dat += "-Alpha(transparency): <a href='?src=\ref[src];select_alpha=1'><b>[pref.UI_style_alpha]</b></a> - <a href='?src=\ref[src];reset=alpha'>reset</a><br>"
|
||||
if(can_select_ooc_color(user))
|
||||
. += "<b>OOC Color:</b><EFBFBD>"
|
||||
dat += "<b>OOC Color:</b> "
|
||||
if(pref.ooccolor == initial(pref.ooccolor))
|
||||
. += "<a href='?src=\ref[src];select_ooc_color=1'><b>Using Default</b></a><br>"
|
||||
dat += "<a href='?src=\ref[src];select_ooc_color=1'><b>Using Default</b></a><br>"
|
||||
else
|
||||
. += "<a href='?src=\ref[src];select_ooc_color=1'><b>[pref.ooccolor]</b></a> <table style='display:inline;' bgcolor='[pref.ooccolor]'><tr><td>__</td></tr></table><3E><a href='?src=\ref[src];reset=ooc'>reset</a><br>"
|
||||
dat += "<a href='?src=\ref[src];select_ooc_color=1'><b>[pref.ooccolor]</b></a> [HTML_RECT(pref.ooccolor)] - <a href='?src=\ref[src];reset=ooc'>reset</a><br>"
|
||||
|
||||
. = dat.Join()
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/ui/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||
if(href_list["select_style"])
|
||||
|
||||
@@ -3,68 +3,98 @@
|
||||
sort_order = 2
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/settings/load_preferences(var/savefile/S)
|
||||
S["lastchangelog"] >> pref.lastchangelog
|
||||
S["default_slot"] >> pref.default_slot
|
||||
S["toggles"] >> pref.toggles
|
||||
S["asfx_togs"] >> pref.asfx_togs
|
||||
S["motd_hash"] >> pref.motd_hash
|
||||
S["memo_hash"] >> pref.memo_hash
|
||||
S["parallax_speed"] >> pref.parallax_speed
|
||||
S["parallax_toggles"] >> pref.parallax_togs
|
||||
S["lastchangelog"] >> pref.lastchangelog
|
||||
S["default_slot"] >> pref.default_slot
|
||||
S["toggles"] >> pref.toggles
|
||||
S["asfx_togs"] >> pref.asfx_togs
|
||||
S["motd_hash"] >> pref.motd_hash
|
||||
S["memo_hash"] >> pref.memo_hash
|
||||
S["parallax_speed"] >> pref.parallax_speed
|
||||
S["parallax_toggles"] >> pref.parallax_togs
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/settings/save_preferences(var/savefile/S)
|
||||
S["lastchangelog"] << pref.lastchangelog
|
||||
S["default_slot"] << pref.default_slot
|
||||
S["toggles"] << pref.toggles
|
||||
S["asfx_togs"] << pref.asfx_togs
|
||||
S["motd_hash"] << pref.motd_hash
|
||||
S["memo_hash"] << pref.memo_hash
|
||||
S["parallax_speed"] << pref.parallax_speed
|
||||
S["lastchangelog"] << pref.lastchangelog
|
||||
S["default_slot"] << pref.default_slot
|
||||
S["toggles"] << pref.toggles
|
||||
S["asfx_togs"] << pref.asfx_togs
|
||||
S["motd_hash"] << pref.motd_hash
|
||||
S["memo_hash"] << pref.memo_hash
|
||||
S["parallax_speed"] << pref.parallax_speed
|
||||
S["parallax_toggles"] << pref.parallax_togs
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/settings/gather_load_query()
|
||||
return list("ss13_player_preferences" = list("vars" = list("lastchangelog", "current_character", "toggles", "asfx_togs", "lastmotd" = "motd_hash", "lastmemo" = "memo_hash"), "args" = list("ckey")))
|
||||
return list(
|
||||
"ss13_player_preferences" = list(
|
||||
"vars" = list(
|
||||
"lastchangelog",
|
||||
"current_character",
|
||||
"toggles",
|
||||
"asfx_togs",
|
||||
"lastmotd" = "motd_hash",
|
||||
"lastmemo" = "memo_hash"
|
||||
),
|
||||
"args" = list("ckey")
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/settings/gather_load_parameters()
|
||||
return list("ckey" = pref.client.ckey)
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/settings/gather_save_query()
|
||||
return list("ss13_player_preferences" = list("lastchangelog", "current_character", "toggles", "asfx_togs", "lastmotd", "lastmemo", "ckey" = 1, "parallax_toggles", "parallax_speed"))
|
||||
return list(
|
||||
"ss13_player_preferences" = list(
|
||||
"lastchangelog",
|
||||
"current_character",
|
||||
"toggles",
|
||||
"asfx_togs",
|
||||
"lastmotd",
|
||||
"lastmemo",
|
||||
"ckey" = 1,
|
||||
"parallax_toggles",
|
||||
"parallax_speed"
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/settings/gather_save_parameters()
|
||||
return list("ckey" = pref.client.ckey,
|
||||
"lastchangelog" = pref.lastchangelog,
|
||||
"current_character" = pref.current_character,
|
||||
"toggles" = pref.toggles,
|
||||
"asfx_togs" = pref.asfx_togs,
|
||||
"lastmotd" = pref.motd_hash,
|
||||
"lastmemo" = pref.memo_hash,
|
||||
"parallax_toggles" = pref.parallax_togs,
|
||||
"parallax_speed" = pref.parallax_speed)
|
||||
return list(
|
||||
"ckey" = pref.client.ckey,
|
||||
"lastchangelog" = pref.lastchangelog,
|
||||
"current_character" = pref.current_character,
|
||||
"toggles" = pref.toggles,
|
||||
"asfx_togs" = pref.asfx_togs,
|
||||
"lastmotd" = pref.motd_hash,
|
||||
"lastmemo" = pref.memo_hash,
|
||||
"parallax_toggles" = pref.parallax_togs,
|
||||
"parallax_speed" = pref.parallax_speed
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/settings/sanitize_preferences(var/sql_load = 0)
|
||||
if (sql_load)
|
||||
pref.current_character = text2num(pref.current_character)
|
||||
|
||||
pref.lastchangelog = sanitize_text(pref.lastchangelog, initial(pref.lastchangelog))
|
||||
pref.default_slot = sanitize_integer(text2num(pref.default_slot), 1, config.character_slots, initial(pref.default_slot))
|
||||
pref.toggles = sanitize_integer(text2num(pref.toggles), 0, 65535, initial(pref.toggles))
|
||||
pref.asfx_togs = sanitize_integer(text2num(pref.asfx_togs), 0, 65535, initial(pref.toggles))
|
||||
pref.motd_hash = sanitize_text(pref.motd_hash, initial(pref.motd_hash))
|
||||
pref.memo_hash = sanitize_text(pref.memo_hash, initial(pref.memo_hash))
|
||||
pref.lastchangelog = sanitize_text(pref.lastchangelog, initial(pref.lastchangelog))
|
||||
pref.default_slot = sanitize_integer(text2num(pref.default_slot), 1, config.character_slots, initial(pref.default_slot))
|
||||
pref.toggles = sanitize_integer(text2num(pref.toggles), 0, 65535, initial(pref.toggles))
|
||||
pref.asfx_togs = sanitize_integer(text2num(pref.asfx_togs), 0, 65535, initial(pref.toggles))
|
||||
pref.motd_hash = sanitize_text(pref.motd_hash, initial(pref.motd_hash))
|
||||
pref.memo_hash = sanitize_text(pref.memo_hash, initial(pref.memo_hash))
|
||||
pref.parallax_speed = sanitize_integer(text2num(pref.parallax_speed), 1, 10, initial(pref.parallax_speed))
|
||||
pref.parallax_togs = sanitize_integer(text2num(pref.parallax_togs), 0, 65535, initial(pref.parallax_togs))
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/settings/content(var/mob/user)
|
||||
. += "<b>Play admin midis:</b> <a href='?src=\ref[src];toggle=[SOUND_MIDI]'><b>[(pref.toggles & SOUND_MIDI) ? "Yes" : "No"]</b></a><br>"
|
||||
. += "<b>Play lobby music:</b> <a href='?src=\ref[src];toggle=[SOUND_LOBBY]'><b>[(pref.toggles & SOUND_LOBBY) ? "Yes" : "No"]</b></a><br>"
|
||||
. += "<b>Ghost ears:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTEARS]'><b>[(pref.toggles & CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]</b></a><br>"
|
||||
. += "<b>Ghost sight:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTSIGHT]'><b>[(pref.toggles & CHAT_GHOSTSIGHT) ? "All Emotes" : "Nearest Creatures"]</b></a><br>"
|
||||
. += "<b>Ghost radio:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTRADIO]'><b>[(pref.toggles & CHAT_GHOSTRADIO) ? "All Chatter" : "Nearest Speakers"]</b></a><br>"
|
||||
. += "<b>Space Parallax:</b> <a href='?src=\ref[src];paratoggle=[PARALLAX_SPACE]'><b>[(pref.parallax_togs & PARALLAX_SPACE) ? "Yes" : "No"]</b></a><br>"
|
||||
. += "<b>Space Dust:</b> <a href='?src=\ref[src];paratoggle=[PARALLAX_DUST]'><b>[(pref.parallax_togs & PARALLAX_DUST) ? "Yes" : "No"]</b></a><br>"
|
||||
. += "<b>Progress Bars:</b> <a href='?src=\ref[src];paratoggle=[PROGRESS_BARS]'><b>[(pref.parallax_togs & PROGRESS_BARS) ? "Yes" : "No"]</b></a><br>"
|
||||
. += "<b>Static Space:</b> <a href='?src=\ref[src];paratoggle=[PARALLAX_IS_STATIC]'><b>[(pref.parallax_togs & PARALLAX_IS_STATIC) ? "Yes" : "No"]</b></a><br>"
|
||||
/datum/category_item/player_setup_item/player_global/settings/content(mob/user)
|
||||
var/list/dat = list(
|
||||
"<b>Play admin midis:</b> <a href='?src=\ref[src];toggle=[SOUND_MIDI]'><b>[(pref.toggles & SOUND_MIDI) ? "Yes" : "No"]</b></a><br>",
|
||||
"<b>Play lobby music:</b> <a href='?src=\ref[src];toggle=[SOUND_LOBBY]'><b>[(pref.toggles & SOUND_LOBBY) ? "Yes" : "No"]</b></a><br>",
|
||||
"<b>Ghost ears:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTEARS]'><b>[(pref.toggles & CHAT_GHOSTEARS) ? "All Speech" : "Nearest Creatures"]</b></a><br>",
|
||||
"<b>Ghost sight:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTSIGHT]'><b>[(pref.toggles & CHAT_GHOSTSIGHT) ? "All Emotes" : "Nearest Creatures"]</b></a><br>",
|
||||
"<b>Ghost radio:</b> <a href='?src=\ref[src];toggle=[CHAT_GHOSTRADIO]'><b>[(pref.toggles & CHAT_GHOSTRADIO) ? "All Chatter" : "Nearest Speakers"]</b></a><br>",
|
||||
"<b>Space Parallax:</b> <a href='?src=\ref[src];paratoggle=[PARALLAX_SPACE]'><b>[(pref.parallax_togs & PARALLAX_SPACE) ? "Yes" : "No"]</b></a><br>",
|
||||
"<b>Space Dust:</b> <a href='?src=\ref[src];paratoggle=[PARALLAX_DUST]'><b>[(pref.parallax_togs & PARALLAX_DUST) ? "Yes" : "No"]</b></a><br>",
|
||||
"<b>Progress Bars:</b> <a href='?src=\ref[src];paratoggle=[PROGRESS_BARS]'><b>[(pref.parallax_togs & PROGRESS_BARS) ? "Yes" : "No"]</b></a><br>",
|
||||
"<b>Static Space:</b> <a href='?src=\ref[src];paratoggle=[PARALLAX_IS_STATIC]'><b>[(pref.parallax_togs & PARALLAX_IS_STATIC) ? "Yes" : "No"]</b></a><br>"
|
||||
)
|
||||
|
||||
. = dat.Join()
|
||||
|
||||
/datum/category_item/player_setup_item/player_global/settings/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||
if(href_list["toggle"])
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
/datum/gear/accessory/white_vest
|
||||
display_name = "webbing, medical"
|
||||
path = /obj/item/clothing/accessory/storage/white_vest
|
||||
allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Nursing Intern")
|
||||
allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Medical Resident")
|
||||
|
||||
/datum/gear/accessory/webbing
|
||||
display_name = "webbing, simple"
|
||||
@@ -86,7 +86,7 @@
|
||||
/datum/gear/accessory/white_pouches
|
||||
display_name = "drop pouches, medical"
|
||||
path = /obj/item/clothing/accessory/storage/white_pouches
|
||||
allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist","Geneticist", "Paramedic", "Nursing Intern")
|
||||
allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist","Geneticist", "Paramedic", "Medical Resident")
|
||||
|
||||
/datum/gear/accessory/pouches
|
||||
display_name = "drop pouches, simple"
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
/datum/gear/eyes/medical
|
||||
display_name = "medical HUD"
|
||||
path = /obj/item/clothing/glasses/hud/health
|
||||
allowed_roles = list("Medical Doctor", "Chief Medical Officer", "Chemist", "Paramedic", "Geneticist", "Nursing Intern")
|
||||
allowed_roles = list("Medical Doctor", "Chief Medical Officer", "Chemist", "Paramedic", "Geneticist", "Medical Resident")
|
||||
|
||||
/datum/gear/eyes/shades
|
||||
display_name = "sunglasses, fat"
|
||||
|
||||
@@ -154,7 +154,7 @@
|
||||
/datum/gear/head/surgical
|
||||
display_name = "surgical cap selection"
|
||||
path = /obj/item/clothing/head/surgery/blue
|
||||
allowed_roles = list("Scientist", "Chief Medical Officer", "Medical Doctor", "Geneticist", "Chemist", "Paramedic", "Nursing Intern", "Xenobiologist", "Roboticist", "Research Director", "Forensic Technician")
|
||||
allowed_roles = list("Scientist", "Chief Medical Officer", "Medical Doctor", "Geneticist", "Chemist", "Paramedic", "Medical Resident", "Xenobiologist", "Roboticist", "Research Director", "Forensic Technician")
|
||||
|
||||
/datum/gear/head/surgical/New()
|
||||
..()
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
display_name = "surgical apron"
|
||||
path = /obj/item/clothing/suit/apron/surgery
|
||||
cost = 1
|
||||
allowed_roles = list("Scientist", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Nursing Intern", "Xenobiologist", "Roboticist", "Research Director", "Forensic Technician")
|
||||
allowed_roles = list("Scientist", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Medical Resident", "Xenobiologist", "Roboticist", "Research Director", "Forensic Technician")
|
||||
|
||||
/datum/gear/suit/poncho
|
||||
display_name = "poncho selection"
|
||||
@@ -132,7 +132,7 @@
|
||||
/datum/gear/suit/winter/medical
|
||||
display_name = "winter coat, medical"
|
||||
path = /obj/item/clothing/suit/storage/hooded/wintercoat/medical
|
||||
allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Paramedic", "Nursing Intern", "Psychiatrist", "Chemist")
|
||||
allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Paramedic", "Medical Resident", "Psychiatrist", "Chemist")
|
||||
|
||||
/datum/gear/suit/winter/engineering
|
||||
display_name = "winter coat, engineering"
|
||||
|
||||
@@ -82,7 +82,7 @@
|
||||
/datum/gear/uniform/scrubs
|
||||
display_name = "scrubs selection"
|
||||
path = /obj/item/clothing/under/rank/medical/black
|
||||
allowed_roles = list("Scientist","Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Nursing Intern", "Xenobiologist", "Roboticist", "Research Director", "Forensic Technician")
|
||||
allowed_roles = list("Scientist","Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Medical Resident", "Xenobiologist", "Roboticist", "Research Director", "Forensic Technician")
|
||||
|
||||
/datum/gear/uniform/scrubs/New()
|
||||
..()
|
||||
|
||||
@@ -133,7 +133,7 @@
|
||||
display_name = "PRA medical coat (Tajara)"
|
||||
path = /obj/item/clothing/suit/storage/toggle/labcoat/tajaran
|
||||
whitelisted = list("Tajara")
|
||||
allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Nursing Intern")
|
||||
allowed_roles = list("Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Paramedic", "Medical Resident")
|
||||
sort_category = "Xenowear"
|
||||
|
||||
//other things
|
||||
|
||||
@@ -34,26 +34,51 @@
|
||||
S["player_alt_titles"] << pref.player_alt_titles
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/gather_load_query()
|
||||
return list("ss13_characters" = list("vars" = list("jobs" = "unsanitized_jobs", "alternate_option", "alternate_titles" = "player_alt_titles"), "args" = list("id")))
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
"vars" = list(
|
||||
"jobs" = "unsanitized_jobs",
|
||||
"alternate_option",
|
||||
"alternate_titles" = "player_alt_titles"
|
||||
),
|
||||
"args" = list("id")
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/gather_load_parameters()
|
||||
return list("id" = pref.current_character)
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/gather_save_query()
|
||||
return list("ss13_characters" = list("jobs", "alternate_option", "alternate_titles", "id" = 1, "ckey" = 1))
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
"jobs",
|
||||
"alternate_option",
|
||||
"alternate_titles",
|
||||
"id" = 1,
|
||||
"ckey" = 1
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/gather_save_parameters()
|
||||
var/list/compiled_jobs = list("job_civilian_high" = pref.job_civilian_high,
|
||||
"job_civilian_med" = pref.job_civilian_med,
|
||||
"job_civilian_low" = pref.job_civilian_low,
|
||||
"job_medsci_high" = pref.job_medsci_high,
|
||||
"job_medsci_med" = pref.job_medsci_med,
|
||||
"job_medsci_low" = pref.job_medsci_low,
|
||||
"job_engsec_high" = pref.job_engsec_high,
|
||||
"job_engsec_med" = pref.job_engsec_med,
|
||||
"job_engsec_low" = pref.job_engsec_low)
|
||||
var/list/compiled_jobs = list(
|
||||
"job_civilian_high" = pref.job_civilian_high,
|
||||
"job_civilian_med" = pref.job_civilian_med,
|
||||
"job_civilian_low" = pref.job_civilian_low,
|
||||
"job_medsci_high" = pref.job_medsci_high,
|
||||
"job_medsci_med" = pref.job_medsci_med,
|
||||
"job_medsci_low" = pref.job_medsci_low,
|
||||
"job_engsec_high" = pref.job_engsec_high,
|
||||
"job_engsec_med" = pref.job_engsec_med,
|
||||
"job_engsec_low" = pref.job_engsec_low
|
||||
)
|
||||
|
||||
return list("jobs" = list2params(compiled_jobs), "alternate_option" = pref.alternate_option, "alternate_titles" = list2params(pref.player_alt_titles), "id" = pref.current_character, "ckey" = pref.client.ckey)
|
||||
return list(
|
||||
"jobs" = list2params(compiled_jobs),
|
||||
"alternate_option" = pref.alternate_option,
|
||||
"alternate_titles" = list2params(pref.player_alt_titles),
|
||||
"id" = pref.current_character,
|
||||
"ckey" = pref.client.ckey
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/sanitize_character(var/sql_load = 0)
|
||||
if (sql_load)
|
||||
@@ -82,16 +107,16 @@
|
||||
log_debug("LOADING: Bad job preference key: [preference].")
|
||||
log_debug(e.desc)
|
||||
|
||||
pref.alternate_option = sanitize_integer(text2num(pref.alternate_option), 0, 2, initial(pref.alternate_option))
|
||||
pref.job_civilian_high = sanitize_integer(text2num(pref.job_civilian_high), 0, 65535, initial(pref.job_civilian_high))
|
||||
pref.job_civilian_med = sanitize_integer(text2num(pref.job_civilian_med), 0, 65535, initial(pref.job_civilian_med))
|
||||
pref.job_civilian_low = sanitize_integer(text2num(pref.job_civilian_low), 0, 65535, initial(pref.job_civilian_low))
|
||||
pref.job_medsci_high = sanitize_integer(text2num(pref.job_medsci_high), 0, 65535, initial(pref.job_medsci_high))
|
||||
pref.job_medsci_med = sanitize_integer(text2num(pref.job_medsci_med), 0, 65535, initial(pref.job_medsci_med))
|
||||
pref.job_medsci_low = sanitize_integer(text2num(pref.job_medsci_low), 0, 65535, initial(pref.job_medsci_low))
|
||||
pref.job_engsec_high = sanitize_integer(text2num(pref.job_engsec_high), 0, 65535, initial(pref.job_engsec_high))
|
||||
pref.job_engsec_med = sanitize_integer(text2num(pref.job_engsec_med), 0, 65535, initial(pref.job_engsec_med))
|
||||
pref.job_engsec_low = sanitize_integer(text2num(pref.job_engsec_low), 0, 65535, initial(pref.job_engsec_low))
|
||||
pref.alternate_option = sanitize_integer(text2num(pref.alternate_option), 0, 2, initial(pref.alternate_option))
|
||||
pref.job_civilian_high = sanitize_integer(text2num(pref.job_civilian_high), 0, 65535, initial(pref.job_civilian_high))
|
||||
pref.job_civilian_med = sanitize_integer(text2num(pref.job_civilian_med), 0, 65535, initial(pref.job_civilian_med))
|
||||
pref.job_civilian_low = sanitize_integer(text2num(pref.job_civilian_low), 0, 65535, initial(pref.job_civilian_low))
|
||||
pref.job_medsci_high = sanitize_integer(text2num(pref.job_medsci_high), 0, 65535, initial(pref.job_medsci_high))
|
||||
pref.job_medsci_med = sanitize_integer(text2num(pref.job_medsci_med), 0, 65535, initial(pref.job_medsci_med))
|
||||
pref.job_medsci_low = sanitize_integer(text2num(pref.job_medsci_low), 0, 65535, initial(pref.job_medsci_low))
|
||||
pref.job_engsec_high = sanitize_integer(text2num(pref.job_engsec_high), 0, 65535, initial(pref.job_engsec_high))
|
||||
pref.job_engsec_med = sanitize_integer(text2num(pref.job_engsec_med), 0, 65535, initial(pref.job_engsec_med))
|
||||
pref.job_engsec_low = sanitize_integer(text2num(pref.job_engsec_low), 0, 65535, initial(pref.job_engsec_low))
|
||||
|
||||
if (!pref.player_alt_titles)
|
||||
pref.player_alt_titles = new()
|
||||
@@ -102,89 +127,91 @@
|
||||
pref.player_alt_titles -= job.title
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/content(mob/user, limit = 16, list/splitJobs = list("Chief Medical Officer"))
|
||||
|
||||
. += "<tt><center>"
|
||||
. += "<b>Choose occupation chances</b><br>Unavailable occupations are crossed out.<br>"
|
||||
. += "<table width='100%' cellpadding='1' cellspacing='0'><tr><td width='20%'>" // Table within a table for alignment, also allows you to easily add more colomns.
|
||||
. += "<table width='100%' cellpadding='1' cellspacing='0'>"
|
||||
var/list/dat = list(
|
||||
"<tt><center>",
|
||||
"<b>Choose occupation chances</b><br>Unavailable occupations are crossed out.<br>",
|
||||
"<table width='100%' cellpadding='1' cellspacing='0'><tr><td width='20%'>", // Table within a table for alignment, also allows you to easily add more colomns.
|
||||
"<table width='100%' cellpadding='1' cellspacing='0'>"
|
||||
)
|
||||
var/index = -1
|
||||
|
||||
//The job before the current job. I only use this to get the previous jobs color when I'm filling in blank rows.
|
||||
var/datum/job/lastJob
|
||||
for(var/datum/job/job in SSjobs.occupations)
|
||||
|
||||
index += 1
|
||||
if((index >= limit) || (job.title in splitJobs))
|
||||
if((index < limit) && (lastJob != null))
|
||||
//If the cells were broken up by a job in the splitJob list then it will fill in the rest of the cells with
|
||||
//the last job's selection color. Creating a rather nice effect.
|
||||
for(var/i = 0, i < (limit - index), i += 1)
|
||||
. += "<tr bgcolor='[lastJob.selection_color]'><td width='60%' align='right'><a> </a></td><td><a> </a></td></tr>"
|
||||
. += "</table></td><td width='20%'><table width='100%' cellpadding='1' cellspacing='0'>"
|
||||
dat += "<tr bgcolor='[lastJob.selection_color]'><td width='60%' align='right'><a> </a></td><td><a> </a></td></tr>"
|
||||
dat += "</table></td><td width='20%'><table width='100%' cellpadding='1' cellspacing='0'>"
|
||||
index = 0
|
||||
|
||||
. += "<tr bgcolor='[job.selection_color]'><td width='60%' align='right'>"
|
||||
dat += "<tr bgcolor='[job.selection_color]'><td width='60%' align='right'>"
|
||||
var/rank = job.title
|
||||
lastJob = job
|
||||
var/ban_reason = jobban_isbanned(user, rank)
|
||||
if(ban_reason == "WHITELISTED")
|
||||
. += "<del>[rank]</del></td><td><b> \[WHITELISTED]</b></td></tr>"
|
||||
dat += "<del>[rank]</del></td><td><b> \[WHITELISTED]</b></td></tr>"
|
||||
continue
|
||||
else if (ban_reason == "AGE WHITELISTED")
|
||||
var/available_in_days = player_old_enough_for_role(user.client, rank)
|
||||
. += "<del>[rank]</del></td><td> \[IN [(available_in_days)] DAYS]</td></tr>"
|
||||
dat += "<del>[rank]</del></td><td> \[IN [(available_in_days)] DAYS]</td></tr>"
|
||||
continue
|
||||
else if (ban_reason)
|
||||
. += "<del>[rank]</del></td><td><b> \[<a href='?src=\ref[user.client];view_jobban=\ref[rank];'>BANNED</a>]</b></td></tr>"
|
||||
dat += "<del>[rank]</del></td><td><b> \[<a href='?src=\ref[user.client];view_jobban=\ref[rank];'>BANNED</a>]</b></td></tr>"
|
||||
continue
|
||||
if((pref.job_civilian_low & ASSISTANT) && (rank != "Assistant"))
|
||||
. += "<font color=orange>[rank]</font></td><td></td></tr>"
|
||||
dat += "<font color=orange>[rank]</font></td><td></td></tr>"
|
||||
continue
|
||||
if((rank in command_positions) || (rank == "AI"))//Bold head jobs
|
||||
. += "<b>[rank]</b>"
|
||||
dat += "<b>[rank]</b>"
|
||||
else
|
||||
. += "[rank]"
|
||||
dat += "[rank]"
|
||||
|
||||
. += "</td><td width='40%'>"
|
||||
dat += "</td><td width='40%'>"
|
||||
|
||||
. += "<a href='?src=\ref[src];set_job=[rank]'>"
|
||||
dat += "<a href='?src=\ref[src];set_job=[rank]'>"
|
||||
|
||||
if(rank == "Assistant")//Assistant is special
|
||||
if(pref.job_civilian_low & ASSISTANT)
|
||||
. += " <font color=green>\[Yes]</font>"
|
||||
dat += " <font color=green>\[Yes]</font>"
|
||||
else
|
||||
. += " <font color=red>\[No]</font>"
|
||||
dat += " <font color=red>\[No]</font>"
|
||||
if(job.alt_titles) //Blatantly cloned from a few lines down.
|
||||
. += "</a></td></tr><tr bgcolor='[lastJob.selection_color]'><td width='60%' align='center'> </td><td><a href='?src=\ref[src];select_alt_title=\ref[job]'>\[[pref.GetPlayerAltTitle(job)]\]</a></td></tr>"
|
||||
. += "</a></td></tr>"
|
||||
dat += "</a></td></tr><tr bgcolor='[lastJob.selection_color]'><td width='60%' align='center'> </td><td><a href='?src=\ref[src];select_alt_title=\ref[job]'>\[[pref.GetPlayerAltTitle(job)]\]</a></td></tr>"
|
||||
dat += "</a></td></tr>"
|
||||
continue
|
||||
|
||||
if(pref.GetJobDepartment(job, 1) & job.flag)
|
||||
. += " <font color=blue>\[High]</font>"
|
||||
dat += " <font color=blue>\[High]</font>"
|
||||
else if(pref.GetJobDepartment(job, 2) & job.flag)
|
||||
. += " <font color=green>\[Medium]</font>"
|
||||
dat += " <font color=green>\[Medium]</font>"
|
||||
else if(pref.GetJobDepartment(job, 3) & job.flag)
|
||||
. += " <font color=orange>\[Low]</font>"
|
||||
dat += " <font color=orange>\[Low]</font>"
|
||||
else
|
||||
. += " <font color=red>\[NEVER]</font>"
|
||||
dat += " <font color=red>\[NEVER]</font>"
|
||||
if(job.alt_titles)
|
||||
. += "</a></td></tr><tr bgcolor='[lastJob.selection_color]'><td width='60%' align='center'> </td><td><a href='?src=\ref[src];select_alt_title=\ref[job]'>\[[pref.GetPlayerAltTitle(job)]\]</a></td></tr>"
|
||||
. += "</a></td></tr>"
|
||||
dat += "</a></td></tr><tr bgcolor='[lastJob.selection_color]'><td width='60%' align='center'> </td><td><a href='?src=\ref[src];select_alt_title=\ref[job]'>\[[pref.GetPlayerAltTitle(job)]\]</a></td></tr>"
|
||||
dat += "</a></td></tr>"
|
||||
|
||||
. += "</td'></tr></table>"
|
||||
dat += "</td'></tr></table>"
|
||||
|
||||
. += "</center></table>"
|
||||
dat += "</center></table>"
|
||||
|
||||
switch(pref.alternate_option)
|
||||
if(GET_RANDOM_JOB)
|
||||
. += "<center><br><u><a href='?src=\ref[src];job_alternative=1'><font color=green>Get random job if preferences unavailable</font></a></u></center><br>"
|
||||
dat += "<center><br><u><a href='?src=\ref[src];job_alternative=1'><font color=green>Get random job if preferences unavailable</font></a></u></center><br>"
|
||||
if(BE_ASSISTANT)
|
||||
. += "<center><br><u><a href='?src=\ref[src];job_alternative=1'><font color=red>Be assistant if preference unavailable</font></a></u></center><br>"
|
||||
dat += "<center><br><u><a href='?src=\ref[src];job_alternative=1'><font color=red>Be assistant if preference unavailable</font></a></u></center><br>"
|
||||
if(RETURN_TO_LOBBY)
|
||||
. += "<center><br><u><a href='?src=\ref[src];job_alternative=1'><font color=purple>Return to lobby if preference unavailable</font></a></u></center><br>"
|
||||
dat += "<center><br><u><a href='?src=\ref[src];job_alternative=1'><font color=purple>Return to lobby if preference unavailable</font></a></u></center><br>"
|
||||
|
||||
. += "<center><a href='?src=\ref[src];reset_jobs=1'>\[Reset\]</a></center>"
|
||||
. += "</tt>"
|
||||
dat += "<center><a href='?src=\ref[src];reset_jobs=1'>\[Reset\]</a></center>"
|
||||
dat += "</tt>"
|
||||
|
||||
. = dat.Join()
|
||||
|
||||
/datum/category_item/player_setup_item/occupation/OnTopic(href, href_list, user)
|
||||
if(href_list["reset_jobs"])
|
||||
|
||||
@@ -61,27 +61,30 @@
|
||||
infraction.felony = text2num(char_infraction_query.item[11])
|
||||
pref.incidents.Add(infraction)
|
||||
|
||||
/datum/category_item/player_setup_item/other/incidents/content(var/mob/user)
|
||||
pref.incidents = list()
|
||||
. += "<b>Incident Information</b><br>"
|
||||
. += "The following incidents are on file for your character<br>"
|
||||
/datum/category_item/player_setup_item/other/incidents/content(mob/user)
|
||||
var/list/dat = list(
|
||||
"<b>Incident Information</b><br>",
|
||||
"The following incidents are on file for your character<br>"
|
||||
)
|
||||
for (var/datum/char_infraction/I in pref.incidents)
|
||||
. += "<hr>"
|
||||
. += "UID: [I.UID]<br>"
|
||||
. += "Date/Time: [I.datetime]<br>"
|
||||
. += "Charges: "
|
||||
dat += "<hr>"
|
||||
dat += "UID: [I.UID]<br>"
|
||||
dat += "Date/Time: [I.datetime]<br>"
|
||||
dat += "Charges: "
|
||||
for (var/L in I.charges)
|
||||
. += "[L], "
|
||||
dat += "[L], "
|
||||
if (I.fine == 0)
|
||||
. += "<br>Brig Sentence: [I.getBrigSentence()] <br>"
|
||||
dat += "<br>Brig Sentence: [I.getBrigSentence()] <br>"
|
||||
else
|
||||
. += "Fine: [I.fine] Credits<br>"
|
||||
. += "Notes: <br>"
|
||||
dat += "Fine: [I.fine] Credits<br>"
|
||||
dat += "Notes: <br>"
|
||||
if (I.notes != "")
|
||||
. += nl2br(I.notes)
|
||||
dat += nl2br(I.notes)
|
||||
else
|
||||
. += "- No Summary Entered -"
|
||||
. += "<br><a href='?src=\ref[src];details_sec_incident=[I.db_id]'>Show Details</a><br><a href='?src=\ref[src];del_sec_incident=[I.db_id]'>Delete Incident</a>"
|
||||
dat += "- No Summary Entered -"
|
||||
dat += "<br><a href='?src=\ref[src];details_sec_incident=[I.db_id]'>Show Details</a><br><a href='?src=\ref[src];del_sec_incident=[I.db_id]'>Delete Incident</a>"
|
||||
|
||||
. = dat.Join()
|
||||
|
||||
/datum/category_item/player_setup_item/other/incidents/OnTopic(var/href,var/list/href_list, var/mob/user)
|
||||
if(href_list["del_sec_incident"])
|
||||
|
||||
@@ -7,6 +7,9 @@
|
||||
#define SQL_CHARACTER 0x1
|
||||
#define SQL_PREFERENCES 0x2
|
||||
|
||||
// General-purpose helper for drawing a colored box.
|
||||
#define HTML_RECT(color) " <div style=\"display:inline;height:10px;width:30px;background:'[color || "#FFFFFF"]'\"></div> "
|
||||
|
||||
/datum/category_group/player_setup_category/general_preferences
|
||||
name = "General"
|
||||
sort_order = 1
|
||||
|
||||
@@ -3,26 +3,46 @@
|
||||
sort_order = 1
|
||||
|
||||
/datum/category_item/player_setup_item/skills/load_character(var/savefile/S)
|
||||
S["skills"] >> pref.skills
|
||||
S["used_skillpoints"] >> pref.used_skillpoints
|
||||
S["skill_specialization"] >> pref.skill_specialization
|
||||
S["skills"] >> pref.skills
|
||||
S["used_skillpoints"] >> pref.used_skillpoints
|
||||
S["skill_specialization"] >> pref.skill_specialization
|
||||
|
||||
/datum/category_item/player_setup_item/skills/save_character(var/savefile/S)
|
||||
S["skills"] << pref.skills
|
||||
S["used_skillpoints"] << pref.used_skillpoints
|
||||
S["skill_specialization"] << pref.skill_specialization
|
||||
S["skills"] << pref.skills
|
||||
S["used_skillpoints"] << pref.used_skillpoints
|
||||
S["skill_specialization"] << pref.skill_specialization
|
||||
|
||||
/datum/category_item/player_setup_item/skills/gather_load_query()
|
||||
return list("ss13_characters" = list("vars" = list("skills", "skill_specialization"), "args" = list("id")))
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
"vars" = list(
|
||||
"skills",
|
||||
"skill_specialization"
|
||||
),
|
||||
"args" = list("id")
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/skills/gather_load_parameters()
|
||||
return list("id" = pref.current_character)
|
||||
|
||||
/datum/category_item/player_setup_item/skills/gather_save_query()
|
||||
return list("ss13_characters" = list("skills", "skill_specialization", "id" = 1, "ckey" = 1))
|
||||
return list(
|
||||
"ss13_characters" = list(
|
||||
"skills",
|
||||
"skill_specialization",
|
||||
"id" = 1,
|
||||
"ckey" = 1
|
||||
)
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/skills/gather_save_parameters()
|
||||
return list("skills" = list2params(pref.skills), "skill_specialization" = pref.skill_specialization, "id" = pref.current_character, "ckey" = pref.client.ckey)
|
||||
return list(
|
||||
"skills" = list2params(pref.skills),
|
||||
"skill_specialization" = pref.skill_specialization,
|
||||
"id" = pref.current_character,
|
||||
"ckey" = pref.client.ckey
|
||||
)
|
||||
|
||||
/datum/category_item/player_setup_item/skills/sanitize_character(var/sql_load = 0)
|
||||
if (SKILLS == null)
|
||||
@@ -45,27 +65,30 @@
|
||||
pref.used_skillpoints = 0
|
||||
|
||||
/datum/category_item/player_setup_item/skills/content()
|
||||
. += "<b>Select your Skills</b><br>"
|
||||
. += "Current skill level: <b>[pref.GetSkillClass(pref.used_skillpoints)]</b> ([pref.used_skillpoints])<br>"
|
||||
. += "<a href='?src=\ref[src];preconfigured=1'>Use preconfigured skillset</a><br>"
|
||||
. += "<table>"
|
||||
var/list/dat = list(
|
||||
"<b>Select your Skills</b><br>",
|
||||
"Current skill level: <b>[pref.GetSkillClass(pref.used_skillpoints)]</b> ([pref.used_skillpoints])<br>",
|
||||
"<a href='?src=\ref[src];preconfigured=1'>Use preconfigured skillset</a><br>",
|
||||
"<table>"
|
||||
)
|
||||
for(var/V in SKILLS)
|
||||
. += "<tr><th colspan = 5><b>[V]</b>"
|
||||
. += "</th></tr>"
|
||||
dat += "<tr><th colspan = 5><b>[V]</b>"
|
||||
dat += "</th></tr>"
|
||||
for(var/datum/skill/S in SKILLS[V])
|
||||
var/level = pref.skills[S.ID]
|
||||
. += "<tr style='text-align:left;'>"
|
||||
. += "<th><a href='?src=\ref[src];skillinfo=\ref[S]'>[S.name]</a></th>"
|
||||
. += "<th><a href='?src=\ref[src];setskill=\ref[S];newvalue=[SKILL_NONE]'><font color=[(level == SKILL_NONE) ? "red" : "black"]>\[Untrained\]</font></a></th>"
|
||||
dat += "<tr style='text-align:left;'>"
|
||||
dat += "<th><a href='?src=\ref[src];skillinfo=\ref[S]'>[S.name]</a></th>"
|
||||
dat += "<th><a href='?src=\ref[src];setskill=\ref[S];newvalue=[SKILL_NONE]'><font color=[(level == SKILL_NONE) ? "red" : "black"]>\[Untrained\]</font></a></th>"
|
||||
// secondary skills don't have an amateur level
|
||||
if(S.secondary)
|
||||
. += "<th></th>"
|
||||
dat += "<th></th>"
|
||||
else
|
||||
. += "<th><a href='?src=\ref[src];setskill=\ref[S];newvalue=[SKILL_BASIC]'><font color=[(level == SKILL_BASIC) ? "red" : "black"]>\[Amateur\]</font></a></th>"
|
||||
. += "<th><a href='?src=\ref[src];setskill=\ref[S];newvalue=[SKILL_ADEPT]'><font color=[(level == SKILL_ADEPT) ? "red" : "black"]>\[Trained\]</font></a></th>"
|
||||
. += "<th><a href='?src=\ref[src];setskill=\ref[S];newvalue=[SKILL_EXPERT]'><font color=[(level == SKILL_EXPERT) ? "red" : "black"]>\[Professional\]</font></a></th>"
|
||||
. += "</tr>"
|
||||
. += "</table>"
|
||||
dat += "<th><a href='?src=\ref[src];setskill=\ref[S];newvalue=[SKILL_BASIC]'><font color=[(level == SKILL_BASIC) ? "red" : "black"]>\[Amateur\]</font></a></th>"
|
||||
dat += "<th><a href='?src=\ref[src];setskill=\ref[S];newvalue=[SKILL_ADEPT]'><font color=[(level == SKILL_ADEPT) ? "red" : "black"]>\[Trained\]</font></a></th>"
|
||||
dat += "<th><a href='?src=\ref[src];setskill=\ref[S];newvalue=[SKILL_EXPERT]'><font color=[(level == SKILL_EXPERT) ? "red" : "black"]>\[Professional\]</font></a></th>"
|
||||
dat += "</tr>"
|
||||
dat += "</table>"
|
||||
. = dat.Join()
|
||||
|
||||
/datum/category_item/player_setup_item/skills/OnTopic(href, href_list, user)
|
||||
if(href_list["skillinfo"])
|
||||
|
||||
Reference in New Issue
Block a user