From 515c842976154b263dbc055200e40f5e3628eba4 Mon Sep 17 00:00:00 2001 From: Zandario Date: Tue, 29 Sep 2020 15:14:27 -0500 Subject: [PATCH 1/9] Part 1 --- code/__DEFINES/colors.dm | 102 ++--- code/__DEFINES/mobs.dm | 370 ++++++++++-------- code/game/objects/items.dm | 28 ++ code/modules/clothing/clothing.dm | 52 ++- .../carbon/human/species_types/abductors.dm | 2 +- .../carbon/human/species_types/android.dm | 2 +- .../carbon/human/species_types/angel.dm | 4 +- .../{furrypeople.dm => anthromorph.dm} | 4 +- .../carbon/human/species_types/bugmen.dm | 2 +- .../carbon/human/species_types/corporate.dm | 2 +- .../carbon/human/species_types/dullahan.dm | 2 +- .../carbon/human/species_types/dwarves.dm | 2 +- .../carbon/human/species_types/ethereal.dm | 2 +- .../carbon/human/species_types/felinid.dm | 2 +- .../carbon/human/species_types/flypeople.dm | 2 +- .../carbon/human/species_types/golems.dm | 2 +- .../carbon/human/species_types/humans.dm | 2 +- .../living/carbon/human/species_types/ipc.dm | 2 +- .../carbon/human/species_types/jellypeople.dm | 2 +- .../human/species_types/lizardpeople.dm | 2 +- .../carbon/human/species_types/mushpeople.dm | 2 +- .../carbon/human/species_types/plasmamen.dm | 2 +- .../carbon/human/species_types/podpeople.dm | 2 +- .../carbon/human/species_types/skeletons.dm | 2 +- .../carbon/human/species_types/synthliz.dm | 2 +- .../carbon/human/species_types/synths.dm | 2 +- .../carbon/human/species_types/vampire.dm | 2 +- .../living/carbon/human/species_types/xeno.dm | 2 +- .../carbon/human/species_types/zombies.dm | 2 +- tgstation.dme | 2 +- 30 files changed, 354 insertions(+), 254 deletions(-) rename code/modules/mob/living/carbon/human/species_types/{furrypeople.dm => anthromorph.dm} (91%) diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index 2273d34c82..fb461acfa4 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -1,54 +1,54 @@ // This is eventually for wjohn to add more color standardization stuff like I keep asking him >:( -#define COLOR_INPUT_DISABLED "#F0F0F0" -#define COLOR_INPUT_ENABLED "#D3B5B5" -#define COLOR_FLOORTILE_GRAY "#8D8B8B" -#define COLOR_ALMOST_BLACK "#333333" -#define COLOR_BLACK "#000000" -#define COLOR_RED "#FF0000" -#define COLOR_RED_LIGHT "#FF3333" -#define COLOR_MAROON "#800000" -#define COLOR_YELLOW "#FFFF00" -#define COLOR_OLIVE "#808000" -#define COLOR_LIME "#32CD32" -#define COLOR_GREEN "#008000" -#define COLOR_CYAN "#00FFFF" -#define COLOR_TEAL "#008080" -#define COLOR_BLUE "#0000FF" -#define COLOR_BLUE_LIGHT "#33CCFF" -#define COLOR_NAVY "#000080" -#define COLOR_PINK "#FFC0CB" -#define COLOR_MAGENTA "#FF00FF" -#define COLOR_PURPLE "#800080" -#define COLOR_ORANGE "#FF9900" -#define COLOR_BEIGE "#CEB689" -#define COLOR_BLUE_GRAY "#75A2BB" -#define COLOR_BROWN "#BA9F6D" -#define COLOR_DARK_BROWN "#997C4F" -#define COLOR_DARK_ORANGE "#C3630C" -#define COLOR_GREEN_GRAY "#99BB76" -#define COLOR_RED_GRAY "#B4696A" -#define COLOR_PALE_BLUE_GRAY "#98C5DF" -#define COLOR_PALE_GREEN_GRAY "#B7D993" -#define COLOR_PALE_ORANGE "#FFC066" -#define COLOR_PALE_RED_GRAY "#D59998" -#define COLOR_PALE_PURPLE_GRAY "#CBB1CA" -#define COLOR_PURPLE_GRAY "#AE8CA8" +#define COLOR_INPUT_DISABLED "#F0F0F0" +#define COLOR_INPUT_ENABLED "#D3B5B5" +#define COLOR_FLOORTILE_GRAY "#8D8B8B" +#define COLOR_ALMOST_BLACK "#333333" +#define COLOR_BLACK "#000000" +#define COLOR_RED "#FF0000" +#define COLOR_RED_LIGHT "#FF3333" +#define COLOR_MAROON "#800000" +#define COLOR_YELLOW "#FFFF00" +#define COLOR_OLIVE "#808000" +#define COLOR_LIME "#32CD32" +#define COLOR_GREEN "#008000" +#define COLOR_CYAN "#00FFFF" +#define COLOR_TEAL "#008080" +#define COLOR_BLUE "#0000FF" +#define COLOR_BLUE_LIGHT "#33CCFF" +#define COLOR_NAVY "#000080" +#define COLOR_PINK "#FFC0CB" +#define COLOR_MAGENTA "#FF00FF" +#define COLOR_PURPLE "#800080" +#define COLOR_ORANGE "#FF9900" +#define COLOR_BEIGE "#CEB689" +#define COLOR_BLUE_GRAY "#75A2BB" +#define COLOR_BROWN "#BA9F6D" +#define COLOR_DARK_BROWN "#997C4F" +#define COLOR_DARK_ORANGE "#C3630C" +#define COLOR_GREEN_GRAY "#99BB76" +#define COLOR_RED_GRAY "#B4696A" +#define COLOR_PALE_BLUE_GRAY "#98C5DF" +#define COLOR_PALE_GREEN_GRAY "#B7D993" +#define COLOR_PALE_ORANGE "#FFC066" +#define COLOR_PALE_RED_GRAY "#D59998" +#define COLOR_PALE_PURPLE_GRAY "#CBB1CA" +#define COLOR_PURPLE_GRAY "#AE8CA8" -//Color defines used by the assembly detailer. -#define COLOR_ASSEMBLY_BLACK "#545454" -#define COLOR_ASSEMBLY_BGRAY "#9497AB" -#define COLOR_ASSEMBLY_WHITE "#E2E2E2" -#define COLOR_ASSEMBLY_RED "#CC4242" -#define COLOR_ASSEMBLY_ORANGE "#E39751" -#define COLOR_ASSEMBLY_BEIGE "#AF9366" -#define COLOR_ASSEMBLY_BROWN "#97670E" -#define COLOR_ASSEMBLY_GOLD "#AA9100" -#define COLOR_ASSEMBLY_YELLOW "#CECA2B" -#define COLOR_ASSEMBLY_GURKHA "#999875" -#define COLOR_ASSEMBLY_LGREEN "#789876" -#define COLOR_ASSEMBLY_GREEN "#44843C" -#define COLOR_ASSEMBLY_LBLUE "#5D99BE" -#define COLOR_ASSEMBLY_BLUE "#38559E" -#define COLOR_ASSEMBLY_PURPLE "#6F6192" -#define COLOR_ASSEMBLY_PINK "#ff4adc" +// Color defines used by the assembly detailer. +#define COLOR_ASSEMBLY_BLACK "#545454" +#define COLOR_ASSEMBLY_BGRAY "#9497AB" +#define COLOR_ASSEMBLY_WHITE "#E2E2E2" +#define COLOR_ASSEMBLY_RED "#CC4242" +#define COLOR_ASSEMBLY_ORANGE "#E39751" +#define COLOR_ASSEMBLY_BEIGE "#AF9366" +#define COLOR_ASSEMBLY_BROWN "#97670E" +#define COLOR_ASSEMBLY_GOLD "#AA9100" +#define COLOR_ASSEMBLY_YELLOW "#CECA2B" +#define COLOR_ASSEMBLY_GURKHA "#999875" +#define COLOR_ASSEMBLY_LGREEN "#789876" +#define COLOR_ASSEMBLY_GREEN "#44843C" +#define COLOR_ASSEMBLY_LBLUE "#5D99BE" +#define COLOR_ASSEMBLY_BLUE "#38559E" +#define COLOR_ASSEMBLY_PURPLE "#6F6192" +#define COLOR_ASSEMBLY_PINK "#ff4adc" diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 9c39446a67..87722b4562 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -1,17 +1,43 @@ /*ALL MOB-RELATED DEFINES THAT DON'T BELONG IN ANOTHER FILE GO HERE*/ -//Misc mob defines +// Misc mob defines -//Ready states at roundstart for mob/dead/new_player +// Ready states at roundstart for mob/dead/new_player #define PLAYER_NOT_READY 0 #define PLAYER_READY_TO_PLAY 1 #define PLAYER_READY_TO_OBSERVE 2 -//movement intent defines for the m_intent var +// movement intent defines for the m_intent var #define MOVE_INTENT_WALK "walk" #define MOVE_INTENT_RUN "run" -//Blood levels +// Species defines --------------------------- + +#define SPECIES_ABDUCTOR "Abductor" +#define SPECIES_ANDROID "Android" +#define SPECIES_ANGEL "Angel" +#define SPECIES_ANTHROMORPH "Anthromorph" +#define SPECIES_BUGMAN "Anthromorphic Insect" +#define SPECIES_DULLAHAN "Dullahan" +#define SPECIES_DWARF "Dwarf" +#define SPECIES_ETHEREAL "Ethereal" +#define SPECIES_FELINID "Felinid" +#define SPECIES_FLYPEOPLE "Anthromorphic Fly" +#define SPECIES_GOLEM "Golem" +#define SPECIES_HUMAN "Human" +#define SPECIES_IPC "I.P.C." +#define SPECIES_JELLYHYBRID "Xenobiological Slime Hybrid" +#define SPECIES_LIZARD "Anthromorphic Lizard" +#define SPECIES_ANTHRO_MUSH "Anthromorphic Mushroom" +#define SPECIES_PLASMAMAN "Plasmaman" +#define SPECIES_POD "Anthromorphic Plant" +#define SPECIES_SKELETON "Skeleton" +#define SPECIES_SYNTH_LIZARD "Synthetic Lizardperson" +#define SPECIES_SYNTH "Synthetic" +#define SPECIES_VAMPIRE "Vampire" +#define SPECIES_XENOHYBRID "Xenomorph Hybrid" + +// Blood levels #define BLOOD_VOLUME_MAX_LETHAL 2150 #define BLOOD_VOLUME_EXCESS 2100 #define BLOOD_VOLUME_MAXIMUM 2000 @@ -22,34 +48,34 @@ #define BLOOD_VOLUME_BAD 224 #define BLOOD_VOLUME_SURVIVE 122 -//Sizes of mobs, used by mob/living/var/mob_size +// Sizes of mobs, used by mob/living/var/mob_size #define MOB_SIZE_TINY 0 #define MOB_SIZE_SMALL 1 #define MOB_SIZE_HUMAN 2 #define MOB_SIZE_LARGE 3 -//Ventcrawling defines +// Ventcrawling defines #define VENTCRAWLER_NONE 0 #define VENTCRAWLER_NUDE 1 #define VENTCRAWLER_ALWAYS 2 -//Bloodcrawling defines +// Bloodcrawling defines #define BLOODCRAWL 1 #define BLOODCRAWL_EAT 2 -//Mob bio-types flags -#define MOB_ORGANIC (1 << 0) +// Mob bio-types flags +#define MOB_ORGANIC (1 << 0) #define MOB_MINERAL (1 << 1) -#define MOB_ROBOTIC (1 << 2) +#define MOB_ROBOTIC (1 << 2) #define MOB_UNDEAD (1 << 3) -#define MOB_HUMANOID (1 << 4) -#define MOB_BUG (1 << 5) +#define MOB_HUMANOID (1 << 4) +#define MOB_BUG (1 << 5) #define MOB_BEAST (1 << 6) -#define MOB_EPIC (1 << 7) //megafauna +#define MOB_EPIC (1 << 7) // Megafauna #define MOB_REPTILE (1 << 8) #define MOB_SPIRIT (1 << 9) -//Organ defines for carbon mobs +// Organ defines for carbon mobs #define ORGAN_ORGANIC 1 #define ORGAN_ROBOTIC 2 @@ -66,194 +92,194 @@ #define DEFAULT_BODYPART_ICON_ROBOTIC 'icons/mob/augmentation/augments.dmi' #define MONKEY_BODYPART "monkey" -#define ALIEN_BODYPART "alien" -#define LARVA_BODYPART "larva" -#define DEVIL_BODYPART "devil" +#define ALIEN_BODYPART "alien" +#define LARVA_BODYPART "larva" +#define DEVIL_BODYPART "devil" /*see __DEFINES/inventory.dm for bodypart bitflag defines*/ // Health/damage defines for carbon mobs #define HUMAN_MAX_OXYLOSS 3 #define HUMAN_CRIT_MAX_OXYLOSS (SSmobs.wait/30) -#define HEAT_DAMAGE_LEVEL_1 2 //Amount of damage applied when your body temperature just passes the 360.15k safety point -#define HEAT_DAMAGE_LEVEL_2 3 //Amount of damage applied when your body temperature passes the 400K point -#define HEAT_DAMAGE_LEVEL_3 8 //Amount of damage applied when your body temperature passes the 460K point and you are on fire +#define HEAT_DAMAGE_LEVEL_1 2 // Amount of damage applied when your body temperature just passes the 360.15k safety point +#define HEAT_DAMAGE_LEVEL_2 3 // Amount of damage applied when your body temperature passes the 400K point +#define HEAT_DAMAGE_LEVEL_3 8 // Amount of damage applied when your body temperature passes the 460K point and you are on fire -#define COLD_DAMAGE_LEVEL_1 0.5 //Amount of damage applied when your body temperature just passes the 260.15k safety point -#define COLD_DAMAGE_LEVEL_2 1.5 //Amount of damage applied when your body temperature passes the 200K point -#define COLD_DAMAGE_LEVEL_3 3 //Amount of damage applied when your body temperature passes the 120K point +#define COLD_DAMAGE_LEVEL_1 0.5 // Amount of damage applied when your body temperature just passes the 260.15k safety point +#define COLD_DAMAGE_LEVEL_2 1.5 // Amount of damage applied when your body temperature passes the 200K point +#define COLD_DAMAGE_LEVEL_3 3 // Amount of damage applied when your body temperature passes the 120K point -//Note that gas heat damage is only applied once every FOUR ticks. -#define HEAT_GAS_DAMAGE_LEVEL_1 2 //Amount of damage applied when the current breath's temperature just passes the 360.15k safety point -#define HEAT_GAS_DAMAGE_LEVEL_2 4 //Amount of damage applied when the current breath's temperature passes the 400K point -#define HEAT_GAS_DAMAGE_LEVEL_3 8 //Amount of damage applied when the current breath's temperature passes the 1000K point +// Note that gas heat damage is only applied once every FOUR ticks. +#define HEAT_GAS_DAMAGE_LEVEL_1 2 // Amount of damage applied when the current breath's temperature just passes the 360.15k safety point +#define HEAT_GAS_DAMAGE_LEVEL_2 4 // Amount of damage applied when the current breath's temperature passes the 400K point +#define HEAT_GAS_DAMAGE_LEVEL_3 8 // Amount of damage applied when the current breath's temperature passes the 1000K point -#define COLD_GAS_DAMAGE_LEVEL_1 0.5 //Amount of damage applied when the current breath's temperature just passes the 260.15k safety point -#define COLD_GAS_DAMAGE_LEVEL_2 1.5 //Amount of damage applied when the current breath's temperature passes the 200K point -#define COLD_GAS_DAMAGE_LEVEL_3 3 //Amount of damage applied when the current breath's temperature passes the 120K point +#define COLD_GAS_DAMAGE_LEVEL_1 0.5 // Amount of damage applied when the current breath's temperature just passes the 260.15k safety point +#define COLD_GAS_DAMAGE_LEVEL_2 1.5 // Amount of damage applied when the current breath's temperature passes the 200K point +#define COLD_GAS_DAMAGE_LEVEL_3 3 // Amount of damage applied when the current breath's temperature passes the 120K point -//Brain Damage defines -#define BRAIN_DAMAGE_MILD 20 +// Brain Damage defines +#define BRAIN_DAMAGE_MILD 20 #define BRAIN_DAMAGE_SEVERE 100 -#define BRAIN_DAMAGE_DEATH 200 +#define BRAIN_DAMAGE_DEATH 200 #define BRAIN_TRAUMA_MILD /datum/brain_trauma/mild #define BRAIN_TRAUMA_SEVERE /datum/brain_trauma/severe #define BRAIN_TRAUMA_SPECIAL /datum/brain_trauma/special #define BRAIN_TRAUMA_MAGIC /datum/brain_trauma/magic -#define TRAUMA_RESILIENCE_BASIC 1 //Curable with chems -#define TRAUMA_RESILIENCE_SURGERY 2 //Curable with brain surgery -#define TRAUMA_RESILIENCE_LOBOTOMY 3 //Curable with lobotomy -#define TRAUMA_RESILIENCE_WOUND 4 //Curable by healing the head wound -#define TRAUMA_RESILIENCE_MAGIC 5 //Curable only with magic -#define TRAUMA_RESILIENCE_ABSOLUTE 6 //This is here to stay +#define TRAUMA_RESILIENCE_BASIC 1 // Curable with chems +#define TRAUMA_RESILIENCE_SURGERY 2 // Curable with brain surgery +#define TRAUMA_RESILIENCE_LOBOTOMY 3 // Curable with lobotomy +#define TRAUMA_RESILIENCE_WOUND 4 // Curable by healing the head wound +#define TRAUMA_RESILIENCE_MAGIC 5 // Curable only with magic +#define TRAUMA_RESILIENCE_ABSOLUTE 6 // This is here to stay -//Limit of traumas for each resilience tier -#define TRAUMA_LIMIT_BASIC 3 -#define TRAUMA_LIMIT_SURGERY 2 -#define TRAUMA_LIMIT_WOUND 2 +// Limit of traumas for each resilience tier +#define TRAUMA_LIMIT_BASIC 3 +#define TRAUMA_LIMIT_SURGERY 2 +#define TRAUMA_LIMIT_WOUND 2 #define TRAUMA_LIMIT_LOBOTOMY 3 -#define TRAUMA_LIMIT_MAGIC 3 +#define TRAUMA_LIMIT_MAGIC 3 #define TRAUMA_LIMIT_ABSOLUTE INFINITY #define BRAIN_DAMAGE_INTEGRITY_MULTIPLIER 0.5 -//Surgery Defines +// Surgery Defines #define BIOWARE_GENERIC "generic" #define BIOWARE_NERVES "nerves" #define BIOWARE_CIRCULATION "circulation" #define BIOWARE_LIGAMENTS "ligaments" -//Health hud screws for carbon mobs -#define SCREWYHUD_NONE 0 -#define SCREWYHUD_CRIT 1 -#define SCREWYHUD_DEAD 2 +// Health hud screws for carbon mobs +#define SCREWYHUD_NONE 0 +#define SCREWYHUD_CRIT 1 +#define SCREWYHUD_DEAD 2 #define SCREWYHUD_HEALTHY 3 -//Threshold levels for beauty for humans +// Threshold levels for beauty for humans #define BEAUTY_LEVEL_HORRID -66 -#define BEAUTY_LEVEL_BAD -33 -#define BEAUTY_LEVEL_DECENT 33 -#define BEAUTY_LEVEL_GOOD 66 -#define BEAUTY_LEVEL_GREAT 100 +#define BEAUTY_LEVEL_BAD -33 +#define BEAUTY_LEVEL_DECENT 33 +#define BEAUTY_LEVEL_GOOD 66 +#define BEAUTY_LEVEL_GREAT 100 -//Moods levels for humans -#define MOOD_LEVEL_HAPPY4 15 -#define MOOD_LEVEL_HAPPY3 10 -#define MOOD_LEVEL_HAPPY2 6 -#define MOOD_LEVEL_HAPPY1 2 -#define MOOD_LEVEL_NEUTRAL 0 -#define MOOD_LEVEL_SAD1 -3 -#define MOOD_LEVEL_SAD2 -12 -#define MOOD_LEVEL_SAD3 -18 -#define MOOD_LEVEL_SAD4 -25 +// Moods levels for humans +#define MOOD_LEVEL_HAPPY4 15 +#define MOOD_LEVEL_HAPPY3 10 +#define MOOD_LEVEL_HAPPY2 6 +#define MOOD_LEVEL_HAPPY1 2 +#define MOOD_LEVEL_NEUTRAL 0 +#define MOOD_LEVEL_SAD1 -3 +#define MOOD_LEVEL_SAD2 -12 +#define MOOD_LEVEL_SAD3 -18 +#define MOOD_LEVEL_SAD4 -25 -//Sanity levels for humans -#define SANITY_AMAZING 150 -#define SANITY_GREAT 125 -#define SANITY_NEUTRAL 100 +// Sanity levels for humans +#define SANITY_AMAZING 150 +#define SANITY_GREAT 125 +#define SANITY_NEUTRAL 100 #define SANITY_DISTURBED 75 -#define SANITY_UNSTABLE 50 -#define SANITY_CRAZY 25 -#define SANITY_INSANE 0 +#define SANITY_UNSTABLE 50 +#define SANITY_CRAZY 25 +#define SANITY_INSANE 0 -//Nutrition levels for humans -#define NUTRITION_LEVEL_FAT 600 -#define NUTRITION_LEVEL_FULL 550 +// Nutrition levels for humans +#define NUTRITION_LEVEL_FAT 600 +#define NUTRITION_LEVEL_FULL 550 #define NUTRITION_LEVEL_WELL_FED 450 -#define NUTRITION_LEVEL_FED 350 -#define NUTRITION_LEVEL_HUNGRY 250 +#define NUTRITION_LEVEL_FED 350 +#define NUTRITION_LEVEL_HUNGRY 250 #define NUTRITION_LEVEL_STARVING 150 #define NUTRITION_LEVEL_START_MIN 250 #define NUTRITION_LEVEL_START_MAX 400 -//Disgust levels for humans -#define DISGUST_LEVEL_MAXEDOUT 150 -#define DISGUST_LEVEL_DISGUSTED 75 -#define DISGUST_LEVEL_VERYGROSS 50 -#define DISGUST_LEVEL_GROSS 25 +// Disgust levels for humans +#define DISGUST_LEVEL_MAXEDOUT 150 +#define DISGUST_LEVEL_DISGUSTED 75 +#define DISGUST_LEVEL_VERYGROSS 50 +#define DISGUST_LEVEL_GROSS 25 -//Charge levels for Ethereals -#define ETHEREAL_CHARGE_NONE 0 -#define ETHEREAL_CHARGE_LOWPOWER 20 -#define ETHEREAL_CHARGE_NORMAL 50 +// Charge levels for Ethereals +#define ETHEREAL_CHARGE_NONE 0 +#define ETHEREAL_CHARGE_LOWPOWER 20 +#define ETHEREAL_CHARGE_NORMAL 50 #define ETHEREAL_CHARGE_ALMOSTFULL 75 -#define ETHEREAL_CHARGE_FULL 100 -#define ETHEREAL_CHARGE_OVERLOAD 125 +#define ETHEREAL_CHARGE_FULL 100 +#define ETHEREAL_CHARGE_OVERLOAD 125 #define ETHEREAL_CHARGE_DANGEROUS 150 -//Slime evolution threshold. Controls how fast slimes can split/grow +// Slime evolution threshold. Controls how fast slimes can split/grow #define SLIME_EVOLUTION_THRESHOLD 10 -//Slime extract crossing. Controls how many extracts is required to feed to a slime to core-cross. +// Slime extract crossing. Controls how many extracts is required to feed to a slime to core-cross. #define SLIME_EXTRACT_CROSSING_REQUIRED 10 -//Slime commands defines -#define SLIME_FRIENDSHIP_FOLLOW 3 //Min friendship to order it to follow -#define SLIME_FRIENDSHIP_STOPEAT 5 //Min friendship to order it to stop eating someone -#define SLIME_FRIENDSHIP_STOPEAT_NOANGRY 7 //Min friendship to order it to stop eating someone without it losing friendship -#define SLIME_FRIENDSHIP_STOPCHASE 4 //Min friendship to order it to stop chasing someone (their target) -#define SLIME_FRIENDSHIP_STOPCHASE_NOANGRY 6 //Min friendship to order it to stop chasing someone (their target) without it losing friendship -#define SLIME_FRIENDSHIP_STAY 3 //Min friendship to order it to stay -#define SLIME_FRIENDSHIP_ATTACK 8 //Min friendship to order it to attack +// Slime commands defines +#define SLIME_FRIENDSHIP_FOLLOW 3 // Min friendship to order it to follow +#define SLIME_FRIENDSHIP_STOPEAT 5 // Min friendship to order it to stop eating someone +#define SLIME_FRIENDSHIP_STOPEAT_NOANGRY 7 // Min friendship to order it to stop eating someone without it losing friendship +#define SLIME_FRIENDSHIP_STOPCHASE 4 // Min friendship to order it to stop chasing someone (their target) +#define SLIME_FRIENDSHIP_STOPCHASE_NOANGRY 6 // Min friendship to order it to stop chasing someone (their target) without it losing friendship +#define SLIME_FRIENDSHIP_STAY 3 // Min friendship to order it to stay +#define SLIME_FRIENDSHIP_ATTACK 8 // Min friendship to order it to attack -//Sentience types, to prevent things like sentience potions from giving bosses sentience -#define SENTIENCE_ORGANIC 1 +// Sentience types, to prevent things like sentience potions from giving bosses sentience +#define SENTIENCE_ORGANIC 1 #define SENTIENCE_ARTIFICIAL 2 -// #define SENTIENCE_OTHER 3 unused -#define SENTIENCE_MINEBOT 4 -#define SENTIENCE_BOSS 5 +//#define SENTIENCE_OTHER 3 // Unused +#define SENTIENCE_MINEBOT 4 +#define SENTIENCE_BOSS 5 -//Mob AI Status +// Mob AI Status -//Hostile simple animals -//If you add a new status, be sure to add a list for it to the simple_animals global in _globalvars/lists/mobs.dm +// Hostile simple animals +// If you add a new status, be sure to add a list for it to the simple_animals global in _globalvars/lists/mobs.dm #define AI_ON 1 #define AI_IDLE 2 #define AI_OFF 3 #define AI_Z_OFF 4 -//determines if a mob can smash through it -#define ENVIRONMENT_SMASH_NONE 0 -#define ENVIRONMENT_SMASH_STRUCTURES (1<<0) //crates, lockers, ect -#define ENVIRONMENT_SMASH_WALLS (1<<1) //walls -#define ENVIRONMENT_SMASH_RWALLS (1<<2) //rwalls +// determines if a mob can smash through it +#define ENVIRONMENT_SMASH_NONE 0 +#define ENVIRONMENT_SMASH_STRUCTURES (1<<0) // crates, lockers, ect +#define ENVIRONMENT_SMASH_WALLS (1<<1) // walls +#define ENVIRONMENT_SMASH_RWALLS (1<<2) // rwalls -#define NO_SLIP_WHEN_WALKING (1<<0) -#define SLIDE (1<<1) -#define GALOSHES_DONT_HELP (1<<2) -#define FLYING_DOESNT_HELP (1<<3) -#define SLIDE_ICE (1<<4) -#define SLIP_WHEN_CRAWLING (1<<5) //clown planet ruin amongst others -#define SLIP_WHEN_JOGGING (1<<6) //slips prevented by walking are also dodged if the mob is nor sprinting or fatigued... unless this flag is on. +#define NO_SLIP_WHEN_WALKING (1<<0) +#define SLIDE (1<<1) +#define GALOSHES_DONT_HELP (1<<2) +#define FLYING_DOESNT_HELP (1<<3) +#define SLIDE_ICE (1<<4) +#define SLIP_WHEN_CRAWLING (1<<5) // clown planet ruin amongst others +#define SLIP_WHEN_JOGGING (1<<6) // slips prevented by walking are also dodged if the mob is nor sprinting or fatigued... unless this flag is on. #define MAX_CHICKENS 50 -///Flags used by the flags parameter of electrocute act. +// /Flags used by the flags parameter of electrocute act. -///Makes it so that the shock doesn't take gloves into account. -#define SHOCK_NOGLOVES (1 << 0) -///Used when the shock is from a tesla bolt. -#define SHOCK_TESLA (1 << 1) -///Used when an illusion shocks something. Makes the shock deal stamina damage and not trigger certain secondary effects. -#define SHOCK_ILLUSION (1 << 2) -///The shock doesn't stun. -#define SHOCK_NOSTUN (1 << 3) +// /Makes it so that the shock doesn't take gloves into account. +#define SHOCK_NOGLOVES (1 << 0) +// /Used when the shock is from a tesla bolt. +#define SHOCK_TESLA (1 << 1) +// /Used when an illusion shocks something. Makes the shock deal stamina damage and not trigger certain secondary effects. +#define SHOCK_ILLUSION (1 << 2) +// /The shock doesn't stun. +#define SHOCK_NOSTUN (1 << 3) -#define INCORPOREAL_MOVE_BASIC 1 -#define INCORPOREAL_MOVE_SHADOW 2 // leaves a trail of shadows -#define INCORPOREAL_MOVE_JAUNT 3 // is blocked by holy water/salt +#define INCORPOREAL_MOVE_BASIC 1 +#define INCORPOREAL_MOVE_SHADOW 2 // leaves a trail of shadows +#define INCORPOREAL_MOVE_JAUNT 3 // is blocked by holy water/salt -//Secbot and ED209 judgement criteria bitflag values +// Secbot and ED209 judgement criteria bitflag values #define JUDGE_EMAGGED (1<<0) #define JUDGE_IDCHECK (1<<1) #define JUDGE_WEAPONCHECK (1<<2) #define JUDGE_RECORDCHECK (1<<3) -//ED209's ignore monkeys +// ED209's ignore monkeys #define JUDGE_IGNOREMONKEYS (1<<4) #define MEGAFAUNA_DEFAULT_RECOVERY_TIME 5 @@ -262,45 +288,45 @@ // Offsets defines -#define OFFSET_UNIFORM "uniform" -#define OFFSET_ID "id" -#define OFFSET_GLOVES "gloves" -#define OFFSET_GLASSES "glasses" -#define OFFSET_EARS "ears" -#define OFFSET_SHOES "shoes" -#define OFFSET_S_STORE "s_store" -#define OFFSET_FACEMASK "mask" -#define OFFSET_HEAD "head" -#define OFFSET_EYES "eyes" -#define OFFSET_LIPS "lips" -#define OFFSET_BELT "belt" -#define OFFSET_BACK "back" -#define OFFSET_SUIT "suit" -#define OFFSET_NECK "neck" -#define OFFSET_HAIR "hair" -#define OFFSET_FHAIR "fhair" -#define OFFSET_MUTPARTS "mutantparts" +#define OFFSET_UNIFORM "uniform" +#define OFFSET_ID "id" +#define OFFSET_GLOVES "gloves" +#define OFFSET_GLASSES "glasses" +#define OFFSET_EARS "ears" +#define OFFSET_SHOES "shoes" +#define OFFSET_S_STORE "s_store" +#define OFFSET_FACEMASK "mask" +#define OFFSET_HEAD "head" +#define OFFSET_EYES "eyes" +#define OFFSET_LIPS "lips" +#define OFFSET_BELT "belt" +#define OFFSET_BACK "back" +#define OFFSET_SUIT "suit" +#define OFFSET_NECK "neck" +#define OFFSET_HAIR "hair" +#define OFFSET_FHAIR "fhair" +#define OFFSET_MUTPARTS "mutantparts" -//MINOR TWEAKS/MISC -#define AGE_MIN 18 //youngest a character can be //CITADEL EDIT - 17 --> 18 -#define AGE_MAX 85 //oldest a character can be -#define WIZARD_AGE_MIN 30 //youngest a wizard can be -#define APPRENTICE_AGE_MIN 29 //youngest an apprentice can be -#define SHOES_SLOWDOWN 0 //How much shoes slow you down by default. Negative values speed you up -#define SHOES_SPEED_SLIGHT SHOES_SLOWDOWN - 1 // slightest speed boost to movement -#define POCKET_STRIP_DELAY 40 //time taken (in deciseconds) to search somebody's pockets -#define DOOR_CRUSH_DAMAGE 15 //the amount of damage that airlocks deal when they crush you +// MINOR TWEAKS/MISC +#define AGE_MIN 18 // youngest a character can be // CITADEL EDIT - 17 --> 18 +#define AGE_MAX 85 // oldest a character can be +#define WIZARD_AGE_MIN 30 // youngest a wizard can be +#define APPRENTICE_AGE_MIN 29 // youngest an apprentice can be +#define SHOES_SLOWDOWN 0 // How much shoes slow you down by default. Negative values speed you up +#define SHOES_SPEED_SLIGHT SHOES_SLOWDOWN - 1 // slightest speed boost to movement +#define POCKET_STRIP_DELAY 40 // time taken (in deciseconds) to search somebody's pockets +#define DOOR_CRUSH_DAMAGE 15 // the amount of damage that airlocks deal when they crush you -#define HUNGER_FACTOR 0.1 //factor at which mob nutrition decreases -#define ETHEREAL_CHARGE_FACTOR 0.08 //factor at which ethereal's charge decreases -#define REAGENTS_METABOLISM 0.4 //How many units of reagent are consumed per tick, by default. +#define HUNGER_FACTOR 0.1 // factor at which mob nutrition decreases +#define ETHEREAL_CHARGE_FACTOR 0.08 // factor at which ethereal's charge decreases +#define REAGENTS_METABOLISM 0.4 // How many units of reagent are consumed per tick, by default. #define REAGENTS_EFFECT_MULTIPLIER (REAGENTS_METABOLISM / 0.4) // By defining the effect multiplier this way, it'll exactly adjust all effects according to how they originally were with the 0.4 metabolism // Roundstart trait system -#define MAX_QUIRKS 6 //The maximum amount of quirks one character can have at roundstart +#define MAX_QUIRKS 6 // The maximum amount of quirks one character can have at roundstart -#define MAX_REVIVE_FIRE_DAMAGE 180 +#define MAX_REVIVE_FIRE_DAMAGE 180 #define MAX_REVIVE_BRUTE_DAMAGE 180 // AI Toggles @@ -308,28 +334,28 @@ #define AI_VOX // Comment out if you don't want VOX to be enabled and have players download the voice sounds. // /obj/item/bodypart on_mob_life() retval flag -#define BODYPART_LIFE_UPDATE_HEALTH (1<<0) +#define BODYPART_LIFE_UPDATE_HEALTH (1<<0) #define HUMAN_FIRE_STACK_ICON_NUM 3 -#define TYPING_INDICATOR_TIMEOUT 5 MINUTES +#define TYPING_INDICATOR_TIMEOUT 5 MINUTES -#define GRAB_PIXEL_SHIFT_PASSIVE 6 -#define GRAB_PIXEL_SHIFT_AGGRESSIVE 12 -#define GRAB_PIXEL_SHIFT_NECK 16 +#define GRAB_PIXEL_SHIFT_PASSIVE 6 +#define GRAB_PIXEL_SHIFT_AGGRESSIVE 12 +#define GRAB_PIXEL_SHIFT_NECK 16 #define SLEEP_CHECK_DEATH(X) sleep(X); if(QDELETED(src) || stat == DEAD) return; #define INTERACTING_WITH(X, Y) (Y in X.do_afters) -/// Field of vision defines. +// / Field of vision defines. #define FOV_90_DEGREES 90 #define FOV_180_DEGREES 180 #define FOV_270_DEGREES 270 -/// How far away you can be to make eye contact with someone while examining +// / How far away you can be to make eye contact with someone while examining #define EYE_CONTACT_RANGE 5 -/// If you examine the same atom twice in this timeframe, we call examine_more() instead of examine() +// / If you examine the same atom twice in this timeframe, we call examine_more() instead of examine() #define EXAMINE_MORE_TIME 1 SECONDS -#define SILENCE_RANGED_MESSAGE (1<<0) +#define SILENCE_RANGED_MESSAGE (1<<0) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index b4c114eb6a..907f4c6459 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -156,6 +156,34 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb var/canMouseDown = FALSE + ///Species Sprite Overrides + var/icon_override = null // Used to override hardcoded clothing dmis in human clothing proc. + + //** These specify item/icon overrides for _slots_ + + var/list/item_state_slots = list() // Overrides the default item_state for particular slots. + + // Used to specify the icon file to be used when the item is worn. If not set the default icon for that slot will be used. + // If icon_override or sprite_sheets are set they will take precendence over this, assuming they apply to the slot in question. + // Only slot_l_hand/slot_r_hand are implemented at the moment. Others to be implemented as needed. + var/list/item_icons = list() + + //** These specify item/icon overrides for _species_ + + /* Species-specific sprites, concept stolen from Paradise//vg/. + ex: + sprite_sheets = list( + SPECIES_FELINID = 'icons/cat/are/bad' + ) + If index term exists and icon_override is not set, this sprite sheet will be used. + */ + var/list/sprite_sheets = list() + + // Species-specific sprite sheets for inventory sprites + // Works similarly to worn sprite_sheets, except the alternate sprites are used when the clothing/refit_for_species() proc is called. + var/list/sprite_sheets_obj = list() + + /obj/item/Initialize() if(attack_verb) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 2fbe738acb..cbba411afa 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -49,8 +49,13 @@ //Basically syntax is species_restricted = list("Species Name","Species Name") //Add a "exclude" string to do the opposite, making it only only species listed that can't wear it. //You append this to clothing objects - - + /* + Sprites used when the clothing item is refit. This is done by setting icon_override. + For best results, if this is set then sprite_sheets should be null and vice versa, but that is by no means necessary. + Ideally, sprite_sheets_refit should be used for "hard" clothing items that can't change shape very well to fit the wearer (e.g. helmets, hardsuits), + while sprite_sheets should be used for "flexible" clothing items that do not need to be refitted (e.g. aliens wearing jumpsuits). + */ + var/list/sprite_sheets_refit = null // How much clothing damage has been dealt to each of the limbs of the clothing, assuming it covers more than one limb var/list/damage_by_parts @@ -477,10 +482,51 @@ BLIND // can't see anything return TRUE - /// If we're a clothing with at least 1 shredded/disabled zone, give the wearer a periodic heads up letting them know their clothes are damaged /obj/item/clothing/proc/bristle(mob/living/L) if(!istype(L)) return if(prob(0.2)) to_chat(L, "The damaged threads on your [src.name] chafe!") + + +/obj/item/clothing/proc/refit_for_species(var/target_species) + if(!species_restricted) + return // This item doesn't use the species_restricted system + + // Set species_restricted list + switch(target_species) + if(SPECIES_HUMAN, SPECIES_SKRELL) // Humanoid bodytypes + species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_PROMETHEAN) // humans and most species can wear each other's suits + else + species_restricted = list(target_species) + + // Set icon + if (sprite_sheets_refit && (target_species in sprite_sheets_refit)) + sprite_sheets[target_species] = sprite_sheets_refit[target_species] + + if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) + icon = sprite_sheets_obj[target_species] + else + icon = initial(icon) + +/obj/item/clothing/head/helmet/refit_for_species(var/target_species) + if(!species_restricted) + return // This item doesn't use the species_restricted system + + // Set species_restricted list + switch(target_species) + if(SPECIES_SKRELL) + species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_PROMETHEAN) //skrell helmets fit humans too + + else + species_restricted = list(target_species) + + // Set icon + if (sprite_sheets_refit && (target_species in sprite_sheets_refit)) + sprite_sheets[target_species] = sprite_sheets_refit[target_species] + + if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) + icon = sprite_sheets_obj[target_species] + else + icon = initial(icon) 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 38e10e8662..73c50dbca9 100644 --- a/code/modules/mob/living/carbon/human/species_types/abductors.dm +++ b/code/modules/mob/living/carbon/human/species_types/abductors.dm @@ -1,5 +1,5 @@ /datum/species/abductor - name = "Abductor" + name = SPECIES_ABDUCTORS id = "abductor" say_mod = "gibbers" sexes = FALSE diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index c5b57b82ab..473f149f7f 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -1,5 +1,5 @@ /datum/species/android - name = "Android" + name = SPECIES_ANDROID id = "android" say_mod = "states" species_traits = list(NOBLOOD,NOGENITALS,NOAROUSAL) diff --git a/code/modules/mob/living/carbon/human/species_types/angel.dm b/code/modules/mob/living/carbon/human/species_types/angel.dm index 2cf054c7b9..ed3805fe99 100644 --- a/code/modules/mob/living/carbon/human/species_types/angel.dm +++ b/code/modules/mob/living/carbon/human/species_types/angel.dm @@ -1,5 +1,5 @@ /datum/species/angel - name = "Angel" + name = SPECIES_ANGEL id = "angel" default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,HAS_FLESH,HAS_BONE) @@ -141,4 +141,4 @@ H.setMovetype(H.movement_type & ~FLYING) override_float = FALSE H.pass_flags &= ~PASSTABLE - H.CloseWings() \ No newline at end of file + H.CloseWings() diff --git a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm b/code/modules/mob/living/carbon/human/species_types/anthromorph.dm similarity index 91% rename from code/modules/mob/living/carbon/human/species_types/furrypeople.dm rename to code/modules/mob/living/carbon/human/species_types/anthromorph.dm index 534536d6e7..6e1872849e 100644 --- a/code/modules/mob/living/carbon/human/species_types/furrypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/anthromorph.dm @@ -1,5 +1,5 @@ /datum/species/mammal - name = "Anthromorph" + name = SPECIES_ANTHROMORPH id = "mammal" default_color = "4B4B4B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,HORNCOLOR,WINGCOLOR,HAS_FLESH,HAS_BONE) @@ -17,4 +17,4 @@ wagging_type = "mam_waggingtail" species_type = "furry" - allowed_limb_ids = list("mammal","aquatic","avian") \ No newline at end of file + allowed_limb_ids = list("mammal","aquatic","avian") diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm index 16b371c772..0885938fc9 100644 --- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm @@ -1,5 +1,5 @@ /datum/species/insect - name = "Anthromorphic Insect" + name = SPECIES_BUGMAN id = "insect" say_mod = "chitters" default_color = "00FF00" diff --git a/code/modules/mob/living/carbon/human/species_types/corporate.dm b/code/modules/mob/living/carbon/human/species_types/corporate.dm index a2597ed286..aa1f9747ed 100644 --- a/code/modules/mob/living/carbon/human/species_types/corporate.dm +++ b/code/modules/mob/living/carbon/human/species_types/corporate.dm @@ -18,4 +18,4 @@ inherent_traits = list(TRAIT_RADIMMUNE,TRAIT_VIRUSIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOLIMBDISABLE,TRAIT_NOHUNGER) sexes = 0 gib_types = /obj/effect/gibspawner/robot - species_type = "robotic" \ No newline at end of file + species_type = "robotic" diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index f3b499093b..ca5acc50f4 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -1,5 +1,5 @@ /datum/species/dullahan - name = "Dullahan" + name = SPECIES_DULLAHAN id = "dullahan" default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,HAS_FLESH,HAS_BONE) diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index a465e7c3a9..4cb1ae2670 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -3,7 +3,7 @@ GLOBAL_LIST_INIT(dwarf_first, world.file2list("strings/names/dwarf_first.txt")) GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) //textfiles with last /datum/species/dwarf //not to be confused with the genetic manlets - name = "Dwarf" + name = SPECIES_DWARF id = "dwarf" //Also called Homo sapiens pumilionis default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,HAS_FLESH,HAS_BONE) 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 cd9b3b80c7..1b66f351b2 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -1,7 +1,7 @@ #define ETHEREAL_COLORS list("#00ffff", "#ffc0cb", "#9400D3", "#4B0082", "#0000FF", "#00FF00", "#FFFF00", "#FF7F00", "#FF0000") /datum/species/ethereal - name = "Ethereal" + name = SPECIES_ETHEREAL id = "ethereal" attack_verb = "burn" attack_sound = 'sound/weapons/etherealhit.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 b760fd0aee..39317f7a7c 100644 --- a/code/modules/mob/living/carbon/human/species_types/felinid.dm +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -1,6 +1,6 @@ //Subtype of human /datum/species/human/felinid - name = "Felinid" + name = SPECIES_FELINID id = "felinid" limbs_id = "human" 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 c56adaf1b0..f8f2337ea9 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -1,5 +1,5 @@ /datum/species/fly - name = "Anthromorphic Fly" + name = SPECIES_FLYPEOPLE id = "fly" say_mod = "buzzes" species_traits = list(NOEYES,HAS_FLESH,HAS_BONE) diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index 438eaf1eea..d7467af20a 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -1,6 +1,6 @@ /datum/species/golem // Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck. - name = "Golem" + name = SPECIES_GOLEM id = "iron golem" species_traits = list(NOBLOOD,MUTCOLORS,NO_UNDERWEAR,NOGENITALS,NOAROUSAL) inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOFIRE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER) 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 f175ddb921..475d45e4eb 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -1,5 +1,5 @@ /datum/species/human - name = "Human" + name = SPECIES_HUMAN id = "human" default_color = "FFFFFF" 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 b675925aeb..b416b45a8f 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -1,5 +1,5 @@ /datum/species/ipc - name = "I.P.C." + name = SPECIES_IPC id = "ipc" say_mod = "beeps" default_color = "00FF00" 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 43f5ca5526..524298e1c0 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -421,7 +421,7 @@ ////////////////////////////////////////////////////////Round Start Slimes/////////////////////////////////////////////////////////////////// /datum/species/jelly/roundstartslime - name = "Xenobiological Slime Hybrid" + name = SPECIES_JELLYHYBRID id = "slimeperson" limbs_id = "slime" default_color = "00FFFF" 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 a8e3f89957..b8e62a57b7 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -1,6 +1,6 @@ /datum/species/lizard // Reptilian humanoids with scaled skin and tails. - name = "Anthromorphic Lizard" + name = SPECIES_LIZARD id = "lizard" say_mod = "hisses" default_color = "00FF00" diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm index f91c3518a3..6131677eec 100644 --- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm @@ -1,5 +1,5 @@ /datum/species/mush //mush mush codecuck - name = "Anthromorphic Mushroom" + name = SPECIES_ANTHRO_MUSH id = "mush" mutant_bodyparts = list("caps" = "Round") 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 8c30adb8f9..67805c27ba 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -1,5 +1,5 @@ /datum/species/plasmaman - name = "Plasmaman" + name = SPECIES_PLASMAMAN id = "plasmaman" say_mod = "rattles" sexes = 0 diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 0f62953e6c..9943a3115b 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -1,6 +1,6 @@ /datum/species/pod // A mutation caused by a human being ressurected in a revival pod. These regain health in light, and begin to wither in darkness. - name = "Anthromorphic Plant" + name = SPECIES_POD id = "pod" default_color = "59CE00" species_traits = list(MUTCOLORS,EYECOLOR,CAN_SCAR,HAS_FLESH,HAS_BONE) 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 1b6bef9dc6..fa69c554a6 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -1,5 +1,5 @@ /datum/species/skeleton - name = "Skeleton" + name = SPECIES_SKELETON id = "skeleton" say_mod = "rattles" blacklisted = 0 diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index 70afa2f476..894a47eade 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -1,5 +1,5 @@ /datum/species/synthliz - name = "Synthetic Lizardperson" + name = SPECIES_SYNTH_LIZARD id = "synthliz" say_mod = "beeps" default_color = "00FF00" diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index 3d55ce1027..835d64cec2 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -1,5 +1,5 @@ /datum/species/synth - name = "Synthetic" //inherited from the real species, for health scanners and things + name = SPECIES_SYNTH //inherited from the real species, for health scanners and things id = "synth" say_mod = "beep boops" //inherited from a user's real species sexes = 0 diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index 857fb6d8ed..7ea19c5a2c 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -1,5 +1,5 @@ /datum/species/vampire - name = "Vampire" + name = SPECIES_VAMPIRE id = "vampire" default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,DRINKSBLOOD,HAS_FLESH,HAS_BONE) diff --git a/code/modules/mob/living/carbon/human/species_types/xeno.dm b/code/modules/mob/living/carbon/human/species_types/xeno.dm index ddd1c86f0a..1616190646 100644 --- a/code/modules/mob/living/carbon/human/species_types/xeno.dm +++ b/code/modules/mob/living/carbon/human/species_types/xeno.dm @@ -1,6 +1,6 @@ /datum/species/xeno // A cloning mistake, crossing human and xenomorph DNA - name = "Xenomorph Hybrid" + name = SPECIES_XENOHYBRID id = "xeno" say_mod = "hisses" default_color = "00FF00" 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 8d86ad2fa9..5c833c212c 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -98,7 +98,7 @@ // Your skin falls off /datum/species/krokodil_addict - name = "Human" + name = SPECIES_HUMAN id = "goofzombies" limbs_id = "zombie" //They look like zombies sexes = 0 diff --git a/tgstation.dme b/tgstation.dme index 143f66a656..7ec461a640 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -2538,6 +2538,7 @@ #include "code\modules\mob\living\carbon\human\species_types\abductors.dm" #include "code\modules\mob\living\carbon\human\species_types\android.dm" #include "code\modules\mob\living\carbon\human\species_types\angel.dm" +#include "code\modules\mob\living\carbon\human\species_types\anthromorph.dm" #include "code\modules\mob\living\carbon\human\species_types\bugmen.dm" #include "code\modules\mob\living\carbon\human\species_types\corporate.dm" #include "code\modules\mob\living\carbon\human\species_types\dullahan.dm" @@ -2545,7 +2546,6 @@ #include "code\modules\mob\living\carbon\human\species_types\ethereal.dm" #include "code\modules\mob\living\carbon\human\species_types\felinid.dm" #include "code\modules\mob\living\carbon\human\species_types\flypeople.dm" -#include "code\modules\mob\living\carbon\human\species_types\furrypeople.dm" #include "code\modules\mob\living\carbon\human\species_types\golems.dm" #include "code\modules\mob\living\carbon\human\species_types\humans.dm" #include "code\modules\mob\living\carbon\human\species_types\ipc.dm" From bdd121cd816916872767495cbe307c497194c9de Mon Sep 17 00:00:00 2001 From: Zandario Date: Fri, 2 Oct 2020 17:17:50 -0500 Subject: [PATCH 2/9] Prep Work --- code/__DEFINES/mobs.dm | 26 ---------- code/__DEFINES/species.dm | 50 +++++++++++++++++++ code/_globalvars/lists/flavor_misc.dm | 2 +- code/datums/diseases/transformation.dm | 4 +- code/modules/clothing/clothing.dm | 14 +++--- .../mob/living/carbon/human/species.dm | 2 +- .../{abductors.dm => abductor.dm} | 6 +-- .../carbon/human/species_types/android.dm | 6 +-- .../carbon/human/species_types/angel.dm | 6 +-- .../carbon/human/species_types/anthromorph.dm | 6 +-- .../carbon/human/species_types/bugmen.dm | 6 +-- .../carbon/human/species_types/corporate.dm | 2 +- .../carbon/human/species_types/dullahan.dm | 6 +-- .../carbon/human/species_types/dwarves.dm | 6 +-- .../carbon/human/species_types/ethereal.dm | 4 +- .../carbon/human/species_types/felinid.dm | 6 +-- .../carbon/human/species_types/flypeople.dm | 6 +-- .../carbon/human/species_types/golems.dm | 6 +-- .../carbon/human/species_types/humans.dm | 6 +-- .../living/carbon/human/species_types/ipc.dm | 6 +-- .../carbon/human/species_types/jellypeople.dm | 14 +++--- .../human/species_types/lizardpeople.dm | 8 +-- .../carbon/human/species_types/mushpeople.dm | 6 +-- .../carbon/human/species_types/plasmamen.dm | 6 +-- .../carbon/human/species_types/podpeople.dm | 8 +-- .../human/species_types/shadowpeople.dm | 6 +-- .../carbon/human/species_types/skeletons.dm | 8 +-- .../carbon/human/species_types/synthliz.dm | 6 +-- .../carbon/human/species_types/synths.dm | 8 +-- .../carbon/human/species_types/vampire.dm | 6 +-- .../living/carbon/human/species_types/xeno.dm | 6 +-- .../carbon/human/species_types/zombies.dm | 2 +- .../chemistry/reagents/alcohol_reagents.dm | 2 +- .../chemistry/reagents/other_reagents.dm | 8 +-- tgstation.dme | 3 +- 35 files changed, 150 insertions(+), 123 deletions(-) create mode 100644 code/__DEFINES/species.dm rename code/modules/mob/living/carbon/human/species_types/{abductors.dm => abductor.dm} (88%) diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index 87722b4562..e913c1019f 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -11,32 +11,6 @@ #define MOVE_INTENT_WALK "walk" #define MOVE_INTENT_RUN "run" -// Species defines --------------------------- - -#define SPECIES_ABDUCTOR "Abductor" -#define SPECIES_ANDROID "Android" -#define SPECIES_ANGEL "Angel" -#define SPECIES_ANTHROMORPH "Anthromorph" -#define SPECIES_BUGMAN "Anthromorphic Insect" -#define SPECIES_DULLAHAN "Dullahan" -#define SPECIES_DWARF "Dwarf" -#define SPECIES_ETHEREAL "Ethereal" -#define SPECIES_FELINID "Felinid" -#define SPECIES_FLYPEOPLE "Anthromorphic Fly" -#define SPECIES_GOLEM "Golem" -#define SPECIES_HUMAN "Human" -#define SPECIES_IPC "I.P.C." -#define SPECIES_JELLYHYBRID "Xenobiological Slime Hybrid" -#define SPECIES_LIZARD "Anthromorphic Lizard" -#define SPECIES_ANTHRO_MUSH "Anthromorphic Mushroom" -#define SPECIES_PLASMAMAN "Plasmaman" -#define SPECIES_POD "Anthromorphic Plant" -#define SPECIES_SKELETON "Skeleton" -#define SPECIES_SYNTH_LIZARD "Synthetic Lizardperson" -#define SPECIES_SYNTH "Synthetic" -#define SPECIES_VAMPIRE "Vampire" -#define SPECIES_XENOHYBRID "Xenomorph Hybrid" - // Blood levels #define BLOOD_VOLUME_MAX_LETHAL 2150 #define BLOOD_VOLUME_EXCESS 2100 diff --git a/code/__DEFINES/species.dm b/code/__DEFINES/species.dm new file mode 100644 index 0000000000..c6cc6a5037 --- /dev/null +++ b/code/__DEFINES/species.dm @@ -0,0 +1,50 @@ + +// Species ID Defines --------------------------- + +#define SPECIES_ABDUCTOR "abductor" +#define SPECIES_ANDROID "android" +#define SPECIES_ANGEL "angel" +#define SPECIES_MAMMAL "mammal" +#define SPECIES_INSECT "insect" +#define SPECIES_DULLAHAN "dullahan" +#define SPECIES_DWARF "dwarf" +#define SPECIES_ETHEREAL "ethereal" +#define SPECIES_FELINID "felinid" +#define SPECIES_FLY "fly" +#define SPECIES_GOLEM "golem" +#define SPECIES_HUMAN "human" +#define SPECIES_IPC "ipc" +#define SPECIES_JELLY "jelly" + #define SPECIES_SLIME "slime" + #define SPECIES_SLIME_HYBRID "slimeperson" + #define SPECIES_SLIME_LUMI "slimelumi" + #define SPECIES_STARGAZER "stargazer" +#define SPECIES_LIZARD "lizard" + #define SPECIES_ASHWALKER "ashlizard" +#define SPECIES_MUSHROOM "mush" +#define SPECIES_PLASMAMAN "plasmaman" +#define SPECIES_POD "pod" + #define SPECIES_POD_WEAK "podweak" +#define SPECIES_SHADOW "shadow" + #define SPECIES_NIGHTMARE "nightmare" +#define SPECIES_SKELETON "skeleton" + #define SPECIES_SKELETON_SPACE "spaceskeleton" +#define SPECIES_SYNTH_LIZARD "synthliz" +#define SPECIES_SYNTH "synth" + #define SPECIES_SYNTH_MIL "military_synth" +#define SPECIES_VAMPIRE "vampire" +#define SPECIES_XENOHYBRID "xeno" + +// Species Category Defines --------------------- + +#define SPECIES_CATEGORY_ALIEN "alien" +#define SPECIES_CATEGORY_BASIC "human" +#define SPECIES_CATEGORY_FURRY "furry" // Weird Category, but okay. +#define SPECIES_CATEGORY_GOLEM "golem" +#define SPECIES_CATEGORY_INSECT "insect" +#define SPECIES_CATEGORY_PLANT "plant" +#define SPECIES_CATEGORY_ROBOT "robotic" +#define SPECIES_CATEGORY_JELLY "jelly" +#define SPECIES_CATEGORY_SHADOW "shadow" +#define SPECIES_CATEGORY_SKELETON "skeleton" +#define SPECIES_CATEGORY_UNDEAD "undead" diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index e8726f8316..0d59ab7dba 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -280,7 +280,7 @@ GLOBAL_LIST_INIT(unlocked_mutant_parts, list("horns", "insect_fluff")) GLOBAL_LIST_INIT(colored_mutant_parts, list("insect_wings" = "wings_color", "deco_wings" = "wings_color", "horns" = "horns_color")) //body ids that have greyscale sprites -GLOBAL_LIST_INIT(greyscale_limb_types, list("human","moth","lizard","pod","plant","jelly","slime","golem","lum","stargazer","mush","ethereal","snail","c_golem","b_golem","mammal","xeno","ipc","insect","synthliz","avian","aquatic")) +GLOBAL_LIST_INIT(greyscale_limb_types, list("human","moth","lizard","pod","plant","jelly","slime","golem","slimelumi","stargazer","mush","ethereal","snail","c_golem","b_golem","mammal","xeno","ipc","insect","synthliz","avian","aquatic")) //body ids that have prosthetic sprites GLOBAL_LIST_INIT(prosthetic_limb_types, list("xion","bishop","cybersolutions","grayson","hephaestus","nanotrasen","talon")) diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index e90eededd9..f952307685 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -236,12 +236,12 @@ switch(stage) if(1) if(ishuman(affected_mob) && affected_mob.dna) - if(affected_mob.dna.species.id == "slime" || affected_mob.dna.species.id == "stargazer" || affected_mob.dna.species.id == "lum") + if(affected_mob.dna.species.id == "slime" || affected_mob.dna.species.id == "stargazer" || affected_mob.dna.species.id == "slimelumi") stage = 5 if(3) if(ishuman(affected_mob)) var/mob/living/carbon/human/human = affected_mob - if(human.dna.species.id != "slime" && affected_mob.dna.species.id != "stargazer" && affected_mob.dna.species.id != "lum") + if(human.dna.species.id != "slime" && affected_mob.dna.species.id != "stargazer" && affected_mob.dna.species.id != "slimelumi") human.set_species(/datum/species/jelly/slime) /datum/disease/transformation/corgi diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index cbba411afa..2bf13fa521 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -494,13 +494,14 @@ BLIND // can't see anything if(!species_restricted) return // This item doesn't use the species_restricted system +/* //TODO - Implement when ready. P.S. It isn't ready. // Set species_restricted list switch(target_species) - if(SPECIES_HUMAN, SPECIES_SKRELL) // Humanoid bodytypes - species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_PROMETHEAN) // humans and most species can wear each other's suits + if(SPECIES_CATEGORY_BASIC) // Humanoid bodytypes + species_restricted = list(SPECIES_CATEGORY_BASIC) else species_restricted = list(target_species) - +*/ // Set icon if (sprite_sheets_refit && (target_species in sprite_sheets_refit)) sprite_sheets[target_species] = sprite_sheets_refit[target_species] @@ -514,14 +515,15 @@ BLIND // can't see anything if(!species_restricted) return // This item doesn't use the species_restricted system +/* //TODO - Implement when ready. P.S. It isn't ready. // Set species_restricted list switch(target_species) - if(SPECIES_SKRELL) - species_restricted = list(SPECIES_HUMAN, SPECIES_SKRELL, SPECIES_PROMETHEAN) //skrell helmets fit humans too + if(SPECIES_CATEGORY_BASIC) + species_restricted = list(SPECIES_CATEGORY_BASIC) else species_restricted = list(target_species) - +*/ // Set icon if (sprite_sheets_refit && (target_species in sprite_sheets_refit)) sprite_sheets[target_species] = sprite_sheets_refit[target_species] diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index d433ca1821..c03b78a63c 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -106,7 +106,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) var/whitelisted = 0 //Is this species restricted to certain players? var/whitelist = list() //List the ckeys that can use this species, if it's whitelisted.: list("John Doe", "poopface666", "SeeALiggerPullTheTrigger") Spaces & capitalization can be included or ignored entirely for each key as it checks for both. var/icon_limbs //Overrides the icon used for the limbs of this species. Mainly for downstream, and also because hardcoded icons disgust me. Implemented and maintained as a favor in return for a downstream's implementation of synths. - var/species_type + var/species_category var/tail_type //type of tail i.e. mam_tail var/wagging_type //type of wagging i.e. waggingtail_lizard diff --git a/code/modules/mob/living/carbon/human/species_types/abductors.dm b/code/modules/mob/living/carbon/human/species_types/abductor.dm similarity index 88% rename from code/modules/mob/living/carbon/human/species_types/abductors.dm rename to code/modules/mob/living/carbon/human/species_types/abductor.dm index 73c50dbca9..004ba267e8 100644 --- a/code/modules/mob/living/carbon/human/species_types/abductors.dm +++ b/code/modules/mob/living/carbon/human/species_types/abductor.dm @@ -1,12 +1,12 @@ /datum/species/abductor - name = SPECIES_ABDUCTORS - id = "abductor" + name = "Abductor" + id = SPECIES_ABDUCTOR say_mod = "gibbers" sexes = FALSE species_traits = list(NOBLOOD,NOEYES,NOGENITALS,NOAROUSAL,HAS_FLESH,HAS_BONE) inherent_traits = list(TRAIT_VIRUSIMMUNE,TRAIT_CHUNKYFINGERS,TRAIT_NOHUNGER,TRAIT_NOBREATH) mutanttongue = /obj/item/organ/tongue/abductor - species_type = "alien" + species_category = SPECIES_CATEGORY_ALIEN /datum/species/abductor/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() diff --git a/code/modules/mob/living/carbon/human/species_types/android.dm b/code/modules/mob/living/carbon/human/species_types/android.dm index 473f149f7f..4267911245 100644 --- a/code/modules/mob/living/carbon/human/species_types/android.dm +++ b/code/modules/mob/living/carbon/human/species_types/android.dm @@ -1,6 +1,6 @@ /datum/species/android - name = SPECIES_ANDROID - id = "android" + name = "Android" + id = SPECIES_ANDROID say_mod = "states" species_traits = list(NOBLOOD,NOGENITALS,NOAROUSAL) inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_NOFIRE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_LIMBATTACHMENT) @@ -11,7 +11,7 @@ mutanttongue = /obj/item/organ/tongue/robot species_language_holder = /datum/language_holder/synthetic limbs_id = "synth" - species_type = "robotic" + species_category = SPECIES_CATEGORY_ROBOT /datum/species/android/on_species_gain(mob/living/carbon/C) . = ..() diff --git a/code/modules/mob/living/carbon/human/species_types/angel.dm b/code/modules/mob/living/carbon/human/species_types/angel.dm index ed3805fe99..d4d9bff96d 100644 --- a/code/modules/mob/living/carbon/human/species_types/angel.dm +++ b/code/modules/mob/living/carbon/human/species_types/angel.dm @@ -1,6 +1,6 @@ /datum/species/angel - name = SPECIES_ANGEL - id = "angel" + name = "Angel" + id = SPECIES_ANGEL default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,HAS_FLESH,HAS_BONE) mutant_bodyparts = list("tail_human" = "None", "ears" = "None", "wings" = "Angel") @@ -9,7 +9,7 @@ blacklisted = 1 limbs_id = "human" skinned_type = /obj/item/stack/sheet/animalhide/human - species_type = "human" //they're a kind of human + species_category = SPECIES_CATEGORY_BASIC //they're a kind of human var/datum/action/innate/flight/fly diff --git a/code/modules/mob/living/carbon/human/species_types/anthromorph.dm b/code/modules/mob/living/carbon/human/species_types/anthromorph.dm index 6e1872849e..95aec26d9f 100644 --- a/code/modules/mob/living/carbon/human/species_types/anthromorph.dm +++ b/code/modules/mob/living/carbon/human/species_types/anthromorph.dm @@ -1,6 +1,6 @@ /datum/species/mammal - name = SPECIES_ANTHROMORPH - id = "mammal" + name = "Anthromorph" + id = SPECIES_MAMMAL default_color = "4B4B4B" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,HAIR,HORNCOLOR,WINGCOLOR,HAS_FLESH,HAS_BONE) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BEAST @@ -15,6 +15,6 @@ tail_type = "mam_tail" wagging_type = "mam_waggingtail" - species_type = "furry" + species_category = SPECIES_CATEGORY_FURRY allowed_limb_ids = list("mammal","aquatic","avian") diff --git a/code/modules/mob/living/carbon/human/species_types/bugmen.dm b/code/modules/mob/living/carbon/human/species_types/bugmen.dm index 0885938fc9..e12ac34698 100644 --- a/code/modules/mob/living/carbon/human/species_types/bugmen.dm +++ b/code/modules/mob/living/carbon/human/species_types/bugmen.dm @@ -1,6 +1,6 @@ /datum/species/insect - name = SPECIES_BUGMAN - id = "insect" + name = "Anthromorphic Insect" + id = SPECIES_INSECT say_mod = "chitters" default_color = "00FF00" species_traits = list(LIPS,EYECOLOR,HAIR,FACEHAIR,MUTCOLORS,HORNCOLOR,WINGCOLOR,HAS_FLESH,HAS_BONE) @@ -18,6 +18,6 @@ tail_type = "mam_tail" wagging_type = "mam_waggingtail" - species_type = "insect" + species_category = SPECIES_CATEGORY_INSECT allowed_limb_ids = list("insect","apid","moth","moth_not_greyscale") diff --git a/code/modules/mob/living/carbon/human/species_types/corporate.dm b/code/modules/mob/living/carbon/human/species_types/corporate.dm index aa1f9747ed..e9baa786da 100644 --- a/code/modules/mob/living/carbon/human/species_types/corporate.dm +++ b/code/modules/mob/living/carbon/human/species_types/corporate.dm @@ -18,4 +18,4 @@ inherent_traits = list(TRAIT_RADIMMUNE,TRAIT_VIRUSIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER,TRAIT_NOLIMBDISABLE,TRAIT_NOHUNGER) sexes = 0 gib_types = /obj/effect/gibspawner/robot - species_type = "robotic" + species_category = SPECIES_CATEGORY_ROBOT diff --git a/code/modules/mob/living/carbon/human/species_types/dullahan.dm b/code/modules/mob/living/carbon/human/species_types/dullahan.dm index ca5acc50f4..f756fd8816 100644 --- a/code/modules/mob/living/carbon/human/species_types/dullahan.dm +++ b/code/modules/mob/living/carbon/human/species_types/dullahan.dm @@ -1,6 +1,6 @@ /datum/species/dullahan - name = SPECIES_DULLAHAN - id = "dullahan" + name = "Dullahan" + id = SPECIES_DULLAHAN default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,HAS_FLESH,HAS_BONE) inherent_traits = list(TRAIT_NOHUNGER,TRAIT_NOBREATH) @@ -14,7 +14,7 @@ limbs_id = "human" skinned_type = /obj/item/stack/sheet/animalhide/human has_field_of_vision = FALSE //Too much of a trouble, their vision is already bound to their severed head. - species_type = "undead" + species_category = SPECIES_CATEGORY_UNDEAD var/pumpkin = FALSE var/obj/item/dullahan_relay/myhead diff --git a/code/modules/mob/living/carbon/human/species_types/dwarves.dm b/code/modules/mob/living/carbon/human/species_types/dwarves.dm index 4cb1ae2670..ce67a947de 100644 --- a/code/modules/mob/living/carbon/human/species_types/dwarves.dm +++ b/code/modules/mob/living/carbon/human/species_types/dwarves.dm @@ -3,8 +3,8 @@ GLOBAL_LIST_INIT(dwarf_first, world.file2list("strings/names/dwarf_first.txt")) GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) //textfiles with last /datum/species/dwarf //not to be confused with the genetic manlets - name = SPECIES_DWARF - id = "dwarf" //Also called Homo sapiens pumilionis + name = "Dwarf" + id = SPECIES_DWARF //Also called Homo sapiens pumilionis default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,HAS_FLESH,HAS_BONE) inherent_traits = list(TRAIT_DWARF,TRAIT_SNOB) @@ -18,7 +18,7 @@ GLOBAL_LIST_INIT(dwarf_last, world.file2list("strings/names/dwarf_last.txt")) // mutant_organs = list(/obj/item/organ/dwarfgland) //Dwarven alcohol gland, literal gland warrior mutantliver = /obj/item/organ/liver/dwarf //Dwarven super liver (Otherwise they r doomed) species_language_holder = /datum/language_holder/dwarf - species_type = "human" //a kind of human + species_category = SPECIES_CATEGORY_BASIC //a kind of human /mob/living/carbon/human/species/dwarf //species admin spawn path race = /datum/species/dwarf //and the race the path is set to. 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 1b66f351b2..d286a7bdba 100644 --- a/code/modules/mob/living/carbon/human/species_types/ethereal.dm +++ b/code/modules/mob/living/carbon/human/species_types/ethereal.dm @@ -1,8 +1,8 @@ #define ETHEREAL_COLORS list("#00ffff", "#ffc0cb", "#9400D3", "#4B0082", "#0000FF", "#00FF00", "#FFFF00", "#FF7F00", "#FF0000") /datum/species/ethereal - name = SPECIES_ETHEREAL - id = "ethereal" + name = "Ethereal" + id = SPECIES_ETHEREAL attack_verb = "burn" 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 39317f7a7c..011b6b7642 100644 --- a/code/modules/mob/living/carbon/human/species_types/felinid.dm +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -1,7 +1,7 @@ //Subtype of human /datum/species/human/felinid - name = SPECIES_FELINID - id = "felinid" + name = "Felinid" + id = SPECIES_FELINID limbs_id = "human" mutant_bodyparts = list("mam_tail" = "Cat", "mam_ears" = "Cat", "deco_wings" = "None") @@ -11,7 +11,7 @@ tail_type = "mam_tail" wagging_type = "mam_waggingtail" - species_type = "furry" + species_category = SPECIES_CATEGORY_FURRY /datum/species/human/felinid/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) if(ishuman(C)) 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 f8f2337ea9..c3e406244b 100644 --- a/code/modules/mob/living/carbon/human/species_types/flypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/flypeople.dm @@ -1,6 +1,6 @@ /datum/species/fly - name = SPECIES_FLYPEOPLE - id = "fly" + name = "Anthromorphic Fly" + id = SPECIES_FLY say_mod = "buzzes" species_traits = list(NOEYES,HAS_FLESH,HAS_BONE) inherent_biotypes = MOB_ORGANIC|MOB_HUMANOID|MOB_BUG @@ -12,7 +12,7 @@ liked_food = GROSS exotic_bloodtype = "BUG" exotic_blood_color = BLOOD_COLOR_BUG - species_type = "insect" + species_category = SPECIES_CATEGORY_INSECT /datum/species/fly/handle_chemicals(datum/reagent/chem, mob/living/carbon/human/H) if(istype(chem, /datum/reagent/toxin/pestkiller)) diff --git a/code/modules/mob/living/carbon/human/species_types/golems.dm b/code/modules/mob/living/carbon/human/species_types/golems.dm index d7467af20a..ff0287d7b9 100644 --- a/code/modules/mob/living/carbon/human/species_types/golems.dm +++ b/code/modules/mob/living/carbon/human/species_types/golems.dm @@ -1,7 +1,7 @@ /datum/species/golem // Animated beings of stone. They have increased defenses, and do not need to breathe. They're also slow as fuuuck. - name = SPECIES_GOLEM - id = "iron golem" + name = "Golem" + id = SPECIES_GOLEM species_traits = list(NOBLOOD,MUTCOLORS,NO_UNDERWEAR,NOGENITALS,NOAROUSAL) inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_NOFIRE,TRAIT_CHUNKYFINGERS,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NODISMEMBER) inherent_biotypes = MOB_HUMANOID|MOB_MINERAL @@ -32,7 +32,7 @@ var/special_name_chance = 5 var/owner //dobby is a free golem - species_type = "golem" + species_category = SPECIES_CATEGORY_GOLEM /datum/species/golem/random_name(gender,unique,lastname) var/golem_surname = pick(GLOB.golem_names) 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 475d45e4eb..e8e0ff1a78 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,6 @@ /datum/species/human - name = SPECIES_HUMAN - id = "human" + name = "Human" + id = SPECIES_HUMAN default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS_PARTSONLY,WINGCOLOR,HAS_FLESH,HAS_BONE) @@ -12,7 +12,7 @@ tail_type = "tail_human" wagging_type = "waggingtail_human" - species_type = "human" + species_category = SPECIES_CATEGORY_BASIC /datum/species/human/spec_death(gibbed, mob/living/carbon/human/H) if(H) 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 b416b45a8f..906ea54c68 100644 --- a/code/modules/mob/living/carbon/human/species_types/ipc.dm +++ b/code/modules/mob/living/carbon/human/species_types/ipc.dm @@ -1,6 +1,6 @@ /datum/species/ipc - name = SPECIES_IPC - id = "ipc" + name = "I.P.C." + id = SPECIES_IPC say_mod = "beeps" default_color = "00FF00" blacklisted = 0 @@ -21,7 +21,7 @@ exotic_bloodtype = "HF" exotic_blood_color = BLOOD_COLOR_OIL - species_type = "robotic" + species_category = SPECIES_CATEGORY_ROBOT var/datum/action/innate/monitor_change/screen 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 524298e1c0..69405deb31 100644 --- a/code/modules/mob/living/carbon/human/species_types/jellypeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/jellypeople.dm @@ -1,7 +1,7 @@ /datum/species/jelly // Entirely alien beings that seem to be made entirely out of gel. They have three eyes and a skeleton visible within them. name = "Xenobiological Jelly Entity" - id = "jelly" + id = SPECIES_JELLY default_color = "00FF90" say_mod = "chirps" species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,WINGCOLOR,HAS_FLESH) @@ -28,7 +28,7 @@ tail_type = "mam_tail" wagging_type = "mam_waggingtail" - species_type = "jelly" + species_category = SPECIES_CATEGORY_JELLY /obj/item/organ/brain/jelly name = "slime nucleus" @@ -140,7 +140,7 @@ /datum/species/jelly/slime name = "Xenobiological Slime Entity" - id = "slime" + id = SPECIES_SLIME default_color = "00FFFF" species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR) say_mod = "says" @@ -421,8 +421,8 @@ ////////////////////////////////////////////////////////Round Start Slimes/////////////////////////////////////////////////////////////////// /datum/species/jelly/roundstartslime - name = SPECIES_JELLYHYBRID - id = "slimeperson" + name = "Xenobiological Slime Hybrid" + id = SPECIES_SLIME_HYBRID limbs_id = "slime" default_color = "00FFFF" species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR) @@ -648,7 +648,7 @@ /datum/species/jelly/luminescent name = "Luminescent Slime Entity" - id = "lum" + id = SPECIES_SLIME_LUMI say_mod = "says" var/glow_intensity = LUMINESCENT_DEFAULT_GLOW var/obj/effect/dummy/luminescent_glow/glow @@ -815,7 +815,7 @@ /datum/species/jelly/stargazer name = "Stargazer Slime Entity" - id = "stargazer" + id = SPECIES_STARGAZER var/datum/action/innate/project_thought/project_thought var/datum/action/innate/link_minds/link_minds var/list/mob/living/linked_mobs = list() 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 b8e62a57b7..c37a24a93a 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -1,7 +1,7 @@ /datum/species/lizard // Reptilian humanoids with scaled skin and tails. - name = SPECIES_LIZARD - id = "lizard" + name = "Anthromorphic Lizard" + id = SPECIES_LIZARD say_mod = "hisses" default_color = "00FF00" species_traits = list(MUTCOLORS,EYECOLOR,HAIR,FACEHAIR,LIPS,HORNCOLOR,WINGCOLOR,HAS_FLESH,HAS_BONE) @@ -28,7 +28,7 @@ tail_type = "tail_lizard" wagging_type = "waggingtail_lizard" - species_type = "lizard" + species_category = "lizard" /datum/species/lizard/random_name(gender,unique,lastname) if(unique) @@ -46,7 +46,7 @@ */ /datum/species/lizard/ashwalker name = "Ash Walker" - id = "ashlizard" + id = SPECIES_ASHWALKER limbs_id = "lizard" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,DIGITIGRADE) inherent_traits = list(TRAIT_CHUNKYFINGERS) diff --git a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm index 6131677eec..dcbdf91485 100644 --- a/code/modules/mob/living/carbon/human/species_types/mushpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/mushpeople.dm @@ -1,6 +1,6 @@ /datum/species/mush //mush mush codecuck - name = SPECIES_ANTHRO_MUSH - id = "mush" + name = "Anthromorphic Mushroom" + id = SPECIES_MUSHROOM mutant_bodyparts = list("caps" = "Round") fixed_mut_color = "DBBF92" @@ -21,7 +21,7 @@ burnmod = 1.25 heatmod = 1.5 - species_type = "plant" + species_category = SPECIES_CATEGORY_PLANT mutanteyes = /obj/item/organ/eyes/night_vision/mushroom var/datum/martial_art/mushpunch/mush 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 67805c27ba..12a520b463 100644 --- a/code/modules/mob/living/carbon/human/species_types/plasmamen.dm +++ b/code/modules/mob/living/carbon/human/species_types/plasmamen.dm @@ -1,6 +1,6 @@ /datum/species/plasmaman - name = SPECIES_PLASMAMAN - id = "plasmaman" + name = "Plasmaman" + id = SPECIES_PLASMAMAN say_mod = "rattles" sexes = 0 meat = /obj/item/stack/sheet/mineral/plasma @@ -22,7 +22,7 @@ liked_food = VEGETABLES outfit_important_for_life = /datum/outfit/plasmaman - species_type = "skeleton" + species_category = SPECIES_CATEGORY_SKELETON /datum/species/plasmaman/spec_life(mob/living/carbon/human/H) var/datum/gas_mixture/environment = H.loc.return_air() diff --git a/code/modules/mob/living/carbon/human/species_types/podpeople.dm b/code/modules/mob/living/carbon/human/species_types/podpeople.dm index 9943a3115b..fae8ebfb0d 100644 --- a/code/modules/mob/living/carbon/human/species_types/podpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/podpeople.dm @@ -1,7 +1,7 @@ /datum/species/pod // A mutation caused by a human being ressurected in a revival pod. These regain health in light, and begin to wither in darkness. - name = SPECIES_POD - id = "pod" + name = "Anthromorphic Plant" + id = SPECIES_POD default_color = "59CE00" species_traits = list(MUTCOLORS,EYECOLOR,CAN_SCAR,HAS_FLESH,HAS_BONE) attack_verb = "slash" @@ -19,7 +19,7 @@ var/light_burnheal = -1 var/light_bruteheal = -1 - species_type = "plant" + species_category = SPECIES_CATEGORY_PLANT allowed_limb_ids = list("pod","mush") @@ -66,7 +66,7 @@ /datum/species/pod/pseudo_weak name = "Anthromorphic Plant" - id = "podweak" + id = SPECIES_POD_WEAK species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,MUTCOLORS) mutant_bodyparts = list("mcolor" = "FFFFFF","mcolor2" = "FFFFFF","mcolor3" = "FFFFFF", "mam_snouts" = "Husky", "mam_tail" = "Husky", "mam_ears" = "Husky", "mam_body_markings" = "Husky", "taur" = "None", "legs" = "Normal Legs") limbs_id = "pod" diff --git a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm index 228a69c30f..dcb074a01d 100644 --- a/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/shadowpeople.dm @@ -4,7 +4,7 @@ /datum/species/shadow // Humans cursed to stay in the darkness, lest their life forces drain. They regain health in shadow and die in light. name = "???" - id = "shadow" + id = SPECIES_SHADOW sexes = 0 blacklisted = 1 ignored_by = list(/mob/living/simple_animal/hostile/faithless) @@ -15,7 +15,7 @@ dangerous_existence = 1 mutanteyes = /obj/item/organ/eyes/night_vision - species_type = "shadow" + species_category = SPECIES_CATEGORY_SHADOW /datum/species/shadow/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() @@ -32,7 +32,7 @@ /datum/species/shadow/nightmare name = "Nightmare" - id = "nightmare" + id = SPECIES_NIGHTMARE limbs_id = "shadow" burnmod = 1.5 blacklisted = TRUE 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 fa69c554a6..b0673a7df4 100644 --- a/code/modules/mob/living/carbon/human/species_types/skeletons.dm +++ b/code/modules/mob/living/carbon/human/species_types/skeletons.dm @@ -1,6 +1,6 @@ /datum/species/skeleton - name = SPECIES_SKELETON - id = "skeleton" + name = "Skeleton" + id = SPECIES_SKELETON say_mod = "rattles" blacklisted = 0 sexes = 0 @@ -15,7 +15,7 @@ brutemod = 1.25 burnmod = 1.25 - species_type = "skeleton" //they have their own category that's disassociated from undead, paired with plasmapeople + species_category = SPECIES_CATEGORY_SKELETON //they have their own category that's disassociated from undead, paired with plasmapeople /datum/species/skeleton/New() if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) //skeletons are stronger during the spooky season! @@ -31,7 +31,7 @@ /datum/species/skeleton/space name = "Spooky Spacey Skeleton" - id = "spaceskeleton" + id = SPECIES_SKELETON_SPACE limbs_id = "skeleton" blacklisted = 1 inherent_traits = list(TRAIT_RESISTHEAT,TRAIT_NOBREATH,TRAIT_RESISTCOLD,TRAIT_RESISTHIGHPRESSURE,TRAIT_RESISTLOWPRESSURE,TRAIT_RADIMMUNE,TRAIT_PIERCEIMMUNE,TRAIT_NOHUNGER,TRAIT_EASYDISMEMBER,TRAIT_LIMBATTACHMENT, TRAIT_FAKEDEATH, TRAIT_CALCIUM_HEALER) diff --git a/code/modules/mob/living/carbon/human/species_types/synthliz.dm b/code/modules/mob/living/carbon/human/species_types/synthliz.dm index 894a47eade..7e0a099ed4 100644 --- a/code/modules/mob/living/carbon/human/species_types/synthliz.dm +++ b/code/modules/mob/living/carbon/human/species_types/synthliz.dm @@ -1,6 +1,6 @@ /datum/species/synthliz - name = SPECIES_SYNTH_LIZARD - id = "synthliz" + name = "Synthetic Lizardperson" + id = SPECIES_SYNTH_LIZARD say_mod = "beeps" default_color = "00FF00" species_traits = list(MUTCOLORS,NOTRANSSTING,EYECOLOR,LIPS,HAIR,HAS_FLESH,HAS_BONE) @@ -21,4 +21,4 @@ tail_type = "mam_tail" wagging_type = "mam_waggingtail" - species_type = "robotic" + species_category = SPECIES_CATEGORY_ROBOT diff --git a/code/modules/mob/living/carbon/human/species_types/synths.dm b/code/modules/mob/living/carbon/human/species_types/synths.dm index 835d64cec2..5d2b6f4c77 100644 --- a/code/modules/mob/living/carbon/human/species_types/synths.dm +++ b/code/modules/mob/living/carbon/human/species_types/synths.dm @@ -1,6 +1,6 @@ /datum/species/synth - name = SPECIES_SYNTH //inherited from the real species, for health scanners and things - id = "synth" + name = "Synthetic" //inherited from the real species, for health scanners and things + id = SPECIES_SYNTH say_mod = "beep boops" //inherited from a user's real species sexes = 0 species_traits = list(NOTRANSSTING,NOGENITALS,NOAROUSAL) //all of these + whatever we inherit from the real species @@ -17,11 +17,11 @@ var/disguise_fail_health = 75 //When their health gets to this level their synthflesh partially falls off var/datum/species/fake_species = null //a species to do most of our work for us, unless we're damaged species_language_holder = /datum/language_holder/synthetic - species_type = "robotic" + species_category = SPECIES_CATEGORY_ROBOT /datum/species/synth/military name = "Military Synth" - id = "military_synth" + id = SPECIES_SYNTH_MIL armor = 25 punchdamagelow = 10 punchdamagehigh = 19 diff --git a/code/modules/mob/living/carbon/human/species_types/vampire.dm b/code/modules/mob/living/carbon/human/species_types/vampire.dm index 7ea19c5a2c..4125d3beab 100644 --- a/code/modules/mob/living/carbon/human/species_types/vampire.dm +++ b/code/modules/mob/living/carbon/human/species_types/vampire.dm @@ -1,6 +1,6 @@ /datum/species/vampire - name = SPECIES_VAMPIRE - id = "vampire" + name = "Vampire" + id = SPECIES_VAMPIRE default_color = "FFFFFF" species_traits = list(EYECOLOR,HAIR,FACEHAIR,LIPS,DRINKSBLOOD,HAS_FLESH,HAS_BONE) inherent_traits = list(TRAIT_NOHUNGER,TRAIT_NOBREATH) @@ -14,7 +14,7 @@ limbs_id = "human" skinned_type = /obj/item/stack/sheet/animalhide/human var/info_text = "You are a Vampire. You will slowly but constantly lose blood if outside of a coffin. If inside a coffin, you will slowly heal. You may gain more blood by grabbing a live victim and using your drain ability." - species_type = "undead" + species_category = SPECIES_CATEGORY_UNDEAD /datum/species/vampire/check_roundstart_eligible() if(SSevents.holidays && SSevents.holidays[HALLOWEEN]) diff --git a/code/modules/mob/living/carbon/human/species_types/xeno.dm b/code/modules/mob/living/carbon/human/species_types/xeno.dm index 1616190646..2757c624e7 100644 --- a/code/modules/mob/living/carbon/human/species_types/xeno.dm +++ b/code/modules/mob/living/carbon/human/species_types/xeno.dm @@ -1,7 +1,7 @@ /datum/species/xeno // A cloning mistake, crossing human and xenomorph DNA - name = SPECIES_XENOHYBRID - id = "xeno" + name = "Xenomorph Hybrid" + id = SPECIES_XENOHYBRID say_mod = "hisses" default_color = "00FF00" species_traits = list(MUTCOLORS,EYECOLOR,LIPS,CAN_SCAR) @@ -15,4 +15,4 @@ exotic_bloodtype = "X*" damage_overlay_type = "xeno" liked_food = MEAT - species_type = "alien" + species_category = SPECIES_CATEGORY_ALIEN 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 5c833c212c..f1c0b8e7c0 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -15,7 +15,7 @@ var/static/list/spooks = list('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg','sound/hallucinations/veryfar_noise.ogg','sound/hallucinations/wail.ogg') disliked_food = NONE liked_food = GROSS | MEAT | RAW - species_type = "undead" + species_category = SPECIES_CATEGORY_UNDEAD /datum/species/zombie/notspaceproof id = "notspaceproofzombie" diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index 289b92f06d..fe0f6cb3b9 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -2276,7 +2276,7 @@ All effects don't start immediately, but rather get worse over time; the rate is boozepwr = 50 /datum/reagent/consumable/ethanol/species_drink/on_mob_life(mob/living/carbon/C) - if(C.dna.species && C.dna.species.species_type == species_required) //species have a species_type variable that refers to one of the drinks + if(C.dna.species && C.dna.species.species_category == species_required) //species have a species_category variable that refers to one of the drinks quality = RACE_DRINK else C.adjust_disgust(disgust) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 86f8b341d9..b2b19ce690 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -786,8 +786,8 @@ if(isjellyperson(H)) to_chat(H, "Your jelly shifts and morphs, turning you into another subspecies!") - var/species_type = pick(subtypesof(/datum/species/jelly)) - H.set_species(species_type) + var/species_category = pick(subtypesof(/datum/species/jelly)) + H.set_species(species_category) H.reagents.del_reagent(type) switch(current_cycle) @@ -801,8 +801,8 @@ if(prob(10)) to_chat(H, "[pick("You feel your internal organs turning into slime.", "You feel very slimelike.")]") if(20 to INFINITY) - var/species_type = pick(subtypesof(/datum/species/jelly)) - H.set_species(species_type) + var/species_category = pick(subtypesof(/datum/species/jelly)) + H.set_species(species_category) H.reagents.del_reagent(type) to_chat(H, "You've become \a jellyperson!") diff --git a/tgstation.dme b/tgstation.dme index 7ec461a640..e25cdcdc6d 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -106,6 +106,7 @@ #include "code\__DEFINES\sight.dm" #include "code\__DEFINES\sound.dm" #include "code\__DEFINES\spaceman_dmm.dm" +#include "code\__DEFINES\species.dm" #include "code\__DEFINES\stat.dm" #include "code\__DEFINES\stat_tracking.dm" #include "code\__DEFINES\status_effects.dm" @@ -2535,7 +2536,7 @@ #include "code\modules\mob\living\carbon\human\status_procs.dm" #include "code\modules\mob\living\carbon\human\typing_indicator.dm" #include "code\modules\mob\living\carbon\human\update_icons.dm" -#include "code\modules\mob\living\carbon\human\species_types\abductors.dm" +#include "code\modules\mob\living\carbon\human\species_types\abductor.dm" #include "code\modules\mob\living\carbon\human\species_types\android.dm" #include "code\modules\mob\living\carbon\human\species_types\angel.dm" #include "code\modules\mob\living\carbon\human\species_types\anthromorph.dm" From bc75c12080705cf28ffa3a845abd9c309dd75902 Mon Sep 17 00:00:00 2001 From: Zandario Date: Fri, 2 Oct 2020 21:08:06 -0500 Subject: [PATCH 3/9] Update other_reagents.dm --- .../modules/reagents/chemistry/reagents/other_reagents.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index b0042dc866..418062ce92 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -814,8 +814,8 @@ if(isjellyperson(H)) to_chat(H, "Your jelly shifts and morphs, turning you into another subspecies!") - var/species_category = pick(subtypesof(/datum/species/jelly)) - H.set_species(species_category) + var/species_type = pick(subtypesof(/datum/species/jelly)) + H.set_species(species_type) H.reagents.del_reagent(type) switch(current_cycle) @@ -829,8 +829,8 @@ if(prob(10)) to_chat(H, "[pick("You feel your internal organs turning into slime.", "You feel very slimelike.")]") if(20 to INFINITY) - var/species_category = pick(subtypesof(/datum/species/jelly)) - H.set_species(species_category) + var/species_type = pick(subtypesof(/datum/species/jelly)) + H.set_species(species_type) H.reagents.del_reagent(type) to_chat(H, "You've become \a jellyperson!") From 7563be80309b9116c8cdbfb802cc6d45a8573963 Mon Sep 17 00:00:00 2001 From: Zandario Date: Fri, 2 Oct 2020 21:09:01 -0500 Subject: [PATCH 4/9] Update code/game/objects/items.dm Co-authored-by: Letter N <24603524+LetterN@users.noreply.github.com> --- code/game/objects/items.dm | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index 907f4c6459..d106ad760f 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -170,13 +170,14 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb //** These specify item/icon overrides for _species_ - /* Species-specific sprites, concept stolen from Paradise//vg/. - ex: - sprite_sheets = list( - SPECIES_FELINID = 'icons/cat/are/bad' - ) - If index term exists and icon_override is not set, this sprite sheet will be used. - */ + /* + * Species-specific sprites, concept stolen from Paradise//vg/. + * ex: + * sprite_sheets = list( + * SPECIES_FELINID = 'icons/cat/are/bad' + * ) + * If index term exists and icon_override is not set, this sprite sheet will be used. + */ var/list/sprite_sheets = list() // Species-specific sprite sheets for inventory sprites From e9062f10ce297a57845271639f0c5a5e943b32bc Mon Sep 17 00:00:00 2001 From: Zandario Date: Fri, 2 Oct 2020 21:09:19 -0500 Subject: [PATCH 5/9] Update code/modules/clothing/clothing.dm Co-authored-by: Letter N <24603524+LetterN@users.noreply.github.com> --- code/modules/clothing/clothing.dm | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 2bf13fa521..fc91e429ac 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -50,11 +50,11 @@ //Add a "exclude" string to do the opposite, making it only only species listed that can't wear it. //You append this to clothing objects /* - Sprites used when the clothing item is refit. This is done by setting icon_override. - For best results, if this is set then sprite_sheets should be null and vice versa, but that is by no means necessary. - Ideally, sprite_sheets_refit should be used for "hard" clothing items that can't change shape very well to fit the wearer (e.g. helmets, hardsuits), - while sprite_sheets should be used for "flexible" clothing items that do not need to be refitted (e.g. aliens wearing jumpsuits). - */ + * Sprites used when the clothing item is refit. This is done by setting icon_override. + * For best results, if this is set then sprite_sheets should be null and vice versa, but that is by no means necessary. + * Ideally, sprite_sheets_refit should be used for "hard" clothing items that can't change shape very well to fit the wearer (e.g. helmets, hardsuits), + * while sprite_sheets should be used for "flexible" clothing items that do not need to be refitted (e.g. aliens wearing jumpsuits). + */ var/list/sprite_sheets_refit = null // How much clothing damage has been dealt to each of the limbs of the clothing, assuming it covers more than one limb From 156deedd41b317f1e91175620febe30cb2297c2f Mon Sep 17 00:00:00 2001 From: Zandario Date: Fri, 2 Oct 2020 21:09:44 -0500 Subject: [PATCH 6/9] Update code/modules/clothing/clothing.dm Co-authored-by: Letter N <24603524+LetterN@users.noreply.github.com> --- code/modules/clothing/clothing.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index fc91e429ac..288fc74a23 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -490,7 +490,7 @@ BLIND // can't see anything to_chat(L, "The damaged threads on your [src.name] chafe!") -/obj/item/clothing/proc/refit_for_species(var/target_species) +/obj/item/clothing/proc/refit_for_species(target_species) if(!species_restricted) return // This item doesn't use the species_restricted system From bdb7713de479d36c304e72cae84da8aa098f8afb Mon Sep 17 00:00:00 2001 From: Zandario Date: Fri, 2 Oct 2020 21:09:54 -0500 Subject: [PATCH 7/9] Update code/modules/clothing/clothing.dm Co-authored-by: Letter N <24603524+LetterN@users.noreply.github.com> --- code/modules/clothing/clothing.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 288fc74a23..9cad0792d8 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -511,7 +511,7 @@ BLIND // can't see anything else icon = initial(icon) -/obj/item/clothing/head/helmet/refit_for_species(var/target_species) +/obj/item/clothing/head/helmet/refit_for_species(target_species) if(!species_restricted) return // This item doesn't use the species_restricted system From a90f93233979c641d36a6943158e12898766bd2f Mon Sep 17 00:00:00 2001 From: Zandario Date: Fri, 2 Oct 2020 21:16:26 -0500 Subject: [PATCH 8/9] Update clothing.dm --- code/modules/clothing/clothing.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 9cad0792d8..ad785b0dd1 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -45,7 +45,7 @@ var/dynamic_fhair_suffix = ""//mask > head for facial hair //basically a restriction list. - var/list/species_restricted = null + var/list/species_restricted //Basically syntax is species_restricted = list("Species Name","Species Name") //Add a "exclude" string to do the opposite, making it only only species listed that can't wear it. //You append this to clothing objects @@ -55,7 +55,7 @@ * Ideally, sprite_sheets_refit should be used for "hard" clothing items that can't change shape very well to fit the wearer (e.g. helmets, hardsuits), * while sprite_sheets should be used for "flexible" clothing items that do not need to be refitted (e.g. aliens wearing jumpsuits). */ - var/list/sprite_sheets_refit = null + var/list/sprite_sheets_refit // How much clothing damage has been dealt to each of the limbs of the clothing, assuming it covers more than one limb var/list/damage_by_parts From 8e4c64a24b95b4913f05d1d9794f238cdf568bde Mon Sep 17 00:00:00 2001 From: Zandario Date: Thu, 8 Oct 2020 18:48:26 -0500 Subject: [PATCH 9/9] Remove clothing shito as requested --- code/game/objects/items.dm | 29 ----------------- code/modules/clothing/clothing.dm | 52 +------------------------------ 2 files changed, 1 insertion(+), 80 deletions(-) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index d106ad760f..b4c114eb6a 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -156,35 +156,6 @@ GLOBAL_VAR_INIT(embedpocalypse, FALSE) // if true, all items will be able to emb var/canMouseDown = FALSE - ///Species Sprite Overrides - var/icon_override = null // Used to override hardcoded clothing dmis in human clothing proc. - - //** These specify item/icon overrides for _slots_ - - var/list/item_state_slots = list() // Overrides the default item_state for particular slots. - - // Used to specify the icon file to be used when the item is worn. If not set the default icon for that slot will be used. - // If icon_override or sprite_sheets are set they will take precendence over this, assuming they apply to the slot in question. - // Only slot_l_hand/slot_r_hand are implemented at the moment. Others to be implemented as needed. - var/list/item_icons = list() - - //** These specify item/icon overrides for _species_ - - /* - * Species-specific sprites, concept stolen from Paradise//vg/. - * ex: - * sprite_sheets = list( - * SPECIES_FELINID = 'icons/cat/are/bad' - * ) - * If index term exists and icon_override is not set, this sprite sheet will be used. - */ - var/list/sprite_sheets = list() - - // Species-specific sprite sheets for inventory sprites - // Works similarly to worn sprite_sheets, except the alternate sprites are used when the clothing/refit_for_species() proc is called. - var/list/sprite_sheets_obj = list() - - /obj/item/Initialize() if(attack_verb) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index ad785b0dd1..ea01b0c0ed 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -49,13 +49,7 @@ //Basically syntax is species_restricted = list("Species Name","Species Name") //Add a "exclude" string to do the opposite, making it only only species listed that can't wear it. //You append this to clothing objects - /* - * Sprites used when the clothing item is refit. This is done by setting icon_override. - * For best results, if this is set then sprite_sheets should be null and vice versa, but that is by no means necessary. - * Ideally, sprite_sheets_refit should be used for "hard" clothing items that can't change shape very well to fit the wearer (e.g. helmets, hardsuits), - * while sprite_sheets should be used for "flexible" clothing items that do not need to be refitted (e.g. aliens wearing jumpsuits). - */ - var/list/sprite_sheets_refit + // How much clothing damage has been dealt to each of the limbs of the clothing, assuming it covers more than one limb var/list/damage_by_parts @@ -488,47 +482,3 @@ BLIND // can't see anything return if(prob(0.2)) to_chat(L, "The damaged threads on your [src.name] chafe!") - - -/obj/item/clothing/proc/refit_for_species(target_species) - if(!species_restricted) - return // This item doesn't use the species_restricted system - -/* //TODO - Implement when ready. P.S. It isn't ready. - // Set species_restricted list - switch(target_species) - if(SPECIES_CATEGORY_BASIC) // Humanoid bodytypes - species_restricted = list(SPECIES_CATEGORY_BASIC) - else - species_restricted = list(target_species) -*/ - // Set icon - if (sprite_sheets_refit && (target_species in sprite_sheets_refit)) - sprite_sheets[target_species] = sprite_sheets_refit[target_species] - - if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) - icon = sprite_sheets_obj[target_species] - else - icon = initial(icon) - -/obj/item/clothing/head/helmet/refit_for_species(target_species) - if(!species_restricted) - return // This item doesn't use the species_restricted system - -/* //TODO - Implement when ready. P.S. It isn't ready. - // Set species_restricted list - switch(target_species) - if(SPECIES_CATEGORY_BASIC) - species_restricted = list(SPECIES_CATEGORY_BASIC) - - else - species_restricted = list(target_species) -*/ - // Set icon - if (sprite_sheets_refit && (target_species in sprite_sheets_refit)) - sprite_sheets[target_species] = sprite_sheets_refit[target_species] - - if (sprite_sheets_obj && (target_species in sprite_sheets_obj)) - icon = sprite_sheets_obj[target_species] - else - icon = initial(icon)