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:
Poojawa
2019-02-22 07:59:05 -06:00
committed by kevinz000
parent d043323c69
commit b393789f19
45 changed files with 1094 additions and 457 deletions
+84 -1
View File
@@ -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()
+2 -1
View File
@@ -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()