diff --git a/code/game/objects/items/weapons/dna_injector.dm b/code/game/objects/items/weapons/dna_injector.dm index 7e49a4465b9..0bfcd30ef15 100644 --- a/code/game/objects/items/weapons/dna_injector.dm +++ b/code/game/objects/items/weapons/dna_injector.dm @@ -62,7 +62,7 @@ /obj/item/weapon/dnainjector/proc/inject(mob/living/M as mob, mob/user as mob) if(istype(M,/mob/living)) - M.apply_effect(rand(10,25),IRRADIATE,0) + M.apply_effect(rand(10,25),IRRADIATE,-1) if (!(NOCLONE in M.mutations)) // prevents drained people from having their DNA changed // UI in syringe. @@ -97,6 +97,7 @@ var/mob/living/carbon/human/H = M if(H.species.flags & NO_DNA_RAD) return + if (!usr.IsAdvancedToolUser()) return diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index e219c342187..dfd271b1507 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -46,7 +46,8 @@ /mob/living/proc/apply_effect(var/effect = 0,var/effecttype = STUN, var/blocked = 0) blocked = (100-blocked)/100 - if(!effect || (blocked <= 0)) return 0 + if(!effect || (blocked <= 0)) + return 0 switch(effecttype) if(STUN) Stun(effect * blocked) @@ -57,7 +58,10 @@ if(AGONY) halloss += effect // Useful for objects that cause "subdual" damage. PAIN! if(IRRADIATE) - radiation += max(effect * ((100-run_armor_check(null, "rad", "Your clothes feel warm.", "Your clothes feel warm."))/100),0)//Rads auto check armor + var/rad_damage = effect + if(blocked != -1) // Setting blocked to -1 overrides radiation armor checks, which are automatic otherwise + rad_damage = max(effect * ((100-run_armor_check(null, "rad", "Your clothes feel warm.", "Your clothes feel warm."))/100),0) + radiation += rad_damage if(SLUR) slurring = max(slurring,(effect * blocked)) if(STUTTER) @@ -73,14 +77,9 @@ updatehealth() return 1 - -/mob/living/carbon/human/apply_effect(var/effect = 0,var/effecttype = STUN, var/blocked = 0) - if((species.flags & NO_DNA_RAD) && (effecttype == IRRADIATE)) - return - return ..() - - -/mob/living/carbon/apply_effect(var/effect = 0,var/effecttype = STUN, var/blocked = 0) +/mob/living/carbon/human/apply_effect(var/effect = 0, var/effecttype = STUN, var/blocked = 0) + if((effecttype == IRRADIATE) && (species.flags & NO_DNA_RAD)) + return 0 return ..() /mob/living/proc/apply_effects(var/stun = 0, var/weaken = 0, var/paralyze = 0, var/irradiate = 0, var/slur = 0, var/stutter = 0, var/eyeblur = 0, var/drowsy = 0, var/agony = 0, var/blocked = 0, var/stamina = 0, var/jitter = 0)