Fix for missing and robotic limbs getting infected with germs and being incurable.

This commit is contained in:
Nanai
2013-12-11 00:54:47 +01:00
committed by alex-gh
parent 2c13accf65
commit f8cff80d3f
2 changed files with 10 additions and 3 deletions
+6
View File
@@ -45,6 +45,7 @@
// how often wounds should be updated, a higher number means less often
var/wound_update_accuracy = 1
/datum/organ/external/New(var/datum/organ/external/P)
if(P)
parent = P
@@ -297,6 +298,11 @@ This function completely restores a damaged organ to perfect condition.
#define GANGREN_LEVEL_TERMINAL 2500
#define GERM_TRANSFER_AMOUNT germ_level/500
/datum/organ/external/proc/update_germs()
if(status & ORGAN_ROBOT|ORGAN_DESTROYED) //Robotic limbs shouldn't be infected, nor should nonexistant limbs.
germ_level = 0
return
if(germ_level > 0 && owner.bodytemperature >= 170) //cryo stops germs from moving and doing their bad stuffs
//Syncing germ levels with external wounds
for(var/datum/wound/W in wounds)
+4 -3
View File
@@ -4,7 +4,7 @@
//////////////////////////////////////////////////////////////////
/datum/surgery_step/limb/
can_infect = 1
can_infect = 0
can_use(mob/living/user, mob/living/carbon/human/target, target_zone, obj/item/tool)
if (!hasorgans(target))
return 0
@@ -125,7 +125,6 @@
/datum/surgery_step/limb/attach
allowed_tools = list(/obj/item/robot_parts = 100)
can_infect = 0
min_duration = 80
max_duration = 100
@@ -148,6 +147,8 @@
var/datum/organ/external/affected = target.get_organ(target_zone)
user.visible_message("\blue [user] has attached [tool] where [target]'s [affected.display_name] used to be.", \
"\blue You have attached [tool] where [target]'s [affected.display_name] used to be.")
affected.germ_level = 0
affected.robotize()
if(L.sabotaged)
affected.sabotaged = 1
@@ -162,4 +163,4 @@
var/datum/organ/external/affected = target.get_organ(target_zone)
user.visible_message("\red [user]'s hand slips, damaging connectors on [target]'s [affected.display_name]!", \
"\red Your hand slips, damaging connectors on [target]'s [affected.display_name]!")
target.apply_damage(10, BRUTE, affected)
target.apply_damage(10, BRUTE, affected)