mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-16 01:23:41 +01:00
Merge pull request #5147 from KasparoVy/tail-markings
Refactors Markings, Adds Tail (some body and head) markings, Adds Alt heads, Secondary (F)Hair Themes, Darkens Vulp/Taj + Unathi horns/frills, Sprite adjustments and more...
This commit is contained in:
@@ -110,18 +110,26 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
var/r_headacc = 0 //Head accessory colour
|
||||
var/g_headacc = 0 //Head accessory colour
|
||||
var/b_headacc = 0 //Head accessory colour
|
||||
var/m_style = "None" //Marking style
|
||||
var/r_markings = 0 //Marking colour
|
||||
var/g_markings = 0 //Marking colour
|
||||
var/b_markings = 0 //Marking colour
|
||||
var/m_styles = "head=None;\
|
||||
body=None;\
|
||||
tail=None" //Marking styles.
|
||||
var/m_colours = "head=#000000;\
|
||||
body=#000000;\
|
||||
tail=#000000" //Marking colours.
|
||||
var/h_style = "Bald" //Hair type
|
||||
var/r_hair = 0 //Hair color
|
||||
var/g_hair = 0 //Hair color
|
||||
var/b_hair = 0 //Hair color
|
||||
var/f_style = "Shaved" //Face hair type
|
||||
var/r_facial = 0 //Face hair color
|
||||
var/g_facial = 0 //Face hair color
|
||||
var/b_facial = 0 //Face hair color
|
||||
var/r_hair_sec = 0 //Secondary hair color
|
||||
var/g_hair_sec = 0 //Secondary hair color
|
||||
var/b_hair_sec = 0 //Secondary hair color
|
||||
var/f_style = "Shaved" //Facial hair type
|
||||
var/r_facial = 0 //Facial hair color
|
||||
var/g_facial = 0 //Facial hair color
|
||||
var/b_facial = 0 //Facial hair color
|
||||
var/r_facial_sec = 0 //Secondary facial hair color
|
||||
var/g_facial_sec = 0 //Secondary facial hair color
|
||||
var/b_facial_sec = 0 //Secondary facial hair color
|
||||
var/s_tone = 0 //Skin tone
|
||||
var/r_skin = 0 //Skin color
|
||||
var/g_skin = 0 //Skin color
|
||||
@@ -129,6 +137,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
var/r_eyes = 0 //Eye color
|
||||
var/g_eyes = 0 //Eye color
|
||||
var/b_eyes = 0 //Eye color
|
||||
var/alt_head = "None" //Alt head style.
|
||||
var/species = "Human"
|
||||
var/language = "None" //Secondary language
|
||||
|
||||
@@ -286,18 +295,44 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
dat += "<a href='?_src_=prefs;preference=ha_style;task=input'>[ha_style]</a> "
|
||||
dat += "<a href='?_src_=prefs;preference=headaccessory;task=input'>Color</a> [color_square(r_headacc, g_headacc, b_headacc)]<br>"
|
||||
|
||||
if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) //Species that have body markings.
|
||||
if(species in list("Machine", "Tajaran", "Unathi", "Vulpkanin")) //Species with head markings.
|
||||
var/list/marking_styles = params2list(m_styles)
|
||||
var/list/marking_colours = params2list(m_colours)
|
||||
marking_colours["head"] = sanitize_hexcolor(marking_colours["head"])
|
||||
dat += "<b>Head Markings:</b> "
|
||||
dat += "<a href='?_src_=prefs;preference=m_style_head;task=input'>[marking_styles["head"]]</a>"
|
||||
dat += "<a href='?_src_=prefs;preference=m_head_colour;task=input'>Color</a> [color_square(hex2num(copytext(marking_colours["head"], 2, 4)), hex2num(copytext(marking_colours["head"], 4, 6)), hex2num(copytext(marking_colours["head"], 6, 8)))]<br>"
|
||||
if(species in list("Human", "Unathi", "Grey", "Vulpkanin", "Tajaran", "Skrell", "Vox")) //Species with body markings/tattoos.
|
||||
var/list/marking_styles = params2list(m_styles)
|
||||
var/list/marking_colours = params2list(m_colours)
|
||||
marking_colours["body"] = sanitize_hexcolor(marking_colours["body"])
|
||||
dat += "<b>Body Markings:</b> "
|
||||
dat += "<a href='?_src_=prefs;preference=m_style;task=input'>[m_style]</a>"
|
||||
dat += "<a href='?_src_=prefs;preference=markings;task=input'>Color</a> [color_square(r_markings, g_markings, b_markings)]<br>"
|
||||
dat += "<a href='?_src_=prefs;preference=m_style_body;task=input'>[marking_styles["body"]]</a>"
|
||||
dat += "<a href='?_src_=prefs;preference=m_body_colour;task=input'>Color</a> [color_square(hex2num(copytext(marking_colours["body"], 2, 4)), hex2num(copytext(marking_colours["body"], 4, 6)), hex2num(copytext(marking_colours["body"], 6, 8)))]<br>"
|
||||
if(species in list("Vox", "Vulpkanin")) //Species with tail markings.
|
||||
var/list/marking_styles = params2list(m_styles)
|
||||
var/list/marking_colours = params2list(m_colours)
|
||||
marking_colours["tail"] = sanitize_hexcolor(marking_colours["tail"])
|
||||
dat += "<b>Tail Markings:</b> "
|
||||
dat += "<a href='?_src_=prefs;preference=m_style_tail;task=input'>[marking_styles["tail"]]</a>"
|
||||
dat += "<a href='?_src_=prefs;preference=m_tail_colour;task=input'>Color</a> [color_square(hex2num(copytext(marking_colours["tail"], 2, 4)), hex2num(copytext(marking_colours["tail"], 4, 6)), hex2num(copytext(marking_colours["tail"], 6, 8)))]<br>"
|
||||
|
||||
dat += "<b>Hair:</b> "
|
||||
dat += "<a href='?_src_=prefs;preference=h_style;task=input'>[h_style]</a>"
|
||||
dat += "<a href='?_src_=prefs;preference=hair;task=input'>Color</a> [color_square(r_hair, g_hair, b_hair)]<br>"
|
||||
dat += "<a href='?_src_=prefs;preference=hair;task=input'>Color</a> [color_square(r_hair, g_hair, b_hair)]"
|
||||
var/datum/sprite_accessory/temp_hair_style = hair_styles_list[h_style]
|
||||
if(temp_hair_style.secondary_theme && !temp_hair_style.no_sec_colour)
|
||||
dat += " <a href='?_src_=prefs;preference=secondary_hair;task=input'>Color #2</a> [color_square(r_hair_sec, g_hair_sec, b_hair_sec)]"
|
||||
dat += "<br>"
|
||||
|
||||
dat += "<b>Facial Hair:</b> "
|
||||
dat += "<a href='?_src_=prefs;preference=f_style;task=input'>[f_style ? "[f_style]" : "Shaved"]</a>"
|
||||
dat += "<a href='?_src_=prefs;preference=facial;task=input'>Color</a> [color_square(r_facial, g_facial, b_facial)]<br>"
|
||||
dat += "<a href='?_src_=prefs;preference=facial;task=input'>Color</a> [color_square(r_facial, g_facial, b_facial)]"
|
||||
var/datum/sprite_accessory/temp_facial_hair_style = facial_hair_styles_list[f_style]
|
||||
if(temp_facial_hair_style.secondary_theme && !temp_facial_hair_style.no_sec_colour)
|
||||
dat += " <a href='?_src_=prefs;preference=secondary_facial;task=input'>Color #2</a> [color_square(r_facial_sec, g_facial_sec, b_facial_sec)]"
|
||||
dat += "<br>"
|
||||
|
||||
|
||||
if(species != "Machine")
|
||||
dat += "<b>Eyes:</b> "
|
||||
@@ -320,6 +355,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
dat += "<a href=\"byond://?src=\ref[user];preference=records;record=1\">Character Records</a><br>"
|
||||
|
||||
dat += "<h2>Limbs</h2>"
|
||||
if(species in list("Unathi")) //Species with alt heads.
|
||||
dat += "<b>Alternate Head:</b> "
|
||||
dat += "<a href='?_src_=prefs;preference=alt_head;task=input'>[alt_head]</a><br>"
|
||||
dat += "<b>Limbs and Parts:</b> <a href='?_src_=prefs;preference=limbs;task=input'>Adjust</a><br>"
|
||||
if(species != "Slime People" && species != "Machine")
|
||||
dat += "<b>Internal Organs:</b> <a href='?_src_=prefs;preference=organs;task=input'>Adjust</a><br>"
|
||||
@@ -1161,7 +1199,6 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
if(new_age)
|
||||
age = max(min( round(text2num(new_age)), AGE_MAX),AGE_MIN)
|
||||
if("species")
|
||||
|
||||
var/list/new_species = list("Human", "Tajaran", "Skrell", "Unathi", "Diona", "Vulpkanin")
|
||||
var/prev_species = species
|
||||
// var/whitelisted = 0
|
||||
@@ -1231,9 +1268,18 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
socks = random_socks(gender, species)
|
||||
|
||||
//reset hair colour and skin colour
|
||||
r_hair = 0//hex2num(copytext(new_hair, 2, 4))
|
||||
g_hair = 0//hex2num(copytext(new_hair, 4, 6))
|
||||
b_hair = 0//hex2num(copytext(new_hair, 6, 8))
|
||||
r_hair = 0
|
||||
g_hair = 0
|
||||
b_hair = 0
|
||||
r_hair_sec = 0
|
||||
g_hair_sec = 0
|
||||
b_hair_sec = 0
|
||||
r_facial = 0
|
||||
g_facial = 0
|
||||
b_facial = 0
|
||||
r_facial_sec = 0
|
||||
g_facial_sec = 0
|
||||
b_facial_sec = 0
|
||||
|
||||
s_tone = 0
|
||||
|
||||
@@ -1243,7 +1289,11 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
b_skin = 0
|
||||
|
||||
ha_style = "None" // No Vulp ears on Unathi
|
||||
m_style = "None" // No Unathi markings on Tajara
|
||||
m_styles = "head=None;\
|
||||
body=None;\
|
||||
tail=None" // No Unathi markings on Tajara
|
||||
|
||||
alt_head = "None" //No alt heads on species that don't have them.
|
||||
|
||||
body_accessory = null //no vulptail on humans damnit
|
||||
|
||||
@@ -1294,6 +1344,16 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
g_hair = hex2num(copytext(new_hair, 4, 6))
|
||||
b_hair = hex2num(copytext(new_hair, 6, 8))
|
||||
|
||||
if("secondary_hair")
|
||||
if(species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox"))
|
||||
var/datum/sprite_accessory/hair_style = hair_styles_list[h_style]
|
||||
if(hair_style.secondary_theme && !hair_style.no_sec_colour)
|
||||
var/new_hair = input(user, "Choose your character's secondary hair colour:", "Character Preference", rgb(r_hair_sec, g_hair_sec, b_hair_sec)) as color|null
|
||||
if(new_hair)
|
||||
r_hair_sec = hex2num(copytext(new_hair, 2, 4))
|
||||
g_hair_sec = hex2num(copytext(new_hair, 4, 6))
|
||||
b_hair_sec = hex2num(copytext(new_hair, 6, 8))
|
||||
|
||||
if("h_style")
|
||||
var/list/valid_hairstyles = list()
|
||||
for(var/hairstyle in hair_styles_list)
|
||||
@@ -1351,22 +1411,46 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
if(new_head_accessory_style)
|
||||
ha_style = new_head_accessory_style
|
||||
|
||||
if("markings")
|
||||
if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) //Species with markings.
|
||||
var/input = "Choose the colour of your your character's markings:"
|
||||
var/new_markings = input(user, input, "Character Preference", rgb(r_markings, g_markings, b_markings)) as color|null
|
||||
if(new_markings)
|
||||
r_markings = hex2num(copytext(new_markings, 2, 4))
|
||||
g_markings = hex2num(copytext(new_markings, 4, 6))
|
||||
b_markings = hex2num(copytext(new_markings, 6, 8))
|
||||
if("alt_head")
|
||||
if(organ_data["head"] == "cyborg")
|
||||
return
|
||||
if(species in list("Unathi")) //Species with alt heads.
|
||||
var/list/valid_alt_heads = list()
|
||||
valid_alt_heads["None"] = alt_heads_list["None"] //The only null entry should be the "None" option
|
||||
for(var/alternate_head in alt_heads_list)
|
||||
var/datum/sprite_accessory/alt_heads/head = alt_heads_list[alternate_head]
|
||||
if(!(species in head.species_allowed))
|
||||
continue
|
||||
|
||||
if("m_style")
|
||||
if(species in list("Unathi", "Vulpkanin", "Tajaran", "Machine")) //Species with markings.
|
||||
valid_alt_heads[alternate_head] = alt_heads_list[alternate_head]
|
||||
|
||||
var/new_alt_head = input(user, "Choose your character's alternate head style:", "Character Preference") as null|anything in valid_alt_heads
|
||||
if(new_alt_head)
|
||||
alt_head = new_alt_head
|
||||
var/list/marking_styles = params2list(m_styles)
|
||||
if(marking_styles["head"])
|
||||
var/head_marking = marking_styles["head"]
|
||||
var/datum/sprite_accessory/body_markings/head/head_marking_style = marking_styles_list[head_marking]
|
||||
if(!head_marking_style.heads_allowed || !(alt_head in head_marking_style.heads_allowed))
|
||||
marking_styles["head"] = "None"
|
||||
m_styles = list2params(marking_styles)
|
||||
|
||||
if("m_style_head")
|
||||
if(species in list("Machine", "Tajaran", "Unathi", "Vulpkanin")) //Species with head markings.
|
||||
var/list/valid_markings = list()
|
||||
valid_markings["None"] = marking_styles_list["None"]
|
||||
for(var/markingstyle in marking_styles_list)
|
||||
var/datum/sprite_accessory/M = marking_styles_list[markingstyle]
|
||||
var/datum/sprite_accessory/body_markings/head/M = marking_styles_list[markingstyle]
|
||||
if(!(species in M.species_allowed))
|
||||
continue
|
||||
if(M.marking_location != "head")
|
||||
continue
|
||||
if(alt_head && alt_head != "None")
|
||||
if(!(alt_head in M.heads_allowed))
|
||||
continue
|
||||
else
|
||||
if(M.heads_allowed)
|
||||
continue
|
||||
|
||||
if(species == "Machine") //Species that can use prosthetic heads.
|
||||
var/obj/item/organ/external/head/H = new()
|
||||
@@ -1383,9 +1467,86 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
|
||||
valid_markings[markingstyle] = marking_styles_list[markingstyle]
|
||||
|
||||
var/new_marking_style = input(user, "Choose the style of your character's markings:", "Character Preference", m_style) as null|anything in valid_markings
|
||||
var/list/marking_styles = params2list(m_styles)
|
||||
var/new_marking_style = input(user, "Choose the style of your character's head markings:", "Character Preference", marking_styles["head"]) as null|anything in valid_markings
|
||||
if(new_marking_style)
|
||||
m_style = new_marking_style
|
||||
marking_styles["head"] = new_marking_style
|
||||
m_styles = list2params(marking_styles)
|
||||
|
||||
if("m_head_colour")
|
||||
if(species in list("Machine", "Tajaran", "Unathi", "Vulpkanin")) //Species with head markings.
|
||||
var/input = "Choose the colour of your your character's head markings:"
|
||||
var/list/marking_colours = params2list(m_colours)
|
||||
marking_colours["head"] = sanitize_hexcolor(marking_colours["head"])
|
||||
var/new_markings = input(user, input, "Character Preference", rgb(hex2num(copytext(marking_colours["head"], 2, 4)), hex2num(copytext(marking_colours["head"], 4, 6)), hex2num(copytext(marking_colours["head"], 6, 8)))) as color|null
|
||||
if(new_markings)
|
||||
marking_colours["head"] = new_markings
|
||||
m_colours = list2params(marking_colours)
|
||||
|
||||
if("m_style_body")
|
||||
if(species in list("Human", "Unathi", "Grey", "Vulpkanin", "Tajaran", "Skrell", "Vox")) //Species with body markings/tattoos.
|
||||
var/list/valid_markings = list()
|
||||
valid_markings["None"] = marking_styles_list["None"]
|
||||
for(var/markingstyle in marking_styles_list)
|
||||
var/datum/sprite_accessory/M = marking_styles_list[markingstyle]
|
||||
if(!(species in M.species_allowed))
|
||||
continue
|
||||
if(M.marking_location != "body")
|
||||
continue
|
||||
|
||||
valid_markings[markingstyle] = marking_styles_list[markingstyle]
|
||||
|
||||
var/list/marking_styles = params2list(m_styles)
|
||||
var/new_marking_style = input(user, "Choose the style of your character's body markings:", "Character Preference", marking_styles["body"]) as null|anything in valid_markings
|
||||
if(new_marking_style)
|
||||
marking_styles["body"] = new_marking_style
|
||||
m_styles = list2params(marking_styles)
|
||||
|
||||
if("m_body_colour")
|
||||
if(species in list("Human", "Unathi", "Grey", "Vulpkanin", "Tajaran", "Skrell", "Vox")) //Species with body markings/tattoos.
|
||||
var/input = "Choose the colour of your your character's body markings:"
|
||||
var/list/marking_colours = params2list(m_colours)
|
||||
marking_colours["body"] = sanitize_hexcolor(marking_colours["body"])
|
||||
var/new_markings = input(user, input, "Character Preference", rgb(hex2num(copytext(marking_colours["body"], 2, 4)), hex2num(copytext(marking_colours["body"], 4, 6)), hex2num(copytext(marking_colours["body"], 6, 8)))) as color|null
|
||||
if(new_markings)
|
||||
marking_colours["body"] = new_markings
|
||||
m_colours = list2params(marking_colours)
|
||||
|
||||
if("m_style_tail")
|
||||
if(species in list("Vox", "Vulpkanin")) //Species with tail markings.
|
||||
var/list/valid_markings = list()
|
||||
valid_markings["None"] = marking_styles_list["None"]
|
||||
for(var/markingstyle in marking_styles_list)
|
||||
var/datum/sprite_accessory/body_markings/tail/M = marking_styles_list[markingstyle]
|
||||
if(M.marking_location != "tail")
|
||||
continue
|
||||
if(!(species in M.species_allowed))
|
||||
continue
|
||||
if(!body_accessory)
|
||||
if(M.tails_allowed)
|
||||
continue
|
||||
else
|
||||
if(!M.tails_allowed || !(body_accessory in M.tails_allowed))
|
||||
continue
|
||||
|
||||
valid_markings[markingstyle] = marking_styles_list[markingstyle]
|
||||
|
||||
var/list/marking_styles = params2list(m_styles)
|
||||
var/new_marking_style = input(user, "Choose the style of your character's tail markings:", "Character Preference", marking_styles["tail"]) as null|anything in valid_markings
|
||||
|
||||
if(new_marking_style)
|
||||
marking_styles["tail"] = new_marking_style
|
||||
m_styles = list2params(marking_styles)
|
||||
|
||||
if("m_tail_colour")
|
||||
if(species in list("Vox", "Vulpkanin")) //Species with tail markings.
|
||||
var/input = "Choose the colour of your your character's tail markings:"
|
||||
var/list/marking_colours = params2list(m_colours)
|
||||
marking_colours["tail"] = sanitize_hexcolor(marking_colours["tail"])
|
||||
var/new_markings = input(user, input, "Character Preference", rgb(hex2num(copytext(marking_colours["tail"], 2, 4)), hex2num(copytext(marking_colours["tail"], 4, 6)), hex2num(copytext(marking_colours["tail"], 6, 8)))) as color|null
|
||||
if(new_markings)
|
||||
marking_colours["tail"] = new_markings
|
||||
m_colours = list2params(marking_colours)
|
||||
|
||||
if("body_accessory")
|
||||
var/list/possible_body_accessories = list()
|
||||
@@ -1402,6 +1563,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
|
||||
var/new_body_accessory = input(user, "Choose your body accessory:", "Character Preference") as null|anything in possible_body_accessories
|
||||
if(new_body_accessory)
|
||||
var/list/marking_styles = params2list(m_styles)
|
||||
marking_styles["tail"] = "None"
|
||||
m_styles = list2params(marking_styles)
|
||||
body_accessory = (new_body_accessory == "None") ? null : new_body_accessory
|
||||
|
||||
if("facial")
|
||||
@@ -1412,6 +1576,16 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
g_facial = hex2num(copytext(new_facial, 4, 6))
|
||||
b_facial = hex2num(copytext(new_facial, 6, 8))
|
||||
|
||||
if("secondary_facial")
|
||||
if(species in list("Human", "Unathi", "Tajaran", "Skrell", "Machine", "Vulpkanin", "Vox"))
|
||||
var/datum/sprite_accessory/facial_hair_style = facial_hair_styles_list[f_style]
|
||||
if(facial_hair_style.secondary_theme && !facial_hair_style.no_sec_colour)
|
||||
var/new_facial = input(user, "Choose your character's secondary facial-hair colour:", "Character Preference", rgb(r_facial_sec, g_facial_sec, b_facial_sec)) as color|null
|
||||
if(new_facial)
|
||||
r_facial_sec = hex2num(copytext(new_facial, 2, 4))
|
||||
g_facial_sec = hex2num(copytext(new_facial, 4, 6))
|
||||
b_facial_sec = hex2num(copytext(new_facial, 6, 8))
|
||||
|
||||
if("f_style")
|
||||
var/list/valid_facialhairstyles = list()
|
||||
for(var/facialhairstyle in facial_hair_styles_list)
|
||||
@@ -1593,11 +1767,12 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
var/new_state = input(user, "What state do you wish the limb to be in?") as null|anything in valid_limb_states
|
||||
if(!new_state) return
|
||||
|
||||
var/list/marking_styles = params2list(m_styles) //Handle resetting of head markings if the head is changed.
|
||||
switch(new_state)
|
||||
if("Normal")
|
||||
if(limb == "head")
|
||||
m_style = "None"
|
||||
h_style = random_hair_style(gender, species)
|
||||
marking_styles["head"] = "None"
|
||||
h_style = hair_styles_list["Bald"]
|
||||
f_style = facial_hair_styles_list["Shaved"]
|
||||
organ_data[limb] = null
|
||||
rlimb_data[limb] = null
|
||||
@@ -1642,11 +1817,15 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
subchoice = input(user, "Which model of [choice] [limb_name] do you wish to use?") as null|anything in robolimb_models
|
||||
if(subchoice)
|
||||
choice = subchoice
|
||||
if(limb == "head")
|
||||
ha_style = "None"
|
||||
h_style = hair_styles_list["Bald"]
|
||||
f_style = facial_hair_styles_list["Shaved"]
|
||||
m_style = "None"
|
||||
if(limb in list("head", "chest", "groin"))
|
||||
if(species != "Machine")
|
||||
return
|
||||
if(limb == "head")
|
||||
ha_style = "None"
|
||||
alt_head = null
|
||||
h_style = hair_styles_list["Bald"]
|
||||
f_style = facial_hair_styles_list["Shaved"]
|
||||
marking_styles["head"] = "None"
|
||||
rlimb_data[limb] = choice
|
||||
organ_data[limb] = "cyborg"
|
||||
if(second_limb)
|
||||
@@ -1657,7 +1836,7 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
else
|
||||
rlimb_data[second_limb] = choice
|
||||
organ_data[second_limb] = "cyborg"
|
||||
|
||||
m_styles = list2params(marking_styles) //Pass the reset head markings back to the preference variable.
|
||||
if("organs")
|
||||
var/organ_name = input(user, "Which internal function do you want to change?") as null|anything in list("Heart", "Eyes")
|
||||
if(!organ_name) return
|
||||
@@ -1862,12 +2041,22 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
H.g_hair = g_hair
|
||||
H.b_hair = b_hair
|
||||
|
||||
H.r_hair_sec = r_hair_sec
|
||||
H.g_hair_sec = g_hair_sec
|
||||
H.b_hair_sec = b_hair_sec
|
||||
|
||||
H.r_facial = r_facial
|
||||
H.g_facial = g_facial
|
||||
H.b_facial = b_facial
|
||||
|
||||
H.r_facial_sec = r_facial_sec
|
||||
H.g_facial_sec = g_facial_sec
|
||||
H.b_facial_sec = b_facial_sec
|
||||
|
||||
H.h_style = h_style
|
||||
H.f_style = f_style
|
||||
|
||||
H.alt_head = alt_head
|
||||
//End of head-specific.
|
||||
|
||||
character.r_skin = r_skin
|
||||
@@ -1956,11 +2145,9 @@ var/global/list/special_role_times = list( //minimum age (in days) for accounts
|
||||
H.g_headacc = g_headacc
|
||||
H.b_headacc = b_headacc
|
||||
H.ha_style = ha_style
|
||||
if(character.species.bodyflags & HAS_MARKINGS)
|
||||
character.r_markings = r_markings
|
||||
character.g_markings = g_markings
|
||||
character.b_markings = b_markings
|
||||
character.m_style = m_style
|
||||
if((character.species.bodyflags & HAS_HEAD_MARKINGS) || (character.species.bodyflags & HAS_BODY_MARKINGS) || (character.species.bodyflags & HAS_TAIL_MARKINGS))
|
||||
character.m_colours = m_colours
|
||||
character.m_styles = m_styles
|
||||
|
||||
if(body_accessory)
|
||||
character.body_accessory = body_accessory_by_name["[body_accessory]"]
|
||||
|
||||
@@ -110,23 +110,28 @@
|
||||
hair_red,
|
||||
hair_green,
|
||||
hair_blue,
|
||||
secondary_hair_red,
|
||||
secondary_hair_green,
|
||||
secondary_hair_blue,
|
||||
facial_red,
|
||||
facial_green,
|
||||
facial_blue,
|
||||
secondary_facial_red,
|
||||
secondary_facial_green,
|
||||
secondary_facial_blue,
|
||||
skin_tone,
|
||||
skin_red,
|
||||
skin_green,
|
||||
skin_blue,
|
||||
markings_red,
|
||||
markings_green,
|
||||
markings_blue,
|
||||
marking_colours,
|
||||
head_accessory_red,
|
||||
head_accessory_green,
|
||||
head_accessory_blue,
|
||||
hair_style_name,
|
||||
facial_style_name,
|
||||
marking_style_name,
|
||||
marking_styles,
|
||||
head_accessory_style_name,
|
||||
alt_head_name,
|
||||
eyes_red,
|
||||
eyes_green,
|
||||
eyes_blue,
|
||||
@@ -181,63 +186,68 @@
|
||||
r_hair = text2num(query.item[8])
|
||||
g_hair = text2num(query.item[9])
|
||||
b_hair = text2num(query.item[10])
|
||||
r_facial = text2num(query.item[11])
|
||||
g_facial = text2num(query.item[12])
|
||||
b_facial = text2num(query.item[13])
|
||||
s_tone = text2num(query.item[14])
|
||||
r_skin = text2num(query.item[15])
|
||||
g_skin = text2num(query.item[16])
|
||||
b_skin = text2num(query.item[17])
|
||||
r_markings = text2num(query.item[18])
|
||||
g_markings = text2num(query.item[19])
|
||||
b_markings = text2num(query.item[20])
|
||||
r_headacc = text2num(query.item[21])
|
||||
g_headacc = text2num(query.item[22])
|
||||
b_headacc = text2num(query.item[23])
|
||||
h_style = query.item[24]
|
||||
f_style = query.item[25]
|
||||
m_style = query.item[26]
|
||||
ha_style = query.item[27]
|
||||
r_eyes = text2num(query.item[28])
|
||||
g_eyes = text2num(query.item[29])
|
||||
b_eyes = text2num(query.item[30])
|
||||
underwear = query.item[31]
|
||||
undershirt = query.item[32]
|
||||
backbag = text2num(query.item[33])
|
||||
b_type = query.item[34]
|
||||
r_hair_sec = text2num(query.item[11])
|
||||
g_hair_sec = text2num(query.item[12])
|
||||
b_hair_sec = text2num(query.item[13])
|
||||
r_facial = text2num(query.item[14])
|
||||
g_facial = text2num(query.item[15])
|
||||
b_facial = text2num(query.item[16])
|
||||
r_facial_sec = text2num(query.item[17])
|
||||
g_facial_sec = text2num(query.item[18])
|
||||
b_facial_sec = text2num(query.item[19])
|
||||
s_tone = text2num(query.item[20])
|
||||
r_skin = text2num(query.item[21])
|
||||
g_skin = text2num(query.item[22])
|
||||
b_skin = text2num(query.item[23])
|
||||
m_colours = query.item[24]
|
||||
r_headacc = text2num(query.item[25])
|
||||
g_headacc = text2num(query.item[26])
|
||||
b_headacc = text2num(query.item[27])
|
||||
h_style = query.item[28]
|
||||
f_style = query.item[29]
|
||||
m_styles = query.item[30]
|
||||
ha_style = query.item[31]
|
||||
alt_head = query.item[32]
|
||||
r_eyes = text2num(query.item[33])
|
||||
g_eyes = text2num(query.item[34])
|
||||
b_eyes = text2num(query.item[35])
|
||||
underwear = query.item[36]
|
||||
undershirt = query.item[37]
|
||||
backbag = text2num(query.item[38])
|
||||
b_type = query.item[39]
|
||||
|
||||
|
||||
//Jobs
|
||||
alternate_option = text2num(query.item[35])
|
||||
job_support_high = text2num(query.item[36])
|
||||
job_support_med = text2num(query.item[37])
|
||||
job_support_low = text2num(query.item[38])
|
||||
job_medsci_high = text2num(query.item[39])
|
||||
job_medsci_med = text2num(query.item[40])
|
||||
job_medsci_low = text2num(query.item[41])
|
||||
job_engsec_high = text2num(query.item[42])
|
||||
job_engsec_med = text2num(query.item[43])
|
||||
job_engsec_low = text2num(query.item[44])
|
||||
job_karma_high = text2num(query.item[45])
|
||||
job_karma_med = text2num(query.item[46])
|
||||
job_karma_low = text2num(query.item[47])
|
||||
alternate_option = text2num(query.item[40])
|
||||
job_support_high = text2num(query.item[41])
|
||||
job_support_med = text2num(query.item[42])
|
||||
job_support_low = text2num(query.item[43])
|
||||
job_medsci_high = text2num(query.item[44])
|
||||
job_medsci_med = text2num(query.item[45])
|
||||
job_medsci_low = text2num(query.item[46])
|
||||
job_engsec_high = text2num(query.item[47])
|
||||
job_engsec_med = text2num(query.item[48])
|
||||
job_engsec_low = text2num(query.item[49])
|
||||
job_karma_high = text2num(query.item[50])
|
||||
job_karma_med = text2num(query.item[51])
|
||||
job_karma_low = text2num(query.item[52])
|
||||
|
||||
//Miscellaneous
|
||||
flavor_text = query.item[48]
|
||||
med_record = query.item[49]
|
||||
sec_record = query.item[50]
|
||||
gen_record = query.item[51]
|
||||
disabilities = text2num(query.item[52])
|
||||
player_alt_titles = params2list(query.item[53])
|
||||
organ_data = params2list(query.item[54])
|
||||
rlimb_data = params2list(query.item[55])
|
||||
nanotrasen_relation = query.item[56]
|
||||
speciesprefs = text2num(query.item[57])
|
||||
flavor_text = query.item[53]
|
||||
med_record = query.item[54]
|
||||
sec_record = query.item[55]
|
||||
gen_record = query.item[56]
|
||||
disabilities = text2num(query.item[57])
|
||||
player_alt_titles = params2list(query.item[58])
|
||||
organ_data = params2list(query.item[59])
|
||||
rlimb_data = params2list(query.item[60])
|
||||
nanotrasen_relation = query.item[61]
|
||||
speciesprefs = text2num(query.item[62])
|
||||
|
||||
//socks
|
||||
socks = query.item[58]
|
||||
body_accessory = query.item[59]
|
||||
gear = params2list(query.item[60])
|
||||
socks = query.item[63]
|
||||
body_accessory = query.item[64]
|
||||
gear = params2list(query.item[65])
|
||||
|
||||
//Sanitize
|
||||
metadata = sanitize_text(metadata, initial(metadata))
|
||||
@@ -253,23 +263,26 @@
|
||||
r_hair = sanitize_integer(r_hair, 0, 255, initial(r_hair))
|
||||
g_hair = sanitize_integer(g_hair, 0, 255, initial(g_hair))
|
||||
b_hair = sanitize_integer(b_hair, 0, 255, initial(b_hair))
|
||||
r_hair_sec = sanitize_integer(r_hair_sec, 0, 255, initial(r_hair_sec))
|
||||
g_hair_sec = sanitize_integer(g_hair_sec, 0, 255, initial(g_hair_sec))
|
||||
b_hair_sec = sanitize_integer(b_hair_sec, 0, 255, initial(b_hair_sec))
|
||||
r_facial = sanitize_integer(r_facial, 0, 255, initial(r_facial))
|
||||
g_facial = sanitize_integer(g_facial, 0, 255, initial(g_facial))
|
||||
b_facial = sanitize_integer(b_facial, 0, 255, initial(b_facial))
|
||||
r_facial_sec = sanitize_integer(r_facial_sec, 0, 255, initial(r_facial_sec))
|
||||
g_facial_sec = sanitize_integer(g_facial_sec, 0, 255, initial(g_facial_sec))
|
||||
b_facial_sec = sanitize_integer(b_facial_sec, 0, 255, initial(b_facial_sec))
|
||||
s_tone = sanitize_integer(s_tone, -185, 34, initial(s_tone))
|
||||
r_skin = sanitize_integer(r_skin, 0, 255, initial(r_skin))
|
||||
g_skin = sanitize_integer(g_skin, 0, 255, initial(g_skin))
|
||||
b_skin = sanitize_integer(b_skin, 0, 255, initial(b_skin))
|
||||
r_markings = sanitize_integer(r_markings, 0, 255, initial(r_markings))
|
||||
g_markings = sanitize_integer(g_markings, 0, 255, initial(g_markings))
|
||||
b_markings = sanitize_integer(b_markings, 0, 255, initial(b_markings))
|
||||
r_headacc = sanitize_integer(r_headacc, 0, 255, initial(r_headacc))
|
||||
g_headacc = sanitize_integer(g_headacc, 0, 255, initial(g_headacc))
|
||||
b_headacc = sanitize_integer(b_headacc, 0, 255, initial(b_headacc))
|
||||
h_style = sanitize_inlist(h_style, hair_styles_list, initial(h_style))
|
||||
f_style = sanitize_inlist(f_style, facial_hair_styles_list, initial(f_style))
|
||||
m_style = sanitize_inlist(m_style, marking_styles_list, initial(m_style))
|
||||
ha_style = sanitize_inlist(ha_style, head_accessory_styles_list, initial(ha_style))
|
||||
alt_head = sanitize_inlist(alt_head, alt_heads_list, initial(alt_head))
|
||||
r_eyes = sanitize_integer(r_eyes, 0, 255, initial(r_eyes))
|
||||
g_eyes = sanitize_integer(g_eyes, 0, 255, initial(g_eyes))
|
||||
b_eyes = sanitize_integer(b_eyes, 0, 255, initial(b_eyes))
|
||||
@@ -300,6 +313,8 @@
|
||||
if(!player_alt_titles) player_alt_titles = new()
|
||||
if(!organ_data) src.organ_data = list()
|
||||
if(!rlimb_data) src.rlimb_data = list()
|
||||
if(!m_colours) m_colours = initial(m_colours)
|
||||
if(!m_styles) m_styles = initial(m_styles)
|
||||
if(!gear) gear = list()
|
||||
|
||||
return 1
|
||||
@@ -332,23 +347,28 @@
|
||||
hair_red='[r_hair]',
|
||||
hair_green='[g_hair]',
|
||||
hair_blue='[b_hair]',
|
||||
secondary_hair_red='[r_hair_sec]',
|
||||
secondary_hair_green='[g_hair_sec]',
|
||||
secondary_hair_blue='[b_hair_sec]',
|
||||
facial_red='[r_facial]',
|
||||
facial_green='[g_facial]',
|
||||
facial_blue='[b_facial]',
|
||||
secondary_facial_red='[r_facial_sec]',
|
||||
secondary_facial_green='[g_facial_sec]',
|
||||
secondary_facial_blue='[b_facial_sec]',
|
||||
skin_tone='[s_tone]',
|
||||
skin_red='[r_skin]',
|
||||
skin_green='[g_skin]',
|
||||
skin_blue='[b_skin]',
|
||||
markings_red='[r_markings]',
|
||||
markings_green='[g_markings]',
|
||||
markings_blue='[b_markings]',
|
||||
marking_colours='[m_colours]',
|
||||
head_accessory_red='[r_headacc]',
|
||||
head_accessory_green='[g_headacc]',
|
||||
head_accessory_blue='[b_headacc]',
|
||||
hair_style_name='[sql_sanitize_text(h_style)]',
|
||||
facial_style_name='[sql_sanitize_text(f_style)]',
|
||||
marking_style_name='[sql_sanitize_text(m_style)]',
|
||||
marking_styles='[m_styles]',
|
||||
head_accessory_style_name='[sql_sanitize_text(ha_style)]',
|
||||
alt_head_name='[sql_sanitize_text(alt_head)]',
|
||||
eyes_red='[r_eyes]',
|
||||
eyes_green='[g_eyes]',
|
||||
eyes_blue='[b_eyes]',
|
||||
@@ -397,11 +417,13 @@
|
||||
INSERT INTO [format_table_name("characters")] (ckey, slot, OOC_Notes, real_name, name_is_always_random, gender,
|
||||
age, species, language,
|
||||
hair_red, hair_green, hair_blue,
|
||||
secondary_hair_red, secondary_hair_green, secondary_hair_blue,
|
||||
facial_red, facial_green, facial_blue,
|
||||
secondary_facial_red, secondary_facial_green, secondary_facial_blue,
|
||||
skin_tone, skin_red, skin_green, skin_blue,
|
||||
markings_red, markings_green, markings_blue,
|
||||
marking_colours,
|
||||
head_accessory_red, head_accessory_green, head_accessory_blue,
|
||||
hair_style_name, facial_style_name, marking_style_name, head_accessory_style_name,
|
||||
hair_style_name, facial_style_name, marking_styles, head_accessory_style_name, alt_head_name,
|
||||
eyes_red, eyes_green, eyes_blue,
|
||||
underwear, undershirt,
|
||||
backbag, b_type, alternate_option,
|
||||
@@ -418,11 +440,13 @@
|
||||
('[C.ckey]', '[default_slot]', '[sql_sanitize_text(metadata)]', '[sql_sanitize_text(real_name)]', '[be_random_name]','[gender]',
|
||||
'[age]', '[sql_sanitize_text(species)]', '[sql_sanitize_text(language)]',
|
||||
'[r_hair]', '[g_hair]', '[b_hair]',
|
||||
'[r_hair_sec]', '[g_hair_sec]', '[b_hair_sec]',
|
||||
'[r_facial]', '[g_facial]', '[b_facial]',
|
||||
'[r_facial_sec]', '[g_facial_sec]', '[b_facial_sec]',
|
||||
'[s_tone]', '[r_skin]', '[g_skin]', '[b_skin]',
|
||||
'[r_markings]', '[g_markings]', '[b_markings]',
|
||||
'[m_colours]',
|
||||
'[r_headacc]', '[g_headacc]', '[b_headacc]',
|
||||
'[sql_sanitize_text(h_style)]', '[sql_sanitize_text(f_style)]', '[sql_sanitize_text(m_style)]', '[sql_sanitize_text(ha_style)]',
|
||||
'[sql_sanitize_text(h_style)]', '[sql_sanitize_text(f_style)]', '[m_styles]', '[sql_sanitize_text(ha_style)]', '[sql_sanitize_text(alt_head)]',
|
||||
'[r_eyes]', '[g_eyes]', '[b_eyes]',
|
||||
'[underwear]', '[undershirt]',
|
||||
'[backbag]', '[b_type]', '[alternate_option]',
|
||||
|
||||
Reference in New Issue
Block a user