diff --git a/code/__DEFINES/mob.dm b/code/__DEFINES/mob.dm index 515f0b0b19cc..978a811a9601 100644 --- a/code/__DEFINES/mob.dm +++ b/code/__DEFINES/mob.dm @@ -101,6 +101,10 @@ #define ZOMBIE_SKRELL "Zombie Skrell" #define ZOMBIE_UNATHI "Zombie Unathi" #define SLIME "Slime" +#define SLIME_UNATHI "Slime Unathi" +#define SLIME_VOX "Slime Vox" +#define SLIME_TAJARAN "Slime Tajaran" +#define SLIME_SKRELL "Slime Skrell" #define ABOMINATION "disgusting abomination" #define SERPENTID "Serpentid" #define MOTH "Moth" diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index 6dc0f506dcfc..fe776b56a9c0 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -1744,13 +1744,14 @@ /datum/species/slime name = SLIME - icobase = 'icons/mob/human_races/r_slime.dmi' - deform = 'icons/mob/human_races/r_slime.dmi' + icobase = 'icons/mob/human_races/r_human_slime.dmi' + deform = 'icons/mob/human_races/r_human_slime.dmi' blood_datum_path = /datum/dirt_cover/blue_blood flesh_color = "#05fffb" unarmed_type = /datum/unarmed_attack/slime_glomp - has_gendered_icons = FALSE + has_gendered_icons = TRUE + gender_limb_icons = TRUE cold_level_1 = BODYTEMP_COLD_DAMAGE_LIMIT + 20 cold_level_2 = BODYTEMP_COLD_DAMAGE_LIMIT - 10 @@ -1774,6 +1775,84 @@ is_common = TRUE +/datum/species/slime/unathi + name = SLIME_UNATHI + icobase = 'icons/mob/human_races/r_lizard_slime.dmi' + deform = 'icons/mob/human_races/r_lizard_slime.dmi' + gender_tail_icons = TRUE + tail = "unathi_slime" + + flags = list( + NO_BREATHE = TRUE + ,NO_SCAN = TRUE + ,NO_PAIN = TRUE + ,HAS_SKIN_COLOR = TRUE + ,HAS_UNDERWEAR = TRUE + ,RAD_IMMUNE = TRUE + ,VIRUS_IMMUNE = TRUE + ,IS_SOCIAL = TRUE + ,HAS_TAIL = TRUE + ) + +/datum/species/slime/vox + name = SLIME_VOX + icobase = 'icons/mob/human_races/r_vox_slime.dmi' + deform = 'icons/mob/human_races/r_vox_slime.dmi' + has_gendered_icons = FALSE + gender_limb_icons = FALSE + tail = "vox_slime" + eyes = "vox_eyes" + + flags = list( + NO_BREATHE = TRUE + ,NO_SCAN = TRUE + ,NO_PAIN = TRUE + ,HAS_SKIN_COLOR = TRUE + ,RAD_IMMUNE = TRUE + ,VIRUS_IMMUNE = TRUE + ,IS_SOCIAL = TRUE + ,HAS_TAIL = TRUE + ) + + sprite_sheets = list( + // SPRITE_SHEET_HELD = 'icons/mob/species/vox/held.dmi', + SPRITE_SHEET_UNIFORM = 'icons/mob/species/vox/uniform.dmi', + SPRITE_SHEET_SUIT = 'icons/mob/species/vox/suit.dmi', + SPRITE_SHEET_BELT = 'icons/mob/belt.dmi', + SPRITE_SHEET_HEAD = 'icons/mob/species/vox/helmet.dmi', + SPRITE_SHEET_MASK = 'icons/mob/species/vox/masks.dmi', + SPRITE_SHEET_EYES = 'icons/mob/species/vox/eyes.dmi', + SPRITE_SHEET_FEET = 'icons/mob/species/vox/shoes.dmi', + SPRITE_SHEET_GLOVES = 'icons/mob/species/vox/gloves.dmi', + SPRITE_SHEET_BACK = 'icons/mob/species/vox/back.dmi' + ) + +/datum/species/slime/tajaran + name = SLIME_TAJARAN + icobase = 'icons/mob/human_races/r_tajaran_slime.dmi' + deform = 'icons/mob/human_races/r_tajaran_slime.dmi' + gender_tail_icons = TRUE + tail = "tajaran_slime" + + flags = list( + NO_BREATHE = TRUE + ,NO_SCAN = TRUE + ,NO_PAIN = TRUE + ,HAS_SKIN_COLOR = TRUE + ,HAS_UNDERWEAR = TRUE + ,RAD_IMMUNE = TRUE + ,VIRUS_IMMUNE = TRUE + ,IS_SOCIAL = TRUE + ,HAS_TAIL = TRUE + ) + +/datum/species/slime/skrell + name = SLIME_SKRELL + icobase = 'icons/mob/human_races/r_skrell_slime.dmi' + deform = 'icons/mob/human_races/r_skrell_slime.dmi' + has_gendered_icons = FALSE + gender_limb_icons = FALSE + /datum/species/slime/call_digest_proc(mob/living/M, datum/reagent/R) return R.on_slime_digest(M) diff --git a/code/modules/reagents/reagent_types/Chemistry-Toxic.dm b/code/modules/reagents/reagent_types/Chemistry-Toxic.dm index 6ce2dabf75db..551d2dc334cf 100644 --- a/code/modules/reagents/reagent_types/Chemistry-Toxic.dm +++ b/code/modules/reagents/reagent_types/Chemistry-Toxic.dm @@ -763,13 +763,28 @@ to_chat(H, "You feel unbearable pain inside you!") H.emote("scream") if(30) - if(H.set_species(SLIME)) + var/slime_species + switch(H.species.name) + if("Unathi") + slime_species = SLIME_UNATHI + if("Vox") + slime_species = SLIME_VOX + if("Tajaran") + slime_species = SLIME_TAJARAN + if("Skrell") + slime_species = SLIME_SKRELL + else + slime_species = SLIME + if(H.set_species(slime_species)) to_chat(H, "Your flesh mutates and you feel free!") for(var/obj/item/organ/external/BP in H.bodyparts) BP.status = 0 for(var/obj/item/organ/internal/BP in H.organs) BP.rejuvenate() H.restore_blood() + H.h_style = "Bald" + H.f_style = "Shaved" + H.update_hair() if(31 to 50) M.heal_bodypart_damage(0,5) M.adjustOxyLoss(-2 * REM) diff --git a/icons/mob/human_races/r_human_slime.dmi b/icons/mob/human_races/r_human_slime.dmi new file mode 100644 index 000000000000..a8f94af057fc Binary files /dev/null and b/icons/mob/human_races/r_human_slime.dmi differ diff --git a/icons/mob/human_races/r_lizard_slime.dmi b/icons/mob/human_races/r_lizard_slime.dmi new file mode 100644 index 000000000000..ec521048fb47 Binary files /dev/null and b/icons/mob/human_races/r_lizard_slime.dmi differ diff --git a/icons/mob/human_races/r_skrell_slime.dmi b/icons/mob/human_races/r_skrell_slime.dmi new file mode 100644 index 000000000000..f69a0050aad7 Binary files /dev/null and b/icons/mob/human_races/r_skrell_slime.dmi differ diff --git a/icons/mob/human_races/r_slime.dmi b/icons/mob/human_races/r_slime.dmi deleted file mode 100644 index 1cce31e14aa4..000000000000 Binary files a/icons/mob/human_races/r_slime.dmi and /dev/null differ diff --git a/icons/mob/human_races/r_tajaran_slime.dmi b/icons/mob/human_races/r_tajaran_slime.dmi new file mode 100644 index 000000000000..d7ff759d5edd Binary files /dev/null and b/icons/mob/human_races/r_tajaran_slime.dmi differ diff --git a/icons/mob/human_races/r_vox_slime.dmi b/icons/mob/human_races/r_vox_slime.dmi new file mode 100644 index 000000000000..92a1be5db062 Binary files /dev/null and b/icons/mob/human_races/r_vox_slime.dmi differ diff --git a/icons/mob/species/tail.dmi b/icons/mob/species/tail.dmi index 1f84fe56723e..2eabaaa8909d 100644 Binary files a/icons/mob/species/tail.dmi and b/icons/mob/species/tail.dmi differ