Character Creation Overhaul (#7987)
* Rebase fail. good thing I made back ups. c: * Tails more or less done * wouldn't update cleanly otherwise * It's completly working now. holy fuck I did it Just need the refurbished body markings done, then to chop 'em up for full PR status * MARKINGS DONE AAAAAAAAAAAAA * fixes digi legs that didn't convert correctly * ports the refractored preferences Kinda ugly now tbh. but fuckit * quality sweep, things should should properly now in general * Taurs converted and improved! BODYMARKING -> MATRIXED * oops. s'what I get for not compile checking * remember to throw shade at furries * vigorously update markings upon switching species and colors * re-adds old wolf ears, Big Wolf fixes snout bugs * few more snout tweaks * cut the lists, cut everything. reeee * This code I s2g * Adds context clues to preferences Hopefully people will read them before making an OOC fuss * Fixes hands and feet markings with this one weird trick remember kids, proper layering and order of operations is important * Sprite tweaking and polishing Sergal stuff being worked on * a few QoL things for species swapping * how the fuck did I miss these markings * fleshes out sprites in preperation for marking experimentation later * fixes catboy problems * Mam_snout is a thing now, * pixel adjusted tails, cleaned up wah tail a bit better also gets digitgate legs missing pixels fixed * cleans up more shit. ree * force "plain" instead of none to avoid missing pixel reports * tweaks to reinspire mapdiff * Clean up Preference UI Looks a little better now * k * doubly ensure None markings aren't valid * reee spessman barbie * brightens pixels around tiger head markings * YEENS * Cat ears tweaked because it triggers Kev otherwise * another session of quality control * Crows and crow accessories * husk fixes * works good enough, mission accomplished * fixes the proc properly * cleans up brute force code that isn't needed * c a t
This commit is contained in:
@@ -45,6 +45,10 @@
|
||||
var/species_color = ""
|
||||
var/mutation_color = ""
|
||||
var/no_update = 0
|
||||
var/list/body_markings = list() //for bodypart markings
|
||||
var/list/markings_color = list()
|
||||
var/auxmarking
|
||||
var/list/auxmarking_color = list()
|
||||
|
||||
var/animal_origin = null //for nonhuman bodypart (e.g. monkey)
|
||||
var/dismemberable = 1 //whether it can be dismembered with a weapon.
|
||||
@@ -285,6 +289,7 @@
|
||||
should_draw_gender = FALSE
|
||||
should_draw_greyscale = FALSE
|
||||
no_update = TRUE
|
||||
body_markings = "husk" // reeee
|
||||
|
||||
if(no_update)
|
||||
return
|
||||
@@ -298,6 +303,16 @@
|
||||
should_draw_citadel = S.should_draw_citadel // Citadel Addition
|
||||
species_flags_list = H.dna.species.species_traits
|
||||
|
||||
//body marking memes
|
||||
var/list/colorlist = list()
|
||||
colorlist.Cut()
|
||||
colorlist += ReadRGB(H.dna.features["mcolor"])
|
||||
colorlist += ReadRGB(H.dna.features["mcolor2"])
|
||||
colorlist += ReadRGB(H.dna.features["mcolor3"])
|
||||
colorlist += list(0,0,0)
|
||||
for(var/index=1, index<=colorlist.len, index++)
|
||||
colorlist[index] = colorlist[index]/255
|
||||
|
||||
if(S.use_skintones)
|
||||
skin_tone = H.skin_tone
|
||||
should_draw_greyscale = TRUE
|
||||
@@ -316,6 +331,17 @@
|
||||
else
|
||||
species_color = ""
|
||||
|
||||
if("mam_body_markings" in S.default_features)
|
||||
if(H.dna.features.["mam_body_markings"] != "None")
|
||||
body_markings = lowertext(H.dna.features.["mam_body_markings"])
|
||||
if(MATRIXED)
|
||||
markings_color = list(colorlist)
|
||||
else
|
||||
markings_color = (H.dna.features.["mcolor"])
|
||||
else
|
||||
body_markings = "None"
|
||||
markings_color = ""
|
||||
|
||||
if(!dropping_limb && H.dna.check_mutation(HULK))
|
||||
mutation_color = "00aa00"
|
||||
else
|
||||
@@ -346,6 +372,7 @@
|
||||
|
||||
//Gives you a proper icon appearance for the dismembered limb
|
||||
/obj/item/bodypart/proc/get_limb_icon(dropped)
|
||||
cut_overlays()
|
||||
icon_state = "" //to erase the default sprite, we're building the visual aspects of the bodypart through overlays alone.
|
||||
|
||||
. = list()
|
||||
@@ -358,9 +385,17 @@
|
||||
. += image('icons/mob/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_[brutestate]0", -DAMAGE_LAYER, image_dir)
|
||||
if(burnstate)
|
||||
. += image('icons/mob/dam_mob.dmi', "[dmg_overlay_type]_[body_zone]_0[burnstate]", -DAMAGE_LAYER, image_dir)
|
||||
if(body_markings)
|
||||
if(use_digitigrade == NOT_DIGITIGRADE)
|
||||
. += image('modular_citadel/icons/mob/mam_markings.dmi', "[body_markings]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
else
|
||||
. += image('modular_citadel/icons/mob/mam_markings.dmi', "[body_markings]_digitigrade_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
|
||||
var/image/limb = image(layer = -BODYPARTS_LAYER, dir = image_dir)
|
||||
var/image/aux
|
||||
var/image/marking
|
||||
var/image/auxmarking
|
||||
|
||||
. += limb
|
||||
|
||||
if(animal_origin)
|
||||
@@ -403,11 +438,31 @@
|
||||
limb.icon_state = "[species_id]_[body_zone]_[icon_gender]"
|
||||
else
|
||||
limb.icon_state = "[species_id]_[body_zone]"
|
||||
|
||||
// Body markings
|
||||
if(body_markings)
|
||||
if(species_id == "husk")
|
||||
marking = image('modular_citadel/icons/mob/mam_markings.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
else if(species_id == "husk" && use_digitigrade)
|
||||
marking = image('modular_citadel/icons/mob/mam_markings.dmi', "husk_digitigrade_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
|
||||
else if(!use_digitigrade)
|
||||
marking = image('modular_citadel/icons/mob/mam_markings.dmi', "[body_markings]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
else
|
||||
marking = image('modular_citadel/icons/mob/mam_markings.dmi', "[body_markings]_digitigrade_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
. += marking
|
||||
|
||||
// Citadel End
|
||||
|
||||
if(aux_zone)
|
||||
aux = image(limb.icon, "[species_id]_[aux_zone]", -aux_layer, image_dir)
|
||||
. += aux
|
||||
if(body_markings)
|
||||
if(species_id == "husk")
|
||||
auxmarking = image('modular_citadel/icons/mob/mam_markings.dmi', "husk_[aux_zone]", -aux_layer, image_dir)
|
||||
else
|
||||
auxmarking = image('modular_citadel/icons/mob/mam_markings.dmi', "[body_markings]_[aux_zone]", -aux_layer, image_dir)
|
||||
. += auxmarking
|
||||
|
||||
else
|
||||
limb.icon = icon
|
||||
@@ -416,17 +471,45 @@
|
||||
else
|
||||
limb.icon_state = "[body_zone]"
|
||||
if(aux_zone)
|
||||
aux = image(limb.icon, "[aux_zone]", -aux_layer, image_dir)
|
||||
aux = image(limb.icon, "[species_id]_[aux_zone]", -aux_layer, image_dir)
|
||||
. += aux
|
||||
if(body_markings)
|
||||
if(species_id == "husk")
|
||||
auxmarking = image('modular_citadel/icons/mob/mam_markings.dmi', "husk_[aux_zone]", -aux_layer, image_dir)
|
||||
else
|
||||
auxmarking = image('modular_citadel/icons/mob/mam_markings.dmi', "[body_markings]_[aux_zone]", -aux_layer, image_dir)
|
||||
. += auxmarking
|
||||
|
||||
if(body_markings)
|
||||
if(species_id == "husk")
|
||||
marking = image('modular_citadel/icons/mob/mam_markings.dmi', "husk_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
else if(species_id == "husk" && use_digitigrade)
|
||||
marking = image('modular_citadel/icons/mob/mam_markings.dmi', "husk_digitigrade_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
|
||||
else if(!use_digitigrade)
|
||||
marking = image('modular_citadel/icons/mob/mam_markings.dmi', "[body_markings]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
else
|
||||
marking = image('modular_citadel/icons/mob/mam_markings.dmi', "[body_markings]_digitigrade_[use_digitigrade]_[body_zone]", -MARKING_LAYER, image_dir)
|
||||
. += marking
|
||||
return
|
||||
|
||||
|
||||
if(should_draw_greyscale)
|
||||
marking.color = null
|
||||
var/draw_color = mutation_color || species_color || (skin_tone && skintone2hex(skin_tone))
|
||||
if(draw_color)
|
||||
limb.color = "#[draw_color]"
|
||||
if(aux_zone)
|
||||
aux.color = "#[draw_color]"
|
||||
if(body_markings)
|
||||
auxmarking.color = list(markings_color)
|
||||
|
||||
if(body_markings)
|
||||
if(species_id == "husk")
|
||||
marking.color = "#141414"
|
||||
else
|
||||
marking.color = list(markings_color)
|
||||
|
||||
|
||||
/obj/item/bodypart/deconstruct(disassembled = TRUE)
|
||||
drop_organs()
|
||||
|
||||
@@ -288,6 +288,7 @@
|
||||
O.drop_limb(1)
|
||||
qdel(O)
|
||||
N.attach_limb(src)
|
||||
|
||||
if(body_plan_changed && ishuman(src))
|
||||
var/mob/living/carbon/human/H = src
|
||||
if(H.w_uniform)
|
||||
@@ -311,4 +312,4 @@
|
||||
S.adjusted = NORMAL_STYLE
|
||||
else
|
||||
S.adjusted = ALT_STYLE
|
||||
H.update_inv_wear_suit()
|
||||
H.update_inv_wear_suit()
|
||||
|
||||
Reference in New Issue
Block a user