Merge branch 'master' of https://github.com/Yawn-Wider/YWPolarisVore into July2020UpstreamPull

This commit is contained in:
Razgriz
2020-07-12 16:14:45 -07:00
1029 changed files with 311473 additions and 232993 deletions
@@ -35,7 +35,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
S["be_special"] << pref.be_special
/datum/category_item/player_setup_item/antagonism/candidacy/sanitize_character()
pref.be_special = sanitize_integer(pref.be_special, 0, 65535, initial(pref.be_special))
pref.be_special = sanitize_integer(pref.be_special, 0, 16777215, initial(pref.be_special)) //VOREStation Edit - 24 bits of support
/datum/category_item/player_setup_item/antagonism/candidacy/content(var/mob/user)
if(jobban_isbanned(user, "Syndicate"))
@@ -37,7 +37,6 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
S["synth_green"] >> pref.g_synth
S["synth_blue"] >> pref.b_synth
S["synth_markings"] >> pref.synth_markings
pref.preview_icon = null
S["bgstate"] >> pref.bgstate
S["body_descriptors"] >> pref.body_descriptors
S["Wingdings"] >> pref.wingdings //YWadd start
@@ -213,9 +212,6 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
/datum/category_item/player_setup_item/general/body/content(var/mob/user)
. = list()
if(!pref.preview_icon)
pref.update_preview_icon()
user << browse_rsc(pref.preview_icon, "previewicon.png")
var/datum/species/mob_species = GLOB.all_species[pref.species]
. += "<table><tr style='vertical-align:top'><td><b>Body</b> "
@@ -338,7 +334,6 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
. += "</table><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];cycle_bg=1'>Cycle background</a>"
. += "<br><a href='?src=\ref[src];toggle_preview_value=[EQUIP_PREVIEW_LOADOUT]'>[pref.equip_preview_mob & EQUIP_PREVIEW_LOADOUT ? "Hide loadout" : "Show loadout"]</a>"
. += "<br><a href='?src=\ref[src];toggle_preview_value=[EQUIP_PREVIEW_JOB]'>[pref.equip_preview_mob & EQUIP_PREVIEW_JOB ? "Hide job gear" : "Show job gear"]</a>"
@@ -346,33 +341,33 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
. += "<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>"
. += "<a href='?src=\ref[src];hair_color=1'>Change Color</a> [color_square(pref.r_hair, pref.g_hair, pref.b_hair)] "
. += " Style: <a href='?src=\ref[src];hair_style_left=[pref.h_style]'><</a> <a href='?src=\ref[src];hair_style_right=[pref.h_style]''>></a> <a href='?src=\ref[src];hair_style=1'>[pref.h_style]</a><br>" //The <</a> & ></a> in this line is correct-- those extra characters are the arrows you click to switch between styles.
. += "<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>"
. += "<a href='?src=\ref[src];facial_color=1'>Change Color</a> [color_square(pref.r_facial, pref.g_facial, pref.b_facial)] "
. += " Style: <a href='?src=\ref[src];facial_style_left=[pref.f_style]'><</a> <a href='?src=\ref[src];facial_style_right=[pref.f_style]''>></a> <a href='?src=\ref[src];facial_style=1'>[pref.f_style]</a><br>" //Same as above with the extra > & < characters
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>"
. += "<a href='?src=\ref[src];eye_color=1'>Change Color</a> [color_square(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>"
. += "<a href='?src=\ref[src];skin_color=1'>Change Color</a> [color_square(pref.r_skin, pref.g_skin, pref.b_skin)]<br>"
. += "<br><a href='?src=\ref[src];marking_style=1'>Body Markings +</a><br>"
. += "<table>"
for(var/M in pref.body_markings)
. += "[M] [pref.body_markings.len > 1 ? "<a href='?src=\ref[src];marking_up=[M]'>&#708;</a> <a href='?src=\ref[src];marking_down=[M]'>&#709;</a> " : ""]<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>"
. += "<tr><td>[M]</td><td>[pref.body_markings.len > 1 ? "<a href='?src=\ref[src];marking_up=[M]'>&#708;</a> <a href='?src=\ref[src];marking_down=[M]'>&#709;</a> <a href='?src=\ref[src];marking_move=[M]'>mv</a> " : ""]<a href='?src=\ref[src];marking_remove=[M]'>-</a> <a href='?src=\ref[src];marking_color=[M]'>Color</a>[color_square(hex = pref.body_markings[M])]</td></tr>"
. += "</table>"
. += "<br>"
. += "<b>Allow Synth markings:</b> <a href='?src=\ref[src];synth_markings=1'><b>[pref.synth_markings ? "Yes" : "No"]</b></a><br>"
. += "<b>Allow Synth color:</b> <a href='?src=\ref[src];synth_color=1'><b>[pref.synth_color ? "Yes" : "No"]</b></a><br>"
if(pref.synth_color)
. += "<a href='?src=\ref[src];synth2_color=1'>Change Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_synth, 2)][num2hex(pref.g_synth, 2)][num2hex(pref.b_synth, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_synth, 2)][num2hex(pref.g_synth, 2)][num2hex(pref.b_synth, 2)]'><tr><td>__</td></tr></table></font> "
. += "<a href='?src=\ref[src];synth2_color=1'>Change Color</a> [color_square(pref.r_synth, pref.g_synth, pref.b_synth)]"
. = jointext(.,null)
@@ -436,16 +431,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
pref.set_biological_gender(mob_species.genders[1])
pref.custom_species = null //VOREStation Edit - This is cleared on species changes
//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.biological_gender == MALE && S.gender == FEMALE)
continue
if(pref.biological_gender == FEMALE && S.gender == MALE)
continue
if(!(pref.species in S.species_allowed))
continue
valid_hairstyles[hairstyle] = hair_styles_list[hairstyle]
var/list/valid_hairstyles = pref.get_valid_hairstyles()
if(valid_hairstyles.len)
pref.h_style = pick(valid_hairstyles)
@@ -454,17 +440,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
pref.h_style = hair_styles_list["Bald"]
//grab one of the valid facial hair styles for the newly chosen species
var/list/valid_facialhairstyles = list()
for(var/facialhairstyle in facial_hair_styles_list)
var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle]
if(pref.biological_gender == MALE && S.gender == FEMALE)
continue
if(pref.biological_gender == FEMALE && S.gender == MALE)
continue
if(!(pref.species in S.species_allowed))
continue
valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle]
var/list/valid_facialhairstyles = pref.get_valid_facialhairstyles()
if(valid_facialhairstyles.len)
pref.f_style = pick(valid_facialhairstyles)
@@ -498,21 +474,35 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["hair_style"])
var/list/valid_hairstyles = list()
for(var/hairstyle in hair_styles_list)
var/datum/sprite_accessory/S = hair_styles_list[hairstyle]
if(!(pref.species in S.species_allowed) && (!pref.custom_base || !(pref.custom_base in S.species_allowed))) //VOREStation Edit - Custom species base species allowance
continue
if((!S.ckeys_allowed) || (usr.ckey in S.ckeys_allowed)) //VOREStation Edit, allows ckey locked hairstyles.
valid_hairstyles[S.name] = hairstyle //VOREStation Edit, allows ckey locked hairstyles.
//valid_hairstyles[hairstyle] = hair_styles_list[hairstyle] //VOREStation Edit. Replaced by above.
var/list/valid_hairstyles = pref.get_valid_hairstyles()
var/new_h_style = input(user, "Choose your character's hair style:", "Character Preference", pref.h_style) as null|anything in valid_hairstyles
if(new_h_style && CanUseTopic(user))
pref.h_style = new_h_style
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["hair_style_left"])
var/H = href_list["hair_style_left"]
var/list/valid_hairstyles = pref.get_valid_hairstyles()
var/start = valid_hairstyles.Find(H)
if(start != 1) //If we're not the beginning of the list, become the previous element.
pref.h_style = valid_hairstyles[start-1]
else //But if we ARE, become the final element.
pref.h_style = valid_hairstyles[valid_hairstyles.len]
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["hair_style_right"])
var/H = href_list["hair_style_right"]
var/list/valid_hairstyles = pref.get_valid_hairstyles()
var/start = valid_hairstyles.Find(H)
if(start != valid_hairstyles.len) //If we're not the end of the list, become the next element.
pref.h_style = valid_hairstyles[start+1]
else //But if we ARE, become the first element.
pref.h_style = valid_hairstyles[1]
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["facial_color"])
if(!has_flag(mob_species, HAS_HAIR_COLOR))
return TOPIC_NOACTION
@@ -552,23 +542,35 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["facial_style"])
var/list/valid_facialhairstyles = list()
for(var/facialhairstyle in facial_hair_styles_list)
var/datum/sprite_accessory/S = facial_hair_styles_list[facialhairstyle]
if(pref.biological_gender == MALE && S.gender == FEMALE)
continue
if(pref.biological_gender == FEMALE && S.gender == MALE)
continue
if(!(pref.species in S.species_allowed) && (!pref.custom_base || !(pref.custom_base in S.species_allowed))) //VOREStation Edit - Custom species base species allowance
continue
valid_facialhairstyles[facialhairstyle] = facial_hair_styles_list[facialhairstyle]
var/list/valid_facialhairstyles = pref.get_valid_facialhairstyles()
var/new_f_style = input(user, "Choose your character's facial-hair style:", "Character Preference", pref.f_style) as null|anything in valid_facialhairstyles
if(new_f_style && has_flag(mob_species, HAS_HAIR_COLOR) && CanUseTopic(user))
pref.f_style = new_f_style
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["facial_style_left"])
var/F = href_list["facial_style_left"]
var/list/valid_facialhairstyles = pref.get_valid_facialhairstyles()
var/start = valid_facialhairstyles.Find(F)
if(start != 1) //If we're not the beginning of the list, become the previous element.
pref.f_style = valid_facialhairstyles[start-1]
else //But if we ARE, become the final element.
pref.f_style = valid_facialhairstyles[valid_facialhairstyles.len]
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["facial_style_right"])
var/F = href_list["facial_style_right"]
var/list/valid_facialhairstyles = pref.get_valid_facialhairstyles()
var/start = valid_facialhairstyles.Find(F)
if(start != valid_facialhairstyles.len) //If we're not the end of the list, become the next element.
pref.f_style = valid_facialhairstyles[start+1]
else //But if we ARE, become the first element.
pref.f_style = valid_facialhairstyles[1]
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["marking_style"])
var/list/usable_markings = pref.body_markings.Copy() ^ body_marking_styles_list.Copy()
/* VOREStation Removal - No markings whitelist, let people mix/match
@@ -602,6 +604,19 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
moveElement(pref.body_markings, start, 1)
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["marking_move"])
var/M = href_list["marking_move"]
var/start = pref.body_markings.Find(M)
var/list/move_locs = pref.body_markings - M
if(start != 1)
move_locs -= pref.body_markings[start-1]
var/inject_after = input(user, "Move [M] ahead of...", "Character Preference") as null|anything in move_locs //Move ahead of any marking that isn't the current or previous one.
var/newpos = pref.body_markings.Find(inject_after)
if(newpos)
moveElement(pref.body_markings, start, newpos+1)
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["marking_remove"])
var/M = href_list["marking_remove"]
pref.body_markings -= M
@@ -42,7 +42,7 @@
pref.backbag = 1 //Same as above
character.backbag = pref.backbag
if(pref.pdachoice > 5 || pref.pdachoice < 1)
if(pref.pdachoice > 6 || pref.pdachoice < 1)
pref.pdachoice = 1
character.pdachoice = pref.pdachoice
@@ -29,7 +29,7 @@
/datum/category_item/player_setup_item/player_global/ui/content(var/mob/user)
. = "<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> <table style='display:inline;' bgcolor='[pref.UI_style_color]'><tr><td>__</td></tr></table> <a href='?src=\ref[src];reset=ui'>reset</a><br>"
. += "-Color: <a href='?src=\ref[src];select_color=1'><b>[pref.UI_style_color]</b></a> [color_square(hex = pref.UI_style_color)] <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> <a href='?src=\ref[src];reset=alpha'>reset</a><br>"
. += "<b>Tooltip Style:</b> <a href='?src=\ref[src];select_tooltip_style=1'><b>[pref.tooltipstyle]</b></a><br>"
. += "<b>Client FPS:</b> <a href='?src=\ref[src];select_client_fps=1'><b>[pref.client_fps]</b></a><br>"
@@ -38,7 +38,7 @@
if(pref.ooccolor == initial(pref.ooccolor))
. += "<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> <a href='?src=\ref[src];reset=ooc'>reset</a><br>"
. += "<a href='?src=\ref[src];select_ooc_color=1'><b>[pref.ooccolor]</b></a> [color_square(hex = pref.ooccolor)] <a href='?src=\ref[src];reset=ooc'>reset</a><br>"
/datum/category_item/player_setup_item/player_global/ui/OnTopic(var/href,var/list/href_list, var/mob/user)
if(href_list["select_style"])
@@ -75,7 +75,7 @@
character_name = list("Aronai Sieyes")
/datum/gear/fluff/aronai_ccmedjacket
path = /obj/item/clothing/suit/storage/service/sifguard/medical/command
path = /obj/item/clothing/suit/storage/solgov/service/sifguard/medical/command
display_name = "centcom medical jacket"
description = "A medical jacket straight from Central Command."
slot = slot_wear_suit
@@ -661,6 +661,12 @@
ckeywhitelist = list("nickcrazy")
character_name = list("Damon Bones Xrim")
/datum/gear/fluff/NDF_Medical_jacket
path = /obj/item/clothing/under/solgov/utility/sifguard/medical
display_name = "Ridge's Medical Jacket"
ckeywhitelist = list("nickcrazy")
character_name = list("Ridge")
/datum/gear/fluff/damon_jacket
path = /obj/item/clothing/suit/storage/toggle/bomber/bombersec
display_name = "Damon's Bomber Jacket"
@@ -1115,6 +1121,19 @@
ckeywhitelist = list("xonkon")
character_name = list("Ali")
/datum/gear/fluff/zena_suit
path = /obj/item/clothing/suit/space/void/engineering/zena
display_name = "Zena's Shroud Suit"
ckeywhitelist = list("xonkon")
character_name = list("Zena Aviv")
/datum/gear/fluff/zena_helmet
path = /obj/item/clothing/head/helmet/space/void/engineering/zena
display_name = "Zena's Shroud Helmet"
ckeywhitelist = list("xonkon")
character_name = list("Zena Aviv")
// Y CKEYS
// Z CKEYS
@@ -1135,4 +1154,4 @@
path = /obj/item/device/radio/headset/fluff/zodiacshadow
display_name = "Nehi's Radio"
ckeywhitelist = list("zodiacshadow")
character_name = list("Nehi Maximus")
character_name = list("Nehi Maximus")
@@ -284,7 +284,14 @@
ckeywhitelist = list("dawidoe")
character_name = list("Melissa Krutz")
allowed_roles = list("Security Officer")
//Dopiotl
//Jeanne Petite
/datum/gear/fluff/jeans_chocolates
path = /obj/item/weapon/storage/secure/briefcase/fluff/jeans
display_name = "ChocoBox"
description = "M-M-M-M-MONEY SHOT"
ckeywhitelist = list("dopiotl")
character_name = list("Jeanne Petite")
//dwaggy90
//Saur Darastrix
/datum/gear/fluff/saur_rig
@@ -2,7 +2,7 @@
/datum/gear/gloves
display_name = "gloves, black"
path = /obj/item/clothing/gloves/black
cost = 2
cost = 1
slot = slot_gloves
sort_category = "Gloves and Handwear"
@@ -29,10 +29,12 @@
/datum/gear/gloves/latex
display_name = "gloves, latex"
path = /obj/item/clothing/gloves/sterile/latex
cost = 2
/datum/gear/gloves/nitrile
display_name = "gloves, nitrile"
path = /obj/item/clothing/gloves/sterile/nitrile
cost = 2
/datum/gear/gloves/orange
display_name = "gloves, orange"
@@ -125,17 +125,9 @@
display_name = "cap, bill"
path = /obj/item/clothing/head/soft/mbill
/*/datum/gear/head/cap/sol
/datum/gear/head/cap/sol
display_name = "cap, sol"
path = /obj/item/clothing/head/soft/sol
/datum/gear/head/cap/expdition
display_name = "cap, expedition"
path = /obj/item/clothing/head/soft/sol/expedition
/datum/gear/head/cap/fleet
display_name = "cap, fleet"
path = /obj/item/clothing/head/soft/sol/fleet*/ // Vorestation removal
path = /obj/item/clothing/head/soft/solgov
/datum/gear/head/cowboy
display_name = "cowboy, rodeo"
@@ -337,17 +329,17 @@
display_name = "welding, engie (engineering/robotics)"
path = /obj/item/clothing/head/welding/engie
/*/datum/gear/head/beret/sol
/datum/gear/head/beret/solgov
display_name = "beret sol, selection"
path = /obj/item/clothing/head/beret/sol
path = /obj/item/clothing/head/beret/solgov
/datum/gear/head/beret/sol/New()
/datum/gear/head/beret/solgov/New()
..()
var/list/sols = list()
for(var/sol_style in typesof(/obj/item/clothing/head/beret/sol))
var/obj/item/clothing/head/beret/sol/sol = sol_style
for(var/sol_style in typesof(/obj/item/clothing/head/beret/solgov))
var/obj/item/clothing/head/beret/solgov/sol = sol_style
sols[initial(sol.name)] = sol
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(sols))*/ // Vorestation removal.
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(sols))
/datum/gear/head/surgery
display_name = "surgical cap selection"
@@ -50,3 +50,20 @@
display_name = "sleek modern coat (long), detective"
path = /obj/item/clothing/suit/storage/det_trench/alt2
allowed_roles = list("Head of Security", "Detective")
//Emergency Responder jackets for Parameds & EMTs, but also general Medical Staff
/datum/gear/suit/roles/medical/ems_jacket
display_name = "first responder jacket"
path = /obj/item/clothing/suit/storage/toggle/fr_jacket
allowed_roles = list("Chief Medical Officer","Paramedic","Medical Doctor")
//imo-superior 'martian' style jacket with the star-of-life design
/datum/gear/suit/roles/medical/ems_jacket/alt
display_name = "first responder jacket, alt."
path = /obj/item/clothing/suit/storage/toggle/fr_jacket/ems
//paramedic vest
/datum/gear/suit/roles/medical/paramedic_vest
display_name = "paramedic vest"
path = /obj/item/clothing/suit/storage/toggle/paramedic
allowed_roles = list("Chief Medical Officer","Paramedic","Medical Doctor")
@@ -393,3 +393,23 @@
/datum/gear/suit/labcoat_tesh/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
/datum/gear/suit/teshcoat
display_name = "small black coat, recolorable stripes (Teshari)"
path = /obj/item/clothing/suit/storage/toggle/tesharicoat
whitelisted = SPECIES_TESHARI
sort_category = "Xenowear"
/datum/gear/suit/teshcoat/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
/datum/gear/suit/teshcoatwhite
display_name = "smallcoat, recolorable (Teshari)"
path = /obj/item/clothing/suit/storage/toggle/tesharicoatwhite
whitelisted = SPECIES_TESHARI
sort_category = "Xenowear"
/datum/gear/suit/teshcoatwhite/New()
..()
gear_tweaks = list(gear_tweak_free_color_choice)
@@ -18,3 +18,18 @@
whitelisted = SPECIES_ZADDAT
allowed_roles = list("Chief Engineer", "Atmospheric Technician", "Station Engineer")
//Added from CHOMP
/datum/gear/suit/hood
display_name = "hooded cloak selection (Teshari)"
path = /obj/item/clothing/suit/storage/seromi/cloak/standard
whitelisted = SPECIES_TESHARI
sort_category = "Xenowear"
/datum/gear/suit/hood/New()
..()
var/list/cloaks = list()
for(var/cloak in typesof(/obj/item/clothing/suit/storage/hooded/teshari/standard))
var/obj/item/clothing/suit/storage/seromi/cloak/cloak_type = cloak
cloaks[initial(cloak_type.name)] = cloak_type
gear_tweaks += new/datum/gear_tweak/path(sortAssoc(cloaks))
@@ -232,7 +232,7 @@
. = OnTopic(href, href_list, usr)
if(. & TOPIC_UPDATE_PREVIEW)
pref_mob.client.prefs.preview_icon = null
pref_mob.client.prefs.update_preview_icon()
if(. & TOPIC_REFRESH)
pref_mob.client.prefs.ShowChoices(usr)
@@ -298,4 +298,8 @@
return 220
if(PREF_FBP_SOFTWARE)
return 150
return S.max_age // welp
return S.max_age // welp
/datum/category_item/player_setup_item/proc/color_square(red, green, blue, hex)
var/color = hex ? hex : "#[num2hex(red, 2)][num2hex(green, 2)][num2hex(blue, 2)]"
return "<span style='font-face: fixedsys; font-size: 14px; background-color: [color]; color: [color]'>___</span>"
@@ -27,7 +27,6 @@
var/r_wing2 = 30 // Wing extra color
var/g_wing2 = 30 // Wing extra color
var/b_wing2 = 30 // Wing extra color
var/dress_mob = TRUE
// Definition of the stuff for Ears
/datum/category_item/player_setup_item/vore/ears
@@ -143,14 +142,6 @@
/datum/category_item/player_setup_item/vore/ears/content(var/mob/user)
. += "<h2>VORE Station Settings</h2>"
if(!pref.preview_icon)
pref.update_preview_icon()
user << browse_rsc(pref.preview_icon, "previewicon.png")
. += "<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><br>"
var/ear_display = "Normal"
if(pref.ear_style && (pref.ear_style in ear_styles_list))
var/datum/sprite_accessory/ears/instance = ear_styles_list[pref.ear_style]
@@ -163,9 +154,9 @@
if(ear_styles_list[pref.ear_style])
var/datum/sprite_accessory/ears/ear = ear_styles_list[pref.ear_style]
if (ear.do_colouration)
. += "<a href='?src=\ref[src];ear_color=1'>Change Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_ears, 2)][num2hex(pref.g_ears, 2)][num2hex(pref.b_ears, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_ears, 2)][num2hex(pref.g_ears, 2)][num2hex(pref.b_ears, 2)]'><tr><td>__</td></tr></table> </font><br>"
. += "<a href='?src=\ref[src];ear_color=1'>Change Color</a> [color_square(pref.r_ears, pref.g_ears, pref.b_ears)]<br>"
if (ear.extra_overlay)
. += "<a href='?src=\ref[src];ear_color2=1'>Change Secondary Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_ears2, 2)][num2hex(pref.g_ears2, 2)][num2hex(pref.b_ears2, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_ears2, 2)][num2hex(pref.g_ears2, 2)][num2hex(pref.b_ears2, 2)]'><tr><td>__</td></tr></table> </font><br>"
. += "<a href='?src=\ref[src];ear_color2=1'>Change Secondary Color</a> [color_square(pref.r_ears2, pref.g_ears2, pref.b_ears2)]<br>"
var/tail_display = "Normal"
if(pref.tail_style && (pref.tail_style in tail_styles_list))
@@ -179,9 +170,9 @@
if(tail_styles_list[pref.tail_style])
var/datum/sprite_accessory/tail/T = tail_styles_list[pref.tail_style]
if (T.do_colouration)
. += "<a href='?src=\ref[src];tail_color=1'>Change Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_tail, 2)][num2hex(pref.g_tail, 2)][num2hex(pref.b_tail, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_tail, 2)][num2hex(pref.g_tail, 2)][num2hex(pref.b_tail, 2)]'><tr><td>__</td></tr></table> </font><br>"
. += "<a href='?src=\ref[src];tail_color=1'>Change Color</a> [color_square(pref.r_tail, pref.g_tail, pref.b_tail)]<br>"
if (T.extra_overlay)
. += "<a href='?src=\ref[src];tail_color2=1'>Change Secondary Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_tail2, 2)][num2hex(pref.g_tail2, 2)][num2hex(pref.b_tail2, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_tail2, 2)][num2hex(pref.g_tail2, 2)][num2hex(pref.b_tail2, 2)]'><tr><td>__</td></tr></table> </font><br>"
. += "<a href='?src=\ref[src];tail_color2=1'>Change Secondary Color</a> [color_square(pref.r_tail2, pref.g_tail2, pref.b_tail2)]<br>"
var/wing_display = "Normal"
if(pref.wing_style && (pref.wing_style in wing_styles_list))
@@ -195,9 +186,9 @@
if(wing_styles_list[pref.wing_style])
var/datum/sprite_accessory/wing/W = wing_styles_list[pref.wing_style]
if (W.do_colouration)
. += "<a href='?src=\ref[src];wing_color=1'>Change Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_wing, 2)][num2hex(pref.g_wing, 2)][num2hex(pref.b_wing, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_wing, 2)][num2hex(pref.g_wing, 2)][num2hex(pref.b_wing, 2)]'><tr><td>__</td></tr></table> </font><br>"
. += "<a href='?src=\ref[src];wing_color=1'>Change Color</a> [color_square(pref.r_wing, pref.g_wing, pref.b_wing)]<br>"
if (W.extra_overlay)
. += "<a href='?src=\ref[src];wing_color2=1'>Change Secondary Color</a> <font face='fixedsys' size='3' color='#[num2hex(pref.r_wing2, 2)][num2hex(pref.g_wing2, 2)][num2hex(pref.b_wing2, 2)]'><table style='display:inline;' bgcolor='#[num2hex(pref.r_wing2, 2)][num2hex(pref.g_wing2, 2)][num2hex(pref.b_wing2, 2)]'><tr><td>__</td></tr></table> </font><br>"
. += "<a href='?src=\ref[src];wing_color2=1'>Change Secondary Color</a> [color_square(pref.r_wing2, pref.g_wing2, pref.b_wing2)]<br>"
/datum/category_item/player_setup_item/vore/ears/OnTopic(var/href,var/list/href_list, var/mob/user)
if(!CanUseTopic(user))
@@ -302,8 +293,4 @@
pref.b_wing2 = hex2num(copytext(new_wingc2, 6, 8))
return TOPIC_REFRESH_UPDATE_PREVIEW
else if(href_list["toggle_clothing"])
pref.dress_mob = !pref.dress_mob
return TOPIC_REFRESH_UPDATE_PREVIEW
return ..()