//Baseline hardsuits /obj/item/clothing/head/helmet/space/hardsuit name = "hardsuit helmet" desc = "A special helmet designed for work in a hazardous, low-pressure environment." icon_state = "hardsuit0-engineering" item_state = "eng_helm" hardsuit_restrict_helmet = 1 armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) allowed = list(/obj/item/flashlight) var/brightness_on = 4 //luminosity when on var/on = 0 item_color = "engineering" //Determines used sprites: hardsuit[on]-[color] and hardsuit[on]-[color]2 (lying down sprite) actions_types = list(/datum/action/item_action/toggle_helmet_light) //Species-specific stuff. species_restricted = list("exclude","Diona","Wryn") sprite_sheets = list( "Unathi" = 'icons/mob/species/unathi/helmet.dmi', "Tajaran" = 'icons/mob/species/tajaran/helmet.dmi', "Skrell" = 'icons/mob/species/skrell/helmet.dmi', "Vox" = 'icons/mob/species/vox/helmet.dmi', "Vulpkanin" = 'icons/mob/species/vulpkanin/helmet.dmi', "Drask" = 'icons/mob/species/drask/helmet.dmi', "Grey" = 'icons/mob/species/grey/helmet.dmi' ) sprite_sheets_obj = list( "Unathi" = 'icons/obj/clothing/species/unathi/hats.dmi', "Tajaran" = 'icons/obj/clothing/species/tajaran/hats.dmi', "Skrell" = 'icons/obj/clothing/species/skrell/hats.dmi', "Vox" = 'icons/obj/clothing/species/vox/hats.dmi', "Vulpkanin" = 'icons/obj/clothing/species/vulpkanin/hats.dmi' ) /obj/item/clothing/head/helmet/space/hardsuit/equip_to_best_slot(mob/M) if(hardsuit_restrict_helmet) to_chat(M, "You must fasten the helmet to a hardsuit first. (Target the head and use on a hardsuit)") // Stop hardsuit helmet equipping return 0 ..() /obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user) toggle_light(user) /obj/item/clothing/head/helmet/space/hardsuit/proc/toggle_light(mob/user) on = !on icon_state = "hardsuit[on]-[item_color]" if(on) set_light(brightness_on) else set_light(0) if(istype(user,/mob/living/carbon/human)) var/mob/living/carbon/human/H = user H.update_inv_head() for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() /obj/item/clothing/head/helmet/space/hardsuit/extinguish_light() if(on) toggle_light() visible_message("[src]'s light fades and turns off.") /obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot) if(slot == slot_head) return 1 /obj/item/clothing/suit/space/hardsuit name = "hardsuit" desc = "A special space suit for environments that might pose hazards beyond just the vacuum of space. Provides more protection than a standard space suit." icon_state = "hardsuit-engineering" item_state = "eng_hardsuit" armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/t_scanner, /obj/item/rcd, /obj/item/rpd) siemens_coefficient = 0 actions_types = list(/datum/action/item_action/toggle_helmet) hide_tail_by_species = list("Vox" , "Vulpkanin" , "Unathi" , "Tajaran") species_restricted = list("exclude","Diona","Wryn") sprite_sheets = list( "Unathi" = 'icons/mob/species/unathi/suit.dmi', "Tajaran" = 'icons/mob/species/tajaran/suit.dmi', "Skrell" = 'icons/mob/species/skrell/suit.dmi', "Vox" = 'icons/mob/species/vox/suit.dmi', "Vulpkanin" = 'icons/mob/species/vulpkanin/suit.dmi', "Drask" = 'icons/mob/species/drask/suit.dmi' ) sprite_sheets_obj = list( "Unathi" = 'icons/obj/clothing/species/unathi/suits.dmi', "Tajaran" = 'icons/obj/clothing/species/tajaran/suits.dmi', "Skrell" = 'icons/obj/clothing/species/skrell/suits.dmi', "Vox" = 'icons/obj/clothing/species/vox/suits.dmi', "Vulpkanin" = 'icons/obj/clothing/species/vulpkanin/suits.dmi' ) //Breach thresholds, should ideally be inherited by most (if not all) hardsuits. breach_threshold = 18 can_breach = 0 //Component/device holders. var/obj/item/stock_parts/gloves = null // Basic capacitor allows insulation, upgrades allow shock gloves etc. var/attached_boots = 1 // Can't wear boots if some are attached var/obj/item/clothing/shoes/magboots/boots = null // Deployable boots, if any. var/attached_helmet = 1 // Can't wear a helmet if one is deployable. var/obj/item/clothing/head/helmet/helmet = null // Deployable helmet, if any. var/list/max_mounted_devices = 0 // Maximum devices. Easy. var/list/can_mount = null // Types of device that can be hardpoint mounted. var/list/mounted_devices = null // Holder for the above device. var/obj/item/active_device = null // Currently deployed device, if any. /obj/item/clothing/suit/space/hardsuit/equipped(mob/M) ..() var/mob/living/carbon/human/H = M if(!istype(H)) return spawn(1) //to ensure the slot is set before we continue if(H.wear_suit != src) return if(attached_helmet && helmet) if(H.head) to_chat(M, "You are unable to deploy your suit's helmet as \the [H.head] is in the way.") else to_chat(M, "Your suit's helmet deploys with a hiss.") //TODO: Species check, skull damage for forcing an unfitting helmet on? helmet.forceMove(H) H.equip_to_slot(helmet, slot_head) helmet.flags |= NODROP if(attached_boots && boots) if(H.shoes) to_chat(M, "You are unable to deploy your suit's magboots as \the [H.shoes] are in the way.") else to_chat(M, "Your suit's boots deploy with a hiss.") boots.forceMove(H) H.equip_to_slot(boots, slot_shoes) boots.flags |= NODROP /obj/item/clothing/suit/space/hardsuit/dropped() ..() var/mob/living/carbon/human/H if(helmet) H = helmet.loc if(istype(H)) if(helmet && H.head == helmet) helmet.flags &= ~NODROP H.unEquip(helmet) helmet.forceMove(src) if(boots) H = boots.loc if(istype(H)) if(boots && H.shoes == boots) boots.flags &= ~NODROP H.unEquip(boots) boots.forceMove(src) /obj/item/clothing/suit/space/hardsuit/ui_action_click() ..() toggle_helmet() /obj/item/clothing/suit/space/hardsuit/verb/toggle_helmet() set name = "Toggle Helmet" set category = "Object" set src in usr if(!isliving(usr)) return if(!helmet) to_chat(usr, "There is no helmet installed.") return var/mob/living/carbon/human/H = usr if(!istype(H)) return if(H.stat) return if(H.wear_suit != src) return if(H.head == helmet) helmet.flags &= ~NODROP H.unEquip(helmet) helmet.loc = src to_chat(H, "You retract your hardsuit helmet.") else if(H.head) to_chat(H, "You cannot deploy your helmet while wearing another helmet.") return //TODO: Species check, skull damage for forcing an unfitting helmet on? helmet.loc = H helmet.pickup(H) H.equip_to_slot(helmet, slot_head) helmet.flags |= NODROP to_chat(H, "You deploy your hardsuit helmet, sealing you off from the world.") H.update_inv_head() /obj/item/clothing/suit/space/hardsuit/attackby(obj/item/W, mob/user, params) if(!isliving(user)) return if(istype(W,/obj/item/screwdriver) && can_modify(user)) if(!helmet) to_chat(user, "\The [src] does not have a helmet installed.") else to_chat(user, "You detach \the [helmet] from \the [src]'s helmet mount.") helmet.loc = get_turf(src) if(istype(helmet,/obj/item/clothing/head/helmet/space/hardsuit/syndi)) var/obj/item/clothing/head/helmet/space/hardsuit/syndi/S = helmet S.linkedsuit = null src.helmet = null return if(!boots) to_chat(user, "\The [src] does not have any boots installed.") else to_chat(user, "You detach \the [boots] from \the [src]'s boot mounts.") boots.loc = get_turf(src) boots = null return else if(istype(W,/obj/item/clothing/head/helmet/space) && can_modify(user)) if(!attached_helmet) to_chat(user, "\The [src] does not have a helmet mount.") return if(helmet) to_chat(user, "\The [src] already has a helmet installed.") else to_chat(user, "You attach \the [W] to \the [src]'s helmet mount.") user.drop_item() W.loc = src helmet = W if(istype(helmet,/obj/item/clothing/head/helmet/space/hardsuit/syndi)) var/obj/item/clothing/head/helmet/space/hardsuit/syndi/S = W S.forceMove(src) helmet = S S.link_suit() return else if(istype(W,/obj/item/clothing/shoes/magboots) && can_modify(user)) if(!attached_boots) to_chat(user, "\The [src] does not have boot mounts.") return if(boots) to_chat(user, "\The [src] already has magboots installed.") else to_chat(user, "You attach \the [W] to \the [src]'s boot mounts.") user.drop_item() W.loc = src boots = W else return ..() ..() /obj/item/clothing/suit/space/hardsuit/proc/can_modify(mob/living/user) if(isliving(loc)) to_chat(user, "You can not modify the hardsuit while it is being worn.") return 0 return 1 //Engineering hardsuit /obj/item/clothing/head/helmet/space/hardsuit/engineering name = "engineering hardsuit helmet" desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." icon_state = "hardsuit0-engineering" item_state = "eng_helm" armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) /obj/item/clothing/suit/space/hardsuit/engineering name = "engineering hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding." icon_state = "hardsuit-engineering" item_state = "eng_hardsuit" armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75) allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/t_scanner, /obj/item/rcd) //Chief Engineer's hardsuit /obj/item/clothing/head/helmet/space/hardsuit/elite name = "advanced hardsuit helmet" desc = "An advanced helmet designed for work in a hazardous, low pressure environment. Shines with a high polish." icon_state = "hardsuit0-white" item_state = "ce_helm" item_color = "white" armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90) heat_protection = HEAD //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT /obj/item/clothing/suit/space/hardsuit/elite icon_state = "hardsuit-white" name = "advanced hardsuit" desc = "An advanced suit that protects against hazardous, low pressure environments. Shines with a high polish." item_state = "ce_hardsuit" armor = list(melee = 40, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 90) heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT //Mining hardsuit /obj/item/clothing/head/helmet/space/hardsuit/mining name = "mining hardsuit helmet" desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating." icon_state = "hardsuit0-mining" item_state = "mining_helm" item_color = "mining" armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50) /obj/item/clothing/suit/space/hardsuit/mining icon_state = "hardsuit-mining" name = "mining hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating." item_state = "mining_hardsuit" armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50) allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/storage/bag/ore,/obj/item/pickaxe) //Syndicate hardsuit /obj/item/clothing/head/helmet/space/hardsuit/syndi name = "blood-red hardsuit helmet" desc = "A dual-mode advanced helmet designed for work in special operations. It is in travel mode. Property of Gorlex Marauders." alt_desc = "A dual-mode advanced helmet designed for work in special operations. It is in combat mode. Property of Gorlex Marauders." icon_state = "hardsuit1-syndi" item_state = "syndie_helm" item_color = "syndi" armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) on = 1 var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null actions_types = list(/datum/action/item_action/toggle_helmet_mode) flags = BLOCKHAIR | STOPSPRESSUREDMAGE | THICKMATERIAL visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE|HIDETAIL /obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon() icon_state = "hardsuit[on]-[item_color]" /obj/item/clothing/head/helmet/space/hardsuit/syndi/proc/link_suit() . = ..() if(istype(loc,/obj/item/clothing/suit/space/hardsuit/syndi)) linkedsuit = loc /obj/item/clothing/head/helmet/space/hardsuit/syndi/attack_self(mob/user) if(!linkedsuit) to_chat(user, "You must attach the helmet to a syndicate hardsuit to toggle combat mode!") return on = !on if(on) to_chat(user, "You switch your helmet to travel mode. It will allow you to stand in zero pressure environments, at the cost of speed.") name = initial(name) desc = initial(desc) set_light(brightness_on) flags = BLOCKHAIR | STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP flags_cover |= HEADCOVERSEYES | HEADCOVERSMOUTH flags_inv |= visor_flags_inv cold_protection |= HEAD else to_chat(user, "You switch your helmet to combat mode. You will take damage in zero pressure environments, but you are more suited for a fight.") name = "blood-red hardsuit helmet (combat)" desc = alt_desc set_light(0) flags = BLOCKHAIR | THICKMATERIAL | NODROP flags_cover &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH) flags_inv &= ~visor_flags_inv cold_protection &= ~HEAD update_icon() playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) toggle_hardsuit_mode(user) user.update_inv_head() for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() /obj/item/clothing/head/helmet/space/hardsuit/syndi/proc/toggle_hardsuit_mode(mob/user) //Helmet Toggles Suit Mode if(linkedsuit) if(on) linkedsuit.name = initial(linkedsuit.name) linkedsuit.desc = initial(linkedsuit.desc) linkedsuit.slowdown = 1 linkedsuit.flags |= STOPSPRESSUREDMAGE | THICKMATERIAL linkedsuit.flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL linkedsuit.cold_protection |= UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS else linkedsuit.name += " (combat)" linkedsuit.desc = linkedsuit.alt_desc linkedsuit.slowdown = 0 linkedsuit.flags = THICKMATERIAL linkedsuit.cold_protection &= ~(UPPER_TORSO | LOWER_TORSO | LEGS | FEET | ARMS | HANDS) linkedsuit.flags_inv &= ~(HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT|HIDETAIL) linkedsuit.update_icon() user.update_inv_wear_suit() user.update_inv_w_uniform() for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() /obj/item/clothing/head/helmet/space/hardsuit/syndi/freedom name = "eagle helmet" desc = "An advanced, space-proof helmet. It appears to be modeled after an old-world eagle." icon_state = "griffinhat" item_state = "griffinhat" /obj/item/clothing/head/helmet/space/hardsuit/syndi/freedom/update_icon() return /obj/item/clothing/suit/space/hardsuit/syndi name = "blood-red hardsuit" desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in travel mode. Property of Gorlex Marauders." alt_desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in combat mode. Property of Gorlex Marauders." icon_state = "hardsuit1-syndi" item_state = "syndie_hardsuit" item_color = "syndi" w_class = WEIGHT_CLASS_NORMAL var/on = 1 actions_types = list(/datum/action/item_action/toggle_hardsuit_mode) armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) allowed = list(/obj/item/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword/saber,/obj/item/restraints/handcuffs,/obj/item/tank) /obj/item/clothing/suit/space/hardsuit/syndi/update_icon() icon_state = "hardsuit[on]-[item_color]" //Elite Syndie suit /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite name = "elite syndicate hardsuit helmet" desc = "An elite version of the syndicate helmet, with improved armour and fire shielding. It is in travel mode. Property of Gorlex Marauders." icon_state = "hardsuit0-syndielite" item_color = "syndielite" armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70) heat_protection = HEAD max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT sprite_sheets = null /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/attack_self(mob/user) ..() if(on) name = "elite syndicate hardsuit helmet" desc = "An elite version of the syndicate helmet, with improved armour and fire shielding. It is in travel mode. Property of Gorlex Marauders." else name = "elite syndicate hardsuit helmet (combat)" desc = "An elite version of the syndicate helmet, with improved armour and fire shielding. It is in combat mode. Property of Gorlex Marauders." /obj/item/clothing/suit/space/hardsuit/syndi/elite name = "elite syndicate hardsuit" desc = "An elite version of the syndicate hardsuit, with improved armour and fire shielding. It is in travel mode." icon_state = "hardsuit0-syndielite" item_color = "syndielite" armor = list(melee = 60, bullet = 60, laser = 50, energy = 25, bomb = 55, bio = 100, rad = 70) heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT sprite_sheets = null /obj/item/clothing/suit/space/hardsuit/syndi/elite/attack_self(mob/user) ..() if(on) name = "elite syndicate hardsuit" desc = "An elite version of the syndicate hardsuit, with improved armour and fire shielding. It is in travel mode. Property of Gorlex Marauders." else name = "elite syndicate hardsuit (combat)" desc = "An elite version of the syndicate hardsuit, with improved armour and fire shielding. It is in combat mode. Property of Gorlex Marauders." //Strike team hardsuits /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite/sst armor = list(melee = 70, bullet = 70, laser = 50, energy = 40, bomb = 80, bio = 100, rad = 100) //Almost as good as DS gear, but unlike DS can switch to combat for mobility icon_state = "hardsuit0-sst" item_color = "sst" /obj/item/clothing/suit/space/hardsuit/syndi/elite/sst armor = list(melee = 70, bullet = 70, laser = 50, energy = 40, bomb = 80, bio = 100, rad = 100) icon_state = "hardsuit0-sst" item_color = "sst" /obj/item/clothing/suit/space/hardsuit/syndi/freedom name = "eagle suit" desc = "An advanced, light suit, fabricated from a mixture of synthetic feathers and space-resistant material. A gun holster appears to be integrated into the suit." icon_state = "freedom" item_state = "freedom" /obj/item/clothing/suit/space/hardsuit/syndi/freedom/update_icon() return //Wizard hardsuit /obj/item/clothing/head/helmet/space/hardsuit/wizard name = "gem-encrusted hardsuit helmet" desc = "A bizarre gem-encrusted helmet that radiates magical energies." icon_state = "hardsuit0-wiz" item_state = "wiz_helm" item_color = "wiz" unacidable = TRUE //No longer shall our kind be foiled by lone chemists with spray bottles! armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50) heat_protection = HEAD //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT species_fit = list("Grey") sprite_sheets = list( "Grey" = 'icons/mob/species/grey/helmet.dmi' ) magical = TRUE /obj/item/clothing/suit/space/hardsuit/wizard icon_state = "hardsuit-wiz" name = "gem-encrusted hardsuit" desc = "A bizarre gem-encrusted suit that radiates magical energies." item_state = "wiz_hardsuit" w_class = WEIGHT_CLASS_NORMAL unacidable = TRUE armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50) allowed = list(/obj/item/teleportation_scroll,/obj/item/tank) heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT sprite_sheets = null magical = TRUE //Medical hardsuit /obj/item/clothing/head/helmet/space/hardsuit/medical name = "medical hardsuit helmet" desc = "A special helmet designed for work in a hazardous, low pressure environment. Built with lightweight materials for extra comfort, but does not protect the eyes from intense light." icon_state = "hardsuit0-medical" item_state = "medical_helm" item_color = "medical" flags_inv = HIDEMASK|HIDEEARS|HIDEEYES armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50) flash_protect = 0 scan_reagents = 1 //Generally worn by the CMO, so they'd get utility off of seeing reagents /obj/item/clothing/suit/space/hardsuit/medical icon_state = "hardsuit-medical" name = "medical hardsuit" desc = "A special helmet designed for work in a hazardous, low pressure environment. Built with lightweight materials for extra comfort." item_state = "medical_hardsuit" allowed = list(/obj/item/flashlight,/obj/item/tank,/obj/item/storage/firstaid,/obj/item/healthanalyzer,/obj/item/stack/medical,/obj/item/rad_laser) armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50) //Security /obj/item/clothing/head/helmet/space/hardsuit/security name = "security hardsuit helmet" desc = "A special helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." icon_state = "hardsuit0-sec" item_state = "sec_helm" item_color = "sec" armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50) /obj/item/clothing/suit/space/hardsuit/security icon_state = "hardsuit-sec" name = "security hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor." item_state = "sec_hardsuit" armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50) allowed = list(/obj/item/gun,/obj/item/flashlight,/obj/item/tank,/obj/item/melee/baton,/obj/item/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/restraints/handcuffs) //Atmospherics hardsuit (BS12) /obj/item/clothing/head/helmet/space/hardsuit/atmos desc = "A special helmet designed for work in a hazardous, low pressure environments. Has improved thermal protection and minor radiation shielding." name = "atmospherics hardsuit helmet" icon_state = "hardsuit0-atmos" item_state = "atmos_helm" item_color = "atmos" armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0) heat_protection = HEAD //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT /obj/item/clothing/suit/space/hardsuit/atmos desc = "A special suit that protects against hazardous, low pressure environments. Has improved thermal protection and minor radiation shielding." icon_state = "hardsuit-atmos" name = "atmos hardsuit" item_state = "atmos_hardsuit" armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 0) heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT //Singuloth armor /obj/item/clothing/head/helmet/space/hardsuit/singuloth name = "singuloth knight's helmet" desc = "This is an adamantium helmet from the chapter of the Singuloth Knights. It shines with a holy aura." icon_state = "hardsuit0-singuloth" item_state = "singuloth_helm" item_color = "singuloth" armor = list(melee = 40, bullet = 5, laser = 20, energy = 5, bomb = 25, bio = 100, rad = 100) /obj/item/clothing/suit/space/hardsuit/singuloth icon_state = "hardsuit-singuloth" name = "singuloth knight's armor" desc = "This is a ceremonial armor from the chapter of the Singuloth Knights. It's made of pure forged adamantium." item_state = "singuloth_hardsuit" flags = STOPSPRESSUREDMAGE armor = list(melee = 40, bullet = 5, laser = 20, energy = 5, bomb = 25, bio = 100, rad = 100) /obj/item/clothing/head/helmet/space/hardsuit/security/hos name = "head of security's hardsuit helmet" desc = "a special bulky helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor." icon_state = "hardsuit0-hos" item_color = "hos" armor = list(melee = 45, bullet = 25, laser = 30,energy = 10, bomb = 25, bio = 100, rad = 50) /obj/item/clothing/suit/space/hardsuit/security/hos icon_state = "hardsuit-hos" name = "head of security's hardsuit" desc = "A special bulky suit that protects against hazardous, low pressure environments. Has an additional layer of armor." armor = list(melee = 45, bullet = 25, laser = 30, energy = 10, bomb = 25, bio = 100, rad = 50) sprite_sheets = null /////////////SHIELDED////////////////////////////////// /obj/item/clothing/suit/space/hardsuit/shielded name = "shielded hardsuit" desc = "A hardsuit with built in energy shielding. Will rapidly recharge when not under fire." icon_state = "hardsuit-hos" allowed = list(/obj/item/flashlight,/obj/item/tank, /obj/item/gun,/obj/item/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/restraints/handcuffs) armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50) var/current_charges = 3 var/max_charges = 3 //How many charges total the shielding has var/recharge_delay = 200 //How long after we've been shot before we can start recharging. 20 seconds here var/recharge_cooldown = 0 //Time since we've last been shot var/recharge_rate = 1 //How quickly the shield recharges once it starts charging var/shield_state = "shield-old" var/shield_on = "shield-old" sprite_sheets = null /obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, attack_text) if(current_charges > 0) do_sparks(2, 1, src) owner.visible_message("[owner]'s shields deflect [attack_text] in a shower of sparks!") current_charges-- recharge_cooldown = world.time + recharge_delay processing_objects |= src if(current_charges <= 0) owner.visible_message("[owner]'s shield overloads!") shield_state = "broken" owner.update_inv_wear_suit() return 1 return 0 /obj/item/clothing/suit/space/hardsuit/shielded/Destroy() processing_objects.Remove(src) return ..() /obj/item/clothing/suit/space/hardsuit/shielded/process() if(world.time > recharge_cooldown && current_charges < max_charges) current_charges = Clamp((current_charges + recharge_rate), 0, max_charges) playsound(loc, 'sound/magic/charge.ogg', 50, 1) if(current_charges == max_charges) playsound(loc, 'sound/machines/ding.ogg', 50, 1) processing_objects.Remove(src) shield_state = "[shield_on]" if(istype(loc, /mob/living/carbon/human)) var/mob/living/carbon/human/C = loc C.update_inv_wear_suit() //////Syndicate Version /obj/item/clothing/suit/space/hardsuit/shielded/syndi name = "blood-red hardsuit" desc = "An advanced hardsuit with built in energy shielding." icon_state = "hardsuit1-syndi" item_state = "syndie_hardsuit" item_color = "syndi" armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50) allowed = list(/obj/item/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/melee/baton,/obj/item/melee/energy/sword/saber,/obj/item/restraints/handcuffs,/obj/item/tank) slowdown = 0 sprite_sheets = list( "Unathi" = 'icons/mob/species/unathi/suit.dmi', "Tajaran" = 'icons/mob/species/tajaran/suit.dmi', "Skrell" = 'icons/mob/species/skrell/suit.dmi', "Vox" = 'icons/mob/species/vox/suit.dmi', "Vulpkanin" = 'icons/mob/species/vulpkanin/suit.dmi', "Drask" = 'icons/mob/species/drask/suit.dmi' ) /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi name = "blood-red hardsuit helmet" desc = "An advanced hardsuit helmet with built in energy shielding." icon_state = "hardsuit1-syndi" item_state = "syndie_helm" item_color = "syndi" armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)