609 lines
26 KiB
Plaintext
609 lines
26 KiB
Plaintext
//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"
|
|
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
|
|
var/basestate = "hardsuit"
|
|
var/brightness_on = 4 //luminosity when on
|
|
var/on = 0
|
|
var/obj/item/clothing/suit/space/hardsuit/suit
|
|
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)
|
|
|
|
|
|
/obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user)
|
|
if(!isturf(user.loc))
|
|
user << "<span class='warning'>You cannot turn the light on while in this [user.loc]!</span>" //To prevent some lighting anomalities.
|
|
return
|
|
on = !on
|
|
icon_state = "[basestate][on]-[item_color]"
|
|
user.update_inv_head() //so our mob-overlays update
|
|
|
|
if(on)
|
|
user.AddLuminosity(brightness_on)
|
|
else
|
|
user.AddLuminosity(-brightness_on)
|
|
for(var/X in actions)
|
|
var/datum/action/A = X
|
|
A.UpdateButtonIcon()
|
|
|
|
|
|
/obj/item/clothing/head/helmet/space/hardsuit/pickup(mob/user)
|
|
..()
|
|
if(on)
|
|
user.AddLuminosity(brightness_on)
|
|
SetLuminosity(0)
|
|
|
|
/obj/item/clothing/head/helmet/space/hardsuit/dropped(mob/user)
|
|
..()
|
|
if(on)
|
|
user.AddLuminosity(-brightness_on)
|
|
SetLuminosity(brightness_on)
|
|
if(suit)
|
|
suit.RemoveHelmet()
|
|
|
|
/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()
|
|
else
|
|
qdel(src)
|
|
|
|
/obj/item/clothing/head/helmet/space/hardsuit/proc/display_visor_message(var/msg)
|
|
var/mob/wearer = loc
|
|
if(msg && ishuman(wearer))
|
|
wearer.show_message("\icon[src]<b><span class='robot'>[msg]</span></b>", 1)
|
|
|
|
/obj/item/clothing/head/helmet/space/hardsuit/rad_act(severity)
|
|
..()
|
|
display_visor_message("Radiation pulse detected! Magnitude: <span class='green'>[severity]</span> RADs.")
|
|
|
|
/obj/item/clothing/head/helmet/space/hardsuit/emp_act(severity)
|
|
..()
|
|
display_visor_message("[severity > 1 ? "Light" : "Strong"] electromagnetic pulse detected!")
|
|
|
|
|
|
/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"
|
|
armor = list(melee = 10, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 75)
|
|
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/t_scanner, /obj/item/weapon/rcd, /obj/item/weapon/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/weapon/tank/jetpack/suit/jetpack = null
|
|
|
|
/obj/item/clothing/suit/space/hardsuit/New()
|
|
if(jetpack && ispath(jetpack))
|
|
jetpack = new jetpack(src)
|
|
..()
|
|
|
|
/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)
|
|
item_color = "engineering"
|
|
|
|
/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)
|
|
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine
|
|
|
|
//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"
|
|
item_color = "atmospherics"
|
|
armor = list(melee = 30, 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_HELM_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 = 0)
|
|
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
|
|
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_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"
|
|
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_HELM_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)
|
|
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
|
|
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
|
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/elite
|
|
jetpack = /obj/item/weapon/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"
|
|
item_color = "mining"
|
|
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
|
heat_protection = CHEST|GROIN|LEGS|ARMS
|
|
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50)
|
|
brightness_on = 7
|
|
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/resonator, /obj/item/device/mining_scanner, /obj/item/device/t_scanner/adv_mining_scanner, /obj/item/weapon/gun/energy/kinetic_accelerator)
|
|
|
|
|
|
/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 for wildlife encounters."
|
|
item_state = "mining_hardsuit"
|
|
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
|
|
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 50, bio = 100, rad = 50)
|
|
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/bag/ore,/obj/item/weapon/pickaxe)
|
|
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining
|
|
|
|
|
|
|
|
//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"
|
|
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)
|
|
visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
|
|
visor_flags = STOPSPRESSUREDMAGE
|
|
|
|
/obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon()
|
|
icon_state = "hardsuit[on]-[item_color]"
|
|
|
|
/obj/item/clothing/head/helmet/space/hardsuit/syndi/New()
|
|
..()
|
|
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))
|
|
user << "<span class='warning'>You cannot toggle your helmet while in this [user.loc]!</span>" //To prevent some lighting anomalities.
|
|
return
|
|
on = !on
|
|
if(on || force)
|
|
user << "<span class='notice'>You switch your hardsuit to EVA mode, sacrificing speed for space protection.</span>"
|
|
name = initial(name)
|
|
desc = initial(desc)
|
|
user.AddLuminosity(brightness_on)
|
|
flags |= visor_flags
|
|
flags_cover |= HEADCOVERSEYES | HEADCOVERSMOUTH
|
|
flags_inv |= visor_flags_inv
|
|
cold_protection |= HEAD
|
|
else
|
|
user << "<span class='notice'>You switch your hardsuit to combat mode and can now run at full speed.</span>"
|
|
name += " (combat)"
|
|
desc = alt_desc
|
|
user.AddLuminosity(-brightness_on)
|
|
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, 1)
|
|
toggle_hardsuit_mode(user)
|
|
user.update_inv_head()
|
|
if(istype(user, /mob/living/carbon))
|
|
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.flags |= STOPSPRESSUREDMAGE
|
|
linkedsuit.cold_protection |= CHEST | GROIN | LEGS | FEET | ARMS | HANDS
|
|
else
|
|
linkedsuit.name += " (combat)"
|
|
linkedsuit.desc = linkedsuit.alt_desc
|
|
linkedsuit.slowdown = 0
|
|
linkedsuit.flags &= ~(STOPSPRESSUREDMAGE)
|
|
linkedsuit.cold_protection &= ~(CHEST | GROIN | LEGS | FEET | ARMS | HANDS)
|
|
|
|
linkedsuit.icon_state = "hardsuit[on]-[item_color]"
|
|
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"
|
|
item_color = "syndi"
|
|
w_class = 3
|
|
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
|
|
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
|
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi
|
|
jetpack = /obj/item/weapon/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 fire shielding. It is in EVA mode. Property of Gorlex Marauders."
|
|
alt_desc = "An elite version of the syndicate helmet, with improved armour and fire shielding. It is in combat 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_SUIT_MAX_TEMP_PROTECT
|
|
visor_flags_inv = 0
|
|
visor_flags = 0
|
|
on = 0
|
|
|
|
|
|
/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."
|
|
alt_desc = "An elite version of the syndicate hardsuit, with improved armour and fire shielding. It is in combat mode."
|
|
icon_state = "hardsuit0-syndielite"
|
|
item_color = "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)
|
|
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
|
|
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
|
|
|
|
|
//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"
|
|
item_color = "owl"
|
|
visor_flags_inv = 0
|
|
visor_flags = 0
|
|
on = 0
|
|
|
|
/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"
|
|
item_color = "owl"
|
|
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"
|
|
item_color = "wiz"
|
|
unacidable = 1 //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_HELM_MAX_TEMP_PROTECT
|
|
|
|
/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 = 3
|
|
unacidable = 1
|
|
armor = list(melee = 40, bullet = 40, laser = 40, energy = 20, bomb = 35, bio = 100, rad = 50)
|
|
allowed = list(/obj/item/weapon/teleportation_scroll,/obj/item/weapon/tank/internals)
|
|
heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
|
|
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
|
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/wizard
|
|
|
|
|
|
//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"
|
|
flash_protect = 0
|
|
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50)
|
|
scan_reagents = 1
|
|
|
|
/obj/item/clothing/suit/space/hardsuit/medical
|
|
icon_state = "hardsuit-medical"
|
|
name = "medical hardsuit"
|
|
desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement."
|
|
item_state = "medical_hardsuit"
|
|
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/weapon/storage/firstaid,/obj/item/device/healthanalyzer,/obj/item/stack/medical)
|
|
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 10, bio = 100, rad = 50)
|
|
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical
|
|
|
|
//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"
|
|
item_color = "rd"
|
|
unacidable = 1
|
|
var/onboard_hud_enabled = 0 //stops conflicts with another diag HUD
|
|
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)
|
|
var/obj/machinery/doppler_array/integrated/bomb_radar
|
|
scan_reagents = 1
|
|
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/New()
|
|
..()
|
|
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(user.glasses && istype(user.glasses, /obj/item/clothing/glasses/hud/diagnostic))
|
|
user << ("<span class='warning'>Your [user.glasses] prevents you using [src]'s diagnostic visor HUD.</span>")
|
|
else
|
|
onboard_hud_enabled = 1
|
|
var/datum/atom_hud/DHUD = huds[DATA_HUD_DIAGNOSTIC]
|
|
DHUD.add_hud_to(user)
|
|
|
|
/obj/item/clothing/head/helmet/space/hardsuit/rd/dropped(mob/living/carbon/human/user)
|
|
..()
|
|
if(onboard_hud_enabled && !(user.glasses && istype(user.glasses, /obj/item/clothing/glasses/hud/diagnostic)))
|
|
var/datum/atom_hud/DHUD = huds[DATA_HUD_DIAGNOSTIC]
|
|
DHUD.remove_hud_from(user)
|
|
|
|
/obj/item/clothing/suit/space/hardsuit/rd
|
|
icon_state = "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."
|
|
item_state = "hardsuit-rd"
|
|
unacidable = 1
|
|
max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT //Same as an emergency firesuit. Not ideal for extended exposure.
|
|
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy/wormhole_projector,
|
|
/obj/item/weapon/hand_tele, /obj/item/device/aicard)
|
|
armor = list(melee = 30, bullet = 5, laser = 10, energy = 5, bomb = 100, bio = 100, rad = 60)
|
|
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"
|
|
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"
|
|
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun/energy,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/weapon/gun/projectile,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs)
|
|
armor = list(melee = 30, bullet = 15, laser = 30, energy = 10, bomb = 10, bio = 100, rad = 50)
|
|
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security
|
|
|
|
/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)
|
|
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
|
|
|
|
|
|
|
|
/////////////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 = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals, /obj/item/weapon/gun,/obj/item/weapon/reagent_containers/spray/pepper,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/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"
|
|
|
|
/obj/item/clothing/suit/space/hardsuit/shielded/New()
|
|
jetpack = new /obj/item/weapon/tank/jetpack/suit(src)
|
|
..()
|
|
|
|
/obj/item/clothing/suit/space/hardsuit/shielded/hit_reaction(mob/living/carbon/human/owner, attack_text)
|
|
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--
|
|
recharge_cooldown = world.time + recharge_delay
|
|
START_PROCESSING(SSobj, 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()
|
|
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, 1)
|
|
if(current_charges == max_charges)
|
|
playsound(loc, 'sound/machines/ding.ogg', 50, 1)
|
|
STOP_PROCESSING(SSobj, src)
|
|
shield_state = "[shield_on]"
|
|
if(istype(loc, /mob/living/carbon/human))
|
|
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)
|
|
. += image(icon = 'icons/effects/effects.dmi', icon_state = "[shield_state]")
|
|
|
|
|
|
///////////////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"
|
|
item_color = "ert_medical"
|
|
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP //Dont want people changing into the other teams gear
|
|
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)
|
|
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"
|
|
item_color = "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"
|
|
item_color = "ert_medical"
|
|
armor = list(melee = 0, bullet = 30, laser = 30, energy = 30, bomb = 50, bio = 100, rad = 100)
|
|
|
|
|
|
/obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red
|
|
icon_state = "hardsuit0-ert_security"
|
|
item_state = "hardsuit0-ert_security"
|
|
item_color = "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"
|
|
item_color = "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"
|
|
item_color = "syndi"
|
|
armor = list(melee = 40, bullet = 50, laser = 30, energy = 15, bomb = 35, bio = 100, rad = 50)
|
|
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword/saber,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
|
|
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
|
|
slowdown = 0
|
|
|
|
|
|
/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)
|