mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 05:30:05 +01:00
Merge pull request #9808 from Incoming5643/march_of_the_snowflakes
WJohn's Hyper Customizable Lizard Sprites
This commit is contained in:
@@ -298,7 +298,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
||||
|
||||
//DNA
|
||||
if(record_found)//Pull up their name from database records if they did have a mind.
|
||||
hardset_dna(new_character, record_found.fields["identity"], record_found.fields["enzymes"], record_found.fields["name"], record_found.fields["blood_type"], record_found.fields["species"], record_found.fields["mcolor"])
|
||||
hardset_dna(new_character, record_found.fields["identity"], record_found.fields["enzymes"], record_found.fields["name"], record_found.fields["blood_type"], record_found.fields["species"], record_found.fields["features"])
|
||||
else//If they have no records, we just do a random DNA for them, based on their random appearance/savefile.
|
||||
ready_dna(new_character)
|
||||
|
||||
|
||||
@@ -61,7 +61,8 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
||||
var/skin_tone = "caucasian1" //Skin color
|
||||
var/eye_color = "000" //Eye color
|
||||
var/datum/species/pref_species = new /datum/species/human() //Mutant race
|
||||
var/mutant_color = "FFF" //Mutant race skin color
|
||||
var/list/features = list("mcolor" = "FFF", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None")
|
||||
|
||||
var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity")
|
||||
|
||||
//Mob preview
|
||||
@@ -243,7 +244,61 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
||||
|
||||
dat += "<h3>Alien Color</h3>"
|
||||
|
||||
dat += "<span style='border: 1px solid #161616; background-color: #[mutant_color];'> </span> <a href='?_src_=prefs;preference=mutant_color;task=input'>Change</a><BR>"
|
||||
dat += "<span style='border: 1px solid #161616; background-color: #[features["mcolor"]];'> </span> <a href='?_src_=prefs;preference=mutant_color;task=input'>Change</a><BR>"
|
||||
|
||||
dat += "</td>"
|
||||
|
||||
if("tail" in pref_species.mutant_bodyparts)
|
||||
dat += "<td valign='top' width='7%'>"
|
||||
|
||||
dat += "<h3>Tail</h3>"
|
||||
|
||||
dat += "<a href='?_src_=prefs;preference=tail;task=input'>[features["tail"]]</a><BR>"
|
||||
|
||||
dat += "</td>"
|
||||
|
||||
if("snout" in pref_species.mutant_bodyparts)
|
||||
dat += "<td valign='top' width='7%'>"
|
||||
|
||||
dat += "<h3>Snout</h3>"
|
||||
|
||||
dat += "<a href='?_src_=prefs;preference=snout;task=input'>[features["snout"]]</a><BR>"
|
||||
|
||||
dat += "</td>"
|
||||
|
||||
if("horns" in pref_species.mutant_bodyparts)
|
||||
dat += "<td valign='top' width='7%'>"
|
||||
|
||||
dat += "<h3>Horns</h3>"
|
||||
|
||||
dat += "<a href='?_src_=prefs;preference=horns;task=input'>[features["horns"]]</a><BR>"
|
||||
|
||||
dat += "</td>"
|
||||
|
||||
if("frills" in pref_species.mutant_bodyparts)
|
||||
dat += "<td valign='top' width='7%'>"
|
||||
|
||||
dat += "<h3>Frills</h3>"
|
||||
|
||||
dat += "<a href='?_src_=prefs;preference=frills;task=input'>[features["frills"]]</a><BR>"
|
||||
|
||||
dat += "</td>"
|
||||
|
||||
if("spines" in pref_species.mutant_bodyparts)
|
||||
dat += "<td valign='top' width='7%'>"
|
||||
|
||||
dat += "<h3>Spines</h3>"
|
||||
|
||||
dat += "<a href='?_src_=prefs;preference=spines;task=input'>[features["spines"]]</a><BR>"
|
||||
|
||||
dat += "</td>"
|
||||
|
||||
if("body_markings" in pref_species.mutant_bodyparts)
|
||||
dat += "<td valign='top' width='7%'>"
|
||||
|
||||
dat += "<h3>Body Markings</h3>"
|
||||
|
||||
dat += "<a href='?_src_=prefs;preference=body_markings;task=input'>[features["body_markings"]]</a><BR>"
|
||||
|
||||
dat += "</td>"
|
||||
|
||||
@@ -736,19 +791,54 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
||||
if(result)
|
||||
var/newtype = roundstart_species[result]
|
||||
pref_species = new newtype()
|
||||
if(mutant_color == "#000")
|
||||
mutant_color = pref_species.default_color
|
||||
if(features["mcolor"] == "#000")
|
||||
features["mcolor"] = pref_species.default_color
|
||||
|
||||
if("mutant_color")
|
||||
var/new_mutantcolor = input(user, "Choose your character's alien skin color:", "Character Preference") as color|null
|
||||
if(new_mutantcolor)
|
||||
var/temp_hsv = RGBtoHSV(new_mutantcolor)
|
||||
if(new_mutantcolor == "#000000")
|
||||
mutant_color = pref_species.default_color
|
||||
features["mcolor"] = pref_species.default_color
|
||||
else if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright
|
||||
mutant_color = sanitize_hexcolor(new_mutantcolor)
|
||||
features["mcolor"] = sanitize_hexcolor(new_mutantcolor)
|
||||
else
|
||||
user << "<span class='danger'>Invalid color. Your color is not bright enough.</span>"
|
||||
if("tail")
|
||||
var/new_tail
|
||||
new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in tails_list
|
||||
if(new_tail)
|
||||
features["tail"] = new_tail
|
||||
|
||||
if("snout")
|
||||
var/new_snout
|
||||
new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in snouts_list
|
||||
if(new_snout)
|
||||
features["snout"] = new_snout
|
||||
|
||||
if("horns")
|
||||
var/new_horns
|
||||
new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in horns_list
|
||||
if(new_horns)
|
||||
features["horns"] = new_horns
|
||||
|
||||
if("frills")
|
||||
var/new_frills
|
||||
new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in frills_list
|
||||
if(new_frills)
|
||||
features["frills"] = new_frills
|
||||
|
||||
if("spines")
|
||||
var/new_spines
|
||||
new_spines = input(user, "Choose your character's spines:", "Character Preference") as null|anything in spines_list
|
||||
if(new_spines)
|
||||
features["spines"] = new_spines
|
||||
|
||||
if("body_markings")
|
||||
var/new_body_markings
|
||||
new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in body_markings_list
|
||||
if(new_body_markings)
|
||||
features["body_markings"] = new_body_markings
|
||||
|
||||
if("s_tone")
|
||||
var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones
|
||||
@@ -919,10 +1009,9 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
||||
if(character.dna)
|
||||
character.dna.real_name = character.real_name
|
||||
if(pref_species != /datum/species/human && config.mutant_races)
|
||||
hardset_dna(character, null, null, null, null, pref_species.type)
|
||||
hardset_dna(character, null, null, null, null, pref_species.type, features)
|
||||
else
|
||||
hardset_dna(character, null, null, null, null, /datum/species/human)
|
||||
character.dna.mutant_color = mutant_color
|
||||
hardset_dna(character, null, null, null, null, /datum/species/human, features)
|
||||
character.update_mutcolor()
|
||||
|
||||
character.gender = gender
|
||||
@@ -940,6 +1029,8 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
||||
character.undershirt = undershirt
|
||||
character.socks = socks
|
||||
|
||||
character.features = features
|
||||
|
||||
if(backbag > 3 || backbag < 1)
|
||||
backbag = 1 //Same as above
|
||||
character.backbag = backbag
|
||||
|
||||
@@ -166,8 +166,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
else
|
||||
pref_species = new /datum/species/human()
|
||||
|
||||
if(!S["mutant_color"] || S["mutant_color"] == "#000")
|
||||
S["mutant_color"] << "#FFF"
|
||||
if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000")
|
||||
S["features["mcolor"]"] << "#FFF"
|
||||
|
||||
//Character
|
||||
S["OOC_Notes"] >> metadata
|
||||
@@ -186,7 +186,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["undershirt"] >> undershirt
|
||||
S["socks"] >> socks
|
||||
S["backbag"] >> backbag
|
||||
S["mutant_color"] >> mutant_color
|
||||
S["features"] >> features
|
||||
S["clown_name"] >> custom_names["clown"]
|
||||
S["mime_name"] >> custom_names["mime"]
|
||||
S["ai_name"] >> custom_names["ai"]
|
||||
@@ -213,8 +213,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
//Sanitize
|
||||
metadata = sanitize_text(metadata, initial(metadata))
|
||||
real_name = reject_bad_name(real_name)
|
||||
if(!mutant_color || mutant_color == "#000")
|
||||
mutant_color = "#FFF"
|
||||
if(!features["mcolor"] || features["mcolor"] == "#000")
|
||||
features["mcolor"] = "#FFF"
|
||||
if(!real_name) real_name = random_name(gender)
|
||||
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
|
||||
be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body))
|
||||
@@ -238,7 +238,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
eye_color = sanitize_hexcolor(eye_color, 3, 0)
|
||||
skin_tone = sanitize_inlist(skin_tone, skin_tones)
|
||||
backbag = sanitize_integer(backbag, 1, backbaglist.len, initial(backbag))
|
||||
mutant_color = sanitize_hexcolor(mutant_color, 3, 0)
|
||||
features["mcolor"] = sanitize_hexcolor(features["mcolor"], 3, 0)
|
||||
features["tail"] = sanitize_inlist(features["tail"], tails_list)
|
||||
features["snout"] = sanitize_inlist(features["snout"], snouts_list)
|
||||
features["horns"] = sanitize_inlist(features["horns"], horns_list)
|
||||
features["frills"] = sanitize_inlist(features["frills"], frills_list)
|
||||
features["spines"] = sanitize_inlist(features["spines"], spines_list)
|
||||
features["body_markings"] = sanitize_inlist(features["body_markings"], body_markings_list)
|
||||
|
||||
userandomjob = sanitize_integer(userandomjob, 0, 1, initial(userandomjob))
|
||||
job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high))
|
||||
@@ -279,7 +285,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
||||
S["socks"] << socks
|
||||
S["backbag"] << backbag
|
||||
S["species"] << pref_species.name
|
||||
S["mutant_color"] << mutant_color
|
||||
S["features"] << features
|
||||
S["clown_name"] << custom_names["clown"]
|
||||
S["mime_name"] << custom_names["mime"]
|
||||
S["ai_name"] << custom_names["ai"]
|
||||
|
||||
@@ -863,9 +863,9 @@
|
||||
podman.ckey = ckey_holder
|
||||
podman.gender = blood_gender
|
||||
podman.faction |= factions
|
||||
if(!mutant_color)
|
||||
mutant_color = "#59CE00"
|
||||
hardset_dna(podman,null,null,podman.real_name,blood_type,/datum/species/plant/pod,mutant_color)//Discard SE's and UI's, podman cloning is inaccurate, and always make them a podman
|
||||
if(!features["mcolor"])
|
||||
features["mcolor"] = "#59CE00"
|
||||
hardset_dna(podman,null,null,podman.real_name,blood_type,/datum/species/plant/pod,features)//Discard SE's and UI's, podman cloning is inaccurate, and always make them a podman
|
||||
podman.set_cloned_appearance()
|
||||
|
||||
else //else, one packet of seeds. maybe two
|
||||
|
||||
@@ -90,7 +90,7 @@
|
||||
var/datum/mind/mind = null
|
||||
var/blood_gender = null
|
||||
var/blood_type = null
|
||||
var/mutant_color = null
|
||||
var/list/features = null
|
||||
var/factions = null
|
||||
var/contains_sample = 0
|
||||
|
||||
@@ -104,7 +104,7 @@
|
||||
realName = bloodSample.data["real_name"]
|
||||
blood_gender = bloodSample.data["gender"]
|
||||
blood_type = bloodSample.data["blood_type"]
|
||||
mutant_color = bloodSample.data["mutant_color"]
|
||||
features = bloodSample.data["features"]
|
||||
factions = bloodSample.data["factions"]
|
||||
W.reagents.clear_reagents()
|
||||
user << "<span class='notice'>You inject the contents of the syringe into the seeds.</span>"
|
||||
|
||||
@@ -9,6 +9,9 @@
|
||||
var/obj/item/handcuffed = null //Whether or not the mob is handcuffed
|
||||
var/obj/item/legcuffed = null //Same as handcuffs but for legs. Bear traps use this.
|
||||
|
||||
var/list/features = list("mcolor" = "FFF", "tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None")
|
||||
|
||||
|
||||
//inventory slots
|
||||
var/obj/item/back = null
|
||||
var/obj/item/clothing/mask/wear_mask = null
|
||||
|
||||
@@ -30,7 +30,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
|
||||
/mob/living/carbon/human/proc/fixblood()
|
||||
for(var/datum/reagent/blood/B in vessel.reagent_list)
|
||||
if(B.id == "blood")
|
||||
B.data = list("donor"=src,"viruses"=null,"blood_DNA"=dna.unique_enzymes,"blood_type"=dna.blood_type,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"mutant_color"=null, "factions"=null)
|
||||
B.data = list("donor"=src,"viruses"=null,"blood_DNA"=dna.unique_enzymes,"blood_type"=dna.blood_type,"resistances"=null,"trace_chem"=null,"mind"=null,"ckey"=null,"gender"=null,"real_name"=null,"cloneable"=null,"features"=null, "factions"=null)
|
||||
|
||||
/mob/living/carbon/human/proc/suppress_bloodloss(var/amount)
|
||||
if(bleedsuppress)
|
||||
@@ -172,7 +172,7 @@ var/const/BLOOD_VOLUME_SURVIVE = 122
|
||||
B.data["blood_type"] = copytext(src.dna.blood_type,1,0)
|
||||
B.data["gender"] = src.gender
|
||||
B.data["real_name"] = src.real_name
|
||||
B.data["mutant_color"] = src.dna.mutant_color
|
||||
B.data["features"] = src.dna.features
|
||||
B.data["factions"] = src.faction
|
||||
return B
|
||||
|
||||
|
||||
@@ -355,7 +355,9 @@
|
||||
return
|
||||
if("tail" in dna.species.mutant_bodyparts)
|
||||
dna.species.mutant_bodyparts -= "tail"
|
||||
dna.species.mutant_bodyparts -= "spines"
|
||||
dna.species.mutant_bodyparts |= "waggingtail"
|
||||
dna.species.mutant_bodyparts |= "waggingspines"
|
||||
update_body()
|
||||
|
||||
|
||||
@@ -364,5 +366,8 @@
|
||||
return
|
||||
if("waggingtail" in dna.species.mutant_bodyparts)
|
||||
dna.species.mutant_bodyparts -= "waggingtail"
|
||||
dna.species.mutant_bodyparts -= "waggingspines"
|
||||
dna.species.mutant_bodyparts |= "tail"
|
||||
dna.species.mutant_bodyparts |= "spines"
|
||||
|
||||
update_body()
|
||||
@@ -113,7 +113,7 @@
|
||||
|
||||
spec_base = image("icon" = 'icons/mob/human.dmi', "icon_state" = icon_state_string, "layer" = -SPECIES_LAYER)
|
||||
|
||||
spec_base.color = "#[H.dna.mutant_color]"
|
||||
spec_base.color = "#[H.dna.features["mcolor"]]"
|
||||
standing = spec_base
|
||||
|
||||
if(standing)
|
||||
@@ -136,7 +136,7 @@
|
||||
|
||||
if(hair_color)
|
||||
if(hair_color == "mutcolor")
|
||||
img_facial_s.color = "#" + H.dna.mutant_color
|
||||
img_facial_s.color = "#" + H.dna.features["mcolor"]
|
||||
else
|
||||
img_facial_s.color = "#" + hair_color
|
||||
else
|
||||
@@ -164,7 +164,7 @@
|
||||
|
||||
if(hair_color)
|
||||
if(hair_color == "mutcolor")
|
||||
img_hair_s.color = "#" + H.dna.mutant_color
|
||||
img_hair_s.color = "#" + H.dna.features["mcolor"]
|
||||
else
|
||||
img_hair_s.color = "#" + hair_color
|
||||
else
|
||||
@@ -240,33 +240,75 @@
|
||||
if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
|
||||
bodyparts_to_add -= "tail"
|
||||
|
||||
|
||||
if("waggingtail" in mutant_bodyparts)
|
||||
if(H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
|
||||
bodyparts_to_add -= "waggingtail"
|
||||
else if ("tail" in mutant_bodyparts)
|
||||
bodyparts_to_add -= "waggingtail"
|
||||
|
||||
if("spines" in mutant_bodyparts)
|
||||
if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
|
||||
bodyparts_to_add -= "spines"
|
||||
|
||||
if("waggingspines" in mutant_bodyparts)
|
||||
if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
|
||||
bodyparts_to_add -= "waggingspines"
|
||||
else if ("tail" in mutant_bodyparts)
|
||||
bodyparts_to_add -= "waggingspines"
|
||||
|
||||
if("snout" in mutant_bodyparts) //Take a closer look at that snout!
|
||||
if(H.wear_mask && (H.wear_mask.flags_inv & HIDEFACE))
|
||||
bodyparts_to_add -= "snout"
|
||||
|
||||
if("frills" in mutant_bodyparts)
|
||||
if(!H.dna.features["frills"] || H.dna.features["frills"] == "None" || H.head && (H.head.flags_inv & HIDEEARS))
|
||||
bodyparts_to_add -= "frills"
|
||||
|
||||
if("horns" in mutant_bodyparts)
|
||||
if(!H.dna.features["horns"] || H.dna.features["horns"] == "None" || H.head && (H.head.flags & BLOCKHAIR) || (H.wear_mask && (H.wear_mask.flags & BLOCKHAIR)))
|
||||
bodyparts_to_add -= "horns"
|
||||
|
||||
if(!bodyparts_to_add)
|
||||
return
|
||||
|
||||
var/icon_state_string = "[id]_"
|
||||
var/g = (H.gender == FEMALE) ? "f" : "m"
|
||||
var/image/I
|
||||
|
||||
if(sexes)
|
||||
icon_state_string += "[g]_s"
|
||||
else
|
||||
icon_state_string += "_s"
|
||||
var/image/I
|
||||
|
||||
for(var/layer in relevent_layers)
|
||||
for(var/bodypart in bodyparts_to_add)
|
||||
I = image("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = "[icon_state_string]_[bodypart]_[layer]", "layer" =- layer)
|
||||
var/datum/sprite_accessory/S
|
||||
switch(bodypart)
|
||||
if("tail")
|
||||
S = tails_list[H.dna.features["tail"]]
|
||||
if("waggingtail")
|
||||
S.= animated_tails_list[H.dna.features["tail"]]
|
||||
if("spines")
|
||||
S = spines_list[H.dna.features["spines"]]
|
||||
if("waggingspines")
|
||||
S.= animated_spines_list[H.dna.features["spines"]]
|
||||
if("snout")
|
||||
S = snouts_list[H.dna.features["snout"]]
|
||||
if("frills")
|
||||
S = frills_list[H.dna.features["frills"]]
|
||||
if("horns")
|
||||
S = horns_list[H.dna.features["horns"]]
|
||||
if("body_markings")
|
||||
S = body_markings_list[H.dna.features["body_markings"]]
|
||||
|
||||
if(!S || S.icon_state == "none")
|
||||
continue
|
||||
var/icon_string
|
||||
if(S.gender_specific)
|
||||
icon_string = "[id]_[g]_[bodypart]_[S.icon_state]_[layer]"
|
||||
else
|
||||
icon_string = "[id]_m_[bodypart]_[S.icon_state]_[layer]"
|
||||
|
||||
I = image("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = icon_string, "layer" =- layer)
|
||||
|
||||
if(!(H.disabilities & HUSK))
|
||||
I.color = "#[H.dna.mutant_color]"
|
||||
I.color = "#[H.dna.features["mcolor"]]"
|
||||
standing += I
|
||||
H.overlays_standing[layer] = standing.Copy()
|
||||
standing = list()
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
default_color = "00FF00"
|
||||
roundstart = 1
|
||||
specflags = list(MUTCOLORS,EYECOLOR,LIPS)
|
||||
mutant_bodyparts = list("tail", "snout")
|
||||
mutant_bodyparts = list("tail", "snout", "spines", "horns", "frills", "body_markings")
|
||||
attack_verb = "slash"
|
||||
attack_sound = 'sound/weapons/slash.ogg'
|
||||
miss_sound = 'sound/weapons/slashmiss.ogg'
|
||||
|
||||
@@ -14,8 +14,10 @@
|
||||
hair_color = random_short_color()
|
||||
facial_hair_color = hair_color
|
||||
eye_color = random_eye_color()
|
||||
pref_species = new /datum/species/human()
|
||||
if(!pref_species)
|
||||
pref_species = new /datum/species/human()
|
||||
backbag = 2
|
||||
features = random_features()
|
||||
age = rand(AGE_MIN,AGE_MAX)
|
||||
|
||||
/datum/preferences/proc/update_preview_icon() //seriously. This is horrendous.
|
||||
@@ -45,24 +47,9 @@
|
||||
preview_icon = new /icon('icons/mob/human.dmi', "[skin_tone]_[g]_s")
|
||||
else
|
||||
preview_icon = new /icon('icons/mob/human.dmi', "[pref_species.id]_[g]_s")
|
||||
preview_icon.Blend("#[mutant_color]", ICON_MULTIPLY)
|
||||
preview_icon.Blend("#[features["mcolor"]]", ICON_MULTIPLY)
|
||||
|
||||
var/datum/sprite_accessory/S
|
||||
if(underwear)
|
||||
S = underwear_list[underwear]
|
||||
if(S)
|
||||
preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY)
|
||||
|
||||
if(undershirt)
|
||||
S = undershirt_list[undershirt]
|
||||
if(S)
|
||||
preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY)
|
||||
|
||||
if(socks)
|
||||
S = socks_list[socks]
|
||||
if(S)
|
||||
preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY)
|
||||
|
||||
var/icon/eyes_s = new/icon()
|
||||
if(EYECOLOR in pref_species.specflags)
|
||||
eyes_s = new/icon("icon" = 'icons/mob/human_face.dmi', "icon_state" = "[pref_species.eyes]_s")
|
||||
@@ -90,10 +77,47 @@
|
||||
|
||||
for(var/layer in relevent_layers)
|
||||
for(var/bodypart in pref_species.mutant_bodyparts)
|
||||
var/icon/part = new/icon("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = "[icon_state_string]_[bodypart]_[layer]")
|
||||
part.Blend("#[mutant_color]", ICON_MULTIPLY)
|
||||
switch(bodypart)
|
||||
if("tail")
|
||||
S = tails_list[features["tail"]]
|
||||
if("spines")
|
||||
S = spines_list[features["spines"]]
|
||||
if("snout")
|
||||
S = snouts_list[features["snout"]]
|
||||
if("frills")
|
||||
S = frills_list[features["frills"]]
|
||||
if("horns")
|
||||
S = horns_list[features["horns"]]
|
||||
if("body_markings")
|
||||
S = body_markings_list[features["body_markings"]]
|
||||
|
||||
if(!S || S.icon_state == "none")
|
||||
continue
|
||||
var/icon_string
|
||||
if(S.gender_specific)
|
||||
icon_string = "[pref_species.id]_[g]_[bodypart]_[S.icon_state]_[layer]"
|
||||
else
|
||||
icon_string = "[pref_species.id]_m_[bodypart]_[S.icon_state]_[layer]"
|
||||
var/icon/part = new/icon("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = icon_string)
|
||||
|
||||
part.Blend("#[features["mcolor"]]", ICON_MULTIPLY)
|
||||
preview_icon.Blend(part, ICON_OVERLAY)
|
||||
|
||||
if(underwear)
|
||||
S = underwear_list[underwear]
|
||||
if(S)
|
||||
preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY)
|
||||
|
||||
if(undershirt)
|
||||
S = undershirt_list[undershirt]
|
||||
if(S)
|
||||
preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY)
|
||||
|
||||
if(socks)
|
||||
S = socks_list[socks]
|
||||
if(S)
|
||||
preview_icon.Blend(new /icon(S.icon, "[S.icon_state]_s"), ICON_OVERLAY)
|
||||
|
||||
var/icon/clothes_s = null
|
||||
if(job_civilian_low & ASSISTANT)//This gives the preview icon clothes depending on which job(if any) is set to 'high'
|
||||
clothes_s = new /icon('icons/mob/uniform.dmi', "grey_s")
|
||||
|
||||
@@ -41,6 +41,7 @@
|
||||
var/icon_state //the icon_state of the accessory
|
||||
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
|
||||
|
||||
//////////////////////
|
||||
// Hair Definitions //
|
||||
@@ -1046,3 +1047,232 @@
|
||||
name = "Pantyhose"
|
||||
icon_state = "pantyhose"
|
||||
gender = FEMALE
|
||||
|
||||
//////////.//////////////////
|
||||
// MutantParts Definitions //
|
||||
/////////////////////////////
|
||||
|
||||
/datum/sprite_accessory/body_markings
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/body_markings/none
|
||||
name = "None"
|
||||
icon_state = "none"
|
||||
|
||||
/datum/sprite_accessory/body_markings/dstripe
|
||||
name = "Dark Stripe"
|
||||
icon_state = "dstripe"
|
||||
|
||||
/datum/sprite_accessory/body_markings/lstripe
|
||||
name = "Light Stripe"
|
||||
icon_state = "lstripe"
|
||||
|
||||
/datum/sprite_accessory/body_markings/dtiger
|
||||
name = "Dark Tiger Body"
|
||||
icon_state = "dtiger"
|
||||
|
||||
/datum/sprite_accessory/body_markings/dtigerhead
|
||||
name = "Dark Tiger Body + Head"
|
||||
icon_state = "dtigerhead"
|
||||
|
||||
/datum/sprite_accessory/body_markings/ltiger
|
||||
name = "Light Tiger Body"
|
||||
icon_state = "ltiger"
|
||||
|
||||
/datum/sprite_accessory/body_markings/ltigerhead
|
||||
name = "Light Tiger Body + Head"
|
||||
icon_state = "ltigerhead"
|
||||
|
||||
/datum/sprite_accessory/body_markings/lbelly
|
||||
name = "Light Belly"
|
||||
icon_state = "lbelly"
|
||||
gender_specific = 1
|
||||
|
||||
/datum/sprite_accessory/tails
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/tails_animated
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/tails/smooth
|
||||
name = "Smooth"
|
||||
icon_state = "smooth"
|
||||
|
||||
/datum/sprite_accessory/tails_animated/smooth
|
||||
name = "Smooth"
|
||||
icon_state = "smooth"
|
||||
|
||||
/datum/sprite_accessory/tails/light
|
||||
name = "Light"
|
||||
icon_state = "light"
|
||||
|
||||
/datum/sprite_accessory/tails_animated/light
|
||||
name = "Light"
|
||||
icon_state = "light"
|
||||
|
||||
/datum/sprite_accessory/tails/dstripe
|
||||
name = "Dark Stripe"
|
||||
icon_state = "dstripe"
|
||||
|
||||
/datum/sprite_accessory/tails_animated/dstripe
|
||||
name = "Dark Stripe"
|
||||
icon_state = "dstripe"
|
||||
|
||||
/datum/sprite_accessory/tails/lstripe
|
||||
name = "Light Stripe"
|
||||
icon_state = "lstripe"
|
||||
|
||||
/datum/sprite_accessory/tails_animated/lstripe
|
||||
name = "Light Stripe"
|
||||
icon_state = "lstripe"
|
||||
|
||||
/datum/sprite_accessory/tails/dtiger
|
||||
name = "Dark Tiger"
|
||||
icon_state = "dtiger"
|
||||
|
||||
/datum/sprite_accessory/tails_animated/dtiger
|
||||
name = "Dark Tiger"
|
||||
icon_state = "dtiger"
|
||||
|
||||
/datum/sprite_accessory/tails/ltiger
|
||||
name = "Light Tiger"
|
||||
icon_state = "ltiger"
|
||||
|
||||
/datum/sprite_accessory/tails_animated/ltiger
|
||||
name = "Light Tiger"
|
||||
icon_state = "ltiger"
|
||||
|
||||
/datum/sprite_accessory/tails/club
|
||||
name = "Club"
|
||||
icon_state = "club"
|
||||
|
||||
/datum/sprite_accessory/tails_animated/club
|
||||
name = "Club"
|
||||
icon_state = "club"
|
||||
|
||||
/datum/sprite_accessory/tails/aqua
|
||||
name = "Aquatic"
|
||||
icon_state = "aqua"
|
||||
|
||||
/datum/sprite_accessory/tails_animated/aqua
|
||||
name = "Aquatic"
|
||||
icon_state = "aqua"
|
||||
|
||||
/datum/sprite_accessory/snouts
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/snouts/sharp
|
||||
name = "Sharp"
|
||||
icon_state = "sharp"
|
||||
|
||||
/datum/sprite_accessory/snouts/round
|
||||
name = "Round"
|
||||
icon_state = "round"
|
||||
|
||||
/datum/sprite_accessory/snouts/sharplight
|
||||
name = "Sharp + Light"
|
||||
icon_state = "sharplight"
|
||||
|
||||
/datum/sprite_accessory/snouts/roundlight
|
||||
name = "Round + Light"
|
||||
icon_state = "roundlight"
|
||||
|
||||
/datum/sprite_accessory/horns
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/horns/none
|
||||
name = "None"
|
||||
icon_state = "none"
|
||||
|
||||
/datum/sprite_accessory/horns/simple
|
||||
name = "Simple"
|
||||
icon_state = "simple"
|
||||
|
||||
/datum/sprite_accessory/horns/short
|
||||
name = "Short"
|
||||
icon_state = "short"
|
||||
|
||||
/datum/sprite_accessory/horns/curled
|
||||
name = "Curled"
|
||||
icon_state = "curled"
|
||||
|
||||
/datum/sprite_accessory/horns/ram
|
||||
name = "Ram"
|
||||
icon_state = "ram"
|
||||
|
||||
/datum/sprite_accessory/horns/angler
|
||||
name = "Angeler"
|
||||
icon_state = "angler"
|
||||
|
||||
/datum/sprite_accessory/frills
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/frills/none
|
||||
name = "None"
|
||||
icon_state = "none"
|
||||
|
||||
/datum/sprite_accessory/frills/simple
|
||||
name = "Simple"
|
||||
icon_state = "simple"
|
||||
|
||||
/datum/sprite_accessory/frills/short
|
||||
name = "Short"
|
||||
icon_state = "short"
|
||||
|
||||
/datum/sprite_accessory/frills/aquatic
|
||||
name = "Aquatic"
|
||||
icon_state = "aqua"
|
||||
|
||||
/datum/sprite_accessory/spines
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/spines_animated
|
||||
icon = 'icons/mob/mutant_bodyparts.dmi'
|
||||
|
||||
/datum/sprite_accessory/spines/none
|
||||
name = "None"
|
||||
icon_state = "none"
|
||||
|
||||
/datum/sprite_accessory/spines_animated/none
|
||||
name = "None"
|
||||
icon_state = "none"
|
||||
|
||||
/datum/sprite_accessory/spines/short
|
||||
name = "Short"
|
||||
icon_state = "short"
|
||||
|
||||
/datum/sprite_accessory/spines_animated/short
|
||||
name = "Short"
|
||||
icon_state = "short"
|
||||
|
||||
/datum/sprite_accessory/spines/shortmeme
|
||||
name = "Short + Membrane"
|
||||
icon_state = "shortmeme"
|
||||
|
||||
/datum/sprite_accessory/spines_animated/shortmeme
|
||||
name = "Short + Membrane"
|
||||
icon_state = "shortmeme"
|
||||
|
||||
/datum/sprite_accessory/spines/long
|
||||
name = "Long"
|
||||
icon_state = "long"
|
||||
|
||||
/datum/sprite_accessory/spines_animated/long
|
||||
name = "Long"
|
||||
icon_state = "long"
|
||||
|
||||
/datum/sprite_accessory/spines/longmeme
|
||||
name = "Long + Membrane"
|
||||
icon_state = "longmeme"
|
||||
|
||||
/datum/sprite_accessory/spines_animated/longmeme
|
||||
name = "Long + Membrane"
|
||||
icon_state = "longmeme"
|
||||
|
||||
/datum/sprite_accessory/spines/aqautic
|
||||
name = "Aquatic"
|
||||
icon_state = "aqua"
|
||||
|
||||
/datum/sprite_accessory/spines_animated/aqautic
|
||||
name = "Aquatic"
|
||||
icon_state = "aqua"
|
||||
|
||||
Reference in New Issue
Block a user