[MIRROR] Miscellaneous virus fixes (#3216)

* Miscellaneous virus fixes (#31391)

* Probably fixes neutering bugs

* Proper targeting for healing

* Fixes itching affecting roboparts

* Miscellaneous virus fixes
This commit is contained in:
CitadelStationBot
2017-10-08 01:04:26 -05:00
committed by kevinz000
parent f579a3bf74
commit d1dcfb63f8
3 changed files with 13 additions and 10 deletions
+1 -1
View File
@@ -123,7 +123,7 @@
/datum/disease/advance/proc/HasSymptom(datum/symptom/S)
for(var/datum/symptom/symp in symptoms)
if(symp.id == S.id)
if(symp.type == S.type)
return 1
return 0
@@ -131,7 +131,7 @@ Bonus
/datum/symptom/heal/brute/Heal(mob/living/carbon/M, datum/disease/advance/A)
var/heal_amt = 2 * power
var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs.
var/list/parts = M.get_damaged_bodyparts(1,0) //brute only
if(!parts.len)
return
@@ -175,7 +175,7 @@ Bonus
/datum/symptom/heal/brute/plus/Heal(mob/living/carbon/M, datum/disease/advance/A)
var/heal_amt = 4 * power
var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs.
var/list/parts = M.get_damaged_bodyparts(1,0) //brute only
if(M.getCloneLoss() > 0)
M.adjustCloneLoss(-1)
@@ -225,7 +225,7 @@ Bonus
/datum/symptom/heal/burn/Heal(mob/living/carbon/M, datum/disease/advance/A)
var/heal_amt = 2 * power
var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs.
var/list/parts = M.get_damaged_bodyparts(0,1) //burn only
if(!parts.len)
return
@@ -268,7 +268,7 @@ Bonus
/datum/symptom/heal/burn/plus/Heal(mob/living/carbon/M, datum/disease/advance/A)
var/heal_amt = 4 * power
var/list/parts = M.get_damaged_bodyparts(1,1) //1,1 because it needs inputs.
var/list/parts = M.get_damaged_bodyparts(0,1) //burn only
if(M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (10 * heal_amt * TEMPERATURE_DAMAGE_COEFFICIENT))
@@ -43,8 +43,11 @@ BONUS
/datum/symptom/itching/Activate(datum/disease/advance/A)
if(!..())
return
var/mob/living/M = A.affected_mob
var/can_scratch = scratch && !M.incapacitated()
to_chat(M, "<span class='warning'>Your [pick("back", "arm", "leg", "elbow", "head")] itches. [can_scratch ? " You scratch it." : ""]</span>")
if(can_scratch)
M.adjustBruteLoss(0.5)
var/mob/living/carbon/M = A.affected_mob
var/picked_bodypart = pick("head", "chest", "r_arm", "l_arm", "r_leg", "l_leg")
var/obj/item/bodypart/bodypart = M.get_bodypart(picked_bodypart)
if(bodypart && bodypart.status == BODYPART_ORGANIC && !bodypart.is_pseudopart) //robotic limbs will mean less scratching overall
var/can_scratch = scratch && !M.incapacitated() && get_location_accessible(M, picked_bodypart)
M.visible_message("[can_scratch ? "<span class='warning'>[M] scratches [M.p_their()] [bodypart.name].</span>" : ""]", "<span class='warning'>Your [bodypart.name] itches. [can_scratch ? " You scratch it." : ""]</span>")
if(can_scratch)
bodypart.receive_damage(0.5)