From 94761a4283dbdda8c71384989005cb5cb2a21732 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Tue, 24 Dec 2024 18:56:57 -0500 Subject: [PATCH 01/28] voucher sprites --- .../icons/obj/items/security_voucher.dmi | Bin 0 -> 1063 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 monkestation/icons/obj/items/security_voucher.dmi diff --git a/monkestation/icons/obj/items/security_voucher.dmi b/monkestation/icons/obj/items/security_voucher.dmi new file mode 100644 index 0000000000000000000000000000000000000000..a2f9d62a940211251c930206c4fbce3827b7c96d GIT binary patch literal 1063 zcmV+?1laqDP)V=-0C)kFkG%?mKoErMyQf&R5BY1;1SMF+SCB(DxrL}`(6&k&EFE&u=nQAtEWRCwC$ z*-dB@K@UDQLke)W0Gkq!mgUX+>(%gJ7YNH{~tc&HnGsCKKPg?9OK4&3dwG5Xz!aJ@#TdTRDN9mz2rNNX4&82O-qThIo*yx z^4gkeXdii6W*I4-31K;!8257li!RqSPu+g_)3m`BKSA15^`xm$H<6Q2CL=N;#I`EgtNg`<(6&JWd( zM(Q~Lh8DtYe%rqU5di}+)DReVf3IfY>b2}l$3foi>h9rHaPv;U{D^>o7-|SN`E9QS zj36*l6LZT(#9+ROcfw8eoj@qlWM+2Rh_IXA@nXmggxl)-1!0!o^=i;A#Q4;-koALI z2&?>_m&0ZdfH3x`M(6^{3<40+iHl+Z%piu&F9x=H)Ps0;`Iu#X-~SL%Lx`@v6@*pw zg#f5KQmj8woaCp!#0Y=@2!H?xfB=dY@pzm72!H?xfB*=flmXJ;zT{&YHw#(XN&!&0 z@F)L$a+06>4N>v{Q2q6djY=CJu)R>Z(ldrMQvewpXlLx)=B7PaoPU7l0N55!7>D3xTn_y{lk<9!7zb09FtfFx1r}qU}OL zxzDKjQUQ2@FsifEk3@+%G!-JqWAnmnDE2Li(S=K?DI1 h009sH0T4j(;vX2waBgsHw;lih002ovPDHLkV1gn(^ojrg literal 0 HcmV?d00001 From ce70f1b662ce12995b0b2f25acb6280a4049dea4 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Wed, 25 Dec 2024 01:03:11 -0500 Subject: [PATCH 02/28] cache changes --- .../orders/order_computer/mining_order.dm | 2 +- code/modules/clothing/gloves/tacklers.dm | 2 +- code/modules/clothing/masks/hailer.dm | 24 +++ code/modules/mining/voucher_sets.dm | 181 +++++++++++++++++- .../projectiles/ammunition/energy/stun.dm | 2 +- code/modules/projectiles/guns/energy/stun.dm | 17 ++ code/modules/vending/security.dm | 61 ++++++ 7 files changed, 280 insertions(+), 9 deletions(-) diff --git a/code/game/machinery/computer/orders/order_computer/mining_order.dm b/code/game/machinery/computer/orders/order_computer/mining_order.dm index bd7ecd342444..436a38abf2fd 100644 --- a/code/game/machinery/computer/orders/order_computer/mining_order.dm +++ b/code/game/machinery/computer/orders/order_computer/mining_order.dm @@ -89,7 +89,7 @@ var/static/list/set_types if(!set_types) set_types = list() - for(var/datum/voucher_set/static_set as anything in subtypesof(/datum/voucher_set)) + for(var/datum/voucher_set/static_set as anything in subtypesof(/datum/voucher_set/mining)) //monkestation edit set_types[initial(static_set.name)] = new static_set var/list/items = list() diff --git a/code/modules/clothing/gloves/tacklers.dm b/code/modules/clothing/gloves/tacklers.dm index 8b205c29b5d0..367504b6db4a 100644 --- a/code/modules/clothing/gloves/tacklers.dm +++ b/code/modules/clothing/gloves/tacklers.dm @@ -21,7 +21,7 @@ /// See: [/datum/component/tackler/var/speed] var/tackle_speed = 1 /// See: [/datum/component/tackler/var/skill_mod] - var/skill_mod = 0 + var/skill_mod = 2 //monkestation edit: 0 to 2 /obj/item/clothing/gloves/tackler/Destroy() tackler = null diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index b97da8853726..3859624fc144 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -190,6 +190,30 @@ GLOBAL_LIST_INIT(hailer_phrases, list( /obj/item/clothing/mask/gas/sechailer/proc/reset_overuse_cooldown() overuse_cooldown = FALSE +//MONKESTATION EDIT START +/obj/item/clothing/mask/gas/sechailer/equipped(mob/user, slot) + . = ..() + RegisterSignal(user, COMSIG_MOB_POINTED, PROC_REF(point_handler)) + +/obj/item/clothing/mask/gas/sechailer/proc/point_handler(mob/pointing_mob, mob/pointed_at) + SIGNAL_HANDLER + + if(!COOLDOWN_FINISHED(src, hailer_cooldown)) + return + + if(!isliving(pointed_at)) + return + + play_phrase(usr, GLOB.hailer_phrases[select_phrase()]) + pointed_at.do_alert_animation() + COOLDOWN_START(src, hailer_cooldown, PHRASE_COOLDOWN) + +/obj/item/clothing/mask/gas/sechailer/dropped(mob/user) + . = ..() + UnregisterSignal(user, COMSIG_MOB_POINTED) + +//MONKESTATION EDIT STOP + /obj/item/clothing/mask/whistle name = "police whistle" desc = "A police whistle for when you need to make sure the criminals hear you." diff --git a/code/modules/mining/voucher_sets.dm b/code/modules/mining/voucher_sets.dm index 071a8f115367..7d46808a55d6 100644 --- a/code/modules/mining/voucher_sets.dm +++ b/code/modules/mining/voucher_sets.dm @@ -16,7 +16,7 @@ /// List of items contained in the set var/list/set_items = list() -/datum/voucher_set/crusher_kit +/datum/voucher_set/mining/crusher_kit //monkestation edit name = "Crusher Kit" description = "Contains a kinetic crusher and a pocket fire extinguisher. Kinetic crusher is a versatile melee mining tool capable both of mining and fighting local fauna, however it is difficult to use effectively for anyone but most skilled and/or suicidal miners." icon = 'icons/obj/mining.dmi' @@ -26,7 +26,7 @@ /obj/item/kinetic_crusher, ) -/datum/voucher_set/extraction_kit +/datum/voucher_set/mining/extraction_kit //monkestation edit name = "Extraction and Rescue Kit" description = "Contains a fulton extraction pack and a beacon signaller, which allows you to send back home minerals, items and dead bodies without having to use the mining shuttle. And as a bonus, you get 30 marker beacons to help you better mark your path." icon = 'icons/obj/fulton.dmi' @@ -37,7 +37,7 @@ /obj/item/stack/marker_beacon/thirty, ) -/datum/voucher_set/resonator_kit +/datum/voucher_set/mining/resonator_kit //monkestation edit name = "Resonator Kit" description = "Contains a resonator and a pocket fire extinguisher. Resonator is a handheld device that creates small fields of energy that resonate until they detonate, crushing rock. It does increased damage in low pressure." icon = 'icons/obj/mining.dmi' @@ -47,7 +47,7 @@ /obj/item/resonator, ) -/datum/voucher_set/survival_capsule +/datum/voucher_set/mining/survival_capsule //monkestation edit name = "Survival Capsule and Explorer's Webbing" description = "Contains an explorer's webbing, which allows you to carry even more mining equipment and already has a spare shelter capsule in it." icon = 'icons/obj/clothing/belts.dmi' @@ -56,7 +56,7 @@ /obj/item/storage/belt/mining/vendor, ) -/datum/voucher_set/minebot_kit +/datum/voucher_set/mining/minebot_kit //monkestation edit name = "Minebot Kit" description = "Contains a little minebot companion that helps you in storing ore and hunting wildlife. Also comes with an upgraded industrial welding tool (80u), a welding mask and a KA modkit that allows shots to pass through the minebot." icon = 'icons/mob/silicon/aibots.dmi' @@ -68,7 +68,7 @@ /obj/item/borg/upgrade/modkit/minebot_passthrough, ) -/datum/voucher_set/conscription_kit +/datum/voucher_set/mining/conscription_kit //monkestation edit name = "Mining Conscription Kit" description = "Contains a whole new mining starter kit for one crewmember, consisting of a proto-kinetic accelerator, a survival knife, a seclite, an explorer's suit, a mesons, an automatic mining scanner, a mining satchel, a gas mask, a mining radio key and a special ID card with a basic mining access." icon = 'icons/obj/storage/backpack.dmi' @@ -76,3 +76,172 @@ set_items = list( /obj/item/storage/backpack/duffelbag/mining_conscript, ) + +//MONKESTATION EDIT START +//categories +/datum/voucher_set/security + +/datum/voucher_set/security/primary + +/datum/voucher_set/security/utility + +/datum/voucher_set/security/assistant //don't know a better name + +/datum/voucher_set/security/primary/disabler + name = "Disabler" + description = "The standard issue energy gun of Nanotrasen security forces. Comes with it's own holster." + icon = 'icons/obj/weapons/guns/energy.dmi' + icon_state = "disabler" + set_items = list( + /obj/item/storage/belt/holster/energy/disabler, + /obj/item/gun/energy/disabler, + ) + +/datum/voucher_set/security/primary/advanced_taser + name = "Advanced Taser" + description = "A dual-mode taser designed to fire both short-range high-power electrodes and long-range disabler beams." + icon = 'icons/obj/weapons/guns/energy.dmi' + icon_state = "advtaser" + set_items = list( + /obj/item/gun/energy/e_gun/advtaser, + ) + +/datum/voucher_set/security/primary/disabler_smg + name = "Disabler SMG" + description = "An automatic disabler variant, as opposed to the conventional model, boasts a higher ammunition capacity at the cost of slightly reduced beam effectiveness." + icon = 'icons/obj/weapons/guns/energy.dmi' + icon_state = "disabler_smg" + set_items = list( + /obj/item/gun/energy/disabler/smg, + ) + +/datum/voucher_set/security/primary/paco + name = "Paco" + description = "A modern and reliable sidearm for the soldier in the field. Commonly issued as a sidearm to Security Officers. Uses standard and rubber .35 Auto and high capacity magazines." + icon = 'monkestation/code/modules/security/icons/paco_ammo.dmi' + icon_state = "35r-16" + set_items = list( + /obj/item/gun/ballistic/automatic/pistol/paco/no_mag, + /obj/item/ammo_box/magazine/m35/rubber, + /obj/item/ammo_box/magazine/m35/rubber, + ) + +/datum/voucher_set/security/primary/strobe_shield + name = "Strobe Shield" + description = "A shield with a built in, high intensity light capable of blinding and disorienting suspects. Takes regular handheld flashes as bulbs." + icon = 'icons/obj/weapons/shields.dmi' + icon_state = "flashshield" + set_items = list( + /obj/item/shield/riot/flash, + ) + +/datum/voucher_set/security/utility/nv_hud + name = "Night Vision Security HUD" + description = "An advanced heads-up display that provides ID data and vision in complete darkness." + icon = 'icons/obj/clothing/glasses.dmi' + icon_state = "securityhudnight" + set_items = list( + /obj/item/clothing/glasses/hud/security/night, + ) + +/datum/voucher_set/security/utility/sec_projector + name = "Security Holobarrier Projector" + description = "A holographic projector that creates holographic security barriers along with holographic handcuffs." + icon = 'icons/obj/device.dmi' + icon_state = "signmaker_sec" + set_items = list( + /obj/item/holosign_creator/security, + ) + +/datum/voucher_set/security/utility/citationinator + name = "Citationinator" + description = "A cheaply made plastic handheld doohickey, capable of issuing fines to ner-do-wells, and printing out a slip of paper with the details of the fine." + icon = 'monkestation/icons/obj/items/secass.dmi' + icon_state = "doohickey_closed" + set_items = list( + /obj/item/citationinator, + ) + +/datum/voucher_set/security/utility/donut_box + name = "Donut Box" + description = "Tantalizing..." + icon = 'icons/obj/food/donuts.dmi' + icon_state = "donutbox" + set_items = list( + /obj/item/storage/fancy/donut_box, + /obj/item/reagent_containers/cup/glass/coffee, + ) + +/datum/voucher_set/security/utility/flashbangs + name = "Box of Flashbangs" + description = "WARNING: These devices are extremely dangerous and can cause blindness or deafness in repeated use." + icon = 'icons/obj/weapons/grenade.dmi' + icon_state = "flashbang" + set_items = list( + /obj/item/storage/box/flashbangs, + ) + +/datum/voucher_set/security/utility/webbing + name = "Security Webbing" + description = "Unique and versatile chest rig, can hold security gear." + icon = 'icons/obj/clothing/belts.dmi' + icon_state = "securitywebbing" + set_items = list( + /obj/item/storage/belt/security/webbing, + ) + +/datum/voucher_set/security/utility/justice_helmet + name = "Helmet of Justice" + description = "Crime fears the helmet of justice." + icon = 'icons/obj/clothing/head/helmet.dmi' + icon_state = "justice" + set_items = list( + /obj/item/clothing/head/helmet/toggleable/justice, + /obj/item/clothing/mask/gas/sechailer/swat, + ) + +/datum/voucher_set/security/utility/pinpointer_pairs + name = "Pinpointer Pair" + description = "A pair of handheld tracking devices that lock onto the other half of the matching pair." + icon = 'icons/obj/device.dmi' + icon_state = "pinpointer" + set_items = list( + /obj/item/storage/box/pinpointer_pairs, + ) + +/datum/voucher_set/security/utility/tackling_gloves + name = "Gripper Gloves" + description = "Special gloves that manipulate the blood vessels in the wearer's hands, granting them the ability to launch headfirst into walls." + icon = 'icons/obj/clothing/gloves.dmi' + icon_state = "tackle" + set_items = list( + /obj/item/clothing/gloves/tackler, + ) + +/datum/voucher_set/security/utility/swat + name = "SWAT Helmet" + description = "An extremely robust helmet with the Nanotrasen logo emblazoned on the top." + icon = 'icons/obj/clothing/head/helmet.dmi' + icon_state = "swat" + set_items = list( + /obj/item/clothing/head/helmet/swat/nanotrasen, + /obj/item/clothing/mask/gas/sechailer/swat, + ) + +/datum/voucher_set/security/assistant/medical + name = "Medical Kit" + description = "A basic set of emergency triage tools to help injured officers." + icon = 'icons/obj/storage/medkit.dmi' + icon_state = "medbriefcase" + set_items = list( + /obj/item/emergency_bed, + /obj/item/storage/medkit/emergency, + ) + +/datum/voucher_set/security/assistant/nightwatch + +/datum/voucher_set/security/assistant/brig_aid + +/datum/voucher_set/security/assistant/detective + +/datum/voucher_set/security/assistant/buddy_cop diff --git a/code/modules/projectiles/ammunition/energy/stun.dm b/code/modules/projectiles/ammunition/energy/stun.dm index 9e4aea73f6ff..56094ac6a4ce 100644 --- a/code/modules/projectiles/ammunition/energy/stun.dm +++ b/code/modules/projectiles/ammunition/energy/stun.dm @@ -27,7 +27,7 @@ /obj/item/ammo_casing/energy/disabler/smg projectile_type = /obj/projectile/beam/disabler/weak - e_cost = 40 + e_cost = 25 //monkestation edit: half the damage but twice the ammo roughly fire_sound = 'sound/weapons/taser3.ogg' /obj/item/ammo_casing/energy/disabler/hos diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index e099176ddd01..fb2b0d2139fa 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -6,6 +6,13 @@ ammo_type = list(/obj/item/ammo_casing/energy/electrode) ammo_x_offset = 3 +//MONKESTATION EDIT START +/obj/item/gun/energy/taser/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) + playsound(src, 'sound/machines/defib_ready.ogg', 50, FALSE) + if(do_after(user, 0.5 SECONDS)) + return ..() +//MONKESTATION EDIT STOP + /obj/item/gun/energy/e_gun/advtaser name = "hybrid taser" desc = "A dual-mode taser designed to fire both short-range high-power electrodes and long-range disabler beams." @@ -13,6 +20,16 @@ ammo_type = list(/obj/item/ammo_casing/energy/electrode, /obj/item/ammo_casing/energy/disabler) ammo_x_offset = 2 +//MONKESTATION EDIT START +/obj/item/gun/energy/e_gun/advtaser/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) + if(select == 1) + playsound(src, 'sound/machines/defib_ready.ogg', 50, FALSE) + if(do_after(user, 0.5 SECONDS)) + return ..() + else + return ..() +//MONKESTATION EDIT STOP + /obj/item/gun/energy/e_gun/advtaser/cyborg name = "cyborg taser" desc = "An integrated hybrid taser that draws directly from a cyborg's power cell. The weapon contains a limiter to prevent the cyborg's power cell from overheating." diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index baf524c01ffc..a90a5dcb81b6 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -56,3 +56,64 @@ /obj/item/vending_refill/security icon_state = "refill_sec" + +//MONKESTATION EDIT START +/obj/item/security_voucher + name = "security voucher" + desc = "A token to redeem a piece of equipment. Use it on a SecTech vendor." + icon = 'monkestation/icons/obj/items/security_voucher.dmi' + icon_state = "security_voucher_primary" + w_class = WEIGHT_CLASS_TINY + +/obj/item/security_voucher/primary + name = "security primary voucher" + icon_state = "security_voucher_primary" + +/obj/item/security_voucher/utility + name = "security utility voucher" + icon_state = "security_voucher_utility" + +/obj/item/security_voucher/assistant + name = "security assistant voucher" + icon_state = "security_voucher_assistant" + +/obj/machinery/vending/security/attackby(obj/item/weapon, mob/user, params) + if(istype(weapon, /obj/item/security_voucher)) + redeem_voucher(weapon, user) + return + return ..() + +/obj/machinery/vending/security/proc/redeem_voucher(obj/item/security_voucher/voucher, mob/redeemer) + var/static/list/set_types + + var/voucher_set = /datum/voucher_set/security + + if(istype(voucher, /obj/item/security_voucher/primary)) + voucher_set = /datum/voucher_set/security/primary + if(istype(voucher, /obj/item/security_voucher/utility)) + voucher_set = /datum/voucher_set/security/utility + if(istype(voucher, /obj/item/security_voucher/assistant)) + voucher_set = /datum/voucher_set/security/assistant + set_types = list() + for(var/datum/voucher_set/static_set as anything in subtypesof(voucher_set)) + set_types[initial(static_set.name)] = new static_set + + var/list/items = list() + for(var/set_name in set_types) + var/datum/voucher_set/current_set = set_types[set_name] + var/datum/radial_menu_choice/option = new + option.image = image(icon = current_set.icon, icon_state = current_set.icon_state) + option.info = span_boldnotice(current_set.description) + items[set_name] = option + + var/selection = show_radial_menu(redeemer, src, items, custom_check = FALSE, radius = 38, require_near = TRUE, tooltips = TRUE) + if(!selection) + return + + var/datum/voucher_set/chosen_set = set_types[selection] + for(var/item in chosen_set.set_items) + new item(drop_location()) + + SSblackbox.record_feedback("tally", "mining_voucher_redeemed", 1, selection) + qdel(voucher) + From be0077001d99545e18ef49fe0711b76cd0b09812 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Wed, 25 Dec 2024 13:03:34 -0500 Subject: [PATCH 03/28] old helmet/armor sprites --- monkestation/icons/mob/clothing/suit.dmi | Bin 65395 -> 66231 bytes monkestation/icons/mob/head.dmi | Bin 9140 -> 7453 bytes monkestation/icons/obj/clothing/hats.dmi | Bin 15500 -> 13819 bytes monkestation/icons/obj/clothing/suits.dmi | Bin 23121 -> 23532 bytes 4 files changed, 0 insertions(+), 0 deletions(-) diff --git a/monkestation/icons/mob/clothing/suit.dmi b/monkestation/icons/mob/clothing/suit.dmi index 15f60259f65cd58a78c80986525e56aa14f446b1..ecbcb83c5c921438f70f59ebb0ccf99e0f028e9c 100644 GIT binary patch delta 22540 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 delta 21686 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 diff --git a/monkestation/icons/mob/head.dmi b/monkestation/icons/mob/head.dmi index 7c5c714283c5c6795ceec0f043de29975a9f2f85..09540892dcaa76b50d6bc6a944c95a80c63175a6 100644 GIT binary patch literal 7453 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 diff --git a/monkestation/icons/obj/clothing/hats.dmi b/monkestation/icons/obj/clothing/hats.dmi index c1b065ef864c297e2911f1940dee2cc224dc8db4..ba710749884e3b119767b766610495de844178ab 100644 GIT binary patch literal 13819 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 literal 15500 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 diff --git a/monkestation/icons/obj/clothing/suits.dmi b/monkestation/icons/obj/clothing/suits.dmi index d1612e0097a73493ed93e33058fbf048f370e78b..333da3470cc5cfeacd9de8046e8b176367b509ab 100644 GIT binary patch delta 4089 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 biL_gSWmZ!kcx?|1gdf`K`f9Z>yO{p~6ynLV delta 3654 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 Date: Wed, 25 Dec 2024 15:20:33 -0500 Subject: [PATCH 04/28] more stuff --- code/modules/clothing/head/helmet.dm | 7 ++ code/modules/clothing/masks/hailer.dm | 24 ++++++ code/modules/clothing/suits/armor.dm | 12 +++ code/modules/mining/voucher_sets.dm | 80 +++++++++++++++--- .../jobs/job_types/security_assistant.dm | 3 +- monkestation/icons/mob/clothing/suit.dmi | Bin 66231 -> 53885 bytes monkestation/icons/mob/head.dmi | Bin 7453 -> 7468 bytes 7 files changed, 113 insertions(+), 13 deletions(-) diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index 658e67407279..e8608effe4a6 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -65,6 +65,13 @@ return ..() +//MONKESTATION EDIT START +/obj/item/clothing/head/helmet/surplus + name = "surplus helmet" + desc = "Standard Security gear. Protects the head from impacts." + icon = 'monkestation/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/icons/mob/head.dmi' + /obj/item/clothing/head/helmet/alt name = "bulletproof helmet" desc = "A bulletproof combat helmet that excels in protecting the wearer against traditional projectile weaponry and explosives to a minor extent." diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 3859624fc144..108cac6f04fc 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -235,6 +235,30 @@ GLOBAL_LIST_INIT(hailer_phrases, list( /datum/action/item_action/halt name = "HALT!" +//MONKESTATION EDIT START +/obj/item/clothing/mask/whistle/equipped(mob/user, slot) + . = ..() + RegisterSignal(user, COMSIG_MOB_POINTED, PROC_REF(point_handler)) + +/obj/item/clothing/mask/whistle/proc/point_handler(mob/pointing_mob, mob/pointed_at) + SIGNAL_HANDLER + + if(!COOLDOWN_FINISHED(src, whistle_cooldown)) + return + + if(!isliving(pointed_at)) + return + + playsound(src, 'sound/misc/whistle.ogg', 50, FALSE, 4) + pointed_at.do_alert_animation() + COOLDOWN_START(src, whistle_cooldown, 10 SECONDS) + +/obj/item/clothing/mask/whistle/dropped(mob/user) + . = ..() + UnregisterSignal(user, COMSIG_MOB_POINTED) + +//MONKESTATION EDIT STOP + /obj/item/clothing/mask/party_horn name = "party horn" desc = "A paper tube used at parties that makes a noise when blown into." diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index ed75f2d2769f..800e778923d8 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -50,6 +50,18 @@ blood_overlay_type = "armor" dog_fashion = /datum/dog_fashion/back/armorvest +//MONKESTATION EDIT START +/obj/item/clothing/suit/armor/surplus + name = "surplus armor vest" + desc = "An armored vest that provides decent protection against most types of damage." + icon = 'monkestation/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/icons/mob/clothing/suit.dmi' + icon_state = "armorvest" + inhand_icon_state = "armor" + blood_overlay_type = "armor" + dog_fashion = /datum/dog_fashion/back/armorvest +//MONKESTATION EDIT STOP + /obj/item/clothing/suit/armor/vest/alt desc = "A Type I armored vest that provides decent protection against most types of damage." icon_state = "armor" diff --git a/code/modules/mining/voucher_sets.dm b/code/modules/mining/voucher_sets.dm index 7d46808a55d6..49dcc57030c0 100644 --- a/code/modules/mining/voucher_sets.dm +++ b/code/modules/mining/voucher_sets.dm @@ -163,7 +163,7 @@ ) /datum/voucher_set/security/utility/donut_box - name = "Donut Box" + name = "Box of Donuts" description = "Tantalizing..." icon = 'icons/obj/food/donuts.dmi' icon_state = "donutbox" @@ -196,8 +196,8 @@ icon = 'icons/obj/clothing/head/helmet.dmi' icon_state = "justice" set_items = list( - /obj/item/clothing/head/helmet/toggleable/justice, /obj/item/clothing/mask/gas/sechailer/swat, + /obj/item/clothing/head/helmet/toggleable/justice, ) /datum/voucher_set/security/utility/pinpointer_pairs @@ -224,24 +224,80 @@ icon = 'icons/obj/clothing/head/helmet.dmi' icon_state = "swat" set_items = list( - /obj/item/clothing/head/helmet/swat/nanotrasen, /obj/item/clothing/mask/gas/sechailer/swat, + /obj/item/clothing/head/helmet/swat/nanotrasen, ) -/datum/voucher_set/security/assistant/medical - name = "Medical Kit" - description = "A basic set of emergency triage tools to help injured officers." - icon = 'icons/obj/storage/medkit.dmi' - icon_state = "medbriefcase" +/datum/voucher_set/security/utility/laptop + name = "Security Laptop" + description = "A laptop pre-loaded with security software." + icon = 'icons/obj/modular_laptop.dmi' + icon_state = "laptop-closed" set_items = list( - /obj/item/emergency_bed, - /obj/item/storage/medkit/emergency, - ) + /obj/item/modular_computer/laptop/preset/security, + ) + +/obj/item/modular_computer/laptop/preset/security + starting_programs = list( + /datum/computer_file/program/chatclient, + /datum/computer_file/program/crew_manifest, + /datum/computer_file/program/records/security, + /datum/computer_file/program/secureye, + ) /datum/voucher_set/security/assistant/nightwatch + name = "Nightwatch Kit" + description = "All the clothing you will need to stay warm patrolling the darker out of sight areas of the station." + icon = 'icons/obj/clothing/suits/wintercoat.dmi' + icon_state = "coatsecurity" + set_items = list( + /obj/item/clothing/head/soft/sec, + /obj/item/clothing/suit/hooded/wintercoat/security, + /obj/item/flashlight/seclite, + /obj/item/storage/fancy/donut_box, + /obj/item/reagent_containers/cup/glass/coffee, + /obj/item/radio/off, + /obj/item/crowbar/red, + ) -/datum/voucher_set/security/assistant/brig_aid +/datum/voucher_set/security/assistant/brig + name = "Brig Assistant Kit" + description = "A collection of tools to assist in the operation of the perma wing and watch over prisoners." + icon = 'icons/obj/toys/plushes.dmi' + icon_state = "pkplush" + set_items = list( + /obj/item/cargo_teleporter, + /obj/item/clipboard, + /obj/item/storage/crayons, + /obj/item/storage/box/hug/plushes, + /obj/item/modular_computer/laptop/preset/security, + ) /datum/voucher_set/security/assistant/detective + name = "Forensics Assistant Kit" + description = "Serial litterer on the loose? This will help you track them down." + icon = 'icons/obj/device.dmi' + icon_state = "tape_red" + set_items = list( + /obj/item/camera, + /obj/item/taperecorder, + /obj/item/tape/random, + /obj/item/folder/red, + /obj/item/storage/box/evidence, + /obj/item/clothing/gloves/latex, + /obj/item/binoculars, + /obj/item/storage/fancy/cigarettes/cigpack_candy, + + ) /datum/voucher_set/security/assistant/buddy_cop + name = "Buddy Cop Kit" + description = "Pair up with a security officer and learn the basics of security." + icon = 'monkestation/icons/obj/clothing/hats.dmi' + icon_state = "helmet" + set_items = list( + /obj/item/storage/box/pinpointer_pairs, + /obj/item/clothing/head/helmet/surplus, + /obj/item/clothing/suit/armor/surplus, + /obj/item/book/manual/wiki/security_space_law, + ) diff --git a/monkestation/code/modules/jobs/job_types/security_assistant.dm b/monkestation/code/modules/jobs/job_types/security_assistant.dm index a53c8aff02b5..91a0438d317d 100644 --- a/monkestation/code/modules/jobs/job_types/security_assistant.dm +++ b/monkestation/code/modules/jobs/job_types/security_assistant.dm @@ -52,7 +52,8 @@ uniform = /obj/item/clothing/under/rank/security/officer/grey backpack_contents = list( /obj/item/restraints/handcuffs/cable/zipties = 1, - /obj/item/reagent_containers/spray/pepper = 1 + /obj/item/reagent_containers/spray/pepper = 1, + /obj/item/clothing/mask/whistle = 1, ) belt = /obj/item/modular_computer/pda/security ears = /obj/item/radio/headset/headset_sec diff --git a/monkestation/icons/mob/clothing/suit.dmi b/monkestation/icons/mob/clothing/suit.dmi index ecbcb83c5c921438f70f59ebb0ccf99e0f028e9c..bfd87bec5d97676b4a16ab6a442581821f9e8fa6 100644 GIT binary patch literal 53885 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 literal 66231 zcmcG$WmHvB`!BjEK^j3iMM^-rHqz1^A|Wl^-Hm{tfOJTAcMC`fNOwsi-I5#F`>g%G z|1<6xcib=M!~MXDx#pT{&ZnQ>GdG{rRAg~5$uR){z>$}Gs{sJWw1_{9Ct%Bu&r_7( z4YQAyj@w&vS2GuDCpT+H2LSN;o|)9`u*``aK7Ou=aok8XSFymJlG~4uEl(qn!|=<3 z{xec(-(Xfigd2O)9Op`Y@M&?tE58l;BzC6%A>C`5W;7=+Y&mD5b zksP_tZ9BY|L_178Y0P|oe^_YFncnEA!CcZ`G}uHkhis7e?UiowQjwO4iv*8|KgwC$ zjJ_}psn>7)J9=T^U2jMH`R=S!1xY)2_(Dvu#sZTje{HR`U66>fq_0-b41K(E zC#em2=skA6s>8E2Q^t3YuSJ$++*!ryFd+(cIh5j$6h9(OVol9>6mzGn(elNE72Z+! z?&WHY@wdpvk&|K*3nC3&lD>WQfGw0@k|Rv4@U*CvUT#F~;pr^CIPz#*E@}PoJ|{-F zh)jmDYT=fF@6i`Ljo^5e&8{3r3A?VHK%(bXKFgi2EkJd;j?Vnywpo&5d(-0YgqPv|54}Z418vPh={Eq-0`hMq zw7k9_b@+bJnuWpPpX zW9o7~Dw*9+V5*J&%fRlKn4yw zjb8Y@CT%Qz-WCAhtsR%Urb|#Nvn=uJUIca(U;yHUr)($i!?3k1UzLk4u2-1A#J|S* z7I-xw_($b-&Gz=%Mo+-`w-*4MJlvXP{-D2o$)V~F7u()IGSeb56mwHrg5`Ay0P7LIWKIH~ z>vkSVZS0`j0f~=Yd^HqVX%F!>{P_NgFfkv+iZW;emEPV$C^5f(YMTz}-6jeUB0_mE9W6475uvsw6sGYOBm{5-Yx*}&FGlvT>zAGo#JQKI`})py9kf=m@O89OUeb&sHt1Mg;j8qd2% z#Ipg`>Kr2t)Tkz9Vwo@Pc=W$kn9ykSZsA)=?>WztEO_AK`c&bu?+qvaz})~DF>Q+0 zs$>{Ex0c{n3G>7CAJ-nKj<&5_! z9NeEveA(qTQm1Dx?R0-2eRg&h{O&2);yYpdN5raz$nO$Ywaz!2-(1{KRh|Gao~WT) z$ZSL@rqDl|W3r8_uO{ucyg0irV%XcyO)*6Od8zQWYKNZW>?9Vb#OJT* z@!i3$n<_tB_N^PG4_@R?c*mLNZ1qpXn6TaKHLJPnw}hNxC;n@(($f3tlq0WyT|OV3 zuY{8nwd8`73;80jf1~D z{L^wr`uSz>bowoPTHnWJ?mEcJ9S6AiLK#-6?_uUT*X;qL;j75LgaAcp7_G3$Y4+oX zKv&fc8))*;!gu$H5xA?!k9Xrg*^I7p&t%LxEbQ?j)9?UNAzCv1Yx7OdX{3jTX&J5L zlnpsU>M6_dZmMwof_bEc?@#wRQ7%B%b6PFnhf#b*kSXDHG|NKvyq(l}+MCiRW>e;P zM`KIDpqPb*<9rLKh(UCZ6ZC5-;1Ih5f+C7p(|ew2O%@;LEa$SYApr&JTf2PA;#FUC z4u0EX2#}xuOSj(>p_R1p<%=~4_(OADg#_5?-w@(jkSOwzg14=&A5}wQ?GFQ{M&QeH zk72Z1qZ-S$`+@L`WMm*f&@g1GN75R56<$<0UkI1q{nvZ`Z1e#R9{-%ovNd+34|Mu1 zM)Zi#qto#U0{YEIzx)Mu0IO5@y~9ZN9D6$fIc1Qq3~oHcmKaK%MHk=s<`#Ghrx97n zixRa*U%{1CZ3Z}R#D>1q%p@&?(l;>%x1qj|D2@K~4JE$+XrNOGb*2yi0#-T*WiKw` zNSUrBkla}o>Np5HdJ{NZ#OsI}+}=iz#cj*0Vv2}d0(~6NRvy{7orABJ!&kTWi43

Dz{048Gr2h%6Mvxid*fhy^LBLM0X?EF;EY{-U7; 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 Date: Thu, 26 Dec 2024 10:16:39 -0500 Subject: [PATCH 05/28] dragnet beacon sprite --- icons/obj/devices/tracker.dmi | Bin 0 -> 11967 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 icons/obj/devices/tracker.dmi diff --git a/icons/obj/devices/tracker.dmi b/icons/obj/devices/tracker.dmi new file mode 100644 index 0000000000000000000000000000000000000000..39be63ef4de814e2bfd48b1848367c37cb98b46d GIT binary patch literal 11967 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 literal 0 HcmV?d00001 From a478d66f4256a0b3c24d4c4ed85cd21d386fe020 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Thu, 26 Dec 2024 13:47:27 -0500 Subject: [PATCH 06/28] dragbet rework kinda --- code/modules/clothing/masks/hailer.dm | 2 +- code/modules/mining/voucher_sets.dm | 2 +- .../projectiles/guns/energy/energy_gun.dm | 27 +++++ .../projectile/energy/net_snare.dm | 113 +++++++++++++++--- monkestation/icons/mob/head.dmi | Bin 7468 -> 7453 bytes 5 files changed, 124 insertions(+), 20 deletions(-) diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 108cac6f04fc..0aec0d4d788d 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -229,7 +229,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list( if(!COOLDOWN_FINISHED(src, whistle_cooldown)) return COOLDOWN_START(src, whistle_cooldown, 10 SECONDS) - user.audible_message("HALT!") + //user.audible_message("HALT!") monkestation removal playsound(src, 'sound/misc/whistle.ogg', 50, FALSE, 4) /datum/action/item_action/halt diff --git a/code/modules/mining/voucher_sets.dm b/code/modules/mining/voucher_sets.dm index 49dcc57030c0..ed011d3ae074 100644 --- a/code/modules/mining/voucher_sets.dm +++ b/code/modules/mining/voucher_sets.dm @@ -285,9 +285,9 @@ /obj/item/folder/red, /obj/item/storage/box/evidence, /obj/item/clothing/gloves/latex, + /obj/item/clothing/head/fedora/det_hat, /obj/item/binoculars, /obj/item/storage/fancy/cigarettes/cigpack_candy, - ) /datum/voucher_set/security/assistant/buddy_cop diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 707dc86974d6..53781380bb81 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -84,6 +84,33 @@ modifystate = FALSE w_class = WEIGHT_CLASS_NORMAL ammo_x_offset = 1 + ///A dragnet beacon set to be the teleport destination for snare teleport rounds. + var/obj/item/dragnet_beacon/linked_beacon + +/obj/item/gun/energy/e_gun/dragnet/attackby(mob/living/user, obj/item/tool, list/modifiers) + if(istype(tool, /obj/item/dragnet_beacon)) + link_beacon(user, tool) + +///Sets the linked_beacon var on the dragnet, which becomes the snare round's teleport destination. +/obj/item/gun/energy/e_gun/dragnet/proc/link_beacon(mob/living/user, obj/item/dragnet_beacon/our_beacon) + if(linked_beacon) + if(our_beacon == linked_beacon) + balloon_alert(user, "already synced!") + return + else + UnregisterSignal(linked_beacon, COMSIG_QDELETING) //You're getting overridden dude. + linked_beacon.linked_dragnet = null + linked_beacon.update_appearance() + linked_beacon = our_beacon + balloon_alert(user, "beacon synced") + RegisterSignal(our_beacon, COMSIG_QDELETING, PROC_REF(handle_beacon_disable)) + +///Handles clearing the linked_beacon reference in the event that it is deleted. +/obj/item/gun/energy/e_gun/dragnet/proc/handle_beacon_disable(datum/source) + SIGNAL_HANDLER + visible_message(span_warning("A light on the [src] flashes, indicating that it is no longer linked with a DRAGnet beacon!")) + linked_beacon = null + /obj/item/gun/energy/e_gun/dragnet/add_seclight_point() return diff --git a/code/modules/projectiles/projectile/energy/net_snare.dm b/code/modules/projectiles/projectile/energy/net_snare.dm index 74a0e3eaec75..4b678bad9a77 100644 --- a/code/modules/projectiles/projectile/energy/net_snare.dm +++ b/code/modules/projectiles/projectile/energy/net_snare.dm @@ -1,7 +1,7 @@ /obj/projectile/energy/net name = "energy netting" icon_state = "e_netting" - damage = 10 + damage = 35 //monkestation edit: 10 to 35 damage_type = STAMINA hitsound = 'sound/weapons/taserhit.ogg' range = 10 @@ -11,15 +11,20 @@ SpinAnimation() /obj/projectile/energy/net/on_hit(atom/target, blocked = 0, pierce_hit) + var/obj/item/dragnet_beacon/destination_beacon = null + var/obj/item/gun/energy/e_gun/dragnet/our_dragnet = fired_from + if(our_dragnet && istype(our_dragnet)) + destination_beacon = our_dragnet.linked_beacon + if(isliving(target)) var/turf/Tloc = get_turf(target) if(!locate(/obj/effect/nettingportal) in Tloc) - new /obj/effect/nettingportal(Tloc) - ..() + new /obj/effect/nettingportal(Tloc, destination_beacon) + . = ..() /obj/projectile/energy/net/on_range() do_sparks(1, TRUE, src) - ..() + . = ..() /obj/effect/nettingportal name = "DRAGnet teleportation field" @@ -29,26 +34,18 @@ light_outer_range = 3 anchored = TRUE -/obj/effect/nettingportal/Initialize(mapload) +/obj/effect/nettingportal/Initialize(mapload, destination_beacon) . = ..() - var/obj/item/beacon/teletarget = null - for(var/obj/machinery/computer/teleporter/com in GLOB.machines) - var/atom/target = com.target_ref?.resolve() - if(target) - if(com.power_station && com.power_station.teleporter_hub && com.power_station.engaged) - teletarget = target - else - com.target_ref = null - + var/obj/item/dragnet_beacon/teletarget = destination_beacon addtimer(CALLBACK(src, PROC_REF(pop), teletarget), 30) /obj/effect/nettingportal/proc/pop(teletarget) if(teletarget) - for(var/mob/living/L in get_turf(src)) - do_teleport(L, teletarget, 2, channel = TELEPORT_CHANNEL_BLUESPACE)//teleport what's in the tile to the beacon + for(var/mob/living/living_mob in get_turf(src)) + do_teleport(living_mob, get_turf(teletarget), 1, channel = TELEPORT_CHANNEL_BLUESPACE) //Teleport what's in the tile to the beacon else - for(var/mob/living/L in get_turf(src)) - do_teleport(L, L, 15, channel = TELEPORT_CHANNEL_BLUESPACE) //Otherwise it just warps you off somewhere. + for(var/mob/living/living_mob in get_turf(src)) + do_teleport(living_mob, get_turf(living_mob), 15, channel = TELEPORT_CHANNEL_BLUESPACE) //Otherwise it just warps you off somewhere. qdel(src) @@ -58,6 +55,86 @@ /obj/effect/nettingportal/singularity_pull() return +/obj/item/dragnet_beacon + name = "\improper DRAGnet beacon" + desc = "Can be synced with a DRAGnet to set it as a designated teleporting point." + icon = 'icons/obj/devices/tracker.dmi' + icon_state = "dragnet_beacon" + inhand_icon_state = "beacon" + lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' + ///Has a security ID been used to lock this in place? + var/locked = FALSE + var/obj/item/gun/energy/e_gun/dragnet/linked_dragnet + +/obj/item/dragnet_beacon/attackby(obj/item/tool, mob/living/user, params) + if(isidcard(tool)) + if(!anchored) + balloon_alert(user, "wrench the beacon first!") + return + if(obj_flags & EMAGGED) + balloon_alert(user, "the access control is fried!") + return + + var/obj/item/card/id/id_card = tool + if((ACCESS_SECURITY in id_card.GetAccess())) + locked = !locked + balloon_alert(user, "beacon [locked ? "locked" : "unlocked"]") + else + balloon_alert(user, "no access!") + + if(istype(tool, /obj/item/gun/energy/e_gun/dragnet)) + if(!anchored) + balloon_alert(user, "wrench the beacon first!") + return + linked_dragnet = tool + linked_dragnet.link_beacon(user, src) + update_appearance() + +/obj/item/dragnet_beacon/wrench_act(mob/living/user, obj/item/tool) + if(user.is_holding(src)) + balloon_alert(user, "put it down first!") + return + + if(anchored && locked) + balloon_alert(user, "must be unlocked first!") + return + + if(isinspace() && !anchored) + balloon_alert(user, "nothing to anchor to!") + return + + set_anchored(!anchored) + if(anchored == FALSE && linked_dragnet) + linked_dragnet.handle_beacon_disable() + linked_dragnet = null + update_appearance() + tool.play_tool_sound(src, 75) + user.balloon_alert_to_viewers("[anchored ? "anchored" : "unanchored"]") + +/obj/item/dragnet_beacon/update_overlays() + . = ..() + if(linked_dragnet) + . += "sp_green" + return + if(!anchored) + . += "sp_yellow" + return + if(anchored) + . += "sp_orange" + return + +/obj/item/dragnet_beacon/emag_act(mob/user, obj/item/card/emag/emag_card) + if(obj_flags & EMAGGED) + return FALSE + obj_flags |= EMAGGED + locked = FALSE + set_anchored(FALSE) + do_sparks(3, TRUE, src) + balloon_alert(user, "beacon unlocked") + update_appearance() + return TRUE + /obj/projectile/energy/trap name = "energy snare" icon_state = "e_snare" diff --git a/monkestation/icons/mob/head.dmi b/monkestation/icons/mob/head.dmi index 831a263b2fa6b304b70e1ab4f5d4b75621886349..09540892dcaa76b50d6bc6a944c95a80c63175a6 100644 GIT binary patch literal 7453 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 Date: Thu, 26 Dec 2024 23:12:42 -0500 Subject: [PATCH 07/28] dragnet funny --- .../projectiles/guns/energy/energy_gun.dm | 6 ++-- .../projectile/energy/net_snare.dm | 28 +++++++++++++------ 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 53781380bb81..49b5543f2f5d 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -99,8 +99,8 @@ return else UnregisterSignal(linked_beacon, COMSIG_QDELETING) //You're getting overridden dude. - linked_beacon.linked_dragnet = null - linked_beacon.update_appearance() + + handle_beacon_disable() linked_beacon = our_beacon balloon_alert(user, "beacon synced") RegisterSignal(our_beacon, COMSIG_QDELETING, PROC_REF(handle_beacon_disable)) @@ -109,6 +109,8 @@ /obj/item/gun/energy/e_gun/dragnet/proc/handle_beacon_disable(datum/source) SIGNAL_HANDLER visible_message(span_warning("A light on the [src] flashes, indicating that it is no longer linked with a DRAGnet beacon!")) + linked_beacon.linked_dragnet = null + linked_beacon.update_appearance() linked_beacon = null diff --git a/code/modules/projectiles/projectile/energy/net_snare.dm b/code/modules/projectiles/projectile/energy/net_snare.dm index 4b678bad9a77..8f183c149434 100644 --- a/code/modules/projectiles/projectile/energy/net_snare.dm +++ b/code/modules/projectiles/projectile/energy/net_snare.dm @@ -1,7 +1,7 @@ /obj/projectile/energy/net name = "energy netting" icon_state = "e_netting" - damage = 35 //monkestation edit: 10 to 35 + damage = 25 //monkestation edit: 10 to 25 damage_type = STAMINA hitsound = 'sound/weapons/taserhit.ogg' range = 10 @@ -41,12 +41,21 @@ /obj/effect/nettingportal/proc/pop(teletarget) if(teletarget) + for(var/mob/living/carbon/living_carbon in get_turf(src)) + if(!living_carbon.handcuffed && living_carbon.canBeHandcuffed()) + playsound(src, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) + living_carbon.set_handcuffed(new /obj/item/restraints/handcuffs/holographic/used(living_carbon)) + living_carbon.update_handcuffed() for(var/mob/living/living_mob in get_turf(src)) do_teleport(living_mob, get_turf(teletarget), 1, channel = TELEPORT_CHANNEL_BLUESPACE) //Teleport what's in the tile to the beacon else + for(var/mob/living/carbon/living_carbon in get_turf(src)) + if(!living_carbon.handcuffed && living_carbon.canBeHandcuffed()) + playsound(src, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) + living_carbon.set_handcuffed(new /obj/item/restraints/handcuffs/holographic/used(living_carbon)) + living_carbon.update_handcuffed() for(var/mob/living/living_mob in get_turf(src)) do_teleport(living_mob, get_turf(living_mob), 15, channel = TELEPORT_CHANNEL_BLUESPACE) //Otherwise it just warps you off somewhere. - qdel(src) /obj/effect/nettingportal/singularity_act() @@ -105,7 +114,7 @@ return set_anchored(!anchored) - if(anchored == FALSE && linked_dragnet) + if(anchored == FALSE && linked_dragnet && !(obj_flags & EMAGGED)) linked_dragnet.handle_beacon_disable() linked_dragnet = null update_appearance() @@ -114,15 +123,18 @@ /obj/item/dragnet_beacon/update_overlays() . = ..() - if(linked_dragnet) - . += "sp_green" + if(obj_flags & EMAGGED) + . += "sp_orange" return - if(!anchored) - . += "sp_yellow" + if(linked_dragnet != null) + . += "sp_green" return if(anchored) - . += "sp_orange" + . += "sp_yellow" return + else + . += "dragnet_beacon" + /obj/item/dragnet_beacon/emag_act(mob/user, obj/item/card/emag/emag_card) if(obj_flags & EMAGGED) From 756aa6845adeaeaf015fc08c51297f17bbea93b8 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Sat, 28 Dec 2024 15:52:10 -0500 Subject: [PATCH 08/28] last touches --- code/game/objects/items/pinpointer.dm | 1 + .../objects/items/storage/boxes/job_boxes.dm | 2 +- code/game/objects/items/storage/fancy.dm | 2 +- code/modules/cargo/packs/security.dm | 12 ++++++---- .../jobs/job_types/security_officer.dm | 4 ++-- code/modules/mining/voucher_sets.dm | 2 +- .../projectiles/ammunition/energy/special.dm | 1 + .../projectiles/guns/energy/energy_gun.dm | 10 +++++--- code/modules/projectiles/guns/energy/stun.dm | 8 +++---- .../projectile/energy/net_snare.dm | 5 ++-- code/modules/research/designs/misc_designs.dm | 12 ++++++++++ code/modules/research/techweb/all_nodes.dm | 1 + code/modules/vending/security.dm | 23 ++++++++++--------- code/modules/vending/wardrobes.dm | 21 ++++++++++++++--- .../jobs/job_types/security_assistant.dm | 5 ++-- 15 files changed, 74 insertions(+), 35 deletions(-) diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index 05c68e04eba6..988dabf54ad3 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -196,6 +196,7 @@ /obj/item/storage/box/pinpointer_pairs name = "pinpointer pair box" + custom_premium_price = PAYCHECK_COMMAND * 3.5 //monkestation edit /obj/item/storage/box/pinpointer_pairs/PopulateContents() var/obj/item/pinpointer/pair/A = new(src) diff --git a/code/game/objects/items/storage/boxes/job_boxes.dm b/code/game/objects/items/storage/boxes/job_boxes.dm index a5a62c5f3135..a91d1b3f8209 100644 --- a/code/game/objects/items/storage/boxes/job_boxes.dm +++ b/code/game/objects/items/storage/boxes/job_boxes.dm @@ -127,7 +127,7 @@ /obj/item/storage/box/survival/security mask_type = /obj/item/clothing/mask/gas/sechailer -/obj/item/storage/box/survival/security/radio/PopulateContents() +/obj/item/storage/box/survival/security/PopulateContents() //monkestation edit ..() // we want the regular stuff too new /obj/item/radio/off(src) diff --git a/code/game/objects/items/storage/fancy.dm b/code/game/objects/items/storage/fancy.dm index 5aeeff5128b4..49f57d1c1247 100644 --- a/code/game/objects/items/storage/fancy.dm +++ b/code/game/objects/items/storage/fancy.dm @@ -101,7 +101,7 @@ spawn_count = 6 open_status = TRUE appearance_flags = KEEP_TOGETHER|LONG_GLIDE - custom_premium_price = PAYCHECK_COMMAND * 1.75 + //custom_premium_price = PAYCHECK_COMMAND * 1.75 monkestation removal contents_tag = "donut" /obj/item/storage/fancy/donut_box/Initialize(mapload) diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index f5e75b2855df..061ea57381ca 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -110,6 +110,7 @@ /obj/item/storage/box/teargas, /obj/item/storage/box/flashes, /obj/item/storage/box/handcuffs, + /obj/item/security_voucher/utility = 2, //monkestation edit ) crate_name = "security supply crate" @@ -209,12 +210,15 @@ /obj/item/storage/belt/bandolier = 3) crate_name = "combat shotguns crate" -/datum/supply_pack/security/armory/dragnet +/datum/supply_pack/security/armory/dragnet //monkestation edit: dropped the amount to two from three name = "DRAGnet Crate" - desc = "Contains three \"Dynamic Rapid-Apprehension of the Guilty\" netting devices, \ - a recent breakthrough in law enforcement prisoner management technology." + desc = "Contains two \"Dynamic Rapid-Apprehension of the Guilty\" netting devices, \ + a recent breakthrough in law enforcement prisoner management technology. Includes a DRAGnet beacon." cost = CARGO_CRATE_VALUE * 5 - contains = list(/obj/item/gun/energy/e_gun/dragnet = 3) + contains = list( + /obj/item/gun/energy/e_gun/dragnet = 2, + /obj/item/dragnet_beacon = 1, + ) crate_name = "\improper DRAGnet crate" /datum/supply_pack/security/armory/energy diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index f299c690577f..777f20d5f683 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -224,8 +224,8 @@ GLOBAL_LIST_EMPTY(security_officer_distribution) suit = /obj/item/clothing/suit/armor/secduster //monkestation edit: cowboy sec backpack_contents = list( /obj/item/evidencebag = 1, - /obj/item/ammo_box/magazine/m35/rubber = 2, - /obj/item/gun/ballistic/automatic/pistol/paco/no_mag, //monkestation edit: Paco sec + /obj/item/security_voucher/primary, //monkestation edit: Voucher sec + /obj/item/security_voucher/utility, //monkestation edit ) belt = /obj/item/modular_computer/pda/security ears = /obj/item/radio/headset/headset_sec/alt diff --git a/code/modules/mining/voucher_sets.dm b/code/modules/mining/voucher_sets.dm index ed011d3ae074..9bca127e91f2 100644 --- a/code/modules/mining/voucher_sets.dm +++ b/code/modules/mining/voucher_sets.dm @@ -285,9 +285,9 @@ /obj/item/folder/red, /obj/item/storage/box/evidence, /obj/item/clothing/gloves/latex, - /obj/item/clothing/head/fedora/det_hat, /obj/item/binoculars, /obj/item/storage/fancy/cigarettes/cigpack_candy, + /obj/item/lighter/greyscale, ) /datum/voucher_set/security/assistant/buddy_cop diff --git a/code/modules/projectiles/ammunition/energy/special.dm b/code/modules/projectiles/ammunition/energy/special.dm index 684f18e77efa..7c23780a0eb2 100644 --- a/code/modules/projectiles/ammunition/energy/special.dm +++ b/code/modules/projectiles/ammunition/energy/special.dm @@ -56,6 +56,7 @@ /obj/item/ammo_casing/energy/trap projectile_type = /obj/projectile/energy/trap select_name = "snare" + e_cost = 200 //monkestation addition harmful = FALSE /obj/item/ammo_casing/energy/tesla_cannon diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 49b5543f2f5d..2c61662e5645 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -108,11 +108,15 @@ ///Handles clearing the linked_beacon reference in the event that it is deleted. /obj/item/gun/energy/e_gun/dragnet/proc/handle_beacon_disable(datum/source) SIGNAL_HANDLER - visible_message(span_warning("A light on the [src] flashes, indicating that it is no longer linked with a DRAGnet beacon!")) - linked_beacon.linked_dragnet = null - linked_beacon.update_appearance() + if(linked_beacon) + visible_message(span_warning("A light on the [src] flashes, indicating that it is no longer linked with a DRAGnet beacon!")) + linked_beacon.linked_dragnet = null + linked_beacon.update_appearance() linked_beacon = null +/obj/item/gun/energy/e_gun/dragnet/Destroy() //just so the beacon updates it's apperance + . = ..() + handle_beacon_disable() /obj/item/gun/energy/e_gun/dragnet/add_seclight_point() return diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index fb2b0d2139fa..36b034aa9187 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -8,8 +8,8 @@ //MONKESTATION EDIT START /obj/item/gun/energy/taser/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) - playsound(src, 'sound/machines/defib_ready.ogg', 50, FALSE) - if(do_after(user, 0.5 SECONDS)) + playsound(src, 'sound/machines/defib_charge.ogg', 50, FALSE) + if(do_after(user, 1 SECONDS, timed_action_flags = IGNORE_USER_LOC_CHANGE)) return ..() //MONKESTATION EDIT STOP @@ -23,8 +23,8 @@ //MONKESTATION EDIT START /obj/item/gun/energy/e_gun/advtaser/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) if(select == 1) - playsound(src, 'sound/machines/defib_ready.ogg', 50, FALSE) - if(do_after(user, 0.5 SECONDS)) + playsound(src, 'sound/machines/defib_charge.ogg', 50, FALSE) + if(do_after(user, 1 SECONDS, timed_action_flags = IGNORE_USER_LOC_CHANGE)) return ..() else return ..() diff --git a/code/modules/projectiles/projectile/energy/net_snare.dm b/code/modules/projectiles/projectile/energy/net_snare.dm index 8f183c149434..e61d7da68b1b 100644 --- a/code/modules/projectiles/projectile/energy/net_snare.dm +++ b/code/modules/projectiles/projectile/energy/net_snare.dm @@ -1,7 +1,7 @@ /obj/projectile/energy/net name = "energy netting" icon_state = "e_netting" - damage = 25 //monkestation edit: 10 to 25 + damage = 15 //monkestation edit: 10 to 15 damage_type = STAMINA hitsound = 'sound/weapons/taserhit.ogg' range = 10 @@ -37,7 +37,7 @@ /obj/effect/nettingportal/Initialize(mapload, destination_beacon) . = ..() var/obj/item/dragnet_beacon/teletarget = destination_beacon - addtimer(CALLBACK(src, PROC_REF(pop), teletarget), 30) + addtimer(CALLBACK(src, PROC_REF(pop), teletarget), 4 SECONDS) /obj/effect/nettingportal/proc/pop(teletarget) if(teletarget) @@ -72,6 +72,7 @@ inhand_icon_state = "beacon" lefthand_file = 'icons/mob/inhands/items/devices_lefthand.dmi' righthand_file = 'icons/mob/inhands/items/devices_righthand.dmi' + w_class = WEIGHT_CLASS_SMALL ///Has a security ID been used to lock this in place? var/locked = FALSE var/obj/item/gun/energy/e_gun/dragnet/linked_dragnet diff --git a/code/modules/research/designs/misc_designs.dm b/code/modules/research/designs/misc_designs.dm index c239d2f3f55a..5777990e6413 100644 --- a/code/modules/research/designs/misc_designs.dm +++ b/code/modules/research/designs/misc_designs.dm @@ -777,6 +777,18 @@ ) departmental_flags = DEPARTMENT_BITFLAG_SECURITY +/datum/design/dragnet_beacon + name = "DRAGnet Beacon" + desc = "A beacon that can be used as a teleport destination for DRAGnet snare rounds. Remember to sync it with your DRAGnet first!" + id = "dragnet_beacon" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SHEET_MATERIAL_AMOUNT * 5, /datum/material/glass = SHEET_MATERIAL_AMOUNT * 2) + build_path = /obj/item/dragnet_beacon + category = list( + RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SECURITY + ) + departmental_flags = DEPARTMENT_BITFLAG_SECURITY + /datum/design/inspector name = "N-Spect Scanner" desc = "Central Command-issued inspection device. Performs inspections according to Nanotrasen protocols when activated, then prints an encrypted report regarding the maintenance of the station. Definitely not giving you cancer." diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index c3fb51a129c4..48bac6f05a27 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -1596,6 +1596,7 @@ "pepperspray", "seclite", "zipties", + "dragnet_beacon", "inspector", "rubber_c35", //monkestation edit: taco sec ) diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index a90a5dcb81b6..698b7ac9473f 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -22,23 +22,23 @@ ) contraband = list( /obj/item/clothing/glasses/sunglasses = 2, - /obj/item/storage/fancy/donut_box = 2, + /obj/item/storage/fancy/donut_box = 4, //monkestation edit 2 to 4 ) premium = list( /obj/item/storage/belt/security/webbing = 5, /obj/item/coin/antagtoken = 1, - /obj/item/clothing/head/helmet/blueshirt = 1, - /obj/item/clothing/suit/armor/vest/blueshirt = 1, + //monkestation removal + // /obj/item/clothing/head/helmet/blueshirt = 1, + // /obj/item/clothing/suit/armor/vest/blueshirt = 1, + //moved to secdrobe /obj/item/clothing/gloves/tackler = 5, /obj/item/grenade/stingbang = 1, /obj/item/watertank/pepperspray = 2, /obj/item/storage/belt/holster/energy = 4, - /obj/item/clothing/head/helmet/civilprotection_helmet = 1, //monkestation edit - /obj/item/clothing/suit/armor/civilprotection_vest = 1, //monkestation edit - /obj/item/clothing/head/helmet/guardmanhelmet = 1, //monkestation edit: Guardman - /obj/item/clothing/under/guardmanuniform = 1, //monkestation edit: Guardman - /obj/item/clothing/suit/armor/guardmanvest = 1, //monkestation edit: Guardman - /obj/item/citationinator = 3 // monkestation edit: security assistants + /obj/item/citationinator = 3, // monkestation edit: security assistants + /obj/item/modular_computer/laptop/preset/security = 3, //monkestation edit + /obj/item/storage/box/pinpointer_pairs = 2, //monkestation edit + /obj/item/dragnet_beacon = 3, //monkestation edit ) refill_canister = /obj/item/vending_refill/security default_price = PAYCHECK_CREW @@ -111,9 +111,10 @@ return var/datum/voucher_set/chosen_set = set_types[selection] + playsound(src, 'sound/machines/machine_vend.ogg', 50, TRUE, extrarange = -3) for(var/item in chosen_set.set_items) new item(drop_location()) - SSblackbox.record_feedback("tally", "mining_voucher_redeemed", 1, selection) + SSblackbox.record_feedback("tally", "security_voucher_redeemed", 1, selection) qdel(voucher) - +//MONKESTATION EDIT STOP diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index f1c8838ef3de..1891bb059dbc 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -21,14 +21,17 @@ /obj/item/storage/backpack/duffelbag/sec = 3, /obj/item/clothing/under/rank/security/officer = 3, /obj/item/clothing/shoes/jackboots/sec = 3, + /obj/item/clothing/gloves/color/black = 3, /obj/item/clothing/head/beret/sec = 3, /obj/item/clothing/head/soft/sec = 3, /obj/item/clothing/mask/bandana/striped/security = 3, - /obj/item/clothing/gloves/color/black = 3, /obj/item/clothing/under/rank/security/officer/skirt = 3, /obj/item/clothing/under/rank/security/officer/grey = 3, + /obj/item/clothing/shoes/sneakers/secred = 3, //Monkestation edit /obj/item/clothing/under/pants/slacks = 3, /obj/item/clothing/under/rank/security/officer/blueshirt = 3, + /obj/item/clothing/head/helmet/blueshirt = 3, //monkestation edit + /obj/item/clothing/suit/armor/vest/blueshirt = 3, //monkestation edit /obj/item/clothing/suit/armor/secduster = 3, /obj/item/clothing/head/helmet/hat/cowboy = 3, /obj/item/clothing/head/costume/constable = 3, //monkestation edit @@ -36,11 +39,23 @@ /obj/item/clothing/under/rank/security/brig_physician = 3, //Monkestation edit /obj/item/clothing/under/rank/security/brig_physician/skirt = 3, //Monkestation edit /obj/item/clothing/suit/toggle/labcoat/brig_physician = 3, //Monkestation edit - /obj/item/clothing/shoes/sneakers/secred = 3, //Monkestation edit /obj/item/clothing/under/civilprotection_uniform = 1, //monkestation edit - /obj/item/clothing/gloves/civilprotection_gloves = 1, /obj/item/clothing/shoes/civilprotection_boots = 1, //monkestation edit + /obj/item/clothing/gloves/civilprotection_gloves = 1, //monkestation edit + /obj/item/clothing/head/helmet/civilprotection_helmet = 1, //monkestation edit + /obj/item/clothing/suit/armor/civilprotection_vest = 1, //monkestation edit + /obj/item/clothing/under/guardmanuniform = 1, //monkestation edit: Guardman + /obj/item/clothing/head/helmet/guardmanhelmet = 1, //monkestation edit: Guardman + /obj/item/clothing/suit/armor/guardmanvest = 1, //monkestation edit: Guardman + ) + //MONKESTATION EDIT START + contraband = list( + /obj/item/clothing/head/helmet/surplus = 3, + /obj/item/clothing/suit/armor/surplus = 3, + /obj/item/clothing/shoes/sneakers/brown = 3, + /obj/item/clothing/under/color/red = 3, ) + //MONKESTATION EDIT STOP premium = list( /obj/item/clothing/under/rank/security/officer/formal = 3, /obj/item/clothing/suit/jacket/officer/blue = 3, diff --git a/monkestation/code/modules/jobs/job_types/security_assistant.dm b/monkestation/code/modules/jobs/job_types/security_assistant.dm index 91a0438d317d..57ae64c82154 100644 --- a/monkestation/code/modules/jobs/job_types/security_assistant.dm +++ b/monkestation/code/modules/jobs/job_types/security_assistant.dm @@ -54,10 +54,11 @@ /obj/item/restraints/handcuffs/cable/zipties = 1, /obj/item/reagent_containers/spray/pepper = 1, /obj/item/clothing/mask/whistle = 1, + /obj/item/security_voucher/assistant = 1, ) belt = /obj/item/modular_computer/pda/security ears = /obj/item/radio/headset/headset_sec - shoes = /obj/item/clothing/shoes/sneakers/black + shoes = /obj/item/clothing/shoes/sneakers/secred l_pocket = /obj/item/citationinator r_pocket = /obj/item/assembly/flash/handheld glasses = /obj/item/clothing/glasses/hud/security @@ -67,8 +68,6 @@ satchel = /obj/item/storage/backpack/satchel/sec duffelbag = /obj/item/storage/backpack/duffelbag/sec - box = /obj/item/storage/box/survival/security - implants = list(/obj/item/implant/mindshield) // i think this is stupid but this was apparently agreed upon ~lucy /datum/id_trim/job/security_assistant From f39c7b2c07fbf08a74a033732cc6ef575a672bfb Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Sat, 28 Dec 2024 16:52:55 -0500 Subject: [PATCH 09/28] almost done + head bugfix --- code/modules/jobs/job_types/head_of_security.dm | 4 ++-- code/modules/jobs/job_types/security_officer.dm | 4 ++-- code/modules/jobs/job_types/warden.dm | 4 ++-- code/modules/surgery/bodyparts/head.dm | 1 + code/modules/vending/wardrobes.dm | 4 ++-- .../code/modules/jobs/job_types/security_assistant.dm | 6 +++--- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm index c3372bacfc67..1a2cffad5fe7 100644 --- a/code/modules/jobs/job_types/head_of_security.dm +++ b/code/modules/jobs/job_types/head_of_security.dm @@ -61,8 +61,8 @@ gloves = /obj/item/clothing/gloves/color/black head = /obj/item/clothing/head/hats/hos/beret shoes = /obj/item/clothing/shoes/jackboots/sec - l_pocket = /obj/item/restraints/handcuffs - r_pocket = /obj/item/assembly/flash/handheld + l_pocket = /obj/item/assembly/flash/handheld + r_pocket = /obj/item/restraints/handcuffs backpack = /obj/item/storage/backpack/security satchel = /obj/item/storage/backpack/satchel/sec diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm index 777f20d5f683..7092fcb286c0 100644 --- a/code/modules/jobs/job_types/security_officer.dm +++ b/code/modules/jobs/job_types/security_officer.dm @@ -231,8 +231,8 @@ GLOBAL_LIST_EMPTY(security_officer_distribution) ears = /obj/item/radio/headset/headset_sec/alt gloves = /obj/item/clothing/gloves/color/black shoes = /obj/item/clothing/shoes/jackboots/sec - l_pocket = /obj/item/restraints/handcuffs - r_pocket = /obj/item/assembly/flash/handheld + l_pocket = /obj/item/assembly/flash/handheld + r_pocket = /obj/item/restraints/handcuffs backpack = /obj/item/storage/backpack/security satchel = /obj/item/storage/backpack/satchel/sec diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm index 6c7db7059193..993823063d62 100644 --- a/code/modules/jobs/job_types/warden.dm +++ b/code/modules/jobs/job_types/warden.dm @@ -59,8 +59,8 @@ gloves = /obj/item/clothing/gloves/color/black head = /obj/item/clothing/head/hats/warden/red shoes = /obj/item/clothing/shoes/jackboots/sec - l_pocket = /obj/item/restraints/handcuffs - r_pocket = /obj/item/assembly/flash/handheld + l_pocket = /obj/item/assembly/flash/handheld + r_pocket = /obj/item/restraints/handcuffs backpack = /obj/item/storage/backpack/security satchel = /obj/item/storage/backpack/satchel/sec diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 82acff89d84c..1bf2afa40755 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -12,6 +12,7 @@ throw_range = 2 //No head bowling px_x = 0 px_y = -8 + appearance_flags = KEEP_TOGETHER //monkestation edit nothing can possibly break cus of this wound_resistance = 5 disabled_wound_penalty = 25 scars_covered_by_clothes = FALSE diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 1891bb059dbc..a4677c7eb941 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -50,10 +50,10 @@ ) //MONKESTATION EDIT START contraband = list( + /obj/item/clothing/under/color/red = 3, + /obj/item/clothing/shoes/sneakers/brown = 3, /obj/item/clothing/head/helmet/surplus = 3, /obj/item/clothing/suit/armor/surplus = 3, - /obj/item/clothing/shoes/sneakers/brown = 3, - /obj/item/clothing/under/color/red = 3, ) //MONKESTATION EDIT STOP premium = list( diff --git a/monkestation/code/modules/jobs/job_types/security_assistant.dm b/monkestation/code/modules/jobs/job_types/security_assistant.dm index 57ae64c82154..641a1bbc9110 100644 --- a/monkestation/code/modules/jobs/job_types/security_assistant.dm +++ b/monkestation/code/modules/jobs/job_types/security_assistant.dm @@ -51,7 +51,7 @@ id_trim = /datum/id_trim/job/security_assistant uniform = /obj/item/clothing/under/rank/security/officer/grey backpack_contents = list( - /obj/item/restraints/handcuffs/cable/zipties = 1, + /obj/item/citationinator = 1, /obj/item/reagent_containers/spray/pepper = 1, /obj/item/clothing/mask/whistle = 1, /obj/item/security_voucher/assistant = 1, @@ -59,8 +59,8 @@ belt = /obj/item/modular_computer/pda/security ears = /obj/item/radio/headset/headset_sec shoes = /obj/item/clothing/shoes/sneakers/secred - l_pocket = /obj/item/citationinator - r_pocket = /obj/item/assembly/flash/handheld + l_pocket = /obj/item/assembly/flash/handheld + r_pocket = /obj/item/restraints/handcuffs/cable/zipties glasses = /obj/item/clothing/glasses/hud/security gloves = /obj/item/clothing/gloves/tackler/dolphin From 19af14f115a5ca8a7d1903c19e5834df466cd393 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Sun, 29 Dec 2024 00:47:33 -0500 Subject: [PATCH 10/28] dragnet beacon improvements --- code/modules/cargo/packs/security.dm | 7 ++++--- .../projectiles/guns/energy/energy_gun.dm | 6 ++++-- .../projectiles/projectile/energy/net_snare.dm | 6 ++++-- .../code/modules/cargo/crates/security.dm | 17 +++++++++++++---- 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index 061ea57381ca..597b143755e9 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -103,7 +103,7 @@ /datum/supply_pack/security/supplies name = "Security Supplies Crate" - desc = "Contains seven flashbangs, seven teargas grenades, six flashes, and seven handcuffs." + desc = "Contains seven flashbangs, seven teargas grenades, six flashes, seven handcuffs, and two security utility vouchers." //monkestation edit cost = CARGO_CRATE_VALUE * 3.5 access_view = ACCESS_ARMORY contains = list(/obj/item/storage/box/flashbangs, @@ -238,10 +238,11 @@ crate_name = "laser carbine crate" crate_type = /obj/structure/closet/crate/secure/plasma -/datum/supply_pack/security/armory/disabler_smg +/datum/supply_pack/security/disabler_smg //monkestation edit name = "Disabler SMG Crate" desc = "Contains three disabler SMGs, capable of rapidly firing weak disabler beams." - cost = CARGO_CRATE_VALUE * 7 + cost = CARGO_CRATE_VALUE * 6 + access_view = ACCESS_SECURITY //monkestation edit contains = list(/obj/item/gun/energy/disabler/smg = 3) crate_name = "disabler smg crate" crate_type = /obj/structure/closet/crate/secure/plasma diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index 2c61662e5645..f5212a430e3b 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -102,6 +102,8 @@ handle_beacon_disable() linked_beacon = our_beacon + LAZYOR(linked_beacon.linked_dragnets, src) + linked_beacon.update_appearance() balloon_alert(user, "beacon synced") RegisterSignal(our_beacon, COMSIG_QDELETING, PROC_REF(handle_beacon_disable)) @@ -110,8 +112,8 @@ SIGNAL_HANDLER if(linked_beacon) visible_message(span_warning("A light on the [src] flashes, indicating that it is no longer linked with a DRAGnet beacon!")) - linked_beacon.linked_dragnet = null - linked_beacon.update_appearance() + LAZYREMOVE(linked_beacon.linked_dragnets, src) + linked_beacon.update_appearance() linked_beacon = null /obj/item/gun/energy/e_gun/dragnet/Destroy() //just so the beacon updates it's apperance diff --git a/code/modules/projectiles/projectile/energy/net_snare.dm b/code/modules/projectiles/projectile/energy/net_snare.dm index e61d7da68b1b..b37b9ac88db5 100644 --- a/code/modules/projectiles/projectile/energy/net_snare.dm +++ b/code/modules/projectiles/projectile/energy/net_snare.dm @@ -1,7 +1,7 @@ /obj/projectile/energy/net name = "energy netting" icon_state = "e_netting" - damage = 15 //monkestation edit: 10 to 15 + damage = 10 damage_type = STAMINA hitsound = 'sound/weapons/taserhit.ogg' range = 10 @@ -76,6 +76,8 @@ ///Has a security ID been used to lock this in place? var/locked = FALSE var/obj/item/gun/energy/e_gun/dragnet/linked_dragnet + //lazylist for keeping track of links + var/list/linked_dragnets /obj/item/dragnet_beacon/attackby(obj/item/tool, mob/living/user, params) if(isidcard(tool)) @@ -127,7 +129,7 @@ if(obj_flags & EMAGGED) . += "sp_orange" return - if(linked_dragnet != null) + if(LAZYLEN(linked_dragnets) != 0) . += "sp_green" return if(anchored) diff --git a/monkestation/code/modules/cargo/crates/security.dm b/monkestation/code/modules/cargo/crates/security.dm index c29129636152..aef34bf9fcd4 100644 --- a/monkestation/code/modules/cargo/crates/security.dm +++ b/monkestation/code/modules/cargo/crates/security.dm @@ -59,9 +59,18 @@ contains = list(/obj/item/cortical_cage) crate_name = "anti-borer crate" -/datum/supply_pack/security/armory/taser +/datum/supply_pack/security/taser name = "Taser Crate" - desc = "Contains two tasers, ready to tase criminals." - cost = CARGO_CRATE_VALUE * 15 - contains = list(/obj/item/gun/energy/taser = 2) + desc = "Contains three tasers, ready to tase criminals." + cost = CARGO_CRATE_VALUE * 3 + access_view = ACCESS_SECURITY + contains = list(/obj/item/gun/energy/taser = 3) crate_name = "taser crate" + +/datum/supply_pack/security/advtaser + name = "Hybrid Taser Crate" + desc = "Contains three hybrid tasers, ready for tase and stun action!" + cost = CARGO_CRATE_VALUE * 6 + access_view = ACCESS_SECURITY + contains = list(/obj/item/gun/energy/e_gun/advtaser= 3) + crate_name = "hybrid taser crate" From 20634a56e477fa2d7cab9aba099320f9a5be7e2d Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Sun, 29 Dec 2024 08:28:39 -0500 Subject: [PATCH 11/28] new taser sound --- code/modules/projectiles/guns/energy/stun.dm | 4 ++-- monkestation/sound/effects/taser_charge.ogg | Bin 0 -> 15142 bytes 2 files changed, 2 insertions(+), 2 deletions(-) create mode 100644 monkestation/sound/effects/taser_charge.ogg diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 36b034aa9187..e171511e91df 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -8,7 +8,7 @@ //MONKESTATION EDIT START /obj/item/gun/energy/taser/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) - playsound(src, 'sound/machines/defib_charge.ogg', 50, FALSE) + playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 50, FALSE) if(do_after(user, 1 SECONDS, timed_action_flags = IGNORE_USER_LOC_CHANGE)) return ..() //MONKESTATION EDIT STOP @@ -23,7 +23,7 @@ //MONKESTATION EDIT START /obj/item/gun/energy/e_gun/advtaser/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) if(select == 1) - playsound(src, 'sound/machines/defib_charge.ogg', 50, FALSE) + playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 50, FALSE) if(do_after(user, 1 SECONDS, timed_action_flags = IGNORE_USER_LOC_CHANGE)) return ..() else diff --git a/monkestation/sound/effects/taser_charge.ogg b/monkestation/sound/effects/taser_charge.ogg new file mode 100644 index 0000000000000000000000000000000000000000..33c97f2949a7dd4105f91c748534d1a61bf78240 GIT binary patch literal 15142 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 literal 0 HcmV?d00001 From 03ccdde163a22128f9dc5efc326495088c36d0c2 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Sun, 29 Dec 2024 15:51:03 -0500 Subject: [PATCH 12/28] deployable barrier stuff + more dragnet adjustment --- code/game/machinery/deployable.dm | 42 +++++++++++++++++-- code/modules/clothing/masks/boxing.dm | 1 + .../projectiles/guns/energy/energy_gun.dm | 1 + code/modules/projectiles/guns/energy/stun.dm | 4 +- .../projectile/energy/net_snare.dm | 11 ++++- code/modules/vending/wardrobes.dm | 1 + 6 files changed, 53 insertions(+), 7 deletions(-) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index e686a90301c8..a04eddfc34c4 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -16,6 +16,8 @@ max_integrity = 100 var/proj_pass_rate = 50 //How many projectiles will pass the cover. Lower means stronger cover var/bar_material = METAL + //monkestation edit: var for allowing a mover to pass through the barricade if the turf they move from has a barricade, this sounds dumb + var/pass_same_type = TRUE /obj/structure/barricade/deconstruct(disassembled = TRUE) if(!(flags_1 & NODECONSTRUCT_1)) @@ -39,7 +41,7 @@ /obj/structure/barricade/CanAllowThrough(atom/movable/mover, border_dir)//So bullets will fly over and stuff. . = ..() - if(locate(/obj/structure/barricade) in get_turf(mover)) + if((locate(/obj/structure/barricade) in get_turf(mover)) && pass_same_type) return TRUE else if(isprojectile(mover)) if(!anchored) @@ -137,12 +139,15 @@ icon_state = "barrier0" density = FALSE anchored = FALSE - max_integrity = 180 + max_integrity = 200 //monkestation edit 180 to 200 proj_pass_rate = 20 armor_type = /datum/armor/barricade_security var/deploy_time = 40 var/deploy_message = TRUE + //monkestation edit: var for setting density + var/locked = FALSE + pass_same_type = FALSE /datum/armor/barricade_security @@ -158,12 +163,41 @@ addtimer(CALLBACK(src, PROC_REF(deploy)), deploy_time) /obj/structure/barricade/security/proc/deploy() - icon_state = "barrier1" - set_density(TRUE) + toggle_lock() //monkestation edit set_anchored(TRUE) if(deploy_message) visible_message(span_warning("[src] deploys!")) +//MONKESTATION EDIT START +/obj/structure/barricade/security/proc/toggle_lock() + if(!locked) + set_density(TRUE) + icon_state = "barrier1" + locked = TRUE + playsound(src, 'sound/machines/boltsup.ogg', 30) + else + set_density(FALSE) + icon_state = "barrier0" + locked = FALSE + playsound(src, 'sound/machines/boltsdown.ogg', 30) + update_appearance() + +/obj/structure/barricade/security/attackby(obj/item/tool, mob/living/user, params) + if(isidcard(tool)) + var/obj/item/card/id/id_card = tool + if((ACCESS_SECURITY in id_card.GetAccess())) + toggle_lock() + balloon_alert(user, "barrier [locked ? "locked" : "unlocked"]") + else + balloon_alert(user, "no access!") + return ..() + +/obj/structure/barricade/security/emp_act(severity) + toggle_lock() + +/obj/structure/barricade/security/emag_act() + toggle_lock() +//MONKESTATION EDIT STOP /obj/item/grenade/barrier name = "barrier grenade" diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index 1af058181a68..ae1bc77f351c 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -7,6 +7,7 @@ visor_flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT w_class = WEIGHT_CLASS_SMALL actions_types = list(/datum/action/item_action/adjust) + alternate_worn_layer = UNDER_SUIT_LAYER //monkestation edit /obj/item/clothing/mask/balaclava/attack_self(mob/user) adjustmask(user) diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index f5212a430e3b..b76cc16589f4 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -112,6 +112,7 @@ SIGNAL_HANDLER if(linked_beacon) visible_message(span_warning("A light on the [src] flashes, indicating that it is no longer linked with a DRAGnet beacon!")) + playsound(src, 'sound/machines/sonar-ping.ogg', 10) LAZYREMOVE(linked_beacon.linked_dragnets, src) linked_beacon.update_appearance() linked_beacon = null diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index e171511e91df..fbee94dd92b5 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -8,7 +8,7 @@ //MONKESTATION EDIT START /obj/item/gun/energy/taser/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) - playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 50, FALSE) + playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 35, TRUE) if(do_after(user, 1 SECONDS, timed_action_flags = IGNORE_USER_LOC_CHANGE)) return ..() //MONKESTATION EDIT STOP @@ -23,7 +23,7 @@ //MONKESTATION EDIT START /obj/item/gun/energy/e_gun/advtaser/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) if(select == 1) - playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 50, FALSE) + playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 35, TRUE) if(do_after(user, 1 SECONDS, timed_action_flags = IGNORE_USER_LOC_CHANGE)) return ..() else diff --git a/code/modules/projectiles/projectile/energy/net_snare.dm b/code/modules/projectiles/projectile/energy/net_snare.dm index b37b9ac88db5..7ab0c635b322 100644 --- a/code/modules/projectiles/projectile/energy/net_snare.dm +++ b/code/modules/projectiles/projectile/energy/net_snare.dm @@ -118,8 +118,9 @@ set_anchored(!anchored) if(anchored == FALSE && linked_dragnet && !(obj_flags & EMAGGED)) - linked_dragnet.handle_beacon_disable() linked_dragnet = null + for(var/obj/item/gun/energy/e_gun/dragnet/link in linked_dragnets) + link.handle_beacon_disable() update_appearance() tool.play_tool_sound(src, 75) user.balloon_alert_to_viewers("[anchored ? "anchored" : "unanchored"]") @@ -150,6 +151,14 @@ update_appearance() return TRUE +/obj/item/dragnet_beacon/emp_act(severity) + . = ..() + linked_dragnet = null + for(var/obj/item/gun/energy/e_gun/dragnet/link in linked_dragnets) + link.handle_beacon_disable() + locked = FALSE + update_appearance() + /obj/projectile/energy/trap name = "energy snare" icon_state = "e_snare" diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index a4677c7eb941..fb06d9fa02f2 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -25,6 +25,7 @@ /obj/item/clothing/head/beret/sec = 3, /obj/item/clothing/head/soft/sec = 3, /obj/item/clothing/mask/bandana/striped/security = 3, + /obj/item/clothing/mask/balaclava = 3, //monkestation edit /obj/item/clothing/under/rank/security/officer/skirt = 3, /obj/item/clothing/under/rank/security/officer/grey = 3, /obj/item/clothing/shoes/sneakers/secred = 3, //Monkestation edit From 744547b9ec002bda20cddf35abed2eef78f04607 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Sun, 29 Dec 2024 16:08:34 -0500 Subject: [PATCH 13/28] holosigns.dmi + rubbershot rebalance --- .../projectiles/ammunition/ballistic/shotgun.dm | 4 ++-- .../projectiles/projectile/bullets/shotgun.dm | 2 +- icons/effects/holosigns.dmi | Bin 0 -> 8888 bytes 3 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 icons/effects/holosigns.dmi diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index b8afad8d4b68..f71944c9b09c 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -93,8 +93,8 @@ desc = "A shotgun casing filled with densely-packed rubber balls, used to incapacitate crowds from a distance." icon_state = "rshell" projectile_type = /obj/projectile/bullet/pellet/shotgun_rubbershot - pellets = 5 //monkestation edit - variance = 25 // 5 pellets for 15 stam and 3 damage each + pellets = 6 //monkestation edit + variance = 25 // 6 pellets for 15 stam and 1 damage each custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*2) /obj/item/ammo_casing/shotgun/incapacitate diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index 4d9eda9e2d04..835647076981 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -111,7 +111,7 @@ /obj/projectile/bullet/pellet/shotgun_rubbershot name = "rubber shot pellet" - damage = 3 + damage = 1 //monkestation edit 3 to 1 stamina = 15 //monkestation edit sharpness = NONE embedding = null diff --git a/icons/effects/holosigns.dmi b/icons/effects/holosigns.dmi new file mode 100644 index 0000000000000000000000000000000000000000..9d951114b773d4fbce829a49001911c41a71256a GIT binary patch literal 8888 zcmZu%cRZWX*H6r-O>1i?N^4ftCPq=zrqot@)SjhDP@^?#6g4~0)-0`2BeB&8EgFiN zF>1$3h~!OwpZA}4{BfUqpL_1P_uPBW_ndpr^E@{-)?>WHa|r+dFzVmCYfjD=|0NI& z`N<>cvqa7|o>$2>!hK=+oM8bozXUiee{FlT|L=b?6lJ4vG3jC)500DshT}{i# zq8*3m%qvp`BnLj-q645Ni=KzMN2E<|LA?N_fpdlRXY9Cx%&Uxqd(&xkf(8QL5^J`l z*nJgv*y)X~t-Nr%5hZcGJf)D!RjxvsJ5810ThH#0`1RY$aa5Yuk~Lb+2R1{_k6J5B zo7={UH}|Z=s?Jr<2&jnj^RxD|qrBTj>{Jw*%ru*|fY?m;OduPGN0a8BfEN|FKx`SS z8=NXm_dk_OKJbZIhL9(PKi*twD^77yQomHu%w1tOy<^WXd|-wPBhuyyz%xPsOdw z>rUl?)>{0_t4w}ybMQ13{1bn4YW4~*W{B&aGfQ=dy~t2EIxE%exWeEh=kLSSuvS{i zbh~CEofx)H5Vp#ZnOzyizN%SI3#-;GdkxpO3s=~vPTD0om+kAxYiONif+em$`SBGk zah2|Z`6YwtmnZxtg2jZQD)E5u_aAYOm^EHmUlRSph{9fE6hbnA%Kk*xIxf)wHvi7s zegbcZ%^xfqmPNfm4H89$F?E?2w0ZlNgdYLEty(Xm&tng+F6Eoiovmx6VrgYH21dcr z3=UE3{!7B9vc%}^+(%ET`e@nAp%}&S4yNZCr!ax#RinIo?_nppIsHk&A&C!5FViYT zk1xvt7RiL1UO|kGb6VJ-EW&vA?q3#f21Qd2&2wM=hLJkEla?)wHbD?o8psz;(_Z+H zk}d)=d@qB+@ajZTkF**SE*FxCXWW=jd-<;Dh;2O4o_UgWMF%6jCHltqLUy(^C7rDOU}JmbE2J3%A>Me~`alJ0>fV7m?aDFST8FRiR)q%snN2XbClFt!!V<#BxpUL=`)&*WfX+V0-}Vt zXHT7zvw6IO+k)I3p~JY~j7#lT*9n}$4k&v0&l8$Np!Qo9Syj^(@i$D$tsxl{33l7A zOB^bWxlGebk1pPa3amcB?i8Dj|TL+?En#$JYRo!Mo)l|C%AGAdVo!WQJ zNQyK0gr8OdBskk8sr5&S>n}z93Ua$0=)yiw;Zvf@InoEdOP0it=OG$TpiG4O#IRyM z&Mo{Kmu$7@5bl1^nxcFslp$FnfvS~Ka>uXd-o8v;QJT8trLG{fqd){wU&b$o4hc%A z(&`#-FmZM}_-b@0^0$!pNeMw&kOy<1!h^5;4K$>}4?j#~xp=1|`HpX6Z49Uj-2U#% zxNlLFWc*KHok5ZqgF3HI+VQoi*k3>)xHvqFNkC0!{QEy?L3qiPM$|+8YdkK(l$LnC z6mw(CjaAMo8oEDUlx4TE{WWF9()U}NCxLXi1_6eI#hm>nOz6`DKzPe z0QDfvnOap*OJ6mof{aE8?MzH=j?j$JX6%-GEIz;t81O>+gx*dgupk!V!i(^(Or*IGxHTpUK(1A z4dHs+t!xIYX#KGv^ZWipkkor2(ZK-B^C8K@!l<6bpyk&5+95C}Nh1ehO7Df&y^U*) z%o(#<;>yg2H3^JM!Ma{0iGzb>QXd!+Dem76;L>r=?s3<$6t0bFc>6qRHE@OtiKTsV zB@HqafAayw0$PF4J~BwQ2xuvoah4vd)Xj>^>DqMsHK}?w{#PE|?gmOAs(?c#XEFwu zDdoF2gd`x3BFpbJ6PQ3Rgqr~HbECZ6_k4r@%HI3TZg}l9U0{6!29{RBUJQ=HqpEV>-mMp$FFe3xj^zFEFI#{vkhmsv;BMTrxg=2&@glS1^+&yB=~-JqfrwQw zY-eyik&gj0eN)6gm(|0JsL@!akJqKAEDjr&L}&wXqtc;bhaAEDw*i1k<&i93Aq~+8 zkx4;s|8igjhIf=+dCQazn-VAnA0BPKZMWIVB(%@os?|zHqJD@t=W<_VJJ-O{8m|$P z9zNelWbzH$s&s52#j5hOiS8T9gx|1&AAA2A(*^56IW3nCe=ET3CACB*HQNZ-QR^F8 zS>xYFm1yB)1Isn3@Os*SN-5Dyz4)IQFcg5q&il9UIc)?M%OsEN^p{dK+wqevGnQ+d z!M08|<{j`wLWl!#<~%?~ zb}jfl-fMQ+ou=T#UqI@C*Oz!D8M3fr9EnbqglDnO$rz}J@ec|Tf3uOHa*uyG(I4+n z+MU33JS|jP2{{l&?fJr?#2=Q)7Icj$WmNy!6Cin?7ElMD-dGQ^D7Fqd8a+%w_vNe_0+xbz}(zOMK0B1fqv zezQ=9e6lnpHy%%JcqItB053RsNzlUa7VyeuN_OdcuL5Rgk=56or#w7k9^k(N=$J6P zj`ZzeV%#M^v}0L4Woz*kej+2X5N_xGH|CvHg|R{d#dx2pDfBRY&eV>P;He<3%7D6k(AB7d8w<;@Hg3fhN-p_7QB(#i ziD?53cGkF?f(H|_RKV)5l# zX#5LlwuwUZe&2N$k3!RPvvJxyi#h$Z-Q=WY*rPt6Uim8V zDRl`)MSK1DD5TXz+a$VCu8(G)pC`0S!RPI-xU3{x?Uui*>)0AoTy zjg?yGmB`5XFx*fP_zJqQ`+nc>(7^C(g@T&+Q9jzEs}1O-h7qt2LrYbN(poL_%4{Lb z)a%>%dj7n<_5IoL`J}Hl=|S{$APYCKKxlR6r}_)xm{zqm51|9H(=|6$_vpm8`Ld#D z9W9`mTBhP@Bw_`Ibeq`c%;30|u^T3~RIIz-=cRs(%4OC&RsM;%xVDdSv3t`v0-grY zi}o*%=T3w)I<=LLhn|jozDSUM=e=ey;$JI%Q>%07#D1x_^X@m7Yox?ob?2;$U)$sy zfP5p4DBvRLbgUKNZO4v*@)!VW=taOk6(wV zzKc`*v1r=)+DybAt>)OhK*T)=t>|5V&aY5#9(^av(tK28z5RMrt34OaINJzwS6#%}fjJUC1y2pSj+-68&2laD>v99^6l*V*$TED_;^DZXtc0NiO z2!Pu5)8>%9)?r9(Yn78#6Y`>XflDZ?@A4+2_B*H9kW8Eol{}KHp9zv`>zJkm(#)e2 z(QruXqx~4oVaDMxJNOrTVTd?=d$g$fv&aZ8XUY2fIs}&275=Spe!`^0d;nd{I8tEA z<8%kKLHBt;%8(GtD5DU`nW)~_J}&%4k+61H(BfPA&~{L=odOy4CqW0WzTU1wc-8T< z^G%zy8F6AO$<=H9C&eB`h@)dE*~WCDWVP>#zatZ50Olw!c@zLwVq? z(_g%3D%5e8;1l)UX7m;6E#>dItOyl4k|p+62|H}C^+{SM?`E7zC7I&T<-~^YHcN5s z7NLR&6Q?oEQ`G#kodDk@`=mCCZQgv}fH@~Fas{$hMkg_DWULiTUgRKt8GYhe6;C~f zUsLX3u)S|hkH~Xj{OMjq;*S3>Z*yagS`N7ZBW@+1_vm`JS}t5}fBrR?8=jJPaZPO^ z#Db^o(h7%TY&V^!LS4B_=@eGD5#&fmAj59`x`Llrsy8@2<4N&+``VnrFRTszOo(Ky zpos43^?&f4oez1C{mHy&FXUtGiv5cgV`ieU5=?`bwWXN%$yj-nd5YrO4Tal@xVERc z{d*O2^9j=HSsURMeF$ge+475SW0hKiNd1>;^A9=iQ~#1wN!)GoymwG-wb42IG1&>h z5V_(|C=GzA?8SZCZ?+>8qauIZ3}4uh>je>>e>ahKWhdM1cCME7&JJOZiMNIT2F=5Z za@SI$6x%?{&w^I=U(#a{6U)-v=Z|eCe-=u}5e>Up&z>I5IqD%O19U-%A^(jm3ncS=iOMLI0`jU7* z1-K&3uq-4@lMXPQIN3%N=dVTYUV}2pYES^0)M)A#%qv>JPehC}_+ zPb*u9CCi4ggMbcjK4N}(&$15<>+yEeT+!aIyaqAqcH?V&U9{yi`-eten&yPx*+6Ky zt#Lcj?0XY*R0aC8L!tx*iinh4DVkaxTJX^M*)tbJIicav#=?tfPF!q+mLLg zs0EAE5@!hRSkl z)Lnti=Wgf2C;@8}gtkmzMmEP-pYR*i^zR&KF@O`*Y}%rozB7_YdbrN)0jHdX6t?rP z|MfV3oh9mQinh#(DEjU5;LnehrVyqel~iLq`G`jn5SS&-xDnsmTO4!ZpF{%6-#T58Ea;p>1f*G$O3O z6|a|_z)=}XJ`HN3En{&n4@eMgg4Ms?Zs6HNji#i@Gd{YY^q7Jaj+Ey3ekvpAcxC-( zEh!pyN{#xYNk3vn`}b&Ym@R3n=X2P%*pqLL&b{u)UR&qWXk?ZO{AURA82b z;DCO|*!VWyj#S^&ILO^W{DA$F{P;n{b}e8L@$h+<`5R{sT^tK5sfUvi+; zAZ{*Gg)$G%NR6lfUT58l#+rwZBo^>enWX5&SkGdxM_BYvT_6IeMjNXFq5bldwq-qO z1cy-uURf#4z_G7M^ZZjB{6Qn6=uj6yr*^ngh-~fsRcDS7CFT(Rvx1z6owuI|g)9k9 z5_Y;g*vhUkPr*{vK@U(;Y0q-fFA5EQxaP*wIIHSibNEZy%804^PH8o`I83uOBJkv)2&60VrM?!UA|(HJ-{O`529$ zUZi?bYH9-c<+MP#NOhtf_U1B)1K_-8@s9tXQJryH1=Q}}aq-rIcvIj7?8|k%kqVu> zP~)e8hS7%?cE9@`jMY%D7A;2=5c1C!Iph`)eQ);tP0GXwm_JmX>3I?s60hR3m-l3U zC=oJ{btjaSmrl6aUBpabPr=)N25uc)(0o7;qX0&~@G3ebADR8TK1jGc2w(uj$6B<(HC+!59ylj|CCU??IE=%() z?k$8|Z$FTNmy_(5|5)?UVh>;YwB@QqC*Njf@nh^yK&;kW{!BkOCJ6-*(tY1zo#fa) z&p#6*cn`t$O;G!t@c<|`YIwshc|``Q9$Bxp6!hedLBG#ltAu?D`F<-!d<*=CL}^k4 zu~lyO4Y$;~mN@?DvCS#A4;bNf6+mrJLF`PsUprK zm*T>(;sbCp3UtYqE*ob0>!Ohra^QQ+ET-)F{Vhy>o={Wcg?J=ek7sn&5|TMsbHg{+ zIMa_?NKuq5T=JVsMoExJ-|!*mm`kfA_l01-;#+S+g#0XbtWsE`|9nnkcBTQjos!U_ zrBUDm6QM(vZ}Z<2x{XpAL0d9?XW|Ao7-M z%`3h6{CSLU91xew&VF4^{$zfCuB7<)1*NgVII$c7L{$U-s4(1b1AI`U{O~!PXI~Oh z3+@TJb)Oi-2j8*%P)kwkOB3EP>X>k5uExu}6tN)@9*yFu?ZgB22|~d49OLqJa<%Rp z^%(DPsqnAKPSOZ!*Z%S)#cNt}CojmGwEHzW{I)4)gEe;B!{gasN$u_80ku!XKW?sq zX?0s;=mxiVa@pG)5ypn| zt(y5g(xfmGp5xfb-&gKwv5i$Ffntd7T{ka~5CB7R|qJOl%BF z1}8(pi0ISpkB4XTI0x2)wG0R?vM;58joh6@oR|P{ z5(l>ZTCt0jet(@dv1`8%sK9WAT8=cpwk zU5+@jf55er{DHF*#PpIi8G2Yfz=vLin^AxixL=> zxT8Hsq=b3!A^!4{@rO#w=;6|9gOD=b-)l3Jk(zV{GnemV1wdz2?LI0J7iGgmh(n7e zbgN(%fMb1UhRSB$&i$!7eZ0~)H3gCtobFIIZ;6ES-9fE6WkGlmk&A&h3Fw$Dzd3aH zbQiOmH8hQd?CO6)>{wkPI}BjRP!1gOe0B{V;nI7H29cO25)vdrm5&9609~|h>O-BS zUag`ZO^r5ndpbak$kA_E9Pj1eJRN(klQ>-OmElGAl2f|9t$#78Au`oJv$Sd1;wU@u z>^14uP7H<#_m5)mk5An@NBt@0D1`T|!>l}W#9VF5i2&Dgx~w zFu0&k2w3rj`h!DeuLPP}m^`zQ_OgC-HE<_l_-_G3Dyg#Wys)|l}1k5C&!1=_GxOU>e1R}Xc5 z>)Zk*FM~&)8>L7AWvE6^^U^ykC0W)lkA-1r6VQ=jjFD+c=F3Tab*Uz?PE`bbfe$bZ zK{;}ST_o*G&P2RZRj`Kx6v7Z}D0ZgTBdEeqHhIUId;>u)y{0eE7SJp!gfJ}Udx>Q` zZQa%Wg^{LhEtKlQ7OZUFvgwggIe7cBDcfMir5tq2DA&Y3-a_fat;Tg3`9($Gy|4)9&zblA?Xu;L+H z-*GWpMg-xfez73FQ5^On@Q^v5o8$+`?_o<m)p}W>dB**D zkq^;WqBa6rZ;&dD3CdVE;7f<7VD)-*H#zAFPMLA5nZADO0t4xQg*L&NOA_`03o$cF zbO)6v$Y1P?nW)R#?pt)(Q6%`BT7foQ*0bsuzTUb7*d(UW6Z`&)`pEfk<*&;KWHI?$ zI2;3()Tt)j?^ucFJHtntuLW??0uo)`>l=QMu>?N3cxOce8$;Eh5VzckQ!1^jYz--M zA7C~e*|19W$AO+)Pw@2l)`6)}t9tkE4Id+nF;$EhlG zxztltULVi&s^o}T-Go+I)lC+ftM;dqY@lbWnlxO%PY+UU<+UzTMVJ|h@f3V2v<1jN zDQ5@WG^OWa(M(OLH1oX&x+IHa0sU+++tLG3$|3>DKi`^(-vd$bQ0l@9gZ|ahlN;>w z(wbM1i+|%1?`Gcn!xG7 zG(Guiw~SIl424+SGJ!W2Py17f);!7{@fnS?SPD>v#xA&}c$q>S?)%Wu`3q1ofMzx# zZRFK?_E@{&45qQd49TfkWfa`bpuw6l2A>O%i{>zk;2T*j+dZMX)L-GOi+5)A1)c%9 z%V_7m6}p7?PGBj!=-uE~_y781L!)RcQHGL2UG#D^N3lbo`9IL5VK#p}h>F_{4rH0k z99#ssm{I4%yj0G;l`{CTbb)v++}5?}OJ}#y2R{OY9Is0`5X)pH|B3?8*D=0ZtK}T` EU-A`lbN~PV literal 0 HcmV?d00001 From 4701d3b215c0f9e4f461d7b724165c41c7ba1b5a Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Tue, 31 Dec 2024 12:29:53 -0500 Subject: [PATCH 14/28] final set of additions... i hope --- code/game/machinery/deployable.dm | 14 +- code/game/objects/items/grenades/smokebomb.dm | 14 +- code/game/objects/items/holosign_creator.dm | 25 +++- .../items/storage/boxes/security_boxes.dm | 12 ++ code/game/objects/items/tanks/watertank.dm | 1 + code/game/objects/structures/holosign.dm | 124 ++++++++++++++---- code/modules/cargo/packs/security.dm | 3 +- code/modules/clothing/masks/hailer.dm | 7 +- code/modules/clothing/suits/ablativecoat.dm | 20 +-- code/modules/clothing/suits/armor.dm | 12 +- .../guns/special/grenade_launcher.dm | 2 +- .../projectile/energy/net_snare.dm | 17 ++- code/modules/vending/security.dm | 11 +- code/modules/vending/wardrobes.dm | 2 +- .../security/code/weapons/lawbringer.dm | 2 +- .../virology/items/bio_hazard_deployable.dm | 8 +- 16 files changed, 212 insertions(+), 62 deletions(-) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index a04eddfc34c4..ca9c6769c880 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -190,7 +190,19 @@ balloon_alert(user, "barrier [locked ? "locked" : "unlocked"]") else balloon_alert(user, "no access!") - return ..() + else + return ..() + +/obj/structure/barricade/security/wrench_act(mob/living/user, obj/item/tool, params) + if(locked) + balloon_alert(user, "must be unlocked first!") + return + if(!tool.use_tool(src, user, 2 SECONDS, volume=50)) + return + set_anchored(!anchored) + tool.play_tool_sound(src) + user.balloon_alert_to_viewers("[anchored ? "anchored" : "unanchored"]") + return TOOL_ACT_TOOLTYPE_SUCCESS /obj/structure/barricade/security/emp_act(severity) toggle_lock() diff --git a/code/game/objects/items/grenades/smokebomb.dm b/code/game/objects/items/grenades/smokebomb.dm index 1c64a349d003..8c6089973ec3 100644 --- a/code/game/objects/items/grenades/smokebomb.dm +++ b/code/game/objects/items/grenades/smokebomb.dm @@ -11,12 +11,13 @@ inhand_icon_state = "smoke" slot_flags = ITEM_SLOT_BELT ///It's extremely important to keep this list up to date. It helps to generate the insightful description of the smokebomb - var/static/list/bruh_moment = list("Dank", "Hip", "Lit", "Based", "Robust", "Bruh", "Gamer") + var/list/bruh_moment = list("Dank", "Hip", "Lit", "Based", "Robust", "Bruh", "Gamer") //monkestation edit + var/writing_utensil = "crayon" //monkestation edit ///Here we generate the extremely insightful description. /obj/item/grenade/smokebomb/Initialize(mapload) . = ..() - desc = "The word '[pick(bruh_moment)]' is scribbled on it in crayon." + desc = "'[pick(bruh_moment)]' is scribbled on it in [writing_utensil]." //monkestation edit ///Here we generate some smoke and also damage blobs??? for some reason. Honestly not sure why we do that. /obj/item/grenade/smokebomb/detonate(mob/living/lanced_by) @@ -34,3 +35,12 @@ var/damage = round(30/(get_dist(blob, src) + 1)) blob.take_damage(damage, BURN, MELEE, 0) qdel(src) + +//MONKESTATION EDIT START +/obj/item/grenade/smokebomb/security + name = "security smoke grenade" + icon_state = "smokered" + //dumb list name but i respect the joke + bruh_moment = list("Cover up", "Plausible Deniability", "Clown B-Gone", "Smoke Em!", "Syndicate Repellant") + writing_utensil = "chalk" +//MONKESTATION EDIT STOP diff --git a/code/game/objects/items/holosign_creator.dm b/code/game/objects/items/holosign_creator.dm index a5edea404fb0..771f7ab5b130 100644 --- a/code/game/objects/items/holosign_creator.dm +++ b/code/game/objects/items/holosign_creator.dm @@ -98,20 +98,37 @@ /obj/item/holosign_creator/security name = "security holobarrier projector" - desc = "A holographic projector that creates holographic security barriers." + desc = "A holographic projector that creates holographic security barriers. You can remotely open barriers with it." icon_state = "signmaker_sec" holosign_type = /obj/structure/holosign/barrier - creation_time = 30 + creation_time = 2 SECONDS max_signs = 6 +/obj/item/holosign_creator/security/afterattack(atom/target, mob/user) + var/obj/structure/holosign/barrier/barrier + if(target.type == holosign_type) + barrier = target + if(barrier.openable) + barrier.open(user) + return ..() + /obj/item/holosign_creator/engineering name = "engineering holobarrier projector" - desc = "A holographic projector that creates holographic engineering barriers." + desc = "A holographic projector that creates holographic engineering barriers. You can remotely open barriers with it." icon_state = "signmaker_engi" holosign_type = /obj/structure/holosign/barrier/engineering - creation_time = 30 + creation_time = 2 SECONDS max_signs = 6 +/obj/item/holosign_creator/engineering/afterattack(atom/target, mob/user) + var/obj/structure/holosign/barrier/engineering/barrier + if(target.type == holosign_type) + barrier = target + if(barrier.openable) + barrier.open(user) + return ..() + + /obj/item/holosign_creator/atmos name = "ATMOS holofan projector" desc = "A holographic projector that creates holographic barriers that prevent changes in atmosphere conditions." diff --git a/code/game/objects/items/storage/boxes/security_boxes.dm b/code/game/objects/items/storage/boxes/security_boxes.dm index 9c401f999078..2a97abc8a294 100644 --- a/code/game/objects/items/storage/boxes/security_boxes.dm +++ b/code/game/objects/items/storage/boxes/security_boxes.dm @@ -10,6 +10,18 @@ for(var/i in 1 to 7) new /obj/item/grenade/flashbang(src) +//MONKESTATION EDIT START +/obj/item/storage/box/sec_smokebomb + name = "box of smoke bomb grenades (WARNING)" + desc = "The rest of the warning label is torn off..." + icon_state = "secbox" + illustration = "grenade" + +/obj/item/storage/box/sec_smokebomb/PopulateContents() + for(var/i in 1 to 7) + new /obj/item/grenade/smokebomb/security(src) +//MONKESTATION EDIT STOP + /obj/item/storage/box/stingbangs name = "box of stingbangs (WARNING)" desc = "WARNING: These devices are extremely dangerous and can cause severe injuries or death in repeated use." diff --git a/code/game/objects/items/tanks/watertank.dm b/code/game/objects/items/tanks/watertank.dm index 388cb65d49b3..767c929b6f8b 100644 --- a/code/game/objects/items/tanks/watertank.dm +++ b/code/game/objects/items/tanks/watertank.dm @@ -181,6 +181,7 @@ inhand_icon_state = "pepperbackpacksec" custom_price = PAYCHECK_CREW * 2 volume = 1000 + slowdown = 0 //monkestation edit /obj/item/watertank/pepperspray/Initialize(mapload) . = ..() diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 4402b1801b57..007f1ea4987f 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -3,7 +3,7 @@ /obj/structure/holosign name = "holo sign" - icon = 'icons/effects/effects.dmi' + icon = 'icons/effects/holosigns.dmi' anchored = TRUE max_integrity = 1 armor_type = /datum/armor/structure_holosign @@ -21,9 +21,7 @@ /obj/structure/holosign/Initialize(mapload, source_projector) . = ..() - var/turf/our_turf = get_turf(src) - if(use_vis_overlay) - SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, MUTATE_PLANE(GAME_PLANE_UPPER, our_turf), dir) //you see mobs under it, but you hit them like they are above it + create_vis_overlay() if(source_projector) projector = source_projector LAZYADD(projector.signs, src) @@ -40,6 +38,11 @@ return attack_holosign(user, modifiers) +/obj/structure/holosign/CanAllowThrough(atom/movable/mover, border_dir) + . = ..() + if(!. && isprojectile(mover)) // Its short enough to be shot over + return TRUE + /obj/structure/holosign/proc/attack_holosign(mob/living/user, list/modifiers) user.do_attack_animation(src, ATTACK_EFFECT_PUNCH) user.changeNext_move(CLICK_CD_MELEE) @@ -52,37 +55,100 @@ if(BURN) playsound(loc, 'sound/weapons/egloves.ogg', 80, TRUE) +/obj/structure/holosign/proc/create_vis_overlay() + var/turf/our_turf = get_turf(src) + if(use_vis_overlay) + alpha = 0 + SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) + SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, MUTATE_PLANE(GAME_PLANE, our_turf), dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it + + /obj/structure/holosign/wetsign name = "wet floor sign" + icon = 'icons/effects/effects.dmi' //spinny sign cooler desc = "The words flicker as if they mean nothing." - icon = 'icons/effects/effects.dmi' icon_state = "holosign" /obj/structure/holosign/barrier - name = "holobarrier" - desc = "A short holographic barrier which can only be passed by walking." + name = "security holobarrier" + desc = "A strong short security holographic barrier used for crowd control and blocking crime scenes. Can only be passed by walking." icon_state = "holosign_sec" + base_icon_state = "holosign_sec" pass_flags_self = PASSTABLE | PASSGRILLE | PASSGLASS | LETPASSTHROW density = TRUE max_integrity = 20 - var/allow_walk = TRUE //can we pass through it on walk intent + COOLDOWN_DECLARE(cooldown_open) + ///Can we pass through it on walk intent? + var/allow_walk = TRUE + ///Can it be temporarily opened with the holosign projector? + var/openable = TRUE + ///Is it opened? + var/opened = FALSE + ///What is the icon of opened holobarrier? + var/pass_icon_state = "holosign_pass" /obj/structure/holosign/barrier/CanAllowThrough(atom/movable/mover, border_dir) . = ..() if(.) return + if(opened) + return TRUE if(iscarbon(mover)) - var/mob/living/carbon/C = mover - if(C.stat) // Lets not prevent dragging unconscious/dead people. + var/mob/living/carbon/moving_carbon = mover + if(moving_carbon.stat) // Lets not prevent dragging unconscious/dead people. return TRUE - if(allow_walk && C.m_intent == MOVE_INTENT_WALK) + if(allow_walk && moving_carbon.m_intent == MOVE_INTENT_WALK) return TRUE +// /obj/structure/holosign/barrier/ranged_item_interaction(mob/living/user, obj/item/tool, list/modifiers) +// . = ..() +// if(tool != projector) +// return +// if(openable) +// open(user) + +/obj/structure/holosign/barrier/attackby(obj/item/tool, mob/living/user, params) + . = ..() + if(tool != projector) + return + qdel(src) + +/obj/structure/holosign/barrier/update_icon_state() + if(openable) + if(!opened) + icon_state = base_icon_state + else + icon_state = pass_icon_state + create_vis_overlay() + . = ..() + +/obj/structure/holosign/barrier/proc/open(user) + if(!openable) + balloon_alert(user, "unable!") + return + + if(!COOLDOWN_FINISHED(src, cooldown_open)) + balloon_alert(user, "on cooldown!") + return + + if(!opened) + density = FALSE + opened = TRUE + playsound(src, 'sound/machines/door_open.ogg', 50, TRUE) + else + density = TRUE + opened = FALSE + playsound(src, 'sound/machines/door_close.ogg', 50, TRUE) + + update_icon_state() + COOLDOWN_START(src, cooldown_open, 1 SECONDS) + /obj/structure/holosign/barrier/wetsign name = "wet floor holobarrier" - desc = "When it says walk it means walk." - icon = 'icons/effects/effects.dmi' - icon_state = "holosign" + desc = "When it says walk it means WALK!" + icon_state = "holosign_dense" + max_integrity = 1 + openable = FALSE /obj/structure/holosign/barrier/wetsign/CanAllowThrough(atom/movable/mover, border_dir) . = ..() @@ -94,7 +160,10 @@ return FALSE /obj/structure/holosign/barrier/engineering + name = "engineering holobarrier" + desc = "A short engineering holographic barrier used for designating hazardous zones, slightly blocks radiation. Can only be passed by walking." icon_state = "holosign_engi" + base_icon_state = "holosign_engi" rad_insulation = RAD_LIGHT_INSULATION /obj/structure/holosign/barrier/atmos @@ -102,6 +171,7 @@ desc = "A holographic barrier resembling a firelock. Though it does not prevent solid objects from passing through, gas is kept out." icon_state = "holo_firelock" density = FALSE + openable = FALSE anchored = TRUE can_atmos_pass = ATMOS_PASS_NO alpha = 150 @@ -125,6 +195,7 @@ /obj/structure/holosign/barrier/atmos/sturdy name = "sturdy holofirelock" max_integrity = 150 + openable = FALSE /obj/structure/holosign/barrier/atmos/tram name = "tram atmos barrier" @@ -161,9 +232,9 @@ name = "\improper PENLITE holobarrier" desc = "A holobarrier that uses biometrics to detect human viruses. Denies passing to personnel with easily-detected, malicious viruses. Good for quarantines." icon_state = "holo_medical" - alpha = 125 //lazy :) var/force_allaccess = FALSE - COOLDOWN_DECLARE(buzzcd) + openable = FALSE + COOLDOWN_DECLARE(virus_detected) /obj/structure/holosign/barrier/medical/examine(mob/user) . = ..() @@ -184,16 +255,21 @@ /obj/structure/holosign/barrier/medical/Bumped(atom/movable/AM) . = ..() - icon_state = "holo_medical" - if(ishuman(AM) && !CheckHuman(AM)) - if(COOLDOWN_FINISHED(src, buzzcd)) - var/obj/item/holosign_creator/medical/medical = projector - medical.try_alert(AM, get_area(src)) - playsound(get_turf(src),'sound/machines/buzz-sigh.ogg',65,TRUE,4) - COOLDOWN_START(src, buzzcd, 6 SECONDS) - icon_state = "holo_medical-deny" + if(!ishuman(AM) && CheckHuman(AM)) + return + + if(!COOLDOWN_FINISHED(src, virus_detected)) + return + var/obj/item/holosign_creator/medical/medical = projector + medical.try_alert(AM, get_area(src)) + playsound(get_turf(src),'sound/machines/buzz-sigh.ogg', 65, TRUE, 4) + COOLDOWN_START(src, virus_detected, 6 SECONDS) + icon_state = "holo_medical-deny" + update_icon_state() /obj/structure/holosign/barrier/medical/proc/CheckHuman(mob/living/carbon/human/sickboi) + icon_state = "holo_medical" + update_icon_state() var/threat = sickboi.check_virus_new() if(threat >= DISEASE_HOLOSIGN_BLOCK) return FALSE diff --git a/code/modules/cargo/packs/security.dm b/code/modules/cargo/packs/security.dm index 597b143755e9..8b51db24bbb0 100644 --- a/code/modules/cargo/packs/security.dm +++ b/code/modules/cargo/packs/security.dm @@ -103,10 +103,11 @@ /datum/supply_pack/security/supplies name = "Security Supplies Crate" - desc = "Contains seven flashbangs, seven teargas grenades, six flashes, seven handcuffs, and two security utility vouchers." //monkestation edit + desc = "Contains seven flashbangs, seven smoke bombs, seven teargas grenades, six flashes, seven handcuffs, and two security utility vouchers." //monkestation edit cost = CARGO_CRATE_VALUE * 3.5 access_view = ACCESS_ARMORY contains = list(/obj/item/storage/box/flashbangs, + /obj/item/storage/box/sec_smokebomb, //monkestation edit /obj/item/storage/box/teargas, /obj/item/storage/box/flashes, /obj/item/storage/box/handcuffs, diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 0aec0d4d788d..d478fd5eadcc 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -204,9 +204,8 @@ GLOBAL_LIST_INIT(hailer_phrases, list( if(!isliving(pointed_at)) return - play_phrase(usr, GLOB.hailer_phrases[select_phrase()]) + halt() pointed_at.do_alert_animation() - COOLDOWN_START(src, hailer_cooldown, PHRASE_COOLDOWN) /obj/item/clothing/mask/gas/sechailer/dropped(mob/user) . = ..() @@ -215,8 +214,8 @@ GLOBAL_LIST_INIT(hailer_phrases, list( //MONKESTATION EDIT STOP /obj/item/clothing/mask/whistle - name = "police whistle" - desc = "A police whistle for when you need to make sure the criminals hear you." + name = "whistle" //monkestation edit + desc = "A whistle for when you need to make sure the criminals hear you." //monkestation edit icon_state = "whistle" inhand_icon_state = null slot_flags = ITEM_SLOT_MASK|ITEM_SLOT_NECK diff --git a/code/modules/clothing/suits/ablativecoat.dm b/code/modules/clothing/suits/ablativecoat.dm index 8c3ab189b7b1..c11b68410fd7 100644 --- a/code/modules/clothing/suits/ablativecoat.dm +++ b/code/modules/clothing/suits/ablativecoat.dm @@ -7,7 +7,7 @@ flags_inv = HIDEHAIR | HIDEEARS armor_type = /datum/armor/hooded_ablative strip_delay = 30 - var/hit_reflect_chance = 50 + //var/hit_reflect_chance = 50 //monkestation removal /datum/armor/hooded_ablative melee = 10 @@ -18,10 +18,12 @@ acid = 100 /obj/item/clothing/head/hooded/ablative/IsReflect(def_zone) + if(def_zone == "") //something is fucky and this happens every now and then but the damage defaults to the person's chest so this is okayish + return TRUE if(def_zone != BODY_ZONE_HEAD) //If not shot where ablative is covering you, you don't get the reflection bonus! return FALSE - if (prob(hit_reflect_chance)) - return TRUE + //if(prob(hit_reflect_chance)) monkestation edit + return TRUE /obj/item/clothing/suit/hooded/ablative name = "ablative trenchcoat" @@ -35,21 +37,23 @@ hoodtype = /obj/item/clothing/head/hooded/ablative strip_delay = 30 equip_delay_other = 40 - var/hit_reflect_chance = 50 + //var/hit_reflect_chance = 50 //monkestation removal /obj/item/clothing/suit/hooded/ablative/Initialize(mapload) . = ..() allowed = GLOB.security_vest_allowed /obj/item/clothing/suit/hooded/ablative/IsReflect(def_zone) + if(def_zone == "") //something is fucky and this happens every now and then but the damage defaults to the person's chest so this is okayish + return TRUE if(!(def_zone in list(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_GROIN, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG))) //If not shot where ablative is covering you, you don't get the reflection bonus! return FALSE - if (prob(hit_reflect_chance)) - return TRUE + //if(prob(hit_reflect_chance)) monkestation edit + return TRUE /obj/item/clothing/suit/hooded/ablative/ToggleHood() . = ..() - if (!hood_up) + if(!hood_up) return var/mob/living/carbon/user = loc var/datum/atom_hud/hud = GLOB.huds[DATA_HUD_SECURITY_ADVANCED] @@ -58,7 +62,7 @@ balloon_alert(user, "you put on the hood, and enable the hud") /obj/item/clothing/suit/hooded/ablative/RemoveHood() - if (!hood_up) + if(!hood_up) return ..() var/mob/living/carbon/user = loc var/datum/atom_hud/sec_hud = GLOB.huds[DATA_HUD_SECURITY_ADVANCED] diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 800e778923d8..348ed72d9a5b 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -321,11 +321,11 @@ bomb = 40 fire = 50 acid = 50 - wound = 20 + wound = 25 //monkestation edit: 20 to 25 /obj/item/clothing/suit/armor/laserproof name = "reflector vest" - desc = "A vest that excels in protecting the wearer against energy projectiles, as well as occasionally reflecting them." + desc = "A vest that excels in protecting the wearer against energy projectiles, as well as reflecting them." //monkestation edit icon_state = "armor_reflec" inhand_icon_state = "armor_reflec" blood_overlay_type = "armor" @@ -334,7 +334,7 @@ armor_type = /datum/armor/armor_laserproof resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF - var/hit_reflect_chance = 50 + //var/hit_reflect_chance = 50 //monkestation removal /datum/armor/armor_laserproof melee = 10 @@ -345,10 +345,12 @@ acid = 100 /obj/item/clothing/suit/armor/laserproof/IsReflect(def_zone) + if(def_zone == "") //something is fucky and this happens every now and then but the damage defaults to the person's chest so this is okayish + return TRUE if(!(def_zone in list(BODY_ZONE_CHEST, BODY_ZONE_PRECISE_GROIN, BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))) //If not shot where ablative is covering you, you don't get the reflection bonus! return FALSE - if (prob(hit_reflect_chance)) - return TRUE + //if(prob(hit_reflect_chance)) //monkestation removal + return TRUE /obj/item/clothing/suit/armor/vest/det_suit name = "detective's flak vest" diff --git a/code/modules/projectiles/guns/special/grenade_launcher.dm b/code/modules/projectiles/guns/special/grenade_launcher.dm index e5ce8c51316a..573d567d97fe 100644 --- a/code/modules/projectiles/guns/special/grenade_launcher.dm +++ b/code/modules/projectiles/guns/special/grenade_launcher.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/weapons/guns/ballistic.dmi' icon_state = "riotgun" inhand_icon_state = "riotgun" - w_class = WEIGHT_CLASS_BULKY + w_class = WEIGHT_CLASS_NORMAL //monkestation edit: bulky to normal throw_speed = 2 throw_range = 7 force = 5 diff --git a/code/modules/projectiles/projectile/energy/net_snare.dm b/code/modules/projectiles/projectile/energy/net_snare.dm index 7ab0c635b322..28629ceb4311 100644 --- a/code/modules/projectiles/projectile/energy/net_snare.dm +++ b/code/modules/projectiles/projectile/energy/net_snare.dm @@ -34,6 +34,19 @@ light_outer_range = 3 anchored = TRUE +/obj/item/restraints/handcuffs/holographic/dragnet + breakouttime = 15 SECONDS + trashtype = /obj/item/restraints/handcuffs/holographic/dragnet/used + +/obj/item/restraints/handcuffs/holographic/dragnet/used + desc = "A holographic projection of handcuffs, the projection seem rather weak." + item_flags = DROPDEL + +/obj/item/restraints/handcuffs/holographic/dragnet/used/dropped(mob/user) + user.visible_message(span_danger("[user]'s [name] dissapears!"), \ + span_userdanger("[user]'s [name] dissapears!")) + . = ..() + /obj/effect/nettingportal/Initialize(mapload, destination_beacon) . = ..() var/obj/item/dragnet_beacon/teletarget = destination_beacon @@ -44,7 +57,7 @@ for(var/mob/living/carbon/living_carbon in get_turf(src)) if(!living_carbon.handcuffed && living_carbon.canBeHandcuffed()) playsound(src, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) - living_carbon.set_handcuffed(new /obj/item/restraints/handcuffs/holographic/used(living_carbon)) + living_carbon.set_handcuffed(new /obj/item/restraints/handcuffs/holographic/dragnet/used(living_carbon)) living_carbon.update_handcuffed() for(var/mob/living/living_mob in get_turf(src)) do_teleport(living_mob, get_turf(teletarget), 1, channel = TELEPORT_CHANNEL_BLUESPACE) //Teleport what's in the tile to the beacon @@ -52,7 +65,7 @@ for(var/mob/living/carbon/living_carbon in get_turf(src)) if(!living_carbon.handcuffed && living_carbon.canBeHandcuffed()) playsound(src, 'sound/weapons/cablecuff.ogg', 30, TRUE, -2) - living_carbon.set_handcuffed(new /obj/item/restraints/handcuffs/holographic/used(living_carbon)) + living_carbon.set_handcuffed(new /obj/item/restraints/handcuffs/holographic/dragnet/used(living_carbon)) living_carbon.update_handcuffed() for(var/mob/living/living_mob in get_turf(src)) do_teleport(living_mob, get_turf(living_mob), 15, channel = TELEPORT_CHANNEL_BLUESPACE) //Otherwise it just warps you off somewhere. diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index 698b7ac9473f..ddff09f05350 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -9,15 +9,17 @@ req_access = list(ACCESS_SECURITY) products = list( /obj/item/restraints/handcuffs = 8, - /obj/item/restraints/handcuffs/cable/zipties = 10, - /obj/item/grenade/flashbang = 4, - /obj/item/assembly/flash/handheld = 5, + /obj/item/restraints/handcuffs/cable/zipties = 16, //monkestation edit 10 to 16 + /obj/item/grenade/flashbang = 7, //monkestation edit: 4 to 7 + /obj/item/grenade/smokebomb/security = 7, //monkestation edit + /obj/item/assembly/flash/handheld = 6, //monkestation edit: 5 to 6 /obj/item/food/donut/plain = 12, /obj/item/storage/box/evidence = 6, /obj/item/flashlight/seclite = 4, /obj/item/restraints/legcuffs/bola/energy = 7, - /obj/item/ammo_box/magazine/m35/rubber = 15, //monkestation edit: Paco sec + /obj/item/ammo_box/magazine/m35/rubber = 14, //monkestation edit: Paco sec /obj/item/clothing/mask/gas/sechailer = 6, ////monkestation edit + /obj/item/clothing/mask/whistle = 3, //monkestation edit /obj/item/bodycam_upgrade = 10, //monkestation edit: Security Liability Act ) contraband = list( @@ -36,6 +38,7 @@ /obj/item/watertank/pepperspray = 2, /obj/item/storage/belt/holster/energy = 4, /obj/item/citationinator = 3, // monkestation edit: security assistants + /obj/item/holosign_creator/security = 2, //monkestation edit /obj/item/modular_computer/laptop/preset/security = 3, //monkestation edit /obj/item/storage/box/pinpointer_pairs = 2, //monkestation edit /obj/item/dragnet_beacon = 3, //monkestation edit diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index fb06d9fa02f2..7c75269a466d 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -25,7 +25,7 @@ /obj/item/clothing/head/beret/sec = 3, /obj/item/clothing/head/soft/sec = 3, /obj/item/clothing/mask/bandana/striped/security = 3, - /obj/item/clothing/mask/balaclava = 3, //monkestation edit + /obj/item/clothing/mask/balaclava = 6, //monkestation edit /obj/item/clothing/under/rank/security/officer/skirt = 3, /obj/item/clothing/under/rank/security/officer/grey = 3, /obj/item/clothing/shoes/sneakers/secred = 3, //Monkestation edit diff --git a/monkestation/code/modules/security/code/weapons/lawbringer.dm b/monkestation/code/modules/security/code/weapons/lawbringer.dm index fcb7edfa6d7d..9aac19cffe80 100644 --- a/monkestation/code/modules/security/code/weapons/lawbringer.dm +++ b/monkestation/code/modules/security/code/weapons/lawbringer.dm @@ -437,7 +437,7 @@ /obj/projectile/lawbringer/smokeshot/on_hit(atom/target, blocked = 0, pierce_hit) . = ..() - var/datum/effect_system/fluid_spread/smoke/smoke = new + var/datum/effect_system/fluid_spread/smoke/bad/smoke = new smoke.set_up(3, holder = src, location = get_turf(target)) smoke.start() diff --git a/monkestation/code/modules/virology/items/bio_hazard_deployable.dm b/monkestation/code/modules/virology/items/bio_hazard_deployable.dm index 8428bbf45164..20e4f8971c89 100644 --- a/monkestation/code/modules/virology/items/bio_hazard_deployable.dm +++ b/monkestation/code/modules/virology/items/bio_hazard_deployable.dm @@ -1,7 +1,7 @@ -/obj/structure/holosign/barrier/medical - icon = 'monkestation/code/modules/virology/icons/biohazard.dmi' - icon_state = "biohazard" - alpha = 125 +///obj/structure/holosign/barrier/medical + //icon = 'monkestation/code/modules/virology/icons/biohazard.dmi' + //icon_state = "biohazard" + //alpha = 125 /obj/item/holosign_creator/medical/proc/try_alert(atom/movable/AM, area/host_area) if(!isliving(AM)) From d1495550f25d63f7f16680f383f4904e4a24b17a Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Tue, 31 Dec 2024 12:43:57 -0500 Subject: [PATCH 15/28] helmet inhand sprites --- .../mob/inhands/equipment/helmet_lefthand.dmi | Bin 0 -> 337 bytes .../mob/inhands/equipment/helmet_righthand.dmi | Bin 0 -> 338 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 monkestation/icons/mob/inhands/equipment/helmet_lefthand.dmi create mode 100644 monkestation/icons/mob/inhands/equipment/helmet_righthand.dmi diff --git a/monkestation/icons/mob/inhands/equipment/helmet_lefthand.dmi b/monkestation/icons/mob/inhands/equipment/helmet_lefthand.dmi new file mode 100644 index 0000000000000000000000000000000000000000..78ac79e5f9032d602233a49c14c42675726873bc GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0J3?w7mbKU|e(Ey(iSD(y6cUM+XczhDN3XE)M-ob0NQh!U67;^d;tf|AVqJO+k}Il*BCMWx@r z1Q&e#`b5iHSL@uF^T8WJ4K5l#c%*aQNAn~@QBUs<3*#W;%f?;`a~@4PGATqMSX0?l z-F&M{XScEH<`oi4y1R|nY8aY}9x;0o6jt!Hm~l2YL&OuQUP<9}Uo-U3d9-YYv z60D08HZZv{x=92FFwSOjWOZa*5#*?t!_^WyCy}dV$_7mVBeN#W0JCGu6nYwU84e}+ z9(d((tsy|dc#7z5E*4{k)lGp0TyBg@8CGsNz$dVjm9IfVw}8PVvyoZBi(3XHy0od` c&jKcfm_+uAtK%#_0+XczhDN3XE)M-ob0NQh!U67;^d;tf|AVqJO+k}Il*BCMWx@r z1Q&e#`b5iHSL@uF^T8WJ4K5l#c%*aQNAn~@QBUs<3*#W;%f?;`a~@4PGATqMSX0?l z-F&M{XScEH<`oi4y1R|nY8aY}9x;0o6jt!Hm~l2YL&OuQUP<9{eo-U3d9-YYv z60D081eh4z7S)PmBvaa&p)_#ic9#GE literal 0 HcmV?d00001 From 146160fbfacb07184ef693974fc959d2c5835d61 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Tue, 31 Dec 2024 13:32:25 -0500 Subject: [PATCH 16/28] more changes --- .../items/implants/implant_mindshield.dm | 2 ++ code/game/objects/items/storage/belt.dm | 2 +- .../items/storage/boxes/security_boxes.dm | 2 +- code/modules/clothing/head/helmet.dm | 3 +++ code/modules/clothing/masks/hailer.dm | 7 ++++++ code/modules/mining/voucher_sets.dm | 24 +++++++++++++++++-- code/modules/vending/security.dm | 2 ++ 7 files changed, 38 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/implants/implant_mindshield.dm b/code/game/objects/items/implants/implant_mindshield.dm index b3b9069384d4..6608d0dfdace 100644 --- a/code/game/objects/items/implants/implant_mindshield.dm +++ b/code/game/objects/items/implants/implant_mindshield.dm @@ -52,8 +52,10 @@ /obj/item/implanter/mindshield name = "implanter (mindshield)" imp_type = /obj/item/implant/mindshield + custom_premium_price = PAYCHECK_COMMAND * 2 //monkestation edit /obj/item/implantcase/mindshield name = "implant case - 'Mindshield'" desc = "A glass case containing a mindshield implant." imp_type = /obj/item/implant/mindshield + diff --git a/code/game/objects/items/storage/belt.dm b/code/game/objects/items/storage/belt.dm index 9173cf814c09..e357528ab2b6 100644 --- a/code/game/objects/items/storage/belt.dm +++ b/code/game/objects/items/storage/belt.dm @@ -372,7 +372,7 @@ inhand_icon_state = "securitywebbing" worn_icon_state = "securitywebbing" content_overlays = FALSE - custom_premium_price = PAYCHECK_COMMAND * 3 + custom_premium_price = PAYCHECK_COMMAND * 2 //monkestation edit: 3 to 2 /obj/item/storage/belt/security/webbing/Initialize(mapload) . = ..() diff --git a/code/game/objects/items/storage/boxes/security_boxes.dm b/code/game/objects/items/storage/boxes/security_boxes.dm index 2a97abc8a294..a12e86836111 100644 --- a/code/game/objects/items/storage/boxes/security_boxes.dm +++ b/code/game/objects/items/storage/boxes/security_boxes.dm @@ -12,7 +12,7 @@ //MONKESTATION EDIT START /obj/item/storage/box/sec_smokebomb - name = "box of smoke bomb grenades (WARNING)" + name = "box of smoke grenades (WARNING)" desc = "The rest of the warning label is torn off..." icon_state = "secbox" illustration = "grenade" diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index e8608effe4a6..9c3e26b37d1d 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -71,6 +71,9 @@ desc = "Standard Security gear. Protects the head from impacts." icon = 'monkestation/icons/obj/clothing/hats.dmi' worn_icon = 'monkestation/icons/mob/head.dmi' + lefthand_file = 'monkestation/icons/mob/inhands/equipment/helmet_lefthand.dmi' + righthand_file = 'monkestation/icons/mob/inhands/equipment/helmet_righthand.dmi' +//MONKESTATION EDIT STOP /obj/item/clothing/head/helmet/alt name = "bulletproof helmet" diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index d478fd5eadcc..507702f64c83 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -201,9 +201,13 @@ GLOBAL_LIST_INIT(hailer_phrases, list( if(!COOLDOWN_FINISHED(src, hailer_cooldown)) return + if(!isliving(pointed_at)) return + if(pointing_mob == pointed_at) + return + halt() pointed_at.do_alert_animation() @@ -248,6 +252,9 @@ GLOBAL_LIST_INIT(hailer_phrases, list( if(!isliving(pointed_at)) return + if(pointing_mob == pointed_at) + return + playsound(src, 'sound/misc/whistle.ogg', 50, FALSE, 4) pointed_at.do_alert_animation() COOLDOWN_START(src, whistle_cooldown, 10 SECONDS) diff --git a/code/modules/mining/voucher_sets.dm b/code/modules/mining/voucher_sets.dm index 9bca127e91f2..e33d3f10718c 100644 --- a/code/modules/mining/voucher_sets.dm +++ b/code/modules/mining/voucher_sets.dm @@ -98,7 +98,7 @@ ) /datum/voucher_set/security/primary/advanced_taser - name = "Advanced Taser" + name = "Hybrid Taser" description = "A dual-mode taser designed to fire both short-range high-power electrodes and long-range disabler beams." icon = 'icons/obj/weapons/guns/energy.dmi' icon_state = "advtaser" @@ -181,7 +181,27 @@ /obj/item/storage/box/flashbangs, ) -/datum/voucher_set/security/utility/webbing +/datum/voucher_set/security/utility/smokebombs + name = "Box of Smoke Grenades" + description = "WARNING: %$#SYTEM_ERROR#$#." + icon = 'icons/obj/weapons/grenade.dmi' + icon_state = "smokered" + set_items = list( + /obj/item/storage/box/sec_smokebomb, + ) + +/datum/voucher_set/security/utility/barrier + name = "Barrier Grenades" + description = "Two barrier grenades." + icon = 'icons/obj/weapons/grenade.dmi' + icon_state = "wallbang" + set_items = list( + /obj/item/grenade/barrier, + /obj/item/grenade/barrier, + ) + +/datum/voucher_set/security/utility/barrier_grenades + name = "Security Webbing" description = "Unique and versatile chest rig, can hold security gear." icon = 'icons/obj/clothing/belts.dmi' diff --git a/code/modules/vending/security.dm b/code/modules/vending/security.dm index ddff09f05350..41dba2846bca 100644 --- a/code/modules/vending/security.dm +++ b/code/modules/vending/security.dm @@ -25,6 +25,7 @@ contraband = list( /obj/item/clothing/glasses/sunglasses = 2, /obj/item/storage/fancy/donut_box = 4, //monkestation edit 2 to 4 + /obj/item/melee/flyswatter = 1, //monkestation edit: everytime they play a round, there are two ahelp tickets about them ) premium = list( /obj/item/storage/belt/security/webbing = 5, @@ -42,6 +43,7 @@ /obj/item/modular_computer/laptop/preset/security = 3, //monkestation edit /obj/item/storage/box/pinpointer_pairs = 2, //monkestation edit /obj/item/dragnet_beacon = 3, //monkestation edit + /obj/item/implanter/mindshield = 2, //monkestation edit ) refill_canister = /obj/item/vending_refill/security default_price = PAYCHECK_CREW From 298bd93be810abeb9df48628f6b18b54f9589ca7 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Tue, 31 Dec 2024 19:22:29 -0500 Subject: [PATCH 17/28] fix --- code/game/objects/structures/holosign.dm | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/code/game/objects/structures/holosign.dm b/code/game/objects/structures/holosign.dm index 007f1ea4987f..bf16b36c4288 100644 --- a/code/game/objects/structures/holosign.dm +++ b/code/game/objects/structures/holosign.dm @@ -21,7 +21,11 @@ /obj/structure/holosign/Initialize(mapload, source_projector) . = ..() - create_vis_overlay() + //create_vis_overlay() + if(use_vis_overlay) + SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) + var/turf/our_turf = get_turf(src) + SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, MUTATE_PLANE(GAME_PLANE_UPPER, our_turf), dir) //you see mobs under it, but you hit them like they are above it if(source_projector) projector = source_projector LAZYADD(projector.signs, src) @@ -55,13 +59,12 @@ if(BURN) playsound(loc, 'sound/weapons/egloves.ogg', 80, TRUE) -/obj/structure/holosign/proc/create_vis_overlay() - var/turf/our_turf = get_turf(src) - if(use_vis_overlay) - alpha = 0 - SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) - SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, MUTATE_PLANE(GAME_PLANE, our_turf), dir, add_appearance_flags = RESET_ALPHA) //you see mobs under it, but you hit them like they are above it - +// /obj/structure/holosign/proc/create_vis_overlay() no idea why this doesn't work +// var/turf/our_turf = get_turf(src) +// if(use_vis_overlay) +// alpha = 0 +// SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) +// SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, MUTATE_PLANE(GAME_PLANE_UPPER, our_turf), dir) //you see mobs under it, but you hit them like they are above it /obj/structure/holosign/wetsign name = "wet floor sign" @@ -119,7 +122,10 @@ icon_state = base_icon_state else icon_state = pass_icon_state - create_vis_overlay() + if(use_vis_overlay) + SSvis_overlays.remove_vis_overlay(src, managed_vis_overlays) + var/turf/our_turf = get_turf(src) + SSvis_overlays.add_vis_overlay(src, icon, icon_state, ABOVE_MOB_LAYER, MUTATE_PLANE(GAME_PLANE_UPPER, our_turf), dir) //you see mobs under it, but you hit them like they are above it . = ..() /obj/structure/holosign/barrier/proc/open(user) From 4c7e158269f2521b2391ed82d0b0ab417fef6c00 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Tue, 31 Dec 2024 19:46:53 -0500 Subject: [PATCH 18/28] another fix --- code/modules/clothing/suits/ablativecoat.dm | 2 -- 1 file changed, 2 deletions(-) diff --git a/code/modules/clothing/suits/ablativecoat.dm b/code/modules/clothing/suits/ablativecoat.dm index c11b68410fd7..dfeb4c9ea271 100644 --- a/code/modules/clothing/suits/ablativecoat.dm +++ b/code/modules/clothing/suits/ablativecoat.dm @@ -18,8 +18,6 @@ acid = 100 /obj/item/clothing/head/hooded/ablative/IsReflect(def_zone) - if(def_zone == "") //something is fucky and this happens every now and then but the damage defaults to the person's chest so this is okayish - return TRUE if(def_zone != BODY_ZONE_HEAD) //If not shot where ablative is covering you, you don't get the reflection bonus! return FALSE //if(prob(hit_reflect_chance)) monkestation edit From 48ad6b93ede86ab3583607e50a4005c22cedb56c Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Tue, 31 Dec 2024 19:59:12 -0500 Subject: [PATCH 19/28] whoops --- code/modules/mining/voucher_sets.dm | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/code/modules/mining/voucher_sets.dm b/code/modules/mining/voucher_sets.dm index e33d3f10718c..b87b910c395c 100644 --- a/code/modules/mining/voucher_sets.dm +++ b/code/modules/mining/voucher_sets.dm @@ -200,8 +200,7 @@ /obj/item/grenade/barrier, ) -/datum/voucher_set/security/utility/barrier_grenades - +/datum/voucher_set/security/utility/webbing name = "Security Webbing" description = "Unique and versatile chest rig, can hold security gear." icon = 'icons/obj/clothing/belts.dmi' From c17715475c2b76b3544d6ccde21858eeb0bdd395 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Tue, 31 Dec 2024 23:29:14 -0500 Subject: [PATCH 20/28] increased barrier deploy time --- code/game/machinery/deployable.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index ca9c6769c880..bc2b23927ae1 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -143,7 +143,7 @@ proj_pass_rate = 20 armor_type = /datum/armor/barricade_security - var/deploy_time = 40 + var/deploy_time = 5 SECONDS //monkestation edit var/deploy_message = TRUE //monkestation edit: var for setting density var/locked = FALSE From 6aba71d77508085e9353cf6b36632987da0495f6 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Thu, 2 Jan 2025 00:54:55 -0500 Subject: [PATCH 21/28] old taser and thermal balaclava --- code/game/machinery/deployable.dm | 6 +- .../crates_lockers/closets/secure/security.dm | 2 +- code/modules/clothing/masks/boxing.dm | 6 +- code/modules/clothing/masks/hailer.dm | 3 +- code/modules/mining/voucher_sets.dm | 74 ++++++++++++------- code/modules/projectiles/guns/energy/stun.dm | 23 ++++++ code/modules/vending/wardrobes.dm | 3 +- 7 files changed, 83 insertions(+), 34 deletions(-) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index bc2b23927ae1..1965f6c3fede 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -152,9 +152,9 @@ /datum/armor/barricade_security melee = 10 - bullet = 50 - laser = 50 - energy = 50 + bullet = 60 //monkestation edit: 50 to 60 + laser = 60 //monkestation edit: 50 to 60 + energy = 60 //monkestation edit: 50 to 60 bomb = 10 fire = 10 diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index 25b860ea9364..378c9a63e03c 100755 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -120,7 +120,7 @@ new /obj/item/radio/headset/headset_sec/alt(src) new /obj/item/clothing/glasses/hud/security/sunglasses(src) new /obj/item/flashlight/seclite(src) - new /obj/item/ammo_box/magazine/m35/rubber(src) //monkestation edit: Paco sec + new /obj/item/clothing/mask/russian_balaclava(src) //monkestation edit new /obj/item/bodycam_upgrade(src) //monkestation edit: Security Liability Act /obj/structure/closet/secure_closet/security/sec diff --git a/code/modules/clothing/masks/boxing.dm b/code/modules/clothing/masks/boxing.dm index ae1bc77f351c..ddcde7c08896 100644 --- a/code/modules/clothing/masks/boxing.dm +++ b/code/modules/clothing/masks/boxing.dm @@ -56,10 +56,12 @@ icon_state = "luchar" /obj/item/clothing/mask/russian_balaclava - name = "russian balaclava" - desc = "Protects your face from snow." + name = "thermal balaclava" //monkestation edit + desc = "Protects your face from the cold." //monkestation edit icon_state = "rus_balaclava" inhand_icon_state = "balaclava" flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR|HIDESNOUT visor_flags_inv = HIDEFACE|HIDEFACIALHAIR|HIDESNOUT w_class = WEIGHT_CLASS_SMALL + alternate_worn_layer = UNDER_SUIT_LAYER //monkestation edit + min_cold_protection_temperature = HELMET_MIN_TEMP_PROTECT //monkestation edit diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 507702f64c83..77da71172e0f 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -233,6 +233,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list( return COOLDOWN_START(src, whistle_cooldown, 10 SECONDS) //user.audible_message("HALT!") monkestation removal + user.audible_message("[user] signals on their whistle!") //monkestation edit playsound(src, 'sound/misc/whistle.ogg', 50, FALSE, 4) /datum/action/item_action/halt @@ -254,7 +255,7 @@ GLOBAL_LIST_INIT(hailer_phrases, list( if(pointing_mob == pointed_at) return - + pointing_mob.audible_message("[pointing_mob] signals on their whistle!") //monkestation edit playsound(src, 'sound/misc/whistle.ogg', 50, FALSE, 4) pointed_at.do_alert_animation() COOLDOWN_START(src, whistle_cooldown, 10 SECONDS) diff --git a/code/modules/mining/voucher_sets.dm b/code/modules/mining/voucher_sets.dm index b87b910c395c..bb795aa3b71e 100644 --- a/code/modules/mining/voucher_sets.dm +++ b/code/modules/mining/voucher_sets.dm @@ -264,20 +264,32 @@ /datum/computer_file/program/secureye, ) +/// Security Assistant Kits +/obj/item/storage/box/security_kit + name = "boxed security kit" + desc = "A specially marked box." + icon_state = "secbox" + illustration = "ntlogo" + /datum/voucher_set/security/assistant/nightwatch name = "Nightwatch Kit" description = "All the clothing you will need to stay warm patrolling the darker out of sight areas of the station." icon = 'icons/obj/clothing/suits/wintercoat.dmi' icon_state = "coatsecurity" set_items = list( - /obj/item/clothing/head/soft/sec, - /obj/item/clothing/suit/hooded/wintercoat/security, - /obj/item/flashlight/seclite, - /obj/item/storage/fancy/donut_box, - /obj/item/reagent_containers/cup/glass/coffee, - /obj/item/radio/off, - /obj/item/crowbar/red, - ) + /obj/item/storage/box/security_kit/nightwatch, + ) + +/obj/item/storage/box/security_kit/nightwatch/PopulateContents() + new /obj/item/clothing/head/soft/sec(src) + new /obj/item/clothing/mask/russian_balaclava(src) + new /obj/item/clothing/suit/hooded/wintercoat/security(src) + new /obj/item/clothing/gloves/color/black(src) + new /obj/item/radio/off(src) + new /obj/item/crowbar/red(src) + new /obj/item/flashlight/seclite(src) + new /obj/item/storage/fancy/donut_box(src) + new /obj/item/reagent_containers/cup/glass/coffee(src) /datum/voucher_set/security/assistant/brig name = "Brig Assistant Kit" @@ -285,38 +297,48 @@ icon = 'icons/obj/toys/plushes.dmi' icon_state = "pkplush" set_items = list( - /obj/item/cargo_teleporter, - /obj/item/clipboard, - /obj/item/storage/crayons, - /obj/item/storage/box/hug/plushes, - /obj/item/modular_computer/laptop/preset/security, + /obj/item/storage/box/security_kit/brig_assistant, ) +/obj/item/storage/box/security_kit/brig_assistant/PopulateContents() + new /obj/item/cargo_teleporter(src) + new /obj/item/clipboard(src) + new /obj/item/storage/crayons(src) + new /obj/item/storage/box/hug/plushes(src) + new /obj/item/modular_computer/laptop/preset/security(src) + /datum/voucher_set/security/assistant/detective name = "Forensics Assistant Kit" description = "Serial litterer on the loose? This will help you track them down." icon = 'icons/obj/device.dmi' icon_state = "tape_red" set_items = list( - /obj/item/camera, - /obj/item/taperecorder, - /obj/item/tape/random, - /obj/item/folder/red, - /obj/item/storage/box/evidence, - /obj/item/clothing/gloves/latex, - /obj/item/binoculars, - /obj/item/storage/fancy/cigarettes/cigpack_candy, - /obj/item/lighter/greyscale, + /obj/item/storage/box/security_kit/detective, ) +/obj/item/storage/box/security_kit/detective/PopulateContents() + new /obj/item/camera(src) + new /obj/item/taperecorder(src) + new /obj/item/tape/random(src) + new /obj/item/folder/red(src) + new /obj/item/storage/box/evidence(src) + new /obj/item/clothing/gloves/latex(src) + new /obj/item/binoculars(src) + new /obj/item/storage/fancy/cigarettes/cigpack_candy(src) + new /obj/item/lighter/greyscale(src) + /datum/voucher_set/security/assistant/buddy_cop name = "Buddy Cop Kit" description = "Pair up with a security officer and learn the basics of security." icon = 'monkestation/icons/obj/clothing/hats.dmi' icon_state = "helmet" set_items = list( - /obj/item/storage/box/pinpointer_pairs, - /obj/item/clothing/head/helmet/surplus, - /obj/item/clothing/suit/armor/surplus, - /obj/item/book/manual/wiki/security_space_law, + /obj/item/storage/box/security_kit/buddycop, ) + +/obj/item/storage/box/security_kit/buddycop/PopulateContents() + new /obj/item/clothing/head/helmet/surplus(src) + new /obj/item/clothing/suit/armor/surplus(src) + new /obj/item/gun/energy/taser/old(src) + new /obj/item/storage/box/pinpointer_pairs(src) + new /obj/item/book/manual/wiki/security_space_law(src) diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index fbee94dd92b5..42201300121f 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -11,6 +11,29 @@ playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 35, TRUE) if(do_after(user, 1 SECONDS, timed_action_flags = IGNORE_USER_LOC_CHANGE)) return ..() + +/obj/item/gun/energy/taser/old + name = "old taser gun" + desc = "A low-capacity, energy-based stun gun used by security teams to subdue targets at range. There is a piece of tape loosely holding the cell in place..." + +/obj/item/gun/energy/taser/old/examine_more(mob/user) + . = ..() + . += span_notice("The cell is leaking a metallic smelling fluid from underneath the tape... Is this safe?") + +/obj/item/gun/energy/taser/old/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) + if(prob(50)) + do_sparks(rand(3, 4), FALSE, src) + to_chat(user, span_warning("[user]'s taser jams, sputtering acid onto [user]!")) + target = user //get tased + user.apply_damage(24, BURN, spread_damage = TRUE, wound_bonus = 10) + user.apply_damage(150, STAMINA) + if(prob(25)) + user.adjust_fire_stacks(2) + user.ignite_mob() + return ..() + else + return ..() + //MONKESTATION EDIT STOP /obj/item/gun/energy/e_gun/advtaser diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 7c75269a466d..6964c17f2fc2 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -25,7 +25,8 @@ /obj/item/clothing/head/beret/sec = 3, /obj/item/clothing/head/soft/sec = 3, /obj/item/clothing/mask/bandana/striped/security = 3, - /obj/item/clothing/mask/balaclava = 6, //monkestation edit + /obj/item/clothing/mask/balaclava = 3, //monkestation edit + /obj/item/clothing/mask/russian_balaclava = 3, //monkestation edit /obj/item/clothing/under/rank/security/officer/skirt = 3, /obj/item/clothing/under/rank/security/officer/grey = 3, /obj/item/clothing/shoes/sneakers/secred = 3, //Monkestation edit From 5dcbe63dba3b677a47b2218265d4fba9b5666118 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Thu, 2 Jan 2025 17:46:20 -0500 Subject: [PATCH 22/28] pair pinpointers only point to the other pinpointer in the set if it is active + taser charge sound variance adjustment --- code/game/objects/items/pinpointer.dm | 10 +++++++--- code/modules/projectiles/guns/energy/stun.dm | 4 ++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/code/game/objects/items/pinpointer.dm b/code/game/objects/items/pinpointer.dm index 988dabf54ad3..9e8711e9728b 100644 --- a/code/game/objects/items/pinpointer.dm +++ b/code/game/objects/items/pinpointer.dm @@ -176,15 +176,19 @@ /obj/item/pinpointer/pair name = "pair pinpointer" desc = "A handheld tracking device that locks onto its other half of the matching pair." - var/other_pair + var/obj/item/pinpointer/pair/other_pair //monkestation edit /obj/item/pinpointer/pair/Destroy() other_pair = null . = ..() /obj/item/pinpointer/pair/scan_for_target() - target = other_pair - +//monkestation edit start + if(other_pair.active) + target = other_pair + else + target = null +//monkestation edit stop /obj/item/pinpointer/pair/examine(mob/user) . = ..() if(!active || !target) diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 42201300121f..92832864ef20 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -8,7 +8,7 @@ //MONKESTATION EDIT START /obj/item/gun/energy/taser/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) - playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 35, TRUE) + playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 35, TRUE, 1) if(do_after(user, 1 SECONDS, timed_action_flags = IGNORE_USER_LOC_CHANGE)) return ..() @@ -46,7 +46,7 @@ //MONKESTATION EDIT START /obj/item/gun/energy/e_gun/advtaser/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) if(select == 1) - playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 35, TRUE) + playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 35, TRUE, 1) if(do_after(user, 1 SECONDS, timed_action_flags = IGNORE_USER_LOC_CHANGE)) return ..() else From eb13f05e4a93997a71e431976b54bc4e5d58a7c3 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Fri, 3 Jan 2025 01:14:59 -0500 Subject: [PATCH 23/28] secass voucher additions --- code/modules/mining/voucher_sets.dm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/code/modules/mining/voucher_sets.dm b/code/modules/mining/voucher_sets.dm index bb795aa3b71e..891c7baf2143 100644 --- a/code/modules/mining/voucher_sets.dm +++ b/code/modules/mining/voucher_sets.dm @@ -301,11 +301,15 @@ ) /obj/item/storage/box/security_kit/brig_assistant/PopulateContents() + new /obj/item/clothing/head/soft/sec(src) new /obj/item/cargo_teleporter(src) new /obj/item/clipboard(src) new /obj/item/storage/crayons(src) new /obj/item/storage/box/hug/plushes(src) new /obj/item/modular_computer/laptop/preset/security(src) + new /obj/item/storage/medkit/regular(src) + new /obj/item/storage/pill_bottle/mannitol(src) + new /obj/item/storage/pill_bottle/neurine(src) /datum/voucher_set/security/assistant/detective name = "Forensics Assistant Kit" @@ -322,10 +326,16 @@ new /obj/item/tape/random(src) new /obj/item/folder/red(src) new /obj/item/storage/box/evidence(src) - new /obj/item/clothing/gloves/latex(src) + new /obj/item/toy/crayon/white(src) new /obj/item/binoculars(src) + new /obj/item/clothing/under/rank/security/detective/kim(src) + new /obj/item/clothing/suit/jacket/det_suit/kim(src) + new /obj/item/clothing/shoes/kim(src) + new /obj/item/clothing/gloves/kim(src) + new /obj/item/clothing/glasses/regular/kim(src) new /obj/item/storage/fancy/cigarettes/cigpack_candy(src) new /obj/item/lighter/greyscale(src) + new /obj/item/clothing/gloves/latex(src) /datum/voucher_set/security/assistant/buddy_cop name = "Buddy Cop Kit" @@ -339,6 +349,7 @@ /obj/item/storage/box/security_kit/buddycop/PopulateContents() new /obj/item/clothing/head/helmet/surplus(src) new /obj/item/clothing/suit/armor/surplus(src) + new /obj/item/clothing/glasses/sunglasses(src) new /obj/item/gun/energy/taser/old(src) new /obj/item/storage/box/pinpointer_pairs(src) new /obj/item/book/manual/wiki/security_space_law(src) From 924a49ab80c418fe92d7851985c8c3a0b479453b Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Fri, 3 Jan 2025 20:08:46 -0500 Subject: [PATCH 24/28] made some sounds louder --- code/game/machinery/deployable.dm | 4 ++-- code/modules/projectiles/guns/energy/stun.dm | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/deployable.dm b/code/game/machinery/deployable.dm index 1965f6c3fede..f57073b67748 100644 --- a/code/game/machinery/deployable.dm +++ b/code/game/machinery/deployable.dm @@ -174,12 +174,12 @@ set_density(TRUE) icon_state = "barrier1" locked = TRUE - playsound(src, 'sound/machines/boltsup.ogg', 30) + playsound(src, 'sound/machines/boltsup.ogg', 45) else set_density(FALSE) icon_state = "barrier0" locked = FALSE - playsound(src, 'sound/machines/boltsdown.ogg', 30) + playsound(src, 'sound/machines/boltsdown.ogg', 45) update_appearance() /obj/structure/barricade/security/attackby(obj/item/tool, mob/living/user, params) diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm index 92832864ef20..ad98cdf77728 100644 --- a/code/modules/projectiles/guns/energy/stun.dm +++ b/code/modules/projectiles/guns/energy/stun.dm @@ -8,7 +8,7 @@ //MONKESTATION EDIT START /obj/item/gun/energy/taser/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) - playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 35, TRUE, 1) + playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 45, TRUE, 1) if(do_after(user, 1 SECONDS, timed_action_flags = IGNORE_USER_LOC_CHANGE)) return ..() @@ -46,7 +46,7 @@ //MONKESTATION EDIT START /obj/item/gun/energy/e_gun/advtaser/process_fire(atom/target, mob/living/user, message = TRUE, params = null, zone_override = "", bonus_spread = 0) if(select == 1) - playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 35, TRUE, 1) + playsound(src, 'monkestation/sound/effects/taser_charge.ogg', 45, TRUE, 1) if(do_after(user, 1 SECONDS, timed_action_flags = IGNORE_USER_LOC_CHANGE)) return ..() else From a4d3530f7c6f3d927e27f97c0ab08de4d73912a1 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Sat, 11 Jan 2025 14:48:48 -0500 Subject: [PATCH 25/28] 2 damage --- code/modules/projectiles/projectile/bullets/shotgun.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index 835647076981..713d06d66577 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -111,7 +111,7 @@ /obj/projectile/bullet/pellet/shotgun_rubbershot name = "rubber shot pellet" - damage = 1 //monkestation edit 3 to 1 + damage = 2 //monkestation edit 3 to 2 stamina = 15 //monkestation edit sharpness = NONE embedding = null From d4f40262735991f873ece3bc635700fce499b8b5 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Thu, 16 Jan 2025 10:20:13 -0500 Subject: [PATCH 26/28] sec laptop for nightwatch --- code/modules/mining/voucher_sets.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/mining/voucher_sets.dm b/code/modules/mining/voucher_sets.dm index 891c7baf2143..e833ee9da011 100644 --- a/code/modules/mining/voucher_sets.dm +++ b/code/modules/mining/voucher_sets.dm @@ -288,6 +288,7 @@ new /obj/item/radio/off(src) new /obj/item/crowbar/red(src) new /obj/item/flashlight/seclite(src) + new /obj/item/modular_computer/laptop/preset/security(src) new /obj/item/storage/fancy/donut_box(src) new /obj/item/reagent_containers/cup/glass/coffee(src) From 8714c802ea1ece1f230e8a93c10ede480fcda5fd Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Thu, 16 Jan 2025 17:41:13 -0500 Subject: [PATCH 27/28] removes the net snare launcher --- code/modules/projectiles/guns/energy/energy_gun.dm | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index b76cc16589f4..cb2519a9d6f3 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -124,10 +124,12 @@ /obj/item/gun/energy/e_gun/dragnet/add_seclight_point() return -/obj/item/gun/energy/e_gun/dragnet/snare - name = "Energy Snare Launcher" - desc = "Fires an energy snare that slows the target down." - ammo_type = list(/obj/item/ammo_casing/energy/trap) +//MONKESTATION EDIT START: unused and causes a runtime +// /obj/item/gun/energy/e_gun/dragnet/snare +// name = "Energy Snare Launcher" +// desc = "Fires an energy snare that slows the target down." +// ammo_type = list(/obj/item/ammo_casing/energy/trap) +//MONKESTATION EDIT STOP /obj/item/gun/energy/e_gun/turret name = "hybrid turret gun" From 83153326975885e526aa0aeefc337c9ad87e2797 Mon Sep 17 00:00:00 2001 From: SirNightKnight <=> Date: Thu, 16 Jan 2025 21:32:38 -0500 Subject: [PATCH 28/28] runtime begone --- code/modules/projectiles/guns/energy/energy_gun.dm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/code/modules/projectiles/guns/energy/energy_gun.dm b/code/modules/projectiles/guns/energy/energy_gun.dm index cb2519a9d6f3..46d0b3e7886c 100644 --- a/code/modules/projectiles/guns/energy/energy_gun.dm +++ b/code/modules/projectiles/guns/energy/energy_gun.dm @@ -113,13 +113,13 @@ if(linked_beacon) visible_message(span_warning("A light on the [src] flashes, indicating that it is no longer linked with a DRAGnet beacon!")) playsound(src, 'sound/machines/sonar-ping.ogg', 10) - LAZYREMOVE(linked_beacon.linked_dragnets, src) - linked_beacon.update_appearance() - linked_beacon = null + LAZYREMOVE(linked_beacon.linked_dragnets, src) + linked_beacon.update_appearance() + linked_beacon = null /obj/item/gun/energy/e_gun/dragnet/Destroy() //just so the beacon updates it's apperance - . = ..() handle_beacon_disable() + return ..() /obj/item/gun/energy/e_gun/dragnet/add_seclight_point() return