Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //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. Has radiation shielding."
- icon_state = "hardsuit0-engineering"
- item_state = "eng_helm"
- max_integrity = 300
- armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 50, "acid" = 75)
- var/basestate = "hardsuit"
- var/brightness_on = 4 //luminosity when on
- var/on = FALSE
- var/obj/item/clothing/suit/space/hardsuit/suit
- var/hardsuit_type = "engineering" //Determines used sprites: hardsuit[on]-[type]
- actions_types = list(/datum/action/item_action/toggle_helmet_light)
- flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
- visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
- var/rad_count = 0
- var/rad_record = 0
- var/grace_count = 0
- var/datum/looping_sound/geiger/soundloop
- /obj/item/clothing/head/helmet/space/hardsuit/Initialize()
- . = ..()
- soundloop = new(list(), FALSE, TRUE)
- soundloop.volume = 5
- START_PROCESSING(SSobj, src)
- /obj/item/clothing/head/helmet/space/hardsuit/Destroy()
- . = ..()
- STOP_PROCESSING(SSobj, src)
- /obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user)
- on = !on
- icon_state = "[basestate][on]-[hardsuit_type]"
- user.update_inv_head() //so our mob-overlays update
- if(on)
- set_light(brightness_on)
- else
- set_light(0)
- for(var/X in actions)
- var/datum/action/A = X
- A.UpdateButtonIcon()
- /obj/item/clothing/head/helmet/space/hardsuit/dropped(mob/user)
- ..()
- if(suit)
- suit.RemoveHelmet()
- soundloop.stop(user)
- /obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot)
- if(slot == SLOT_HEAD)
- return 1
- /obj/item/clothing/head/helmet/space/hardsuit/equipped(mob/user, slot)
- ..()
- if(slot != SLOT_HEAD)
- if(suit)
- suit.RemoveHelmet()
- soundloop.stop(user)
- else
- qdel(src)
- else
- soundloop.start(user)
- /obj/item/clothing/head/helmet/space/hardsuit/proc/display_visor_message(var/msg)
- var/mob/wearer = loc
- if(msg && ishuman(wearer))
- wearer.show_message("[icon2html(src, wearer)]<b><span class='robot'>[msg]</span></b>", 1)
- /obj/item/clothing/head/helmet/space/hardsuit/rad_act(severity)
- . = ..()
- rad_count += severity
- /obj/item/clothing/head/helmet/space/hardsuit/process()
- if(!rad_count)
- grace_count++
- if(grace_count == 2)
- soundloop.last_radiation = 0
- return
- grace_count = 0
- rad_record -= rad_record/5
- rad_record += rad_count/5
- rad_count = 0
- soundloop.last_radiation = rad_record
- /obj/item/clothing/head/helmet/space/hardsuit/emp_act(severity)
- . = ..()
- display_visor_message("[severity > 1 ? "Light" : "Strong"] electromagnetic pulse detected.")
- /obj/item/clothing/head/helmet/space/hardsuit/health_scan(mob/user/M)
- var/oxy_loss = M.getOxyLoss()
- var/tox_loss = M.getToxLoss()
- var/fire_loss = M.getFireLoss()
- var/brute_loss = M.getBruteLoss()
- if(user.health < 81)
- if(brute_loss > 20)
- display_visor_message("[brute_loss > 50 ? "Major" : "Minor"] lacerations detected.</span>")
- if(fire_loss > 20)
- display_visor_message("[fire_loss > 50 ? "Severe" : "Minor"] burn damage detected.</span>")
- if(oxy_loss > 20)
- display_visor_message("[oxy_loss > 50 ? "Severe" : "Minor"] oxygen deprivation detected.</span>")
- if(tox_loss > 20)
- display_visor_message("[tox_loss > 50 ? "Severe" : "Minor"] amount of toxin damage detected.</span>")
- if(user.health < 25)
- display_visor_message("Vital signs critical.")
- if(user.health < 1)
- display_visor_message("Emergency! User death imminent.")
- if (M.radiation > 50)
- display_visor_message("Irradiation detected.")
- display_visor_message("Seek medical attention.")
- /obj/item/clothing/suit/space/hardsuit
- name = "hardsuit"
- desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
- icon_state = "hardsuit-engineering"
- item_state = "eng_hardsuit"
- max_integrity = 300
- armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 50, "acid" = 75)
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser)
- siemens_coefficient = 0
- var/obj/item/clothing/head/helmet/space/hardsuit/helmet
- actions_types = list(/datum/action/item_action/toggle_helmet)
- var/helmettype = /obj/item/clothing/head/helmet/space/hardsuit
- var/obj/item/tank/jetpack/suit/jetpack = null
- var/hardsuit_type
- /obj/item/clothing/suit/space/hardsuit/Initialize()
- if(jetpack && ispath(jetpack))
- jetpack = new jetpack(src)
- . = ..()
- /obj/item/clothing/suit/space/hardsuit/attack_self(mob/user)
- user.changeNext_move(CLICK_CD_MELEE)
- ..()
- /obj/item/clothing/suit/space/hardsuit/attackby(obj/item/I, mob/user, params)
- if(istype(I, /obj/item/tank/jetpack/suit))
- if(jetpack)
- to_chat(user, "<span class='warning'>[src] already has a jetpack installed.</span>")
- return
- if(src == user.get_item_by_slot(SLOT_WEAR_SUIT)) //Make sure the player is not wearing the suit before applying the upgrade.
- to_chat(user, "<span class='warning'>You cannot install the upgrade to [src] while wearing it.</span>")
- return
- if(user.transferItemToLoc(I, src))
- jetpack = I
- to_chat(user, "<span class='notice'>You successfully install the jetpack into [src].</span>")
- return
- else if(I.tool_behaviour == TOOL_SCREWDRIVER)
- if(!jetpack)
- to_chat(user, "<span class='warning'>[src] has no jetpack installed.</span>")
- return
- if(src == user.get_item_by_slot(SLOT_WEAR_SUIT))
- to_chat(user, "<span class='warning'>You cannot remove the jetpack from [src] while wearing it.</span>")
- return
- jetpack.turn_off(user)
- jetpack.forceMove(drop_location())
- jetpack = null
- to_chat(user, "<span class='notice'>You successfully remove the jetpack from [src].</span>")
- return
- return ..()
- /obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot)
- ..()
- if(jetpack)
- if(slot == SLOT_WEAR_SUIT)
- for(var/X in jetpack.actions)
- var/datum/action/A = X
- A.Grant(user)
- /obj/item/clothing/suit/space/hardsuit/dropped(mob/user)
- ..()
- if(jetpack)
- for(var/X in jetpack.actions)
- var/datum/action/A = X
- A.Remove(user)
- /obj/item/clothing/suit/space/hardsuit/item_action_slot_check(slot)
- if(slot == SLOT_WEAR_SUIT) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit.
- return 1
- //Engineering
- /obj/item/clothing/head/helmet/space/hardsuit/engine
- 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" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 100, "acid" = 75)
- hardsuit_type = "engineering"
- resistance_flags = FIRE_PROOF
- /obj/item/clothing/suit/space/hardsuit/engine
- 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" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 100, "acid" = 75)
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine
- resistance_flags = FIRE_PROOF
- //Atmospherics
- /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
- name = "atmospherics hardsuit helmet"
- desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has thermal shielding."
- icon_state = "hardsuit0-atmospherics"
- item_state = "atmo_helm"
- hardsuit_type = "atmospherics"
- armor = list("melee" = 20, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 25, "fire" = 100, "acid" = 75)
- heat_protection = HEAD //Uncomment to enable firesuit protection
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- /obj/item/clothing/suit/space/hardsuit/engine/atmos
- name = "atmospherics hardsuit"
- desc = "A special suit that protects against hazardous, low pressure environments. Has thermal shielding."
- icon_state = "hardsuit-atmospherics"
- item_state = "atmo_hardsuit"
- armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 25, "fire" = 100, "acid" = 75)
- heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
- //Chief Engineer's hardsuit
- /obj/item/clothing/head/helmet/space/hardsuit/engine/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"
- hardsuit_type = "white"
- armor = list("melee" = 40, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 90)
- heat_protection = HEAD
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- /obj/item/clothing/suit/space/hardsuit/engine/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, "fire" = 100, "acid" = 90)
- heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/elite
- jetpack = /obj/item/tank/jetpack/suit
- //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 for wildlife encounters and dual floodlights."
- icon_state = "hardsuit0-mining"
- item_state = "mining_helm"
- hardsuit_type = "mining"
- max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
- resistance_flags = FIRE_PROOF
- heat_protection = HEAD
- armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 75)
- brightness_on = 7
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/resonator, /obj/item/mining_scanner, /obj/item/t_scanner/adv_mining_scanner, /obj/item/gun/energy/kinetic_accelerator)
- /obj/item/clothing/head/helmet/space/hardsuit/mining/Initialize()
- . = ..()
- AddComponent(/datum/component/armor_plate)
- /obj/item/clothing/suit/space/hardsuit/mining
- name = "mining hardsuit"
- desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating for wildlife encounters."
- icon_state = "hardsuit-mining"
- item_state = "mining_hardsuit"
- max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
- resistance_flags = FIRE_PROOF
- armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 75)
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe)
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining
- heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- /obj/item/clothing/suit/space/hardsuit/mining/Initialize()
- . = ..()
- AddComponent(/datum/component/armor_plate)
- //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 EVA 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"
- hardsuit_type = "syndi"
- armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90)
- on = TRUE
- var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null
- actions_types = list(/datum/action/item_action/toggle_helmet_mode)
- visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
- visor_flags = STOPSPRESSUREDAMAGE
- /obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon()
- icon_state = "hardsuit[on]-[hardsuit_type]"
- /obj/item/clothing/head/helmet/space/hardsuit/syndi/Initialize()
- . = ..()
- if(istype(loc, /obj/item/clothing/suit/space/hardsuit/syndi))
- linkedsuit = loc
- /obj/item/clothing/head/helmet/space/hardsuit/syndi/attack_self(mob/user) //Toggle Helmet
- if(!isturf(user.loc))
- to_chat(user, "<span class='warning'>You cannot toggle your helmet while in this [user.loc]!</span>" )
- return
- on = !on
- if(on || force)
- to_chat(user, "<span class='notice'>You switch your hardsuit to EVA mode, sacrificing speed for space protection.</span>")
- name = initial(name)
- desc = initial(desc)
- set_light(brightness_on)
- clothing_flags |= visor_flags
- flags_cover |= HEADCOVERSEYES | HEADCOVERSMOUTH
- flags_inv |= visor_flags_inv
- cold_protection |= HEAD
- else
- to_chat(user, "<span class='notice'>You switch your hardsuit to combat mode and can now run at full speed.</span>")
- name += " (combat)"
- desc = alt_desc
- set_light(0)
- clothing_flags &= ~visor_flags
- flags_cover &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH)
- flags_inv &= ~visor_flags_inv
- cold_protection &= ~HEAD
- update_icon()
- playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, TRUE)
- toggle_hardsuit_mode(user)
- user.update_inv_head()
- if(iscarbon(user))
- var/mob/living/carbon/C = user
- C.head_update(src, forced = 1)
- 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.clothing_flags |= STOPSPRESSUREDAMAGE
- linkedsuit.cold_protection |= CHEST | GROIN | LEGS | FEET | ARMS | HANDS
- else
- linkedsuit.name += " (combat)"
- linkedsuit.desc = linkedsuit.alt_desc
- linkedsuit.slowdown = 0
- linkedsuit.clothing_flags &= ~STOPSPRESSUREDAMAGE
- linkedsuit.cold_protection &= ~(CHEST | GROIN | LEGS | FEET | ARMS | HANDS)
- linkedsuit.icon_state = "hardsuit[on]-[hardsuit_type]"
- linkedsuit.update_icon()
- user.update_inv_wear_suit()
- user.update_inv_w_uniform()
- /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 EVA 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"
- hardsuit_type = "syndi"
- w_class = WEIGHT_CLASS_NORMAL
- armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90)
- allowed = list(/obj/item/gun, /obj/item/ammo_box,/obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi
- jetpack = /obj/item/tank/jetpack/suit
- //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 fireproofing. It is in EVA mode. Property of Gorlex Marauders."
- alt_desc = "An elite version of the syndicate helmet, with improved armour and fireproofing. It is in combat mode. Property of Gorlex Marauders."
- icon_state = "hardsuit0-syndielite"
- hardsuit_type = "syndielite"
- armor = list("melee" = 60, "bullet" = 60, "laser" = 50, "energy" = 25, "bomb" = 55, "bio" = 100, "rad" = 70, "fire" = 100, "acid" = 100)
- heat_protection = HEAD
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- resistance_flags = FIRE_PROOF | ACID_PROOF
- /obj/item/clothing/suit/space/hardsuit/syndi/elite
- name = "elite syndicate hardsuit"
- desc = "An elite version of the syndicate hardsuit, with improved armour and fireproofing. It is in travel mode."
- alt_desc = "An elite version of the syndicate hardsuit, with improved armour and fireproofing. It is in combat mode."
- icon_state = "hardsuit0-syndielite"
- hardsuit_type = "syndielite"
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite
- armor = list("melee" = 60, "bullet" = 60, "laser" = 50, "energy" = 25, "bomb" = 55, "bio" = 100, "rad" = 70, "fire" = 100, "acid" = 100)
- heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- resistance_flags = FIRE_PROOF | ACID_PROOF
- //The Owl Hardsuit
- /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl
- name = "owl hardsuit helmet"
- desc = "A dual-mode advanced helmet designed for any crime-fighting situation. It is in travel mode."
- alt_desc = "A dual-mode advanced helmet designed for any crime-fighting situation. It is in combat mode."
- icon_state = "hardsuit1-owl"
- item_state = "s_helmet"
- hardsuit_type = "owl"
- visor_flags_inv = 0
- visor_flags = 0
- on = FALSE
- /obj/item/clothing/suit/space/hardsuit/syndi/owl
- name = "owl hardsuit"
- desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in travel mode."
- alt_desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in combat mode."
- icon_state = "hardsuit1-owl"
- item_state = "s_suit"
- hardsuit_type = "owl"
- clothing_flags = BLOCKS_SHOVE_KNOCKDOWN
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl
- //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"
- hardsuit_type = "wiz"
- resistance_flags = FIRE_PROOF | ACID_PROOF //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, "fire" = 100, "acid" = 100)
- heat_protection = HEAD //Uncomment to enable firesuit protection
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- /obj/item/clothing/suit/space/hardsuit/wizard
- name = "gem-encrusted hardsuit"
- desc = "A bizarre gem-encrusted suit that radiates magical energies."
- icon_state = "hardsuit-wiz"
- item_state = "wiz_hardsuit"
- w_class = WEIGHT_CLASS_NORMAL
- resistance_flags = FIRE_PROOF | ACID_PROOF
- armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 20, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
- allowed = list(/obj/item/teleportation_scroll, /obj/item/tank/internals)
- heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- clothing_flags = BLOCKS_SHOVE_KNOCKDOWN
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/wizard
- /obj/item/clothing/suit/space/hardsuit/wizard/Initialize()
- . = ..()
- AddComponent(/datum/component/anti_magic, TRUE, FALSE, FALSE, ITEM_SLOT_OCLOTHING, INFINITY, FALSE)
- //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"
- hardsuit_type = "medical"
- flash_protect = 0
- armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75)
- clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SCAN_REAGENTS | SNUG_FIT
- /obj/item/clothing/suit/space/hardsuit/medical
- name = "medical hardsuit"
- desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement."
- icon_state = "hardsuit-medical"
- item_state = "medical_hardsuit"
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/firstaid, /obj/item/healthanalyzer, /obj/item/stack/medical)
- armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75)
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical
- slowdown = 0.5
- //Research Director hardsuit
- /obj/item/clothing/head/helmet/space/hardsuit/rd
- name = "prototype hardsuit helmet"
- desc = "A prototype helmet designed for research in a hazardous, low pressure environment. Scientific data flashes across the visor."
- icon_state = "hardsuit0-rd"
- hardsuit_type = "rd"
- resistance_flags = ACID_PROOF | FIRE_PROOF
- max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
- armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 100, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 80)
- var/obj/machinery/doppler_array/integrated/bomb_radar
- clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SCAN_REAGENTS | SNUG_FIT
- actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_research_scanner)
- /obj/item/clothing/head/helmet/space/hardsuit/rd/Initialize()
- . = ..()
- bomb_radar = new /obj/machinery/doppler_array/integrated(src)
- /obj/item/clothing/head/helmet/space/hardsuit/rd/equipped(mob/living/carbon/human/user, slot)
- ..()
- if (slot == SLOT_HEAD)
- var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC]
- DHUD.add_hud_to(user)
- /obj/item/clothing/head/helmet/space/hardsuit/rd/dropped(mob/living/carbon/human/user)
- ..()
- if (user.head == src)
- var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC]
- DHUD.remove_hud_from(user)
- /obj/item/clothing/suit/space/hardsuit/rd
- name = "prototype hardsuit"
- desc = "A prototype suit that protects against hazardous, low pressure environments. Fitted with extensive plating for handling explosives and dangerous research materials."
- icon_state = "hardsuit-rd"
- item_state = "hardsuit-rd"
- resistance_flags = ACID_PROOF | FIRE_PROOF
- max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT //Same as an emergency firesuit. Not ideal for extended exposure.
- allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/gun/energy/wormhole_projector,
- /obj/item/hand_tele, /obj/item/aicard)
- armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 100, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 80)
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd
- //Security hardsuit
- /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"
- hardsuit_type = "sec"
- armor = list("melee" = 35, "bullet" = 15, "laser" = 30,"energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75)
- /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" = 35, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75)
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security
- clothing_flags = BLOCKS_SHOVE_KNOCKDOWN
- /obj/item/clothing/suit/space/hardsuit/security/Initialize()
- . = ..()
- allowed = GLOB.security_hardsuit_allowed
- //Head of Security hardsuit
- /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"
- hardsuit_type = "hos"
- armor = list("melee" = 45, "bullet" = 25, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 100, "rad" = 50, "fire" = 95, "acid" = 95)
- /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, "fire" = 95, "acid" = 95)
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
- jetpack = /obj/item/tank/jetpack/suit
- //SWAT MKII
- /obj/item/clothing/head/helmet/space/hardsuit/swat
- name = "\improper MK.II SWAT Helmet"
- icon_state = "swat2helm"
- item_state = "swat2helm"
- desc = "A tactical SWAT helmet MK.II."
- armor = list("melee" = 40, "bullet" = 50, "laser" = 50, "energy" = 25, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
- resistance_flags = FIRE_PROOF | ACID_PROOF
- flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR //we want to see the mask
- heat_protection = HEAD
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- actions_types = list()
- /obj/item/clothing/head/helmet/space/hardsuit/swat/attack_self()
- /obj/item/clothing/suit/space/hardsuit/swat
- name = "\improper MK.II SWAT Suit"
- desc = "A MK.II SWAT suit with streamlined joints and armor made out of superior materials, insulated against intense heat. The most advanced tactical armor available."
- icon_state = "swat2"
- item_state = "swat2"
- armor = list("melee" = 40, "bullet" = 50, "laser" = 50, "energy" = 25, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
- resistance_flags = FIRE_PROOF | ACID_PROOF
- heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
- clothing_flags = BLOCKS_SHOVE_KNOCKDOWN
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT //this needed to be added a long fucking time ago
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/swat
- /obj/item/clothing/suit/space/hardsuit/swat/Initialize()
- . = ..()
- allowed = GLOB.security_hardsuit_allowed
- //Captain
- /obj/item/clothing/head/helmet/space/hardsuit/swat/captain
- name = "captain's hardsuit helmet"
- icon_state = "capspace"
- item_state = "capspacehelmet"
- desc = "A tactical MK.II SWAT helmet boasting better protection and a horrible fashion sense."
- /obj/item/clothing/suit/space/hardsuit/swat/captain
- name = "captain's hardsuit"
- desc = "A MK.II hardsuit with streamlined joints and armor made out of superior materials, insulated against intense heat. The most advanced tactical armor available. Usually reserved for heavy hitter corporate security, this one has a regal finish in Nanotrasen company colors. Better not let the assistants get a hold of it."
- icon_state = "caparmor"
- item_state = "capspacesuit"
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/swat/captain
- //Clown
- /obj/item/clothing/head/helmet/space/hardsuit/clown
- name = "cosmohonk hardsuit helmet"
- desc = "A special helmet designed for work in a hazardous, low-humor environment. Has radiation shielding."
- icon_state = "hardsuit0-clown"
- item_state = "hardsuit0-clown"
- armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 60, "acid" = 30)
- hardsuit_type = "clown"
- /obj/item/clothing/suit/space/hardsuit/clown
- name = "cosmohonk hardsuit"
- desc = "A special suit that protects against hazardous, low humor environments. Has radiation shielding. Only a true clown can wear it."
- icon_state = "hardsuit-clown"
- item_state = "clown_hardsuit"
- armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 60, "acid" = 30)
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/clown
- /obj/item/clothing/suit/space/hardsuit/clown/mob_can_equip(mob/M, slot)
- if(!..() || !ishuman(M))
- return FALSE
- var/mob/living/carbon/human/H = M
- if(H.mind.assigned_role == "Clown")
- return TRUE
- else
- return FALSE
- //Old Prototype
- /obj/item/clothing/head/helmet/space/hardsuit/ancient
- name = "prototype RIG hardsuit helmet"
- desc = "Early prototype RIG hardsuit helmet, designed to quickly shift over a user's head. Design constraints of the helmet mean it has no inbuilt cameras, thus it restricts the users visability."
- icon_state = "hardsuit0-ancient"
- item_state = "anc_helm"
- armor = list("melee" = 30, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 75)
- hardsuit_type = "ancient"
- resistance_flags = FIRE_PROOF
- /obj/item/clothing/suit/space/hardsuit/ancient
- name = "prototype RIG hardsuit"
- desc = "Prototype powered RIG hardsuit. Provides excellent protection from the elements of space while being comfortable to move around in, thanks to the powered locomotives. Remains very bulky however."
- icon_state = "hardsuit-ancient"
- item_state = "anc_hardsuit"
- armor = list("melee" = 30, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 75)
- slowdown = 3
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ancient
- resistance_flags = FIRE_PROOF
- var/footstep = 1
- var/mob/listeningTo
- /obj/item/clothing/suit/space/hardsuit/ancient/proc/on_mob_move()
- var/mob/living/carbon/human/H = loc
- if(!istype(H) || H.wear_suit != src)
- return
- if(footstep > 1)
- playsound(src, 'sound/effects/servostep.ogg', 100, TRUE)
- footstep = 0
- else
- footstep++
- /obj/item/clothing/suit/space/hardsuit/ancient/equipped(mob/user, slot)
- . = ..()
- if(slot != SLOT_WEAR_SUIT)
- if(listeningTo)
- UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED)
- return
- if(listeningTo == user)
- return
- if(listeningTo)
- UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED)
- RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/on_mob_move)
- listeningTo = user
- /obj/item/clothing/suit/space/hardsuit/ancient/dropped()
- . = ..()
- if(listeningTo)
- UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED)
- /obj/item/clothing/suit/space/hardsuit/ancient/Destroy()
- listeningTo = null
- return ..()
- /////////////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"
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
- allowed = null
- armor = list("melee" = 30, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
- resistance_flags = FIRE_PROOF | ACID_PROOF
- 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"
- /obj/item/clothing/suit/space/hardsuit/shielded/Initialize()
- . = ..()
- if(!allowed)
- allowed = GLOB.advanced_hardsuit_allowed
- /obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
- recharge_cooldown = world.time + recharge_delay
- if(current_charges > 0)
- var/datum/effect_system/spark_spread/s = new
- s.set_up(2, 1, src)
- s.start()
- owner.visible_message("<span class='danger'>[owner]'s shields deflect [attack_text] in a shower of sparks!</span>")
- current_charges--
- if(recharge_rate)
- START_PROCESSING(SSobj, src)
- if(current_charges <= 0)
- owner.visible_message("<span class='warning'>[owner]'s shield overloads!</span>")
- shield_state = "broken"
- owner.update_inv_wear_suit()
- return 1
- return 0
- /obj/item/clothing/suit/space/hardsuit/shielded/Destroy()
- STOP_PROCESSING(SSobj, 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, TRUE)
- if(current_charges == max_charges)
- playsound(loc, 'sound/machines/ding.ogg', 50, TRUE)
- STOP_PROCESSING(SSobj, src)
- shield_state = "[shield_on]"
- if(ishuman(loc))
- var/mob/living/carbon/human/C = loc
- C.update_inv_wear_suit()
- /obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands)
- . = list()
- if(!isinhands)
- . += mutable_appearance('icons/effects/effects.dmi', shield_state, MOB_LAYER + 0.01)
- /obj/item/clothing/head/helmet/space/hardsuit/shielded
- resistance_flags = FIRE_PROOF | ACID_PROOF
- ///////////////Capture the Flag////////////////////
- /obj/item/clothing/suit/space/hardsuit/shielded/ctf
- name = "white shielded hardsuit"
- desc = "Standard issue hardsuit for playing capture the flag."
- icon_state = "ert_medical"
- item_state = "ert_medical"
- hardsuit_type = "ert_medical"
- // Adding TRAIT_NODROP is done when the CTF spawner equips people
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf
- armor = list("melee" = 0, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 95)
- slowdown = 0
- max_charges = 5
- /obj/item/clothing/suit/space/hardsuit/shielded/ctf/red
- name = "red shielded hardsuit"
- icon_state = "ert_security"
- item_state = "ert_security"
- hardsuit_type = "ert_security"
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red
- shield_state = "shield-red"
- shield_on = "shield-red"
- /obj/item/clothing/suit/space/hardsuit/shielded/ctf/blue
- name = "blue shielded hardsuit"
- desc = "Standard issue hardsuit for playing capture the flag."
- icon_state = "ert_command"
- item_state = "ert_command"
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/blue
- /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf
- name = "shielded hardsuit helmet"
- desc = "Standard issue hardsuit helmet for playing capture the flag."
- icon_state = "hardsuit0-ert_medical"
- item_state = "hardsuit0-ert_medical"
- hardsuit_type = "ert_medical"
- armor = list("melee" = 0, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 95)
- /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red
- icon_state = "hardsuit0-ert_security"
- item_state = "hardsuit0-ert_security"
- hardsuit_type = "ert_security"
- /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/blue
- name = "shielded hardsuit helmet"
- desc = "Standard issue hardsuit helmet for playing capture the flag."
- icon_state = "hardsuit0-ert_commander"
- item_state = "hardsuit0-ert_commander"
- hardsuit_type = "ert_commander"
- //////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"
- hardsuit_type = "syndi"
- armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
- allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/melee/transforming/energy/sword/saber, /obj/item/restraints/handcuffs, /obj/item/tank/internals)
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
- slowdown = 0
- shield_state = "shield-red"
- shield_on = "shield-red"
- /obj/item/clothing/suit/space/hardsuit/shielded/syndi/multitool_act(mob/living/user, obj/item/I)
- . = ..()
- if(shield_state == "broken")
- to_chat(user, "<span class='warning'>You can't interface with the hardsuit's software if the shield's broken!</span>")
- return
- if(shield_state == "shield-red")
- shield_state = "shield-old"
- shield_on = "shield-old"
- to_chat(user, "<span class='warning'>You roll back the hardsuit's software, changing the shield's color!</span>")
- else
- shield_state = "shield-red"
- shield_on = "shield-red"
- to_chat(user, "<span class='warning'>You update the hardsuit's hardware, changing back the shield's color to red.</span>")
- user.update_inv_wear_suit()
- /obj/item/clothing/suit/space/hardsuit/shielded/syndi/Initialize()
- jetpack = new /obj/item/tank/jetpack/suit(src)
- . = ..()
- /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"
- hardsuit_type = "syndi"
- armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
- ///SWAT version
- /obj/item/clothing/suit/space/hardsuit/shielded/swat
- name = "death commando spacesuit"
- desc = "An advanced hardsuit favored by commandos for use in special operations."
- icon_state = "deathsquad"
- item_state = "swat_suit"
- hardsuit_type = "syndi"
- max_charges = 4
- current_charges = 4
- recharge_delay = 15
- armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
- strip_delay = 130
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- clothing_flags = BLOCKS_SHOVE_KNOCKDOWN
- helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/swat
- dog_fashion = /datum/dog_fashion/back/deathsquad
- /obj/item/clothing/head/helmet/space/hardsuit/shielded/swat
- name = "death commando helmet"
- desc = "A tactical helmet with built in energy shielding."
- icon_state = "deathsquad"
- item_state = "deathsquad"
- hardsuit_type = "syndi"
- armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
- strip_delay = 130
- max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- actions_types = list()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement