From ce43ef2128c9da3692e8314bb1003eaa78ebab0f Mon Sep 17 00:00:00 2001 From: explosivekitty Date: Wed, 22 Apr 2026 02:28:17 +0200 Subject: [PATCH] Let's you have custom looking explorer/seva suit for mining (#5430) ## About The Pull Request Adds new option for suit voucher which you can use on clothing of your choice to make it equivalent to either SEVA or explorer suit if you are feeling fancy. This won't make something like winter jacket protect your full body obviously and you can't use it on stuff that already have armor, it will only protect the parts the clothing is usually covering and you can only get it from round start suit vouchers so you can't cheese this with who knows what. If you choose to upgrade to explorer suit you will be able to attach goliath plates just like with regular explorer suit and if you upgraded your outfit and it's covering full body to SEVA you will be ash storm proof ## Why It's Good For The Game Yay, more customization ## Proof Of Testing
Screenshots/Videos using the suit voucher
redeeming the new item in question
description actually using it
usage
## Changelog :cl: add: Added custom explorer/SEVA suit modification kit for mining suit vouchers /:cl: --- .../mining/equipment/diy_mining_suit.dm | 71 +++++++++++++++++++ .../modules/mining/equipment/voucher_sets.dm | 9 +++ tgstation.dme | 1 + 3 files changed, 81 insertions(+) create mode 100644 modular_zubbers/code/modules/mining/equipment/diy_mining_suit.dm diff --git a/modular_zubbers/code/modules/mining/equipment/diy_mining_suit.dm b/modular_zubbers/code/modules/mining/equipment/diy_mining_suit.dm new file mode 100644 index 00000000000..0c3ca67c26b --- /dev/null +++ b/modular_zubbers/code/modules/mining/equipment/diy_mining_suit.dm @@ -0,0 +1,71 @@ +/obj/item/miningsuitupgradekit + name = "DIY explorer suit kit" + desc = "A kit containing necessary parts to turn your hat and jacket of your choice into a mining suit. Note: Uncovered limbs will remain unprotected" + icon = 'icons/obj/mining.dmi' + icon_state = "retool_kit" + var/helmet_uses = 1 + var/exosuit_uses = 1 + var/seva_kit = FALSE + +/obj/item/miningsuitupgradekit/interact_with_atom(atom/interacting_with, mob/living/user, list/modifiers) + var/obj/item/clothing/upgraded_item = interacting_with + + if(!istype(upgraded_item)) + return ITEM_INTERACT_BLOCKING + if(!istype(upgraded_item, /obj/item/clothing/suit) && !istype(upgraded_item, /obj/item/clothing/head)) + to_chat(user, span_warning("This kit will only work for head and suit slot clothing!")) + return ITEM_INTERACT_BLOCKING + if(istype(upgraded_item, /obj/item/clothing/suit) && exosuit_uses <= 0) + to_chat(user, span_warning("Suit part already used!")) + return ITEM_INTERACT_BLOCKING + if(istype(upgraded_item, /obj/item/clothing/head) && helmet_uses <= 0) + to_chat(user, span_warning("Helmet part already used!")) + return ITEM_INTERACT_BLOCKING + if(upgraded_item.get_armor_rating(MELEE) > 0) + to_chat(user, span_warning("This clothing is already armored and can't be modified!")) + return ITEM_INTERACT_BLOCKING + + if(istype(upgraded_item, /obj/item/clothing/suit)) + var/obj/item/clothing/suit/upgraded_suit = upgraded_item + upgraded_suit.allowed = GLOB.mining_suit_allowed + upgraded_suit.flags_inv = NONE + exosuit_uses-- + + if(istype(upgraded_item, /obj/item/clothing/head)) + helmet_uses-- + + if(!seva_kit) + upgraded_item.AddComponent(/datum/component/armor_plate) + + if(seva_kit) + upgraded_item.clothing_traits = list(TRAIT_ASHSTORM_IMMUNE) + + upgraded_item.set_armor(seva_kit ? /datum/armor/hooded_seva : /datum/armor/hooded_explorer) + upgraded_item.min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + upgraded_item.max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT + upgraded_item.resistance_flags |= FIRE_PROOF + + upgraded_item.name = "[seva_kit ? "SEVA" : "reinforced"] [upgraded_item.name]" + + balloon_alert(user, "[initial(upgraded_item.name)] upgraded!") + + if(helmet_uses <= 0 && exosuit_uses <= 0) + qdel(src) + return ITEM_INTERACT_SUCCESS + +/obj/item/miningsuitupgradekit/click_alt(mob/user) + if(!exosuit_uses || !helmet_uses) + return CLICK_ACTION_BLOCKING + seva_kit = !seva_kit + name = "DIY [seva_kit ? "SEVA" : "explorer"] suit kit" + balloon_alert(user, "mode changed!") + return CLICK_ACTION_SUCCESS + +/obj/item/miningsuitupgradekit/examine(mob/user) + . = ..() + if(helmet_uses) + . += "It can be used to upgrade [helmet_uses] more hat[(helmet_uses > 1) ? "s" : ""]" + if(exosuit_uses) + . += "It can be used to upgrade [exosuit_uses] more suit[(exosuit_uses > 1) ? "s" : ""]" + if(exosuit_uses && helmet_uses) + . += "You can alt-click this kit to change it into [(seva_kit) ? "explorer suit" : "SEVA"] kit" diff --git a/modular_zubbers/code/modules/mining/equipment/voucher_sets.dm b/modular_zubbers/code/modules/mining/equipment/voucher_sets.dm index 508940ec69b..d32a5915362 100644 --- a/modular_zubbers/code/modules/mining/equipment/voucher_sets.dm +++ b/modular_zubbers/code/modules/mining/equipment/voucher_sets.dm @@ -80,3 +80,12 @@ set_items = list( /obj/item/clothing/suit/toggle/jacket/zubber/bomber/mining, ) + +/datum/voucher_set/mining_suit/diy + name = "DIY Mining Suit" + description = "Do-it-yourself custom mining suit. Includes specialized kit to turn your outfit into custom explorer/SEVA suit." + icon = 'icons/obj/mining.dmi' + icon_state = "retool_kit" + set_items = list( + /obj/item/miningsuitupgradekit, + ) diff --git a/tgstation.dme b/tgstation.dme index ec93e53d412..0e7cf1a7c27 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -9611,6 +9611,7 @@ #include "modular_zubbers\code\modules\mapping\ss13_construct\areas.dm" #include "modular_zubbers\code\modules\mining\abandoned_crates.dm" #include "modular_zubbers\code\modules\mining\shelters.dm" +#include "modular_zubbers\code\modules\mining\equipment\diy_mining_suit.dm" #include "modular_zubbers\code\modules\mining\equipment\order_mining.dm" #include "modular_zubbers\code\modules\mining\equipment\seva_suit.dm" #include "modular_zubbers\code\modules\mining\equipment\voucher_sets.dm"