Files
Leland Kemble 49d2f1f3c9 Adds the Modular Suit (Or Portable Suit) (#93776)
## About The Pull Request

First, boring stuff.
The "Modsuit equipment" techweb node has been split into two nodes, with
the additional node containing the more civilian MODules (And the new
plating), and costing 20 points.
A new "Perfumer" MODule has been added(not printable anywhere, but in
the new suit by default) that just cleans you.
The MODsuit being added has been added to the LawDrobe's premium
section, for 300 credits.

Now, the real addition.

This adds a MODsuit that is a modular suit, that is to say, a suit, tie,
shoes and glasses. The glasses aren't actually real flash-proof
sunglasses by default, but the welding protection module can be added.
The suit is obviously not space-proof, and offers no protection to
anything but biohazards. The suit has 10 complexity max, due to the fact
that most modules don't have a point on it. This is subject to change.

The pre-made one also has the stamp and paper dispenser MODules
pre-installed, which are both now activateable via the neck slot.

The suit control unit is the tie. 

## Why It's Good For The Game

Have you ever been called to court, but you didn't have a nice suit, so
the judge holds you in contempt and sends you to jail? Well, never
again. Gone are the days that you cause two innocent boys to almost be
executed for a crime they didn't commit simply because you don't have a
nice suit. With the Moonraker Conglomerate's newest export in your
hands, you'll never be the less formal one ever again. No matter the
occasion, you're never more than a few moments away from
self-representing.

Video of the fit:



https://github.com/user-attachments/assets/44d08ca8-9ae1-4887-81e6-cec11792132e

It's the same look as a suit jacket, white tie, sunglasses and laceup
shoes. You must get a matching jumpsuit of your own.

I think it's neat, and it's a damn shame that there's not a single
MODsuit that isn't just head gloves suit shoes. All these MODules which
are activateable from head, mask or glasses, and no suits that allow it.
Missed opportunity, I'd say.

Also, lawyer buff. Need I say more?

## Changelog
🆑

add: Added a modular SUIT, a deployable, one-piece three-piece suit.
Purchasable from the LawDrobe.
balance: The MODsuit equipment techweb node has been split in two, with
an offshoot for civilian MODules.

/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2025-12-02 17:42:15 -07:00

161 lines
5.1 KiB
Plaintext

/datum/techweb_node/mod_suit
id = TECHWEB_NODE_MOD_SUIT
starting_node = TRUE
display_name = "Modular Suits"
description = "Specialized back mounted power suits with various different modules."
prereq_ids = list(TECHWEB_NODE_ROBOTICS)
design_ids = list(
"suit_storage_unit",
"mod_shell",
"mod_chestplate",
"mod_helmet",
"mod_gauntlets",
"mod_boots",
"mod_plating_standard",
"mod_plating_civilian",
"mod_paint_kit",
"mod_storage",
"mod_plasma",
"mod_flashlight",
)
/datum/techweb_node/mod_equip
id = TECHWEB_NODE_MOD_EQUIP
display_name = "Modular Suit Equipment"
description = "More advanced modules, to improve modular suits."
prereq_ids = list(TECHWEB_NODE_MOD_SUIT)
design_ids = list(
"modlink_scryer",
"mod_tether",
"mod_welding",
"mod_longfall",
"mod_thermal_regulator",
"mod_sign_radio",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE)
/datum/techweb_node/mod_service
id = TECHWEB_NODE_MOD_SERVICE
display_name = "Civilian Modular Suits"
description = "Civilian MODsuits for dignified living."
prereq_ids = list(TECHWEB_NODE_MOD_SUIT)
design_ids = list(
"mod_clamp",
"mod_safety",
"mod_mouthhole",
"mod_mister_janitor",
"mod_plating_portable_suit"
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS / 2)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_SERVICE)
/datum/techweb_node/mod_entertainment
id = TECHWEB_NODE_MOD_ENTERTAINMENT
display_name = "Entertainment Modular Suits"
description = "Powered suits for protection against low-humor environments."
prereq_ids = list(TECHWEB_NODE_MOD_SUIT)
design_ids = list(
"mod_plating_cosmohonk",
"mod_bikehorn",
"mod_microwave_beam",
"mod_waddle",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_SERVICE)
/datum/techweb_node/mod_medical
id = TECHWEB_NODE_MOD_MEDICAL
display_name = "Medical Modular Suits"
description = "Medical MODsuits for quick rescue purposes."
prereq_ids = list(TECHWEB_NODE_MOD_SUIT, TECHWEB_NODE_CHEM_SYNTHESIS)
design_ids = list(
"mod_plating_medical",
"mod_quick_carry",
"mod_injector",
"mod_organizer",
"mod_patienttransport",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_MEDICAL)
/datum/techweb_node/mod_engi
id = TECHWEB_NODE_MOD_ENGI
display_name = "Engineering Modular Suits"
description = "Engineering suits, for powered engineers."
prereq_ids = list(TECHWEB_NODE_MOD_EQUIP)
design_ids = list(
"mod_plating_engineering",
"mod_t_ray",
"mod_magboot",
"mod_constructor",
"mod_mister_atmos",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_ENGINEERING)
/datum/techweb_node/mod_security
id = TECHWEB_NODE_MOD_SECURITY
display_name = "Security Modular Suits"
description = "Security suits for space crime handling."
prereq_ids = list(TECHWEB_NODE_MOD_EQUIP)
design_ids = list(
"mod_mirage_grenade",
"mod_stealth",
"mod_mag_harness",
"mod_pathfinder",
"mod_holster",
"mod_sonar",
"mod_projectile_dampener",
"mod_criminalcapture",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_2_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_SECURITY)
/datum/techweb_node/mod_medical_adv
id = TECHWEB_NODE_MOD_MEDICAL_ADV
display_name = "Field Surgery Modules"
description = "Medical MODsuit equipment designed for conducting surgical operations in field conditions."
prereq_ids = list(TECHWEB_NODE_MOD_MEDICAL, TECHWEB_NODE_SURGERY_ADV)
design_ids = list(
"mod_defib",
"mod_threadripper",
"mod_surgicalprocessor",
"mod_statusreadout",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_MEDICAL)
/datum/techweb_node/mod_engi_adv
id = TECHWEB_NODE_MOD_ENGI_ADV
display_name = "Advanced Engineering Modular Suits"
description = "Advanced Engineering suits, for advanced powered engineers."
prereq_ids = list(TECHWEB_NODE_MOD_ENGI)
design_ids = list(
"mod_plating_atmospheric",
"mod_jetpack",
"mod_rad_protection",
"mod_emp_shield",
"mod_storage_expanded",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_3_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE, RADIO_CHANNEL_ENGINEERING)
/datum/techweb_node/mod_engi_adv/New()
if(HAS_TRAIT(SSstation, STATION_TRAIT_RADIOACTIVE_NEBULA)) //we'll really need the rad protection modsuit module
starting_node = TRUE
return ..()
/datum/techweb_node/mod_anomaly
id = TECHWEB_NODE_MOD_ANOMALY
display_name = "Anomalock Modular Suits"
description = "Modules for MODsuits that require anomaly cores to function."
prereq_ids = list(TECHWEB_NODE_MOD_ENGI_ADV, TECHWEB_NODE_ANOMALY_RESEARCH)
design_ids = list(
"mod_antigrav",
"mod_teleporter",
"mod_kinesis",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_4_POINTS)
announce_channels = list(RADIO_CHANNEL_SCIENCE)