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
<details>
<summary>Screenshots/Videos</summary>
using the suit voucher<br>
<img width="296" height="370" alt="redeeming"
src="https://github.com/user-attachments/assets/0cfccd8b-a9e0-4846-b036-28aaac308e54"
/>

the new item in question<br>
<img width="564" height="149" alt="description"
src="https://github.com/user-attachments/assets/63a627f1-3883-4aad-8664-0a3080c88565"
/>

actually using it<br>
<img width="539" height="313" alt="usage"
src="https://github.com/user-attachments/assets/4a137d3c-5f75-41d2-b10e-277b004367ac"
/>


</details>

## Changelog
🆑
add: Added custom explorer/SEVA suit modification kit for mining suit
vouchers
/🆑
This commit is contained in:
explosivekitty
2026-04-22 02:28:17 +02:00
committed by GitHub
parent dab077eb0d
commit ce43ef2128
3 changed files with 81 additions and 0 deletions
@@ -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"
@@ -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,
)
+1
View File
@@ -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"