mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 10:01:40 +00:00
Generalizes lizard parts to "features" for future non-lizard fields, at the same time merging mutant color into this list
Random lizard bodies will finally have color! Pushes features almost all the way to the DNA side of thing, the mob side is only needed during character creation. Note that changes to the save file will invoke a one time per character runtime for legacy characters as the save file purges mutant_color, this is as far as I can tell harmless, has no effect on the player, and is self correcting.
This commit is contained in:
@@ -36,7 +36,7 @@
|
|||||||
if(FEMALE) return pick(socks_f)
|
if(FEMALE) return pick(socks_f)
|
||||||
else return pick(socks_list)
|
else return pick(socks_list)
|
||||||
|
|
||||||
/proc/random_lizard_features()
|
/proc/random_features()
|
||||||
if(!tails_list.len)
|
if(!tails_list.len)
|
||||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails, tails_list)
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/tails, tails_list)
|
||||||
if(!snouts_list.len)
|
if(!snouts_list.len)
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
if(!body_markings_list.len)
|
if(!body_markings_list.len)
|
||||||
init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list)
|
init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, body_markings_list)
|
||||||
|
|
||||||
return(list("tail" = pick(tails_list), "snout" = pick(snouts_list), "horns" = pick(horns_list), "frills" = pick(frills_list), "spines" = pick(spines_list), "body_markings" = pick(body_markings_list)))
|
return(list("mcolor" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"), "tail" = pick(tails_list), "snout" = pick(snouts_list), "horns" = pick(horns_list), "frills" = pick(frills_list), "spines" = pick(spines_list), "body_markings" = pick(body_markings_list)))
|
||||||
|
|
||||||
/proc/random_hair_style(gender)
|
/proc/random_hair_style(gender)
|
||||||
switch(gender)
|
switch(gender)
|
||||||
|
|||||||
@@ -260,8 +260,7 @@ var/record_id_num = 1001
|
|||||||
L.fields["enzymes"] = H.dna.struc_enzymes
|
L.fields["enzymes"] = H.dna.struc_enzymes
|
||||||
L.fields["identity"] = H.dna.uni_identity
|
L.fields["identity"] = H.dna.uni_identity
|
||||||
L.fields["species"] = H.dna.species.type
|
L.fields["species"] = H.dna.species.type
|
||||||
L.fields["mcolor"] = H.dna.mutant_color
|
L.fields["features"] = H.dna.features
|
||||||
L.fields["lizard_parts"]= H.dna.lizard_parts
|
|
||||||
L.fields["image"] = image
|
L.fields["image"] = image
|
||||||
locked += L
|
locked += L
|
||||||
return
|
return
|
||||||
@@ -273,7 +272,7 @@ var/record_id_num = 1001
|
|||||||
photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.skin_tone]_[g]_s")
|
photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.skin_tone]_[g]_s")
|
||||||
else
|
else
|
||||||
photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.dna.species.id]_[g]_s")
|
photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.dna.species.id]_[g]_s")
|
||||||
photo.Blend("#[H.dna.mutant_color]", ICON_MULTIPLY)
|
photo.Blend("#[H.dna.features["mcolor"]]", ICON_MULTIPLY)
|
||||||
|
|
||||||
var/icon/eyes_s
|
var/icon/eyes_s
|
||||||
if(EYECOLOR in H.dna.species.specflags)
|
if(EYECOLOR in H.dna.species.specflags)
|
||||||
|
|||||||
@@ -21,8 +21,7 @@
|
|||||||
var/uni_identity
|
var/uni_identity
|
||||||
var/blood_type
|
var/blood_type
|
||||||
var/datum/species/species = new /datum/species/human() //The type of mutant race the player is if applicable (i.e. potato-man)
|
var/datum/species/species = new /datum/species/human() //The type of mutant race the player is if applicable (i.e. potato-man)
|
||||||
var/mutant_color = "FFF" // What color you are if you have certain speciess
|
var/list/features = list("FFF") //first value is mutant color
|
||||||
var/list/lizard_parts = list()
|
|
||||||
var/real_name //Stores the real name of the person who originally got this dna datum. Used primarely for changelings,
|
var/real_name //Stores the real name of the person who originally got this dna datum. Used primarely for changelings,
|
||||||
var/list/mutations = list() //All mutations are from now on here
|
var/list/mutations = list() //All mutations are from now on here
|
||||||
var/mob/living/carbon/holder
|
var/mob/living/carbon/holder
|
||||||
@@ -37,8 +36,7 @@
|
|||||||
destination.dna.uni_identity = uni_identity
|
destination.dna.uni_identity = uni_identity
|
||||||
destination.dna.blood_type = blood_type
|
destination.dna.blood_type = blood_type
|
||||||
hardset_dna(destination, null, null, null, null, species)
|
hardset_dna(destination, null, null, null, null, species)
|
||||||
destination.dna.mutant_color = mutant_color
|
destination.dna.features = features
|
||||||
destination.dna.lizard_parts = lizard_parts
|
|
||||||
destination.dna.real_name = real_name
|
destination.dna.real_name = real_name
|
||||||
destination.dna.mutations = mutations
|
destination.dna.mutations = mutations
|
||||||
|
|
||||||
@@ -48,8 +46,7 @@
|
|||||||
new_dna.uni_identity = uni_identity
|
new_dna.uni_identity = uni_identity
|
||||||
new_dna.blood_type = blood_type
|
new_dna.blood_type = blood_type
|
||||||
new_dna.species = new species.type
|
new_dna.species = new species.type
|
||||||
new_dna.mutant_color = mutant_color
|
new_dna.features = features
|
||||||
new_dna.lizard_parts = lizard_parts
|
|
||||||
new_dna.real_name = real_name
|
new_dna.real_name = real_name
|
||||||
new_dna.mutations = mutations
|
new_dna.mutations = mutations
|
||||||
|
|
||||||
@@ -134,7 +131,7 @@
|
|||||||
spans |= M.get_spans()
|
spans |= M.get_spans()
|
||||||
return spans
|
return spans
|
||||||
|
|
||||||
/proc/hardset_dna(mob/living/carbon/owner, ui, se, real_name, blood_type, datum/species/mrace, mcolor, lizard_parts)
|
/proc/hardset_dna(mob/living/carbon/owner, ui, se, real_name, blood_type, datum/species/mrace, features)
|
||||||
if(!ismonkey(owner) && !ishuman(owner))
|
if(!ismonkey(owner) && !ishuman(owner))
|
||||||
return
|
return
|
||||||
if(!owner.dna)
|
if(!owner.dna)
|
||||||
@@ -146,15 +143,8 @@
|
|||||||
owner.reagents.del_reagent(exotic_blood.id)
|
owner.reagents.del_reagent(exotic_blood.id)
|
||||||
owner.dna.species = new mrace()
|
owner.dna.species = new mrace()
|
||||||
|
|
||||||
if(mcolor)
|
if(features)
|
||||||
owner.dna.mutant_color = mcolor
|
owner.dna.features = features
|
||||||
|
|
||||||
if(lizard_parts)
|
|
||||||
owner.dna.lizard_parts = lizard_parts
|
|
||||||
if(ishuman(owner))
|
|
||||||
var/mob/living/carbon/human/H = owner
|
|
||||||
H.lizard_parts = lizard_parts
|
|
||||||
|
|
||||||
|
|
||||||
if(real_name)
|
if(real_name)
|
||||||
owner.real_name = real_name
|
owner.real_name = real_name
|
||||||
@@ -203,9 +193,7 @@
|
|||||||
character.dna.uni_identity = character.dna.generate_uni_identity(character)
|
character.dna.uni_identity = character.dna.generate_uni_identity(character)
|
||||||
character.dna.struc_enzymes = character.dna.generate_struc_enzymes(character)
|
character.dna.struc_enzymes = character.dna.generate_struc_enzymes(character)
|
||||||
character.dna.unique_enzymes = character.dna.generate_unique_enzymes(character)
|
character.dna.unique_enzymes = character.dna.generate_unique_enzymes(character)
|
||||||
if(istype(character, /mob/living/carbon/human))
|
character.dna.features = character.features
|
||||||
var/mob/living/carbon/human/H = character
|
|
||||||
H.dna.lizard_parts = H.lizard_parts
|
|
||||||
return character.dna
|
return character.dna
|
||||||
|
|
||||||
/proc/create_dna(mob/living/carbon/C, datum/species/S) //don't use this unless you're about to use hardset_dna or ready_dna
|
/proc/create_dna(mob/living/carbon/C, datum/species/S) //don't use this unless you're about to use hardset_dna or ready_dna
|
||||||
@@ -985,7 +973,7 @@
|
|||||||
|
|
||||||
/datum/dna/proc/is_same_as(var/datum/dna/D)
|
/datum/dna/proc/is_same_as(var/datum/dna/D)
|
||||||
if(uni_identity == D.uni_identity && struc_enzymes == D.struc_enzymes && real_name == D.real_name)
|
if(uni_identity == D.uni_identity && struc_enzymes == D.struc_enzymes && real_name == D.real_name)
|
||||||
if(species == D.species && mutant_color == D.mutant_color && blood_type == D.blood_type && D.lizard_parts == lizard_parts)
|
if(species == D.species && features == D.features && blood_type == D.blood_type)
|
||||||
return 1
|
return 1
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|||||||
@@ -213,7 +213,7 @@
|
|||||||
|
|
||||||
/obj/effect/cocoon/abductor/proc/Copy(var/mob/living/carbon/human/H)
|
/obj/effect/cocoon/abductor/proc/Copy(var/mob/living/carbon/human/H)
|
||||||
var/mob/living/carbon/human/interactive/greytide/clone = new(src)
|
var/mob/living/carbon/human/interactive/greytide/clone = new(src)
|
||||||
hardset_dna(clone,H.dna.uni_identity,H.dna.struc_enzymes,H.real_name, H.dna.blood_type, H.dna.species.type, H.dna.mutant_color)
|
hardset_dna(clone,H.dna.uni_identity,H.dna.struc_enzymes,H.real_name, H.dna.blood_type, H.dna.species.type, H.dna.features)
|
||||||
|
|
||||||
//There's no define for this / get all items ?
|
//There's no define for this / get all items ?
|
||||||
var/list/slots = list(slot_back,slot_w_uniform,slot_wear_suit,\
|
var/list/slots = list(slot_back,slot_w_uniform,slot_wear_suit,\
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.skin_tone]_[g]_s")
|
photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.skin_tone]_[g]_s")
|
||||||
else
|
else
|
||||||
photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.dna.species.id]_[g]_s")
|
photo = icon("icon" = 'icons/mob/human.dmi', "icon_state" = "[H.dna.species.id]_[g]_s")
|
||||||
photo.Blend("#[H.dna.mutant_color]", ICON_MULTIPLY)
|
photo.Blend("#[H.dna.features["mcolor"]]", ICON_MULTIPLY)
|
||||||
|
|
||||||
var/icon/eyes_s
|
var/icon/eyes_s
|
||||||
if(EYECOLOR in H.dna.species.specflags)
|
if(EYECOLOR in H.dna.species.specflags)
|
||||||
|
|||||||
@@ -92,7 +92,7 @@
|
|||||||
new_dna.struc_enzymes = T.dna.struc_enzymes
|
new_dna.struc_enzymes = T.dna.struc_enzymes
|
||||||
new_dna.real_name = T.dna.real_name
|
new_dna.real_name = T.dna.real_name
|
||||||
new_dna.species = T.dna.species
|
new_dna.species = T.dna.species
|
||||||
new_dna.mutant_color = T.dna.mutant_color
|
new_dna.features = T.dna.features
|
||||||
new_dna.blood_type = T.dna.blood_type
|
new_dna.blood_type = T.dna.blood_type
|
||||||
absorbedcount++
|
absorbedcount++
|
||||||
store_dna(new_dna, user)
|
store_dna(new_dna, user)
|
||||||
|
|||||||
@@ -91,7 +91,7 @@
|
|||||||
var/datum/dna/NewDNA = selected_dna
|
var/datum/dna/NewDNA = selected_dna
|
||||||
if(ismonkey(target))
|
if(ismonkey(target))
|
||||||
user << "<span class='notice'>We stealthily sting [target.name].</span>"
|
user << "<span class='notice'>We stealthily sting [target.name].</span>"
|
||||||
hardset_dna(target, NewDNA.uni_identity, NewDNA.struc_enzymes, NewDNA.real_name, NewDNA.blood_type, NewDNA.species.type, NewDNA.mutant_color, NewDNA.lizard_parts)
|
hardset_dna(target, NewDNA.uni_identity, NewDNA.struc_enzymes, NewDNA.real_name, NewDNA.blood_type, NewDNA.species.type, NewDNA.features)
|
||||||
updateappearance(target)
|
updateappearance(target)
|
||||||
feedback_add_details("changeling_powers","TS")
|
feedback_add_details("changeling_powers","TS")
|
||||||
return 1
|
return 1
|
||||||
|
|||||||
@@ -17,9 +17,7 @@
|
|||||||
|
|
||||||
user.dna = chosen_dna
|
user.dna = chosen_dna
|
||||||
user.real_name = chosen_dna.real_name
|
user.real_name = chosen_dna.real_name
|
||||||
hardset_dna(user, null, null, null, null, chosen_dna.species.type)
|
hardset_dna(user, null, null, null, null, chosen_dna.species.type, chosen_dna.features)
|
||||||
user.dna.mutant_color = chosen_dna.mutant_color
|
|
||||||
user.dna.lizard_parts = chosen_dna.lizard_parts
|
|
||||||
updateappearance(user)
|
updateappearance(user)
|
||||||
domutcheck(user)
|
domutcheck(user)
|
||||||
|
|
||||||
|
|||||||
@@ -122,7 +122,7 @@
|
|||||||
//Clonepod
|
//Clonepod
|
||||||
|
|
||||||
//Start growing a human clone in the pod!
|
//Start growing a human clone in the pod!
|
||||||
/obj/machinery/clonepod/proc/growclone(var/ckey, var/clonename, var/ui, var/se, var/mindref, var/datum/species/mrace, var/mcolor, var/lizard_parts, var/factions)
|
/obj/machinery/clonepod/proc/growclone(var/ckey, var/clonename, var/ui, var/se, var/mindref, var/datum/species/mrace, var/list/features, var/factions)
|
||||||
if(panel_open)
|
if(panel_open)
|
||||||
return 0
|
return 0
|
||||||
if(mess || attempting)
|
if(mess || attempting)
|
||||||
@@ -183,7 +183,7 @@
|
|||||||
H.ckey = ckey
|
H.ckey = ckey
|
||||||
H << "<span class='notice'><b>Consciousness slowly creeps over you as your body regenerates.</b><br><i>So this is what cloning feels like?</i></span>"
|
H << "<span class='notice'><b>Consciousness slowly creeps over you as your body regenerates.</b><br><i>So this is what cloning feels like?</i></span>"
|
||||||
|
|
||||||
hardset_dna(H, ui, se, null, null, mrace, mcolor, lizard_parts)
|
hardset_dna(H, ui, se, null, null, mrace, features)
|
||||||
H.faction |= factions
|
H.faction |= factions
|
||||||
|
|
||||||
H.set_cloned_appearance()
|
H.set_cloned_appearance()
|
||||||
|
|||||||
@@ -35,7 +35,7 @@
|
|||||||
if(!(pod1.occupant || pod1.mess) && (pod1.efficiency > 5))
|
if(!(pod1.occupant || pod1.mess) && (pod1.efficiency > 5))
|
||||||
for(var/datum/data/record/R in records)
|
for(var/datum/data/record/R in records)
|
||||||
if(!(pod1.occupant || pod1.mess))
|
if(!(pod1.occupant || pod1.mess))
|
||||||
if(pod1.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["mcolor"], R.fields["lizard_parts"], R.fields["factions"]))
|
if(pod1.growclone(R.fields["ckey"], R.fields["name"], R.fields["UI"], R.fields["SE"], R.fields["mind"], R.fields["mrace"], R.fields["features"], R.fields["factions"]))
|
||||||
records -= R
|
records -= R
|
||||||
|
|
||||||
/obj/machinery/computer/cloning/proc/updatemodules()
|
/obj/machinery/computer/cloning/proc/updatemodules()
|
||||||
@@ -329,7 +329,7 @@
|
|||||||
temp = "<font class='bad'>Clonepod malfunction.</font>"
|
temp = "<font class='bad'>Clonepod malfunction.</font>"
|
||||||
else if(!config.revival_cloning)
|
else if(!config.revival_cloning)
|
||||||
temp = "<font class='bad'>Unable to initiate cloning cycle.</font>"
|
temp = "<font class='bad'>Unable to initiate cloning cycle.</font>"
|
||||||
else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["mcolor"], C.fields["lizard_parts"], C.fields["factions"]))
|
else if(pod1.growclone(C.fields["ckey"], C.fields["name"], C.fields["UI"], C.fields["SE"], C.fields["mind"], C.fields["mrace"], C.fields["features"], C.fields["factions"]))
|
||||||
temp = "[C.fields["name"]] => <font class='good'>Cloning cycle in progress...</font>"
|
temp = "[C.fields["name"]] => <font class='good'>Cloning cycle in progress...</font>"
|
||||||
records.Remove(C)
|
records.Remove(C)
|
||||||
if(active_record == C)
|
if(active_record == C)
|
||||||
@@ -380,8 +380,7 @@
|
|||||||
R.fields["UI"] = subject.dna.uni_identity
|
R.fields["UI"] = subject.dna.uni_identity
|
||||||
R.fields["SE"] = subject.dna.struc_enzymes
|
R.fields["SE"] = subject.dna.struc_enzymes
|
||||||
R.fields["blood_type"] = subject.dna.blood_type
|
R.fields["blood_type"] = subject.dna.blood_type
|
||||||
R.fields["mcolor"] = subject.dna.mutant_color
|
R.fields["features"] = subject.dna.features
|
||||||
R.fields["lizard_parts"] = subject.dna.lizard_parts
|
|
||||||
R.fields["factions"] = subject.faction
|
R.fields["factions"] = subject.faction
|
||||||
//Add an implant if needed
|
//Add an implant if needed
|
||||||
var/obj/item/weapon/implant/health/imp = locate(/obj/item/weapon/implant/health, subject)
|
var/obj/item/weapon/implant/health/imp = locate(/obj/item/weapon/implant/health, subject)
|
||||||
|
|||||||
@@ -150,7 +150,7 @@
|
|||||||
var/temp_hsv = RGBtoHSV(new_mutantcolor)
|
var/temp_hsv = RGBtoHSV(new_mutantcolor)
|
||||||
|
|
||||||
if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright
|
if(ReadHSV(temp_hsv)[3] >= ReadHSV("#7F7F7F")[3]) // mutantcolors must be bright
|
||||||
H.dna.mutant_color = sanitize_hexcolor(new_mutantcolor)
|
H.dna.features["mcolor"] = sanitize_hexcolor(new_mutantcolor)
|
||||||
|
|
||||||
else
|
else
|
||||||
H << "<span class='notice'>Invalid color. Your color is not bright enough.</span>"
|
H << "<span class='notice'>Invalid color. Your color is not bright enough.</span>"
|
||||||
|
|||||||
@@ -298,7 +298,7 @@ Traitors and the like can also be revived with the previous role mostly intact.
|
|||||||
|
|
||||||
//DNA
|
//DNA
|
||||||
if(record_found)//Pull up their name from database records if they did have a mind.
|
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"], record_found.fields["lizard_parts"])
|
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.
|
else//If they have no records, we just do a random DNA for them, based on their random appearance/savefile.
|
||||||
ready_dna(new_character)
|
ready_dna(new_character)
|
||||||
|
|
||||||
|
|||||||
@@ -61,8 +61,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
|||||||
var/skin_tone = "caucasian1" //Skin color
|
var/skin_tone = "caucasian1" //Skin color
|
||||||
var/eye_color = "000" //Eye color
|
var/eye_color = "000" //Eye color
|
||||||
var/datum/species/pref_species = new /datum/species/human() //Mutant race
|
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/lizard_parts = list("tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None")
|
|
||||||
|
|
||||||
var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity")
|
var/list/custom_names = list("clown", "mime", "ai", "cyborg", "religion", "deity")
|
||||||
|
|
||||||
@@ -245,7 +244,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
|||||||
|
|
||||||
dat += "<h3>Alien Color</h3>"
|
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>"
|
dat += "</td>"
|
||||||
|
|
||||||
@@ -254,7 +253,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
|||||||
|
|
||||||
dat += "<h3>Tail</h3>"
|
dat += "<h3>Tail</h3>"
|
||||||
|
|
||||||
dat += "<a href='?_src_=prefs;preference=tail;task=input'>[lizard_parts["tail"]]</a><BR>"
|
dat += "<a href='?_src_=prefs;preference=tail;task=input'>[features["tail"]]</a><BR>"
|
||||||
|
|
||||||
dat += "</td>"
|
dat += "</td>"
|
||||||
|
|
||||||
@@ -263,7 +262,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
|||||||
|
|
||||||
dat += "<h3>Snout</h3>"
|
dat += "<h3>Snout</h3>"
|
||||||
|
|
||||||
dat += "<a href='?_src_=prefs;preference=snout;task=input'>[lizard_parts["snout"]]</a><BR>"
|
dat += "<a href='?_src_=prefs;preference=snout;task=input'>[features["snout"]]</a><BR>"
|
||||||
|
|
||||||
dat += "</td>"
|
dat += "</td>"
|
||||||
|
|
||||||
@@ -272,7 +271,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
|||||||
|
|
||||||
dat += "<h3>Horns</h3>"
|
dat += "<h3>Horns</h3>"
|
||||||
|
|
||||||
dat += "<a href='?_src_=prefs;preference=horns;task=input'>[lizard_parts["horns"]]</a><BR>"
|
dat += "<a href='?_src_=prefs;preference=horns;task=input'>[features["horns"]]</a><BR>"
|
||||||
|
|
||||||
dat += "</td>"
|
dat += "</td>"
|
||||||
|
|
||||||
@@ -281,7 +280,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
|||||||
|
|
||||||
dat += "<h3>Frills</h3>"
|
dat += "<h3>Frills</h3>"
|
||||||
|
|
||||||
dat += "<a href='?_src_=prefs;preference=frills;task=input'>[lizard_parts["frills"]]</a><BR>"
|
dat += "<a href='?_src_=prefs;preference=frills;task=input'>[features["frills"]]</a><BR>"
|
||||||
|
|
||||||
dat += "</td>"
|
dat += "</td>"
|
||||||
|
|
||||||
@@ -290,7 +289,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
|||||||
|
|
||||||
dat += "<h3>Spines</h3>"
|
dat += "<h3>Spines</h3>"
|
||||||
|
|
||||||
dat += "<a href='?_src_=prefs;preference=spines;task=input'>[lizard_parts["spines"]]</a><BR>"
|
dat += "<a href='?_src_=prefs;preference=spines;task=input'>[features["spines"]]</a><BR>"
|
||||||
|
|
||||||
dat += "</td>"
|
dat += "</td>"
|
||||||
|
|
||||||
@@ -299,7 +298,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
|||||||
|
|
||||||
dat += "<h3>Body Markings</h3>"
|
dat += "<h3>Body Markings</h3>"
|
||||||
|
|
||||||
dat += "<a href='?_src_=prefs;preference=body_markings;task=input'>[lizard_parts["body_markings"]]</a><BR>"
|
dat += "<a href='?_src_=prefs;preference=body_markings;task=input'>[features["body_markings"]]</a><BR>"
|
||||||
|
|
||||||
dat += "</td>"
|
dat += "</td>"
|
||||||
|
|
||||||
@@ -792,54 +791,54 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
|||||||
if(result)
|
if(result)
|
||||||
var/newtype = roundstart_species[result]
|
var/newtype = roundstart_species[result]
|
||||||
pref_species = new newtype()
|
pref_species = new newtype()
|
||||||
if(mutant_color == "#000")
|
if(features["mcolor"] == "#000")
|
||||||
mutant_color = pref_species.default_color
|
features["mcolor"] = pref_species.default_color
|
||||||
|
|
||||||
if("mutant_color")
|
if("mutant_color")
|
||||||
var/new_mutantcolor = input(user, "Choose your character's alien skin color:", "Character Preference") as color|null
|
var/new_mutantcolor = input(user, "Choose your character's alien skin color:", "Character Preference") as color|null
|
||||||
if(new_mutantcolor)
|
if(new_mutantcolor)
|
||||||
var/temp_hsv = RGBtoHSV(new_mutantcolor)
|
var/temp_hsv = RGBtoHSV(new_mutantcolor)
|
||||||
if(new_mutantcolor == "#000000")
|
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
|
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
|
else
|
||||||
user << "<span class='danger'>Invalid color. Your color is not bright enough.</span>"
|
user << "<span class='danger'>Invalid color. Your color is not bright enough.</span>"
|
||||||
if("tail")
|
if("tail")
|
||||||
var/new_tail
|
var/new_tail
|
||||||
new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in tails_list
|
new_tail = input(user, "Choose your character's tail:", "Character Preference") as null|anything in tails_list
|
||||||
if(new_tail)
|
if(new_tail)
|
||||||
lizard_parts["tail"] = new_tail
|
features["tail"] = new_tail
|
||||||
|
|
||||||
if("snout")
|
if("snout")
|
||||||
var/new_snout
|
var/new_snout
|
||||||
new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in snouts_list
|
new_snout = input(user, "Choose your character's snout:", "Character Preference") as null|anything in snouts_list
|
||||||
if(new_snout)
|
if(new_snout)
|
||||||
lizard_parts["snout"] = new_snout
|
features["snout"] = new_snout
|
||||||
|
|
||||||
if("horns")
|
if("horns")
|
||||||
var/new_horns
|
var/new_horns
|
||||||
new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in horns_list
|
new_horns = input(user, "Choose your character's horns:", "Character Preference") as null|anything in horns_list
|
||||||
if(new_horns)
|
if(new_horns)
|
||||||
lizard_parts["horns"] = new_horns
|
features["horns"] = new_horns
|
||||||
|
|
||||||
if("frills")
|
if("frills")
|
||||||
var/new_frills
|
var/new_frills
|
||||||
new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in frills_list
|
new_frills = input(user, "Choose your character's frills:", "Character Preference") as null|anything in frills_list
|
||||||
if(new_frills)
|
if(new_frills)
|
||||||
lizard_parts["frills"] = new_frills
|
features["frills"] = new_frills
|
||||||
|
|
||||||
if("spines")
|
if("spines")
|
||||||
var/new_spines
|
var/new_spines
|
||||||
new_spines = input(user, "Choose your character's spines:", "Character Preference") as null|anything in spines_list
|
new_spines = input(user, "Choose your character's spines:", "Character Preference") as null|anything in spines_list
|
||||||
if(new_spines)
|
if(new_spines)
|
||||||
lizard_parts["spines"] = new_spines
|
features["spines"] = new_spines
|
||||||
|
|
||||||
if("body_markings")
|
if("body_markings")
|
||||||
var/new_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
|
new_body_markings = input(user, "Choose your character's body markings:", "Character Preference") as null|anything in body_markings_list
|
||||||
if(new_body_markings)
|
if(new_body_markings)
|
||||||
lizard_parts["body_markings"] = new_body_markings
|
features["body_markings"] = new_body_markings
|
||||||
|
|
||||||
if("s_tone")
|
if("s_tone")
|
||||||
var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones
|
var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in skin_tones
|
||||||
@@ -1010,10 +1009,9 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
|||||||
if(character.dna)
|
if(character.dna)
|
||||||
character.dna.real_name = character.real_name
|
character.dna.real_name = character.real_name
|
||||||
if(pref_species != /datum/species/human && config.mutant_races)
|
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
|
else
|
||||||
hardset_dna(character, null, null, null, null, /datum/species/human)
|
hardset_dna(character, null, null, null, null, /datum/species/human, features)
|
||||||
character.dna.mutant_color = mutant_color
|
|
||||||
character.update_mutcolor()
|
character.update_mutcolor()
|
||||||
|
|
||||||
character.gender = gender
|
character.gender = gender
|
||||||
@@ -1031,7 +1029,7 @@ var/global/list/special_roles = list( //keep synced with the defines BE_* in set
|
|||||||
character.undershirt = undershirt
|
character.undershirt = undershirt
|
||||||
character.socks = socks
|
character.socks = socks
|
||||||
|
|
||||||
character.lizard_parts = lizard_parts
|
character.features = features
|
||||||
|
|
||||||
if(backbag > 3 || backbag < 1)
|
if(backbag > 3 || backbag < 1)
|
||||||
backbag = 1 //Same as above
|
backbag = 1 //Same as above
|
||||||
|
|||||||
@@ -166,8 +166,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
|||||||
else
|
else
|
||||||
pref_species = new /datum/species/human()
|
pref_species = new /datum/species/human()
|
||||||
|
|
||||||
if(!S["mutant_color"] || S["mutant_color"] == "#000")
|
if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000")
|
||||||
S["mutant_color"] << "#FFF"
|
S["features["mcolor"]"] << "#FFF"
|
||||||
|
|
||||||
//Character
|
//Character
|
||||||
S["OOC_Notes"] >> metadata
|
S["OOC_Notes"] >> metadata
|
||||||
@@ -186,8 +186,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
|||||||
S["undershirt"] >> undershirt
|
S["undershirt"] >> undershirt
|
||||||
S["socks"] >> socks
|
S["socks"] >> socks
|
||||||
S["backbag"] >> backbag
|
S["backbag"] >> backbag
|
||||||
S["mutant_color"] >> mutant_color
|
S["features"] >> features
|
||||||
S["lizard_parts"] >> lizard_parts
|
|
||||||
S["clown_name"] >> custom_names["clown"]
|
S["clown_name"] >> custom_names["clown"]
|
||||||
S["mime_name"] >> custom_names["mime"]
|
S["mime_name"] >> custom_names["mime"]
|
||||||
S["ai_name"] >> custom_names["ai"]
|
S["ai_name"] >> custom_names["ai"]
|
||||||
@@ -214,8 +213,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
|||||||
//Sanitize
|
//Sanitize
|
||||||
metadata = sanitize_text(metadata, initial(metadata))
|
metadata = sanitize_text(metadata, initial(metadata))
|
||||||
real_name = reject_bad_name(real_name)
|
real_name = reject_bad_name(real_name)
|
||||||
if(!mutant_color || mutant_color == "#000")
|
if(!features["mcolor"] || features["mcolor"] == "#000")
|
||||||
mutant_color = "#FFF"
|
features["mcolor"] = "#FFF"
|
||||||
if(!real_name) real_name = random_name(gender)
|
if(!real_name) real_name = random_name(gender)
|
||||||
be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name))
|
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))
|
be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body))
|
||||||
@@ -239,13 +238,13 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
|||||||
eye_color = sanitize_hexcolor(eye_color, 3, 0)
|
eye_color = sanitize_hexcolor(eye_color, 3, 0)
|
||||||
skin_tone = sanitize_inlist(skin_tone, skin_tones)
|
skin_tone = sanitize_inlist(skin_tone, skin_tones)
|
||||||
backbag = sanitize_integer(backbag, 1, backbaglist.len, initial(backbag))
|
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)
|
||||||
lizard_parts["tail"] = sanitize_inlist(lizard_parts["tail"], tails_list)
|
features["tail"] = sanitize_inlist(features["tail"], tails_list)
|
||||||
lizard_parts["snout"] = sanitize_inlist(lizard_parts["snout"], snouts_list)
|
features["snout"] = sanitize_inlist(features["snout"], snouts_list)
|
||||||
lizard_parts["horns"] = sanitize_inlist(lizard_parts["horns"], horns_list)
|
features["horns"] = sanitize_inlist(features["horns"], horns_list)
|
||||||
lizard_parts["frills"] = sanitize_inlist(lizard_parts["frills"], frills_list)
|
features["frills"] = sanitize_inlist(features["frills"], frills_list)
|
||||||
lizard_parts["spines"] = sanitize_inlist(lizard_parts["spines"], spines_list)
|
features["spines"] = sanitize_inlist(features["spines"], spines_list)
|
||||||
lizard_parts["body_markings"] = sanitize_inlist(lizard_parts["body_markings"], body_markings_list)
|
features["body_markings"] = sanitize_inlist(features["body_markings"], body_markings_list)
|
||||||
|
|
||||||
userandomjob = sanitize_integer(userandomjob, 0, 1, initial(userandomjob))
|
userandomjob = sanitize_integer(userandomjob, 0, 1, initial(userandomjob))
|
||||||
job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high))
|
job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high))
|
||||||
@@ -286,8 +285,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
|||||||
S["socks"] << socks
|
S["socks"] << socks
|
||||||
S["backbag"] << backbag
|
S["backbag"] << backbag
|
||||||
S["species"] << pref_species.name
|
S["species"] << pref_species.name
|
||||||
S["mutant_color"] << mutant_color
|
S["features"] << features
|
||||||
S["lizard_parts"] << lizard_parts
|
|
||||||
S["clown_name"] << custom_names["clown"]
|
S["clown_name"] << custom_names["clown"]
|
||||||
S["mime_name"] << custom_names["mime"]
|
S["mime_name"] << custom_names["mime"]
|
||||||
S["ai_name"] << custom_names["ai"]
|
S["ai_name"] << custom_names["ai"]
|
||||||
|
|||||||
@@ -848,9 +848,9 @@
|
|||||||
podman.ckey = ckey_holder
|
podman.ckey = ckey_holder
|
||||||
podman.gender = blood_gender
|
podman.gender = blood_gender
|
||||||
podman.faction |= factions
|
podman.faction |= factions
|
||||||
if(!mutant_color)
|
if(!features["mcolor"])
|
||||||
mutant_color = "#59CE00"
|
features["mcolor"] = "#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
|
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()
|
podman.set_cloned_appearance()
|
||||||
|
|
||||||
else //else, one packet of seeds. maybe two
|
else //else, one packet of seeds. maybe two
|
||||||
|
|||||||
@@ -90,7 +90,7 @@
|
|||||||
var/datum/mind/mind = null
|
var/datum/mind/mind = null
|
||||||
var/blood_gender = null
|
var/blood_gender = null
|
||||||
var/blood_type = null
|
var/blood_type = null
|
||||||
var/mutant_color = null
|
var/list/features = null
|
||||||
var/factions = null
|
var/factions = null
|
||||||
var/contains_sample = 0
|
var/contains_sample = 0
|
||||||
|
|
||||||
@@ -104,7 +104,7 @@
|
|||||||
realName = bloodSample.data["real_name"]
|
realName = bloodSample.data["real_name"]
|
||||||
blood_gender = bloodSample.data["gender"]
|
blood_gender = bloodSample.data["gender"]
|
||||||
blood_type = bloodSample.data["blood_type"]
|
blood_type = bloodSample.data["blood_type"]
|
||||||
mutant_color = bloodSample.data["mutant_color"]
|
features = bloodSample.data["features"]
|
||||||
factions = bloodSample.data["factions"]
|
factions = bloodSample.data["factions"]
|
||||||
W.reagents.clear_reagents()
|
W.reagents.clear_reagents()
|
||||||
user << "<span class='notice'>You inject the contents of the syringe into the seeds.</span>"
|
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/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/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
|
//inventory slots
|
||||||
var/obj/item/back = null
|
var/obj/item/back = null
|
||||||
var/obj/item/clothing/mask/wear_mask = 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()
|
/mob/living/carbon/human/proc/fixblood()
|
||||||
for(var/datum/reagent/blood/B in vessel.reagent_list)
|
for(var/datum/reagent/blood/B in vessel.reagent_list)
|
||||||
if(B.id == "blood")
|
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)
|
/mob/living/carbon/human/proc/suppress_bloodloss(var/amount)
|
||||||
if(bleedsuppress)
|
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["blood_type"] = copytext(src.dna.blood_type,1,0)
|
||||||
B.data["gender"] = src.gender
|
B.data["gender"] = src.gender
|
||||||
B.data["real_name"] = src.real_name
|
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
|
B.data["factions"] = src.faction
|
||||||
return B
|
return B
|
||||||
|
|
||||||
|
|||||||
@@ -25,9 +25,6 @@
|
|||||||
var/socks = "Nude" //Which socks the player wants
|
var/socks = "Nude" //Which socks the player wants
|
||||||
var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack.
|
var/backbag = 2 //Which backpack type the player has chosen. Nothing, Satchel or Backpack.
|
||||||
|
|
||||||
//Mutant Parts
|
|
||||||
var/list/lizard_parts = list("tail" = "Smooth", "snout" = "Round", "horns" = "None", "frills" = "None", "spines" = "None", "body_markings" = "None")
|
|
||||||
|
|
||||||
//Equipment slots
|
//Equipment slots
|
||||||
var/obj/item/wear_suit = null
|
var/obj/item/wear_suit = null
|
||||||
var/obj/item/w_uniform = null
|
var/obj/item/w_uniform = null
|
||||||
|
|||||||
@@ -113,7 +113,7 @@
|
|||||||
|
|
||||||
spec_base = image("icon" = 'icons/mob/human.dmi', "icon_state" = icon_state_string, "layer" = -SPECIES_LAYER)
|
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
|
standing = spec_base
|
||||||
|
|
||||||
if(standing)
|
if(standing)
|
||||||
@@ -136,7 +136,7 @@
|
|||||||
|
|
||||||
if(hair_color)
|
if(hair_color)
|
||||||
if(hair_color == "mutcolor")
|
if(hair_color == "mutcolor")
|
||||||
img_facial_s.color = "#" + H.dna.mutant_color
|
img_facial_s.color = "#" + H.dna.features["mcolor"]
|
||||||
else
|
else
|
||||||
img_facial_s.color = "#" + hair_color
|
img_facial_s.color = "#" + hair_color
|
||||||
else
|
else
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
|
|
||||||
if(hair_color)
|
if(hair_color)
|
||||||
if(hair_color == "mutcolor")
|
if(hair_color == "mutcolor")
|
||||||
img_hair_s.color = "#" + H.dna.mutant_color
|
img_hair_s.color = "#" + H.dna.features["mcolor"]
|
||||||
else
|
else
|
||||||
img_hair_s.color = "#" + hair_color
|
img_hair_s.color = "#" + hair_color
|
||||||
else
|
else
|
||||||
@@ -241,7 +241,7 @@
|
|||||||
bodyparts_to_add -= "tail"
|
bodyparts_to_add -= "tail"
|
||||||
|
|
||||||
if("spines" in mutant_bodyparts)
|
if("spines" in mutant_bodyparts)
|
||||||
if(!H.lizard_parts["spines"] || H.lizard_parts["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
|
if(!H.dna.features["spines"] || H.dna.features["spines"] == "None" || H.wear_suit && (H.wear_suit.flags_inv & HIDEJUMPSUIT))
|
||||||
bodyparts_to_add -= "spines"
|
bodyparts_to_add -= "spines"
|
||||||
|
|
||||||
if("snout" in mutant_bodyparts) //Take a closer look at that snout!
|
if("snout" in mutant_bodyparts) //Take a closer look at that snout!
|
||||||
@@ -249,11 +249,11 @@
|
|||||||
bodyparts_to_add -= "snout"
|
bodyparts_to_add -= "snout"
|
||||||
|
|
||||||
if("frills" in mutant_bodyparts)
|
if("frills" in mutant_bodyparts)
|
||||||
if(!H.lizard_parts["frills"] || H.lizard_parts["frills"] == "None" || H.head && (H.head.flags_inv & HIDEEARS))
|
if(!H.dna.features["frills"] || H.dna.features["frills"] == "None" || H.head && (H.head.flags_inv & HIDEEARS))
|
||||||
bodyparts_to_add -= "frills"
|
bodyparts_to_add -= "frills"
|
||||||
|
|
||||||
if("horns" in mutant_bodyparts)
|
if("horns" in mutant_bodyparts)
|
||||||
if(!H.lizard_parts["horns"] || H.lizard_parts["horns"] == "None" || H.head && (H.head.flags & BLOCKHAIR) || (H.wear_mask && (H.wear_mask.flags & BLOCKHAIR)))
|
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"
|
bodyparts_to_add -= "horns"
|
||||||
|
|
||||||
if(!bodyparts_to_add)
|
if(!bodyparts_to_add)
|
||||||
@@ -268,19 +268,19 @@
|
|||||||
var/datum/sprite_accessory/S
|
var/datum/sprite_accessory/S
|
||||||
switch(bodypart)
|
switch(bodypart)
|
||||||
if("tail")
|
if("tail")
|
||||||
S = tails_list[H.lizard_parts["tail"]]
|
S = tails_list[H.dna.features["tail"]]
|
||||||
if("spines")
|
if("spines")
|
||||||
S = spines_list[H.lizard_parts["spines"]]
|
S = spines_list[H.dna.features["spines"]]
|
||||||
if("snout")
|
if("snout")
|
||||||
S = snouts_list[H.lizard_parts["snout"]]
|
S = snouts_list[H.dna.features["snout"]]
|
||||||
if("frills")
|
if("frills")
|
||||||
S = frills_list[H.lizard_parts["frills"]]
|
S = frills_list[H.dna.features["frills"]]
|
||||||
if("horns")
|
if("horns")
|
||||||
S = horns_list[H.lizard_parts["horns"]]
|
S = horns_list[H.dna.features["horns"]]
|
||||||
if("body_markings")
|
if("body_markings")
|
||||||
S = body_markings_list[H.lizard_parts["body_markings"]]
|
S = body_markings_list[H.dna.features["body_markings"]]
|
||||||
|
|
||||||
if(S.icon_state == "none")
|
if(!S || S.icon_state == "none")
|
||||||
continue
|
continue
|
||||||
var/icon_string
|
var/icon_string
|
||||||
if(S.gender_specific)
|
if(S.gender_specific)
|
||||||
@@ -291,7 +291,7 @@
|
|||||||
I = image("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = icon_string, "layer" =- layer)
|
I = image("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = icon_string, "layer" =- layer)
|
||||||
|
|
||||||
if(!(H.disabilities & HUSK))
|
if(!(H.disabilities & HUSK))
|
||||||
I.color = "#[H.dna.mutant_color]"
|
I.color = "#[H.dna.features["mcolor"]]"
|
||||||
standing += I
|
standing += I
|
||||||
H.overlays_standing[layer] = standing.Copy()
|
H.overlays_standing[layer] = standing.Copy()
|
||||||
standing = list()
|
standing = list()
|
||||||
|
|||||||
@@ -17,7 +17,7 @@
|
|||||||
if(!pref_species)
|
if(!pref_species)
|
||||||
pref_species = new /datum/species/human()
|
pref_species = new /datum/species/human()
|
||||||
backbag = 2
|
backbag = 2
|
||||||
lizard_parts = random_lizard_features()
|
features = random_features()
|
||||||
age = rand(AGE_MIN,AGE_MAX)
|
age = rand(AGE_MIN,AGE_MAX)
|
||||||
|
|
||||||
/datum/preferences/proc/update_preview_icon() //seriously. This is horrendous.
|
/datum/preferences/proc/update_preview_icon() //seriously. This is horrendous.
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
preview_icon = new /icon('icons/mob/human.dmi', "[skin_tone]_[g]_s")
|
preview_icon = new /icon('icons/mob/human.dmi', "[skin_tone]_[g]_s")
|
||||||
else
|
else
|
||||||
preview_icon = new /icon('icons/mob/human.dmi', "[pref_species.id]_[g]_s")
|
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
|
var/datum/sprite_accessory/S
|
||||||
var/icon/eyes_s = new/icon()
|
var/icon/eyes_s = new/icon()
|
||||||
@@ -79,17 +79,17 @@
|
|||||||
for(var/bodypart in pref_species.mutant_bodyparts)
|
for(var/bodypart in pref_species.mutant_bodyparts)
|
||||||
switch(bodypart)
|
switch(bodypart)
|
||||||
if("tail")
|
if("tail")
|
||||||
S = tails_list[lizard_parts["tail"]]
|
S = tails_list[features["tail"]]
|
||||||
if("spines")
|
if("spines")
|
||||||
S = spines_list[lizard_parts["spines"]]
|
S = spines_list[features["spines"]]
|
||||||
if("snout")
|
if("snout")
|
||||||
S = snouts_list[lizard_parts["snout"]]
|
S = snouts_list[features["snout"]]
|
||||||
if("frills")
|
if("frills")
|
||||||
S = frills_list[lizard_parts["frills"]]
|
S = frills_list[features["frills"]]
|
||||||
if("horns")
|
if("horns")
|
||||||
S = horns_list[lizard_parts["horns"]]
|
S = horns_list[features["horns"]]
|
||||||
if("body_markings")
|
if("body_markings")
|
||||||
S = body_markings_list[lizard_parts["body_markings"]]
|
S = body_markings_list[features["body_markings"]]
|
||||||
|
|
||||||
if(S.icon_state == "none")
|
if(S.icon_state == "none")
|
||||||
continue
|
continue
|
||||||
@@ -100,7 +100,7 @@
|
|||||||
icon_string = "[pref_species.id]_m_[bodypart]_[S.icon_state]_[layer]"
|
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)
|
var/icon/part = new/icon("icon" = 'icons/mob/mutant_bodyparts.dmi', "icon_state" = icon_string)
|
||||||
|
|
||||||
part.Blend("#[mutant_color]", ICON_MULTIPLY)
|
part.Blend("#[features["mcolor"]]", ICON_MULTIPLY)
|
||||||
preview_icon.Blend(part, ICON_OVERLAY)
|
preview_icon.Blend(part, ICON_OVERLAY)
|
||||||
|
|
||||||
if(underwear)
|
if(underwear)
|
||||||
|
|||||||
Reference in New Issue
Block a user