diff --git a/code/modules/mob/dead/new_player/sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories.dm index 1283f20e557..3b7c16a8510 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories.dm @@ -1741,6 +1741,17 @@ name = "Small" icon_state = "small" +/datum/sprite_accessory/tails/human/fox + icon = 'icons/mob/species/misc/fox.dmi' + name = "Fox" + icon_state = "fox" + color_src = HAIR + +/datum/sprite_accessory/tails_animated/human/fox + icon = 'icons/mob/species/misc/fox.dmi' + name = "Fox" + icon_state = "fox" + color_src = HAIR //Start Face markings /datum/sprite_accessory/face_markings @@ -1837,6 +1848,12 @@ name = "Normal ears" icon_state = "ears" +/datum/sprite_accessory/ears/human/fox + icon = 'icons/mob/species/misc/fox.dmi' + name = "Fox" + icon_state = "fox" + secondary_color = TRUE + color_src = HAIR //End ears /datum/sprite_accessory/frills/frillhawk 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 d560d16d13f..aae7a6189ae 100644 --- a/code/modules/mob/living/carbon/human/species_types/felinid.dm +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -45,24 +45,15 @@ mutant_bodyparts |= "tail_human" H.update_body() -/datum/species/human/felinid/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) - if(ishuman(C)) - var/mob/living/carbon/human/H = C - if(!pref_load) //Hah! They got forcefully purrbation'd. Force default felinid parts on them if they have no mutant parts in those areas! - if(H.dna.features["tail_human"] == "None") - H.dna.features["tail_human"] = "Cat" - if(H.dna.features["ears"] == "None") - H.dna.features["ears"] = "Cat" - if(H.dna.features["ears"] == "Cat") - var/obj/item/organ/ears/cat/ears = new - ears.Insert(H, drop_if_replaced = FALSE) - else - mutantears = /obj/item/organ/ears - if(H.dna.features["tail_human"] == "Cat") - var/obj/item/organ/tail/cat/tail = new - tail.Insert(H, drop_if_replaced = FALSE) - else - mutant_organs = list() +/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 return ..() /proc/mass_purrbation() diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm index 0dd5aded0d5..9ae2c4c353a 100644 --- a/code/modules/research/designs/limbgrower_designs.dm +++ b/code/modules/research/designs/limbgrower_designs.dm @@ -107,3 +107,20 @@ reagents_list = list(/datum/reagent/medicine/synthflesh = 10) build_path = /obj/item/organ/tongue category = list("other") + +/datum/design/fox_tail + name = "Fox Tail" + id = "foxtail" + build_type = LIMBGROWER + reagents_list = list(/datum/reagent/medicine/synthflesh = 20) + build_path = /obj/item/organ/tail/fox + category = list("initial",SPECIES_HUMAN) + +/datum/design/fox_ears + name = "Fox Ears" + id = "foxears" + build_type = LIMBGROWER + reagents_list = list(/datum/reagent/medicine/synthflesh = 10) + build_path = /obj/item/organ/ears/fox + category = list("initial",SPECIES_HUMAN) + diff --git a/code/modules/surgery/organs/ears.dm b/code/modules/surgery/organs/ears.dm index 37087c03c7f..7b6be7baf56 100644 --- a/code/modules/surgery/organs/ears.dm +++ b/code/modules/surgery/organs/ears.dm @@ -158,3 +158,35 @@ if(. & EMP_PROTECT_SELF) return damage += 40/severity + +/obj/item/organ/ears/cat/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"] = "Cat" + ear_owner.update_body() + +/obj/item/organ/ears/cat/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/fox/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"] = "Fox" + ear_owner.update_body() + +/obj/item/organ/ears/fox/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() diff --git a/code/modules/surgery/organs/tails.dm b/code/modules/surgery/organs/tails.dm index 61fd40aa36a..ec296d63538 100644 --- a/code/modules/surgery/organs/tails.dm +++ b/code/modules/surgery/organs/tails.dm @@ -79,3 +79,46 @@ tail_type = H.dna.features["tail_lizard"] spines = H.dna.features["spines"] H.update_body() + + +/obj/item/organ/tail/fox + name = "fox tail" + desc = "A severed fox tail. Sad." + tail_type = "Fox" + +/obj/item/organ/tail/fox/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/fox/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/fox/alt + name = "fox tail" + 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) + ..() + 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/cat/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() diff --git a/config/game_options.txt b/config/game_options.txt index 3a4b5347206..0583c7e0695 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -454,7 +454,7 @@ ROUNDSTART_RACES plasmaman #ROUNDSTART_RACES shadow # VOID EDIT ROUNDSTART_RACES ipc -#ROUNDSTART_RACES felinid +ROUNDSTART_RACES felinid # VOID EDIT #ROUNDSTART_RACES squid #VOID EDIT diff --git a/icons/mob/species/misc/fox.dmi b/icons/mob/species/misc/fox.dmi new file mode 100644 index 00000000000..da344bb33a3 Binary files /dev/null and b/icons/mob/species/misc/fox.dmi differ