mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 18:44:48 +01:00
SSoverlays for human icons, mostly works
Closer to working 100% But legitimately /tg/ icons Move lighting to it's own plane, fix observers Fix humans layering over other objects incorrectly Nyaaaaa~
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
/obj/item/organ/internal/ears
|
||||
name = "ears"
|
||||
icon_state = "ears"
|
||||
gender = PLURAL
|
||||
organ_tag = "ears"
|
||||
parent_organ = "head"
|
||||
slot = "ears"
|
||||
|
||||
// `deaf` measures "ticks" of deafness. While > 0, the person is deaf.
|
||||
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
|
||||
|
||||
/obj/item/organ/internal/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.disabilities & DEAF)
|
||||
deaf = max(deaf, 1)
|
||||
else
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
if((H.l_ear && H.l_ear.flags_2 & HEALS_EARS_2) || (H.r_ear && H.r_ear.flags_2 & HEALS_EARS_2))
|
||||
deaf = max(deaf - 1, 1)
|
||||
ear_damage = max(ear_damage - 0.10, 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/internal/ears/proc/RestoreEars()
|
||||
deaf = 0
|
||||
ear_damage = 0
|
||||
|
||||
var/mob/living/carbon/C = owner
|
||||
if(istype(C) && C.disabilities & DEAF)
|
||||
deaf = 1
|
||||
|
||||
/obj/item/organ/internal/ears/proc/AdjustEarDamage(ddmg, ddeaf)
|
||||
ear_damage = max(ear_damage + ddmg, 0)
|
||||
deaf = max(deaf + ddeaf, 0)
|
||||
|
||||
/obj/item/organ/internal/ears/proc/MinimumDeafTicks(value)
|
||||
deaf = max(deaf, value)
|
||||
|
||||
// Mob procs
|
||||
/mob/living/carbon/RestoreEars()
|
||||
var/obj/item/organ/internal/ears/ears = get_int_organ(/obj/item/organ/internal/ears)
|
||||
if(ears)
|
||||
ears.RestoreEars()
|
||||
|
||||
/mob/living/carbon/AdjustEarDamage(ddmg, ddeaf)
|
||||
var/obj/item/organ/internal/ears/ears = get_int_organ(/obj/item/organ/internal/ears)
|
||||
if(ears)
|
||||
ears.AdjustEarDamage(ddmg, ddeaf)
|
||||
|
||||
/mob/living/carbon/MinimumDeafTicks(value)
|
||||
var/obj/item/organ/internal/ears/ears = get_int_organ(/obj/item/organ/internal/ears)
|
||||
if(ears)
|
||||
ears.MinimumDeafTicks(value)
|
||||
|
||||
|
||||
// Kitty ears!!
|
||||
/obj/item/organ/internal/ears/cat
|
||||
name = "cat ears"
|
||||
icon = 'icons/obj/clothing/hats.dmi'
|
||||
icon_state = "kitty"
|
||||
color = "#aa4444"
|
||||
transform = matrix(0.7, 0, 0, 0, 0.7, 0)
|
||||
|
||||
/obj/item/organ/internal/ears/cat/render()
|
||||
. = mutable_appearance('icons/mob/head.dmi', "kitty", layer = -HEAD_ACC_OVER_LAYER)
|
||||
@@ -64,6 +64,7 @@
|
||||
log_runtime(EXCEPTION("[src] attempted to remove from a [parent_organ], but [parent_organ] didn't exist! [atom_loc_line(M)]"), src)
|
||||
else
|
||||
parent.internal_organs -= src
|
||||
H.update_int_organs()
|
||||
|
||||
for(var/X in actions)
|
||||
var/datum/action/A = X
|
||||
@@ -105,6 +106,10 @@
|
||||
insert(H)
|
||||
return 1
|
||||
|
||||
// Rendering!
|
||||
/obj/item/organ/internal/proc/render()
|
||||
return
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/organ
|
||||
name = "appendix"
|
||||
icon_state = "appendix"
|
||||
@@ -247,7 +252,7 @@
|
||||
to_chat(owner, "<font color='red' size='7'>HONK</font>")
|
||||
owner.SetSleeping(0)
|
||||
owner.Stuttering(20)
|
||||
owner.AdjustEarDeaf(30)
|
||||
owner.MinimumDeafTicks(30)
|
||||
owner.Weaken(3)
|
||||
owner << 'sound/items/AirHorn.ogg'
|
||||
if(prob(30))
|
||||
|
||||
@@ -122,7 +122,7 @@ var/static/regex/multispin_words = regex("like a record baby")
|
||||
|
||||
var/mob/living/list/listeners = list()
|
||||
for(var/mob/living/L in get_mobs_in_view(8, owner, TRUE))
|
||||
if(!L.ear_deaf && !L.null_rod_check() && L != owner && L.stat != DEAD)
|
||||
if(L.can_hear() && !L.null_rod_check() && L != owner && L.stat != DEAD)
|
||||
if(ishuman(L))
|
||||
var/mob/living/carbon/human/H = L
|
||||
if(istype(H.l_ear, /obj/item/clothing/ears/earmuffs) || istype(H.r_ear, /obj/item/clothing/ears/earmuffs))
|
||||
|
||||
Reference in New Issue
Block a user