diff --git a/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm b/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm index 725ec8c9575..1502cef27f1 100644 --- a/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm +++ b/code/modules/mob/living/simple_animal/constructs/constructs/cult_construct.dm @@ -44,6 +44,8 @@ var/health_prefix = "" appearance_flags = NO_CLIENT_COLOR|KEEP_TOGETHER + psi_pingable = FALSE + /mob/living/simple_animal/construct/cultify() return diff --git a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm index 77985304bf5..c4807e8aa00 100644 --- a/code/modules/mob/living/simple_animal/friendly/spiderbot.dm +++ b/code/modules/mob/living/simple_animal/friendly/spiderbot.dm @@ -46,6 +46,8 @@ speak_emote = list("beeps","clicks","chirps") universal_understand = TRUE + psi_pingable = FALSE + /mob/living/simple_animal/spiderbot/Initialize() . = ..() add_language(LANGUAGE_TCB) diff --git a/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm b/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm index 28626622231..e2521902c9c 100644 --- a/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm +++ b/code/modules/mob/living/simple_animal/hostile/commanded/ives.dm @@ -49,6 +49,8 @@ destroy_surroundings = FALSE attack_emote = "blares a tiny siren" + psi_pingable = FALSE + /mob/living/simple_animal/hostile/commanded/baby_harvester/get_bullet_impact_effect_type(var/def_zone) return BULLET_IMPACT_METAL diff --git a/code/modules/mob/living/simple_animal/hostile/faithless.dm b/code/modules/mob/living/simple_animal/hostile/faithless.dm index 8982049efff..99237d206f6 100644 --- a/code/modules/mob/living/simple_animal/hostile/faithless.dm +++ b/code/modules/mob/living/simple_animal/hostile/faithless.dm @@ -38,6 +38,8 @@ flying = TRUE + psi_pingable = FALSE + /mob/living/simple_animal/hostile/faithless/Allow_Spacemove(var/check_drift = 0) return 1 diff --git a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot.dm b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot.dm index 30f55b7a096..38443ae17ce 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot.dm @@ -32,6 +32,7 @@ pass_flags = PASSTABLE attack_emote = "focuses on" var/mob/living/simple_animal/hostile/hivebotbeacon/linked_parent = null + psi_pingable = FALSE /mob/living/simple_animal/hostile/hivebot/do_animate_chat(var/message, var/datum/language/language, var/small, var/list/show_to, var/duration, var/list/message_override) INVOKE_ASYNC(src, /atom/movable/proc/animate_chat, message, language, small, show_to, duration) diff --git a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon.dm b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon.dm index 7783c78adf3..d149a04858d 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_beacon.dm @@ -48,6 +48,7 @@ var/list/close_destinations = list() var/area/latest_area attack_emote = "focuses on" + psi_pingable = FALSE /mob/living/simple_animal/hostile/hivebotbeacon/incendiary projectiletype = /obj/item/projectile/beam/hivebot/incendiary diff --git a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester.dm b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester.dm index 99b24c93dc5..484add5d94b 100644 --- a/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester.dm +++ b/code/modules/mob/living/simple_animal/hostile/hivebots/hivebot_harvester.dm @@ -42,6 +42,8 @@ mob_bump_flag = HEAVY mob_swap_flags = ~HEAVY mob_push_flags = 0 + + psi_pingable = FALSE /mob/living/simple_animal/hostile/retaliate/hivebotharvester/Initialize(mapload,mob/living/simple_animal/hostile/hivebot/hivebotbeacon) if(hivebotbeacon) diff --git a/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm b/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm index c29dd613f31..34f536a7f07 100644 --- a/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/icarus_drone.dm @@ -58,6 +58,8 @@ see_in_dark = 8 see_invisible = SEE_INVISIBLE_NOLIGHTING + psi_pingable = FALSE + /mob/living/simple_animal/hostile/icarus_drone/Initialize() . = ..() diff --git a/code/modules/mob/living/simple_animal/hostile/krampus.dm b/code/modules/mob/living/simple_animal/hostile/krampus.dm index ad6719862c6..1cc67cfc12d 100644 --- a/code/modules/mob/living/simple_animal/hostile/krampus.dm +++ b/code/modules/mob/living/simple_animal/hostile/krampus.dm @@ -43,6 +43,7 @@ var/is_punishing = FALSE + psi_pingable = FALSE /mob/living/simple_animal/hostile/krampus/death(gibbed) ..() diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/cavern.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/cavern.dm index 4c5ef98db8b..24070eb5f28 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/cavern.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/cavern.dm @@ -110,6 +110,7 @@ light_range = 10 light_wedge = LIGHT_WIDE see_in_dark = 8 + psi_pingable = FALSE faction = "sol" diff --git a/code/modules/mob/living/simple_animal/hostile/rogue_maint_drone.dm b/code/modules/mob/living/simple_animal/hostile/rogue_maint_drone.dm index af50c12a5e4..eea15669683 100644 --- a/code/modules/mob/living/simple_animal/hostile/rogue_maint_drone.dm +++ b/code/modules/mob/living/simple_animal/hostile/rogue_maint_drone.dm @@ -20,6 +20,8 @@ mob_size = MOB_TINY var/image/eye_overlay + psi_pingable = FALSE + /mob/living/simple_animal/hostile/rogue_drone/Initialize() . = ..() name = "[initial(name)] ([rand(100, 999)])" diff --git a/code/modules/mob/living/simple_animal/hostile/tree.dm b/code/modules/mob/living/simple_animal/hostile/tree.dm index 91b9dbbe44e..293d280dee5 100644 --- a/code/modules/mob/living/simple_animal/hostile/tree.dm +++ b/code/modules/mob/living/simple_animal/hostile/tree.dm @@ -39,6 +39,8 @@ faction = "carp" + psi_pingable = FALSE + /mob/living/simple_animal/hostile/tree/FindTarget() . = ..() if(.) diff --git a/code/modules/mob/living/simple_animal/hostile/vannatusk.dm b/code/modules/mob/living/simple_animal/hostile/vannatusk.dm index 88489f6f644..2ad2ea9ba3f 100644 --- a/code/modules/mob/living/simple_animal/hostile/vannatusk.dm +++ b/code/modules/mob/living/simple_animal/hostile/vannatusk.dm @@ -42,6 +42,8 @@ var/crystal_harvested = FALSE + psi_pingable = FALSE + /mob/living/simple_animal/hostile/vannatusk/Initialize() . = ..() set_light(1.2, 3, LIGHT_COLOR_BLUE) diff --git a/code/modules/mob/living/simple_animal/hostile/viscerator.dm b/code/modules/mob/living/simple_animal/hostile/viscerator.dm index 3cd9fd57397..52cb96a1521 100644 --- a/code/modules/mob/living/simple_animal/hostile/viscerator.dm +++ b/code/modules/mob/living/simple_animal/hostile/viscerator.dm @@ -30,6 +30,8 @@ flying = TRUE attack_emote = "buzzes at" + psi_pingable = FALSE + /mob/living/simple_animal/hostile/viscerator/death() ..(null,"is smashed into pieces!") var/T = get_turf(src) diff --git a/code/modules/mob/living/simple_animal/illusion.dm b/code/modules/mob/living/simple_animal/illusion.dm index 8cf3685e1cc..e4f0f772dd3 100644 --- a/code/modules/mob/living/simple_animal/illusion.dm +++ b/code/modules/mob/living/simple_animal/illusion.dm @@ -10,6 +10,8 @@ var/atom/movable/copying = null // The thing we're trying to look like. var/realistic = FALSE // If true, things like bullets and weapons will hit it, to be a bit more convincing from a distance. + psi_pingable = FALSE + /mob/living/simple_animal/illusion/update_icon() // We don't want the appearance changing AT ALL unless by copy_appearance(). return diff --git a/code/modules/mob/living/simple_animal/shade.dm b/code/modules/mob/living/simple_animal/shade.dm index 9afbfe0a8c8..99815bae230 100644 --- a/code/modules/mob/living/simple_animal/shade.dm +++ b/code/modules/mob/living/simple_animal/shade.dm @@ -32,6 +32,8 @@ appearance_flags = NO_CLIENT_COLOR|KEEP_TOGETHER var/obj/item/residue = /obj/item/ectoplasm + psi_pingable = FALSE + /mob/living/simple_animal/shade/cultify() return diff --git a/code/modules/mob/living/simple_animal/simple_animal.dm b/code/modules/mob/living/simple_animal/simple_animal.dm index 7f09dce3e3d..cd0c30a63ab 100644 --- a/code/modules/mob/living/simple_animal/simple_animal.dm +++ b/code/modules/mob/living/simple_animal/simple_animal.dm @@ -134,6 +134,8 @@ var/list/butchering_products //if anything else is created when butchering this creature, like bones and leather + var/psi_pingable = TRUE + /mob/living/simple_animal/proc/update_nutrition_stats() nutrition_step = mob_size * 0.03 * metabolic_factor diff --git a/code/modules/psionics/faculties/coercion.dm b/code/modules/psionics/faculties/coercion.dm index 97e54d5b526..e93f104b757 100644 --- a/code/modules/psionics/faculties/coercion.dm +++ b/code/modules/psionics/faculties/coercion.dm @@ -301,7 +301,7 @@ var/turf/T = get_turf(L) if(!T || L == user || L.stat == DEAD || L.invisibility == INVISIBILITY_LEVEL_TWO) continue - if(L.is_psi_blocked()) + if(!L.is_psi_pingable()) continue var/image/ping_image = image(icon = 'icons/effects/effects.dmi', icon_state = "sonar_ping", loc = our_turf, layer = OBFUSCATION_LAYER + 0.1) pixel_shift_to_turf(ping_image, our_turf, T) diff --git a/code/modules/psionics/mob/mob_helpers.dm b/code/modules/psionics/mob/mob_helpers.dm index bcd6958778e..0d7393cc0f2 100644 --- a/code/modules/psionics/mob/mob_helpers.dm +++ b/code/modules/psionics/mob/mob_helpers.dm @@ -19,4 +19,10 @@ for (var/obj/item/implant/mindshield/I in src) if (I.implanted) return SPAN_WARNING("[src]'s mind is inaccessible, like hitting a brick wall.") - return FALSE \ No newline at end of file + return FALSE + +/mob/living/proc/is_psi_pingable() + return !is_psi_blocked() + +/mob/living/simple_animal/is_psi_pingable() + return psi_pingable diff --git a/html/changelogs/PsiPingMobs.yml b/html/changelogs/PsiPingMobs.yml new file mode 100644 index 00000000000..dcbc830ffd2 --- /dev/null +++ b/html/changelogs/PsiPingMobs.yml @@ -0,0 +1,6 @@ +author: TheGreyWOlf + +delete-after: True + +changes: + - bugfix: "Skrell psi ping can now detect simplemobs."