From c3863ade92f02f25101913fedb4769193cf0bd81 Mon Sep 17 00:00:00 2001 From: kyunkyunkyun Date: Mon, 27 Jan 2025 16:07:05 +0500 Subject: [PATCH] bulky holster --- modular_ss220/mod/code/mod_modules.dm | 45 +++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/modular_ss220/mod/code/mod_modules.dm b/modular_ss220/mod/code/mod_modules.dm index 8b94a6a3f523..5876f9436e65 100644 --- a/modular_ss220/mod/code/mod_modules.dm +++ b/modular_ss220/mod/code/mod_modules.dm @@ -21,3 +21,48 @@ /obj/item/mod/module/insignia/red/chaplain color = "#f0a00c" + +// holster tweak for bulky lasers +/obj/item/mod/module/holster + var/static/list/forbidden = typesof( + /obj/item/gun/rocketlauncher, + /obj/item/gun/energy/lasercannon, + /obj/item/gun/energy/lwap, + /obj/item/gun/energy/emitter, + /obj/item/gun/energy/pulse, + /obj/item/gun/energy/bsg, + /obj/item/gun/energy/meteorgun, + /obj/item/gun/energy/temperature, + /obj/item/gun/projectile/automatic/wt550, + /obj/item/gun/projectile/automatic/laserrifle, + /obj/item/gun/projectile/automatic/speargun, + /obj/item/gun/projectile/revolver/overgrown, + /obj/item/gun/projectile/revolver/doublebarrel, + /obj/item/gun/projectile/shotgun, + /obj/item/gun/projectile/automatic/sslr, + /obj/item/gun/projectile/automatic/shotgun/bulldog, + ) + +/obj/item/mod/module/holster/on_use() + var/msg = "[holstered]" + if(!holstered) + var/obj/item/gun/holding = mod.wearer.get_active_hand() + if(!holding) + to_chat(mod.wearer, "Nothing to holster!") + return + if(!istype(holding) || holding.w_class > WEIGHT_CLASS_BULKY) + to_chat(mod.wearer, "It's too big to fit!") + return + for(var/type in forbidden) + if(istype(holding, type) && holding.w_class > WEIGHT_CLASS_NORMAL) //god no holstering a BSG / combat shotgun + to_chat(mod.wearer, "It's too big to fit!") + return + holstered = holding + mod.wearer.visible_message("[mod.wearer] holsters [holstered].", "You holster [holstered].") + mod.wearer.unequip(mod.wearer.get_active_hand()) + holstered.forceMove(src) + else if(mod.wearer.put_in_active_hand(holstered)) + mod.wearer.visible_message("[mod.wearer] draws [msg], ready to shoot!", \ + "You draw [msg], ready to shoot!") + else + to_chat(mod.wearer, "You need an empty hand to draw [holstered]!")