From db89a2aefb8fa71de016a75a898306d8ec8b9648 Mon Sep 17 00:00:00 2001 From: "johnsonmt88@gmail.com" Date: Wed, 27 Jun 2012 17:05:27 +0000 Subject: [PATCH] Viruses no longer re-infect people who have been vaccinated or otherwise cured. Chameleon projectors no longer let you move freely in space. - I realize the way I fixed this is terrible, but the whole relaymove() proc in chameleon projectors is terrible. I was unable to rewrite it without breaking it completely so this fix will have to do. Runtime fix for facehuggers having a null target (the mob they're attacking.) git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3930 316c924e-a436-60f5-8080-3fe189b3f50e --- code/game/objects/alien/facehugger.dm | 2 +- code/game/objects/devices/chameleonproj.dm | 2 ++ code/modules/mob/mob_cleanup.dm | 8 +++++--- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/code/game/objects/alien/facehugger.dm b/code/game/objects/alien/facehugger.dm index b38935224a0..25d304f47eb 100644 --- a/code/game/objects/alien/facehugger.dm +++ b/code/game/objects/alien/facehugger.dm @@ -163,7 +163,7 @@ var/const/MAX_ACTIVE_TIME = 600 return proc/Impregnate(mob/living/carbon/target as mob) - if(target.wear_mask != src) //was taken off or something + if(!target || target.wear_mask != src) //was taken off or something return if(!sterile) diff --git a/code/game/objects/devices/chameleonproj.dm b/code/game/objects/devices/chameleonproj.dm index c8e7ff754c0..50e92dfbef3 100644 --- a/code/game/objects/devices/chameleonproj.dm +++ b/code/game/objects/devices/chameleonproj.dm @@ -23,6 +23,8 @@ ..() master.disrupt() relaymove(var/mob/user, direction) + if(istype(loc, /turf/space)) return //No magical space movement! + if(can_move) can_move = 0 switch(usr.bodytemperature) diff --git a/code/modules/mob/mob_cleanup.dm b/code/modules/mob/mob_cleanup.dm index 7c356a1d613..30c7f7c1cdb 100644 --- a/code/modules/mob/mob_cleanup.dm +++ b/code/modules/mob/mob_cleanup.dm @@ -9,9 +9,11 @@ Put (mob/proc)s here that are in dire need of a code cleanup. /mob/proc/contract_disease(var/datum/disease/virus, var/skip_this = 0, var/force_species_check=1) // world << "Contract_disease called by [src] with virus [virus]" if(stat >=2) return - if(virus.type in resistances) - if(prob(99.9)) return - resistances.Remove(virus.type)//the resistance is futile + +//This gives a chance to re-infect cured/vaccinated mobs +// if(virus.type in resistances) +// if(prob(99.9)) return +// resistances.Remove(virus.type)//the resistance is futile for(var/datum/disease/D in viruses) if(istype(D, virus.type))