Advertisement
Guest User

Untitled

a guest
Dec 14th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.01 KB | None | 0 0
  1. /obj/item/clothing/glasses/hud/advanced
  2. name = "advanced HUD glasses"
  3. desc = "A combination of several HUD glasses and NVG technology results in this pair of glasses."
  4. darkness_view = 8
  5. lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE
  6. vision_flags = SEE_MOB
  7. flash_protect = 3
  8. scan_reagents = 1
  9. icon_state = "thermal"
  10. glass_colour_type = /datum/client_colour/glass_color/red
  11.  
  12. /obj/item/clothing/glasses/hud/advanced/equipped(mob/living/carbon/human/user, slot)
  13. ..()
  14. for(var/hudtype in list(DATA_HUD_SECURITY_ADVANCED, DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC_ADVANCED))
  15. var/datum/atom_hud/H = GLOB.huds[hudtype]
  16. H.add_hud_to(user)
  17.  
  18. /obj/item/clothing/glasses/hud/advanced/dropped(mob/living/carbon/human/user, slot)
  19. ..()
  20. for(var/hudtype in list(DATA_HUD_SECURITY_ADVANCED, DATA_HUD_MEDICAL_ADVANCED, DATA_HUD_DIAGNOSTIC_ADVANCED))
  21. var/datum/atom_hud/H = GLOB.huds[hudtype]
  22. H.remove_hud_from(user)
  23.  
  24. /datum/techweb_node/advancedhud
  25. id = "advanced_hud"
  26. display_name = "Advanced HUD Tech"
  27. description = "By combining existing glass and HUD technology, it's possible to make advanced versions of it."
  28. prereq_ids = list("NVGtech")
  29. design_ids = list("advanced_hud")
  30. research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
  31.  
  32. /datum/design/advancedhud
  33. name = "Advanced HUD"
  34. desc = "Some pretty advanced glasses."
  35. id = "advanced_hud"
  36. build_type = PROTOLATHE
  37. materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_URANIUM = 1000, MAT_PLASMA = 300)
  38. build_path = /obj/item/clothing/glasses/hud/advanced
  39. category = list("Equipment")
  40. departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
  41.  
  42. /datum/design/mindshieldimplant
  43. name = "Mindshield Implant Case"
  44. desc = "A implant case that contains a mindshield implant."
  45. id = "mindshieldimplant" //Put into design_ids of subdermal_implants
  46. build_type = PROTOLATHE
  47. materials = list(MAT_METAL = 2000, MAT_GLASS = 2000, MAT_URANIUM = 1500)
  48. build_path = /obj/item/implantcase/mindshield
  49. category = list("implant_auth")
  50. departmental_flags = DEPARTMENTAL_FLAG_SECURITY
  51.  
  52. /datum/techweb_node/advmedicalweapon
  53. id = "advmedical_weapon"
  54. display_name = "Advanced Medical Weaponry"
  55. description = "Allows construction of a scaled down odysseus syringe gun, it can also synthesize reagents and different kinds of syringes on the go."
  56. prereq_ids = list("medical_weapons", "med_mech_tools")
  57. design_ids = list("advsyringe")
  58. research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2000)
  59.  
  60. /datum/design/advsyringe
  61. name = "Advanced Syringe Gun"
  62. desc = "A syringe gun that can synthesize syringes and reagents."
  63. id = "advsyringe"
  64. build_type = PROTOLATHE
  65. materials = list(MAT_SILVER = 2000, MAT_DIAMOND = 500, MAT_BLUESPACE = 2000)
  66. build_path = /obj/item/gun/chem/advanced
  67. category = list("Equipment")
  68. departmental_flags = DEPARTMENTAL_FLAG_MEDICAL || DEPARTMENTAL_FLAG_SCIENCE
  69.  
  70. /obj/item/gun/chem/advanced
  71. name = "advanced syringe gun"
  72. desc = "A special syringe gun that can synthesize syringes and reagents to go into the syringe. Fires fifteen unit syringes and will copy any reagents inserted into the internal fifteen unit storage."
  73. time_per_syringe = 30
  74. syringes_left = 6
  75. var/syringetype = "regular"
  76. var/syringecapacity = 15
  77.  
  78. /obj/item/gun/chem/advanced/Initialize()
  79. . = ..()
  80. chambered = new /obj/item/ammo_casing/chemgun/advanced(src)
  81. START_PROCESSING(SSobj, src)
  82. create_reagents(60)
  83.  
  84. /obj/item/gun/chem/advanced/Destroy()
  85. . = ..()
  86. STOP_PROCESSING(SSobj, src)
  87.  
  88. /obj/item/gun/chem/advanced/
  89.  
  90. /obj/item/gun/chem/advanced/attack_self(mob/user)
  91. switch(syringetype)
  92. if("regular")
  93. time_per_syringe = 50
  94. syringecapacity = 20
  95. syringetype = "cyro"
  96. if("cyro")
  97. time_per_syringe = 75
  98. syringecapacity = 10
  99. syringetype = "piercing"
  100. if("piercing")
  101. syringecapacity = 60
  102. syringetype = "bluespace"
  103. time_per_syringe = 150
  104. if("bluespace")
  105. syringecapacity = 15
  106. syringetype = "regular"
  107. time_per_syringe = 30
  108. to_chat(user, "You switch the syringe to synthesize to [syringetype] syringes, it will now copy up to [syringecapacity] units of reagents.")
  109.  
  110. /obj/item/gun/chem/advanced/process_chamber()
  111. if(chambered && !chambered.BB && syringes_left)
  112. chambered.newshot()
  113.  
  114. /obj/item/ammo_casing/chemgun/advanced
  115. projectile_type = /obj/item/projectile/bullet/dart/advanced
  116. firing_effect_type = null
  117.  
  118. /obj/item/ammo_casing/chemgun/advanced/ready_proj(atom/target, mob/living/user, quiet, zone_override = "")
  119. if(!BB)
  120. return
  121. if(istype(loc, /obj/item/gun/chem/advanced))
  122. var/obj/item/gun/chem/advanced/CG = loc
  123. switch(syringetype)
  124. if("regular")
  125. BB.sy = new obj/item/syringe(src)
  126. if("cyro")
  127. BB.sy = new obj/item/syringe/noreact(src)
  128. if("piercing")
  129. BB.sy = new obj/item/syringe/piercing(src)
  130. if("bluespace")
  131. BB.sy = new obj/item/syringe/bluespace(src)
  132. if(BB.sy)
  133. CG.reagents.copy_to(BB.sy, CG.syringecapacity)
  134. if(CG.syringes_left <= 0)
  135. return
  136. if(syringetype == "piercing")
  137. BB.piercing = TRUE
  138. BB.reagents.set_reacting(TRUE)
  139. if(syringetype == "cyro")
  140. BB.reagents.set_reacting(FALSE)
  141. BB.create_reagents(CG.syringecapacity)
  142. CG.reagents.copy_to(BB, CG.syringecapacity)
  143. BB.name = "chemical dart"
  144. CG.syringes_left--
  145. ..()
  146.  
  147. /obj/item/projectile/bullet/dart/advanced
  148. var/obj/item/syringe/sy
  149. damage = 0
  150.  
  151. /obj/item/projectile/bullet/dart/advanced/on_hit(atom/target, blocked = FALSE)
  152. if(blocked == 100 || iscarbon(target) || target.density)
  153. return ..()
  154. BB.sy.forceMove(get_turf(src))
  155. return
  156.  
  157. /datum/design/advancedliver
  158. name = "Advanced Cybernetic Liver Implant"
  159. desc = "A liver replacement that can also synthesize chemicals on the go."
  160. id = "advancedliver"
  161. build_type = PROTOLATHE
  162. materials = list(MAT_METAL = 2000, MAT_DIAMOND = 1500, MAT_BLUESPACE = 2000)
  163. build_path =
  164. category = list("Medical Designs")
  165. departmental_flags = DEPARTMENTAL_FLAG_MEDICAL || DEPARTMENTAL_FLAG_SCIENCE
  166.  
  167. /obj/item/organ/liver/cybernetic/upgraded/advanced //hey thats pretty good
  168. name = "advanced cybernetic liver
  169. desc = "An upgraded version of the advanced cybernetic liver, this time it can heal the body VIA synthesis of various chemicals."
  170.  
  171. /obj/item/organ/liver/cybernetic/upgraded/advanced/on_life()
  172. ..()
  173. var/mob/living/carbon/C = owner
  174.  
  175. if(istype(C))
  176. if(!(C.has_reagent("mannitol", 10)))
  177. C.add_reagent("mannitol", 10)
  178. if(!(C.has_reagent("earthsblood", 10)))
  179. C.add_reagent("earthsblood", 10)
  180. if(!(C.has_reagent("tricordrazine", 10)))
  181. C.add_reagent("tricordrazine", 10)
  182. if(!(C.has_reagent("omnizine", 5)))
  183. C.add_reagent("omnizine", 5)
  184.  
  185. /obj/item/storage/toolbox/advanced //A toolbox for holding advanced tools, used to cut down on clutter in the RnD menu, it's otherwise a regular toolbox but it contains the tools
  186.  
  187. /obj/item/storage/toolbox/advanced/PopulateContents()
  188. new /obj/item/screwdriver/abductor(src)
  189. new /obj/item/wrench/abductor(src)
  190. new /obj/item/weldingtool/abductor(src)
  191. new /obj/item/crowbar/abductor(src)
  192. new /obj/item/wirecutters/abductor(src)
  193. new /obj/item/multitool/abductor(src)
  194.  
  195. /obj/item/storage/backpack/duffelbag/med/surgery/advanced //Same as the advanced toolbox but contains the advanced versions, used for techwebs to cut down on clutter
  196. desc = "A large duffel bag for holding extra medical supplies - this one seems to be designed for holding advanced surgical tools."
  197.  
  198. /obj/item/storage/backpack/duffelbag/med/surgery/advanced/PopulateContents()
  199. new /obj/item/scalpel/abductor(src)
  200. new /obj/item/hemostat/abductor(src)
  201. new /obj/item/retractor/abductor(src)
  202. new /obj/item/circular_saw/abductor(src)
  203. new /obj/item/surgicaldrill/abductor(src)
  204. new /obj/item/cautery/abductor(src)
  205.  
  206. /datum/design/advancedtoolbox
  207. name = "Toolbox of Advanced Construction Tools"
  208. desc = "A toolbox that contains advanced construction tools."
  209. id = "advancedtoolbox" //Put into design_ids of subdermal_implants
  210. build_type = PROTOLATHE
  211. materials = list(MAT_METAL = 10000, MAT_SILVER = 5000, MAT_PLASMA = 5000, MAT_TITANIUM = 5000, MAT_DIAMOND = 5000)
  212. build_path = /obj/item/storage/toolbox/advanced
  213. category = list("Misc")
  214. departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
  215.  
  216. /datum/design/advancedduffelbag
  217. name = "Surgery Duffelbag of Advanced Surgical Tools"
  218. desc = "A duffelbag containing advanced surgical tools."
  219. id = "advancedduffelbag" //Put into design_ids of subdermal_implants
  220. build_type = PROTOLATHE
  221. materials = list(MAT_METAL = 10000, MAT_SILVER = 5000, MAT_PLASMA = 5000, MAT_TITANIUM = 5000, MAT_DIAMOND = 5000)
  222. build_path = /obj/item/storage/backpack/duffelbag/med/surgery/advanced
  223. category = list("Misc")
  224. departmental_flags = DEPARTMENTAL_FLAG_MEDICAL || DEPARTMENTAL_FLAG_SCIENCE
  225.  
  226. /datum/design/rld
  227. name = "Rapid Light Construction Device"
  228. desc = "A tool that can make multi colored flares and light structures."
  229. id = "rld"
  230. build_type = PROTOLATHE
  231. materials = list(MAT_METAL = 20000, MAT_SILVER = 1000, MAT_PLASMA = 1000, MAT_URANIUM = 1000)
  232. build_path = /obj/item/construction/rld
  233. category = list("Equipment")
  234. departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement