Files
Aurora.3/code/modules/clothing/spacesuits/spacesuits.dm
Matt Atlas c30cd94024 Reworks armor damage reduction + armor components + more goodies. (#11106)
Ports Baystation12/Baystation12#27254 and Baystation12/Baystation12#24787 and everything inbetween I guess.

Note that this PR makes guns and armor overall stronger. Lasers also once again do organ damage.
2021-02-14 17:54:45 +02:00

89 lines
3.1 KiB
Plaintext

//Spacesuit
//Note: Everything in modules/clothing/spacesuits should have the entire suit grouped together.
// Meaning the the suit is defined directly after the corrisponding helmet. Just like below!
/obj/item/clothing/head/helmet/space
name = "space helmet"
icon_state = "space"
desc = "A special helmet designed for work in a hazardous, low-pressure environment."
item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL | AIRTIGHT
item_state_slots = list(
slot_l_hand_str = "s_helmet",
slot_r_hand_str = "s_helmet"
)
permeability_coefficient = 0.01
armor = list(
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|BLOCKHAIR
body_parts_covered = HEAD|FACE|EYES
cold_protection = HEAD
min_cold_protection_temperature = SPACE_HELMET_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0.5
species_restricted = list("exclude",BODYTYPE_DIONA,BODYTYPE_GOLEM)
flash_protection = FLASH_PROTECTION_MAJOR
allow_hair_covering = FALSE
action_button_name = "Toggle Helmet Light"
light_overlay = "helmet_light"
brightness_on = 4
light_wedge = LIGHT_WIDE
on = 0
/obj/item/clothing/suit/space
name = "space suit"
desc = "A suit that protects against low pressure environments. \"NSS AURORA\" is written in large block letters on the back."
icon_state = "space"
randpixel = 0
center_of_mass = null
w_class = ITEMSIZE_LARGE//bulky item
gas_transfer_coefficient = 0.01
permeability_coefficient = 0.02
item_flags = STOPPRESSUREDAMAGE | THICKMATERIAL
body_parts_covered = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS
allowed = list(/obj/item/device/flashlight,/obj/item/tank/emergency_oxygen,/obj/item/device/suit_cooling_unit)
slowdown = 3
armor = list(
bio = ARMOR_BIO_SHIELDED,
rad = ARMOR_RAD_SMALL
)
flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL
cold_protection = UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS
min_cold_protection_temperature = SPACE_SUIT_MIN_COLD_PROTECTION_TEMPERATURE
siemens_coefficient = 0.5
species_restricted = list("exclude",BODYTYPE_DIONA,BODYTYPE_GOLEM)
var/list/supporting_limbs //If not-null, automatically splints breaks. Checked when removing the suit.
/obj/item/clothing/suit/space/equipped(mob/M)
check_limb_support()
..()
/obj/item/clothing/suit/space/dropped(var/mob/user)
check_limb_support(user)
..()
/obj/item/clothing/suit/space/on_slotmove(var/mob/user)
check_limb_support(user)
..()
// Some space suits are equipped with reactive membranes that support
// broken limbs - at the time of writing, only the ninja suit, but
// I can see it being useful for other suits as we expand them. ~ Z
// The actual splinting occurs in /obj/item/organ/external/proc/fracture()
/obj/item/clothing/suit/space/proc/check_limb_support(var/mob/living/carbon/human/user)
// If this isn't set, then we don't need to care.
if(!supporting_limbs || !supporting_limbs.len)
return
if(!istype(user) || user.wear_suit == src)
return
// Otherwise, remove the splints.
for(var/obj/item/organ/external/E in supporting_limbs)
E.status &= ~ ORGAN_SPLINTED
to_chat(user, "The suit stops supporting your [E.name].")
supporting_limbs = list()