Files
Bubberstation/code/modules/mod/mod_clothes.dm
SmArtKar b7383bc503 Refactors MODsuit slowdown calculations (#90116)
## About The Pull Request

MODsuits now calculate their slowdown by querying modules by sending a
signal on themselves instead of having modules try and keep up with
control unit's speed updates (which broke in a fabulous fashion after
MODsuits were allowed to deploy by piece)
Also added a separate trait to prevent objects from being speed
potion-ed to combat stabilized red crossbreed issues, and removed a
duplicate list helper (40 lines down in the same file lol)

Closes #89979
Closes #90036

## Changelog
🆑
fix: MODsuits should now be affected by stabilized red crossbreeds
fix: MODsuit slowdowns should no longer behave weirdly with ash
accretion/magboots/armor booster modules.
refactor: Refactored MODsuit slowdown calculations to be query-based
instead of modules directly modifying part speed values.
/🆑
2025-03-26 17:55:32 +01:00

79 lines
2.4 KiB
Plaintext

/obj/item/clothing/head/mod
name = "MOD helmet"
desc = "A helmet for a MODsuit."
icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi'
icon_state = "standard-helmet"
base_icon_state = "helmet"
worn_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi'
armor_type = /datum/armor/none
body_parts_covered = HEAD
heat_protection = HEAD
cold_protection = HEAD
// Even without a hat stabilizer, hats can be worn - however, they'll fall off very easily
/obj/item/clothing/head/mod/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NO_SPEED_POTION, INNATE_TRAIT)
AddComponent(/datum/component/hat_stabilizer, loose_hat = TRUE)
/obj/item/clothing/suit/mod
name = "MOD chestplate"
desc = "A chestplate for a MODsuit."
icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi'
icon_state = "standard-chestplate"
base_icon_state = "chestplate"
worn_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi'
blood_overlay_type = "armor"
allowed = list(
/obj/item/tank/internals,
/obj/item/flashlight,
/obj/item/tank/jetpack/oxygen/captain,
)
armor_type = /datum/armor/none
body_parts_covered = CHEST|GROIN
heat_protection = CHEST|GROIN
cold_protection = CHEST|GROIN
drop_sound = null
/obj/item/clothing/suit/mod/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NO_SPEED_POTION, INNATE_TRAIT)
/obj/item/clothing/gloves/mod
name = "MOD gauntlets"
desc = "A pair of gauntlets for a MODsuit."
icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi'
icon_state = "standard-gauntlets"
base_icon_state = "gauntlets"
worn_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi'
armor_type = /datum/armor/none
body_parts_covered = HANDS|ARMS
heat_protection = HANDS|ARMS
cold_protection = HANDS|ARMS
equip_sound = null
pickup_sound = null
drop_sound = null
/obj/item/clothing/gloves/mod/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NO_SPEED_POTION, INNATE_TRAIT)
/obj/item/clothing/shoes/mod
name = "MOD boots"
desc = "A pair of boots for a MODsuit."
icon = 'icons/obj/clothing/modsuit/mod_clothing.dmi'
icon_state = "standard-boots"
base_icon_state = "boots"
worn_icon = 'icons/mob/clothing/modsuit/mod_clothing.dmi'
armor_type = /datum/armor/none
body_parts_covered = FEET|LEGS
heat_protection = FEET|LEGS
cold_protection = FEET|LEGS
item_flags = IGNORE_DIGITIGRADE
fastening_type = SHOES_SLIPON
equip_sound = null
/obj/item/clothing/shoes/mod/Initialize(mapload)
. = ..()
ADD_TRAIT(src, TRAIT_NO_SPEED_POTION, INNATE_TRAIT)