/obj/item/organ/ears name = "ears" icon_state = "ears" desc = "There are three parts to the ear. Inner, middle and outer. Only one of these parts should be normally visible." zone = BODY_ZONE_HEAD slot = ORGAN_SLOT_EARS gender = PLURAL // `deaf` measures "ticks" of deafness. While > 0, the person is unable // to hear anything. var/deaf = 0 // `ear_damage` measures long term damage to the ears, if too high, // the person will not have either `deaf` or `ear_damage` decrease // without external aid (earmuffs, drugs) var/ear_damage = 0 //Resistance against loud noises var/bang_protect = 0 // Multiplier for both long term and short term ear damage var/damage_multiplier = 1 /obj/item/organ/ears/on_life() if(!iscarbon(owner)) return var/mob/living/carbon/C = owner // genetic deafness prevents the body from using the ears, even if healthy if(C.has_trait(TRAIT_DEAF)) deaf = max(deaf, 1) else if(C.ears && (C.ears.flags_2 & HEALS_EARS_2)) deaf = max(deaf - 1, 1) ear_damage = max(ear_damage - 0.1, 0) // if higher than UNHEALING_EAR_DAMAGE, no natural healing occurs. if(ear_damage < UNHEALING_EAR_DAMAGE) ear_damage = max(ear_damage - 0.05, 0) deaf = max(deaf - 1, 0) /obj/item/organ/ears/proc/restoreEars() deaf = 0 ear_damage = 0 var/mob/living/carbon/C = owner if(iscarbon(owner) && C.has_trait(TRAIT_DEAF)) deaf = 1 /obj/item/organ/ears/proc/adjustEarDamage(ddmg, ddeaf) ear_damage = max(ear_damage + (ddmg*damage_multiplier), 0) deaf = max(deaf + (ddeaf*damage_multiplier), 0) /obj/item/organ/ears/proc/minimumDeafTicks(value) deaf = max(deaf, value) /obj/item/organ/ears/invincible damage_multiplier = 0 /mob/proc/restoreEars() /mob/living/carbon/restoreEars() var/obj/item/organ/ears/ears = getorgan(/obj/item/organ/ears) if(ears) ears.restoreEars() /mob/proc/adjustEarDamage() /mob/living/carbon/adjustEarDamage(ddmg, ddeaf) var/obj/item/organ/ears/ears = getorgan(/obj/item/organ/ears) if(ears) ears.adjustEarDamage(ddmg, ddeaf) /mob/proc/minimumDeafTicks() /mob/living/carbon/minimumDeafTicks(value) var/obj/item/organ/ears/ears = getorgan(/obj/item/organ/ears) if(ears) ears.minimumDeafTicks(value) /obj/item/organ/ears/cat name = "cat ears" icon = 'icons/obj/clothing/hats.dmi' icon_state = "kitty" damage_multiplier = 2 /obj/item/organ/ears/cat/Insert(mob/living/carbon/human/H, special = 0, drop_if_replaced = TRUE) ..() if(istype(H)) color = H.hair_color H.dna.species.mutant_bodyparts |= "ears" H.dna.features["ears"] = "Cat" H.update_body() /obj/item/organ/ears/cat/Remove(mob/living/carbon/human/H, special = 0) ..() if(istype(H)) color = H.hair_color H.dna.features["ears"] = "None" H.dna.species.mutant_bodyparts -= "ears" H.update_body()