Files
Bubberstation/code/modules/research/techweb/nodes/modsuit_nodes.dm
SkyratBot 700c0b98a8 [MIRROR] Adds a standalone Civilian Modsuit model, available from robotics (#28946)
* Adds a standalone Civilian Modsuit model, available from robotics (#84806)

## About The Pull Request

I talked with Fikou on discord about #84801, and he said that it would
be fine to make a standalone suit that is slowdown-free but also not
spaceproof. So yeah, that's what this is. The civilian skin for the
standard modsuit has been turned into a standalone model. It is similar
to the loader modsuit that cargo has, in that it has no slowdown while
active but doesn't protect you from space. It also has only a complexity
limit of 12 instead of the usual 15, and it has abysmal armor values. It
also doesn't protect you from pepper spray and the helmet doesn't allow
you to use internals or block you from eating.

I tweaked the sprites for it as well, removing the visor from the inhand
and mob overlay sprites, to better reflect it's lack of spaceproofing. I
also whipped up a quick sprite for the civilian mod plating, based off
of the medical mod plating since they have similar color schemes.
## Why It's Good For The Game

I'm going to just copy and paste what I said in the last PR, because all
of it still applies to this one. There are a lot of really cool modsuit
modules that are hampered by the other drawbacks that modsuits have.
These drawbacks exist for a good reason; space proof suits should have
tradeoffs, especially ones available at the start of the round like
modsuits are. But that doesn't really solve the problem with the
modules.

One of the biggest examples of this problem is the pepper shoulders
module that comes on security modsuits. It's a very cool module
conceptually, but it tends to have limited usefulness in practice. Out
in space, whoever you're fighting is likely wearing a spacesuit of their
own, which will make them completely immune to the pepper spray. On the
station, the person wearing the suit has to deal with the slowdown from
it, which will far outweigh any advantage granted by the pepper
shoulders module.

Another good example is the medical modules, like the surgical
processor, organ thrower/organizer, and thread ripper modules. All of
these are great for a medical player trying to perform surgery, but who
is going to be doing surgery in a depressurized room? All these modules
don't mesh well with the design of modsuits as special spacesuits, and
the new civilian model will hopefully give them more room to be used.
## Changelog
🆑
add: Added the civilian modsuit module as a standalone model. It offers
no slowdown while activated but does NOT protect you from the void of
space. You can print the plating from an exosuit fabricator and build it
like a normal modsuit.
del: Removed the civilian skin from the standard modsuit, as it is now a
standalone model.
image: Tweaked the sprites for the civilian modsuit head, both in-hand
and on the mob. Also added a civilian mod plating sprite.
/🆑

* Adds a standalone Civilian Modsuit model, available from robotics

---------

Co-authored-by: GPeckman <21979502+GPeckman@users.noreply.github.com>
Co-authored-by: SpaceLoveSs13 <68121607+SpaceLoveSs13@users.noreply.github.com>
2024-07-20 21:42:55 +05:30

142 lines
4.2 KiB
Plaintext

/datum/techweb_node/mod_suit
id = TECHWEB_NODE_MOD_SUIT
starting_node = TRUE
display_name = "Modular Suit"
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_clamp",
"mod_tether",
"mod_welding",
"mod_safety",
"mod_mouthhole",
"mod_longfall",
"mod_thermal_regulator",
"mod_sign_radio",
)
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = TECHWEB_TIER_1_POINTS)
/datum/techweb_node/mod_entertainment
id = TECHWEB_NODE_MOD_ENTERTAINMENT
display_name = "Entertainment Modular Suit"
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)
/datum/techweb_node/mod_medical
id = TECHWEB_NODE_MOD_MEDICAL
display_name = "Medical Modular Suit"
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)
/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)
/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_plating_security",
"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)
/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)
/datum/techweb_node/mod_engi_adv
id = TECHWEB_NODE_MOD_ENGI_ADV
display_name = "Advanced Engineering Modular Suit"
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)
/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 Suit"
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)