Added screen alerts (#22051)

Ports screen alerts from CM13. This enables an immediate reference to
whether you are cuffed or buckled. It also provides an easy way to get
out of said situation by simply clicking on the alert.

<img width="430" height="454" alt="image"
src="https://github.com/user-attachments/assets/0c20abf2-0901-49e0-ac29-492ba7c6dbe5"
/>


### Asset Licenses
The following assets that **have not** been created by myself are
included in this PR:

| Path | Original Author | License |
| --- | --- | --- |
| icons/mob/screen_alert.dmi (buckle, succumb) | CM13Devs (CM-13) |
CC-BY-SA 3.0 |
This commit is contained in:
Cody Brittain
2026-03-23 09:16:23 +00:00
committed by GitHub
parent f4f41369d5
commit 77aca119d9
33 changed files with 428 additions and 77 deletions
+1 -3
View File
@@ -195,9 +195,7 @@
SPAN_NOTICE("You cut \the [C]'s restraints with \the [src]!"),\
SPAN_NOTICE("You hear cable being cut."))
C.handcuffed = null
if(C.buckled_to?.buckle_require_restraints)
C.buckled_to.unbuckle()
C.update_inv_handcuffed()
C.handcuff_update()
return
else
..()
+2 -6
View File
@@ -97,10 +97,6 @@
user.do_attack_animation(H)
user.visible_message(SPAN_DANGER("\The [user] has put [cuff_type] on \the [H]!"))
if(!legcuff)
target.drop_r_hand()
target.drop_l_hand()
// Apply cuffs.
var/obj/item/handcuffs/cuffs = src
if(dispenser)
@@ -112,10 +108,10 @@
if(!legcuff)
target.handcuffed = cuffs
target.update_inv_handcuffed()
target.handcuff_update()
else
target.legcuffed = cuffs
target.update_inv_legcuffed()
target.legcuff_update()
return TRUE
/mob/living/carbon/human/RestrainedClickOn(var/atom/A)
@@ -29,9 +29,7 @@
if(C_imp_in.handcuffed)
var/obj/item/W = C_imp_in.handcuffed
C_imp_in.handcuffed = null
if(C_imp_in.buckled_to && C_imp_in.buckled_to.buckle_require_restraints)
C_imp_in.buckled_to.unbuckle()
C_imp_in.update_inv_handcuffed()
C_imp_in.handcuff_update()
if(C_imp_in.client)
C_imp_in.client.screen -= W
if(W)
@@ -42,7 +40,7 @@
if(C_imp_in.legcuffed)
var/obj/item/W = C_imp_in.legcuffed
C_imp_in.legcuffed = null
C_imp_in.update_inv_legcuffed()
C_imp_in.legcuff_update()
if(C_imp_in.client)
C_imp_in.client.screen -= W
if(W)