mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 12:41:09 +01:00
Underwear color (#45630)
About The Pull Request
Changes our current underwear selection to greyscale so you can color them any way you like, just like hair.
Removed duplicate underwear types that only served as a few color options(female_yellow, male_blue, ect.) Underwear with designs are unaffected(female_uk, male_commie, ect.)
Added a new option in dressers to change underwear color.
Changed some underwear names to fit the new option(female_red is now female_lace, ect.)
A9hAqkxgin
If all is well i plan on adding this to undershirts and socks too.
also HUGE thank you to nonfictiongames for the help!!!!
Why It's Good For The Game
More character customization in roleplaying game GOOD
Changelog
cl
add: Underwear can now have any color. (Your character will most likely be nude now so check your prefs!!)
add: Underwear color option in dressers
tweak: changed some underwear names
imagedel: deleted duplicate underwear
/cl
This commit is contained in:
@@ -32,7 +32,7 @@
|
||||
to_chat(user, "<span class='warning'>You are not capable of wearing underwear.</span>")
|
||||
return
|
||||
|
||||
var/choice = input(user, "Underwear, Undershirt, or Socks?", "Changing") as null|anything in list("Underwear","Undershirt","Socks")
|
||||
var/choice = input(user, "Underwear, Undershirt, or Socks?", "Changing") as null|anything in list("Underwear","Underwear Color","Undershirt","Socks")
|
||||
|
||||
if(!Adjacent(user))
|
||||
return
|
||||
@@ -41,7 +41,10 @@
|
||||
var/new_undies = input(user, "Select your underwear", "Changing") as null|anything in GLOB.underwear_list
|
||||
if(new_undies)
|
||||
H.underwear = new_undies
|
||||
|
||||
if("Underwear Color")
|
||||
var/new_underwear_color = input(H, "Choose your underwear color", "Underwear Color","#"+H.underwear_color) as color|null
|
||||
if(new_underwear_color)
|
||||
H.underwear_color = sanitize_hexcolor(new_underwear_color)
|
||||
if("Undershirt")
|
||||
var/new_undershirt = input(user, "Select your undershirt", "Changing") as null|anything in GLOB.undershirt_list
|
||||
if(new_undershirt)
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
H.real_name = random_unique_name(H.gender)
|
||||
H.name = H.real_name
|
||||
H.underwear = random_underwear(H.gender)
|
||||
H.underwear_color = random_short_color()
|
||||
H.skin_tone = random_skin_tone()
|
||||
H.hair_style = random_hair_style(H.gender)
|
||||
H.facial_hair_style = random_facial_hair_style(H.gender)
|
||||
@@ -36,4 +37,4 @@
|
||||
|
||||
H.update_body()
|
||||
H.update_hair()
|
||||
H.update_body_parts()
|
||||
H.update_body_parts()
|
||||
|
||||
@@ -55,6 +55,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
var/gender = MALE //gender of character (well duh)
|
||||
var/age = 30 //age of character
|
||||
var/underwear = "Nude" //underwear type
|
||||
var/underwear_color = "000" //underwear color
|
||||
var/undershirt = "Nude" //undershirt type
|
||||
var/socks = "Nude" //socks type
|
||||
var/backbag = DBACKPACK //backpack type
|
||||
@@ -229,6 +230,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
dat += "<a href='?_src_=prefs;preference=rand_species'>Always Random Species: [be_random_species ? "Yes" : "No"]</A><br>"
|
||||
|
||||
dat += "<b>Underwear:</b><BR><a href ='?_src_=prefs;preference=underwear;task=input'>[underwear]</a><BR>"
|
||||
dat += "<b>Underwear Color:</b><BR><span style='border: 1px solid #161616; background-color: #[underwear_color];'> </span> <a href='?_src_=prefs;preference=underwear_color;task=input'>Change</a><BR>"
|
||||
dat += "<b>Undershirt:</b><BR><a href ='?_src_=prefs;preference=undershirt;task=input'>[undershirt]</a><BR>"
|
||||
dat += "<b>Socks:</b><BR><a href ='?_src_=prefs;preference=socks;task=input'>[socks]</a><BR>"
|
||||
dat += "<b>Backpack:</b><BR><a href ='?_src_=prefs;preference=bag;task=input'>[backbag]</a><BR>"
|
||||
@@ -1023,6 +1025,8 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
facial_hair_style = random_facial_hair_style(gender)
|
||||
if("underwear")
|
||||
underwear = random_underwear(gender)
|
||||
if("underwear_color")
|
||||
underwear_color = random_short_color()
|
||||
if("undershirt")
|
||||
undershirt = random_undershirt(gender)
|
||||
if("socks")
|
||||
@@ -1165,6 +1169,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
if(new_underwear)
|
||||
underwear = new_underwear
|
||||
|
||||
if("underwear_color")
|
||||
var/new_underwear_color = input(user, "Choose your character's underwear color:", "Character Preference","#"+underwear_color) as color|null
|
||||
if(new_underwear_color)
|
||||
underwear_color = sanitize_hexcolor(new_underwear_color)
|
||||
|
||||
if("undershirt")
|
||||
var/new_undershirt
|
||||
if(gender == MALE)
|
||||
@@ -1560,6 +1569,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
||||
character.hair_style = hair_style
|
||||
character.facial_hair_style = facial_hair_style
|
||||
character.underwear = underwear
|
||||
character.underwear_color = underwear_color
|
||||
character.undershirt = undershirt
|
||||
character.socks = socks
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
// You do not need to raise this if you are adding new values that have sane defaults.
|
||||
// Only raise this value when changing the meaning/format/name/layout of an existing value
|
||||
// where you would want the updater procs below to run
|
||||
#define SAVEFILE_VERSION_MAX 23
|
||||
#define SAVEFILE_VERSION_MAX 24
|
||||
|
||||
/*
|
||||
SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn
|
||||
@@ -109,6 +109,9 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
all_quirks -= "Physically Obstructive"
|
||||
all_quirks -= "Neat"
|
||||
all_quirks -= "NEET"
|
||||
if(current_version < 24)
|
||||
if (!(underwear in GLOB.underwear_list))
|
||||
underwear = "Nude"
|
||||
|
||||
/datum/preferences/proc/load_path(ckey,filename="preferences.sav")
|
||||
if(!ckey)
|
||||
@@ -293,6 +296,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["hair_style_name"] >> hair_style
|
||||
S["facial_style_name"] >> facial_hair_style
|
||||
S["underwear"] >> underwear
|
||||
S["underwear_color"] >> underwear_color
|
||||
S["undershirt"] >> undershirt
|
||||
S["socks"] >> socks
|
||||
S["backbag"] >> backbag
|
||||
@@ -380,6 +384,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age))
|
||||
hair_color = sanitize_hexcolor(hair_color, 3, 0)
|
||||
facial_hair_color = sanitize_hexcolor(facial_hair_color, 3, 0)
|
||||
underwear_color = sanitize_hexcolor(underwear_color, 3, 0)
|
||||
eye_color = sanitize_hexcolor(eye_color, 3, 0)
|
||||
skin_tone = sanitize_inlist(skin_tone, GLOB.skin_tones)
|
||||
backbag = sanitize_inlist(backbag, GLOB.backbaglist, initial(backbag))
|
||||
@@ -433,6 +438,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
WRITE_FILE(S["hair_style_name"] , hair_style)
|
||||
WRITE_FILE(S["facial_style_name"] , facial_hair_style)
|
||||
WRITE_FILE(S["underwear"] , underwear)
|
||||
WRITE_FILE(S["underwear_color"] , underwear_color)
|
||||
WRITE_FILE(S["undershirt"] , undershirt)
|
||||
WRITE_FILE(S["socks"] , socks)
|
||||
WRITE_FILE(S["backbag"] , backbag)
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
else
|
||||
gender = pick(MALE,FEMALE)
|
||||
underwear = random_underwear(gender)
|
||||
underwear_color = random_short_color()
|
||||
undershirt = random_undershirt(gender)
|
||||
socks = random_socks()
|
||||
skin_tone = random_skin_tone()
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
var/name //the preview name of the accessory
|
||||
var/gender = NEUTER //Determines if the accessory will be skipped or included in random hair generations
|
||||
var/gender_specific //Something that can be worn by either gender, but looks different on each
|
||||
var/use_static //determines if the accessory will be skipped by color preferences
|
||||
var/color_src = MUTCOLORS //Currently only used by mutantparts so don't worry about hair and stuff. This is the source that this accessory will get its color from. Default is MUTCOLOR, but can also be HAIR, FACEHAIR, EYECOLOR and 0 if none.
|
||||
var/hasinner //Decides if this sprite has an "inner" part, such as the fleshy parts on ears.
|
||||
var/locked = FALSE //Is this part locked from roundstart selection? Used for parts that apply effects
|
||||
@@ -944,62 +945,26 @@
|
||||
///////////////////////////
|
||||
// Underwear Definitions //
|
||||
///////////////////////////
|
||||
|
||||
/datum/sprite_accessory/underwear
|
||||
icon = 'icons/mob/underwear.dmi'
|
||||
use_static = FALSE
|
||||
|
||||
|
||||
//MALE UNDERWEAR
|
||||
/datum/sprite_accessory/underwear/nude
|
||||
name = "Nude"
|
||||
icon_state = null
|
||||
gender = NEUTER
|
||||
|
||||
/datum/sprite_accessory/underwear/male_mankini
|
||||
name = "Mankini"
|
||||
icon_state = "male_mankini"
|
||||
/datum/sprite_accessory/underwear/male_briefs
|
||||
name = "Men's Briefs"
|
||||
icon_state = "male_briefs"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_black
|
||||
name = "Men's Black"
|
||||
icon_state = "male_black"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_blackalt
|
||||
name = "Men's Black Boxer"
|
||||
icon_state = "male_blackalt"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_blue
|
||||
name = "Men's Blue"
|
||||
icon_state = "male_blue"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_green
|
||||
name = "Men's Green"
|
||||
icon_state = "male_green"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_grey
|
||||
name = "Men's Grey"
|
||||
icon_state = "male_grey"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_greyalt
|
||||
name = "Men's Grey Boxer"
|
||||
icon_state = "male_greyalt"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_hearts
|
||||
name = "Men's Hearts Boxer"
|
||||
icon_state = "male_hearts"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_kinky
|
||||
name = "Men's Kinky"
|
||||
icon_state = "male_kinky"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_red
|
||||
name = "Men's Red"
|
||||
icon_state = "male_red"
|
||||
/datum/sprite_accessory/underwear/male_boxers
|
||||
name = "Men's Boxer"
|
||||
icon_state = "male_boxers"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_stripe
|
||||
@@ -1007,109 +972,60 @@
|
||||
icon_state = "male_stripe"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_kinky
|
||||
name = "Men's Kinky"
|
||||
icon_state = "male_kinky"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_mankini
|
||||
name = "Mankini"
|
||||
icon_state = "male_mankini"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_hearts
|
||||
name = "Men's Hearts Boxer"
|
||||
icon_state = "male_hearts"
|
||||
gender = MALE
|
||||
use_static = TRUE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_commie
|
||||
name = "Men's Striped Commie Boxer"
|
||||
icon_state = "male_commie"
|
||||
gender = MALE
|
||||
use_static = TRUE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_usastripe
|
||||
name = "Men's Striped Freedom Boxer"
|
||||
icon_state = "male_assblastusa"
|
||||
gender = MALE
|
||||
use_static = TRUE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_uk
|
||||
name = "Men's Striped UK Boxer"
|
||||
icon_state = "male_uk"
|
||||
gender = MALE
|
||||
use_static = TRUE
|
||||
|
||||
/datum/sprite_accessory/underwear/male_white
|
||||
name = "Men's White"
|
||||
icon_state = "male_white"
|
||||
gender = MALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_babydoll
|
||||
name = "Babydoll"
|
||||
icon_state = "female_babydoll"
|
||||
//FEMALE UNDERWEAR
|
||||
/datum/sprite_accessory/underwear/female_bikini
|
||||
name = "Ladies' Bikini"
|
||||
icon_state = "female_bikini"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_babyblue
|
||||
name = "Ladies' Baby-Blue"
|
||||
icon_state = "female_babyblue"
|
||||
/datum/sprite_accessory/underwear/female_lace
|
||||
name = "Ladies' Lace"
|
||||
icon_state = "female_lace"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_black
|
||||
name = "Ladies' Black"
|
||||
icon_state = "female_black"
|
||||
/datum/sprite_accessory/underwear/female_bralette
|
||||
name = "Ladies' Bralette"
|
||||
icon_state = "female_bralette"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_black_neko
|
||||
name = "Ladies' Black Neko"
|
||||
icon_state = "female_neko_black"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_blackalt
|
||||
name = "Ladies' Black Sport"
|
||||
icon_state = "female_blackalt"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_blue
|
||||
name = "Ladies' Blue"
|
||||
icon_state = "female_blue"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_commie
|
||||
name = "Ladies' Commie"
|
||||
icon_state = "female_commie"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_usastripe
|
||||
name = "Ladies' Freedom"
|
||||
icon_state = "female_assblastusa"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_green
|
||||
name = "Ladies' Green"
|
||||
icon_state = "female_green"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_kinky
|
||||
name = "Ladies' Kinky"
|
||||
icon_state = "female_kinky"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_pink
|
||||
name = "Ladies' Pink"
|
||||
icon_state = "female_pink"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_red
|
||||
name = "Ladies' Red"
|
||||
icon_state = "female_red"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/swimsuit
|
||||
name = "Ladies' Swimsuit (Black)"
|
||||
icon_state = "swim_black"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/swimsuit_blue
|
||||
name = "Ladies' Swimsuit (Blue)"
|
||||
icon_state = "swim_blue"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/swimsuit_green
|
||||
name = "Ladies' Swimsuit (Green)"
|
||||
icon_state = "swim_green"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/swimsuit_purple
|
||||
name = "Ladies' Swimsuit (Purple)"
|
||||
icon_state = "swim_purple"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/swimsuit_red
|
||||
name = "Ladies' Swimsuit (Red)"
|
||||
icon_state = "swim_red"
|
||||
/datum/sprite_accessory/underwear/female_sport
|
||||
name = "Ladies' Sport"
|
||||
icon_state = "female_sport"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_thong
|
||||
@@ -1117,30 +1033,76 @@
|
||||
icon_state = "female_thong"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_uk
|
||||
name = "Ladies' UK"
|
||||
icon_state = "female_uk"
|
||||
/datum/sprite_accessory/underwear/female_strapless
|
||||
name = "Ladies' Strapless"
|
||||
icon_state = "female_strapless"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_white
|
||||
name = "Ladies' White"
|
||||
icon_state = "female_white"
|
||||
/datum/sprite_accessory/underwear/female_babydoll
|
||||
name = "Babydoll"
|
||||
icon_state = "female_babydoll"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/swimsuit_onepiece
|
||||
name = "Ladies' One Piece Swimsuit"
|
||||
icon_state = "swim_onepiece"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/swimsuit_strapless_onepiece
|
||||
name = "Ladies' Strapless One Piece Swimsuit"
|
||||
icon_state = "swim_strapless_onepiece"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/swimsuit_twopiece
|
||||
name = "Ladies' Two Piece Swimsuit"
|
||||
icon_state = "swim_twopiece"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/swimsuit_strapless_twopiece
|
||||
name = "Ladies' Strapless Two Piece Swimsuit"
|
||||
icon_state = "swim_strapless_twopiece"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/swimsuit_stripe
|
||||
name = "Ladies' Stripe Swimsuit"
|
||||
icon_state = "swim_stripe"
|
||||
gender = FEMALE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_white_neko
|
||||
name = "Ladies' White Neko"
|
||||
icon_state = "female_neko_white"
|
||||
gender = FEMALE
|
||||
use_static = TRUE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_whitealt
|
||||
name = "Ladies' White Sport"
|
||||
icon_state = "female_whitealt"
|
||||
/datum/sprite_accessory/underwear/female_black_neko
|
||||
name = "Ladies' Black Neko"
|
||||
icon_state = "female_neko_black"
|
||||
gender = FEMALE
|
||||
use_static = TRUE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_yellow
|
||||
name = "Ladies' Yellow"
|
||||
icon_state = "female_yellow"
|
||||
/datum/sprite_accessory/underwear/female_commie
|
||||
name = "Ladies' Commie"
|
||||
icon_state = "female_commie"
|
||||
gender = FEMALE
|
||||
use_static = TRUE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_usastripe
|
||||
name = "Ladies' Freedom"
|
||||
icon_state = "female_assblastusa"
|
||||
gender = FEMALE
|
||||
use_static = TRUE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_uk
|
||||
name = "Ladies' UK"
|
||||
icon_state = "female_uk"
|
||||
gender = FEMALE
|
||||
use_static = TRUE
|
||||
|
||||
/datum/sprite_accessory/underwear/female_kinky
|
||||
name = "Ladies' Kinky"
|
||||
icon_state = "female_kinky"
|
||||
gender = FEMALE
|
||||
use_static = TRUE
|
||||
|
||||
////////////////////////////
|
||||
// Undershirt Definitions //
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
var/age = 30 //Player's age
|
||||
|
||||
var/underwear = "Nude" //Which underwear the player wants
|
||||
var/underwear_color = "000"
|
||||
var/undershirt = "Nude" //Which undershirt the player wants
|
||||
var/socks = "Nude" //Which socks the player wants
|
||||
var/backbag = DBACKPACK //Which backpack type the player has chosen.
|
||||
|
||||
@@ -502,8 +502,12 @@ GLOBAL_LIST_EMPTY(roundstart_races)
|
||||
if(!(NO_UNDERWEAR in species_traits))
|
||||
if(H.underwear)
|
||||
var/datum/sprite_accessory/underwear/underwear = GLOB.underwear_list[H.underwear]
|
||||
var/mutable_appearance/underwear_overlay
|
||||
if(underwear)
|
||||
standing += mutable_appearance(underwear.icon, underwear.icon_state, -BODY_LAYER)
|
||||
underwear_overlay = mutable_appearance(underwear.icon, underwear.icon_state, -BODY_LAYER)
|
||||
if(!underwear.use_static)
|
||||
underwear_overlay.color = "#" + H.underwear_color
|
||||
standing += underwear_overlay
|
||||
|
||||
if(H.undershirt)
|
||||
var/datum/sprite_accessory/undershirt/undershirt = GLOB.undershirt_list[H.undershirt]
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 49 KiB |
Reference in New Issue
Block a user