initial commit - cross reference with 5th port - obviously has compile errors

This commit is contained in:
LetterJay
2016-07-03 02:17:19 -05:00
commit 35a1723e98
4355 changed files with 2221257 additions and 0 deletions
@@ -0,0 +1,341 @@
/obj/item/clothing/head/helmet/space/chronos
name = "Chronosuit Helmet"
desc = "A white helmet with an opaque blue visor."
icon_state = "chronohelmet"
item_state = "chronohelmet"
slowdown = 1
armor = list(melee = 60, bullet = 30/*bullet through the visor*/, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90)
var/obj/item/clothing/suit/space/chronos/suit = null
/obj/item/clothing/head/helmet/space/chronos/dropped()
if(suit)
suit.deactivate()
..()
/obj/item/clothing/head/helmet/space/chronos/Destroy()
dropped()
return ..()
/obj/item/clothing/suit/space/chronos
name = "Chronosuit"
desc = "An advanced spacesuit equipped with teleportation and anti-compression technology"
icon_state = "chronosuit"
item_state = "chronosuit"
actions_types = list(/datum/action/item_action/toggle)
armor = list(melee = 60, bullet = 60, laser = 60, energy = 60, bomb = 30, bio = 90, rad = 90)
var/list/chronosafe_items = list(/obj/item/weapon/chrono_eraser, /obj/item/weapon/gun/energy/chrono_gun)
var/hands_nodrop_states
var/obj/item/clothing/head/helmet/space/chronos/helmet = null
var/obj/effect/chronos_cam/camera = null
var/atom/movable/overlay/phase_underlay = null
var/datum/action/innate/chrono_teleport/teleport_now = new
var/activating = 0
var/activated = 0
var/cooldowntime = 50 //deciseconds
var/teleporting = 0
/obj/item/clothing/suit/space/chronos/New()
..()
teleport_now.chronosuit = src
teleport_now.target = src
/obj/item/clothing/suit/space/chronos/proc/new_camera(mob/user)
if(camera)
qdel(camera)
camera = new /obj/effect/chronos_cam(user)
camera.holder = user
camera.chronosuit = src
user.remote_control = camera
/obj/item/clothing/suit/space/chronos/ui_action_click()
if((cooldown <= world.time) && !teleporting && !activating)
if(!activated)
activate()
else
deactivate()
/obj/item/clothing/suit/space/chronos/dropped()
if(activated)
deactivate()
..()
/obj/item/clothing/suit/space/chronos/Destroy()
dropped()
return ..()
/obj/item/clothing/suit/space/chronos/emp_act(severity)
var/mob/living/carbon/human/user = src.loc
switch(severity)
if(1)
if(activated && user && ishuman(user) && (user.wear_suit == src))
user << "<span class='userdanger'>E:FATAL:RAM_READ_FAIL\nE:FATAL:STACK_EMPTY\nE:FATAL:READ_NULL_POINT\nE:FATAL:PWR_BUS_OVERLOAD</span>"
deactivate(1, 1)
/obj/item/clothing/suit/space/chronos/proc/finish_chronowalk()
var/mob/living/carbon/human/user = src.loc
if(istype(user))
user.SetStunned(0)
user.next_move = 1
user.alpha = 255
user.color = "#ffffff"
user.animate_movement = FORWARD_STEPS
user.notransform = 0
user.anchored = 0
teleporting = 0
if(user.l_hand && !(hands_nodrop_states & 1))
user.l_hand.flags &= ~NODROP
if(user.r_hand && !(hands_nodrop_states & 2))
user.r_hand.flags &= ~NODROP
if(phase_underlay && !qdeleted(phase_underlay))
qdel(phase_underlay)
phase_underlay = null
if(camera)
camera.remove_target_ui()
camera.loc = user
teleport_now.UpdateButtonIcon()
/obj/item/clothing/suit/space/chronos/proc/chronowalk(atom/location)
var/mob/living/carbon/human/user = src.loc
if(activated && !teleporting && user && istype(user) && location && user.loc && location.loc && user.wear_suit == src && user.stat == CONSCIOUS)
teleporting = 1
var/turf/from_turf = get_turf(user)
var/turf/to_turf = get_turf(location)
var/distance = cheap_hypotenuse(from_turf.x, from_turf.y, to_turf.x, to_turf.y)
var/phase_in_ds = distance*2
if(camera)
camera.remove_target_ui()
teleport_now.UpdateButtonIcon()
var/list/nonsafe_slots = list(slot_belt, slot_back, slot_l_hand, slot_r_hand)
for(var/slot in nonsafe_slots)
var/obj/item/slot_item = user.get_item_by_slot(slot)
if(slot_item && !(slot_item.type in chronosafe_items) && user.unEquip(slot_item))
user << "<span class='notice'>Your [slot_item.name] got left behind.</span>"
user.ExtinguishMob()
if(user.buckled)
user.buckled.unbuckle_mob(user,force=1)
phase_underlay = create_phase_underlay(user)
hands_nodrop_states = 0
if(user.l_hand)
hands_nodrop_states |= (user.l_hand.flags & NODROP) ? 1 : 0
user.l_hand.flags |= NODROP
if(user.r_hand)
hands_nodrop_states |= (user.r_hand.flags & NODROP) ? 2 : 0
user.r_hand.flags |= NODROP
user.animate_movement = NO_STEPS
user.changeNext_move(8 + phase_in_ds)
user.notransform = 1
user.anchored = 1
user.Stun(INFINITY)
animate(user, color = "#00ccee", time = 3)
spawn(3)
if(teleporting && activated && user && phase_underlay && !qdeleted(phase_underlay))
animate(user, alpha = 0, time = 2)
animate(phase_underlay, alpha = 255, time = 2)
sleep(2)
if(teleporting && activated && user && phase_underlay && !qdeleted(phase_underlay))
phase_underlay.loc = to_turf
user.loc = to_turf
animate(user, alpha = 255, time = phase_in_ds)
animate(phase_underlay, alpha = 0, time = phase_in_ds)
sleep(phase_in_ds)
if(teleporting && activated && phase_underlay && !qdeleted(phase_underlay))
animate(user, color = "#ffffff", time = 3)
sleep(3)
if(teleporting && user && !qdeleted(user))
user.loc = to_turf //this will cover if bad things happen before the teleport, yes it is redundant
finish_chronowalk()
/obj/item/clothing/suit/space/chronos/proc/create_phase_underlay(var/mob/user)
var/icon/user_icon = getFlatIcon(user)
user_icon.Blend("#ffffff")
var/atom/movable/overlay/phase = new(user.loc)
phase.icon = user_icon
phase.density = 1
phase.anchored = 1
phase.master = user
phase.animate_movement = NO_STEPS
phase.alpha = 0
phase.mouse_opacity = 0
phase.name = user.name
phase.transform = user.transform
phase.pixel_x = user.pixel_x
phase.pixel_y = user.pixel_y
return phase
/obj/item/clothing/suit/space/chronos/process()
if(activated)
var/mob/living/carbon/human/user = src.loc
if(user && ishuman(user) && (user.wear_suit == src))
if(camera && (user.remote_control == camera))
if(!teleporting)
if(camera.loc != user && ((camera.x != user.x) || (camera.y != user.y) || (camera.z != user.z)))
if(camera.phase_time <= world.time)
chronowalk(camera)
else
camera.remove_target_ui()
else
new_camera(user)
else
STOP_PROCESSING(SSobj, src)
/obj/item/clothing/suit/space/chronos/proc/activate()
if(!activating && !activated && !teleporting)
activating = 1
var/mob/living/carbon/human/user = src.loc
if(user && ishuman(user))
if(user.wear_suit == src)
user << "\nChronosuitMK4 login: root"
user << "Password:\n"
user << "root@ChronosuitMK4# chronowalk4 --start\n"
if(user.head && istype(user.head, /obj/item/clothing/head/helmet/space/chronos))
user << "\[ <span style='color: #00ff00;'>ok</span> \] Mounting /dev/helmet"
helmet = user.head
helmet.flags |= NODROP
helmet.suit = src
src.flags |= NODROP
user << "\[ <span style='color: #00ff00;'>ok</span> \] Starting brainwave scanner"
user << "\[ <span style='color: #00ff00;'>ok</span> \] Starting ui display driver"
user << "\[ <span style='color: #00ff00;'>ok</span> \] Initializing chronowalk4-view"
new_camera(user)
START_PROCESSING(SSobj, src)
activated = 1
else
user << "\[ <span style='color: #ff0000;'>fail</span> \] Mounting /dev/helmet"
user << "<span style='color: #ff0000;'><b>FATAL: </b>Unable to locate /dev/helmet. <b>Aborting...</b>"
teleport_now.Grant(user)
cooldown = world.time + cooldowntime
activating = 0
return 0
/obj/item/clothing/suit/space/chronos/proc/deactivate(force = 0, silent = 0)
if(activated && (!teleporting || force))
activating = 1
var/mob/living/carbon/human/user = src.loc
if(user && ishuman(user))
if(user.wear_suit == src)
if(!silent)
user << "\nroot@ChronosuitMK4# chronowalk4 --stop\n"
if(camera)
if(!silent)
user << "\[ <span style='color: #ff5500;'>ok</span> \] Sending TERM signal to chronowalk4-view" //yes I know they aren't a different color when shutting down, but they were too similar at a glance
qdel(camera)
if(helmet)
if(!silent)
user << "\[ <span style='color: #ff5500;'>ok</span> \] Stopping ui display driver"
user << "\[ <span style='color: #ff5500;'>ok</span> \] Stopping brainwave scanner"
user << "\[ <span style='color: #ff5500;'>ok</span> \] Unmounting /dev/helmet"
helmet.flags &= ~NODROP
helmet.suit = null
helmet = null
if(!silent)
user << "logout"
teleport_now.Remove(user)
src.flags &= ~NODROP
cooldown = world.time + cooldowntime * 1.5
activated = 0
activating = 0
finish_chronowalk()
if(teleporting && force)
user.electrocute_act(35, src, safety = 1)
/obj/effect/chronos_cam
name = "Chronosuit View"
density = 0
anchored = 1
invisibility = INVISIBILITY_ABSTRACT
opacity = 0
mouse_opacity = 0
var/mob/holder = null
var/phase_time = 0
var/phase_time_length = 3
var/obj/screen/chronos_target/target_ui = null
var/obj/item/clothing/suit/space/chronos/chronosuit
/obj/effect/chronos_cam/proc/create_target_ui()
if(holder && holder.client && chronosuit)
if(target_ui)
remove_target_ui()
target_ui = new(null, holder)
holder.client.screen += target_ui
/obj/effect/chronos_cam/proc/remove_target_ui()
if(target_ui)
qdel(target_ui)
target_ui = null
/obj/effect/chronos_cam/relaymove(var/mob/user, direction)
if(holder)
if(user == holder)
if(loc == user)
loc = get_turf(user)
if(user.client && user.client.eye != src)
src.loc = get_turf(user)
user.reset_perspective(src)
user.set_machine(src)
var/atom/step = get_step(src, direction)
if(step)
if((step.x <= TRANSITIONEDGE) || (step.x >= (world.maxx - TRANSITIONEDGE - 1)) || (step.y <= TRANSITIONEDGE) || (step.y >= (world.maxy - TRANSITIONEDGE - 1)))
if(!src.Move(step))
src.loc = step
else
src.loc = step
if((x == holder.x) && (y == holder.y) && (z == holder.z))
remove_target_ui()
loc = user
else if(!target_ui)
create_target_ui()
phase_time = world.time + phase_time_length
else
qdel(src)
/obj/effect/chronos_cam/check_eye(mob/user)
if(user != holder)
user.unset_machine()
/obj/effect/chronos_cam/on_unset_machine(mob/user)
user.reset_perspective(null)
/obj/effect/chronos_cam/Destroy()
if(holder)
if(holder.remote_control == src)
holder.remote_control = null
if(holder.client && (holder.client.eye == src))
holder.unset_machine()
return ..()
/obj/screen/chronos_target
name = "target display"
screen_loc = "CENTER,CENTER"
color = "#ff3311"
blend_mode = BLEND_SUBTRACT
/obj/screen/chronos_target/New(loc, var/mob/living/carbon/human/user)
if(user)
var/icon/user_icon = getFlatIcon(user)
icon = user_icon
transform = user.transform
else
qdel(src)
/datum/action/innate/chrono_teleport
name = "Teleport Now"
button_icon_state = "chrono_phase"
check_flags = AB_CHECK_CONSCIOUS //|AB_CHECK_INSIDE
var/obj/item/clothing/suit/space/chronos/chronosuit = null
/datum/action/innate/chrono_teleport/IsAvailable()
return (chronosuit && chronosuit.activated && chronosuit.camera && !chronosuit.teleporting)
/datum/action/innate/chrono_teleport/Activate()
if(IsAvailable())
if(chronosuit.camera)
chronosuit.chronowalk(chronosuit.camera)
@@ -0,0 +1,608 @@
//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)
@@ -0,0 +1,327 @@
//miscellaneous spacesuits
/*
Contains:
- Captain's spacesuit
- Death squad's hardsuit
- SWAT suit
- Officer's beret/spacesuit
- NASA Voidsuit
- Father Christmas' magical clothes
- Pirate's spacesuit
- ERT hardsuit: command, sec, engi, med
- EVA spacesuit
- Freedom's spacesuit (freedom from vacuum's oppression)
- Carp hardsuit
*/
//Captain's space suit, not hardsuits because no flashlight!
/obj/item/clothing/head/helmet/space/captain
name = "captain's space helmet"
icon_state = "capspace"
item_state = "capspacehelmet"
desc = "A special helmet designed for only the most fashionable of military figureheads."
flags_inv = HIDEFACE|HIDEEARS|HIDEHAIR
permeability_coefficient = 0.01
armor = list(melee = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
/obj/item/clothing/suit/space/captain
name = "captain's space suit"
desc = "A bulky, heavy-duty piece of exclusive Nanotrasen armor. YOU are in charge!"
icon_state = "caparmor"
item_state = "capspacesuit"
w_class = 4
allowed = list(/obj/item/weapon/tank/internals, /obj/item/device/flashlight,/obj/item/weapon/gun/energy, /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 = 40, bullet = 50, laser = 50, energy = 25, bomb = 50, bio = 100, rad = 50)
//Death squad armored space suits, not hardsuits!
/obj/item/clothing/head/helmet/space/hardsuit/deathsquad
name = "deathsquad helmet"
desc = "That's not red paint. That's real blood."
icon_state = "deathsquad"
item_state = "deathsquad"
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
actions_types = list()
/obj/item/clothing/head/helmet/space/hardsuit/deathsquad/attack_self(mob/user)
return
/obj/item/clothing/suit/space/hardsuit/deathsquad
name = "deathsquad suit"
desc = "A heavily armored, advanced space suit that protects against most forms of damage."
icon_state = "deathsquad"
item_state = "swat_suit"
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat)
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
unacidable = 1
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/deathsquad
dog_fashion = /datum/dog_fashion/back/deathsquad
//NEW SWAT suit
/obj/item/clothing/suit/space/swat
name = "SWAT armor"
desc = "Space-proof tactical SWAT armor."
icon_state = "heavy"
item_state = "swat_suit"
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals,/obj/item/weapon/kitchen/knife/combat)
armor = list(melee = 40, bullet = 30, laser = 30,energy = 30, bomb = 50, bio = 90, rad = 20)
strip_delay = 120
/obj/item/clothing/head/helmet/space/beret
name = "officer's beret"
desc = "An armored beret commonly used by special operations officers. Uses advanced force field technology to protect the head from space."
icon_state = "beret_badge"
flags = STOPSPRESSUREDMAGE
flags_inv = 0
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
/obj/item/clothing/suit/space/officer
name = "officer's jacket"
desc = "An armored, space-proof jacket used in special operations."
icon_state = "detective"
item_state = "det_suit"
blood_overlay_type = "coat"
slowdown = 0
flags_inv = 0
w_class = 3
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
armor = list(melee = 80, bullet = 80, laser = 50, energy = 50, bomb = 100, bio = 100, rad = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
//NASA Voidsuit
/obj/item/clothing/head/helmet/space/nasavoid
name = "NASA Void Helmet"
desc = "An old, NASA Centcom branch designed, dark red space suit helmet."
icon_state = "void"
item_state = "void"
/obj/item/clothing/suit/space/nasavoid
name = "NASA Voidsuit"
icon_state = "void"
item_state = "void"
desc = "An old, NASA Centcom branch designed, dark red space suit."
allowed = list(/obj/item/device/flashlight,/obj/item/weapon/tank/internals,/obj/item/device/multitool)
//Space santa outfit suit
/obj/item/clothing/head/helmet/space/santahat
name = "Santa's hat"
desc = "Ho ho ho. Merrry X-mas!"
icon_state = "santahat"
flags = STOPSPRESSUREDMAGE
flags_cover = HEADCOVERSEYES
dog_fashion = /datum/dog_fashion/head/santa
/obj/item/clothing/suit/space/santa
name = "Santa's suit"
desc = "Festive!"
icon_state = "santa"
item_state = "santa"
slowdown = 0
flags = STOPSPRESSUREDMAGE
allowed = list(/obj/item) //for stuffing exta special presents
//Space pirate outfit
/obj/item/clothing/head/helmet/space/pirate
name = "pirate hat"
desc = "Yarr."
icon_state = "pirate"
item_state = "pirate"
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
flags = STOPSPRESSUREDMAGE
strip_delay = 40
put_on_delay = 20
flags_cover = HEADCOVERSEYES
/obj/item/clothing/suit/space/pirate
name = "pirate coat"
desc = "Yarr."
icon_state = "pirate"
item_state = "pirate"
w_class = 3
flags_inv = 0
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals, /obj/item/weapon/melee/energy/sword/pirate, /obj/item/clothing/glasses/eyepatch, /obj/item/weapon/reagent_containers/food/drinks/bottle/rum)
slowdown = 0
armor = list(melee = 30, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
strip_delay = 40
put_on_delay = 20
//Emergency Response Team suits
/obj/item/clothing/head/helmet/space/hardsuit/ert
name = "emergency response unit helmet"
desc = "Standard issue command helmet for the ERT"
icon_state = "hardsuit0-ert_commander"
item_state = "hardsuit0-ert_commander"
item_color = "ert_commander"
armor = list(melee = 65, bullet = 50, laser = 50, energy = 50, bomb = 50, bio = 100, rad = 100)
strip_delay = 130
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
brightness_on = 7
/obj/item/clothing/suit/space/hardsuit/ert
name = "emergency response team suit"
desc = "Standard issue command suit for the ERT."
icon_state = "ert_command"
item_state = "ert_command"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
armor = list(melee = 30, bullet = 50, laser = 30, energy = 50, bomb = 50, bio = 100, rad = 100)
slowdown = 0
strip_delay = 130
//ERT Security
/obj/item/clothing/head/helmet/space/hardsuit/ert/sec
desc = "Standard issue security helmet for the ERT."
icon_state = "hardsuit0-ert_security"
item_state = "hardsuit0-ert_security"
item_color = "ert_security"
/obj/item/clothing/suit/space/hardsuit/ert/sec
desc = "Standard issue security suit for the ERT."
icon_state = "ert_security"
item_state = "ert_security"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/sec
//ERT Engineering
/obj/item/clothing/head/helmet/space/hardsuit/ert/engi
desc = "Standard issue engineer helmet for the ERT."
icon_state = "hardsuit0-ert_engineer"
item_state = "hardsuit0-ert_engineer"
item_color = "ert_engineer"
/obj/item/clothing/suit/space/hardsuit/ert/engi
desc = "Standard issue engineer suit for the ERT."
icon_state = "ert_engineer"
item_state = "ert_engineer"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/engi
//ERT Medical
/obj/item/clothing/head/helmet/space/hardsuit/ert/med
desc = "Standard issue medical helmet for the ERT."
icon_state = "hardsuit0-ert_medical"
item_state = "hardsuit0-ert_medical"
item_color = "ert_medical"
/obj/item/clothing/suit/space/hardsuit/ert/med
desc = "Standard issue medical suit for the ERT."
icon_state = "ert_medical"
item_state = "ert_medical"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/med
/obj/item/clothing/suit/space/eva
name = "EVA suit"
icon_state = "space"
item_state = "s_suit"
desc = "A lightweight space suit with the basic ability to protect the wearer from the vacuum of space during emergencies."
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
/obj/item/clothing/head/helmet/space/eva
name = "EVA helmet"
icon_state = "space"
item_state = "space"
desc = "A lightweight space helmet with the basic ability to protect the wearer from the vacuum of space during emergencies."
flash_protect = 0
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 100, rad = 20)
/obj/item/clothing/head/helmet/space/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"
armor = list(melee = 20, bullet = 40, laser = 30, energy = 25, bomb = 100, bio = 100, rad = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
/obj/item/clothing/suit/space/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 intergrated into the suit and the wings appear to be stuck in 'freedom' mode."
icon_state = "freedom"
item_state = "freedom"
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_box,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank/internals)
armor = list(melee = 20, bullet = 40, laser = 30,energy = 25, bomb = 100, bio = 100, rad = 100)
strip_delay = 130
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
unacidable = 1
//Carpsuit, bestsuit, lovesuit
/obj/item/clothing/head/helmet/space/hardsuit/carp
name = "carp helmet"
desc = "Spaceworthy and it looks like a space carp's head, smells like one too."
icon_state = "carp_helm"
item_state = "syndicate"
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75) //As whimpy as a space carp
brightness_on = 0 //luminosity when on
actions_types = list()
flags = STOPSPRESSUREDMAGE | THICKMATERIAL | NODROP
/obj/item/clothing/suit/space/hardsuit/carp
name = "carp space suit"
desc = "A slimming piece of dubious space carp technology, you suspect it won't stand up to hand-to-hand blows."
icon_state = "carp_suit"
item_state = "space_suit_syndicate"
slowdown = 0 //Space carp magic, never stop believing
armor = list(melee = -20, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 75) //As whimpy whimpy whoo
allowed = list(/obj/item/weapon/tank/internals, /obj/item/weapon/gun/projectile/automatic/speargun) //I'm giving you a hint here
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/carp
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal
name = "paranormal response unit helmet"
desc = "A helmet worn by those who deal with paranormal threats for a living."
icon_state = "hardsuit0-prt"
item_state = "hardsuit0-prt"
item_color = "knight_grey"
max_heat_protection_temperature = FIRE_IMMUNITY_HELM_MAX_TEMP_PROTECT
actions_types = list()
/obj/item/clothing/suit/space/hardsuit/ert/paranormal
name = "paranormal response team suit"
desc = "Powerful wards are built into this hardsuit, protecting the user from all manner of paranormal threats."
icon_state = "knight_grey"
item_state = "knight_grey"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal
max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/New()
..()
new /obj/item/weapon/nullrod(src)
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor
name = "inquisitor's hardsuit"
icon_state = "hardsuit-inq"
item_state = "hardsuit-inq"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor
name = "inquisitor's helmet"
icon_state = "hardsuit0-inq"
item_state = "hardsuit0-inq"
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker
name = "champion's hardsuit"
desc = "Voices echo from the hardsuit, driving the user insane."
icon_state = "hardsuit-beserker"
item_state = "hardsuit-beserker"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker
name = "champion's helmet"
desc = "Peering into the eyes of the helmet is enough to seal damnation."
icon_state = "hardsuit0-beserker"
item_state = "hardsuit0-beserker"
@@ -0,0 +1,45 @@
//Suits for the pink and grey skeletons!
/obj/item/clothing/suit/space/eva/plasmaman
name = "plasmaman suit"
desc = "A special containment suit designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies."
allowed = list(/obj/item/weapon/gun,/obj/item/ammo_casing,/obj/item/ammo_casing,/obj/item/weapon/melee/baton,/obj/item/weapon/melee/energy/sword,/obj/item/weapon/restraints/handcuffs,/obj/item/weapon/tank)
armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 100, rad = 0)
icon_state = "plasmaman_suit"
item_state = "plasmaman_suit"
var/next_extinguish = 0
var/extinguish_cooldown = 100
var/extinguishes_left = 10
/obj/item/clothing/suit/space/eva/plasmaman/examine(mob/user)
..()
user << "<span class='notice'>There are [extinguishes_left] extinguisher canisters left in this suit.</span>"
/obj/item/clothing/suit/space/eva/plasmaman/proc/Extinguish(mob/living/carbon/human/H)
if(!istype(H))
return
if(H.fire_stacks)
if(extinguishes_left)
if(next_extinguish > world.time)
return
next_extinguish = world.time + extinguish_cooldown
extinguishes_left--
H.visible_message("<span class='warning'>[H]'s suit automatically extinguishes them!</span>","<span class='warning'>Your suit automatically extinguishes you.</span>")
H.ExtinguishMob()
PoolOrNew(/obj/effect/particle_effect/water, get_turf(H))
//I just want the light feature of the hardsuit helmet
/obj/item/clothing/head/helmet/space/plasmaman
name = "plasmaman helmet"
desc = "A special containment helmet designed to protect a plasmaman's volatile body from outside exposure and quickly extinguish it in emergencies."
icon_state = "plasmaman-helm"
item_color = "plasma" //needed for the helmet lighting
item_state = "plasmaman-helm"
strip_delay = 80
+149
View File
@@ -0,0 +1,149 @@
//Regular syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate
name = "red space helmet"
desc = "Top secret spess helmet."
icon_state = "syndicate"
item_state = "syndicate"
desc = "Has a tag: Totally not property of an enemy corporation, honest."
armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
/obj/item/clothing/suit/space/syndicate
name = "red space suit"
icon_state = "syndicate"
item_state = "space_suit_syndicate"
desc = "Has a tag on it: Totally not property of of a hostile corporation, honest!"
w_class = 3
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)
armor = list(melee = 40, bullet = 50, laser = 30,energy = 15, bomb = 30, bio = 30, rad = 30)
//Green syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/green
name = "green space helmet"
icon_state = "syndicate-helm-green"
item_state = "syndicate-helm-green"
/obj/item/clothing/suit/space/syndicate/green
name = "green space suit"
icon_state = "syndicate-green"
item_state = "syndicate-green"
//Dark green syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/green/dark
name = "dark green space helmet"
icon_state = "syndicate-helm-green-dark"
item_state = "syndicate-helm-green-dark"
/obj/item/clothing/suit/space/syndicate/green/dark
name = "dark green space suit"
icon_state = "syndicate-green-dark"
item_state = "syndicate-green-dark"
//Orange syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/orange
name = "orange space helmet"
icon_state = "syndicate-helm-orange"
item_state = "syndicate-helm-orange"
/obj/item/clothing/suit/space/syndicate/orange
name = "orange space suit"
icon_state = "syndicate-orange"
item_state = "syndicate-orange"
//Blue syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/blue
name = "blue space helmet"
icon_state = "syndicate-helm-blue"
item_state = "syndicate-helm-blue"
/obj/item/clothing/suit/space/syndicate/blue
name = "blue space suit"
icon_state = "syndicate-blue"
item_state = "syndicate-blue"
//Black syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/black
name = "black space helmet"
icon_state = "syndicate-helm-black"
item_state = "syndicate-helm-black"
/obj/item/clothing/suit/space/syndicate/black
name = "black space suit"
icon_state = "syndicate-black"
item_state = "syndicate-black"
//Black-green syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/black/green
name = "black space helmet"
icon_state = "syndicate-helm-black-green"
item_state = "syndicate-helm-black-green"
/obj/item/clothing/suit/space/syndicate/black/green
name = "black and green space suit"
icon_state = "syndicate-black-green"
item_state = "syndicate-black-green"
//Black-blue syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/black/blue
name = "black space helmet"
icon_state = "syndicate-helm-black-blue"
item_state = "syndicate-helm-black-blue"
/obj/item/clothing/suit/space/syndicate/black/blue
name = "black and blue space suit"
icon_state = "syndicate-black-blue"
item_state = "syndicate-black-blue"
//Black medical syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/black/med
name = "black space helmet"
icon_state = "syndicate-helm-black-med"
item_state = "syndicate-helm-black"
/obj/item/clothing/suit/space/syndicate/black/med
name = "green space suit"
icon_state = "syndicate-black-med"
item_state = "syndicate-black"
//Black-orange syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/black/orange
name = "black space helmet"
icon_state = "syndicate-helm-black-orange"
item_state = "syndicate-helm-black"
/obj/item/clothing/suit/space/syndicate/black/orange
name = "black and orange space suit"
icon_state = "syndicate-black-orange"
item_state = "syndicate-black"
//Black-red syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/black/red
name = "black space helmet"
icon_state = "syndicate-helm-black-red"
item_state = "syndicate-helm-black-red"
/obj/item/clothing/suit/space/syndicate/black/red
name = "black and red space suit"
icon_state = "syndicate-black-red"
item_state = "syndicate-black-red"
//Black with yellow/red engineering syndicate space suit
/obj/item/clothing/head/helmet/space/syndicate/black/engie
name = "black space helmet"
icon_state = "syndicate-helm-black-engie"
item_state = "syndicate-helm-black"
/obj/item/clothing/suit/space/syndicate/black/engie
name = "black engineering space suit"
icon_state = "syndicate-black-engie"
item_state = "syndicate-black"