diff --git a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm index 8b0ec1d6f79d8..c01a20a18f64e 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/ears.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/ears.dm @@ -3,33 +3,62 @@ /datum/sprite_accessory/ears icon = 'icons/mob/mutant_bodyparts.dmi' -/datum/sprite_accessory/ears/none +/datum/sprite_accessory/ears/human/none name = "None" icon_state = "none" -/datum/sprite_accessory/ears/cat - icon = 'icons/mob/species/misc/cat.dmi' +/datum/sprite_accessory/ears/human/elf + icon = 'icons/mob/species/human/elf.dmi' + name = "Elf" + icon_state = "elf" + secondary_color = FALSE + color_src = SKINCOLORS + +/datum/sprite_accessory/ears/human/cat + icon = 'icons/mob/species/human/cat.dmi' name = "Cat" icon_state = "cat" secondary_color = TRUE color_src = HAIR -/datum/sprite_accessory/ears/cat/slime +/datum/sprite_accessory/ears/human/cat/slime name = "Slimecat" icon_state = "cat" secondary_color = FALSE color_src = HAIR image_alpha = 150 -/datum/sprite_accessory/ears/fox - icon = 'icons/mob/species/misc/fox.dmi' +/datum/sprite_accessory/ears/human/dog + icon = 'icons/mob/species/human/dog.dmi' + name = "Dog" + icon_state = "dog" + secondary_color = FALSE + color_src = HAIR + +/datum/sprite_accessory/ears/human/fox + icon = 'icons/mob/species/human/fox.dmi' name = "Fox" icon_state = "fox" secondary_color = TRUE color_src = HAIR -/datum/sprite_accessory/ears/elf - name = "Elf" - icon_state = "elf" - secondary_color = FALSE - color_src = SKINCOLORS +/datum/sprite_accessory/ears/human/rabbit + icon = 'icons/mob/species/human/rabbit.dmi' + name = "Rabbit" + icon_state = "bunny" + secondary_color = TRUE + color_src = HAIR + +/datum/sprite_accessory/ears/human/rabbit/bent + icon = 'icons/mob/species/human/rabbit.dmi' + name = "Bent Rabbit" + icon_state = "bunny_bent" + secondary_color = TRUE + color_src = HAIR + +/datum/sprite_accessory/ears/human/rabbit/floppy + icon = 'icons/mob/species/human/rabbit.dmi' + name = "Floppy Rabbit" + icon_state = "bunny_floppy" + secondary_color = TRUE + color_src = HAIR diff --git a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm index 5a3d2eb3d62b2..9a0da947d3b77 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories/tails.dm @@ -9,13 +9,13 @@ icon_state = "none" /datum/sprite_accessory/tails/human/cat - icon = 'icons/mob/species/misc/cat.dmi' + icon = 'icons/mob/species/human/cat.dmi' name = "Cat" icon_state = "cat" color_src = HAIR /datum/sprite_accessory/tails_animated/human/cat - icon = 'icons/mob/species/misc/cat.dmi' + icon = 'icons/mob/species/human/cat.dmi' name = "Cat" icon_state = "cat" color_src = HAIR @@ -32,26 +32,44 @@ color_src = HAIR image_alpha = 150 +/datum/sprite_accessory/tails/human/dog + icon = 'icons/mob/species/human/dog.dmi' + name = "Dog" + icon_state = "dog" + color_src = HAIR + +/datum/sprite_accessory/tails_animated/human/dog + icon = 'icons/mob/species/human/dog.dmi' + name = "Dog" + icon_state = "dog" + color_src = HAIR + /datum/sprite_accessory/tails/human/fox - icon = 'icons/mob/species/misc/fox.dmi' + icon = 'icons/mob/species/human/fox.dmi' name = "Fox" icon_state = "fox" color_src = HAIR /datum/sprite_accessory/tails_animated/human/fox - icon = 'icons/mob/species/misc/fox.dmi' + icon = 'icons/mob/species/human/fox.dmi' name = "Fox" icon_state = "fox" color_src = HAIR /datum/sprite_accessory/tails/human/fox/alt - icon = 'icons/mob/species/misc/fox.dmi' + icon = 'icons/mob/species/human/fox.dmi' name = "Fox 2" icon_state = "fox2" color_src = HAIR /datum/sprite_accessory/tails_animated/human/fox/alt - icon = 'icons/mob/species/misc/fox.dmi' + icon = 'icons/mob/species/human/fox.dmi' name = "Fox 2" icon_state = "fox2" color_src = HAIR + +/datum/sprite_accessory/tails/human/rabbit + icon = 'icons/mob/species/human/rabbit.dmi' + name = "Rabbit" + icon_state = "bunny" + color_src = HAIR 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 885be6f5886a0..882fffc9ff418 100644 --- a/code/modules/mob/living/carbon/human/species_types/humans.dm +++ b/code/modules/mob/living/carbon/human/species_types/humans.dm @@ -13,16 +13,33 @@ loreblurb = "Mostly hairless mammalians. Their home system, Sol, lies in a sort of \"bluespace dead-zone\" that blocks anything from entering or exiting Sol's dead-zone through bluespace without a relay. While it leaves Sol extremely well-defended, it meant that they went unnoticed and uncontacted until they were themselves able to breach it." /datum/species/human/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) - if(C.dna.features["ears"] == "Cat") - mutantears = /obj/item/organ/ears/cat - if(C.dna.features["ears"] == "Fox") - mutantears = /obj/item/organ/ears/fox - if(C.dna.features["tail_human"] == "Cat") - mutant_organs |= /obj/item/organ/tail/cat - if(C.dna.features["tail_human"] == "Fox") - mutant_organs |= /obj/item/organ/tail/fox - if(C.dna.features["ears"] == "Elf") - mutantears = /obj/item/organ/ears/elf + switch(C.dna.features["ears"]) + if("Elf") + mutantears = /obj/item/organ/ears/elf + if("Cat") + mutantears = /obj/item/organ/ears/cat + if("Dog") + mutantears = /obj/item/organ/ears/dog + if("Fox") + mutantears = /obj/item/organ/ears/fox + if("Rabbit") + mutantears = /obj/item/organ/ears/rabbit + if("Bent Rabbit") + mutantears = /obj/item/organ/ears/rabbit/bent + if("Floppy Rabbit") + mutantears = /obj/item/organ/ears/rabbit/floppy + switch(C.dna.features["tail_human"]) + if("Cat") + mutant_organs |= /obj/item/organ/tail/cat + if("Dog") + mutant_organs |= /obj/item/organ/tail/dog + if("Fox") + mutant_organs |= /obj/item/organ/tail/fox + if("Fox 2") + mutant_organs |= /obj/item/organ/tail/fox/alt + if("Rabbit") + mutant_organs |= /obj/item/organ/tail/rabbit + return ..() /datum/species/human/spec_death(gibbed, mob/living/carbon/human/H) diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm index f1eb39b841624..6f057c88d23dc 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -150,6 +150,10 @@ ear_owner.dna.species.mutant_bodyparts -= "ears" ear_owner.update_body() +/obj/item/organ/ears/fox + name = "fox ears" + damage_multiplier = 2 + /obj/item/organ/ears/fox/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE) ..() if(istype(ear_owner)) @@ -166,6 +170,78 @@ ear_owner.dna.species.mutant_bodyparts -= "ears" ear_owner.update_body() +/obj/item/organ/ears/rabbit + name = "rabbit ears" + damage_multiplier = 2 + +/obj/item/organ/ears/rabbit/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.species.mutant_bodyparts |= "ears" + ear_owner.dna.features["ears"] = "Rabbit" + ear_owner.update_body() + +/obj/item/organ/ears/rabbit/Remove(mob/living/carbon/human/ear_owner, special = 0) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.features["ears"] = "None" + ear_owner.dna.species.mutant_bodyparts -= "ears" + ear_owner.update_body() + +/obj/item/organ/ears/rabbit/bent/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.species.mutant_bodyparts |= "ears" + ear_owner.dna.features["ears"] = "Bent Rabbit" + ear_owner.update_body() + +/obj/item/organ/ears/rabbit/bent/Remove(mob/living/carbon/human/ear_owner, special = 0) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.features["ears"] = "None" + ear_owner.dna.species.mutant_bodyparts -= "ears" + ear_owner.update_body() + +/obj/item/organ/ears/rabbit/floppy/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.species.mutant_bodyparts |= "ears" + ear_owner.dna.features["ears"] = "Floppy Rabbit" + ear_owner.update_body() + +/obj/item/organ/ears/floppy/Remove(mob/living/carbon/human/ear_owner, special = 0) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.features["ears"] = "None" + ear_owner.dna.species.mutant_bodyparts -= "ears" + ear_owner.update_body() + +/obj/item/organ/ears/dog + name = "dog ears" + damage_multiplier = 2 + +/obj/item/organ/ears/dog/Insert(mob/living/carbon/human/ear_owner, special = 0, drop_if_replaced = TRUE) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.species.mutant_bodyparts |= "ears" + ear_owner.dna.features["ears"] = "Dog" + ear_owner.update_body() + +/obj/item/organ/ears/dog/Remove(mob/living/carbon/human/ear_owner, special = 0) + ..() + if(istype(ear_owner)) + color = ear_owner.hair_color + ear_owner.dna.features["ears"] = "None" + ear_owner.dna.species.mutant_bodyparts -= "ears" + ear_owner.update_body() + /obj/item/organ/ears/elf name = "elf ears" damage_multiplier = 1.5 diff --git a/code/modules/surgery/organs/tails.dm b/code/modules/surgery/organs/tails.dm index 2d3e402150a2f..be43bc99f62d6 100644 --- a/code/modules/surgery/organs/tails.dm +++ b/code/modules/surgery/organs/tails.dm @@ -137,7 +137,7 @@ desc = "A severed fox tail. Sad." tail_type = "Fox 2" -/obj/item/organ/tail/cat/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) +/obj/item/organ/tail/fox/alt/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) ..() if(istype(H)) if(!("tail_human" in H.dna.species.mutant_bodyparts)) @@ -145,7 +145,49 @@ H.dna.features["tail_human"] = tail_type H.update_body() -/obj/item/organ/tail/cat/Remove(mob/living/carbon/human/H, special = 0) +/obj/item/organ/tail/fox/alt/Remove(mob/living/carbon/human/H, special = 0) + ..() + if(istype(H)) + H.dna.features["tail_human"] = "None" + H.dna.species.mutant_bodyparts -= "tail_human" + color = H.hair_color + H.update_body() + +/obj/item/organ/tail/rabbit + name = "rabbit tail" + desc = "A severed rabbit tail." + tail_type = "Rabbit" + +/obj/item/organ/tail/rabbit/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) + ..() + if(istype(H)) + if(!("tail_human" in H.dna.species.mutant_bodyparts)) + H.dna.species.mutant_bodyparts |= "tail_human" + H.dna.features["tail_human"] = tail_type + H.update_body() + +/obj/item/organ/tail/rabbit/Remove(mob/living/carbon/human/H, special = 0) + ..() + if(istype(H)) + H.dna.features["tail_human"] = "None" + H.dna.species.mutant_bodyparts -= "tail_human" + color = H.hair_color + H.update_body() + +/obj/item/organ/tail/dog + name = "dog tail" + desc = "A severed dog tail." + tail_type = "Dog" + +/obj/item/organ/tail/dog/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) + ..() + if(istype(H)) + if(!("tail_human" in H.dna.species.mutant_bodyparts)) + H.dna.species.mutant_bodyparts |= "tail_human" + H.dna.features["tail_human"] = tail_type + H.update_body() + +/obj/item/organ/tail/dog/Remove(mob/living/carbon/human/H, special = 0) ..() if(istype(H)) H.dna.features["tail_human"] = "None" diff --git a/icons/mob/mutant_bodyparts.dmi b/icons/mob/mutant_bodyparts.dmi index a05f9c8dc678e..1e271758e3466 100644 Binary files a/icons/mob/mutant_bodyparts.dmi and b/icons/mob/mutant_bodyparts.dmi differ diff --git a/icons/mob/species/misc/cat.dmi b/icons/mob/species/human/cat.dmi similarity index 100% rename from icons/mob/species/misc/cat.dmi rename to icons/mob/species/human/cat.dmi diff --git a/icons/mob/species/human/dog.dmi b/icons/mob/species/human/dog.dmi new file mode 100644 index 0000000000000..3b3241059638d Binary files /dev/null and b/icons/mob/species/human/dog.dmi differ diff --git a/icons/mob/species/human/elf.dmi b/icons/mob/species/human/elf.dmi new file mode 100644 index 0000000000000..7a37d6fd95804 Binary files /dev/null and b/icons/mob/species/human/elf.dmi differ diff --git a/icons/mob/species/misc/fox.dmi b/icons/mob/species/human/fox.dmi similarity index 100% rename from icons/mob/species/misc/fox.dmi rename to icons/mob/species/human/fox.dmi diff --git a/icons/mob/species/human/rabbit.dmi b/icons/mob/species/human/rabbit.dmi new file mode 100644 index 0000000000000..fcc6599f73568 Binary files /dev/null and b/icons/mob/species/human/rabbit.dmi differ