mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-23 03:57:13 +01:00
Merge remote-tracking branch 'upstream/master' into multivis
# Conflicts: # .travis.yml # _maps/map_files/MetaStation/z2.dmm # _maps/map_files/cyberiad/z2.dmm # code/game/atoms_movable.dm # code/game/machinery/camera/camera.dm # code/modules/mob/living/silicon/ai/ai.dm # code/modules/mob/living/silicon/ai/freelook/eye.dm
This commit is contained in:
@@ -8,7 +8,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
|
||||
name = "Circuit Imprinter"
|
||||
desc = "Manufactures circuit boards for the construction of machines."
|
||||
icon_state = "circuit_imprinter"
|
||||
flags = OPENCONTAINER
|
||||
container_type = OPENCONTAINER
|
||||
|
||||
var/efficiency_coeff
|
||||
|
||||
|
||||
@@ -543,14 +543,22 @@
|
||||
build_path = /obj/item/assembly/timer
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/voice_analyser
|
||||
name = "Voice Analyser"
|
||||
id = "voice_analyser"
|
||||
/datum/design/voice_analyzer
|
||||
name = "Voice Analyzer"
|
||||
id = "voice_analyzer"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 50)
|
||||
build_path = /obj/item/assembly/voice
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/noise_analyser
|
||||
name = "Noise Analyser"
|
||||
id = "Noise_analyser"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 100, MAT_GLASS = 10)
|
||||
build_path = /obj/item/assembly/voice/noise
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/light_tube
|
||||
name = "Light Tube"
|
||||
id = "light_tube"
|
||||
@@ -591,6 +599,14 @@
|
||||
build_path = /obj/item/reagent_containers/syringe
|
||||
category = list("initial", "Medical")
|
||||
|
||||
/datum/design/safety_hypo
|
||||
name = "Medical Hypospray"
|
||||
id = "safetyhypo"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
|
||||
build_path = /obj/item/reagent_containers/hypospray/safety
|
||||
category = list("initial", "Medical")
|
||||
|
||||
/datum/design/prox_sensor
|
||||
name = "Proximity Sensor"
|
||||
id = "prox_sensor"
|
||||
@@ -800,6 +816,14 @@
|
||||
build_path = /obj/item/conveyor_switch_construct
|
||||
category = list("initial", "Construction")
|
||||
|
||||
/datum/design/conveyor_belt_placer
|
||||
name = "Conveyor Belt Placer"
|
||||
id = "conveyor_belt_placer"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 1000) //This thing doesn't need to be very resource-intensive as the belts are already expensive
|
||||
build_path = /obj/item/storage/conveyor
|
||||
category = list("initial", "Construction")
|
||||
|
||||
/datum/design/laptop
|
||||
name = "Laptop Frame"
|
||||
id = "laptop"
|
||||
@@ -832,38 +856,6 @@
|
||||
build_path = /obj/item/videocam
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/canvas
|
||||
name = "11px by 11px Canvas"
|
||||
id = "canvas"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 50)
|
||||
build_path = /obj/item/canvas
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/canvas/nineteenXnineteen
|
||||
name = "19px by 19px Canvas"
|
||||
id = "canvas19x19"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 50)
|
||||
build_path = /obj/item/canvas/nineteenXnineteen
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/canvas/twentythreeXnineteen
|
||||
name = "23px by 19px Canvas"
|
||||
id = "canvas23x19"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 70)
|
||||
build_path = /obj/item/canvas/twentythreeXnineteen
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/canvas/twentythreeXtwentythree
|
||||
name = "23px by 23px Canvas"
|
||||
id = "canvas23x23"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 100)
|
||||
build_path = /obj/item/canvas/twentythreeXtwentythree
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
/datum/design/logic_board
|
||||
name = "Logic Circuit"
|
||||
id = "logic_board"
|
||||
@@ -888,4 +880,4 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_GLASS = 2500) //1.25 glass sheets, broken mirrors will return a shard (1 sheet)
|
||||
build_path = /obj/item/mounted/mirror
|
||||
category = list("initial", "Miscellaneous")
|
||||
category = list("initial", "Miscellaneous")
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
req_tech = list("bluespace" = 3, "materials" = 6, "plasmatech" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_DIAMOND = 1500, MAT_PLASMA = 1500)
|
||||
build_path = /obj/item/ore/bluespace_crystal/artificial
|
||||
build_path = /obj/item/stack/ore/bluespace_crystal/artificial
|
||||
category = list("Bluespace")
|
||||
|
||||
/datum/design/bag_holding
|
||||
@@ -51,13 +51,23 @@
|
||||
build_path = /obj/item/storage/bag/ore/holding
|
||||
category = list("Bluespace")
|
||||
|
||||
/datum/design/bluespace_belt_holder
|
||||
name = "Bluespace Conveyor Belt Placer"
|
||||
desc = "This device facilitates the rapid deployment of conveyor belts. This one is powered by bluespace."
|
||||
id = "bluespace_belt_holder"
|
||||
req_tech = list("materials" = 1, "engineering" = 3, "bluespace" = 3)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 1000, MAT_SILVER = 500) //Costs similar materials to the basic one, but this one needs silver
|
||||
build_path = /obj/item/storage/conveyor/bluespace
|
||||
category = list("Bluespace")
|
||||
|
||||
/datum/design/telepad_beacon
|
||||
name = "Telepad Beacon"
|
||||
desc = "Use to warp in a cargo telepad."
|
||||
id = "telepad_beacon"
|
||||
req_tech = list("programming" = 5, "bluespace" = 4, "engineering" = 4, "plasmatech" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list (MAT_METAL = 2000, MAT_GLASS = 1750, MAT_SILVER = 500)
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1750, MAT_SILVER = 500)
|
||||
build_path = /obj/item/telepad_beacon
|
||||
category = list("Bluespace")
|
||||
|
||||
@@ -67,6 +77,6 @@
|
||||
id = "beacon"
|
||||
req_tech = list("bluespace" = 1)
|
||||
build_type = PROTOLATHE
|
||||
materials = list (MAT_METAL = 150, MAT_GLASS = 100)
|
||||
materials = list(MAT_METAL = 150, MAT_GLASS = 100)
|
||||
build_path = /obj/item/radio/beacon
|
||||
category = list("Bluespace")
|
||||
|
||||
@@ -272,6 +272,16 @@
|
||||
build_path = /obj/item/circuitboard/mechfab
|
||||
category = list("Research Machinery")
|
||||
|
||||
/datum/design/podfab
|
||||
name = "Machine Board (Spacepod Fabricator)"
|
||||
desc = "The circuit board for an Spacepod Fabricator"
|
||||
id = "podfab"
|
||||
req_tech = list("programming" = 3, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000)
|
||||
build_path = /obj/item/circuitboard/podfab
|
||||
category = list("Research Machinery")
|
||||
|
||||
/datum/design/mech_recharger
|
||||
name = "Machine Board (Mech Bay Recharger)"
|
||||
desc = "The circuit board for a Mech Bay Recharger."
|
||||
|
||||
@@ -653,6 +653,15 @@
|
||||
construction_time = 200
|
||||
category = list("Exosuit Equipment")
|
||||
|
||||
/datum/design/medical_jaw
|
||||
name = "Exosuit Medical Equipment (Rescue Jaw)"
|
||||
id = "mech_medical_jaw"
|
||||
build_type = MECHFAB
|
||||
req_tech = list("materials" = 4, "engineering" = 6, "magnets" = 6) //now same as jaws of life
|
||||
materials = list(MAT_METAL=5000,MAT_SILVER=2000,MAT_TITANIUM=1500)
|
||||
construction_time = 200
|
||||
category = list("Exosuit Equipment")
|
||||
|
||||
/datum/design/mech_generator
|
||||
name = "Exosuit Equipment (Plasma Generator)"
|
||||
id = "mech_generator"
|
||||
@@ -1120,6 +1129,15 @@
|
||||
construction_time = 350
|
||||
category = list("Misc")
|
||||
|
||||
/datum/design/integrated_robotic_chassis
|
||||
name = "Integrated Robotic Chassis"
|
||||
id = "integrated_robotic_chassis"
|
||||
build_type = MECHFAB
|
||||
build_path = /mob/living/carbon/human/machine/created
|
||||
materials = list(MAT_METAL = 40000)
|
||||
construction_time = 400
|
||||
category = list("Misc")
|
||||
|
||||
/datum/design/ipc_cell
|
||||
name = "IPC Microbattery"
|
||||
id = "ipc_cell"
|
||||
|
||||
@@ -103,26 +103,26 @@
|
||||
build_path = /obj/item/mass_spectrometer
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/posibrain
|
||||
name = "Positronic Brain"
|
||||
desc = "The latest in Artificial Intelligences."
|
||||
id = "mmi_posi"
|
||||
/datum/design/robotic_brain
|
||||
name = "Robotic Brain"
|
||||
desc = "The latest in non-sentient Artificial Intelligences."
|
||||
id = "mmi_robotic"
|
||||
req_tech = list("programming" = 5, "biotech" = 4, "plasmatech" = 3)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 1700, MAT_GLASS = 1350, MAT_GOLD = 500) //Gold, because SWAG.
|
||||
construction_time = 75
|
||||
build_path = /obj/item/mmi/posibrain
|
||||
build_path = /obj/item/mmi/robotic_brain
|
||||
category = list("Misc","Medical")
|
||||
|
||||
/datum/design/mmi_radio
|
||||
name = "Radio-Enabled Man-Machine Interface"
|
||||
desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity. This one comes with a built-in radio."
|
||||
id = "mmi_radio"
|
||||
/datum/design/mmi_radio_upgrade
|
||||
name = "Man-Machine Interface Radio Upgrade"
|
||||
desc = "Enables radio capability on MMIs when either installed directly on the MMI, or through a cyborg's chassis."
|
||||
id = "mmi_radio_upgrade"
|
||||
req_tech = list("programming" = 3, "biotech" = 2, "engineering" = 2)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 1200, MAT_GLASS = 500)
|
||||
construction_time = 75
|
||||
build_path = /obj/item/mmi/radio_enabled
|
||||
materials = list(MAT_METAL = 200)
|
||||
construction_time = 50
|
||||
build_path = /obj/item/mmi_radio_upgrade
|
||||
category = list("Misc","Medical")
|
||||
|
||||
/datum/design/nanopaste
|
||||
@@ -181,7 +181,7 @@
|
||||
id = "scalpel_manager"
|
||||
req_tech = list("biotech" = 4, "materials" = 7, "magnets" = 5, "programming" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list (MAT_METAL = 2000, MAT_GLASS = 1500, MAT_SILVER = 1000, MAT_GOLD = 1000, MAT_DIAMOND = 1000)
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_SILVER = 1000, MAT_GOLD = 1000, MAT_DIAMOND = 1000)
|
||||
build_path = /obj/item/scalpel/laser/manager
|
||||
category = list("Medical")
|
||||
|
||||
@@ -245,6 +245,36 @@
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/alienbonegel
|
||||
name = "Alien Bone Gel"
|
||||
desc = "Advanced bone gel obtained through Abductor technology."
|
||||
id = "alien_bonegel"
|
||||
req_tech = list("biotech" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/bonegel/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/alienbonesetter
|
||||
name = "Alien Bone Setter"
|
||||
desc = "An advanced bone setter obtained through Abductor technology."
|
||||
id = "alien_bonesetter"
|
||||
req_tech = list("biotech" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/bonesetter/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/alienfixovein
|
||||
name = "Alien FixOVein"
|
||||
desc = "An advanced FixOVein obtained through Abductor technology."
|
||||
id = "alien_fixovein"
|
||||
req_tech = list("biotech" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/FixOVein/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical")
|
||||
|
||||
/////////////////////////////////////////
|
||||
//////////Cybernetic Implants////////////
|
||||
/////////////////////////////////////////
|
||||
@@ -271,17 +301,39 @@
|
||||
build_path = /obj/item/organ/internal/cyberimp/mouth/breathing_tube
|
||||
category = list("Misc", "Medical")
|
||||
|
||||
/datum/design/cyberimp_surgical
|
||||
name = "Surgical Arm Implant"
|
||||
desc = "A set of surgical tools hidden behind a concealed panel on the user's arm."
|
||||
id = "ci-surgey"
|
||||
req_tech = list("materials" = 3, "engineering" = 3, "biotech" = 3, "programming" = 2, "magnets" = 3)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500)
|
||||
construction_time = 200
|
||||
build_path = /obj/item/organ/internal/cyberimp/arm/surgery
|
||||
category = list("Misc", "Medical")
|
||||
|
||||
/datum/design/cyberimp_toolset
|
||||
name = "Toolset Arm Implant"
|
||||
desc = "A stripped-down version of engineering cyborg toolset, designed to be installed on subject's arm."
|
||||
id = "ci-toolset"
|
||||
req_tech = list("materials" = 3, "engineering" = 4, "biotech" = 4, "powerstorage" = 4)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list (MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500)
|
||||
materials = list(MAT_METAL = 2500, MAT_GLASS = 1500, MAT_SILVER = 1500)
|
||||
construction_time = 200
|
||||
build_path = /obj/item/organ/internal/cyberimp/arm/toolset
|
||||
category = list("Misc", "Medical")
|
||||
|
||||
/datum/design/cyberimp_diagnostic_hud
|
||||
name = "Diagnostic HUD implant"
|
||||
desc = "These cybernetic eye implants will display a diagnostic HUD over everything you see. Wiggle eyes to control."
|
||||
id = "ci-diaghud"
|
||||
req_tech = list("materials" = 5, "engineering" = 4, "programming" = 4, "biotech" = 4)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
construction_time = 50
|
||||
materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_SILVER = 500, MAT_GOLD = 500)
|
||||
build_path = /obj/item/organ/internal/cyberimp/eyes/hud/diagnostic
|
||||
category = list("Misc", "Medical")
|
||||
|
||||
/datum/design/cyberimp_medical_hud
|
||||
name = "Medical HUD implant"
|
||||
desc = "These cybernetic eyes will display a medical HUD over everything you see. Wiggle eyes to control."
|
||||
@@ -304,6 +356,17 @@
|
||||
build_path = /obj/item/organ/internal/cyberimp/eyes/hud/security
|
||||
category = list("Misc", "Medical")
|
||||
|
||||
/datum/design/cyberimp_meson
|
||||
name = "Meson scanner implant"
|
||||
desc = "These cybernetic eyes will allow you to see the structural layout of the station, and, well, everything else."
|
||||
id = "ci-mesonhud"
|
||||
req_tech = list("materials" = 4, "biotech" = 4, "engineering" = 4)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
construction_time = 50
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500, MAT_GOLD = 300)
|
||||
build_path = /obj/item/organ/internal/cyberimp/eyes/meson
|
||||
category = list("Misc", "Medical")
|
||||
|
||||
/datum/design/cyberimp_xray
|
||||
name = "X-Ray implant"
|
||||
desc = "These cybernetic eyes will give you X-ray vision. Blinking is futile."
|
||||
@@ -435,3 +498,65 @@
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
|
||||
build_path = /obj/item/implantcase/track
|
||||
category = list("Medical")
|
||||
|
||||
//Cybernetic organs
|
||||
|
||||
/datum/design/cybernetic_eyes
|
||||
name = "Cybernetic Eyes"
|
||||
desc = "A cybernetic pair of eyes"
|
||||
id = "cybernetic_eyes"
|
||||
req_tech = list("biotech" = 4, "materials" = 4)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
|
||||
build_path = /obj/item/organ/internal/eyes/cybernetic
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/cybernetic_liver
|
||||
name = "Cybernetic Liver"
|
||||
desc = "A cybernetic liver"
|
||||
id = "cybernetic_liver"
|
||||
req_tech = list("biotech" = 4, "materials" = 4)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
|
||||
build_path = /obj/item/organ/internal/liver/cybernetic
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/cybernetic_kidneys
|
||||
name = "Cybernetic Kidneys"
|
||||
desc = "A cybernetic pair of kidneys"
|
||||
id = "cybernetic_kidneys"
|
||||
req_tech = list("biotech" = 4, "materials" = 4)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
|
||||
build_path = /obj/item/organ/internal/kidneys/cybernetic
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/cybernetic_heart
|
||||
name = "Cybernetic Heart"
|
||||
desc = "A cybernetic heart"
|
||||
id = "cybernetic_heart"
|
||||
req_tech = list("biotech" = 4, "materials" = 4)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
|
||||
build_path = /obj/item/organ/internal/heart/cybernetic
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/cybernetic_lungs
|
||||
name = "Cybernetic Lungs"
|
||||
desc = "A pair of cybernetic lungs."
|
||||
id = "cybernetic_lungs"
|
||||
req_tech = list("biotech" = 4, "materials" = 4)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500)
|
||||
build_path = /obj/item/organ/internal/lungs/cybernetic
|
||||
category = list("Medical")
|
||||
|
||||
/datum/design/cybernetic_lungs_u
|
||||
name = "Upgraded Cybernetic Lungs"
|
||||
desc = "A pair of upgraded cybernetic lungs."
|
||||
id = "cybernetic_lungs_u"
|
||||
req_tech = list("biotech" = 5, "materials" = 5, "engineering" = 5)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_SILVER = 500)
|
||||
build_path = /obj/item/organ/internal/lungs/cybernetic/upgraded
|
||||
category = list("Medical")
|
||||
|
||||
@@ -60,3 +60,23 @@
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 300)
|
||||
build_path = /obj/item/camera/digital
|
||||
category = list("Miscellaneous")
|
||||
|
||||
/datum/design/safety_muzzle
|
||||
name = "Safety Muzzle"
|
||||
desc = "Produce a lockable muzzle keyed to security ID cards"
|
||||
id = "safetymuzzle"
|
||||
req_tech = list("materials" = 1)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL=500, MAT_GLASS=50)
|
||||
build_path = /obj/item/clothing/mask/muzzle/safety
|
||||
category = list("Miscellaneous")
|
||||
|
||||
/datum/design/shock_muzzle
|
||||
name = "Shock Muzzle"
|
||||
desc = "Produce a modified safety muzzle that includes an electric shock pack and a slot for a trigger assembly."
|
||||
id = "shockmuzzle"
|
||||
req_tech = list("materials" = 1, "engineering" = 1)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL=500, MAT_GLASS=50)
|
||||
build_path = /obj/item/clothing/mask/muzzle/safety/shock
|
||||
category = list("Miscellaneous")
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
icon_state = "h_lathe"
|
||||
density = 1
|
||||
anchored = 1
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
var/recentlyExperimented = 0
|
||||
var/mob/trackedIan
|
||||
var/mob/trackedRuntime
|
||||
@@ -89,8 +89,8 @@
|
||||
component_parts += new /obj/item/stock_parts/micro_laser(src)
|
||||
component_parts += new /obj/item/stock_parts/micro_laser(src)
|
||||
spawn(1)
|
||||
trackedIan = locate(/mob/living/simple_animal/pet/corgi/Ian) in mob_list
|
||||
trackedRuntime = locate(/mob/living/simple_animal/pet/cat/Runtime) in mob_list
|
||||
trackedIan = locate(/mob/living/simple_animal/pet/corgi/Ian) in GLOB.mob_list
|
||||
trackedRuntime = locate(/mob/living/simple_animal/pet/cat/Runtime) in GLOB.mob_list
|
||||
SetTypeReactions()
|
||||
RefreshParts()
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ var/global/list/obj/machinery/message_server/message_servers = list()
|
||||
name = "Messaging Server"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 100
|
||||
|
||||
@@ -199,7 +199,7 @@ var/obj/machinery/blackbox_recorder/blackbox
|
||||
name = "Blackbox Recorder"
|
||||
density = 1
|
||||
anchored = 1.0
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 100
|
||||
var/list/messages = list() //Stores messages of non-standard frequencies
|
||||
@@ -267,7 +267,7 @@ var/obj/machinery/blackbox_recorder/blackbox
|
||||
var/pda_msg_amt = 0
|
||||
var/rc_msg_amt = 0
|
||||
|
||||
for(var/obj/machinery/message_server/MS in machines)
|
||||
for(var/obj/machinery/message_server/MS in GLOB.machines)
|
||||
if(MS.pda_msgs.len > pda_msg_amt)
|
||||
pda_msg_amt = MS.pda_msgs.len
|
||||
if(MS.rc_msgs.len > rc_msg_amt)
|
||||
@@ -377,4 +377,4 @@ proc/feedback_add_details(var/variable,var/details)
|
||||
|
||||
if(!FV) return
|
||||
|
||||
FV.add_details(details)
|
||||
FV.add_details(details)
|
||||
|
||||
@@ -11,7 +11,7 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
name = "Protolathe"
|
||||
desc = "Converts raw materials into useful objects."
|
||||
icon_state = "protolathe"
|
||||
flags = OPENCONTAINER
|
||||
container_type = OPENCONTAINER
|
||||
|
||||
var/efficiency_coeff
|
||||
|
||||
|
||||
@@ -426,7 +426,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
var/key = usr.key //so we don't lose the info during the spawn delay
|
||||
if(!(being_built.build_type & PROTOLATHE))
|
||||
g2g = 0
|
||||
message_admins("Protolathe exploit attempted by [key_name(usr, usr.client)]!")
|
||||
message_admins("Protolathe exploit attempted by [key_name(usr, TRUE)]!")
|
||||
|
||||
if(g2g) //If input is incorrect, nothing happens
|
||||
var/new_coeff = coeff * being_built.lathe_time_factor
|
||||
@@ -502,7 +502,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
power = max(2000, power)
|
||||
if(!(being_built.build_type & IMPRINTER))
|
||||
g2g = 0
|
||||
message_admins("Circuit imprinter exploit attempted by [key_name(usr, usr.client)]!")
|
||||
message_admins("Circuit imprinter exploit attempted by [key_name(usr, TRUE)]!")
|
||||
|
||||
if(g2g) //Again, if input is wrong, do nothing
|
||||
add_wait_message("Imprinting Circuit. Please Wait...", IMPRINTER_DELAY)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
icon = 'icons/obj/machines/research.dmi'
|
||||
density = 1
|
||||
anchored = 1
|
||||
use_power = 1
|
||||
use_power = IDLE_POWER_USE
|
||||
var/busy = 0
|
||||
var/hacked = 0
|
||||
var/disabled = 0
|
||||
@@ -22,7 +22,7 @@
|
||||
/obj/machinery/r_n_d/New()
|
||||
materials = AddComponent(/datum/component/material_container,
|
||||
list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TRANQUILLITE, MAT_TITANIUM, MAT_BLUESPACE, MAT_PLASTIC), 0,
|
||||
FALSE, list(/obj/item/stack, /obj/item/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert))
|
||||
FALSE, list(/obj/item/stack, /obj/item/stack/ore/bluespace_crystal), CALLBACK(src, .proc/is_insertion_ready), CALLBACK(src, .proc/AfterMaterialInsert))
|
||||
materials.precise_insertion = TRUE
|
||||
..()
|
||||
wires["Red"] = 0
|
||||
@@ -43,15 +43,15 @@
|
||||
if(shocked)
|
||||
shock(user,50)
|
||||
if(panel_open)
|
||||
var/dat as text
|
||||
var/list/dat = list()
|
||||
dat += "[src.name] Wires:<BR>"
|
||||
for(var/wire in src.wires)
|
||||
dat += text("[wire] Wire: <A href='?src=[UID()];wire=[wire];cut=1'>[src.wires[wire] ? "Mend" : "Cut"]</A> <A href='?src=[UID()];wire=[wire];pulse=1'>Pulse</A><BR>")
|
||||
for(var/wire in wires)
|
||||
dat += "[wire] Wire: <A href='?src=[UID()];wire=[wire];cut=1'>[src.wires[wire] ? "Mend" : "Cut"]</A> <A href='?src=[UID()];wire=[wire];pulse=1'>Pulse</A><BR>"
|
||||
|
||||
dat += text("The red light is [src.disabled ? "off" : "on"].<BR>")
|
||||
dat += text("The green light is [src.shocked ? "off" : "on"].<BR>")
|
||||
dat += text("The blue light is [src.hacked ? "off" : "on"].<BR>")
|
||||
user << browse("<HTML><HEAD><TITLE>[src.name] Hacking</TITLE></HEAD><BODY>[dat]</BODY></HTML>","window=hack_win")
|
||||
dat += "The red light is [src.disabled ? "off" : "on"].<BR>"
|
||||
dat += "The green light is [src.shocked ? "off" : "on"].<BR>"
|
||||
dat += "The blue light is [src.hacked ? "off" : "on"].<BR>"
|
||||
user << browse("<HTML><HEAD><TITLE>[src.name] Hacking</TITLE></HEAD><BODY>[dat.Join("")]</BODY></HTML>","window=hack_win")
|
||||
return
|
||||
|
||||
|
||||
@@ -121,7 +121,7 @@
|
||||
|
||||
/obj/machinery/r_n_d/proc/AfterMaterialInsert(type_inserted, id_inserted, amount_inserted)
|
||||
var/stack_name
|
||||
if(ispath(type_inserted, /obj/item/ore/bluespace_crystal))
|
||||
if(ispath(type_inserted, /obj/item/stack/ore/bluespace_crystal))
|
||||
stack_name = "bluespace polycrystal"
|
||||
use_power(MINERAL_MATERIAL_AMOUNT / 10)
|
||||
else
|
||||
@@ -130,4 +130,4 @@
|
||||
use_power(min(1000, (amount_inserted / 100)))
|
||||
overlays += "[initial(name)]_[stack_name]"
|
||||
sleep(10)
|
||||
overlays -= "[initial(name)]_[stack_name]"
|
||||
overlays -= "[initial(name)]_[stack_name]"
|
||||
|
||||
@@ -45,7 +45,8 @@
|
||||
heat_gen /= max(1, tot_rating)
|
||||
|
||||
/obj/machinery/r_n_d/server/proc/initialize_serv()
|
||||
if(!files) files = new /datum/research(src)
|
||||
if(!files)
|
||||
files = new /datum/research(src)
|
||||
var/list/temp_list
|
||||
if(!id_with_upload.len)
|
||||
temp_list = list()
|
||||
@@ -105,7 +106,7 @@
|
||||
|
||||
// Backup files to CentComm to help admins recover data after griefer attacks
|
||||
/obj/machinery/r_n_d/server/proc/griefProtection()
|
||||
for(var/obj/machinery/r_n_d/server/centcom/C in machines)
|
||||
for(var/obj/machinery/r_n_d/server/centcom/C in GLOB.machines)
|
||||
files.push_data(C.files)
|
||||
|
||||
/obj/machinery/r_n_d/server/proc/produce_heat(heat_amt)
|
||||
@@ -165,7 +166,7 @@
|
||||
..()
|
||||
var/list/no_id_servers = list()
|
||||
var/list/server_ids = list()
|
||||
for(var/obj/machinery/r_n_d/server/S in machines)
|
||||
for(var/obj/machinery/r_n_d/server/S in GLOB.machines)
|
||||
switch(S.server_id)
|
||||
if(-1)
|
||||
continue
|
||||
@@ -217,20 +218,20 @@
|
||||
temp_server = null
|
||||
consoles = list()
|
||||
servers = list()
|
||||
for(var/obj/machinery/r_n_d/server/S in machines)
|
||||
for(var/obj/machinery/r_n_d/server/S in GLOB.machines)
|
||||
if(S.server_id == text2num(href_list["access"]) || S.server_id == text2num(href_list["data"]) || S.server_id == text2num(href_list["transfer"]))
|
||||
temp_server = S
|
||||
break
|
||||
if(href_list["access"])
|
||||
screen = 1
|
||||
for(var/obj/machinery/computer/rdconsole/C in machines)
|
||||
for(var/obj/machinery/computer/rdconsole/C in GLOB.machines)
|
||||
if(C.sync)
|
||||
consoles += C
|
||||
else if(href_list["data"])
|
||||
screen = 2
|
||||
else if(href_list["transfer"])
|
||||
screen = 3
|
||||
for(var/obj/machinery/r_n_d/server/S in machines)
|
||||
for(var/obj/machinery/r_n_d/server/S in GLOB.machines)
|
||||
if(S == src)
|
||||
continue
|
||||
servers += S
|
||||
@@ -252,7 +253,8 @@
|
||||
else if(href_list["reset_tech"])
|
||||
var/choice = alert("Technology Data Reset", "Are you sure you want to reset this technology to its default data? Data lost cannot be recovered.", "Continue", "Cancel")
|
||||
if(choice == "Continue")
|
||||
for(var/datum/tech/T in temp_server.files.known_tech)
|
||||
for(var/I in temp_server.files.known_tech)
|
||||
var/datum/tech/T = temp_server.files.known_tech[I]
|
||||
if(T.id == href_list["reset_tech"])
|
||||
T.level = 1
|
||||
break
|
||||
@@ -261,9 +263,10 @@
|
||||
else if(href_list["reset_design"])
|
||||
var/choice = alert("Design Data Deletion", "Are you sure you want to delete this design? Data lost cannot be recovered.", "Continue", "Cancel")
|
||||
if(choice == "Continue")
|
||||
for(var/datum/design/D in temp_server.files.known_designs)
|
||||
for(var/I in temp_server.files.known_designs)
|
||||
var/datum/design/D = temp_server.files.known_designs[I]
|
||||
if(D.id == href_list["reset_design"])
|
||||
temp_server.files.known_designs -= D
|
||||
temp_server.files.known_designs -= D.id
|
||||
break
|
||||
temp_server.files.RefreshResearch()
|
||||
|
||||
@@ -280,7 +283,7 @@
|
||||
if(0) //Main Menu
|
||||
dat += "Connected Servers:<BR><BR>"
|
||||
|
||||
for(var/obj/machinery/r_n_d/server/S in machines)
|
||||
for(var/obj/machinery/r_n_d/server/S in GLOB.machines)
|
||||
if(istype(S, /obj/machinery/r_n_d/server/centcom) && !badmin)
|
||||
continue
|
||||
dat += "[S.name] || "
|
||||
@@ -310,15 +313,17 @@
|
||||
dat += "<HR><A href='?src=[UID()];main=1'>Main Menu</A>"
|
||||
|
||||
if(2) //Data Management menu
|
||||
dat += "[temp_server.name] Data ManagementP<BR><BR>"
|
||||
dat += "[temp_server.name] Data Management<BR><BR>"
|
||||
dat += "Known Technologies<BR>"
|
||||
for(var/datum/tech/T in temp_server.files.known_tech)
|
||||
for(var/I in temp_server.files.known_tech)
|
||||
var/datum/tech/T = temp_server.files.known_tech[I]
|
||||
if(T.level <= 0)
|
||||
continue
|
||||
dat += "* [T.name] "
|
||||
dat += "<A href='?src=[UID()];reset_tech=[T.id]'>(Reset)</A><BR>" //FYI, these are all strings.
|
||||
dat += "Known Designs<BR>"
|
||||
for(var/datum/design/D in temp_server.files.known_designs)
|
||||
for(var/I in temp_server.files.known_designs)
|
||||
var/datum/design/D = temp_server.files.known_designs[I]
|
||||
dat += "* [D.name] "
|
||||
dat += "<A href='?src=[UID()];reset_design=[D.id]'>(Delete)</A><BR>"
|
||||
dat += "<HR><A href='?src=[UID()];main=1'>Main Menu</A>"
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
icon_state = "grey slime extract"
|
||||
force = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
container_type = INJECTABLE | DRAWABLE
|
||||
throwforce = 0
|
||||
throw_speed = 3
|
||||
throw_range = 6
|
||||
@@ -476,7 +477,7 @@
|
||||
pixel_x = -64
|
||||
pixel_y = -64
|
||||
unacidable = 1
|
||||
mouse_opacity = 0
|
||||
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
|
||||
var/mob/living/immune = list() // the one who creates the timestop is immune
|
||||
var/list/stopped_atoms = list()
|
||||
var/freezerange = 2
|
||||
@@ -485,7 +486,7 @@
|
||||
|
||||
/obj/effect/timestop/New()
|
||||
..()
|
||||
for(var/mob/living/M in player_list)
|
||||
for(var/mob/living/M in GLOB.player_list)
|
||||
for(var/obj/effect/proc_holder/spell/aoe_turf/conjure/timestop/T in M.mind.spell_list) //People who can stop time are immune to timestop
|
||||
immune |= M
|
||||
|
||||
|
||||
Reference in New Issue
Block a user