Merge branch 'master' into glassware
This commit is contained in:
@@ -87,9 +87,10 @@
|
||||
name = "Conveyor Belt"
|
||||
id = "conveyor_belt"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 5000)
|
||||
build_path = /obj/item/conveyor_construct
|
||||
materials = list(MAT_METAL = 3000)
|
||||
build_path = /obj/item/stack/conveyor
|
||||
category = list("initial", "Construction")
|
||||
maxstack = 30
|
||||
|
||||
/datum/design/conveyor_switch
|
||||
name = "Conveyor Belt Switch"
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
/datum/design/desttagger
|
||||
name = "Destination Tagger"
|
||||
id = "desttagger"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 250, MAT_GLASS = 125)
|
||||
build_path = /obj/item/destTagger
|
||||
category = list("initial", "Electronics")
|
||||
@@ -62,7 +62,7 @@
|
||||
/datum/design/handlabeler
|
||||
name = "Hand Labeler"
|
||||
id = "handlabel"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 150, MAT_GLASS = 125)
|
||||
build_path = /obj/item/hand_labeler
|
||||
category = list("initial", "Electronics")
|
||||
@@ -73,4 +73,4 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_GLASS = 20)
|
||||
build_path = /obj/item/stock_parts/cell/emergency_light
|
||||
category = list("initial", "Electronics")
|
||||
category = list("initial", "Electronics")
|
||||
|
||||
+33
-22
@@ -68,66 +68,74 @@
|
||||
/datum/design/scalpel
|
||||
name = "Scalpel"
|
||||
id = "scalpel"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 4000, MAT_GLASS = 1000)
|
||||
build_path = /obj/item/scalpel
|
||||
category = list("initial", "Medical")
|
||||
category = list("initial", "Medical","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/circular_saw
|
||||
name = "Circular Saw"
|
||||
id = "circular_saw"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_GLASS = 6000)
|
||||
build_path = /obj/item/circular_saw
|
||||
category = list("initial", "Medical")
|
||||
category = list("initial", "Medical","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/surgicaldrill
|
||||
name = "Surgical Drill"
|
||||
id = "surgicaldrill"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_GLASS = 6000)
|
||||
build_path = /obj/item/surgicaldrill
|
||||
category = list("initial", "Medical")
|
||||
category = list("initial", "Medical","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/retractor
|
||||
name = "Retractor"
|
||||
id = "retractor"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 6000, MAT_GLASS = 3000)
|
||||
build_path = /obj/item/retractor
|
||||
category = list("initial", "Medical")
|
||||
category = list("initial", "Medical","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/cautery
|
||||
name = "Cautery"
|
||||
id = "cautery"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 2500, MAT_GLASS = 750)
|
||||
build_path = /obj/item/cautery
|
||||
category = list("initial", "Medical")
|
||||
category = list("initial", "Medical","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/hemostat
|
||||
name = "Hemostat"
|
||||
id = "hemostat"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 2500)
|
||||
build_path = /obj/item/hemostat
|
||||
category = list("initial", "Medical")
|
||||
category = list("initial", "Medical","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/beaker
|
||||
name = "Beaker"
|
||||
id = "beaker"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_GLASS = 500)
|
||||
build_path = /obj/item/reagent_containers/glass/beaker
|
||||
category = list("initial", "Medical")
|
||||
category = list("initial", "Medical","Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/large_beaker
|
||||
name = "Large Beaker"
|
||||
id = "large_beaker"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_GLASS = 2500)
|
||||
build_path = /obj/item/reagent_containers/glass/beaker/large
|
||||
category = list("initial", "Medical")
|
||||
category = list("initial", "Medical","Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/healthanalyzer
|
||||
name = "Health Analyzer"
|
||||
@@ -141,10 +149,11 @@
|
||||
/datum/design/pillbottle
|
||||
name = "Pill Bottle"
|
||||
id = "pillbottle"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 20, MAT_GLASS = 100)
|
||||
build_path = /obj/item/storage/pill_bottle
|
||||
category = list("initial", "Medical")
|
||||
category = list("initial", "Medical","Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/syringe
|
||||
name = "Syringe"
|
||||
@@ -165,15 +174,17 @@
|
||||
/datum/design/hypovialsmall
|
||||
name = "Hypovial"
|
||||
id = "hypovial"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 500)
|
||||
build_path = /obj/item/reagent_containers/glass/bottle/vial/small
|
||||
category = list("initial","Medical")
|
||||
category = list("initial","Medical","Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/hypoviallarge
|
||||
name = "Large Hypovial"
|
||||
id = "large_hypovial"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 2500)
|
||||
build_path = /obj/item/reagent_containers/glass/bottle/vial/large
|
||||
category = list("initial","Medical")
|
||||
category = list("initial","Medical","Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
@@ -117,7 +117,7 @@
|
||||
name = "Foam Riot Dart"
|
||||
id = "riot_dart"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 1000) //Discount for making individually - no box = less metal!
|
||||
materials = list(MAT_METAL = 1125) //Discount for making individually - no box = less metal!
|
||||
build_path = /obj/item/ammo_casing/caseless/foam_dart/riot
|
||||
category = list("hacked", "Security")
|
||||
|
||||
|
||||
+24
-17
@@ -68,58 +68,65 @@
|
||||
/datum/design/pipe_painter
|
||||
name = "Pipe Painter"
|
||||
id = "pipe_painter"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 2000)
|
||||
build_path = /obj/item/pipe_painter
|
||||
category = list("initial", "Misc")
|
||||
category = list("initial", "Misc","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/airlock_painter
|
||||
name = "Airlock Painter"
|
||||
id = "airlock_painter"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 50, MAT_GLASS = 50)
|
||||
build_path = /obj/item/airlock_painter
|
||||
category = list("initial", "Misc")
|
||||
category = list("initial", "Misc","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/cultivator
|
||||
name = "Cultivator"
|
||||
id = "cultivator"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL=50)
|
||||
build_path = /obj/item/cultivator
|
||||
category = list("initial","Misc")
|
||||
category = list("initial","Misc","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/plant_analyzer
|
||||
name = "Plant Analyzer"
|
||||
id = "plant_analyzer"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 30, MAT_GLASS = 20)
|
||||
build_path = /obj/item/plant_analyzer
|
||||
category = list("initial","Misc")
|
||||
category = list("initial","Misc","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/shovel
|
||||
name = "Shovel"
|
||||
id = "shovel"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 50)
|
||||
build_path = /obj/item/shovel
|
||||
category = list("initial","Misc")
|
||||
category = list("initial","Misc","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE | DEPARTMENTAL_FLAG_CARGO
|
||||
|
||||
/datum/design/spade
|
||||
name = "Spade"
|
||||
id = "spade"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 50)
|
||||
build_path = /obj/item/shovel/spade
|
||||
category = list("initial","Misc")
|
||||
category = list("initial","Misc","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/hatchet
|
||||
name = "Hatchet"
|
||||
id = "hatchet"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 15000)
|
||||
build_path = /obj/item/hatchet
|
||||
category = list("initial","Misc")
|
||||
category = list("initial","Misc","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/recorder
|
||||
name = "Universal Recorder"
|
||||
@@ -220,10 +227,10 @@
|
||||
/datum/design/packageWrap
|
||||
name = "Package Wrapping"
|
||||
id = "packagewrap"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 200, MAT_GLASS = 200)
|
||||
build_path = /obj/item/stack/packageWrap
|
||||
category = list("initial", "Misc")
|
||||
category = list("initial", "Misc","Equipment")
|
||||
maxstack = 30
|
||||
|
||||
/datum/design/holodisk
|
||||
@@ -248,4 +255,4 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 300, MAT_GLASS = 150)
|
||||
build_path = /obj/item/key/collar
|
||||
category = list("initial", "Misc")
|
||||
category = list("initial", "Misc")
|
||||
|
||||
@@ -7,18 +7,20 @@
|
||||
/datum/design/bucket
|
||||
name = "Bucket"
|
||||
id = "bucket"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 200)
|
||||
build_path = /obj/item/reagent_containers/glass/bucket
|
||||
category = list("initial","Tools")
|
||||
category = list("initial","Tools","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/crowbar
|
||||
name = "Pocket Crowbar"
|
||||
id = "crowbar"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 50)
|
||||
build_path = /obj/item/crowbar
|
||||
category = list("initial","Tools")
|
||||
category = list("initial","Tools","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/flashlight
|
||||
name = "Flashlight"
|
||||
@@ -63,10 +65,11 @@
|
||||
/datum/design/tscanner
|
||||
name = "T-Ray Scanner"
|
||||
id = "tscanner"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 150)
|
||||
build_path = /obj/item/t_scanner
|
||||
category = list("initial","Tools")
|
||||
category = list("initial","Tools","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/weldingtool
|
||||
name = "Welding Tool"
|
||||
@@ -74,7 +77,8 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 70, MAT_GLASS = 20)
|
||||
build_path = /obj/item/weldingtool
|
||||
category = list("initial","Tools")
|
||||
category = list("initial","Tools","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/mini_weldingtool
|
||||
name = "Emergency Welding Tool"
|
||||
@@ -87,26 +91,28 @@
|
||||
/datum/design/screwdriver
|
||||
name = "Screwdriver"
|
||||
id = "screwdriver"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 75)
|
||||
build_path = /obj/item/screwdriver
|
||||
category = list("initial","Tools")
|
||||
|
||||
category = list("initial","Tools","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
|
||||
/datum/design/wirecutters
|
||||
name = "Wirecutters"
|
||||
id = "wirecutters"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 80)
|
||||
build_path = /obj/item/wirecutters
|
||||
category = list("initial","Tools")
|
||||
category = list("initial","Tools","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/wrench
|
||||
name = "Wrench"
|
||||
id = "wrench"
|
||||
build_type = AUTOLATHE
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(MAT_METAL = 150)
|
||||
build_path = /obj/item/wrench
|
||||
category = list("initial","Tools")
|
||||
category = list("initial","Tools","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/welding_helmet
|
||||
name = "Welding Helmet"
|
||||
@@ -122,8 +128,9 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 10, MAT_GLASS = 5)
|
||||
build_path = /obj/item/stack/cable_coil/random
|
||||
category = list("initial","Tools")
|
||||
category = list("initial","Tools","Tool Designs")
|
||||
maxstack = 30
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/toolbox
|
||||
name = "Toolbox"
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
materials = list(MAT_DIAMOND = 1500, MAT_PLASMA = 1500)
|
||||
build_path = /obj/item/stack/ore/bluespace_crystal/artificial
|
||||
category = list("Bluespace Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/telesci_gps
|
||||
name = "GPS Device"
|
||||
|
||||
@@ -23,6 +23,16 @@
|
||||
category = list("Electronics")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ALL
|
||||
|
||||
/datum/design/ai_cam_upgrade
|
||||
name = "AI Surveillance Software Update"
|
||||
desc = "A software package that will allow an artificial intelligence to 'hear' from its cameras via lip reading."
|
||||
id = "ai_cam_upgrade"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 5000, MAT_GOLD = 15000, MAT_SILVER = 15000, MAT_DIAMOND = 20000, MAT_PLASMA = 10000)
|
||||
build_path = /obj/item/surveillance_upgrade
|
||||
category = list("Electronics")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
///////////////////////////////////
|
||||
//////////Nanite Devices///////////
|
||||
///////////////////////////////////
|
||||
@@ -36,6 +46,16 @@
|
||||
category = list("Electronics")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/nanite_comm_remote
|
||||
name = "Nanite Communication Remote"
|
||||
desc = "Allows for the construction of a nanite communication remote."
|
||||
id = "nanite_comm_remote"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_GLASS = 500, MAT_METAL = 500)
|
||||
build_path = /obj/item/nanite_remote/comm
|
||||
category = list("Electronics")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/nanite_scanner
|
||||
name = "Nanite Scanner"
|
||||
desc = "Allows for the construction of a nanite scanner."
|
||||
|
||||
@@ -162,16 +162,6 @@
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/holobarrier_med
|
||||
name = "PENLITE holobarrier projector"
|
||||
desc = "PENLITE holobarriers, a device that halts individuals with malicious diseases."
|
||||
build_type = PROTOLATHE
|
||||
build_path = /obj/item/holosign_creator/medical
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 100) //a hint of silver since it can troll 2 antags (bad viros and sentient disease)
|
||||
id = "holobarrier_med"
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/healthanalyzer_advanced
|
||||
name = "Advanced Health Analyzer"
|
||||
desc = "A hand-held body scanner able to distinguish vital signs of the subject with high accuracy."
|
||||
@@ -182,6 +172,16 @@
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/medspray
|
||||
name = "Medical Spray"
|
||||
desc = "A medical spray bottle, designed for precision application, with an unscrewable cap."
|
||||
id = "medspray"
|
||||
build_path = /obj/item/reagent_containers/medspray
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2500, MAT_GLASS = 500)
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/medicalkit
|
||||
name = "Empty Medkit"
|
||||
desc = "A plastic medical kit for storging medical items."
|
||||
@@ -217,7 +217,7 @@
|
||||
desc = "Produce additional disks for storing genetic data."
|
||||
id = "cloning_disk"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50)
|
||||
materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER = 50)
|
||||
build_path = /obj/item/disk/data
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
@@ -238,6 +238,7 @@
|
||||
|
||||
/datum/design/defibrillator
|
||||
name = "Defibrillator"
|
||||
desc = "A portable defibrillator, used for resuscitating recently deceased crew."
|
||||
id = "defibrillator"
|
||||
build_type = PROTOLATHE
|
||||
build_path = /obj/item/defibrillator
|
||||
@@ -257,10 +258,10 @@
|
||||
|
||||
/datum/design/defib_heal
|
||||
name = "Defibrillator Healing disk"
|
||||
desc = "An upgrade which increases the healing power of the defibrillator"
|
||||
desc = "An upgrade which increases the healing power of the defibrillator."
|
||||
id = "defib_heal"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL=16000, MAT_GLASS = 18000, MAT_GOLD = 6000, MAT_SILVER = 6000)
|
||||
materials = list(MAT_METAL = 16000, MAT_GLASS = 18000, MAT_GOLD = 6000, MAT_SILVER = 6000)
|
||||
build_path = /obj/item/disk/medical/defib_heal
|
||||
construction_time = 10
|
||||
category = list("Misc")
|
||||
@@ -268,10 +269,10 @@
|
||||
|
||||
/datum/design/defib_shock
|
||||
name = "Defibrillator Anti-Shock Disk"
|
||||
desc = "A safety upgrade that guarantees only the patient will get shocked"
|
||||
desc = "A safety upgrade that guarantees only the patient will get shocked."
|
||||
id = "defib_shock"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL=16000, MAT_GLASS = 18000, MAT_GOLD = 6000, MAT_SILVER = 6000)
|
||||
materials = list(MAT_METAL = 16000, MAT_GLASS = 18000, MAT_GOLD = 6000, MAT_SILVER = 6000)
|
||||
build_path = /obj/item/disk/medical/defib_shock
|
||||
construction_time = 10
|
||||
category = list("Misc")
|
||||
@@ -279,10 +280,10 @@
|
||||
|
||||
/datum/design/defib_decay
|
||||
name = "Defibrillator Body-Decay Extender Disk"
|
||||
desc = "An upgrade allowing the defibrillator to work on more decayed bodies"
|
||||
desc = "An upgrade allowing the defibrillator to work on more decayed bodies."
|
||||
id = "defib_decay"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL=16000, MAT_GLASS = 18000, MAT_GOLD = 16000, MAT_SILVER = 6000, MAT_TITANIUM = 2000)
|
||||
materials = list(MAT_METAL = 16000, MAT_GLASS = 18000, MAT_GOLD = 16000, MAT_SILVER = 6000, MAT_TITANIUM = 2000)
|
||||
build_path = /obj/item/disk/medical/defib_decay
|
||||
construction_time = 10
|
||||
category = list("Misc")
|
||||
@@ -290,15 +291,25 @@
|
||||
|
||||
/datum/design/defib_speed
|
||||
name = "Defibrillator Fast Charge Disk"
|
||||
desc = "An upgrade to the defibrillator capacitors, which let it charge faster"
|
||||
desc = "An upgrade to the defibrillator's capacitors, which lets it charge faster."
|
||||
id = "defib_speed"
|
||||
build_type = PROTOLATHE
|
||||
build_path = /obj/item/disk/medical/defib_speed
|
||||
materials = list(MAT_METAL=16000, MAT_GLASS = 8000, MAT_GOLD = 26000, MAT_SILVER = 26000)
|
||||
materials = list(MAT_METAL = 16000, MAT_GLASS = 8000, MAT_GOLD = 26000, MAT_SILVER = 26000)
|
||||
construction_time = 10
|
||||
category = list("Misc")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/defibrillator_compact
|
||||
name = "Compact Defibrillator"
|
||||
desc = "A compact defibrillator that can be worn on a belt."
|
||||
id = "defibrillator_compact"
|
||||
build_type = PROTOLATHE
|
||||
build_path = /obj/item/defibrillator/compact
|
||||
materials = list(MAT_METAL = 16000, MAT_GLASS = 8000, MAT_SILVER = 6000, MAT_GOLD = 3000)
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/////////////////////////////////////////
|
||||
//////////Cybernetic Implants////////////
|
||||
/////////////////////////////////////////
|
||||
@@ -595,115 +606,6 @@
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/////////////////////
|
||||
//Adv Surgery Tools//
|
||||
/////////////////////
|
||||
|
||||
/datum/design/drapes
|
||||
name = "Plastic Drapes"
|
||||
desc = "A large surgery drape made of plastic."
|
||||
id = "drapes"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_PLASTIC = 2500)
|
||||
build_path = /obj/item/surgical_drapes
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/retractor_adv
|
||||
name = "Advanced Retractor"
|
||||
desc = "An almagation of rods and gears, able to function as both a surgical clamp and retractor. "
|
||||
id = "retractor_adv"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 1500, MAT_GOLD = 1000)
|
||||
build_path = /obj/item/retractor/advanced
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/surgicaldrill_adv
|
||||
name = "Surgical Laser Drill"
|
||||
desc = "It projects a high power laser used for medical applications."
|
||||
id = "surgicaldrill_adv"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2500, MAT_GLASS = 2500, MAT_SILVER = 6000, MAT_GOLD = 5500, MAT_DIAMOND = 3500)
|
||||
build_path = /obj/item/surgicaldrill/advanced
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/scalpel_adv
|
||||
name = "Laser Scalpel"
|
||||
desc = "An advanced scalpel which uses laser technology to cut."
|
||||
id = "scalpel_adv"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 1500, MAT_GLASS = 1500, MAT_SILVER = 4000, MAT_GOLD = 2500)
|
||||
build_path = /obj/item/scalpel/advanced
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
|
||||
/////////////////////////////////////////
|
||||
//////////Alien Surgery Tools////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/alienscalpel
|
||||
name = "Alien Scalpel"
|
||||
desc = "An advanced scalpel obtained through Abductor technology."
|
||||
id = "alien_scalpel"
|
||||
build_path = /obj/item/scalpel/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/alienhemostat
|
||||
name = "Alien Hemostat"
|
||||
desc = "An advanced hemostat obtained through Abductor technology."
|
||||
id = "alien_hemostat"
|
||||
build_path = /obj/item/hemostat/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/alienretractor
|
||||
name = "Alien Retractor"
|
||||
desc = "An advanced retractor obtained through Abductor technology."
|
||||
id = "alien_retractor"
|
||||
build_path = /obj/item/retractor/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/aliensaw
|
||||
name = "Alien Circular Saw"
|
||||
desc = "An advanced surgical saw obtained through Abductor technology."
|
||||
id = "alien_saw"
|
||||
build_path = /obj/item/circular_saw/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500)
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/aliendrill
|
||||
name = "Alien Drill"
|
||||
desc = "An advanced drill obtained through Abductor technology."
|
||||
id = "alien_drill"
|
||||
build_path = /obj/item/surgicaldrill/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500)
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/aliencautery
|
||||
name = "Alien Cautery"
|
||||
desc = "An advanced cautery obtained through Abductor technology."
|
||||
id = "alien_cautery"
|
||||
build_path = /obj/item/cautery/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/cybernetic_ears
|
||||
name = "Cybernetic Ears"
|
||||
desc = "A pair of cybernetic ears."
|
||||
|
||||
@@ -257,7 +257,7 @@
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/roastingstick
|
||||
name = "Advanced roasting stick"
|
||||
name = "Advanced Roasting Stick"
|
||||
desc = "A roasting stick for cooking sausages in exotic ovens."
|
||||
id = "roastingstick"
|
||||
build_type = PROTOLATHE
|
||||
@@ -267,7 +267,7 @@
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/locator
|
||||
name = "Bluespace locator"
|
||||
name = "Bluespace Locator"
|
||||
desc = "Used to track portable teleportation beacons and targets with embedded tracking implants."
|
||||
id = "locator"
|
||||
build_type = PROTOLATHE
|
||||
@@ -276,6 +276,15 @@
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/donksoft_refill
|
||||
name = "Donksoft Toy Vendor Refill"
|
||||
desc = "A refill canister for Donksoft Toy Vendors."
|
||||
id = "donksoft_refill"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 25000, MAT_GLASS = 15000, MAT_PLASMA = 20000, MAT_GOLD = 10000, MAT_SILVER = 10000)
|
||||
build_path = /obj/item/vending_refill/donksoft
|
||||
category = list("Equipment")
|
||||
|
||||
/////////////////////////////////////////
|
||||
////////////Janitor Designs//////////////
|
||||
/////////////////////////////////////////
|
||||
@@ -320,8 +329,28 @@
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/spraybottle
|
||||
name = "Spray Bottle"
|
||||
desc = "A spray bottle, with an unscrewable top."
|
||||
id = "spraybottle"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 3000, MAT_GLASS = 200)
|
||||
build_path = /obj/item/reagent_containers/spray
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/beartrap
|
||||
name = "Bear Trap"
|
||||
desc = "A trap used to catch space bears and other legged creatures."
|
||||
id = "beartrap"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_TITANIUM = 1000)
|
||||
build_path = /obj/item/restraints/legcuffs/beartrap
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/////////////////////////////////////////
|
||||
////////////Holosign Designs//////////////
|
||||
////////////Holosign Designs/////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/holosign
|
||||
@@ -384,141 +413,20 @@
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/holobarrier_med
|
||||
name = "PENLITE holobarrier projector"
|
||||
desc = "PENLITE holobarriers, a device that halts individuals with malicious diseases."
|
||||
build_type = PROTOLATHE
|
||||
build_path = /obj/item/holosign_creator/medical
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 100) //a hint of silver since it can troll 2 antags (bad viros and sentient disease)
|
||||
id = "holobarrier_med"
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
///////////////////////////////
|
||||
////////////Tools//////////////
|
||||
///////////////////////////////
|
||||
|
||||
/datum/design/rcd_upgrade/frames
|
||||
name = "RCD frames designs upgrade"
|
||||
desc = "Adds the computer frame and machine frame to the RCD."
|
||||
id = "rcd_upgrade_frames"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 1500, MAT_TITANIUM = 2000)
|
||||
build_path = /obj/item/rcd_upgrade/frames
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/rcd_upgrade/simple_circuits
|
||||
name = "RCD simple circuits designs upgrade"
|
||||
desc = "Adds the simple circuits to the RCD."
|
||||
id = "rcd_upgrade_simple_circuits"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 1500, MAT_TITANIUM = 2000)
|
||||
build_path = /obj/item/rcd_upgrade/simple_circuits
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/exwelder
|
||||
name = "Experimental Welding Tool"
|
||||
desc = "An experimental welder capable of self-fuel generation."
|
||||
id = "exwelder"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_PLASMA = 1500, MAT_URANIUM = 200)
|
||||
build_path = /obj/item/weldingtool/experimental
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/handdrill
|
||||
name = "Hand Drill"
|
||||
desc = "A small electric hand drill with an interchangeable screwdriver and bolt bit"
|
||||
id = "handdrill"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 3500, MAT_SILVER = 1500, MAT_TITANIUM = 2500)
|
||||
build_path = /obj/item/screwdriver/power
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/jawsoflife
|
||||
name = "Jaws of Life"
|
||||
desc = "A small, compact Jaws of Life with an interchangeable pry jaws and cutting jaws"
|
||||
id = "jawsoflife" // added one more requirment since the Jaws of Life are a bit OP
|
||||
build_path = /obj/item/crowbar/power
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500)
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/rcd_loaded
|
||||
name = "Rapid Construction Device"
|
||||
desc = "A tool that can construct and deconstruct walls, airlocks and floors on the fly."
|
||||
id = "rcd_loaded"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) // costs more than what it did in the autolathe, this one comes loaded.
|
||||
build_path = /obj/item/construction/rcd/loaded
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/rpd
|
||||
name = "Rapid Pipe Dispenser"
|
||||
desc = "A tool that can construct and deconstruct pipes on the fly."
|
||||
id = "rpd"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 75000, MAT_GLASS = 37500)
|
||||
build_path = /obj/item/pipe_dispenser
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/alienwrench
|
||||
name = "Alien Wrench"
|
||||
desc = "An advanced wrench obtained through Abductor technology."
|
||||
id = "alien_wrench"
|
||||
build_path = /obj/item/wrench/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/alienwirecutters
|
||||
name = "Alien Wirecutters"
|
||||
desc = "Advanced wirecutters obtained through Abductor technology."
|
||||
id = "alien_wirecutters"
|
||||
build_path = /obj/item/wirecutters/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/alienscrewdriver
|
||||
name = "Alien Screwdriver"
|
||||
desc = "An advanced screwdriver obtained through Abductor technology."
|
||||
id = "alien_screwdriver"
|
||||
build_path = /obj/item/screwdriver/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/aliencrowbar
|
||||
name = "Alien Crowbar"
|
||||
desc = "An advanced crowbar obtained through Abductor technology."
|
||||
id = "alien_crowbar"
|
||||
build_path = /obj/item/crowbar/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/alienwelder
|
||||
name = "Alien Welding Tool"
|
||||
desc = "An advanced welding tool obtained through Abductor technology."
|
||||
id = "alien_welder"
|
||||
build_path = /obj/item/weldingtool/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/alienmultitool
|
||||
name = "Alien Multitool"
|
||||
desc = "An advanced multitool obtained through Abductor technology."
|
||||
id = "alien_multitool"
|
||||
build_path = /obj/item/multitool/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/quantum_keycard
|
||||
name = "Quantum Keycard"
|
||||
desc = "Allows for the construction of a quantum keycard."
|
||||
@@ -550,7 +458,7 @@
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/////////////////////////////////////////
|
||||
////////////Armour///////////////////////
|
||||
/////////////////Armour//////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/reactive_armour
|
||||
@@ -564,7 +472,71 @@
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/////////////////////////////////////////
|
||||
////////////Meteor///////////////////////
|
||||
/////////////Security////////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/seclite
|
||||
name = "Seclite"
|
||||
desc = "A robust flashlight used by security."
|
||||
id = "seclite"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2500)
|
||||
build_path = /obj/item/flashlight/seclite
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/detective_scanner
|
||||
name = "Forensic Scanner"
|
||||
desc = "Used to remotely scan objects and biomass for DNA and fingerprints. Can print a report of the findings."
|
||||
id = "detective_scanner"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_GOLD = 2500, MAT_SILVER = 2000)
|
||||
build_path = /obj/item/detective_scanner
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/pepperspray
|
||||
name = "Pepper Spray"
|
||||
desc = "Manufactured by UhangInc, used to blind and down an opponent quickly. Printed pepper sprays do not contain reagents."
|
||||
id = "pepperspray"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 1000)
|
||||
build_path = /obj/item/reagent_containers/spray/pepper/empty
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/bola_energy
|
||||
name = "Energy Bola"
|
||||
desc = "A specialized hard-light bola designed to ensnare fleeing criminals and aid in arrests."
|
||||
id = "bola_energy"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_SILVER = 500, MAT_PLASMA = 500, MAT_TITANIUM = 500)
|
||||
build_path = /obj/item/restraints/legcuffs/bola/energy
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/zipties
|
||||
name = "Zipties"
|
||||
desc = "Plastic, disposable zipties that can be used to restrain temporarily but are destroyed after use."
|
||||
id = "zipties"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_PLASTIC = 250)
|
||||
build_path = /obj/item/restraints/handcuffs/cable/zipties
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/evidencebag
|
||||
name = "Evidence Bag"
|
||||
desc = "An empty evidence bag."
|
||||
id = "evidencebag"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_PLASTIC = 100)
|
||||
build_path = /obj/item/evidencebag
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/////////////////////////////////////////
|
||||
/////////////////Meteors/////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/meteor_defence
|
||||
|
||||
@@ -380,7 +380,7 @@
|
||||
name = "Mind Control"
|
||||
desc = "The nanites imprint an absolute directive onto the host's brain while they're active."
|
||||
id = "mindcontrol_nanites"
|
||||
program_type = /datum/nanite_program/mind_control
|
||||
program_type = /datum/nanite_program/triggered/comm/mind_control
|
||||
category = list("Weaponized Nanites")
|
||||
|
||||
////////////////////SUPPRESSION NANITES//////////////////////////////////////
|
||||
@@ -445,21 +445,35 @@
|
||||
name = "Skull Echo"
|
||||
desc = "The nanites echo a synthesized message inside the host's skull."
|
||||
id = "voice_nanites"
|
||||
program_type = /datum/nanite_program/triggered/voice
|
||||
program_type = /datum/nanite_program/triggered/comm/voice
|
||||
category = list("Suppression Nanites")
|
||||
|
||||
/datum/design/nanites/speech
|
||||
name = "Forced Speech"
|
||||
desc = "The nanites force the host to say a pre-programmed sentence when triggered."
|
||||
id = "speech_nanites"
|
||||
program_type = /datum/nanite_program/triggered/speech
|
||||
program_type = /datum/nanite_program/triggered/comm/speech
|
||||
category = list("Suppression Nanites")
|
||||
|
||||
/datum/design/nanites/hallucination
|
||||
name = "Hallucination"
|
||||
desc = "The nanites make the host see and hear things that aren't real."
|
||||
id = "hallucination_nanites"
|
||||
program_type = /datum/nanite_program/triggered/hallucination
|
||||
program_type = /datum/nanite_program/triggered/comm/hallucination
|
||||
category = list("Suppression Nanites")
|
||||
|
||||
/datum/design/nanites/good_mood
|
||||
name = "Happiness Enhancer"
|
||||
desc = "The nanites synthesize serotonin inside the host's brain, creating an artificial sense of happiness."
|
||||
id = "good_mood_nanites"
|
||||
program_type = /datum/nanite_program/good_mood
|
||||
category = list("Suppression Nanites")
|
||||
|
||||
/datum/design/nanites/bad_mood
|
||||
name = "Happiness Suppressor"
|
||||
desc = "The nanites suppress the production of serotonin inside the host's brain, creating an artificial state of depression."
|
||||
id = "bad_mood_nanites"
|
||||
program_type = /datum/nanite_program/bad_mood
|
||||
category = list("Suppression Nanites")
|
||||
|
||||
////////////////////SENSOR NANITES//////////////////////////////////////
|
||||
|
||||
@@ -68,4 +68,4 @@
|
||||
materials = list(MAT_METAL = 4000, MAT_PLASMA = 4000)
|
||||
build_path = /obj/item/stack/sheet/mineral/abductor
|
||||
category = list("Stock Parts")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE
|
||||
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
@@ -0,0 +1,246 @@
|
||||
/////////////////////////////////////////
|
||||
/////////////////Tools///////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/rcd_upgrade/frames
|
||||
name = "RCD frames designs upgrade"
|
||||
desc = "Adds the computer frame and machine frame to the RCD."
|
||||
id = "rcd_upgrade_frames"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 1500, MAT_TITANIUM = 2000)
|
||||
build_path = /obj/item/rcd_upgrade/frames
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/rcd_upgrade/simple_circuits
|
||||
name = "RCD simple circuits designs upgrade"
|
||||
desc = "Adds the simple circuits to the RCD."
|
||||
id = "rcd_upgrade_simple_circuits"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 2500, MAT_SILVER = 1500, MAT_TITANIUM = 2000)
|
||||
build_path = /obj/item/rcd_upgrade/simple_circuits
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/rcd_loaded
|
||||
name = "Rapid Construction Device"
|
||||
desc = "A tool that can construct and deconstruct walls, airlocks and floors on the fly."
|
||||
id = "rcd_loaded"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = MINERAL_MATERIAL_AMOUNT, MAT_GLASS = MINERAL_MATERIAL_AMOUNT) // costs more than what it did in the autolathe, this one comes loaded.
|
||||
build_path = /obj/item/construction/rcd/loaded
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/rpd
|
||||
name = "Rapid Pipe Dispenser"
|
||||
desc = "A tool that can construct and deconstruct pipes on the fly."
|
||||
id = "rpd"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 75000, MAT_GLASS = 37500)
|
||||
build_path = /obj/item/pipe_dispenser
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/handdrill
|
||||
name = "Hand Drill"
|
||||
desc = "A small electric hand drill with an interchangeable screwdriver and bolt bit"
|
||||
id = "handdrill"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 3500, MAT_SILVER = 1500, MAT_TITANIUM = 2500)
|
||||
build_path = /obj/item/screwdriver/power
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/jawsoflife
|
||||
name = "Jaws of Life"
|
||||
desc = "A small, compact Jaws of Life with an interchangeable pry jaws and cutting jaws"
|
||||
id = "jawsoflife" // added one more requirment since the Jaws of Life are a bit OP
|
||||
build_path = /obj/item/crowbar/power
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/exwelder
|
||||
name = "Experimental Welding Tool"
|
||||
desc = "An experimental welder capable of self-fuel generation."
|
||||
id = "exwelder"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_PLASMA = 1500, MAT_URANIUM = 200)
|
||||
build_path = /obj/item/weldingtool/experimental
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/////////////////////////////////////////
|
||||
//////////////Alien Tools////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/alienwrench
|
||||
name = "Alien Wrench"
|
||||
desc = "An advanced wrench obtained through Abductor technology."
|
||||
id = "alien_wrench"
|
||||
build_path = /obj/item/wrench/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/alienwirecutters
|
||||
name = "Alien Wirecutters"
|
||||
desc = "Advanced wirecutters obtained through Abductor technology."
|
||||
id = "alien_wirecutters"
|
||||
build_path = /obj/item/wirecutters/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/alienscrewdriver
|
||||
name = "Alien Screwdriver"
|
||||
desc = "An advanced screwdriver obtained through Abductor technology."
|
||||
id = "alien_screwdriver"
|
||||
build_path = /obj/item/screwdriver/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/aliencrowbar
|
||||
name = "Alien Crowbar"
|
||||
desc = "An advanced crowbar obtained through Abductor technology."
|
||||
id = "alien_crowbar"
|
||||
build_path = /obj/item/crowbar/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/alienwelder
|
||||
name = "Alien Welding Tool"
|
||||
desc = "An advanced welding tool obtained through Abductor technology."
|
||||
id = "alien_welder"
|
||||
build_path = /obj/item/weldingtool/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/alienmultitool
|
||||
name = "Alien Multitool"
|
||||
desc = "An advanced multitool obtained through Abductor technology."
|
||||
id = "alien_multitool"
|
||||
build_path = /obj/item/multitool/abductor
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_SILVER = 2500, MAT_PLASMA = 5000, MAT_TITANIUM = 2000, MAT_DIAMOND = 2000)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/////////////////////////////////////////
|
||||
/////////Alien Surgical Tools////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/alienscalpel
|
||||
name = "Alien Scalpel"
|
||||
desc = "An advanced scalpel obtained through Abductor technology."
|
||||
id = "alien_scalpel"
|
||||
build_path = /obj/item/scalpel/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/alienhemostat
|
||||
name = "Alien Hemostat"
|
||||
desc = "An advanced hemostat obtained through Abductor technology."
|
||||
id = "alien_hemostat"
|
||||
build_path = /obj/item/hemostat/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/alienretractor
|
||||
name = "Alien Retractor"
|
||||
desc = "An advanced retractor obtained through Abductor technology."
|
||||
id = "alien_retractor"
|
||||
build_path = /obj/item/retractor/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/aliensaw
|
||||
name = "Alien Circular Saw"
|
||||
desc = "An advanced surgical saw obtained through Abductor technology."
|
||||
id = "alien_saw"
|
||||
build_path = /obj/item/circular_saw/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/aliendrill
|
||||
name = "Alien Drill"
|
||||
desc = "An advanced drill obtained through Abductor technology."
|
||||
id = "alien_drill"
|
||||
build_path = /obj/item/surgicaldrill/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/aliencautery
|
||||
name = "Alien Cautery"
|
||||
desc = "An advanced cautery obtained through Abductor technology."
|
||||
id = "alien_cautery"
|
||||
build_path = /obj/item/cautery/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
|
||||
//////////////////////
|
||||
//Adv. Surgery Tools//
|
||||
//////////////////////
|
||||
|
||||
/datum/design/drapes
|
||||
name = "Plastic Drapes"
|
||||
desc = "A large surgery drape made of plastic."
|
||||
id = "drapes"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_PLASTIC = 2500)
|
||||
build_path = /obj/item/surgical_drapes
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/retractor_adv
|
||||
name = "Advanced Retractor"
|
||||
desc = "An almagation of rods and gears, able to function as both a surgical clamp and retractor. "
|
||||
id = "retractor_adv"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 1500, MAT_GOLD = 1000)
|
||||
build_path = /obj/item/retractor/advanced
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/surgicaldrill_adv
|
||||
name = "Surgical Laser Drill"
|
||||
desc = "It projects a high power laser used for medical applications."
|
||||
id = "surgicaldrill_adv"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2500, MAT_GLASS = 2500, MAT_SILVER = 6000, MAT_GOLD = 5500, MAT_DIAMOND = 3500)
|
||||
build_path = /obj/item/surgicaldrill/advanced
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/scalpel_adv
|
||||
name = "Laser Scalpel"
|
||||
desc = "An advanced scalpel which uses laser technology to cut."
|
||||
id = "scalpel_adv"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 1500, MAT_GLASS = 1500, MAT_SILVER = 4000, MAT_GOLD = 2500)
|
||||
build_path = /obj/item/scalpel/advanced
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL | DEPARTMENTAL_FLAG_SCIENCE
|
||||
@@ -82,6 +82,11 @@
|
||||
for(var/obj/item/stock_parts/micro_laser/M in component_parts)
|
||||
badThingCoeff += M.rating
|
||||
|
||||
/obj/machinery/rnd/experimentor/examine(mob/user)
|
||||
. = ..()
|
||||
if(in_range(user, src) || isobserver(user))
|
||||
. += "<span class='notice'>The status display reads: Malfunction probability reduced by <b>[badThingCoeff]%</b>.<br>Cooldown interval between experiments at <b>[resetTime*0.1]</b> seconds.</span>"
|
||||
|
||||
/obj/machinery/rnd/experimentor/proc/checkCircumstances(obj/item/O)
|
||||
//snowflake check to only take "made" bombs
|
||||
if(istype(O, /obj/item/transfer_valve))
|
||||
|
||||
@@ -73,6 +73,12 @@
|
||||
total_rating = max(1, total_rating)
|
||||
efficiency_coeff = total_rating
|
||||
|
||||
/obj/machinery/rnd/production/examine(mob/user)
|
||||
. = ..()
|
||||
var/datum/component/remote_materials/materials = GetComponent(/datum/component/remote_materials)
|
||||
if(in_range(user, src) || isobserver(user))
|
||||
. += "<span class='notice'>The status display reads: Storing up to <b>[materials.local_size]</b> material units locally.<br>Material usage efficiency at <b>[efficiency_coeff*100]%</b>.</span>"
|
||||
|
||||
//we eject the materials upon deconstruction.
|
||||
/obj/machinery/rnd/production/on_deconstruction()
|
||||
for(var/obj/item/reagent_containers/glass/G in component_parts)
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
"Bluespace Designs",
|
||||
"Stock Parts",
|
||||
"Equipment",
|
||||
"Tool Designs",
|
||||
"Mining Designs",
|
||||
"Electronics",
|
||||
"Weapons",
|
||||
@@ -21,4 +22,4 @@
|
||||
|
||||
/obj/machinery/rnd/production/protolathe/disconnect_console()
|
||||
linked_console.linked_lathe = null
|
||||
..()
|
||||
..()
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
"Bluespace Designs",
|
||||
"Stock Parts",
|
||||
"Equipment",
|
||||
"Tool Designs",
|
||||
"Mining Designs",
|
||||
"Electronics",
|
||||
"Weapons",
|
||||
@@ -31,4 +32,4 @@
|
||||
production_animation = "protolathe_n"
|
||||
requires_console = FALSE
|
||||
consoleless_interface = TRUE
|
||||
allowed_buildtypes = PROTOLATHE | IMPRINTER
|
||||
allowed_buildtypes = PROTOLATHE | IMPRINTER
|
||||
|
||||
@@ -29,6 +29,11 @@
|
||||
for(var/obj/item/stock_parts/scanning_module/P in component_parts)
|
||||
scan_level += P.rating
|
||||
|
||||
/obj/machinery/nanite_chamber/examine(mob/user)
|
||||
. = ..()
|
||||
if(in_range(user, src) || isobserver(user))
|
||||
. += "<span class='notice'>The status display reads: Scanning module has been upgraded to level <b>[scan_level]</b>.</span>"
|
||||
|
||||
/obj/machinery/nanite_chamber/proc/set_busy(status, message, working_icon)
|
||||
busy = status
|
||||
busy_message = message
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
/datum/nanite_program/regenerative
|
||||
name = "Accelerated Regeneration"
|
||||
desc = "The nanites boost the host's natural regeneration, increasing their healing speed. Does not consume nanites if the host is unharmed."
|
||||
use_rate = 2.5
|
||||
use_rate = 0.5
|
||||
rogue_types = list(/datum/nanite_program/necrotic)
|
||||
|
||||
/datum/nanite_program/regenerative/check_conditions()
|
||||
@@ -23,11 +23,11 @@
|
||||
if(!parts.len)
|
||||
return
|
||||
for(var/obj/item/bodypart/L in parts)
|
||||
if(L.heal_damage(1/parts.len, 1/parts.len))
|
||||
if(L.heal_damage(0.5/parts.len, 0.5/parts.len, null, BODYPART_ORGANIC))
|
||||
host_mob.update_damage_overlays()
|
||||
else
|
||||
host_mob.adjustBruteLoss(-1, TRUE)
|
||||
host_mob.adjustFireLoss(-1, TRUE)
|
||||
host_mob.adjustBruteLoss(-0.5, TRUE)
|
||||
host_mob.adjustFireLoss(-0.5, TRUE)
|
||||
|
||||
/datum/nanite_program/temperature
|
||||
name = "Temperature Adjustment"
|
||||
@@ -112,7 +112,7 @@
|
||||
/datum/nanite_program/repairing
|
||||
name = "Mechanical Repair"
|
||||
desc = "The nanites fix damage in the host's mechanical limbs."
|
||||
use_rate = 0.5 //much more efficient than organic healing
|
||||
use_rate = 0.5
|
||||
rogue_types = list(/datum/nanite_program/necrotic)
|
||||
|
||||
/datum/nanite_program/repairing/check_conditions()
|
||||
@@ -137,13 +137,13 @@
|
||||
return
|
||||
var/update = FALSE
|
||||
for(var/obj/item/bodypart/L in parts)
|
||||
if(L.heal_damage(1/parts.len, 1/parts.len, only_robotic = TRUE, only_organic = FALSE))
|
||||
if(L.heal_damage(1.5/parts.len, 1.5/parts.len, null, BODYPART_ROBOTIC)) //much faster than organic healing
|
||||
update = TRUE
|
||||
if(update)
|
||||
host_mob.update_damage_overlays()
|
||||
else
|
||||
host_mob.adjustBruteLoss(-1, TRUE)
|
||||
host_mob.adjustFireLoss(-1, TRUE)
|
||||
host_mob.adjustBruteLoss(-1.5, TRUE)
|
||||
host_mob.adjustFireLoss(-1.5, TRUE)
|
||||
|
||||
/datum/nanite_program/purging_advanced
|
||||
name = "Selective Blood Purification"
|
||||
|
||||
@@ -114,7 +114,19 @@
|
||||
. = ..()
|
||||
host_mob.cure_fakedeath("nanites")
|
||||
|
||||
/datum/nanite_program/triggered/speech
|
||||
//Can receive transmissions from a nanite communication remote for customized messages
|
||||
/datum/nanite_program/triggered/comm
|
||||
var/comm_code = 0
|
||||
var/comm_message = ""
|
||||
|
||||
/datum/nanite_program/triggered/comm/proc/receive_comm_signal(signal_comm_code, comm_message, comm_source)
|
||||
if(!activated || !comm_code)
|
||||
return
|
||||
if(signal_comm_code == comm_code)
|
||||
host_mob.investigate_log("'s [name] nanite program was messaged by [comm_source] with comm code [signal_comm_code] and message '[comm_message]'.", INVESTIGATE_NANITES)
|
||||
trigger(comm_message)
|
||||
|
||||
/datum/nanite_program/triggered/comm/speech
|
||||
name = "Forced Speech"
|
||||
desc = "The nanites force the host to say a pre-programmed sentence when triggered."
|
||||
unique = FALSE
|
||||
@@ -122,10 +134,10 @@
|
||||
trigger_cooldown = 20
|
||||
rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay)
|
||||
|
||||
extra_settings = list("Sentence")
|
||||
extra_settings = list("Sentence","Comm Code")
|
||||
var/sentence = ""
|
||||
|
||||
/datum/nanite_program/triggered/speech/set_extra_setting(user, setting)
|
||||
/datum/nanite_program/triggered/comm/speech/set_extra_setting(user, setting)
|
||||
if(setting == "Sentence")
|
||||
var/new_sentence = stripped_input(user, "Choose the sentence that the host will be forced to say.", "Sentence", sentence, MAX_MESSAGE_LEN)
|
||||
if(!new_sentence)
|
||||
@@ -133,23 +145,34 @@
|
||||
if(copytext(new_sentence, 1, 2) == "*") //emotes are abusable, like surrender
|
||||
return
|
||||
sentence = new_sentence
|
||||
if(setting == "Comm Code")
|
||||
var/new_code = input(user, "Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num
|
||||
if(isnull(new_code))
|
||||
return
|
||||
comm_code = CLAMP(round(new_code, 1), 0, 9999)
|
||||
|
||||
/datum/nanite_program/triggered/speech/get_extra_setting(setting)
|
||||
/datum/nanite_program/triggered/comm/speech/get_extra_setting(setting)
|
||||
if(setting == "Sentence")
|
||||
return sentence
|
||||
if(setting == "Comm Code")
|
||||
return comm_code
|
||||
|
||||
/datum/nanite_program/triggered/speech/copy_extra_settings_to(datum/nanite_program/triggered/speech/target)
|
||||
/datum/nanite_program/triggered/comm/speech/copy_extra_settings_to(datum/nanite_program/triggered/comm/speech/target)
|
||||
target.sentence = sentence
|
||||
target.comm_code = comm_code
|
||||
|
||||
/datum/nanite_program/triggered/speech/trigger()
|
||||
/datum/nanite_program/triggered/comm/speech/trigger(comm_message)
|
||||
if(!..())
|
||||
return
|
||||
var/sent_message = comm_message
|
||||
if(!comm_message)
|
||||
sent_message = sentence
|
||||
if(host_mob.stat == DEAD)
|
||||
return
|
||||
to_chat(host_mob, "<span class='warning'>You feel compelled to speak...</span>")
|
||||
host_mob.say(sentence, forced = "nanite speech")
|
||||
host_mob.say(sent_message, forced = "nanite speech")
|
||||
|
||||
/datum/nanite_program/triggered/voice
|
||||
/datum/nanite_program/triggered/comm/voice
|
||||
name = "Skull Echo"
|
||||
desc = "The nanites echo a synthesized message inside the host's skull."
|
||||
unique = FALSE
|
||||
@@ -157,44 +180,62 @@
|
||||
trigger_cooldown = 20
|
||||
rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay)
|
||||
|
||||
extra_settings = list("Message")
|
||||
extra_settings = list("Message","Comm Code")
|
||||
var/message = ""
|
||||
|
||||
/datum/nanite_program/triggered/voice/set_extra_setting(user, setting)
|
||||
/datum/nanite_program/triggered/comm/voice/set_extra_setting(user, setting)
|
||||
if(setting == "Message")
|
||||
var/new_message = stripped_input(user, "Choose the message sent to the host.", "Message", message, MAX_MESSAGE_LEN)
|
||||
if(!new_message)
|
||||
return
|
||||
message = new_message
|
||||
if(setting == "Comm Code")
|
||||
var/new_code = input(user, "Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num
|
||||
if(isnull(new_code))
|
||||
return
|
||||
comm_code = CLAMP(round(new_code, 1), 0, 9999)
|
||||
|
||||
/datum/nanite_program/triggered/voice/get_extra_setting(setting)
|
||||
/datum/nanite_program/triggered/comm/voice/get_extra_setting(setting)
|
||||
if(setting == "Message")
|
||||
return message
|
||||
if(setting == "Comm Code")
|
||||
return comm_code
|
||||
|
||||
/datum/nanite_program/triggered/voice/copy_extra_settings_to(datum/nanite_program/triggered/voice/target)
|
||||
/datum/nanite_program/triggered/comm/voice/copy_extra_settings_to(datum/nanite_program/triggered/comm/voice/target)
|
||||
target.message = message
|
||||
target.comm_code = comm_code
|
||||
|
||||
/datum/nanite_program/triggered/voice/trigger()
|
||||
/datum/nanite_program/triggered/comm/voice/trigger(comm_message)
|
||||
if(!..())
|
||||
return
|
||||
var/sent_message = comm_message
|
||||
if(!comm_message)
|
||||
sent_message = message
|
||||
if(host_mob.stat == DEAD)
|
||||
return
|
||||
to_chat(host_mob, "<i>You hear a strange, robotic voice in your head...</i> \"<span class='robot'>[message]</span>\"")
|
||||
to_chat(host_mob, "<i>You hear a strange, robotic voice in your head...</i> \"<span class='robot'>[sent_message]</span>\"")
|
||||
|
||||
/datum/nanite_program/triggered/hallucination
|
||||
/datum/nanite_program/triggered/comm/hallucination
|
||||
name = "Hallucination"
|
||||
desc = "The nanites make the host hallucinate something when triggered."
|
||||
trigger_cost = 4
|
||||
trigger_cooldown = 80
|
||||
unique = FALSE
|
||||
rogue_types = list(/datum/nanite_program/brain_misfire)
|
||||
extra_settings = list("Hallucination Type")
|
||||
extra_settings = list("Hallucination Type", "Comm Code")
|
||||
var/hal_type
|
||||
var/hal_details
|
||||
|
||||
/datum/nanite_program/triggered/hallucination/trigger()
|
||||
/datum/nanite_program/triggered/comm/hallucination/trigger(comm_message)
|
||||
if(!..())
|
||||
return
|
||||
|
||||
if(comm_message && (hal_type != "Message")) //Triggered via comm remote, but not set to a message hallucination
|
||||
return
|
||||
var/sent_message = comm_message //Comm remotes can send custom hallucination messages for the chat hallucination
|
||||
if(!sent_message)
|
||||
sent_message = hal_details
|
||||
|
||||
if(!iscarbon(host_mob))
|
||||
return
|
||||
var/mob/living/carbon/C = host_mob
|
||||
@@ -203,7 +244,7 @@
|
||||
else
|
||||
switch(hal_type)
|
||||
if("Message")
|
||||
new /datum/hallucination/chat(C, TRUE, null, hal_details)
|
||||
new /datum/hallucination/chat(C, TRUE, null, sent_message)
|
||||
if("Battle")
|
||||
new /datum/hallucination/battle(C, TRUE, hal_details)
|
||||
if("Sound")
|
||||
@@ -223,7 +264,13 @@
|
||||
if("Plasma Flood")
|
||||
new /datum/hallucination/fake_flood(C, TRUE)
|
||||
|
||||
/datum/nanite_program/triggered/hallucination/set_extra_setting(user, setting)
|
||||
/datum/nanite_program/triggered/comm/hallucination/set_extra_setting(user, setting)
|
||||
if(setting == "Comm Code")
|
||||
var/new_code = input(user, "(Only for Message) Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num
|
||||
if(isnull(new_code))
|
||||
return
|
||||
comm_code = CLAMP(round(new_code, 1), 0, 9999)
|
||||
|
||||
if(setting == "Hallucination Type")
|
||||
var/list/possible_hallucinations = list("Random","Message","Battle","Sound","Weird Sound","Station Message","Health","Alert","Fire","Shock","Plasma Flood")
|
||||
var/hal_type_choice = input("Choose the hallucination type", name) as null|anything in possible_hallucinations
|
||||
@@ -299,13 +346,76 @@
|
||||
if("Plasma Flood")
|
||||
hal_type = "Plasma Flood"
|
||||
|
||||
/datum/nanite_program/triggered/hallucination/get_extra_setting(setting)
|
||||
/datum/nanite_program/triggered/comm/hallucination/get_extra_setting(setting)
|
||||
if(setting == "Hallucination Type")
|
||||
if(!hal_type)
|
||||
return "Random"
|
||||
else
|
||||
return hal_type
|
||||
if(setting == "Comm Code")
|
||||
return comm_code
|
||||
|
||||
/datum/nanite_program/triggered/hallucination/copy_extra_settings_to(datum/nanite_program/triggered/hallucination/target)
|
||||
/datum/nanite_program/triggered/comm/hallucination/copy_extra_settings_to(datum/nanite_program/triggered/comm/hallucination/target)
|
||||
target.hal_type = hal_type
|
||||
target.hal_details = hal_details
|
||||
target.hal_details = hal_details
|
||||
target.comm_code = comm_code
|
||||
|
||||
/datum/nanite_program/good_mood
|
||||
name = "Happiness Enhancer"
|
||||
desc = "The nanites synthesize serotonin inside the host's brain, creating an artificial sense of happiness."
|
||||
use_rate = 0.1
|
||||
rogue_types = list(/datum/nanite_program/brain_decay)
|
||||
extra_settings = list("Mood Message")
|
||||
var/message = "HAPPINESS ENHANCEMENT"
|
||||
|
||||
/datum/nanite_program/good_mood/set_extra_setting(user, setting)
|
||||
if(setting == "Mood Message")
|
||||
var/new_message = stripped_input(user, "Choose the message visible on the mood effect.", "Message", message, MAX_NAME_LEN)
|
||||
if(!new_message)
|
||||
return
|
||||
message = new_message
|
||||
|
||||
/datum/nanite_program/good_mood/get_extra_setting(setting)
|
||||
if(setting == "Mood Message")
|
||||
return message
|
||||
|
||||
/datum/nanite_program/good_mood/copy_extra_settings_to(datum/nanite_program/good_mood/target)
|
||||
target.message = message
|
||||
|
||||
/datum/nanite_program/good_mood/enable_passive_effect()
|
||||
. = ..()
|
||||
SEND_SIGNAL(host_mob, COMSIG_ADD_MOOD_EVENT, "nanite_happy", /datum/mood_event/nanite_happiness, message)
|
||||
|
||||
/datum/nanite_program/good_mood/disable_passive_effect()
|
||||
. = ..()
|
||||
SEND_SIGNAL(host_mob, COMSIG_CLEAR_MOOD_EVENT, "nanite_happy")
|
||||
|
||||
/datum/nanite_program/bad_mood
|
||||
name = "Happiness Suppressor"
|
||||
desc = "The nanites suppress the production of serotonin inside the host's brain, creating an artificial state of depression."
|
||||
use_rate = 0.1
|
||||
rogue_types = list(/datum/nanite_program/brain_decay)
|
||||
extra_settings = list("Mood Message")
|
||||
var/message = "HAPPINESS SUPPRESSION"
|
||||
|
||||
/datum/nanite_program/bad_mood/set_extra_setting(user, setting)
|
||||
if(setting == "Mood Message")
|
||||
var/new_message = stripped_input(user, "Choose the message visible on the mood effect.", "Message", message, MAX_NAME_LEN)
|
||||
if(!new_message)
|
||||
return
|
||||
message = new_message
|
||||
|
||||
/datum/nanite_program/bad_mood/get_extra_setting(setting)
|
||||
if(setting == "Mood Message")
|
||||
return message
|
||||
|
||||
/datum/nanite_program/bad_mood/copy_extra_settings_to(datum/nanite_program/bad_mood/target)
|
||||
target.message = message
|
||||
|
||||
/datum/nanite_program/bad_mood/enable_passive_effect()
|
||||
. = ..()
|
||||
SEND_SIGNAL(host_mob, COMSIG_ADD_MOOD_EVENT, "nanite_sadness", /datum/mood_event/nanite_sadness, message)
|
||||
|
||||
/datum/nanite_program/bad_mood/disable_passive_effect()
|
||||
. = ..()
|
||||
SEND_SIGNAL(host_mob, COMSIG_CLEAR_MOOD_EVENT, "nanite_sadness")
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
rogue_types = list(/datum/nanite_program/toxic)
|
||||
extra_settings = list("Program Overwrite","Cloud Overwrite")
|
||||
|
||||
var/pulse_cooldown = 0
|
||||
var/sync_programs = TRUE
|
||||
var/sync_overwrite = FALSE
|
||||
var/overwrite_cloud = FALSE
|
||||
@@ -67,12 +68,16 @@
|
||||
target.sync_overwrite = sync_overwrite
|
||||
|
||||
/datum/nanite_program/viral/active_effect()
|
||||
if(world.time < pulse_cooldown)
|
||||
return
|
||||
for(var/mob/M in orange(host_mob, 5))
|
||||
if(prob(5))
|
||||
if(sync_programs)
|
||||
SEND_SIGNAL(M, COMSIG_NANITE_SYNC, nanites, sync_overwrite)
|
||||
if(overwrite_cloud)
|
||||
SEND_SIGNAL(M, COMSIG_NANITE_SET_CLOUD, set_cloud)
|
||||
if(SEND_SIGNAL(M, COMSIG_NANITE_IS_STEALTHY))
|
||||
continue
|
||||
if(sync_programs)
|
||||
SEND_SIGNAL(M, COMSIG_NANITE_SYNC, nanites, sync_overwrite)
|
||||
if(overwrite_cloud)
|
||||
SEND_SIGNAL(M, COMSIG_NANITE_SET_CLOUD, set_cloud)
|
||||
pulse_cooldown = world.time + 75
|
||||
|
||||
/datum/nanite_program/monitoring
|
||||
name = "Monitoring"
|
||||
@@ -197,6 +202,15 @@
|
||||
return
|
||||
SEND_SIGNAL(host_mob, COMSIG_NANITE_SIGNAL, code, source)
|
||||
|
||||
/datum/nanite_program/relay/proc/relay_comm_signal(comm_code, relay_code, comm_message)
|
||||
if(!activated)
|
||||
return
|
||||
if(!host_mob)
|
||||
return
|
||||
if(relay_code != relay_channel)
|
||||
return
|
||||
SEND_SIGNAL(host_mob, COMSIG_NANITE_COMM_SIGNAL, comm_code, comm_message)
|
||||
|
||||
/datum/nanite_program/metabolic_synthesis
|
||||
name = "Metabolic Synthesis"
|
||||
desc = "The nanites use the metabolic cycle of the host to speed up their replication rate, using their extra nutrition as fuel."
|
||||
@@ -206,7 +220,7 @@
|
||||
if(!iscarbon(host_mob))
|
||||
return FALSE
|
||||
var/mob/living/carbon/C = host_mob
|
||||
if(C.nutrition <= NUTRITION_LEVEL_STARVING)
|
||||
if(C.nutrition <= NUTRITION_LEVEL_FED)
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
@@ -248,26 +262,27 @@
|
||||
resulting in an extremely infective strain of nanites."
|
||||
use_rate = 1.50
|
||||
rogue_types = list(/datum/nanite_program/aggressive_replication, /datum/nanite_program/necrotic)
|
||||
var/spread_cooldown = 0
|
||||
|
||||
/datum/nanite_program/spreading/active_effect()
|
||||
if(prob(10))
|
||||
var/list/mob/living/target_hosts = list()
|
||||
var/turf/T = get_turf(host_mob)
|
||||
for(var/mob/living/L in range(5, host_mob))
|
||||
if(!(MOB_ORGANIC in L.mob_biotypes) && !(MOB_UNDEAD in L.mob_biotypes))
|
||||
continue
|
||||
if(!disease_air_spread_walk(T, get_turf(L)))
|
||||
continue
|
||||
target_hosts += L
|
||||
target_hosts -= host_mob
|
||||
if(!target_hosts.len)
|
||||
return
|
||||
var/mob/living/infectee = pick(target_hosts)
|
||||
if(prob(100 - (infectee.get_permeability_protection() * 100)))
|
||||
//this will potentially take over existing nanites!
|
||||
infectee.AddComponent(/datum/component/nanites, 10)
|
||||
SEND_SIGNAL(infectee, COMSIG_NANITE_SYNC, nanites)
|
||||
infectee.investigate_log("[key_name(infectee)] was infected by spreading nanites by [key_name(host_mob)]", INVESTIGATE_NANITES)
|
||||
if(spread_cooldown < world.time)
|
||||
return
|
||||
spread_cooldown = world.time + 50
|
||||
var/list/mob/living/target_hosts = list()
|
||||
for(var/mob/living/L in oview(5, host_mob))
|
||||
if(!prob(25))
|
||||
continue
|
||||
if(!(L.mob_biotypes & (MOB_ORGANIC|MOB_UNDEAD)))
|
||||
continue
|
||||
target_hosts += L
|
||||
if(!target_hosts.len)
|
||||
return
|
||||
var/mob/living/infectee = pick(target_hosts)
|
||||
if(prob(100 - (infectee.get_permeability_protection() * 100)))
|
||||
//this will potentially take over existing nanites!
|
||||
infectee.AddComponent(/datum/component/nanites, 10)
|
||||
SEND_SIGNAL(infectee, COMSIG_NANITE_SYNC, nanites)
|
||||
infectee.investigate_log("was infected by spreading nanites by [key_name(host_mob)] at [AREACOORD(infectee)].", INVESTIGATE_NANITES)
|
||||
|
||||
/datum/nanite_program/mitosis
|
||||
name = "Mitosis"
|
||||
|
||||
@@ -160,40 +160,55 @@
|
||||
/datum/nanite_program/cryo/active_effect()
|
||||
host_mob.adjust_bodytemperature(-rand(15,25), 50)
|
||||
|
||||
/datum/nanite_program/mind_control
|
||||
/datum/nanite_program/triggered/comm/mind_control
|
||||
name = "Mind Control"
|
||||
desc = "The nanites imprint an absolute directive onto the host's brain while they're active."
|
||||
use_rate = 3
|
||||
desc = "The nanites imprint an absolute directive onto the host's brain for one minute when triggered."
|
||||
trigger_cost = 30
|
||||
trigger_cooldown = 1800
|
||||
rogue_types = list(/datum/nanite_program/brain_decay, /datum/nanite_program/brain_misfire)
|
||||
|
||||
extra_settings = list("Directive")
|
||||
var/cooldown = 0 //avoids spam when nanites are running low
|
||||
extra_settings = list("Directive","Comm Code")
|
||||
var/directive = "..."
|
||||
|
||||
/datum/nanite_program/mind_control/set_extra_setting(user, setting)
|
||||
/datum/nanite_program/triggered/comm/mind_control/set_extra_setting(user, setting)
|
||||
if(setting == "Directive")
|
||||
var/new_directive = stripped_input(user, "Choose the directive to imprint with mind control.", "Directive", directive, MAX_MESSAGE_LEN)
|
||||
if(!new_directive)
|
||||
return
|
||||
directive = new_directive
|
||||
if(setting == "Comm Code")
|
||||
var/new_code = input(user, "Set the communication code (1-9999) or set to 0 to disable external signals.", name, null) as null|num
|
||||
if(isnull(new_code))
|
||||
return
|
||||
comm_code = CLAMP(round(new_code, 1), 0, 9999)
|
||||
|
||||
/datum/nanite_program/mind_control/get_extra_setting(setting)
|
||||
/datum/nanite_program/triggered/comm/mind_control/get_extra_setting(setting)
|
||||
if(setting == "Directive")
|
||||
return directive
|
||||
if(setting == "Comm Code")
|
||||
return comm_code
|
||||
|
||||
/datum/nanite_program/mind_control/copy_extra_settings_to(datum/nanite_program/mind_control/target)
|
||||
/datum/nanite_program/triggered/comm/mind_control/copy_extra_settings_to(datum/nanite_program/triggered/comm/mind_control/target)
|
||||
target.directive = directive
|
||||
target.comm_code = comm_code
|
||||
|
||||
/datum/nanite_program/mind_control/enable_passive_effect()
|
||||
if(world.time < cooldown)
|
||||
/datum/nanite_program/triggered/comm/mind_control/trigger(comm_message)
|
||||
if(!..())
|
||||
return
|
||||
. = ..()
|
||||
brainwash(host_mob, directive)
|
||||
if(host_mob.stat == DEAD)
|
||||
return
|
||||
var/sent_directive = comm_message
|
||||
if(!comm_message)
|
||||
sent_directive = directive
|
||||
brainwash(host_mob, sent_directive)
|
||||
log_game("A mind control nanite program brainwashed [key_name(host_mob)] with the objective '[directive]'.")
|
||||
addtimer(CALLBACK(src, .proc/end_brainwashing), 600)
|
||||
|
||||
/datum/nanite_program/mind_control/disable_passive_effect()
|
||||
. = ..()
|
||||
/datum/nanite_program/triggered/comm/mind_control/proc/end_brainwashing()
|
||||
if(host_mob.mind && host_mob.mind.has_antag_datum(/datum/antagonist/brainwashed))
|
||||
host_mob.mind.remove_antag_datum(/datum/antagonist/brainwashed)
|
||||
log_game("[key_name(host_mob)] is no longer brainwashed by nanites.")
|
||||
cooldown = world.time + 450
|
||||
|
||||
/datum/nanite_program/triggered/comm/mind_control/disable_passive_effect()
|
||||
. = ..()
|
||||
end_brainwashing()
|
||||
|
||||
@@ -168,6 +168,109 @@
|
||||
. = TRUE
|
||||
|
||||
|
||||
/obj/item/nanite_remote/comm
|
||||
name = "nanite communication remote"
|
||||
desc = "A device that can send text messages to specific programs."
|
||||
icon_state = "nanite_comm_remote"
|
||||
var/comm_code = 0
|
||||
var/comm_message = ""
|
||||
|
||||
/obj/item/nanite_remote/comm/afterattack(atom/target, mob/user, etc)
|
||||
switch(mode)
|
||||
if(REMOTE_MODE_OFF)
|
||||
return
|
||||
if(REMOTE_MODE_SELF)
|
||||
to_chat(user, "<span class='notice'>You activate [src], signaling the nanites in your bloodstream.<span>")
|
||||
signal_mob(user, comm_code, comm_message)
|
||||
if(REMOTE_MODE_TARGET)
|
||||
if(isliving(target) && (get_dist(target, get_turf(src)) <= 7))
|
||||
to_chat(user, "<span class='notice'>You activate [src], signaling the nanites inside [target].<span>")
|
||||
signal_mob(target, code, comm_message, key_name(user))
|
||||
if(REMOTE_MODE_AOE)
|
||||
to_chat(user, "<span class='notice'>You activate [src], signaling the nanites inside every host around you.<span>")
|
||||
for(var/mob/living/L in view(user, 7))
|
||||
signal_mob(L, code, comm_message, key_name(user))
|
||||
if(REMOTE_MODE_RELAY)
|
||||
to_chat(user, "<span class='notice'>You activate [src], signaling all connected relay nanites.<span>")
|
||||
signal_relay(code, relay_code, comm_message, key_name(user))
|
||||
|
||||
/obj/item/nanite_remote/comm/signal_mob(mob/living/M, code, source)
|
||||
SEND_SIGNAL(M, COMSIG_NANITE_COMM_SIGNAL, comm_code, comm_message)
|
||||
|
||||
/obj/item/nanite_remote/comm/signal_relay(code, relay_code, source)
|
||||
for(var/X in SSnanites.nanite_relays)
|
||||
var/datum/nanite_program/relay/N = X
|
||||
N.relay_comm_signal(comm_code, relay_code, comm_message)
|
||||
|
||||
/obj/item/nanite_remote/comm/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = FALSE, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.hands_state)
|
||||
SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "nanite_comm_remote", name, 420, 800, master_ui, state)
|
||||
ui.open()
|
||||
|
||||
/obj/item/nanite_remote/comm/ui_data()
|
||||
var/list/data = list()
|
||||
data["comm_code"] = comm_code
|
||||
data["relay_code"] = relay_code
|
||||
data["comm_message"] = comm_message
|
||||
data["mode"] = mode
|
||||
data["locked"] = locked
|
||||
data["saved_settings"] = saved_settings
|
||||
|
||||
return data
|
||||
|
||||
/obj/item/nanite_remote/comm/ui_act(action, params)
|
||||
if(..())
|
||||
return
|
||||
switch(action)
|
||||
if("set_comm_code")
|
||||
if(locked)
|
||||
return
|
||||
var/new_code = input("Set comm code (0000-9999):", name, code) as null|num
|
||||
if(!isnull(new_code))
|
||||
new_code = CLAMP(round(new_code, 1),0,9999)
|
||||
comm_code = new_code
|
||||
. = TRUE
|
||||
if("set_message")
|
||||
if(locked)
|
||||
return
|
||||
var/new_message = stripped_input(usr, "Set the message (Max 300 characters):", "Set Message", null , 300)
|
||||
if(!new_message)
|
||||
return
|
||||
comm_message = new_message
|
||||
. = TRUE
|
||||
if("comm_save")
|
||||
if(locked)
|
||||
return
|
||||
var/code_name = stripped_input(usr, "Set the setting name", "Set Name", null , 15)
|
||||
if(!code_name)
|
||||
return
|
||||
var/new_save = list()
|
||||
new_save["id"] = last_id + 1
|
||||
last_id++
|
||||
new_save["name"] = code_name
|
||||
new_save["code"] = comm_code
|
||||
new_save["mode"] = mode
|
||||
new_save["relay_code"] = relay_code
|
||||
new_save["message"] = comm_message
|
||||
|
||||
saved_settings += list(new_save)
|
||||
. = TRUE
|
||||
if("comm_load")
|
||||
var/code_id = params["save_id"]
|
||||
var/list/setting
|
||||
for(var/list/X in saved_settings)
|
||||
if(X["id"] == text2num(code_id))
|
||||
setting = X
|
||||
break
|
||||
if(setting)
|
||||
comm_code = setting["code"]
|
||||
mode = setting["mode"]
|
||||
relay_code = setting["relay_code"]
|
||||
comm_message = setting["message"]
|
||||
. = TRUE
|
||||
|
||||
|
||||
#undef REMOTE_MODE_OFF
|
||||
#undef REMOTE_MODE_SELF
|
||||
#undef REMOTE_MODE_TARGET
|
||||
|
||||
@@ -142,4 +142,10 @@
|
||||
program_type = /datum/nanite_program/researchplus
|
||||
|
||||
/obj/item/disk/nanite_program/reduced_diagnostics
|
||||
program_type = /datum/nanite_program/reduced_diagnostics
|
||||
program_type = /datum/nanite_program/reduced_diagnostics
|
||||
|
||||
/obj/item/disk/nanite_program/good_mood
|
||||
program_type = /datum/nanite_program/good_mood
|
||||
|
||||
/obj/item/disk/nanite_program/bad_mood
|
||||
program_type = /datum/nanite_program/bad_mood
|
||||
|
||||
@@ -8,9 +8,9 @@
|
||||
display_name = "Basic Research Technology"
|
||||
description = "NT default research technologies."
|
||||
// Default research tech, prevents bricking
|
||||
design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani",
|
||||
design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "desttagger", "handlabel", "packagewrap",
|
||||
"destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab",
|
||||
"space_heater", "xlarge_beaker", "sec_beanbag", "sec_rshot", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38", "sec_38lethal",
|
||||
"space_heater", "beaker", "large_beaker", "bucket", "xlarge_beaker", "sec_beanbag", "sec_rshot", "sec_bshot", "sec_slug", "sec_Islug", "sec_dart", "sec_38", "sec_38lethal",
|
||||
"rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass")
|
||||
|
||||
/datum/techweb_node/mmi
|
||||
@@ -71,7 +71,7 @@
|
||||
display_name = "Biological Technology"
|
||||
description = "What makes us tick." //the MC, silly!
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv")
|
||||
design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv", "medspray")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
export_price = 5000
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
display_name = "Advanced Biotechnology"
|
||||
description = "Advanced Biotechnology"
|
||||
prereq_ids = list("biotech")
|
||||
design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "defibrillator", "meta_beaker", "healthanalyzer_advanced","harvester","holobarrier_med","smartdartgun","medicinalsmartdart", "pHmeter")
|
||||
design_ids = list("piercesyringe", "crewpinpointer", "smoke_machine", "plasmarefiller", "limbgrower", "meta_beaker", "healthanalyzer_advanced", "harvester", "holobarrier_med", "defibrillator_compact", "smartdartgun", "medicinalsmartdart", "pHmeter")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
export_price = 5000
|
||||
|
||||
@@ -595,6 +595,15 @@
|
||||
export_price = 5000
|
||||
|
||||
////////////////////////Tools////////////////////////
|
||||
/datum/techweb_node/basic_tools
|
||||
id = "basic_tools"
|
||||
display_name = "Basic Tools"
|
||||
description = "Basic mechanical, electronic, surgical and botanical tools."
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500)
|
||||
export_price = 5000
|
||||
|
||||
/datum/techweb_node/basic_mining
|
||||
id = "basic_mining"
|
||||
display_name = "Mining Technology"
|
||||
@@ -618,7 +627,7 @@
|
||||
display_name = "Advanced Sanitation Technology"
|
||||
description = "Clean things better, faster, stronger, and harder!"
|
||||
prereq_ids = list("adv_engi")
|
||||
design_ids = list("advmop", "buffer", "light_replacer")
|
||||
design_ids = list("advmop", "buffer", "light_replacer", "spraybottle", "beartrap")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 1750) // No longer has its bag
|
||||
export_price = 5000
|
||||
|
||||
@@ -640,6 +649,15 @@
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2750)
|
||||
export_price = 5000
|
||||
|
||||
/datum/techweb_node/sec_basic
|
||||
id = "sec_basic"
|
||||
display_name = "Basic Security Equipment"
|
||||
description = "Standard equipment used by security."
|
||||
design_ids = list("seclite", "pepperspray", "bola_energy", "zipties", "evidencebag")
|
||||
prereq_ids = list("base")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 750)
|
||||
export_price = 5000
|
||||
|
||||
/////////////////////////weaponry tech/////////////////////////
|
||||
/datum/techweb_node/weaponry
|
||||
id = "weaponry"
|
||||
@@ -958,7 +976,7 @@
|
||||
display_name = "Basic Nanite Programming"
|
||||
description = "The basics of nanite construction and programming."
|
||||
prereq_ids = list("datatheory","robotics")
|
||||
design_ids = list("nanite_disk","nanite_remote","nanite_scanner",\
|
||||
design_ids = list("nanite_disk","nanite_remote","nanite_comm_remote","nanite_scanner",\
|
||||
"nanite_chamber","public_nanite_chamber","nanite_chamber_control","nanite_programmer","nanite_program_hub","nanite_cloud_control",\
|
||||
"relay_nanites", "monitoring_nanites", "access_nanites", "repairing_nanites","sensor_nanite_volume", "repeater_nanites", "relay_repeater_nanites","red_diag_nanites")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
@@ -997,7 +1015,7 @@
|
||||
display_name = "Neural Nanite Programming"
|
||||
description = "Nanite programs affecting nerves and brain matter."
|
||||
prereq_ids = list("nanite_bio")
|
||||
design_ids = list("nervous_nanites", "brainheal_nanites", "paralyzing_nanites", "stun_nanites", "selfscan_nanites")
|
||||
design_ids = list("nervous_nanites", "brainheal_nanites", "paralyzing_nanites", "stun_nanites", "selfscan_nanites","good_mood_nanites","bad_mood_nanites")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
export_price = 5000
|
||||
|
||||
@@ -1081,7 +1099,7 @@
|
||||
display_name = "Illegal Technology"
|
||||
description = "Dangerous research used to create dangerous objects."
|
||||
prereq_ids = list("adv_engi", "adv_weaponry", "explosive_weapons")
|
||||
design_ids = list("decloner", "borg_syndicate_module", "suppressor", "largecrossbow", "donksofttoyvendor", "syndiesleeper")
|
||||
design_ids = list("decloner", "borg_syndicate_module", "ai_cam_upgrade", "suppressor", "largecrossbow", "donksofttoyvendor", "donksoft_refill", "syndiesleeper")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000)
|
||||
export_price = 5000
|
||||
hidden = TRUE
|
||||
@@ -1099,7 +1117,7 @@
|
||||
id = "advanced_illegal_ballistics"
|
||||
display_name = "Advanced Non-Standard Ballistics"
|
||||
description = "Ballistic ammunition for non-standard firearms. Usually the ones you don't have nor want to be involved with."
|
||||
design_ids = list("10mm","10mmap","10mminc","10mmhp","sl357","pistolm9mm","m45","bolt_clip")
|
||||
design_ids = list("10mm","10mmap","10mminc","10mmhp","sl357","sl357ap","pistolm9mm","m45","bolt_clip")
|
||||
prereq_ids = list("ballistic_weapons","syndicate_basic","explosive_weapons")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 25000) //This gives sec lethal mags/clips for guns from traitors, space, or anything in between.
|
||||
export_price = 7000
|
||||
|
||||
Reference in New Issue
Block a user