diff --git a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm index 4295734bbdb..20fa09a3712 100644 --- a/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm +++ b/code/modules/mob/living/simple_mob/subtypes/animal/alien animals/stardog.dm @@ -969,9 +969,7 @@ valid_mobs = list( //Dog map spawns the dogs. It's not hard to understand! list( - /mob/living/simple_mob/vore/woof, - /mob/living/simple_mob/vore/woof/hostile/ranged, - /mob/living/simple_mob/vore/woof/hostile/terrible + /mob/living/simple_mob/vore/woof ) = 100, list( /mob/living/simple_mob/vore/wolf, @@ -1205,6 +1203,8 @@ for(var/thing in t.contents) if(istype(thing, /obj/effect/dog_eye)) //We can have eyes in our eyes, it's fine continue + if(isobserver(thing)) //Ghosts aren't real + continue if(isobj(thing) || ismob(thing)) close = TRUE //AAAAAAAAAAAAAAAUUUUUUUUGHHHHHHHHH ITS IN MY EYES HELP @@ -1266,6 +1266,7 @@ var/teleport_sound = 'sound/vore/schlorp.ogg' //The sound that plays when we use the teleporter. Respects vore sound preferences. var/teleport_message = "" var/check_keys = FALSE + var/check_prefs = TRUE /obj/effect/dog_teleporter/Initialize() . = ..() @@ -1310,7 +1311,7 @@ var/mob/living/L = null if(isliving(AM)) L = AM - if(!L.devourable || !L.allowmobvore) + if(check_prefs && (!L.devourable || !L.allowmobvore)) return if(check_keys && !L.ckey) return @@ -1318,19 +1319,20 @@ L.Weaken(3) if(target.reciever) //We don't have to worry AM.unbuckle_all_mobs(TRUE) - playsound(src, teleport_sound, vol = 100, vary = 1, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) AM.forceMove(get_turf(target)) extra(AM) return var/turf/place = locate(target.x, (target.y - 1), target.z) //If the target is also a teleporter, let's pick a place to set them down next to the target. - L.Weaken(3) //Setting them ON the target will probably make an infinite loop, and that seems lame. + //Setting them ON the target will probably make an infinite loop, and that seems lame. AM.unbuckle_all_mobs(TRUE) - playsound(src, teleport_sound, vol = 100, vary = 1, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) AM.forceMove(place) extra(AM) /obj/effect/dog_teleporter/proc/extra(atom/movable/AM as mob|obj) var/go = FALSE + if(isobserver(AM)) + return + playsound(src, teleport_sound, vol = 100, vary = 1, preference = /datum/client_preference/eating_noises, volume_channel = VOLUME_CHANNEL_VORE) if(isliving(AM)) var/mob/living/L = AM if(teleport_message && L.client) @@ -1399,6 +1401,7 @@ pixel_x = -16 pixel_y = -16 check_keys = TRUE + check_prefs = FALSE //We don't have to worry about it on the way out /obj/effect/dog_teleporter/mouth_return name = "light" @@ -1408,6 +1411,7 @@ pixel_x = -16 pixel_y = -16 check_keys = TRUE + check_prefs = FALSE //We don't have to worry about it on the way out /obj/effect/dog_teleporter/reciever/exit //tee hee name = "exit"