From fe618d4c1b015ffbffc741ca24f3a86bd6b3e6ea Mon Sep 17 00:00:00 2001 From: NovaBot <154629622+NovaBot13@users.noreply.github.com> Date: Sat, 23 Mar 2024 19:24:58 -0400 Subject: [PATCH] [MIRROR] Ports additional Felinid ears from Orbstation (#1538) * Ports additional Felinid ears from Orbstation (#82066) ## About The Pull Request Adds 5 new ear options from Orbstation, originally PRed in lizardqueenlexi/orbstation#360. Sprites by @Or-Fi-S. Big: ![image](https://github.com/tgstation/tgstation/assets/7019927/5f847130-e5f5-44cc-adb4-c740c4c4f69b) Coeurl (FFXIV Miqo'te style): ![image](https://github.com/tgstation/tgstation/assets/7019927/34448bee-d6af-4d3c-b796-384ec9904368) Fold: ![image](https://github.com/tgstation/tgstation/assets/7019927/a7dafd05-f652-460e-9386-f7fcbef696e9) Lynx: ![image](https://github.com/tgstation/tgstation/assets/7019927/174ff630-6eb8-4bb9-8f4f-791b70356c58) Round: ![image](https://github.com/tgstation/tgstation/assets/7019927/b3a24d1b-66fa-4883-8c27-871ae8966d6c) Also makes it so the code guarantees that custom ears on a felinid actually count as felinid ears and not human ones, as the code wasn't checking properly when preferences were applied. There's probably a cleaner, more permanent way to do this and a refactor is needed somewhere down the line (man that sprite accessories file is getting long huh) but I'll leave that to a more competent coder. ## Why It's Good For The Game More customization options are good also Cobby said I could ![image](https://github.com/tgstation/tgstation/assets/7019927/56bbe285-068f-41a1-92cc-9f3861875090) ## Changelog :cl: add: Added 5 new Felinid ear options, ported from Orbstation! (Sprites by Or-Fi-S) /:cl: --------- Co-authored-by: _0Steven * Ports additional Felinid ears from Orbstation * Update felinid.dm * Revert "Update felinid.dm" This reverts commit b5cb6f24d82424eceaada708c0b1a136bb15460c. * Just put this back. We have the other part of this commented out --------- Co-authored-by: Vekter Co-authored-by: _0Steven Co-authored-by: Mal <13398309+vinylspiders@users.noreply.github.com> --- code/datums/sprite_accessories.dm | 20 ++++++++++++++++++ .../carbon/human/species_types/felinid.dm | 8 +++++++ .../surgery/organs/internal/ears/_ears.dm | 9 +++++++- icons/mob/human/cat_features.dmi | Bin 1240 -> 1906 bytes 4 files changed, 36 insertions(+), 1 deletion(-) diff --git a/code/datums/sprite_accessories.dm b/code/datums/sprite_accessories.dm index fcee26ebe77..cef983f9c05 100644 --- a/code/datums/sprite_accessories.dm +++ b/code/datums/sprite_accessories.dm @@ -1916,6 +1916,26 @@ hasinner = TRUE color_src = HAIR_COLOR +/datum/sprite_accessory/ears/cat/big + name = "Big" + icon_state = "big" + +/datum/sprite_accessory/ears/cat/miqo + name = "Coeurl" + icon_state = "miqo" + +/datum/sprite_accessory/ears/cat/fold + name = "Fold" + icon_state = "fold" + +/datum/sprite_accessory/ears/cat/lynx + name = "Lynx" + icon_state = "lynx" + +/datum/sprite_accessory/ears/cat/round + name = "Round" + icon_state = "round" + /datum/sprite_accessory/ears/fox icon = 'icons/mob/human/fox_features.dmi' name = "Fox" 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 615b439a7e3..a84a51acf19 100644 --- a/code/modules/mob/living/carbon/human/species_types/felinid.dm +++ b/code/modules/mob/living/carbon/human/species_types/felinid.dm @@ -40,11 +40,19 @@ target_human.dna.features["tail_cat"] = "Cat" if(target_human.dna.features["ears"] == "None") target_human.dna.features["ears"] = "Cat" + /* NOVA EDIT CHANGE START - ORIGINAL + if(target_human.dna.features["ears"] == "None") + mutantears = /obj/item/organ/internal/ears + else + var/obj/item/organ/internal/ears/cat/ears = new(FALSE, target_human.dna.features["ears"]) + ears.Insert(target_human, movement_flags = DELETE_IF_REPLACED) + */ if(target_human.dna.features["ears"] == "Cat") var/obj/item/organ/internal/ears/cat/ears = new ears.Insert(target_human, movement_flags = DELETE_IF_REPLACED) else mutantears = /obj/item/organ/internal/ears + // NOVA EDIT CHANGE END return ..() /datum/species/human/felinid/randomize_features(mob/living/carbon/human/human_mob) diff --git a/code/modules/surgery/organs/internal/ears/_ears.dm b/code/modules/surgery/organs/internal/ears/_ears.dm index 76d8751dc5d..139bbdf483e 100644 --- a/code/modules/surgery/organs/internal/ears/_ears.dm +++ b/code/modules/surgery/organs/internal/ears/_ears.dm @@ -67,6 +67,13 @@ icon_state = "kitty" visual = TRUE damage_multiplier = 2 + // Keeps track of which cat ears sprite is associated with this. + var/variant = "Cat" + +/obj/item/organ/internal/ears/cat/Initialize(mapload, variant_pref) + . = ..() + if(variant_pref) + variant = variant_pref //NOVA EDIT REMOVAL BEGIN - CUSTOMIZATION /* @@ -74,7 +81,7 @@ . = ..() if(istype(ear_owner) && ear_owner.dna) color = ear_owner.hair_color - ear_owner.dna.features["ears"] = ear_owner.dna.species.mutant_bodyparts["ears"] = "Cat" + ear_owner.dna.features["ears"] = ear_owner.dna.species.mutant_bodyparts["ears"] = variant ear_owner.dna.update_uf_block(DNA_EARS_BLOCK) ear_owner.update_body() diff --git a/icons/mob/human/cat_features.dmi b/icons/mob/human/cat_features.dmi index f80d0167ae8ce4a1854cfd35c2c26df80b97a1ca..6e7fd024fee1d2b32e9e8feac22fbd88cb568dc4 100644 GIT binary patch literal 1906 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