diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index b4361c742c3c..e20a57029bf1 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -165,7 +165,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) idcard = tracked_mob.wear_id ? tracked_mob.wear_id.GetID() : null - var/species + var/datum/species/species var/is_irradiated = FALSE var/is_wounded = FALSE var/is_husked = FALSE @@ -197,40 +197,7 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) brutedam = round(tracked_mob.getBruteLoss(),1) //species check - if (ishumanbasic(tracked_mob)) //this should really just pull the species name or something rather than having all these checks - species = "Human" - if (ispreternis(tracked_mob)) - species = "Robot" - if (isipc(tracked_mob)) - species = "IPC" - if (ispodperson(tracked_mob)) - species = "Podperson" - if (islizard(tracked_mob)) - species = "Lizard" - if (isplasmaman(tracked_mob)) - species = "Plasmaman" - if (ispolysmorph(tracked_mob)) - species = "Polysmorph" - if (ismoth(tracked_mob)) - species = "Moth" - if (isvox(tracked_mob)) - species = "Vox" - if (isflyperson(tracked_mob)) - species = "Fly" - if (iscatperson(tracked_mob)) - species = "Felinid" - if (isskeleton(tracked_mob)) - species = "Skeleton" - if (isjellyperson(tracked_mob)) - species = "Slime" - if (isethereal(tracked_mob)) - species = "Ethereal" - if (iszombie(tracked_mob) || is_species(tracked_mob, /datum/species/krokodil_addict)) - species = "Zombie" - if (issnail(tracked_mob)) - species = "Snail" - if (isabductor(tracked_mob)) - species = "Alien" + species = tracked_mob.dna?.species for(var/obj/item/bodypart/part in tracked_mob.bodyparts) if(part.bodypart_disabled == TRUE) //check if has disabled limbs @@ -300,7 +267,8 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) "is_bonecrack" = is_bonecrack, "is_disabled" = is_disabled, "is_irradiated" = is_irradiated, - "species" = species, + "species_icon" = species?.monitor_icon, + "species_color" = species?.monitor_color, "life_status" = life_status, "oxydam" = oxydam, "toxdam" = toxdam, diff --git a/code/modules/mob/living/carbon/human/_species.dm b/code/modules/mob/living/carbon/human/_species.dm index f704a81aa009..414f6d4f0a23 100644 --- a/code/modules/mob/living/carbon/human/_species.dm +++ b/code/modules/mob/living/carbon/human/_species.dm @@ -18,6 +18,10 @@ GLOBAL_LIST_EMPTY(features_by_species) var/plural_form /// if alien colors are disabled, this is the color that will be used by that race var/default_color = "#FFF" + /// The icon this species uses on the crew monitor. + var/monitor_icon + /// The color of the icon this species uses on the crew monitor. + var/monitor_color = "#FFFFFF" ///A list that contains pixel offsets for various clothing features, if your species is a different shape var/list/offset_features = list(OFFSET_UNIFORM = list(0,0), OFFSET_ID = list(0,0), OFFSET_GLOVES = list(0,0), OFFSET_GLASSES = list(0,0), OFFSET_EARS = list(0,0), OFFSET_SHOES = list(0,0), OFFSET_S_STORE = list(0,0), OFFSET_FACEMASK = list(0,0), OFFSET_HEAD = list(0,0), OFFSET_FACE = list(0,0), OFFSET_BELT = list(0,0), OFFSET_BACK = list(0,0), OFFSET_SUIT = list(0,0), OFFSET_NECK = list(0,0)) diff --git a/code/modules/mob/living/carbon/human/species_types/IPC.dm b/code/modules/mob/living/carbon/human/species_types/IPC.dm index 831766fb4f4f..eb386c7ecb13 100644 --- a/code/modules/mob/living/carbon/human/species_types/IPC.dm +++ b/code/modules/mob/living/carbon/human/species_types/IPC.dm @@ -4,6 +4,8 @@ name = "IPC" //inherited from the real species, for health scanners and things id = "ipc" say_mod = "states" //inherited from a user's real species + monitor_icon = "tv" + monitor_color = "#2e46cc" bubble_icon = BUBBLE_ROBOT // beep boop possible_genders = list(PLURAL, NEUTER) // A MERE OBJECT species_traits = list(NOTRANSSTING,NOEYESPRITES,NO_DNA_COPY,NOZOMBIE,MUTCOLORS,NOHUSK,NOBLOOD,NO_UNDERWEAR) diff --git a/code/modules/mob/living/carbon/human/species_types/abductors.dm b/code/modules/mob/living/carbon/human/species_types/abductors.dm index 01b90dc571e4..78a5686639d1 100644 --- a/code/modules/mob/living/carbon/human/species_types/abductors.dm +++ b/code/modules/mob/living/carbon/human/species_types/abductors.dm @@ -1,6 +1,8 @@ /datum/species/abductor name = "Abductor" id = SPECIES_ABDUCTOR + monitor_icon = "question-circle" + monitor_color = "#d40db9" say_mod = "gibbers" possible_genders = list(PLURAL) species_traits = list(NOBLOOD,NOEYESPRITES) diff --git a/code/modules/mob/living/carbon/human/species_types/ethereal.dm b/code/modules/mob/living/carbon/human/species_types/ethereal.dm index 06abeb0e403d..b09e53505dae 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -3,6 +3,8 @@ /datum/species/ethereal name = "Ethereal" id = SPECIES_ETHEREAL + monitor_icon = "sun" + monitor_color = "#f0ff66" attack_verbs = list("burn", "sear") attack_sound = 'sound/weapons/etherealhit.ogg' miss_sound = 'sound/weapons/etherealmiss.ogg' diff --git a/code/modules/mob/living/carbon/human/species_types/felinid.dm b/code/modules/mob/living/carbon/human/species_types/felinid.dm index 855b3ba71d78..9ed53536e64e 100644 --- a/code/modules/mob/living/carbon/human/species_types/felinid.dm +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -3,6 +3,8 @@ name = "Felinid Human" id = SPECIES_FELINE limbs_id = SPECIES_HUMAN + monitor_icon = "paw" + monitor_color = "#f52ab4" attack_verbs = list("slash") attack_effect = ATTACK_EFFECT_CLAW attack_sound = 'sound/weapons/slash.ogg' diff --git a/code/modules/mob/living/carbon/human/species_types/flypeople.dm b/code/modules/mob/living/carbon/human/species_types/flypeople.dm index 2ecd00ebfb4c..e1e7c5616007 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -2,6 +2,8 @@ name = "Flyperson" plural_form = "Flypeople" id = SPECIES_FLYPERSON + monitor_icon = "bug" + monitor_color = "#039162" say_mod = "buzzes" species_traits = list(NOEYESPRITES, HAS_FLESH, HAS_BONE) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG diff --git a/code/modules/mob/living/carbon/human/species_types/humans.dm b/code/modules/mob/living/carbon/human/species_types/humans.dm index 4da5fef95d6d..db9d62065888 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -1,6 +1,8 @@ /datum/species/human name = "Human" id = SPECIES_HUMAN + monitor_icon = "user" + monitor_color = "#2ee81a" default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,HAS_FLESH,HAS_BONE) default_features = list("mcolor" = "#FFFFFF", "wings" = "None") diff --git a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm index 4e35dee013c1..4e68447fd680 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -3,6 +3,8 @@ name = "Jellyperson" plural_form = "Jellypeople" id = SPECIES_JELLYPERSON + monitor_icon = "cloud" + monitor_color = "#f2505d" default_color = "00FF90" say_mod = "chirps" bubble_icon = BUBBLE_SLIME diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 950060208206..813de534083a 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -5,6 +5,8 @@ name = "Vuulek" plural_form = "Vuulen" id = SPECIES_LIZARD + monitor_icon = "dragon" + monitor_color = "#8bf76a" say_mod = "hisses" default_color = "00FF00" species_traits = list(MUTCOLORS,EYECOLOR,DIGITIGRADE,LIPS,HAS_FLESH,HAS_BONE,HAS_TAIL) diff --git a/code/modules/mob/living/carbon/human/species_types/mothmen.dm b/code/modules/mob/living/carbon/human/species_types/mothmen.dm index 9d02cfde6563..7a4fed630e26 100644 --- a/code/modules/mob/living/carbon/human/species_types/mothmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/mothmen.dm @@ -2,6 +2,8 @@ name = "Ex'hai" plural_form = "Ex'hau" id = SPECIES_MOTH + monitor_icon = "feather-alt" + monitor_color = "#ffebb8" say_mod = "flutters" default_color = "00FF00" species_traits = list(LIPS, NOEYESPRITES,HAS_FLESH,HAS_BONE) diff --git a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm index 1c4993f950c8..265dead7159a 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -2,6 +2,8 @@ name = "Plasmaman" plural_form = "Plasmamen" id = SPECIES_PLASMAMAN + monitor_icon = "skull" + monitor_color = "#d60b66" say_mod = "rattles" possible_genders = list(PLURAL) meat = /obj/item/stack/sheet/mineral/plasma diff --git a/code/modules/mob/living/carbon/human/species_types/polysmorphs.dm b/code/modules/mob/living/carbon/human/species_types/polysmorphs.dm index 0382ba8e374a..221cd566fa14 100644 --- a/code/modules/mob/living/carbon/human/species_types/polysmorphs.dm +++ b/code/modules/mob/living/carbon/human/species_types/polysmorphs.dm @@ -2,6 +2,8 @@ //Human xenopmorph hybrid name = "Polysmorph" id = SPECIES_POLYSMORPH + monitor_icon = "certificate" + monitor_color = "#802496" species_traits = list(NOEYESPRITES, DIGITIGRADE, MUTCOLORS, NOCOLORCHANGE, HAS_FLESH, HAS_BONE, HAS_TAIL) possible_genders = list(FEMALE) inherent_traits = list(TRAIT_ACIDBLOOD, TRAIT_SKINNY) diff --git a/code/modules/mob/living/carbon/human/species_types/skeletons.dm b/code/modules/mob/living/carbon/human/species_types/skeletons.dm index c89860dd3c75..15a77b00a809 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -2,6 +2,8 @@ // 2spooky name = "Spooky Scary Skeleton" id = SPECIES_SKELETON + monitor_icon = "skull" + monitor_color = "#fffcfa" say_mod = "rattles" possible_genders = list(NEUTER) meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton diff --git a/code/modules/mob/living/carbon/human/species_types/snail.dm b/code/modules/mob/living/carbon/human/species_types/snail.dm index 766be89dcbbe..71df118ce683 100644 --- a/code/modules/mob/living/carbon/human/species_types/snail.dm +++ b/code/modules/mob/living/carbon/human/species_types/snail.dm @@ -2,6 +2,8 @@ name = "Snailperson" plural_form = "Snailpeople" id = SPECIES_SNAIL + monitor_icon = "strikethrough" + monitor_color = "#08ccb8" offset_features = list(OFFSET_UNIFORM = list(0,0), OFFSET_ID = list(0,0), OFFSET_GLOVES = list(0,0), OFFSET_GLASSES = list(0,4), OFFSET_EARS = list(0,0), OFFSET_SHOES = list(0,0), OFFSET_S_STORE = list(0,0), OFFSET_FACEMASK = list(0,0), OFFSET_HEAD = list(0,0), OFFSET_FACE = list(0,0), OFFSET_BELT = list(0,0), OFFSET_BACK = list(0,0), OFFSET_SUIT = list(0,0), OFFSET_NECK = list(0,0)) default_color = "336600" //vomit green species_traits = list(MUTCOLORS, NO_UNDERWEAR, HAS_FLESH, HAS_BONE) diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index 47b6fcdb2542..01fd183b18b6 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -4,6 +4,8 @@ // 1spooky name = "High-Functioning Zombie" id = SPECIES_ZOMBIE + monitor_icon = "skull" + monitor_color = "#186310" say_mod = "moans" possible_genders = list(NEUTER) meat = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/zombie @@ -113,6 +115,8 @@ name = "Human" id = SPECIES_ZOMBIE_KROKODIL limbs_id = SPECIES_ZOMBIE //They look like zombies + monitor_icon = "skull" + monitor_color = "#186310" possible_genders = list(PLURAL) species_traits = list(HAS_FLESH, HAS_BONE) inherent_traits = list(TRAIT_EASILY_WOUNDED) //you have no skin diff --git a/tgui/packages/tgui/interfaces/CrewConsole.js b/tgui/packages/tgui/interfaces/CrewConsole.js index 6530b993f991..26a3398d1d21 100644 --- a/tgui/packages/tgui/interfaces/CrewConsole.js +++ b/tgui/packages/tgui/interfaces/CrewConsole.js @@ -23,77 +23,6 @@ const HEALTH_ICON_BY_LEVEL = [ 'skull-crossbones', ]; -const speciesmap = { - "IPC": { - "icon": "tv", - "color": "#2e46cc", - }, - "Robot": { - "icon": "robot", - "color": "#edee1b", - }, - "Felinid": { - "icon": "paw", - "color": "#f52ab4", - }, - "Moth": { - "icon": "feather-alt", - "color": "#ffebb8", - }, - "Vox": { - "icon": "crow", - "color": "#13c230", - }, - "Lizard": { - "icon": "dragon", - "color": "#8bf76a", - }, - "Polysmorph": { - "icon": "certificate", - "color": "#802496", - }, - "Podperson": { - "icon": "seedling", - "color": "#07f58a", - }, - "Plasmaman": { - "icon": "skull", - "color": "#d60b66", - }, - "Ethereal": { - "icon": "sun", - "color": "#f0ff66", - }, - "Skeleton": { - "icon": "skull", - "color": "#fffcfa", - }, - "Slime": { - "icon": "cloud", - "color": "#f2505d", - }, - "Fly": { - "icon": "bug", - "color": "#039162", - }, - "Human": { - "icon": "user", - "color": "#2ee81a", - }, - "Zombie": { - "icon": "skull", - "color": "#186310", - }, - "Snail": { - "icon": "strikethrough", - "color": "#08ccb8", - }, - "Alien": { - "icon": "question-circle", - "color": "#d40db9", - }, -}; - export const jobIsHead = jobId => jobId % 10 === 0; export const jobToColor = jobId => { @@ -252,7 +181,7 @@ export const CrewConsoleContent = (props, context) => { )}