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
@@ -30,6 +30,11 @@
|
|||||||
#define VOXAZURE 5
|
#define VOXAZURE 5
|
||||||
#define VOXEMERALD 6
|
#define VOXEMERALD 6
|
||||||
|
|
||||||
|
#define GREYGRAY 1
|
||||||
|
#define GREYLIGHT 2
|
||||||
|
#define GREYGREEN 3
|
||||||
|
#define GREYBLUE 4
|
||||||
|
|
||||||
#define CATBEASTBROWN 1
|
#define CATBEASTBROWN 1
|
||||||
#define CATBEASTBLACK 2
|
#define CATBEASTBLACK 2
|
||||||
|
|
||||||
|
|||||||
@@ -67,6 +67,9 @@ proc/random_skin_tone(species = "Human")
|
|||||||
else if(species == "Vox")
|
else if(species == "Vox")
|
||||||
. = rand(1,6)
|
. = rand(1,6)
|
||||||
return .
|
return .
|
||||||
|
else if(species == "Grey")
|
||||||
|
. = rand(1,4)
|
||||||
|
return .
|
||||||
else if(species == "Tajaran")
|
else if(species == "Tajaran")
|
||||||
return 1
|
return 1
|
||||||
else
|
else
|
||||||
@@ -107,6 +110,16 @@ proc/skintone2racedescription(tone, species = "Human")
|
|||||||
return "gray"
|
return "gray"
|
||||||
else
|
else
|
||||||
return "green"
|
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")
|
else if(species == "Tajaran")
|
||||||
switch(tone)
|
switch(tone)
|
||||||
if(CATBEASTBLACK)
|
if(CATBEASTBLACK)
|
||||||
|
|||||||
@@ -1248,12 +1248,17 @@ NOTE: The change will take effect AFTER any current recruiting periods."}
|
|||||||
if(species == "Human")
|
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
|
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)
|
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)].")
|
to_chat(user,"You're now [skintone2racedescription(s_tone, species)].")
|
||||||
else if(species == "Vox")//Can't reference species flags here, sorry.
|
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
|
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)
|
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.")
|
to_chat(user,"You will now be [skintone2racedescription(s_tone,species)] in color.")
|
||||||
else
|
else
|
||||||
to_chat(user,"Your species doesn't have different skin tones. Yet?")
|
to_chat(user,"Your species doesn't have different skin tones. Yet?")
|
||||||
@@ -1493,10 +1498,10 @@ NOTE: The change will take effect AFTER any current recruiting periods."}
|
|||||||
|
|
||||||
if("window_flashing")
|
if("window_flashing")
|
||||||
window_flashing = !window_flashing
|
window_flashing = !window_flashing
|
||||||
|
|
||||||
if("antag_objectives")
|
if("antag_objectives")
|
||||||
antag_objectives = !antag_objectives
|
antag_objectives = !antag_objectives
|
||||||
|
|
||||||
if(user.client.holder)
|
if(user.client.holder)
|
||||||
switch(href_list["preference"])
|
switch(href_list["preference"])
|
||||||
if("hear_ahelp")
|
if("hear_ahelp")
|
||||||
|
|||||||
@@ -601,8 +601,8 @@ var/global/list/whitelisted_species = list("Human")
|
|||||||
|
|
||||||
/datum/species/grey // /vg/
|
/datum/species/grey // /vg/
|
||||||
name = "Grey"
|
name = "Grey"
|
||||||
icobase = 'icons/mob/human_races/r_grey.dmi'
|
icobase = 'icons/mob/human_races/grey/r_grey.dmi'
|
||||||
deform = 'icons/mob/human_races/r_def_grey.dmi'
|
deform = 'icons/mob/human_races/grey/r_def_grey.dmi'
|
||||||
known_languages = list(LANGUAGE_GREY)
|
known_languages = list(LANGUAGE_GREY)
|
||||||
eyes = "grey_eyes_s"
|
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 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."
|
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)
|
/datum/species/grey/gib(mob/living/carbon/human/H)
|
||||||
..()
|
..()
|
||||||
H.default_gib()
|
H.default_gib()
|
||||||
|
|||||||
@@ -184,6 +184,16 @@
|
|||||||
icobase = 'icons/mob/human_races/vox/r_voxbrn.dmi'
|
icobase = 'icons/mob/human_races/vox/r_voxbrn.dmi'
|
||||||
else
|
else
|
||||||
icobase = 'icons/mob/human_races/vox/r_vox.dmi'
|
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
|
else
|
||||||
icobase = current_species.icobase
|
icobase = current_species.icobase
|
||||||
else
|
else
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
BIN
icons/mob/human_races/grey/r_def_greyblue.dmi
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
icons/mob/human_races/grey/r_def_greygreen.dmi
Normal file
|
After Width: | Height: | Size: 7.6 KiB |
BIN
icons/mob/human_races/grey/r_def_greylight.dmi
Normal file
|
After Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
BIN
icons/mob/human_races/grey/r_greyblue.dmi
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
icons/mob/human_races/grey/r_greygreen.dmi
Normal file
|
After Width: | Height: | Size: 2.9 KiB |
BIN
icons/mob/human_races/grey/r_greylight.dmi
Normal file
|
After Width: | Height: | Size: 3.0 KiB |