Noir Doesn't Grey out HUD, Adds Remaining Glasses for Vox, 'Yi' to Vox-pidgin syllables & Framework for Icon-based Skin Tone, Fixes #3138, Greyscales Vox Hair (#4614)

* Ports #9294 and #9322 from VG: 'Yi' to Vox-pidgin and Framework for Icon-based Skin Tone (Feat. Vox) and Glasses/Goggles for Vox.

Both ported PRs by Intigracy.

Also adds all remaining in-use glasses/goggle sprites for Vox. I cleaned up the code a bit while I was in there. Otherwise, that's it.

Furthermore, randomizing skin tone doesn't seem to work for Vox despite their being specified in the conditional lists and s_tone being not null.

* Morph Support

* CMA Support

* Ports Intigracy's vgstation13/pull/9460, Noir Vision No Longer Greys Out HUD.

* Fixes Positioning of Vox Jensen Shades East+West facing Sprites.

Fixes Heist Goofery

Game-mode (not one-click antag) Heist tweaked and returned to working order now that I've found out how to test the actual game-mode (after temporarily adjusting the population requirement).

Vox Raiders won't spawn in with whatever socks were in their selected spawn-character's preferences anymore.

Additionally, the set_species proc now zeroes out skin tone if the species doesn't have skin tone to avoid goofing up the icons on initial generation.

Also condenses the code in preferences_setup character creation icon generation. Made it use the individual species' skin-tone handling procs instead of code snowflaked into preferences_setup.dm.

* No More Vox Tail Colours, but they can Colour Their Hair.

* Removes unneeded 'src's and retroactively prohibits colouring tails on species without HAS_SKIN_COLOR.

Colouration won't be applied to src's tail unless HAS_SKIN_COLOR is in
src's species bodyflags.

* Tidies up some Lists in CharPrefs and Retroactively Prohibits Vox Hair Colouration

* Reverts unnecessary commenting out of vox armalis post-spawn handling parent call.

* Adds Emerald and Azure Vox Skin Tones.

* Stealthy Wryn Typo Fixed.

* Greyscales Vox Head+Facial Hair and Adds More Default Colours in Species Definitions

* Gives Vox Raiders Default Hair Colour and Fixes Bug where Roundstart Raiders don't get Random Skin
This commit is contained in:
KasparoVy
2016-06-19 11:35:36 -04:00
committed by Fox McCloud
parent ea1196b1ce
commit 3dba1b2886
36 changed files with 323 additions and 140 deletions
@@ -29,7 +29,7 @@
var/disfigured = 0
var/cannot_amputate
var/cannot_break
var/s_tone
var/s_tone = null
var/list/s_col = null // If this is instantiated, it should be a list of length 3
var/list/wounds = list()
var/list/child_icons = list()
+12 -11
View File
@@ -14,32 +14,33 @@ var/global/list/limb_icon_cache = list()
overlays += organ.mob_icon
child_icons += organ.mob_icon
/obj/item/organ/external/proc/sync_colour_to_human(var/mob/living/carbon/human/human)
/obj/item/organ/external/proc/sync_colour_to_human(var/mob/living/carbon/human/H)
if(status & ORGAN_ROBOT && !(species && species.name == "Machine")) //machine people get skin color
return
if(species && human.species && species.name != human.species.name)
if(species && H.species && species.name != H.species.name)
return
if(dna.unique_enzymes != human.dna.unique_enzymes) // This isn't MY arm
sync_colour_to_dna()
return
if(!isnull(human.s_tone) && (human.species.bodyflags & HAS_SKIN_TONE))
if(dna.unique_enzymes != H.dna.unique_enzymes) // This isn't MY arm
if(!(H.species.bodyflags & HAS_ICON_SKIN_TONE))
sync_colour_to_dna()
return
if(!isnull(H.s_tone) && ((H.species.bodyflags & HAS_SKIN_TONE) || (H.species.bodyflags & HAS_ICON_SKIN_TONE)))
s_col = null
s_tone = human.s_tone
if(human.species.bodyflags & HAS_SKIN_COLOR)
s_tone = H.s_tone
if(H.species.bodyflags & HAS_SKIN_COLOR)
s_tone = null
s_col = list(human.r_skin, human.g_skin, human.b_skin)
s_col = list(H.r_skin, H.g_skin, H.b_skin)
/obj/item/organ/external/proc/sync_colour_to_dna()
if(status & ORGAN_ROBOT)
return
if(!isnull(dna.GetUIValue(DNA_UI_SKIN_TONE)) && (species.flags & HAS_SKIN_TONE))
if(!isnull(dna.GetUIValue(DNA_UI_SKIN_TONE)) && ((species.bodyflags & HAS_SKIN_TONE) || (species.bodyflags & HAS_ICON_SKIN_TONE)))
s_col = null
s_tone = dna.GetUIValue(DNA_UI_SKIN_TONE)
if(species.flags & HAS_SKIN_COLOR)
s_tone = null
s_col = list(dna.GetUIValue(DNA_UI_SKIN_R), dna.GetUIValue(DNA_UI_SKIN_G), dna.GetUIValue(DNA_UI_SKIN_B))
/obj/item/organ/external/head/sync_colour_to_human(var/mob/living/carbon/human/human)
/obj/item/organ/external/head/sync_colour_to_human(var/mob/living/carbon/human/H)
..()
var/obj/item/organ/internal/eyes/eyes = owner.get_int_organ(/obj/item/organ/internal/eyes)//owner.internal_organs_by_name["eyes"]
if(eyes) eyes.update_colour()
+1 -2
View File
@@ -1,5 +1,4 @@
var/global/list/all_robolimbs = list()
var/global/list/robolimb_data = list()
var/global/list/chargen_robolimbs = list()
var/global/datum/robolimb/basic_robolimb
@@ -20,7 +19,7 @@ var/global/datum/robolimb/basic_robolimb
var/unavailable_at_chargen // If set, not available at chargen.
var/is_monitor // If set, limb is a monitor and should be getting monitor styles.
var/has_subtypes = 2 // If null, object is a model. If 1, object is a brand (that serves as the default model) with child models. If 2, object is a brand that has no child models and thus also serves as the model..
var/parts = list("chest", "groin", "head", "r_arm", "r_hand", "r_leg", "r_foot", "l_leg", "l_foot", "l_arm", "l_hand") //Defines what parts said brand can replace on a body.
var/parts = list("chest", "groin", "head", "r_arm", "r_hand", "r_leg", "r_foot", "l_leg", "l_foot", "l_arm", "l_hand") // Defines what parts said brand can replace on a body.
/datum/robolimb/bishop
company = "Bishop Cybernetics"