//Regular rig suits /obj/item/clothing/head/helmet/space/rig name = "hardsuit helmet" desc = "A special helmet designed for work in a hazardous, low-pressure environment." icon_state = "rig0-engineering" item_state = "eng_helm" armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 20) allowed = list(/obj/item/device/flashlight) var/brightness_on = 4 //luminosity when on var/on = 0 item_color = "engineering" //Determines used sprites: rig[on]-[color] and rig[on]-[color]2 (lying down sprite) icon_action_button = "action_hardhat" heat_protection = HEAD max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE //Species-specific stuff. species_restricted = list("exclude","Unathi","Tajara","Skrell","Diona","Vox") sprite_sheets_refit = list( "Unathi" = 'icons/mob/species/unathi/helmet.dmi', "Tajara" = 'icons/mob/species/tajaran/helmet.dmi', "Skrell" = 'icons/mob/species/skrell/helmet.dmi', ) sprite_sheets_obj = list( "Unathi" = 'icons/obj/clothing/species/unathi/hats.dmi', "Tajara" = 'icons/obj/clothing/species/tajaran/hats.dmi', "Skrell" = 'icons/obj/clothing/species/skrell/hats.dmi', ) attack_self(mob/user) if(!isturf(user.loc)) user << "You cannot turn the light on while in this [user.loc]" //To prevent some lighting anomalities. return on = !on icon_state = "rig[on]-[item_color]" // item_state = "rig[on]-[color]" if(on) user.SetLuminosity(user.luminosity + brightness_on) else user.SetLuminosity(user.luminosity - brightness_on) if(istype(user,/mob/living/carbon/human)) var/mob/living/carbon/human/H = user H.update_inv_head() pickup(mob/user) if(on) user.SetLuminosity(user.luminosity + brightness_on) // user.UpdateLuminosity() SetLuminosity(0) dropped(mob/user) if(on) user.SetLuminosity(user.luminosity - brightness_on) // user.UpdateLuminosity() SetLuminosity(brightness_on) /obj/item/clothing/suit/space/rig 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 = "rig-engineering" item_state = "eng_hardsuit" slowdown = 1 armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 20) allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit) heat_protection = UPPER_TORSO|LOWER_TORSO|LEGS|FEET|ARMS|HANDS max_heat_protection_temperature = SPACE_SUIT_MAX_HEAT_PROTECTION_TEMPERATURE species_restricted = list("exclude","Unathi","Tajara","Diona","Vox") sprite_sheets_refit = list( "Unathi" = 'icons/mob/species/unathi/suit.dmi', "Tajara" = 'icons/mob/species/tajaran/suit.dmi', "Skrell" = 'icons/mob/species/skrell/suit.dmi', ) sprite_sheets_obj = list( "Unathi" = 'icons/obj/clothing/species/unathi/suits.dmi', "Tajara" = 'icons/obj/clothing/species/tajaran/suits.dmi', "Skrell" = 'icons/obj/clothing/species/skrell/suits.dmi', ) //Breach thresholds, should ideally be inherited by most (if not all) hardsuits. breach_threshold = 18 can_breach = 1 //Component/device holders. var/obj/item/weapon/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/rig/equipped(mob/M) ..() var/mob/living/carbon/human/H = M if(!istype(H)) return if(H.wear_suit != src) return if(attached_helmet && helmet) if(H.head) M << "You are unable to deploy your suit's helmet as \the [H.head] is in the way." else M << "Your suit's helmet deploys with a hiss." //TODO: Species check, skull damage for forcing an unfitting helmet on? helmet.loc = H H.equip_to_slot(helmet, slot_head) helmet.canremove = 0 if(attached_boots && boots) if(H.shoes) M << "You are unable to deploy your suit's magboots as \the [H.shoes] are in the way." else M << "Your suit's boots deploy with a hiss." boots.loc = H H.equip_to_slot(boots, slot_shoes) boots.canremove = 0 /obj/item/clothing/suit/space/rig/dropped() ..() var/mob/living/carbon/human/H if(helmet) H = helmet.loc if(istype(H)) if(helmet && H.head == helmet) helmet.canremove = 1 H.drop_from_inventory(helmet) helmet.loc = src if(boots) H = boots.loc if(istype(H)) if(boots && H.shoes == boots) boots.canremove = 1 H.drop_from_inventory(boots) boots.loc = src /* /obj/item/clothing/suit/space/rig/verb/get_mounted_device() set name = "Deploy Mounted Device" set category = "Object" set src in usr if(!can_mount) verbs -= /obj/item/clothing/suit/space/rig/verb/get_mounted_device verbs -= /obj/item/clothing/suit/space/rig/verb/stow_mounted_device return if(!istype(usr, /mob/living)) return if(usr.stat) return if(active_device) usr << "You already have \the [active_device] deployed." return if(!mounted_devices.len) usr << "You do not have any devices mounted on \the [src]." return /obj/item/clothing/suit/space/rig/verb/stow_mounted_device() set name = "Stow Mounted Device" set category = "Object" set src in usr if(!can_mount) verbs -= /obj/item/clothing/suit/space/rig/verb/get_mounted_device verbs -= /obj/item/clothing/suit/space/rig/verb/stow_mounted_device return if(!istype(usr, /mob/living)) return if(usr.stat) return if(!active_device) usr << "You have no device currently deployed." return */ /obj/item/clothing/suit/space/rig/verb/toggle_helmet() set name = "Toggle Helmet" set category = "Object" set src in usr if(!istype(src.loc,/mob/living)) return if(!helmet) 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.canremove = 1 H.drop_from_inventory(helmet) helmet.loc = src H << "\blue You retract your hardsuit helmet." else if(H.head) H << "\red 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.canremove = 0 H << "\blue You deploy your hardsuit helmet, sealing you off from the world." /obj/item/clothing/suit/space/rig/attackby(obj/item/W as obj, mob/user as mob) if(!istype(user,/mob/living)) return if(user.a_intent == "help") if(istype(src.loc,/mob/living)) user << "How do you propose to modify a hardsuit while it is being worn?" return var/target_zone = user.zone_sel.selecting if(target_zone == "head") //Installing a component into or modifying the contents of the helmet. if(!attached_helmet) user << "\The [src] does not have a helmet mount." return if(istype(W,/obj/item/weapon/screwdriver)) if(!helmet) user << "\The [src] does not have a helmet installed." else user << "You detatch \the [helmet] from \the [src]'s helmet mount." helmet.loc = get_turf(src) src.helmet = null return else if(istype(W,/obj/item/clothing/head/helmet/space)) if(helmet) user << "\The [src] already has a helmet installed." else user << "You attach \the [W] to \the [src]'s helmet mount." user.drop_item() W.loc = src src.helmet = W return else return ..() else if(target_zone == "l_leg" || target_zone == "r_leg" || target_zone == "l_foot" || target_zone == "r_foot") //Installing a component into or modifying the contents of the feet. if(!attached_boots) user << "\The [src] does not have boot mounts." return if(istype(W,/obj/item/weapon/screwdriver)) if(!boots) user << "\The [src] does not have any boots installed." else user << "You detatch \the [boots] from \the [src]'s boot mounts." boots.loc = get_turf(src) boots = null return else if(istype(W,/obj/item/clothing/shoes/magboots)) if(boots) user << "\The [src] already has magboots installed." else user << "You attach \the [W] to \the [src]'s boot mounts." user.drop_item() W.loc = src boots = W else return ..() /* else if(target_zone == "l_arm" || target_zone == "r_arm" || target_zone == "l_hand" || target_zone == "r_hand") //Installing a component into or modifying the contents of the hands. else if(target_zone == "torso" || target_zone == "groin") //Modifying the cell or mounted devices if(!mounted_devices) return */ else //wat return ..() ..() //Engineering rig /obj/item/clothing/head/helmet/space/rig/engineering name = "engineering hardsuit helmet" desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding." icon_state = "rig0-engineering" item_state = "eng_helm" armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 80) /obj/item/clothing/suit/space/rig/engineering name = "engineering hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding." icon_state = "rig-engineering" item_state = "eng_hardsuit" slowdown = 1 armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 80) allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/bag/ore,/obj/item/device/t_scanner,/obj/item/weapon/pickaxe, /obj/item/weapon/rcd) //Chief Engineer's rig /obj/item/clothing/head/helmet/space/rig/engineering/chief name = "advanced hardsuit helmet" desc = "An advanced helmet designed for work in a hazardous, low pressure environment. Shines with a high polish." icon_state = "rig0-white" item_state = "ce_helm" item_color = "white" sprite_sheets_refit = null sprite_sheets_obj = null /obj/item/clothing/suit/space/rig/engineering/chief icon_state = "rig-white" name = "advanced hardsuit" desc = "An advanced suit that protects against hazardous, low pressure environments. Shines with a high polish." item_state = "ce_hardsuit" sprite_sheets_refit = null sprite_sheets_obj = null //Mining rig /obj/item/clothing/head/helmet/space/rig/mining name = "mining hardsuit helmet" desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating." icon_state = "rig0-mining" item_state = "mining_helm" item_color = "mining" armor = list(melee = 50, bullet = 5, laser = 20,energy = 5, bomb = 55, bio = 100, rad = 20) /obj/item/clothing/suit/space/rig/mining icon_state = "rig-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 = 50, bullet = 5, laser = 20,energy = 5, bomb = 55, bio = 100, rad = 20) //Syndicate rig /obj/item/clothing/head/helmet/space/rig/syndi name = "blood-red hardsuit helmet" desc = "An advanced helmet designed for work in special operations. Property of Gorlex Marauders." icon_state = "rig0-syndie" item_state = "syndie_helm" item_color = "syndie" armor = list(melee = 60, bullet = 50, laser = 30,energy = 15, bomb = 35, bio = 100, rad = 60) siemens_coefficient = 0.6 var/obj/machinery/camera/camera species_restricted = list("exclude","Unathi","Tajara","Skrell","Vox") /obj/item/clothing/head/helmet/space/rig/syndi/attack_self(mob/user) if(camera) ..(user) else camera = new /obj/machinery/camera(src) camera.network = list("NUKE") cameranet.removeCamera(camera) camera.c_tag = user.name user << "\blue User scanned as [camera.c_tag]. Camera activated." /obj/item/clothing/head/helmet/space/rig/syndi/examine(mob/user) if(..(user, 1)) user << "This helmet has a built-in camera. It's [camera ? "" : "in"]active." /obj/item/clothing/suit/space/rig/syndi icon_state = "rig-syndie" name = "blood-red hardsuit" desc = "An advanced suit that protects against injuries during special operations. Property of Gorlex Marauders." item_state = "syndie_hardsuit" slowdown = 1 w_class = 3 armor = list(melee = 60, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 60) allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/gun,/obj/item/ammo_magazine,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/handcuffs) siemens_coefficient = 0.6 species_restricted = list("exclude","Unathi","Tajara","Skrell","Vox") //Wizard Rig /obj/item/clothing/head/helmet/space/rig/wizard name = "gem-encrusted hardsuit helmet" desc = "A bizarre gem-encrusted helmet that radiates magical energies." icon_state = "rig0-wiz" item_state = "wiz_helm" item_color = "wiz" unacidable = 1 //No longer shall our kind be foiled by lone chemists with spray bottles! armor = list(melee = 40, bullet = 20, laser = 20,energy = 20, bomb = 35, bio = 100, rad = 60) siemens_coefficient = 0.7 sprite_sheets_refit = null sprite_sheets_obj = null /obj/item/clothing/suit/space/rig/wizard icon_state = "rig-wiz" name = "gem-encrusted hardsuit" desc = "A bizarre gem-encrusted suit that radiates magical energies." item_state = "wiz_hardsuit" slowdown = 1 w_class = 3 unacidable = 1 armor = list(melee = 40, bullet = 20, laser = 20,energy = 20, bomb = 35, bio = 100, rad = 60) siemens_coefficient = 0.7 sprite_sheets_refit = null sprite_sheets_obj = null //Medical Rig /obj/item/clothing/head/helmet/space/rig/medical name = "medical hardsuit helmet" desc = "A special helmet designed for work in a hazardous, low pressure environment. Has minor radiation shielding." icon_state = "rig0-medical" item_state = "medical_helm" item_color = "medical" armor = list(melee = 30, bullet = 5, laser = 20,energy = 5, bomb = 25, bio = 100, rad = 50) /obj/item/clothing/suit/space/rig/medical icon_state = "rig-medical" name = "medical hardsuit" desc = "A special suit that protects against hazardous, low pressure environments. Has minor radiation shielding." item_state = "medical_hardsuit" allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical) armor = list(melee = 30, bullet = 5, laser = 20,energy = 5, bomb = 25, bio = 100, rad = 50) //Security /obj/item/clothing/head/helmet/space/rig/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 = "rig0-sec" item_state = "sec_helm" item_color = "sec" armor = list(melee = 60, bullet = 10, laser = 30, energy = 5, bomb = 45, bio = 100, rad = 10) siemens_coefficient = 0.7 /obj/item/clothing/suit/space/rig/security icon_state = "rig-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 = 60, bullet = 10, laser = 30, energy = 5, bomb = 45, bio = 100, rad = 10) allowed = list(/obj/item/weapon/gun,/obj/item/device/flashlight,/obj/item/weapon/tank,/obj/item/device/suit_cooling_unit,/obj/item/weapon/melee/baton) siemens_coefficient = 0.7 //Atmospherics Rig (BS12) /obj/item/clothing/head/helmet/space/rig/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 = "rig0-atmos" item_state = "atmos_helm" item_color = "atmos" armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 50) max_heat_protection_temperature = FIRE_HELMET_MAX_HEAT_PROTECTION_TEMPERATURE /obj/item/clothing/suit/space/rig/atmos desc = "A special suit that protects against hazardous, low pressure environments. Has improved thermal protection and minor radiation shielding." icon_state = "rig-atmos" name = "atmos hardsuit" item_state = "atmos_hardsuit" armor = list(melee = 40, bullet = 5, laser = 20,energy = 5, bomb = 35, bio = 100, rad = 50) max_heat_protection_temperature = FIRESUIT_MAX_HEAT_PROTECTION_TEMPERATURE