mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-22 20:48:56 +01:00
Security Pen and Penlight improvement (#79299)
## About The Pull Request Improves penlight sprite and code. A new type of pen has been introduced - the Security Pen. This pen is red and can create a holograph around a person, similar to a medical penlight. The holograph prompts the person to surrender for 30 seconds, and the holograph itself is visible for 5. There is a 30-second cooldown between usage. Holosign itself does nothing except be visual, just like medical holosign **(DO NOT MISTAKE HOLOSIGNS FOR HOLOBARRIERS)** https://github.com/tgstation/tgstation/assets/42353186/1ee5f794-7218-4e52-b04f-3ebb50bd224a Now every Security member spawns with a Security Pen in their PDA. Now you can print Security Pens at Security Techfab, and Penlights at Medical Techfab. ## Why It's Good For The Game The only way to prompt someone to perform the surrender emote is by holding them up with a gun. However, this mechanic can be quite unreliable, even after updates, especially if the person is moving. As a result, many players are unaware of how to prompt the surrender emote or even about its existence, so they don't know they can trigger it themselves by typing "*surrender". This enables non-lethal arrests without stun batons or other tools. Sprites are a significant improvement as the previous penlight sprites were outdated. ## Changelog 🆑 qol: There is now a more convenient way to prompt surrender to emote - the Security Pen. Each officer is equipped with one in their PDA. Simply click someone with it to prompt a 30-second surrender. They are printable at Security Techfab as well. qol: Penlights now are printable at Medical Techfab. image: Penlights got a new cleaner sprite to replace its ancient one code: The code for Penlight's holographic sign has been improved. /🆑
This commit is contained in:
@@ -400,3 +400,44 @@
|
||||
. = ..()
|
||||
icon_state = "[initial(icon_state)][HAS_TRAIT(src, TRAIT_TRANSFORM_ACTIVE) ? "_out" : null]"
|
||||
inhand_icon_state = initial(inhand_icon_state) //since transforming component switches the icon.
|
||||
|
||||
//The Security holopen
|
||||
/obj/item/pen/red/security
|
||||
name = "security pen"
|
||||
desc = "This is a red ink pen exclusively provided to members of the Security Department. Its opposite end features a built-in holographic projector designed for issuing arrest prompts to individuals."
|
||||
icon_state = "pen_sec"
|
||||
COOLDOWN_DECLARE(holosign_cooldown)
|
||||
|
||||
/obj/item/pen/red/security/examine(mob/user)
|
||||
. = ..()
|
||||
. += span_notice("To initiate the surrender prompt, simply click on an individual within your proximity.")
|
||||
|
||||
//Code from the medical penlight
|
||||
/obj/item/pen/red/security/afterattack(atom/target, mob/living/user, proximity)
|
||||
. = ..()
|
||||
if(!COOLDOWN_FINISHED(src, holosign_cooldown))
|
||||
balloon_alert(user, "not ready!")
|
||||
return
|
||||
|
||||
var/target_turf = get_turf(target)
|
||||
var/mob/living/living_target = locate(/mob/living) in target_turf
|
||||
|
||||
if(!living_target || (living_target == user))
|
||||
return
|
||||
|
||||
living_target.apply_status_effect(/datum/status_effect/surrender_timed)
|
||||
to_chat(living_target, span_userdanger("[user] requests your immediate surrender! You are given 30 seconds to comply!"))
|
||||
new /obj/effect/temp_visual/security_holosign(target_turf, user) //produce a holographic glow
|
||||
COOLDOWN_START(src, holosign_cooldown, 30 SECONDS)
|
||||
|
||||
/obj/effect/temp_visual/security_holosign
|
||||
name = "security holosign"
|
||||
desc = "A small holographic glow that indicates you're under arrest."
|
||||
icon_state = "sec_holo"
|
||||
duration = 60
|
||||
|
||||
/obj/effect/temp_visual/security_holosign/Initialize(mapload, creator)
|
||||
. = ..()
|
||||
playsound(loc, 'sound/machines/chime.ogg', 50, FALSE) //make some noise!
|
||||
if(creator)
|
||||
visible_message(span_danger("[creator] created a security hologram!"))
|
||||
|
||||
Reference in New Issue
Block a user