Refactors ears into organs (#513)

* Refactors ear damage into ear organs

* Update human.dm

* Update species.dm

* Delete species.dm.rej

* Update tgstation.dme

* Delete tgstation.dme.rej

* Delete human.dm.rej

* Update tongue.dm

* Delete surgery.dmi

* upload fixed surgery.dmi
This commit is contained in:
CitadelStationBot
2017-04-26 09:52:35 -05:00
committed by Poojawa
parent a905c15dad
commit 84321916a5
40 changed files with 925 additions and 908 deletions
@@ -1,15 +1,7 @@
//Here are the procs used to modify status effects of a mob.
//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness, ear damage,
//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness
// eye damage, eye_blind, eye_blurry, druggy, BLIND disability, and NEARSIGHT disability.
/////////////////////////////////// EAR DAMAGE ////////////////////////////////////
/mob/living/brain/adjustEarDamage()
return
/mob/living/brain/setEarDamage() // no ears to damage or heal
return
/////////////////////////////////// EYE_BLIND ////////////////////////////////////
/mob/living/brain/blind_eyes() // no eyes to damage or heal
@@ -48,6 +48,7 @@
internal_organs += new /obj/item/organ/alien/hivenode
internal_organs += new /obj/item/organ/tongue/alien
internal_organs += new /obj/item/organ/eyes/night_vision/alien
internal_organs += new /obj/item/organ/ears
..()
/mob/living/carbon/alien/assess_threat() // beepsky won't hunt aliums
@@ -147,6 +148,8 @@ Des: Removes all infected images from the alien.
mind.transfer_to(new_xeno)
qdel(src)
// TODO make orbiters orbit the new xeno, or make xenos species rather than types
#undef HEAT_DAMAGE_LEVEL_1
#undef HEAT_DAMAGE_LEVEL_2
#undef HEAT_DAMAGE_LEVEL_3
+3
View File
@@ -722,6 +722,9 @@
if(reagents)
reagents.addiction_list = list()
..()
// heal ears after healing disabilities, since ears check DEAF disability
// when healing.
restoreEars()
/mob/living/carbon/can_be_revived()
. = ..()
@@ -277,20 +277,24 @@
/mob/living/carbon/soundbang_act(intensity = 1, stun_pwr = 1, damage_pwr = 5, deafen_pwr = 15)
var/ear_safety = get_ear_protection()
var/obj/item/organ/ears/ears = getorganslot("ears")
if(ear_safety < 2) //has ears
var/effect_amount = intensity - ear_safety
if(effect_amount > 0)
if(stun_pwr)
Stun(stun_pwr*effect_amount)
Weaken(stun_pwr*effect_amount)
if(deafen_pwr || damage_pwr)
setEarDamage(ear_damage + damage_pwr*effect_amount, max(ear_deaf, deafen_pwr*effect_amount))
if (ear_damage >= 15)
if(istype(ears) && (deafen_pwr || damage_pwr))
ears.ear_damage += damage_pwr * effect_amount
ears.deaf = max(ears.deaf, deafen_pwr * effect_amount)
if(ears.ear_damage >= 15)
to_chat(src, "<span class='warning'>Your ears start to ring badly!</span>")
if(prob(ear_damage - 5))
to_chat(src, "<span class='warning'>You can't hear anything!</span>")
disabilities |= DEAF
else if(ear_damage >= 5)
if(prob(ears.ear_damage - 5))
to_chat(src, "<span class='userdanger'>You can't hear anything!</span>")
ears.ear_damage = min(ears.ear_damage, UNHEALING_EAR_DAMAGE)
// you need earmuffs, inacusiate, or replacement
else if(ears.ear_damage >= 5)
to_chat(src, "<span class='warning'>Your ears start to ring!</span>")
src << sound('sound/weapons/flash_ring.ogg',0,1,0,250)
return effect_amount //how soundbanged we are
@@ -310,3 +314,9 @@
hit_clothes = head
if(hit_clothes)
hit_clothes.take_damage(damage_amount, damage_type, damage_flag, 0)
/mob/living/carbon/can_hear()
. = FALSE
var/obj/item/organ/ears/ears = getorganslot("ears")
if(istype(ears) && !ears.deaf)
. = TRUE
@@ -59,6 +59,7 @@
internal_organs += new /obj/item/organ/heart
internal_organs += new dna.species.mutanteyes()
internal_organs += new dna.species.mutantears
internal_organs += new /obj/item/organ/brain
give_genitals()
..()
+1 -11
View File
@@ -70,18 +70,8 @@
else if(eye_blurry) //blurry eyes heal slowly
adjust_blurriness(-1)
//Ears
if(disabilities & DEAF) //disabled-deaf, doesn't get better on its own
setEarDamage(-1, max(ear_deaf, 1))
else
if(istype(ears, /obj/item/clothing/ears/earmuffs)) // earmuffs rest your ears, healing ear_deaf faster and ear_damage, but keeping you deaf.
setEarDamage(max(ear_damage-0.10, 0), max(ear_deaf - 1, 1))
// deafness heals slowly over time, unless ear_damage is over 100
if(ear_damage < 100)
adjustEarDamage(-0.05,-1)
if (getBrainLoss() >= 60 && stat != DEAD)
if (prob(3))
if(prob(3))
if(prob(25))
emote("drool")
else
@@ -67,6 +67,9 @@
//Eyes
var/obj/item/organ/eyes/mutanteyes = /obj/item/organ/eyes
//Ears
var/obj/item/organ/ears/mutantears = /obj/item/organ/ears
//Citadel snowflake
var/fixed_mut_color2 = ""
@@ -127,6 +130,7 @@
var/obj/item/organ/lungs/lungs = C.getorganslot("lungs")
var/obj/item/organ/appendix/appendix = C.getorganslot("appendix")
var/obj/item/organ/eyes/eyes = C.getorganslot("eye_sight")
var/obj/item/organ/ears/ears = C.getorganslot("ears")
if((NOBLOOD in species_traits) && heart)
heart.Remove(C)
@@ -144,6 +148,11 @@
eyes = new mutanteyes
eyes.Insert(C)
if(ears)
qdel(ears)
ears = new mutantears
ears.Insert(C)
if((!(NOBREATH in species_traits)) && !lungs)
if(mutantlungs)
lungs = new mutantlungs()
@@ -45,6 +45,7 @@
internal_organs += new /obj/item/organ/brain
internal_organs += new /obj/item/organ/tongue
internal_organs += new /obj/item/organ/eyes
internal_organs += new /obj/item/organ/ears
..()
/mob/living/carbon/monkey/movement_delay()
@@ -134,15 +135,6 @@
protection = protection/7 //the rest of the body isn't covered.
return protection
/mob/living/carbon/monkey/fully_heal(admin_revive = 0)
if(!getorganslot("lungs"))
var/obj/item/organ/lungs/L = new()
L.Insert(src)
if(!getorganslot("tongue"))
var/obj/item/organ/tongue/T = new()
T.Insert(src)
..()
/mob/living/carbon/monkey/IsVocal()
if(!getorganslot("lungs"))
return 0
-8
View File
@@ -126,14 +126,6 @@
if(client && !eye_blurry)
clear_fullscreen("blurry")
//Ears
if(disabilities & DEAF) //disabled-deaf, doesn't get better on its own
setEarDamage(-1, max(ear_deaf, 1))
else
// deafness heals slowly over time, unless ear_damage is over 100
if(ear_damage < 100)
adjustEarDamage(-0.05,-1)
/mob/living/proc/update_damage_hud()
return
-2
View File
@@ -379,8 +379,6 @@
cure_blind()
cure_husk()
disabilities = 0
ear_deaf = 0
ear_damage = 0
hallucination = 0
heal_overall_damage(100000, 100000, 0, 0, 1) //heal brute and burn dmg on both organic and robotic limbs, and update health right away.
ExtinguishMob()
+1 -1
View File
@@ -153,7 +153,7 @@
if(!only_listener)
// Play voice for all mobs in the z level
for(var/mob/M in GLOB.player_list)
if(M.client && !M.ear_deaf && (M.client.prefs.toggles & SOUND_ANNOUNCEMENTS))
if(M.client && M.can_hear() && (M.client.prefs.toggles & SOUND_ANNOUNCEMENTS))
var/turf/T = get_turf(M)
if(T.z == z_level)
M << voice
@@ -36,11 +36,3 @@
. = ..()
if(. && updating)
update_stat()
/////////////////////////////////// EAR DAMAGE ////////////////////////////////////
/mob/living/silicon/adjustEarDamage()
return
/mob/living/silicon/setEarDamage()
return
@@ -23,12 +23,3 @@
/mob/living/simple_animal/become_blind()
return
/mob/living/simple_animal/adjustEarDamage()
return
/mob/living/simple_animal/setEarDamage()
return
+2 -16
View File
@@ -1,21 +1,7 @@
//Here are the procs used to modify status effects of a mob.
//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness, ear damage,
//The effects include: stunned, weakened, paralysis, sleeping, resting, jitteriness, dizziness,
// eye damage, eye_blind, eye_blurry, druggy, BLIND disability, and NEARSIGHT disability.
/////////////////////////////////// EAR DAMAGE ////////////////////////////////////
//damage/heal the mob ears and adjust the deaf amount
/mob/living/adjustEarDamage(damage, deaf)
ear_damage = max(0, ear_damage + damage)
ear_deaf = max(0, ear_deaf + deaf)
//pass a negative argument to skip one of the variable
/mob/living/setEarDamage(damage, deaf)
if(damage >= 0)
ear_damage = damage
if(deaf >= 0)
ear_deaf = deaf
//////////////////////////////STUN ////////////////////////////////////
@@ -71,4 +57,4 @@
to_chat(src, "<span class='boldwarning'>[priority_absorb_key["self_message"]]</span>")
priority_absorb_key["stuns_absorbed"] += amount
return 0
return ..()
return ..()
+2 -6
View File
@@ -73,7 +73,7 @@
msg = alt_msg
type = alt_type
if(type & 2 && ear_deaf)//Hearing related
if(type & 2 && !can_hear())//Hearing related
if(!alt_msg)
return
else
@@ -972,10 +972,6 @@
set_eye_damage(var_value)
if("eye_blurry")
set_blurriness(var_value)
if("ear_deaf")
setEarDamage(-1, var_value)
if("ear_damage")
setEarDamage(var_value, -1)
if("maxHealth")
updatehealth()
if("resize")
@@ -1013,4 +1009,4 @@
switch(var_name)
if("logging")
return debug_variable(var_name, logging, 0, src, FALSE)
. = ..()
. = ..()
-2
View File
@@ -42,8 +42,6 @@
var/notransform = null //Carbon
var/eye_blind = 0 //Carbon
var/eye_blurry = 0 //Carbon
var/ear_deaf = 0 //Carbon
var/ear_damage = 0 //Carbon
var/stuttering = 0 //Carbon
var/slurring = 0 //Carbon
var/cultslurring = 0 //Carbon
+3
View File
@@ -482,3 +482,6 @@ It's fairly easy to fix if dealing with single letters but not so much with comp
var/list/timestamped_message = list("[LAZYLEN(logging[message_type]) + 1]\[[time_stamp()]\] [key_name(src)]" = message)
logging[message_type] += timestamped_message
/mob/proc/can_hear()
. = TRUE
-8
View File
@@ -143,14 +143,6 @@
/mob/proc/Dizzy(amount)
dizziness = max(dizziness,amount,0)
/////////////////////////////////// EAR DAMAGE ////////////////////////////////////
/mob/proc/adjustEarDamage()
return
/mob/proc/setEarDamage()
return
/////////////////////////////////// EYE DAMAGE ////////////////////////////////////
/mob/proc/damage_eyes(amount)