diff --git a/code/game/objects/alien/facehugger.dm b/code/game/objects/alien/facehugger.dm index a2f77f8c85b..3c35491fa39 100644 --- a/code/game/objects/alien/facehugger.dm +++ b/code/game/objects/alien/facehugger.dm @@ -189,7 +189,8 @@ var/const for(var/mob/living/carbon/alien/alien in world) var/image/activeIndicator = image('alien.dmi', loc = src, icon_state = "facehugger_active") activeIndicator.override = 1 - alien.client.images += activeIndicator + if(alien && alien.client) + alien.client.images += activeIndicator spawn(rand(MIN_ACTIVE_TIME,MAX_ACTIVE_TIME)) GoIdle() diff --git a/code/game/objects/items/item.dm b/code/game/objects/items/item.dm index 7867ca48f8b..d0e9c34b578 100644 --- a/code/game/objects/items/item.dm +++ b/code/game/objects/items/item.dm @@ -221,43 +221,49 @@ if(Metroid) Metroid.SStun = 1 sleep(rand(5,20)) - Metroid.SStun = 0 + if(Metroid) + Metroid.SStun = 0 spawn(0) - Metroid.canmove = 0 - step_away(Metroid, user) - if(prob(25 + power)) - sleep(2) + if(Metroid) + Metroid.canmove = 0 step_away(Metroid, user) - Metroid.canmove = 1 + if(prob(25 + power)) + sleep(2) + if(Metroid && user) + step_away(Metroid, user) + Metroid.canmove = 1 else if(prob(10 + power*2)) + if(Metroid) + if(Metroid.Victim) + if(prob(80) && !Metroid.client) + Metroid.Discipline++ - if(Metroid.Victim) - if(prob(80) && !Metroid.client) - Metroid.Discipline++ + if(Metroid.Discipline == 1) + Metroid.attacked = 0 - if(Metroid.Discipline == 1) - Metroid.attacked = 0 + spawn() + if(Metroid) + Metroid.SStun = 1 + sleep(rand(5,20)) + if(Metroid) + Metroid.SStun = 0 - spawn() - if(Metroid) - Metroid.SStun = 1 - sleep(rand(5,20)) - Metroid.SStun = 0 - - Metroid.Victim = null - Metroid.anchored = 0 + Metroid.Victim = null + Metroid.anchored = 0 spawn(0) - step_away(Metroid, user) - Metroid.canmove = 0 - if(prob(25 + power*4)) - sleep(2) + if(Metroid && user) step_away(Metroid, user) - Metroid.canmove = 1 + Metroid.canmove = 0 + if(prob(25 + power*4)) + sleep(2) + if(Metroid && user) + step_away(Metroid, user) + Metroid.canmove = 1 var/showname = "." diff --git a/code/game/throwing.dm b/code/game/throwing.dm index 588557eebbf..067fe6e7fc9 100644 --- a/code/game/throwing.dm +++ b/code/game/throwing.dm @@ -156,7 +156,7 @@ - while(((((src.x < target.x && dx == EAST) || (src.x > target.x && dx == WEST)) && dist_travelled < range) || (a.has_gravity == 0) || istype(src.loc, /turf/space)) && src.throwing && istype(src.loc, /turf)) + while(src && target &&((((src.x < target.x && dx == EAST) || (src.x > target.x && dx == WEST)) && dist_travelled < range) || (a.has_gravity == 0) || istype(src.loc, /turf/space)) && src.throwing && istype(src.loc, /turf)) // only stop when we've gone the whole distance (or max throw range) and are on a non-space tile, or hit something, or hit the end of the map, or someone picks it up if(error < 0) var/atom/step = get_step(src, dy) diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index 584bf89c6af..603d8a495e3 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -76,7 +76,7 @@ var/client/C = M.client var/icon/tempHud = 'hud.dmi' for(var/mob/living/carbon/human/perp in view(M)) - + if(!C) continue var/perpname = "wot" if(perp.wear_id) C.images += image(tempHud,perp,"hud[ckey(perp:wear_id:GetJobName())]")