diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm
index cf045d0464a..878714e381c 100644
--- a/code/game/gamemodes/changeling/changeling_powers.dm
+++ b/code/game/gamemodes/changeling/changeling_powers.dm
@@ -35,29 +35,29 @@
//Helper proc. Does all the checks and stuff for us to avoid copypasta
/mob/proc/changeling_power(var/required_chems=0, var/required_dna=0, var/max_genetic_damage=100, var/max_stat=0)
- if(!src) return
- if(!src.mind) return
- if(!iscarbon(src)) return
+ if(!usr) return
+ if(!usr.mind) return
+ if(!iscarbon(usr)) return
- var/datum/changeling/changeling = src.mind.changeling
+ var/datum/changeling/changeling = usr.mind.changeling
if(!changeling)
- world.log << "[src] has the changeling_transform() verb but is not a changeling."
+ world.log << "[usr] has the changeling_transform() verb but is not a changeling."
return
if(usr.stat > max_stat)
- src << "We are incapacitated."
+ usr << "We are incapacitated."
return
if(changeling.absorbed_dna.len < required_dna)
- src << "We require at least [required_dna] samples of compatible DNA."
+ usr << "We require at least [required_dna] samples of compatible DNA."
return
if(changeling.chem_charges < required_chems)
- src << "We require at least [required_chems] units of chemicals to do that!"
+ usr << "We require at least [required_chems] units of chemicals to do that!"
return
if(changeling.geneticdamage > max_genetic_damage)
- src << "Our geneomes are still reassembling. We need time to recover first."
+ usr << "Our geneomes are still reassembling. We need time to recover first."
return
return changeling
diff --git a/code/game/machinery/camera/tracking.dm b/code/game/machinery/camera/tracking.dm
index 8df77e16708..7d7a1d8ef04 100644
--- a/code/game/machinery/camera/tracking.dm
+++ b/code/game/machinery/camera/tracking.dm
@@ -23,9 +23,12 @@
for(var/mob/living/M in mob_list)
// Easy checks first.
// Don't detect mobs on Centcom. Since the wizard den is on Centcomm, we only need this.
- if(M.loc.z == 2)
+ var/turf/T = get_turf(M)
+ if(!T)
continue
- if(M.loc.z > 6)
+ if(T.z == 2)
+ continue
+ if(T.z > 6)
continue
if(M == usr)
continue
diff --git a/code/modules/mob/living/carbon/alien/larva/life.dm b/code/modules/mob/living/carbon/alien/larva/life.dm
index bb516d06777..95b5ffe6d91 100644
--- a/code/modules/mob/living/carbon/alien/larva/life.dm
+++ b/code/modules/mob/living/carbon/alien/larva/life.dm
@@ -216,11 +216,12 @@
//If there are alien weeds on the ground then heal if needed or give some toxins
if(locate(/obj/effect/alien/weeds) in loc)
- if(health >= 25)
- adjustToxLoss(5)
+ if(health >= maxHealth)
+ adjustToxLoss(plasma_rate)
else
- adjustBruteLoss(-5)
- adjustFireLoss(-5)
+ adjustBruteLoss(-heal_rate)
+ adjustFireLoss(-heal_rate)
+ adjustOxyLoss(-heal_rate)
return
diff --git a/code/modules/mob/living/silicon/ai/freelook/chunk.dm b/code/modules/mob/living/silicon/ai/freelook/chunk.dm
index 0a9bbf44dfc..5618c347932 100644
--- a/code/modules/mob/living/silicon/ai/freelook/chunk.dm
+++ b/code/modules/mob/living/silicon/ai/freelook/chunk.dm
@@ -88,6 +88,8 @@
obscured -= t.obscured
for(var/eye in seenby)
var/mob/aiEye/m = eye
+ if(!m || !m.ai)
+ continue
if(m.ai.client)
m.ai.client.images -= t.obscured
@@ -100,8 +102,9 @@
obscured += t.obscured
for(var/eye in seenby)
var/mob/aiEye/m = eye
- if(!m)
+ if(!m || !m.ai)
seenby -= m
+ continue
if(m.ai.client)
m.ai.client.images += t.obscured