diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm index 5c93ff2d731..18b8faed177 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 a7bc4b2815d..0d042e1f12a 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -914,12 +914,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 92a3263df16..0cbb115f9e8 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -454,7 +454,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) @@ -679,4 +679,4 @@ return adjustFireLoss(6) return - //END FIRE CODE \ No newline at end of file + //END FIRE CODE diff --git a/code/modules/mob/living/carbon/species.dm b/code/modules/mob/living/carbon/species.dm index 4bb4c48f36c..079cdbad6ce 100644 --- a/code/modules/mob/living/carbon/species.dm +++ b/code/modules/mob/living/carbon/species.dm @@ -107,6 +107,7 @@ primitive = /mob/living/carbon/monkey/skrell flags = HAS_LIPS | HAS_UNDERWEAR + bloodflags = BLOOD_GREEN /datum/species/vox name = "Vox" @@ -125,7 +126,7 @@ eyes = "vox_eyes_s" breath_type = "nitrogen" - flags = NO_SCAN | IS_WHITELISTED + flags = NO_SCAN | IS_WHITELISTED | NO_BLOOD /datum/species/diona name = "Diona" @@ -148,7 +149,7 @@ heat_level_3 = 700 flags = NO_BREATHE | REQUIRE_LIGHT | NO_SCAN | IS_PLANT | RAD_ABSORB | NO_BLOOD | IS_SLOW | NO_PAIN - bloodflags = BLOOD_GREEN + /datum/species/kidan diff --git a/code/modules/organs/organ.dm b/code/modules/organs/organ.dm index 816c4d76890..a7e8dc7549e 100644 --- a/code/modules/organs/organ.dm +++ b/code/modules/organs/organ.dm @@ -105,7 +105,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() @@ -121,7 +121,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 @@ -133,4 +134,4 @@ E = organs_by_name["r_foot"] if(E.status & ORGAN_DESTROYED) - can_stand-- \ No newline at end of file + can_stand-- diff --git a/code/modules/organs/organ_external.dm b/code/modules/organs/organ_external.dm index 06a3a1a662c..dfc7d3c02fb 100644 --- a/code/modules/organs/organ_external.dm +++ b/code/modules/organs/organ_external.dm @@ -608,7 +608,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