mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-06-22 22:54:33 +01:00
b942cec267
## About The Pull Request Fixes #94778 There are a bunch of places where we dismember a limb (or head) and then do something with it assuming that we actually dismembered it, but that isn't actually true. Many of these places then move your not-actually-dismembered head somewhere else. If you have an unremovable limb (such as if you have TRAIT_NODISMEMBER) this means that it actually gets removed anyway because it's physically moved somewhere else. In all of these cases, if we failed to dismember the limb we should just leave it alone. I left anything where after dismembering the limb it immediately deletes it in though because those are generally supposed to be invariably fatal. ## Changelog 🆑 fix: Chainsaws can't behead people with unremovable heads. fix: You can only put your own head on a spear or into a box if it is possible to remove your head. fix: Heretic rifts can only remove your arms if your arms can be removed. fix: Paperwork can only cut off your head if your head can be cut off. fix: Smite being reflected can only blow off your arm if your arm can be removed. /🆑
57 lines
2.0 KiB
Plaintext
57 lines
2.0 KiB
Plaintext
/// The common cardboard box.
|
|
/obj/item/storage/box
|
|
name = "box"
|
|
desc = "It's just an ordinary box."
|
|
icon = 'icons/obj/storage/box.dmi'
|
|
icon_state = "box"
|
|
inhand_icon_state = "syringe_kit"
|
|
lefthand_file = 'icons/mob/inhands/equipment/medical_lefthand.dmi'
|
|
righthand_file = 'icons/mob/inhands/equipment/medical_righthand.dmi'
|
|
resistance_flags = FLAMMABLE
|
|
drop_sound = 'sound/items/handling/cardboard_box/cardboardbox_drop.ogg'
|
|
pickup_sound = 'sound/items/handling/cardboard_box/cardboardbox_pickup.ogg'
|
|
storage_type = /datum/storage/box
|
|
|
|
/// What material do we get when we fold this box?
|
|
var/foldable_result = /obj/item/stack/sheet/cardboard
|
|
/// What drawing will we get on the face of the box?
|
|
var/illustration = "writing"
|
|
|
|
/obj/item/storage/box/Initialize(mapload)
|
|
. = ..()
|
|
if(foldable_result == /obj/item/stack/sheet/cardboard)
|
|
set_custom_materials(list(/datum/material/cardboard = SHEET_MATERIAL_AMOUNT))
|
|
update_appearance()
|
|
|
|
/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!"))
|
|
if (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
|
|
|
|
/obj/item/storage/box/update_overlays()
|
|
. = ..()
|
|
if(illustration)
|
|
. += illustration
|
|
|
|
/obj/item/storage/box/attack_self(mob/user)
|
|
..()
|
|
|
|
if(!foldable_result || (flags_1 & HOLOGRAM_1))
|
|
return
|
|
if(contents.len)
|
|
balloon_alert(user, "items inside!")
|
|
return
|
|
if(!ispath(foldable_result))
|
|
return
|
|
|
|
var/obj/item/result = new foldable_result(user.drop_location())
|
|
balloon_alert(user, "folded")
|
|
qdel(src)
|
|
user.put_in_hands(result)
|