diff --git a/code/modules/mob/living/carbon/monkey/life.dm b/code/modules/mob/living/carbon/monkey/life.dm index 0a4348cd24c..49fea7308ae 100644 --- a/code/modules/mob/living/carbon/monkey/life.dm +++ b/code/modules/mob/living/carbon/monkey/life.dm @@ -171,14 +171,14 @@ V.cure(src) for(var/obj/effect/decal/cleanable/blood/B in view(1,src)) - if(B.virus2.len && get_infection_chance(src)) + if(B.virus2.len) for (var/ID in B.virus2) - var/datum/disease2/disease/V = virus2[ID] + var/datum/disease2/disease/V = B.virus2[ID] infect_virus2(src,V) for(var/obj/effect/decal/cleanable/mucus/M in view(1,src)) - if(M.virus2.len && get_infection_chance(src)) + if(M.virus2.len) for (var/ID in M.virus2) - var/datum/disease2/disease/V = virus2[ID] + var/datum/disease2/disease/V = M.virus2[ID] infect_virus2(src,V) for (var/ID in virus2) diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm index 41c6443585f..fb172e2801d 100644 --- a/code/modules/reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents.dm @@ -116,7 +116,7 @@ datum if(method == TOUCH) infect_virus2(M,self.data["virus2"]) else - infect_virus2(M,self.data["virus2"],1) + infect_virus2(M,self.data["virus2"],1) //injected, force infection! if(self.data && self.data["antibodies"] && istype(M, /mob/living/carbon))//... and curing var/mob/living/carbon/C = M C.antibodies |= self.data["antibodies"] @@ -3476,4 +3476,4 @@ datum return // Undefine the alias for REAGENTS_EFFECT_MULTIPLER -#undef REM \ No newline at end of file +#undef REM diff --git a/code/modules/virus2/disease2.dm b/code/modules/virus2/disease2.dm index 644d0f492a6..59c713ae983 100644 --- a/code/modules/virus2/disease2.dm +++ b/code/modules/virus2/disease2.dm @@ -40,7 +40,7 @@ if(stage <= 1 && clicks == 0) // with a certain chance, the mob may become immune to the disease before it starts properly if(prob(5)) mob.antibodies |= antigen // 20% immunity is a good chance IMO, because it allows finding an immune person easily - else + if(mob.radiation > 50) if(prob(1)) majormutate() @@ -65,6 +65,12 @@ for(var/datum/disease2/effectholder/e in effects) e.runeffect(mob,stage) + //Short airborne spread + if(src.spreadtype == "Airborne") + for(var/mob/living/carbon/M in oview(1,mob)) + if(airborne_can_reach(get_turf(mob), get_turf(M))) + infect_virus2(M,src) + //fever mob.bodytemperature = max(mob.bodytemperature, min(310+5*stage ,mob.bodytemperature+5*stage)) clicks+=speed diff --git a/code/modules/virus2/effect.dm b/code/modules/virus2/effect.dm index 85c40c8add6..e1fe0c3ea63 100644 --- a/code/modules/virus2/effect.dm +++ b/code/modules/virus2/effect.dm @@ -290,7 +290,7 @@ stage = 2 activate(var/mob/living/carbon/mob,var/multiplier) mob.say("*cough") - for(var/mob/living/carbon/M in view(2,mob)) + for(var/mob/living/carbon/M in oview(2,mob)) mob.spread_disease_to(M) /datum/disease2/effect/hungry diff --git a/code/modules/virus2/items_devices.dm b/code/modules/virus2/items_devices.dm index 27b01513ea5..5e067f92adc 100644 --- a/code/modules/virus2/items_devices.dm +++ b/code/modules/virus2/items_devices.dm @@ -53,8 +53,8 @@ if(prob(50)) user << "The dish shatters" if(virus2.infectionchance > 0) - for(var/mob/living/carbon/target in view(null, src)) - if(airborne_can_reach(src.loc, target.loc)) + for(var/mob/living/carbon/target in view(1, get_turf(src))) + if(airborne_can_reach(get_turf(src), get_turf(target))) if(get_infection_chance(target)) infect_virus2(target,src.virus2) del src