Advertisement
Guest User

Untitled

a guest
Sep 16th, 2019
204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 38.41 KB | None | 0 0
  1. //Baseline hardsuits
  2. /obj/item/clothing/head/helmet/space/hardsuit
  3. name = "hardsuit helmet"
  4. desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
  5. icon_state = "hardsuit0-engineering"
  6. item_state = "eng_helm"
  7. max_integrity = 300
  8. armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 50, "acid" = 75)
  9. var/basestate = "hardsuit"
  10. var/brightness_on = 4 //luminosity when on
  11. var/on = FALSE
  12. var/obj/item/clothing/suit/space/hardsuit/suit
  13. var/hardsuit_type = "engineering" //Determines used sprites: hardsuit[on]-[type]
  14. actions_types = list(/datum/action/item_action/toggle_helmet_light)
  15. flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
  16. visor_flags_cover = HEADCOVERSEYES | HEADCOVERSMOUTH | PEPPERPROOF
  17. var/rad_count = 0
  18. var/rad_record = 0
  19. var/grace_count = 0
  20. var/datum/looping_sound/geiger/soundloop
  21.  
  22. /obj/item/clothing/head/helmet/space/hardsuit/Initialize()
  23. . = ..()
  24. soundloop = new(list(), FALSE, TRUE)
  25. soundloop.volume = 5
  26. START_PROCESSING(SSobj, src)
  27.  
  28. /obj/item/clothing/head/helmet/space/hardsuit/Destroy()
  29. . = ..()
  30. STOP_PROCESSING(SSobj, src)
  31.  
  32. /obj/item/clothing/head/helmet/space/hardsuit/attack_self(mob/user)
  33. on = !on
  34. icon_state = "[basestate][on]-[hardsuit_type]"
  35. user.update_inv_head() //so our mob-overlays update
  36.  
  37. if(on)
  38. set_light(brightness_on)
  39. else
  40. set_light(0)
  41. for(var/X in actions)
  42. var/datum/action/A = X
  43. A.UpdateButtonIcon()
  44.  
  45. /obj/item/clothing/head/helmet/space/hardsuit/dropped(mob/user)
  46. ..()
  47. if(suit)
  48. suit.RemoveHelmet()
  49. soundloop.stop(user)
  50.  
  51. /obj/item/clothing/head/helmet/space/hardsuit/item_action_slot_check(slot)
  52. if(slot == SLOT_HEAD)
  53. return 1
  54.  
  55. /obj/item/clothing/head/helmet/space/hardsuit/equipped(mob/user, slot)
  56. ..()
  57. if(slot != SLOT_HEAD)
  58. if(suit)
  59. suit.RemoveHelmet()
  60. soundloop.stop(user)
  61. else
  62. qdel(src)
  63. else
  64. soundloop.start(user)
  65.  
  66. /obj/item/clothing/head/helmet/space/hardsuit/proc/display_visor_message(var/msg)
  67. var/mob/wearer = loc
  68. if(msg && ishuman(wearer))
  69. wearer.show_message("[icon2html(src, wearer)]<b><span class='robot'>[msg]</span></b>", 1)
  70.  
  71. /obj/item/clothing/head/helmet/space/hardsuit/rad_act(severity)
  72. . = ..()
  73. rad_count += severity
  74.  
  75. /obj/item/clothing/head/helmet/space/hardsuit/process()
  76. if(!rad_count)
  77. grace_count++
  78. if(grace_count == 2)
  79. soundloop.last_radiation = 0
  80. return
  81.  
  82. grace_count = 0
  83. rad_record -= rad_record/5
  84. rad_record += rad_count/5
  85. rad_count = 0
  86.  
  87. soundloop.last_radiation = rad_record
  88.  
  89. /obj/item/clothing/head/helmet/space/hardsuit/emp_act(severity)
  90. . = ..()
  91. display_visor_message("[severity > 1 ? "Light" : "Strong"] electromagnetic pulse detected.")
  92.  
  93.  
  94. /obj/item/clothing/head/helmet/space/hardsuit/health_scan(mob/user/M)
  95. var/oxy_loss = M.getOxyLoss()
  96. var/tox_loss = M.getToxLoss()
  97. var/fire_loss = M.getFireLoss()
  98. var/brute_loss = M.getBruteLoss()
  99. if(user.health < 81)
  100. if(brute_loss > 20)
  101. display_visor_message("[brute_loss > 50 ? "Major" : "Minor"] lacerations detected.</span>")
  102. if(fire_loss > 20)
  103. display_visor_message("[fire_loss > 50 ? "Severe" : "Minor"] burn damage detected.</span>")
  104. if(oxy_loss > 20)
  105. display_visor_message("[oxy_loss > 50 ? "Severe" : "Minor"] oxygen deprivation detected.</span>")
  106. if(tox_loss > 20)
  107. display_visor_message("[tox_loss > 50 ? "Severe" : "Minor"] amount of toxin damage detected.</span>")
  108. if(user.health < 25)
  109. display_visor_message("Vital signs critical.")
  110. if(user.health < 1)
  111. display_visor_message("Emergency! User death imminent.")
  112. if (M.radiation > 50)
  113. display_visor_message("Irradiation detected.")
  114. display_visor_message("Seek medical attention.")
  115.  
  116.  
  117.  
  118. /obj/item/clothing/suit/space/hardsuit
  119. name = "hardsuit"
  120. desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
  121. icon_state = "hardsuit-engineering"
  122. item_state = "eng_hardsuit"
  123. max_integrity = 300
  124. armor = list("melee" = 10, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 50, "acid" = 75)
  125. allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/t_scanner, /obj/item/construction/rcd, /obj/item/pipe_dispenser)
  126. siemens_coefficient = 0
  127. var/obj/item/clothing/head/helmet/space/hardsuit/helmet
  128. actions_types = list(/datum/action/item_action/toggle_helmet)
  129. var/helmettype = /obj/item/clothing/head/helmet/space/hardsuit
  130. var/obj/item/tank/jetpack/suit/jetpack = null
  131. var/hardsuit_type
  132.  
  133.  
  134. /obj/item/clothing/suit/space/hardsuit/Initialize()
  135. if(jetpack && ispath(jetpack))
  136. jetpack = new jetpack(src)
  137. . = ..()
  138.  
  139. /obj/item/clothing/suit/space/hardsuit/attack_self(mob/user)
  140. user.changeNext_move(CLICK_CD_MELEE)
  141. ..()
  142.  
  143. /obj/item/clothing/suit/space/hardsuit/attackby(obj/item/I, mob/user, params)
  144. if(istype(I, /obj/item/tank/jetpack/suit))
  145. if(jetpack)
  146. to_chat(user, "<span class='warning'>[src] already has a jetpack installed.</span>")
  147. return
  148. if(src == user.get_item_by_slot(SLOT_WEAR_SUIT)) //Make sure the player is not wearing the suit before applying the upgrade.
  149. to_chat(user, "<span class='warning'>You cannot install the upgrade to [src] while wearing it.</span>")
  150. return
  151.  
  152. if(user.transferItemToLoc(I, src))
  153. jetpack = I
  154. to_chat(user, "<span class='notice'>You successfully install the jetpack into [src].</span>")
  155. return
  156. else if(I.tool_behaviour == TOOL_SCREWDRIVER)
  157. if(!jetpack)
  158. to_chat(user, "<span class='warning'>[src] has no jetpack installed.</span>")
  159. return
  160. if(src == user.get_item_by_slot(SLOT_WEAR_SUIT))
  161. to_chat(user, "<span class='warning'>You cannot remove the jetpack from [src] while wearing it.</span>")
  162. return
  163.  
  164. jetpack.turn_off(user)
  165. jetpack.forceMove(drop_location())
  166. jetpack = null
  167. to_chat(user, "<span class='notice'>You successfully remove the jetpack from [src].</span>")
  168. return
  169. return ..()
  170.  
  171.  
  172. /obj/item/clothing/suit/space/hardsuit/equipped(mob/user, slot)
  173. ..()
  174. if(jetpack)
  175. if(slot == SLOT_WEAR_SUIT)
  176. for(var/X in jetpack.actions)
  177. var/datum/action/A = X
  178. A.Grant(user)
  179.  
  180. /obj/item/clothing/suit/space/hardsuit/dropped(mob/user)
  181. ..()
  182. if(jetpack)
  183. for(var/X in jetpack.actions)
  184. var/datum/action/A = X
  185. A.Remove(user)
  186.  
  187. /obj/item/clothing/suit/space/hardsuit/item_action_slot_check(slot)
  188. if(slot == SLOT_WEAR_SUIT) //we only give the mob the ability to toggle the helmet if he's wearing the hardsuit.
  189. return 1
  190.  
  191. //Engineering
  192. /obj/item/clothing/head/helmet/space/hardsuit/engine
  193. name = "engineering hardsuit helmet"
  194. desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has radiation shielding."
  195. icon_state = "hardsuit0-engineering"
  196. item_state = "eng_helm"
  197. armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 100, "acid" = 75)
  198. hardsuit_type = "engineering"
  199. resistance_flags = FIRE_PROOF
  200.  
  201. /obj/item/clothing/suit/space/hardsuit/engine
  202. name = "engineering hardsuit"
  203. desc = "A special suit that protects against hazardous, low pressure environments. Has radiation shielding."
  204. icon_state = "hardsuit-engineering"
  205. item_state = "eng_hardsuit"
  206. armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 100, "acid" = 75)
  207. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine
  208. resistance_flags = FIRE_PROOF
  209.  
  210. //Atmospherics
  211. /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
  212. name = "atmospherics hardsuit helmet"
  213. desc = "A special helmet designed for work in a hazardous, low-pressure environment. Has thermal shielding."
  214. icon_state = "hardsuit0-atmospherics"
  215. item_state = "atmo_helm"
  216. hardsuit_type = "atmospherics"
  217. armor = list("melee" = 20, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 25, "fire" = 100, "acid" = 75)
  218. heat_protection = HEAD //Uncomment to enable firesuit protection
  219. max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
  220.  
  221. /obj/item/clothing/suit/space/hardsuit/engine/atmos
  222. name = "atmospherics hardsuit"
  223. desc = "A special suit that protects against hazardous, low pressure environments. Has thermal shielding."
  224. icon_state = "hardsuit-atmospherics"
  225. item_state = "atmo_hardsuit"
  226. armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 25, "fire" = 100, "acid" = 75)
  227. heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
  228. max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
  229. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/atmos
  230.  
  231.  
  232. //Chief Engineer's hardsuit
  233. /obj/item/clothing/head/helmet/space/hardsuit/engine/elite
  234. name = "advanced hardsuit helmet"
  235. desc = "An advanced helmet designed for work in a hazardous, low pressure environment. Shines with a high polish."
  236. icon_state = "hardsuit0-white"
  237. item_state = "ce_helm"
  238. hardsuit_type = "white"
  239. armor = list("melee" = 40, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 90)
  240. heat_protection = HEAD
  241. max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
  242.  
  243. /obj/item/clothing/suit/space/hardsuit/engine/elite
  244. icon_state = "hardsuit-white"
  245. name = "advanced hardsuit"
  246. desc = "An advanced suit that protects against hazardous, low pressure environments. Shines with a high polish."
  247. item_state = "ce_hardsuit"
  248. armor = list("melee" = 40, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 90, "fire" = 100, "acid" = 90)
  249. heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
  250. max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
  251. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/engine/elite
  252. jetpack = /obj/item/tank/jetpack/suit
  253.  
  254. //Mining hardsuit
  255. /obj/item/clothing/head/helmet/space/hardsuit/mining
  256. name = "mining hardsuit helmet"
  257. desc = "A special helmet designed for work in a hazardous, low pressure environment. Has reinforced plating for wildlife encounters and dual floodlights."
  258. icon_state = "hardsuit0-mining"
  259. item_state = "mining_helm"
  260. hardsuit_type = "mining"
  261. max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
  262. resistance_flags = FIRE_PROOF
  263. heat_protection = HEAD
  264. armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 75)
  265. brightness_on = 7
  266. 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)
  267.  
  268. /obj/item/clothing/head/helmet/space/hardsuit/mining/Initialize()
  269. . = ..()
  270. AddComponent(/datum/component/armor_plate)
  271.  
  272. /obj/item/clothing/suit/space/hardsuit/mining
  273. name = "mining hardsuit"
  274. desc = "A special suit that protects against hazardous, low pressure environments. Has reinforced plating for wildlife encounters."
  275. icon_state = "hardsuit-mining"
  276. item_state = "mining_hardsuit"
  277. max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
  278. resistance_flags = FIRE_PROOF
  279. armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 75)
  280. allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/bag/ore, /obj/item/pickaxe)
  281. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/mining
  282. heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
  283.  
  284. /obj/item/clothing/suit/space/hardsuit/mining/Initialize()
  285. . = ..()
  286. AddComponent(/datum/component/armor_plate)
  287.  
  288. //Syndicate hardsuit
  289. /obj/item/clothing/head/helmet/space/hardsuit/syndi
  290. name = "blood-red hardsuit helmet"
  291. desc = "A dual-mode advanced helmet designed for work in special operations. It is in EVA mode. Property of Gorlex Marauders."
  292. alt_desc = "A dual-mode advanced helmet designed for work in special operations. It is in combat mode. Property of Gorlex Marauders."
  293. icon_state = "hardsuit1-syndi"
  294. item_state = "syndie_helm"
  295. hardsuit_type = "syndi"
  296. armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90)
  297. on = TRUE
  298. var/obj/item/clothing/suit/space/hardsuit/syndi/linkedsuit = null
  299. actions_types = list(/datum/action/item_action/toggle_helmet_mode)
  300. visor_flags_inv = HIDEMASK|HIDEEYES|HIDEFACE|HIDEFACIALHAIR
  301. visor_flags = STOPSPRESSUREDAMAGE
  302.  
  303. /obj/item/clothing/head/helmet/space/hardsuit/syndi/update_icon()
  304. icon_state = "hardsuit[on]-[hardsuit_type]"
  305.  
  306. /obj/item/clothing/head/helmet/space/hardsuit/syndi/Initialize()
  307. . = ..()
  308. if(istype(loc, /obj/item/clothing/suit/space/hardsuit/syndi))
  309. linkedsuit = loc
  310.  
  311. /obj/item/clothing/head/helmet/space/hardsuit/syndi/attack_self(mob/user) //Toggle Helmet
  312. if(!isturf(user.loc))
  313. to_chat(user, "<span class='warning'>You cannot toggle your helmet while in this [user.loc]!</span>" )
  314. return
  315. on = !on
  316. if(on || force)
  317. to_chat(user, "<span class='notice'>You switch your hardsuit to EVA mode, sacrificing speed for space protection.</span>")
  318. name = initial(name)
  319. desc = initial(desc)
  320. set_light(brightness_on)
  321. clothing_flags |= visor_flags
  322. flags_cover |= HEADCOVERSEYES | HEADCOVERSMOUTH
  323. flags_inv |= visor_flags_inv
  324. cold_protection |= HEAD
  325. else
  326. to_chat(user, "<span class='notice'>You switch your hardsuit to combat mode and can now run at full speed.</span>")
  327. name += " (combat)"
  328. desc = alt_desc
  329. set_light(0)
  330. clothing_flags &= ~visor_flags
  331. flags_cover &= ~(HEADCOVERSEYES | HEADCOVERSMOUTH)
  332. flags_inv &= ~visor_flags_inv
  333. cold_protection &= ~HEAD
  334. update_icon()
  335. playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, TRUE)
  336. toggle_hardsuit_mode(user)
  337. user.update_inv_head()
  338. if(iscarbon(user))
  339. var/mob/living/carbon/C = user
  340. C.head_update(src, forced = 1)
  341. for(var/X in actions)
  342. var/datum/action/A = X
  343. A.UpdateButtonIcon()
  344.  
  345. /obj/item/clothing/head/helmet/space/hardsuit/syndi/proc/toggle_hardsuit_mode(mob/user) //Helmet Toggles Suit Mode
  346. if(linkedsuit)
  347. if(on)
  348. linkedsuit.name = initial(linkedsuit.name)
  349. linkedsuit.desc = initial(linkedsuit.desc)
  350. linkedsuit.slowdown = 1
  351. linkedsuit.clothing_flags |= STOPSPRESSUREDAMAGE
  352. linkedsuit.cold_protection |= CHEST | GROIN | LEGS | FEET | ARMS | HANDS
  353. else
  354. linkedsuit.name += " (combat)"
  355. linkedsuit.desc = linkedsuit.alt_desc
  356. linkedsuit.slowdown = 0
  357. linkedsuit.clothing_flags &= ~STOPSPRESSUREDAMAGE
  358. linkedsuit.cold_protection &= ~(CHEST | GROIN | LEGS | FEET | ARMS | HANDS)
  359.  
  360. linkedsuit.icon_state = "hardsuit[on]-[hardsuit_type]"
  361. linkedsuit.update_icon()
  362. user.update_inv_wear_suit()
  363. user.update_inv_w_uniform()
  364.  
  365.  
  366. /obj/item/clothing/suit/space/hardsuit/syndi
  367. name = "blood-red hardsuit"
  368. desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in EVA mode. Property of Gorlex Marauders."
  369. alt_desc = "A dual-mode advanced hardsuit designed for work in special operations. It is in combat mode. Property of Gorlex Marauders."
  370. icon_state = "hardsuit1-syndi"
  371. item_state = "syndie_hardsuit"
  372. hardsuit_type = "syndi"
  373. w_class = WEIGHT_CLASS_NORMAL
  374. armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 50, "acid" = 90)
  375. 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)
  376. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi
  377. jetpack = /obj/item/tank/jetpack/suit
  378.  
  379. //Elite Syndie suit
  380. /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite
  381. name = "elite syndicate hardsuit helmet"
  382. desc = "An elite version of the syndicate helmet, with improved armour and fireproofing. It is in EVA mode. Property of Gorlex Marauders."
  383. alt_desc = "An elite version of the syndicate helmet, with improved armour and fireproofing. It is in combat mode. Property of Gorlex Marauders."
  384. icon_state = "hardsuit0-syndielite"
  385. hardsuit_type = "syndielite"
  386. armor = list("melee" = 60, "bullet" = 60, "laser" = 50, "energy" = 25, "bomb" = 55, "bio" = 100, "rad" = 70, "fire" = 100, "acid" = 100)
  387. heat_protection = HEAD
  388. max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
  389. resistance_flags = FIRE_PROOF | ACID_PROOF
  390.  
  391. /obj/item/clothing/suit/space/hardsuit/syndi/elite
  392. name = "elite syndicate hardsuit"
  393. desc = "An elite version of the syndicate hardsuit, with improved armour and fireproofing. It is in travel mode."
  394. alt_desc = "An elite version of the syndicate hardsuit, with improved armour and fireproofing. It is in combat mode."
  395. icon_state = "hardsuit0-syndielite"
  396. hardsuit_type = "syndielite"
  397. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/elite
  398. armor = list("melee" = 60, "bullet" = 60, "laser" = 50, "energy" = 25, "bomb" = 55, "bio" = 100, "rad" = 70, "fire" = 100, "acid" = 100)
  399. heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
  400. max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
  401. resistance_flags = FIRE_PROOF | ACID_PROOF
  402.  
  403. //The Owl Hardsuit
  404. /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl
  405. name = "owl hardsuit helmet"
  406. desc = "A dual-mode advanced helmet designed for any crime-fighting situation. It is in travel mode."
  407. alt_desc = "A dual-mode advanced helmet designed for any crime-fighting situation. It is in combat mode."
  408. icon_state = "hardsuit1-owl"
  409. item_state = "s_helmet"
  410. hardsuit_type = "owl"
  411. visor_flags_inv = 0
  412. visor_flags = 0
  413. on = FALSE
  414.  
  415. /obj/item/clothing/suit/space/hardsuit/syndi/owl
  416. name = "owl hardsuit"
  417. desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in travel mode."
  418. alt_desc = "A dual-mode advanced hardsuit designed for any crime-fighting situation. It is in combat mode."
  419. icon_state = "hardsuit1-owl"
  420. item_state = "s_suit"
  421. hardsuit_type = "owl"
  422. clothing_flags = BLOCKS_SHOVE_KNOCKDOWN
  423. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi/owl
  424.  
  425.  
  426. //Wizard hardsuit
  427. /obj/item/clothing/head/helmet/space/hardsuit/wizard
  428. name = "gem-encrusted hardsuit helmet"
  429. desc = "A bizarre gem-encrusted helmet that radiates magical energies."
  430. icon_state = "hardsuit0-wiz"
  431. item_state = "wiz_helm"
  432. hardsuit_type = "wiz"
  433. resistance_flags = FIRE_PROOF | ACID_PROOF //No longer shall our kind be foiled by lone chemists with spray bottles!
  434. armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 20, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
  435. heat_protection = HEAD //Uncomment to enable firesuit protection
  436. max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
  437.  
  438. /obj/item/clothing/suit/space/hardsuit/wizard
  439. name = "gem-encrusted hardsuit"
  440. desc = "A bizarre gem-encrusted suit that radiates magical energies."
  441. icon_state = "hardsuit-wiz"
  442. item_state = "wiz_hardsuit"
  443. w_class = WEIGHT_CLASS_NORMAL
  444. resistance_flags = FIRE_PROOF | ACID_PROOF
  445. armor = list("melee" = 40, "bullet" = 40, "laser" = 40, "energy" = 20, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
  446. allowed = list(/obj/item/teleportation_scroll, /obj/item/tank/internals)
  447. heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS //Uncomment to enable firesuit protection
  448. max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
  449. clothing_flags = BLOCKS_SHOVE_KNOCKDOWN
  450. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/wizard
  451.  
  452. /obj/item/clothing/suit/space/hardsuit/wizard/Initialize()
  453. . = ..()
  454. AddComponent(/datum/component/anti_magic, TRUE, FALSE, FALSE, ITEM_SLOT_OCLOTHING, INFINITY, FALSE)
  455.  
  456.  
  457. //Medical hardsuit
  458. /obj/item/clothing/head/helmet/space/hardsuit/medical
  459. name = "medical hardsuit helmet"
  460. 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."
  461. icon_state = "hardsuit0-medical"
  462. item_state = "medical_helm"
  463. hardsuit_type = "medical"
  464. flash_protect = 0
  465. armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75)
  466. clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SCAN_REAGENTS | SNUG_FIT
  467.  
  468. /obj/item/clothing/suit/space/hardsuit/medical
  469. name = "medical hardsuit"
  470. desc = "A special suit that protects against hazardous, low pressure environments. Built with lightweight materials for easier movement."
  471. icon_state = "hardsuit-medical"
  472. item_state = "medical_hardsuit"
  473. allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage/firstaid, /obj/item/healthanalyzer, /obj/item/stack/medical)
  474. armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 75)
  475. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/medical
  476. slowdown = 0.5
  477.  
  478. //Research Director hardsuit
  479. /obj/item/clothing/head/helmet/space/hardsuit/rd
  480. name = "prototype hardsuit helmet"
  481. desc = "A prototype helmet designed for research in a hazardous, low pressure environment. Scientific data flashes across the visor."
  482. icon_state = "hardsuit0-rd"
  483. hardsuit_type = "rd"
  484. resistance_flags = ACID_PROOF | FIRE_PROOF
  485. max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT
  486. armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 100, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 80)
  487. var/obj/machinery/doppler_array/integrated/bomb_radar
  488. clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | SCAN_REAGENTS | SNUG_FIT
  489. actions_types = list(/datum/action/item_action/toggle_helmet_light, /datum/action/item_action/toggle_research_scanner)
  490.  
  491. /obj/item/clothing/head/helmet/space/hardsuit/rd/Initialize()
  492. . = ..()
  493. bomb_radar = new /obj/machinery/doppler_array/integrated(src)
  494.  
  495. /obj/item/clothing/head/helmet/space/hardsuit/rd/equipped(mob/living/carbon/human/user, slot)
  496. ..()
  497. if (slot == SLOT_HEAD)
  498. var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC]
  499. DHUD.add_hud_to(user)
  500.  
  501. /obj/item/clothing/head/helmet/space/hardsuit/rd/dropped(mob/living/carbon/human/user)
  502. ..()
  503. if (user.head == src)
  504. var/datum/atom_hud/DHUD = GLOB.huds[DATA_HUD_DIAGNOSTIC_BASIC]
  505. DHUD.remove_hud_from(user)
  506.  
  507. /obj/item/clothing/suit/space/hardsuit/rd
  508. name = "prototype hardsuit"
  509. desc = "A prototype suit that protects against hazardous, low pressure environments. Fitted with extensive plating for handling explosives and dangerous research materials."
  510. icon_state = "hardsuit-rd"
  511. item_state = "hardsuit-rd"
  512. resistance_flags = ACID_PROOF | FIRE_PROOF
  513. max_heat_protection_temperature = FIRE_SUIT_MAX_TEMP_PROTECT //Same as an emergency firesuit. Not ideal for extended exposure.
  514. allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/gun/energy/wormhole_projector,
  515. /obj/item/hand_tele, /obj/item/aicard)
  516. armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 100, "bio" = 100, "rad" = 60, "fire" = 60, "acid" = 80)
  517. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/rd
  518.  
  519.  
  520.  
  521. //Security hardsuit
  522. /obj/item/clothing/head/helmet/space/hardsuit/security
  523. name = "security hardsuit helmet"
  524. desc = "A special helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor."
  525. icon_state = "hardsuit0-sec"
  526. item_state = "sec_helm"
  527. hardsuit_type = "sec"
  528. armor = list("melee" = 35, "bullet" = 15, "laser" = 30,"energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75)
  529.  
  530.  
  531. /obj/item/clothing/suit/space/hardsuit/security
  532. icon_state = "hardsuit-sec"
  533. name = "security hardsuit"
  534. desc = "A special suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
  535. item_state = "sec_hardsuit"
  536. armor = list("melee" = 35, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 75, "acid" = 75)
  537. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security
  538. clothing_flags = BLOCKS_SHOVE_KNOCKDOWN
  539.  
  540. /obj/item/clothing/suit/space/hardsuit/security/Initialize()
  541. . = ..()
  542. allowed = GLOB.security_hardsuit_allowed
  543.  
  544. //Head of Security hardsuit
  545. /obj/item/clothing/head/helmet/space/hardsuit/security/hos
  546. name = "head of security's hardsuit helmet"
  547. desc = "A special bulky helmet designed for work in a hazardous, low pressure environment. Has an additional layer of armor."
  548. icon_state = "hardsuit0-hos"
  549. hardsuit_type = "hos"
  550. armor = list("melee" = 45, "bullet" = 25, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 100, "rad" = 50, "fire" = 95, "acid" = 95)
  551.  
  552.  
  553. /obj/item/clothing/suit/space/hardsuit/security/hos
  554. icon_state = "hardsuit-hos"
  555. name = "head of security's hardsuit"
  556. desc = "A special bulky suit that protects against hazardous, low pressure environments. Has an additional layer of armor."
  557. armor = list("melee" = 45, "bullet" = 25, "laser" = 30, "energy" = 10, "bomb" = 25, "bio" = 100, "rad" = 50, "fire" = 95, "acid" = 95)
  558. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
  559. jetpack = /obj/item/tank/jetpack/suit
  560.  
  561. //SWAT MKII
  562. /obj/item/clothing/head/helmet/space/hardsuit/swat
  563. name = "\improper MK.II SWAT Helmet"
  564. icon_state = "swat2helm"
  565. item_state = "swat2helm"
  566. desc = "A tactical SWAT helmet MK.II."
  567. armor = list("melee" = 40, "bullet" = 50, "laser" = 50, "energy" = 25, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
  568. resistance_flags = FIRE_PROOF | ACID_PROOF
  569. flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR //we want to see the mask
  570. heat_protection = HEAD
  571. max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
  572. actions_types = list()
  573.  
  574. /obj/item/clothing/head/helmet/space/hardsuit/swat/attack_self()
  575.  
  576. /obj/item/clothing/suit/space/hardsuit/swat
  577. name = "\improper MK.II SWAT Suit"
  578. 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."
  579. icon_state = "swat2"
  580. item_state = "swat2"
  581. armor = list("melee" = 40, "bullet" = 50, "laser" = 50, "energy" = 25, "bomb" = 50, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
  582. resistance_flags = FIRE_PROOF | ACID_PROOF
  583. heat_protection = CHEST|GROIN|LEGS|FEET|ARMS|HANDS
  584. clothing_flags = BLOCKS_SHOVE_KNOCKDOWN
  585. max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT //this needed to be added a long fucking time ago
  586. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/swat
  587.  
  588. /obj/item/clothing/suit/space/hardsuit/swat/Initialize()
  589. . = ..()
  590. allowed = GLOB.security_hardsuit_allowed
  591.  
  592. //Captain
  593. /obj/item/clothing/head/helmet/space/hardsuit/swat/captain
  594. name = "captain's hardsuit helmet"
  595. icon_state = "capspace"
  596. item_state = "capspacehelmet"
  597. desc = "A tactical MK.II SWAT helmet boasting better protection and a horrible fashion sense."
  598.  
  599. /obj/item/clothing/suit/space/hardsuit/swat/captain
  600. name = "captain's hardsuit"
  601. 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."
  602. icon_state = "caparmor"
  603. item_state = "capspacesuit"
  604. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/swat/captain
  605.  
  606. //Clown
  607. /obj/item/clothing/head/helmet/space/hardsuit/clown
  608. name = "cosmohonk hardsuit helmet"
  609. desc = "A special helmet designed for work in a hazardous, low-humor environment. Has radiation shielding."
  610. icon_state = "hardsuit0-clown"
  611. item_state = "hardsuit0-clown"
  612. armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 60, "acid" = 30)
  613. hardsuit_type = "clown"
  614.  
  615. /obj/item/clothing/suit/space/hardsuit/clown
  616. name = "cosmohonk hardsuit"
  617. desc = "A special suit that protects against hazardous, low humor environments. Has radiation shielding. Only a true clown can wear it."
  618. icon_state = "hardsuit-clown"
  619. item_state = "clown_hardsuit"
  620. armor = list("melee" = 30, "bullet" = 5, "laser" = 10, "energy" = 5, "bomb" = 10, "bio" = 100, "rad" = 75, "fire" = 60, "acid" = 30)
  621. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/clown
  622.  
  623. /obj/item/clothing/suit/space/hardsuit/clown/mob_can_equip(mob/M, slot)
  624. if(!..() || !ishuman(M))
  625. return FALSE
  626. var/mob/living/carbon/human/H = M
  627. if(H.mind.assigned_role == "Clown")
  628. return TRUE
  629. else
  630. return FALSE
  631.  
  632. //Old Prototype
  633. /obj/item/clothing/head/helmet/space/hardsuit/ancient
  634. name = "prototype RIG hardsuit helmet"
  635. 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."
  636. icon_state = "hardsuit0-ancient"
  637. item_state = "anc_helm"
  638. armor = list("melee" = 30, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 75)
  639. hardsuit_type = "ancient"
  640. resistance_flags = FIRE_PROOF
  641.  
  642. /obj/item/clothing/suit/space/hardsuit/ancient
  643. name = "prototype RIG hardsuit"
  644. 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."
  645. icon_state = "hardsuit-ancient"
  646. item_state = "anc_hardsuit"
  647. armor = list("melee" = 30, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 75)
  648. slowdown = 3
  649. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ancient
  650. resistance_flags = FIRE_PROOF
  651. var/footstep = 1
  652. var/mob/listeningTo
  653.  
  654. /obj/item/clothing/suit/space/hardsuit/ancient/proc/on_mob_move()
  655. var/mob/living/carbon/human/H = loc
  656. if(!istype(H) || H.wear_suit != src)
  657. return
  658. if(footstep > 1)
  659. playsound(src, 'sound/effects/servostep.ogg', 100, TRUE)
  660. footstep = 0
  661. else
  662. footstep++
  663.  
  664. /obj/item/clothing/suit/space/hardsuit/ancient/equipped(mob/user, slot)
  665. . = ..()
  666. if(slot != SLOT_WEAR_SUIT)
  667. if(listeningTo)
  668. UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED)
  669. return
  670. if(listeningTo == user)
  671. return
  672. if(listeningTo)
  673. UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED)
  674. RegisterSignal(user, COMSIG_MOVABLE_MOVED, .proc/on_mob_move)
  675. listeningTo = user
  676.  
  677. /obj/item/clothing/suit/space/hardsuit/ancient/dropped()
  678. . = ..()
  679. if(listeningTo)
  680. UnregisterSignal(listeningTo, COMSIG_MOVABLE_MOVED)
  681.  
  682. /obj/item/clothing/suit/space/hardsuit/ancient/Destroy()
  683. listeningTo = null
  684. return ..()
  685.  
  686. /////////////SHIELDED//////////////////////////////////
  687.  
  688. /obj/item/clothing/suit/space/hardsuit/shielded
  689. name = "shielded hardsuit"
  690. desc = "A hardsuit with built in energy shielding. Will rapidly recharge when not under fire."
  691. icon_state = "hardsuit-hos"
  692. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/security/hos
  693. allowed = null
  694. armor = list("melee" = 30, "bullet" = 15, "laser" = 30, "energy" = 10, "bomb" = 10, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
  695. resistance_flags = FIRE_PROOF | ACID_PROOF
  696. var/current_charges = 3
  697. var/max_charges = 3 //How many charges total the shielding has
  698. var/recharge_delay = 200 //How long after we've been shot before we can start recharging. 20 seconds here
  699. var/recharge_cooldown = 0 //Time since we've last been shot
  700. var/recharge_rate = 1 //How quickly the shield recharges once it starts charging
  701. var/shield_state = "shield-old"
  702. var/shield_on = "shield-old"
  703.  
  704. /obj/item/clothing/suit/space/hardsuit/shielded/Initialize()
  705. . = ..()
  706. if(!allowed)
  707. allowed = GLOB.advanced_hardsuit_allowed
  708.  
  709. /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)
  710. recharge_cooldown = world.time + recharge_delay
  711. if(current_charges > 0)
  712. var/datum/effect_system/spark_spread/s = new
  713. s.set_up(2, 1, src)
  714. s.start()
  715. owner.visible_message("<span class='danger'>[owner]'s shields deflect [attack_text] in a shower of sparks!</span>")
  716. current_charges--
  717. if(recharge_rate)
  718. START_PROCESSING(SSobj, src)
  719. if(current_charges <= 0)
  720. owner.visible_message("<span class='warning'>[owner]'s shield overloads!</span>")
  721. shield_state = "broken"
  722. owner.update_inv_wear_suit()
  723. return 1
  724. return 0
  725.  
  726.  
  727. /obj/item/clothing/suit/space/hardsuit/shielded/Destroy()
  728. STOP_PROCESSING(SSobj, src)
  729. return ..()
  730.  
  731. /obj/item/clothing/suit/space/hardsuit/shielded/process()
  732. if(world.time > recharge_cooldown && current_charges < max_charges)
  733. current_charges = CLAMP((current_charges + recharge_rate), 0, max_charges)
  734. playsound(loc, 'sound/magic/charge.ogg', 50, TRUE)
  735. if(current_charges == max_charges)
  736. playsound(loc, 'sound/machines/ding.ogg', 50, TRUE)
  737. STOP_PROCESSING(SSobj, src)
  738. shield_state = "[shield_on]"
  739. if(ishuman(loc))
  740. var/mob/living/carbon/human/C = loc
  741. C.update_inv_wear_suit()
  742.  
  743. /obj/item/clothing/suit/space/hardsuit/shielded/worn_overlays(isinhands)
  744. . = list()
  745. if(!isinhands)
  746. . += mutable_appearance('icons/effects/effects.dmi', shield_state, MOB_LAYER + 0.01)
  747.  
  748. /obj/item/clothing/head/helmet/space/hardsuit/shielded
  749. resistance_flags = FIRE_PROOF | ACID_PROOF
  750.  
  751. ///////////////Capture the Flag////////////////////
  752.  
  753. /obj/item/clothing/suit/space/hardsuit/shielded/ctf
  754. name = "white shielded hardsuit"
  755. desc = "Standard issue hardsuit for playing capture the flag."
  756. icon_state = "ert_medical"
  757. item_state = "ert_medical"
  758. hardsuit_type = "ert_medical"
  759. // Adding TRAIT_NODROP is done when the CTF spawner equips people
  760. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf
  761. armor = list("melee" = 0, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 95)
  762. slowdown = 0
  763. max_charges = 5
  764.  
  765. /obj/item/clothing/suit/space/hardsuit/shielded/ctf/red
  766. name = "red shielded hardsuit"
  767. icon_state = "ert_security"
  768. item_state = "ert_security"
  769. hardsuit_type = "ert_security"
  770. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red
  771. shield_state = "shield-red"
  772. shield_on = "shield-red"
  773.  
  774. /obj/item/clothing/suit/space/hardsuit/shielded/ctf/blue
  775. name = "blue shielded hardsuit"
  776. desc = "Standard issue hardsuit for playing capture the flag."
  777. icon_state = "ert_command"
  778. item_state = "ert_command"
  779. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/blue
  780.  
  781.  
  782.  
  783. /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf
  784. name = "shielded hardsuit helmet"
  785. desc = "Standard issue hardsuit helmet for playing capture the flag."
  786. icon_state = "hardsuit0-ert_medical"
  787. item_state = "hardsuit0-ert_medical"
  788. hardsuit_type = "ert_medical"
  789. armor = list("melee" = 0, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 95)
  790.  
  791.  
  792. /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/red
  793. icon_state = "hardsuit0-ert_security"
  794. item_state = "hardsuit0-ert_security"
  795. hardsuit_type = "ert_security"
  796.  
  797. /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf/blue
  798. name = "shielded hardsuit helmet"
  799. desc = "Standard issue hardsuit helmet for playing capture the flag."
  800. icon_state = "hardsuit0-ert_commander"
  801. item_state = "hardsuit0-ert_commander"
  802. hardsuit_type = "ert_commander"
  803.  
  804.  
  805.  
  806.  
  807.  
  808. //////Syndicate Version
  809.  
  810. /obj/item/clothing/suit/space/hardsuit/shielded/syndi
  811. name = "blood-red hardsuit"
  812. desc = "An advanced hardsuit with built in energy shielding."
  813. icon_state = "hardsuit1-syndi"
  814. item_state = "syndie_hardsuit"
  815. hardsuit_type = "syndi"
  816. armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
  817. 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)
  818. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
  819. slowdown = 0
  820. shield_state = "shield-red"
  821. shield_on = "shield-red"
  822.  
  823. /obj/item/clothing/suit/space/hardsuit/shielded/syndi/multitool_act(mob/living/user, obj/item/I)
  824. . = ..()
  825. if(shield_state == "broken")
  826. to_chat(user, "<span class='warning'>You can't interface with the hardsuit's software if the shield's broken!</span>")
  827. return
  828.  
  829. if(shield_state == "shield-red")
  830. shield_state = "shield-old"
  831. shield_on = "shield-old"
  832. to_chat(user, "<span class='warning'>You roll back the hardsuit's software, changing the shield's color!</span>")
  833.  
  834. else
  835. shield_state = "shield-red"
  836. shield_on = "shield-red"
  837. to_chat(user, "<span class='warning'>You update the hardsuit's hardware, changing back the shield's color to red.</span>")
  838. user.update_inv_wear_suit()
  839.  
  840. /obj/item/clothing/suit/space/hardsuit/shielded/syndi/Initialize()
  841. jetpack = new /obj/item/tank/jetpack/suit(src)
  842. . = ..()
  843.  
  844. /obj/item/clothing/head/helmet/space/hardsuit/shielded/syndi
  845. name = "blood-red hardsuit helmet"
  846. desc = "An advanced hardsuit helmet with built in energy shielding."
  847. icon_state = "hardsuit1-syndi"
  848. item_state = "syndie_helm"
  849. hardsuit_type = "syndi"
  850. armor = list("melee" = 40, "bullet" = 50, "laser" = 30, "energy" = 15, "bomb" = 35, "bio" = 100, "rad" = 50, "fire" = 100, "acid" = 100)
  851.  
  852. ///SWAT version
  853. /obj/item/clothing/suit/space/hardsuit/shielded/swat
  854. name = "death commando spacesuit"
  855. desc = "An advanced hardsuit favored by commandos for use in special operations."
  856. icon_state = "deathsquad"
  857. item_state = "swat_suit"
  858. hardsuit_type = "syndi"
  859. max_charges = 4
  860. current_charges = 4
  861. recharge_delay = 15
  862. armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
  863. strip_delay = 130
  864. max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
  865. clothing_flags = BLOCKS_SHOVE_KNOCKDOWN
  866. helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/swat
  867. dog_fashion = /datum/dog_fashion/back/deathsquad
  868.  
  869. /obj/item/clothing/head/helmet/space/hardsuit/shielded/swat
  870. name = "death commando helmet"
  871. desc = "A tactical helmet with built in energy shielding."
  872. icon_state = "deathsquad"
  873. item_state = "deathsquad"
  874. hardsuit_type = "syndi"
  875. armor = list("melee" = 80, "bullet" = 80, "laser" = 50, "energy" = 50, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100)
  876. strip_delay = 130
  877. max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
  878. actions_types = list()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement