Implant items do not count for continuing to process embedded objects

Also makes embedded pain messages respect NO_PAIN.
This commit is contained in:
mwerezak
2015-08-12 23:38:44 -04:00
parent 99e1d88285
commit 1dc853710c

View File

@@ -1032,8 +1032,9 @@
/mob/living/carbon/human/embedded_needs_process() /mob/living/carbon/human/embedded_needs_process()
for(var/obj/item/organ/external/organ in src.organs) for(var/obj/item/organ/external/organ in src.organs)
if(organ.implants.len) for(var/obj/item/O in organ.implants)
return 1 if(!istype(O, /obj/item/weapon/implant)) //implant type items do not cause embedding effects, see handle_embedded_objects()
return 1
return 0 return 0
/mob/living/carbon/human/proc/handle_embedded_objects() /mob/living/carbon/human/proc/handle_embedded_objects()
@@ -1041,18 +1042,17 @@
for(var/obj/item/organ/external/organ in src.organs) for(var/obj/item/organ/external/organ in src.organs)
if(organ.status & ORGAN_SPLINTED) //Splints prevent movement. if(organ.status & ORGAN_SPLINTED) //Splints prevent movement.
continue continue
for(var/obj/item/weapon/O in organ.implants) for(var/obj/item/O in organ.implants)
if(!istype(O,/obj/item/weapon/implant) && prob(5)) //Moving with things stuck in you could be bad. if(!istype(O,/obj/item/weapon/implant) && prob(5)) //Moving with things stuck in you could be bad.
// All kinds of embedded objects cause bleeding. // All kinds of embedded objects cause bleeding.
var/msg = null if(species.flags & NO_PAIN)
switch(rand(1,3)) src << "<span class='warning'>You feel [O] moving inside your [organ.name].</span>"
if(1) else
msg ="<span class='warning'>A spike of pain jolts your [organ.name] as you bump [O] inside.</span>" var/msg = pick( \
if(2) "<span class='warning'>A spike of pain jolts your [organ.name] as you bump [O] inside.</span>", \
msg ="<span class='warning'>Your movement jostles [O] in your [organ.name] painfully.</span>" "<span class='warning'>Your movement jostles [O] in your [organ.name] painfully.</span>", \
if(3) "<span class='warning'>Your movement jostles [O] in your [organ.name] painfully.</span>")
msg ="<span class='warning'>[O] in your [organ.name] twists painfully as you move.</span>" src << msg
src << msg
organ.take_damage(rand(1,3), 0, 0) organ.take_damage(rand(1,3), 0, 0)
if(!(organ.status & ORGAN_ROBOT) && !(species.flags & NO_BLOOD)) //There is no blood in protheses. if(!(organ.status & ORGAN_ROBOT) && !(species.flags & NO_BLOOD)) //There is no blood in protheses.