minor deathmatch fixes (#91192)

## About The Pull Request
split personality may not roll if the target is in a deathmatch area
bolt of possession deals 25 brain damage if the target is in a
deathmatch area (8 hits for brain death)
removed a camera from the meta brig map
Disciple of Pete has 9 tile range signalers instead (that nobody uses
anyway lmao because you cant use them for minibombs or the other
grenades)

## Why It's Good For The Game

fixes #91171
fixes #90912
fixes #89212

## Changelog
🆑
fix: removed a camera from the deathmatch meta brig map, disciple of
pete has low-range signalers, deathmatch bolt of possession deals brain
damage instead, split personality may not roll in deathmatch
/🆑
This commit is contained in:
jimmyl
2025-05-25 11:08:00 +02:00
committed by GitHub
parent bdb79c57ec
commit 53f84b5e51
5 changed files with 14 additions and 7 deletions

View File

@@ -27,10 +27,6 @@
/area/space) /area/space)
"ao" = ( "ao" = (
/obj/structure/rack, /obj/structure/rack,
/obj/machinery/camera/motion{
c_tag = "Armory - Internal";
dir = 4
},
/obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{ /obj/effect/turf_decal/tile/blue{
dir = 8 dir = 8

View File

@@ -16,7 +16,7 @@
/datum/brain_trauma/severe/split_personality/on_gain() /datum/brain_trauma/severe/split_personality/on_gain()
var/mob/living/brain_owner = owner var/mob/living/brain_owner = owner
if(brain_owner.stat == DEAD || !GET_CLIENT(brain_owner)) //No use assigning people to a corpse or braindead if(brain_owner.stat == DEAD || !GET_CLIENT(brain_owner) || istype(get_area(brain_owner), /area/deathmatch)) //No use assigning people to a corpse or braindead
return FALSE return FALSE
. = ..() . = ..()
make_backseats() make_backseats()

View File

@@ -26,6 +26,8 @@
var/hearing_range = 1 var/hearing_range = 1
/// String containing the last piece of logging data relating to when this signaller has received a signal. /// String containing the last piece of logging data relating to when this signaller has received a signal.
var/last_receive_signal_log var/last_receive_signal_log
/// Signal range, see /datum/radio_frequency/proc/post_signal
var/range = 0 //Everywhere
/obj/item/assembly/signaler/suicide_act(mob/living/carbon/user) /obj/item/assembly/signaler/suicide_act(mob/living/carbon/user)
user.visible_message(span_suicide("[user] eats \the [src]! If it is signaled, [user.p_they()] will die!")) user.visible_message(span_suicide("[user] eats \the [src]! If it is signaled, [user.p_they()] will die!"))
@@ -153,7 +155,7 @@
add_to_signaler_investigate_log(logging_data) add_to_signaler_investigate_log(logging_data)
var/datum/signal/signal = new(list("code" = code), logging_data = logging_data) var/datum/signal/signal = new(list("code" = code), logging_data = logging_data)
radio_connection.post_signal(src, signal) radio_connection.post_signal(src, signal, range = range)
/obj/item/assembly/signaler/receive_signal(datum/signal/signal) /obj/item/assembly/signaler/receive_signal(datum/signal/signal)
. = FALSE . = FALSE
@@ -203,3 +205,8 @@
if(ispAI(user)) if(ispAI(user))
return TRUE return TRUE
. = ..() . = ..()
/obj/item/assembly/signaler/low_range
name = "low-power remote signaling device"
desc = "Used to remotely activate devices, within a small range of 9 tiles. Allows for syncing when using a secure signaler on another."
range = 9

View File

@@ -645,7 +645,7 @@
r_pocket = /obj/item/grenade/syndieminibomb r_pocket = /obj/item/grenade/syndieminibomb
implants = list(/obj/item/implant/explosive/macro) implants = list(/obj/item/implant/explosive/macro)
backpack_contents = list( backpack_contents = list(
/obj/item/assembly/signaler = 10, /obj/item/assembly/signaler/low_range = 10,
) )
/datum/outfit/deathmatch_loadout/tider /datum/outfit/deathmatch_loadout/tider

View File

@@ -353,6 +353,10 @@
/obj/projectile/magic/wipe/on_hit(mob/living/carbon/target, blocked = 0, pierce_hit) /obj/projectile/magic/wipe/on_hit(mob/living/carbon/target, blocked = 0, pierce_hit)
. = ..() . = ..()
if(iscarbon(target)) if(iscarbon(target))
if(istype(get_area(target), /area/deathmatch))
target.adjustOrganLoss(ORGAN_SLOT_BRAIN, 25) // Roughly 8 hits to kill
target.visible_message(span_warning("[target] grips their head in pain!"))
return BULLET_ACT_HIT
for(var/x in target.get_traumas())//checks to see if the victim is already going through possession for(var/x in target.get_traumas())//checks to see if the victim is already going through possession
if(istype(x, /datum/brain_trauma/special/imaginary_friend/trapped_owner)) if(istype(x, /datum/brain_trauma/special/imaginary_friend/trapped_owner))
target.visible_message(span_warning("[src] vanishes on contact with [target]!")) target.visible_message(span_warning("[src] vanishes on contact with [target]!"))