From 3b072b32b0ac6733a4e0859682f252cf593a445d Mon Sep 17 00:00:00 2001 From: Zuhayr Date: Mon, 6 Jan 2014 14:54:35 +1030 Subject: [PATCH] More dionaea tweaks, NO_PAIN, IS_PLANT and IS_SLOW specifically. --- .../mob/living/carbon/human/human_movement.dm | 2 +- code/modules/mob/living/carbon/human/life.dm | 15 +++++++++------ code/modules/mob/living/carbon/monkey/life.dm | 2 +- code/modules/mob/living/carbon/species.dm | 2 +- code/modules/organs/organ.dm | 5 +++-- code/modules/organs/organ_external.dm | 5 ++++- 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 4c7db3b7de..25aff551cf 100644 --- a/code/modules/mob/living/carbon/human/human_movement.dm +++ b/code/modules/mob/living/carbon/human/human_movement.dm @@ -2,7 +2,7 @@ var/tally = 0 if(species && species.flags & IS_SLOW) - tally = 10 + tally = 7 if (istype(loc, /turf/space)) return -1 // It's hard to be slowed down in space by... anything diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index 781c1798bb..617998de00 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -885,12 +885,15 @@ nutrition += light_amount traumatic_shock -= light_amount - if(nutrition > 500) - nutrition = 500 - if(light_amount > 5) //if there's enough light, heal - adjustBruteLoss(-1) - adjustToxLoss(-1) - adjustOxyLoss(-1) + if(species.flags & IS_PLANT) + if(nutrition > 500) + nutrition = 500 + if(light_amount >= 3) //if there's enough light, heal + adjustBruteLoss(-(light_amount)) + adjustToxLoss(-(light_amount)) + adjustOxyLoss(-(light_amount)) + //TODO: heal wounds, heal broken limbs. + if(dna && dna.mutantrace == "shadow") var/light_amount = 0 if(isturf(loc)) diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 8b9f3009d1..7599c31359 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -455,7 +455,7 @@ if(nutrition > 500) nutrition = 500 if(light_amount > 2) //if there's enough light, heal - heal_overall_damage(1,1) + adjustBruteLoss(-1) adjustToxLoss(-1) adjustOxyLoss(-1) diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index 90ee922548..cd6939831a 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -126,7 +126,7 @@ eyes = "vox_eyes_s" breath_type = "nitrogen" - flags = NO_SCAN + flags = NO_SCAN | NO_BLOOD blood_color = "#2299FC" flesh_color = "#808D11" diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 89f66c1720..eec57edea9 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -104,7 +104,7 @@ u_equip(c_hand) if(broken) - emote("me", 1, "screams in pain and drops what they were holding in their [E.display_name?"[E.display_name]":"[E]"]!") + emote("me", 1, "[(species && species.flags & NO_PAIN) ? "" : "screams in pain and"] drops what they were holding in their [E.display_name?"[E.display_name]":"[E]"]!") if(malfunction) emote("me", 1, "drops what they were holding, their [E.display_name?"[E.display_name]":"[E]"] malfunctioning!") var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread() @@ -120,7 +120,8 @@ // standing is poor if(leg_tally <= 0 && !paralysis && !(lying || resting) && prob(5)) - emote("scream") + if(species && species.flags & NO_PAIN) + emote("scream") emote("collapse") paralysis = 10 diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index abd5f1baf6..9a17eb620c 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -591,7 +591,10 @@ This function completely restores a damaged organ to perfect condition. if(status & ORGAN_BROKEN) return owner.visible_message("\red You hear a loud cracking sound coming from \the [owner].","\red Something feels like it shattered in your [display_name]!","You hear a sickening crack.") - owner.emote("scream") + + if(owner.species && !(owner.species.flags & NO_PAIN)) + owner.emote("scream") + status |= ORGAN_BROKEN broken_description = pick("broken","fracture","hairline fracture") perma_injury = brute_dam