diff --git a/code/game/objects/items/storage/boxes.dm b/code/game/objects/items/storage/boxes.dm index 6a5b8bd2ca3..5a34bee3f08 100644 --- a/code/game/objects/items/storage/boxes.dm +++ b/code/game/objects/items/storage/boxes.dm @@ -41,12 +41,12 @@ /obj/item/storage/box/suicide_act(mob/living/carbon/user) var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) if(myhead) - user.visible_message(span_suicide("[user] puts [user.p_their()] head into \the [src], and begins closing it! It looks like [user.p_theyre()] trying to commit suicide!")) + user.visible_message(span_suicide("[user] puts [user.p_their()] head into \the [src] and begins closing it! It looks like [user.p_theyre()] trying to commit suicide!")) myhead.dismember() - myhead.forceMove(src)//force your enemies to kill themselves with your head collection box! + myhead.forceMove(src) //force your enemies to kill themselves with your head collection box! playsound(user, "desecration-01.ogg", 50, TRUE, -1) return BRUTELOSS - user.visible_message(span_suicide("[user] beating [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) + user.visible_message(span_suicide("[user] is beating [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) return BRUTELOSS /obj/item/storage/box/update_overlays() diff --git a/code/game/objects/items/storage/firstaid.dm b/code/game/objects/items/storage/firstaid.dm index dc0e5f3a33e..69b0b72d57a 100644 --- a/code/game/objects/items/storage/firstaid.dm +++ b/code/game/objects/items/storage/firstaid.dm @@ -640,7 +640,17 @@ return ..() /obj/item/storage/organbox/suicide_act(mob/living/carbon/user) - user.visible_message(span_suicide("[user] is putting [user.p_theyre()] head inside the [src], it looks like [user.p_theyre()] trying to commit suicide!")) + if(HAS_TRAIT(user, TRAIT_RESISTCOLD)) //if they're immune to cold, just do the box suicide + var/obj/item/bodypart/head/myhead = user.get_bodypart(BODY_ZONE_HEAD) + if(myhead) + user.visible_message(span_suicide("[user] puts [user.p_their()] head into \the [src] and begins closing it! It looks like [user.p_theyre()] trying to commit suicide!")) + myhead.dismember() + myhead.forceMove(src) //force your enemies to kill themselves with your head collection box! + playsound(user, "desecration-01.ogg", 50, TRUE, -1) + return BRUTELOSS + user.visible_message(span_suicide("[user] is beating [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) + return BRUTELOSS + user.visible_message(span_suicide("[user] is putting [user.p_their()] head inside the [src], it looks like [user.p_theyre()] trying to commit suicide!")) user.adjust_bodytemperature(-300) user.apply_status_effect(/datum/status_effect/freon) - return (OXYLOSS) + return FIRELOSS diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index 5595dbe666f..20238f5e577 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -257,4 +257,20 @@ if(cell) cell.emp_act(severity) +/obj/item/clothing/head/helmet/space/suicide_act(mob/living/carbon/user) + var/datum/gas_mixture/environment = user.loc.return_air() + if(HAS_TRAIT(user, TRAIT_RESISTCOLD) || !environment || environment.return_temperature() >= user.get_body_temp_cold_damage_limit()) + user.visible_message(span_suicide("[user] is beating [user.p_them()]self with \the [src]! It looks like [user.p_theyre()] trying to commit suicide!")) + return BRUTELOSS + user.say("You want proof? I'll give you proof! Here's proof of what'll happen to you if you stay here with your stuff!", forced = "space helmet suicide") + user.visible_message(span_suicide("[user] is removing [user.p_their()] helmet to make a point! Yo, holy shit, [user.p_they()] dead!")) //the use of p_they() instead of p_their() here is intentional + user.adjust_bodytemperature(-300) + user.apply_status_effect(/datum/status_effect/freon) + if(!ishuman(user)) + return FIRELOSS + var/mob/living/carbon/human/humanafterall = user + var/datum/disease/advance/cold/pun = new //in the show, arnold survives his stunt, but catches a cold because of it + humanafterall.ForceContractDisease(pun, FALSE, TRUE) //this'll show up on health analyzers and the like + return FIRELOSS + #undef THERMAL_REGULATOR_COST