Adds the ability to change skin color for Greys. (#25473)

* Sets groundwork for different grey skins. Sprites work fine, but preferences and char preview need to be addressed.

* typo

* Character preview changes color now. This partially fixes the "0 -" issue as well, it now says "0 - gray".

* Adds random functionality to Greys. Randomize your own char, and fresh spawns are random!

* uses clamp instead of max,min, and round
This commit is contained in:
PrimeDSS13
2019-12-28 20:35:42 -05:00
committed by Kurfursten
parent edb00d00c5
commit 4a61e143ac
13 changed files with 59 additions and 6 deletions

View File

@@ -30,6 +30,11 @@
#define VOXAZURE 5
#define VOXEMERALD 6
#define GREYGRAY 1
#define GREYLIGHT 2
#define GREYGREEN 3
#define GREYBLUE 4
#define CATBEASTBROWN 1
#define CATBEASTBLACK 2

View File

@@ -67,6 +67,9 @@ proc/random_skin_tone(species = "Human")
else if(species == "Vox")
. = rand(1,6)
return .
else if(species == "Grey")
. = rand(1,4)
return .
else if(species == "Tajaran")
return 1
else
@@ -107,6 +110,16 @@ proc/skintone2racedescription(tone, species = "Human")
return "gray"
else
return "green"
else if(species == "Grey")
switch(tone)
if(GREYLIGHT)
return "light gray"
if(GREYGREEN)
return "green"
if(GREYBLUE)
return "blue"
else
return "gray"
else if(species == "Tajaran")
switch(tone)
if(CATBEASTBLACK)

View File

@@ -1248,12 +1248,17 @@ NOTE: The change will take effect AFTER any current recruiting periods."}
if(species == "Human")
var/new_s_tone = input(user, "Choose your character's skin-tone:\n(Light 1 - 220 Dark)", "Character Preference") as num|null
if(new_s_tone)
s_tone = 35 - max(min(round(new_s_tone),220),1)
s_tone = 35 - clamp(new_s_tone,1,220)
to_chat(user,"You're now [skintone2racedescription(s_tone, species)].")
else if(species == "Vox")//Can't reference species flags here, sorry.
var/skin_c = input(user, "Choose your Vox's skin color:\n(1 = Green, 2 = Brown, 3 = Gray, 4 = Light Green, 5 = Azure, 6 = Emerald)", "Character Preference") as num|null
if(skin_c)
s_tone = max(min(round(skin_c),6),1)
s_tone = clamp(skin_c,1,6)
to_chat(user,"You will now be [skintone2racedescription(s_tone,species)] in color.")
else if(species == "Grey")
var/skin_c = input(user, "Choose your Grey's skin color:\n(1 = Gray, 2 = Light, 3 = Green, 4 = Blue)", "Character Preference") as num|null
if(skin_c)
s_tone = clamp(skin_c,1,4)
to_chat(user,"You will now be [skintone2racedescription(s_tone,species)] in color.")
else
to_chat(user,"Your species doesn't have different skin tones. Yet?")

View File

@@ -601,8 +601,8 @@ var/global/list/whitelisted_species = list("Human")
/datum/species/grey // /vg/
name = "Grey"
icobase = 'icons/mob/human_races/r_grey.dmi'
deform = 'icons/mob/human_races/r_def_grey.dmi'
icobase = 'icons/mob/human_races/grey/r_grey.dmi'
deform = 'icons/mob/human_races/grey/r_def_grey.dmi'
known_languages = list(LANGUAGE_GREY)
eyes = "grey_eyes_s"
@@ -646,6 +646,26 @@ var/global/list/whitelisted_species = list("Human")
You are particularly allergic to water, which acts like acid to you, but the inverse is so for acid, so you're fun at parties.<br>\
You're not as good in a fist fight as a regular baseline human, but you make up for this by bullying them from afar by talking directly into peoples minds."
/datum/species/grey/handle_post_spawn(var/mob/living/carbon/human/H)
if(myhuman != H)
return
updatespeciescolor(H)
H.update_icon()
/datum/species/grey/updatespeciescolor(var/mob/living/carbon/human/H)
switch(H.my_appearance.s_tone)
if(4)
icobase = 'icons/mob/human_races/grey/r_greyblue.dmi'
deform = 'icons/mob/human_races/grey/r_def_greyblue.dmi'
if(3)
icobase = 'icons/mob/human_races/grey/r_greygreen.dmi'
deform = 'icons/mob/human_races/grey/r_def_greygreen.dmi'
if(2)
icobase = 'icons/mob/human_races/grey/r_greylight.dmi'
deform = 'icons/mob/human_races/grey/r_def_greylight.dmi'
else
icobase = 'icons/mob/human_races/grey/r_grey.dmi'
deform = 'icons/mob/human_races/grey/r_def_grey.dmi'
/datum/species/grey/gib(mob/living/carbon/human/H)
..()
H.default_gib()

View File

@@ -184,6 +184,16 @@
icobase = 'icons/mob/human_races/vox/r_voxbrn.dmi'
else
icobase = 'icons/mob/human_races/vox/r_vox.dmi'
if(current_species.name == "Grey")
switch(s_tone)
if(4)
icobase = 'icons/mob/human_races/grey/r_greyblue.dmi'
if(3)
icobase = 'icons/mob/human_races/grey/r_greygreen.dmi'
if(2)
icobase = 'icons/mob/human_races/grey/r_greylight.dmi'
else
icobase = 'icons/mob/human_races/grey/r_grey.dmi'
else
icobase = current_species.icobase
else

View File

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB