12/21 modernizations from TG live (#103)
* sync (#3) * shuttle auto call * Merge /vore into /master (#39) * progress * Compile errors fixed No idea if it's test worthy tho as conflicts with race overhaul and narky removal. * Update admins.txt * efforts continue Fuck grab code, seriously * grab code is cancer * Execute the Narkism Do not hesitate. Show no mercy. * holy shit grab code is awful * have I bitched about grab code My bitching, let me show you it * código de agarre es una mierda No really it is * yeah I don't even know anymore. * Lolnope. Fuck grab code * I'm not even sure what to fix anymore * Self eating is not an acceptable fate * Taste the void, son. * My code doesn't pass it's own sanity check. Maybe it's a sign of things to come. * uncommented and notes * It Works and I Don't Know Why (#38) * shuttle auto call * it works and I don't know why * Subsystem 12/21 Most Recent TG subsystem folder * globalvars 12/21 Tossed out the flavor_misc and parallax files * Onclick 12/21 as well as .dme updates * _defines 12/21 ommited old _MC.dm * _HELPERS 12/21 Preserved snowflake placement of furry sprites * _defeines/genetics reapplied narkism holdover for snowflake races. * Oops forgot mutant colors * modules porting 12/21 + Sounds/icons Admin, Client and most of mob life files ommitted * enviroment file * Admin optimizations ahelp log system kept * Mob ports 12/21 Flavor text preserved * datums ported 12/21 * Game ported 12/21 * batch of duplicate fixes/dogborg work Dogborgs need to be modernized to refractored borg standards. * moar fixes * Maps and futher compile fixes
This commit is contained in:
@@ -23,12 +23,13 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
|
||||
"Hydroponics Machinery",
|
||||
"Subspace Telecomms",
|
||||
"Research Machinery",
|
||||
"Misc. Machinery"
|
||||
"Misc. Machinery",
|
||||
"Computer Parts"
|
||||
)
|
||||
|
||||
/obj/machinery/r_n_d/circuit_imprinter/New()
|
||||
..()
|
||||
materials = new(src, list(MAT_GLASS, MAT_GOLD, MAT_DIAMOND))
|
||||
materials = new(src, list(MAT_GLASS, MAT_GOLD, MAT_DIAMOND, MAT_METAL))
|
||||
create_reagents(0)
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/circuit_imprinter(null)
|
||||
B.apply_default_parts(src)
|
||||
@@ -61,7 +62,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
|
||||
T += M.rating
|
||||
efficiency_coeff = 2 ** (T - 1) //Only 1 manipulator here, you're making runtimes Razharas
|
||||
|
||||
/obj/machinery/r_n_d/circuit_imprinter/blob_act(obj/effect/blob/B)
|
||||
/obj/machinery/r_n_d/circuit_imprinter/blob_act(obj/structure/blob/B)
|
||||
if (prob(50))
|
||||
qdel(src)
|
||||
|
||||
@@ -75,7 +76,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
|
||||
return round(A / max(1, (all_materials[M]/efficiency_coeff)))
|
||||
|
||||
//we eject the materials upon deconstruction.
|
||||
/obj/machinery/r_n_d/circuit_imprinter/deconstruction()
|
||||
/obj/machinery/r_n_d/circuit_imprinter/on_deconstruction()
|
||||
for(var/obj/item/weapon/reagent_containers/glass/G in component_parts)
|
||||
reagents.trans_to(G, G.reagents.maximum_volume)
|
||||
materials.retrieve_all()
|
||||
@@ -112,7 +113,7 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
|
||||
user << "<span class='notice'>You add [amount_inserted] sheets to the [src.name].</span>"
|
||||
updateUsrDialog()
|
||||
|
||||
else if(user.a_intent != "harm")
|
||||
else if(user.a_intent != INTENT_HARM)
|
||||
user << "<span class='warning'>You cannot insert this item into the [name]!</span>"
|
||||
return 1
|
||||
else
|
||||
|
||||
@@ -34,10 +34,12 @@ other types of metals and chemistry for reagents).
|
||||
var/build_type = null //Flag as to what kind machine the design is built in. See defines.
|
||||
var/list/materials = list() //List of materials. Format: "id" = amount.
|
||||
var/construction_time //Amount of time required for building the object
|
||||
var/build_path = "" //The file path of the object that gets created
|
||||
var/build_path = null //The file path of the object that gets created
|
||||
var/list/make_reagents = list() //Reagents produced. Format: "id" = amount. Currently only supported by the biogenerator.
|
||||
var/list/category = null //Primarily used for Mech Fabricators, but can be used for anything
|
||||
var/list/reagents = list() //List of reagents. Format: "id" = amount.
|
||||
var/list/reagents_list = list() //List of reagents. Format: "id" = amount.
|
||||
var/maxstack = 1
|
||||
var/lathe_time_factor = 1 //How many times faster than normal is this to build on the protolathe
|
||||
|
||||
|
||||
////////////////////////////////////////
|
||||
@@ -45,15 +47,25 @@ other types of metals and chemistry for reagents).
|
||||
////////////////////////////////////////
|
||||
|
||||
/obj/item/weapon/disk/design_disk
|
||||
name = "Component Design Disk"
|
||||
name = "component design disk"
|
||||
desc = "A disk for storing device design data for construction in lathes."
|
||||
icon_state = "datadisk1"
|
||||
materials = list(MAT_METAL=100, MAT_GLASS=100)
|
||||
var/datum/design/blueprint
|
||||
materials = list(MAT_METAL=300, MAT_GLASS=100)
|
||||
var/list/blueprints = list()
|
||||
var/max_blueprints = 1
|
||||
|
||||
/obj/item/weapon/disk/design_disk/New()
|
||||
..()
|
||||
src.pixel_x = rand(-5, 5)
|
||||
src.pixel_y = rand(-5, 5)
|
||||
for(var/i in 1 to max_blueprints)
|
||||
blueprints += null
|
||||
|
||||
/obj/item/weapon/disk/design_disk/adv
|
||||
name = "advanced component design disk"
|
||||
desc = "A disk for storing device design data for construction in lathes. This one has extra storage space."
|
||||
materials = list(MAT_METAL=300, MAT_GLASS=100, MAT_SILVER = 50)
|
||||
max_blueprints = 5
|
||||
|
||||
///////////////////////////////////
|
||||
/////Non-Board Computer Stuff//////
|
||||
@@ -93,6 +105,16 @@ other types of metals and chemistry for reagents).
|
||||
build_path = /obj/item/weapon/disk/design_disk
|
||||
category = list("Electronics")
|
||||
|
||||
/datum/design/design_disk_adv
|
||||
name = "Advanced Design Storage Disk"
|
||||
desc = "Produce additional disks for storing device designs."
|
||||
id = "design_disk_adv"
|
||||
req_tech = list("programming" = 3)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50)
|
||||
build_path = /obj/item/weapon/disk/design_disk/adv
|
||||
category = list("Electronics")
|
||||
|
||||
/datum/design/tech_disk
|
||||
name = "Technology Data Storage Disk"
|
||||
desc = "Produce additional disks for storing technology data."
|
||||
@@ -103,6 +125,25 @@ other types of metals and chemistry for reagents).
|
||||
build_path = /obj/item/weapon/disk/tech_disk
|
||||
category = list("Electronics")
|
||||
|
||||
/datum/design/tech_disk_adv
|
||||
name = "Advanced Technology Data Storage Disk"
|
||||
desc = "Produce disks with extra storage capacity for storing technology data."
|
||||
id = "tech_disk_adv"
|
||||
req_tech = list("programming" = 3)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=50)
|
||||
build_path = /obj/item/weapon/disk/tech_disk/adv
|
||||
category = list("Electronics")
|
||||
|
||||
/datum/design/tech_disk_super_adv
|
||||
name = "Quantum Technology Data Storage Disk"
|
||||
desc = "Produce disks with extremely large storage capacity for storing technology data."
|
||||
id = "tech_disk_super_adv"
|
||||
req_tech = list("programming" = 6)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 300, MAT_GLASS = 100, MAT_SILVER=100, MAT_GOLD=100)
|
||||
build_path = /obj/item/weapon/disk/tech_disk/super_adv
|
||||
category = list("Electronics")
|
||||
|
||||
/////////////////////////////////////////
|
||||
/////////////////Mining//////////////////
|
||||
@@ -158,36 +199,6 @@ other types of metals and chemistry for reagents).
|
||||
build_path = /obj/item/weapon/pickaxe/drill/jackhammer
|
||||
category = list("Mining Designs")
|
||||
|
||||
/datum/design/modkit
|
||||
name = "Modification Kit"
|
||||
desc = "A device which allows kinetic accelerators to be wielded with one hand, and by any organism."
|
||||
id = "modkit"
|
||||
req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000)
|
||||
build_path = /obj/item/modkit
|
||||
category = list("Mining Designs")
|
||||
|
||||
/datum/design/superaccelerator
|
||||
name = "Super-Kinetic Accelerator"
|
||||
desc = "An upgraded version of the proto-kinetic accelerator, with superior damage, speed and range."
|
||||
id = "superaccelerator"
|
||||
req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_URANIUM = 2000)
|
||||
build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/super
|
||||
category = list("Mining Designs")
|
||||
|
||||
/datum/design/hyperaccelerator
|
||||
name = "Hyper-Kinetic Accelerator"
|
||||
desc = "An upgraded version of the proto-kinetic accelerator, with even more superior damage, speed and range."
|
||||
id = "hyperaccelerator"
|
||||
req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 5, "magnets" = 5, "combat" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000)
|
||||
build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/hyper
|
||||
category = list("Mining Designs")
|
||||
|
||||
/datum/design/superresonator
|
||||
name = "Upgraded Resonator"
|
||||
desc = "An upgraded version of the resonator that allows more fields to be active at once."
|
||||
@@ -198,6 +209,67 @@ other types of metals and chemistry for reagents).
|
||||
build_path = /obj/item/weapon/resonator/upgraded
|
||||
category = list("Mining Designs")
|
||||
|
||||
/datum/design/trigger_guard_mod
|
||||
name = "Kinetic Accelerator Trigger Guard Mod"
|
||||
desc = "A device which allows kinetic accelerators to be wielded by any organism."
|
||||
id = "triggermod"
|
||||
req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000)
|
||||
build_path = /obj/item/borg/upgrade/modkit/trigger_guard
|
||||
category = list("Mining Designs")
|
||||
|
||||
/datum/design/damage_mod
|
||||
name = "Kinetic Accelerator Damage Mod"
|
||||
desc = "A device which allows kinetic accelerators to deal more damage."
|
||||
id = "damagemod"
|
||||
req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000)
|
||||
build_path = /obj/item/borg/upgrade/modkit/damage
|
||||
category = list("Mining Designs", "Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/cooldown_mod
|
||||
name = "Kinetic Accelerator Cooldown Mod"
|
||||
desc = "A device which decreases the cooldown of a Kinetic Accelerator."
|
||||
id = "cooldownmod"
|
||||
req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000)
|
||||
build_path = /obj/item/borg/upgrade/modkit/cooldown
|
||||
category = list("Mining Designs", "Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/range_mod
|
||||
name = "Kinetic Accelerator Range Mod"
|
||||
desc = "A device which allows kinetic accelerators to fire at a further range."
|
||||
id = "rangemod"
|
||||
req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_GOLD = 1500, MAT_URANIUM = 1000)
|
||||
build_path = /obj/item/borg/upgrade/modkit/range
|
||||
category = list("Mining Designs", "Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/superaccelerator
|
||||
name = "Kinetic Accelerator Pressure Mod"
|
||||
desc = "A modification kit which allows Kinetic Accelerators to do more damage while indoors."
|
||||
id = "indoormod"
|
||||
req_tech = list("materials" = 5, "powerstorage" = 4, "engineering" = 4, "magnets" = 4, "combat" = 3)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_URANIUM = 2000)
|
||||
build_path = /obj/item/borg/upgrade/modkit/indoors
|
||||
category = list("Mining Designs", "Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/hyperaccelerator
|
||||
name = "Kinetic Accelerator Mining AoE Mod"
|
||||
desc = "A modification kit for Kinetic Accelerators which causes it to fire AoE blasts that destroy rock."
|
||||
id = "hypermod"
|
||||
req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 5, "magnets" = 5, "combat" = 4)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000)
|
||||
build_path = /obj/item/borg/upgrade/modkit/aoe/turfs
|
||||
category = list("Mining Designs", "Cyborg Upgrade Modules")
|
||||
|
||||
|
||||
/////////////////////////////////////////
|
||||
//////////////Blue Space/////////////////
|
||||
/////////////////////////////////////////
|
||||
@@ -297,7 +369,7 @@ other types of metals and chemistry for reagents).
|
||||
build_path = /obj/item/clothing/glasses/hud/security/night
|
||||
category = list("Equipment")
|
||||
|
||||
datum/design/diagnostic_hud
|
||||
/datum/design/diagnostic_hud
|
||||
name = "Diagnostic HUD"
|
||||
desc = "A HUD used to analyze and determine faults within robotic machinery."
|
||||
id = "dianostic_hud"
|
||||
@@ -307,7 +379,7 @@ datum/design/diagnostic_hud
|
||||
build_path = /obj/item/clothing/glasses/hud/diagnostic
|
||||
category = list("Equipment")
|
||||
|
||||
datum/design/diagnostic_hud_night
|
||||
/datum/design/diagnostic_hud_night
|
||||
name = "Night Vision Diagnostic HUD"
|
||||
desc = "Upgraded version of the diagnostic HUD designed to function during a power failure."
|
||||
id = "dianostic_hud_night"
|
||||
@@ -454,6 +526,66 @@ datum/design/diagnostic_hud_night
|
||||
materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500)
|
||||
category = list("Equipment")
|
||||
|
||||
/datum/design/alienwrench
|
||||
name = "Alien Wrench"
|
||||
desc = "An advanced wrench obtained through Abductor technology."
|
||||
id = "alien_wrench"
|
||||
req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4)
|
||||
build_path = /obj/item/weapon/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")
|
||||
|
||||
/datum/design/alienwirecutters
|
||||
name = "Alien Wirecutters"
|
||||
desc = "Advanced wirecutters obtained through Abductor technology."
|
||||
id = "alien_wirecutters"
|
||||
req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4)
|
||||
build_path = /obj/item/weapon/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")
|
||||
|
||||
/datum/design/alienscrewdriver
|
||||
name = "Alien Screwdriver"
|
||||
desc = "An advanced screwdriver obtained through Abductor technology."
|
||||
id = "alien_screwdriver"
|
||||
req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4)
|
||||
build_path = /obj/item/weapon/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")
|
||||
|
||||
/datum/design/aliencrowbar
|
||||
name = "Alien Crowbar"
|
||||
desc = "An advanced crowbar obtained through Abductor technology."
|
||||
id = "alien_crowbar"
|
||||
req_tech = list("engineering" = 5, "materials" = 5, "abductor" = 4)
|
||||
build_path = /obj/item/weapon/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")
|
||||
|
||||
/datum/design/alienwelder
|
||||
name = "Alien Welding Tool"
|
||||
desc = "An advanced welding tool obtained through Abductor technology."
|
||||
id = "alien_welder"
|
||||
req_tech = list("engineering" = 5, "plasmatech" = 5, "abductor" = 4)
|
||||
build_path = /obj/item/weapon/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")
|
||||
|
||||
/datum/design/alienmultitool
|
||||
name = "Alien Multitool"
|
||||
desc = "An advanced multitool obtained through Abductor technology."
|
||||
id = "alien_multitool"
|
||||
req_tech = list("engineering" = 5, "programming" = 5, "abductor" = 4)
|
||||
build_path = /obj/item/device/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")
|
||||
|
||||
/datum/design/diskplantgene
|
||||
name = "Plant data disk"
|
||||
desc = "A disk for storing plant genetic data."
|
||||
|
||||
@@ -66,6 +66,14 @@
|
||||
build_path = /obj/item/weapon/weldingtool
|
||||
category = list("initial","Tools")
|
||||
|
||||
/datum/design/mini_weldingtool
|
||||
name = "Emergency welding tool"
|
||||
id = "mini_welding_tool"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 30, MAT_GLASS = 10)
|
||||
build_path = /obj/item/weapon/weldingtool/mini
|
||||
category = list("initial","Tools")
|
||||
|
||||
/datum/design/screwdriver
|
||||
name = "Screwdriver"
|
||||
id = "screwdriver"
|
||||
@@ -499,7 +507,7 @@
|
||||
name = "Light tube"
|
||||
id = "light_tube"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 60, MAT_GLASS = 100)
|
||||
materials = list(MAT_GLASS = 100)
|
||||
build_path = /obj/item/weapon/light/tube
|
||||
category = list("initial", "Construction")
|
||||
|
||||
@@ -507,7 +515,7 @@
|
||||
name = "Light bulb"
|
||||
id = "light_bulb"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 60, MAT_GLASS = 100)
|
||||
materials = list(MAT_GLASS = 100)
|
||||
build_path = /obj/item/weapon/light/bulb
|
||||
category = list("initial", "Construction")
|
||||
|
||||
@@ -711,3 +719,35 @@
|
||||
materials = list(MAT_METAL = 12000)
|
||||
build_path = /obj/item/wallframe/turret_control
|
||||
category = list("initial", "Construction")
|
||||
|
||||
/datum/design/conveyor_belt
|
||||
name = "Conveyor belt"
|
||||
id = "conveyor_belt"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 5000)
|
||||
build_path = /obj/item/conveyor_construct
|
||||
category = list("initial", "Construction")
|
||||
|
||||
/datum/design/conveyor_switch
|
||||
name = "Conveyor belt switch"
|
||||
id = "conveyor_switch"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 450, MAT_GLASS = 190)
|
||||
build_path = /obj/item/conveyor_switch_construct
|
||||
category = list("initial", "Construction")
|
||||
|
||||
/datum/design/laptop
|
||||
name = "Laptop Frame"
|
||||
id = "laptop"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_GLASS = 1000)
|
||||
build_path = /obj/item/device/modular_computer/laptop/buildable
|
||||
category = list("initial","Misc")
|
||||
|
||||
/datum/design/tablet
|
||||
name = "Tablet Frame"
|
||||
id = "tablet"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 1000)
|
||||
build_path = /obj/item/device/modular_computer/tablet
|
||||
category = list("initial","Misc")
|
||||
|
||||
@@ -0,0 +1,212 @@
|
||||
///////////////////////////////////
|
||||
///////Biogenerator Designs ///////
|
||||
///////////////////////////////////
|
||||
|
||||
/datum/design/milk
|
||||
name = "10 milk"
|
||||
id = "milk"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 20)
|
||||
make_reagents = list("milk" = 10)
|
||||
category = list("initial","Food")
|
||||
|
||||
/datum/design/cream
|
||||
name = "10 cream"
|
||||
id = "cream"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 30)
|
||||
make_reagents = list("cream" = 10)
|
||||
category = list("initial","Food")
|
||||
|
||||
/datum/design/milk_carton
|
||||
name = "Milk carton"
|
||||
id = "milk_carton"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 100)
|
||||
build_path = /obj/item/weapon/reagent_containers/food/condiment/milk
|
||||
category = list("initial","Food")
|
||||
|
||||
/datum/design/cream_carton
|
||||
name = "Cream carton"
|
||||
id = "cream_carton"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 300)
|
||||
build_path = /obj/item/weapon/reagent_containers/food/drinks/bottle/cream
|
||||
category = list("initial","Food")
|
||||
|
||||
/datum/design/black_pepper
|
||||
name = "10u black pepper"
|
||||
id = "black_pepper"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 25)
|
||||
make_reagents = list("blackpepper" = 10)
|
||||
category = list("initial","Food")
|
||||
|
||||
/datum/design/pepper_mill
|
||||
name = "Pepper mill"
|
||||
id = "pepper_mill"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 50)
|
||||
build_path = /obj/item/weapon/reagent_containers/food/condiment/peppermill
|
||||
make_reagents = list()
|
||||
category = list("initial","Food")
|
||||
|
||||
/datum/design/monkey_cube
|
||||
name = "Monkey cube"
|
||||
id = "mcube"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 250)
|
||||
build_path = /obj/item/weapon/reagent_containers/food/snacks/monkeycube
|
||||
category = list("initial", "Food")
|
||||
|
||||
/datum/design/ez_nut
|
||||
name = "E-Z-Nutrient"
|
||||
id = "ez_nut"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 10)
|
||||
build_path = /obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez
|
||||
category = list("initial","Botany Chemicals")
|
||||
|
||||
/datum/design/l4z_nut
|
||||
name = "Left 4 Zed"
|
||||
id = "l4z_nut"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 20)
|
||||
build_path = /obj/item/weapon/reagent_containers/glass/bottle/nutrient/l4z
|
||||
category = list("initial","Botany Chemicals")
|
||||
|
||||
/datum/design/rh_nut
|
||||
name = "Robust Harvest"
|
||||
id = "rh_nut"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 25)
|
||||
build_path = /obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh
|
||||
category = list("initial","Botany Chemicals")
|
||||
|
||||
/datum/design/weed_killer
|
||||
name = "Weed Killer"
|
||||
id = "weed_killer"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 50)
|
||||
build_path = /obj/item/weapon/reagent_containers/glass/bottle/killer/weedkiller
|
||||
category = list("initial","Botany Chemicals")
|
||||
|
||||
/datum/design/pest_spray
|
||||
name = "Pest Killer"
|
||||
id = "pest_spray"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 50)
|
||||
build_path = /obj/item/weapon/reagent_containers/glass/bottle/killer/pestkiller
|
||||
category = list("initial","Botany Chemicals")
|
||||
|
||||
/datum/design/botany_bottle
|
||||
name = "Empty Bottle"
|
||||
id = "botany_bottle"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 5)
|
||||
build_path = /obj/item/weapon/reagent_containers/glass/bottle/nutrient/empty
|
||||
category = list("initial", "Botany Chemicals")
|
||||
|
||||
/datum/design/cloth
|
||||
name = "Roll of cloth"
|
||||
id = "cloth"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 50)
|
||||
build_path = /obj/item/stack/sheet/cloth
|
||||
category = list("initial","Leather and Cloth")
|
||||
|
||||
/datum/design/wallet
|
||||
name = "Wallet"
|
||||
id = "wallet"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 100)
|
||||
build_path = /obj/item/weapon/storage/wallet
|
||||
category = list("initial","Leather and Cloth")
|
||||
|
||||
/datum/design/botany_gloves
|
||||
name = "Botanical gloves"
|
||||
id = "botany_gloves"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 150)
|
||||
build_path = /obj/item/clothing/gloves/botanic_leather
|
||||
category = list("initial","Leather and Cloth")
|
||||
|
||||
/datum/design/toolbelt
|
||||
name = "Utility Belt"
|
||||
id = "toolbelt"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 300)
|
||||
build_path = /obj/item/weapon/storage/belt/utility
|
||||
category = list("initial","Leather and Cloth")
|
||||
|
||||
/datum/design/secbelt
|
||||
name = "Security belt"
|
||||
id = "secbelt"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 300)
|
||||
build_path = /obj/item/weapon/storage/belt/security
|
||||
category = list("initial","Leather and Cloth")
|
||||
|
||||
/datum/design/medbelt
|
||||
name = "Medical belt"
|
||||
id = "medbel"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 300)
|
||||
build_path = /obj/item/weapon/storage/belt/medical
|
||||
category = list("initial","Leather and Cloth")
|
||||
|
||||
/datum/design/janibelt
|
||||
name = "Janitorial belt"
|
||||
id = "janibelt"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 300)
|
||||
build_path = /obj/item/weapon/storage/belt/janitor
|
||||
category = list("initial","Leather and Cloth")
|
||||
|
||||
/datum/design/bandolier
|
||||
name = "Bandolier belt"
|
||||
id = "bandolier"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 300)
|
||||
build_path = /obj/item/weapon/storage/belt/bandolier
|
||||
category = list("initial","Leather and Cloth")
|
||||
|
||||
/datum/design/s_holster
|
||||
name = "Shoulder holster"
|
||||
id = "s_holster"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 400)
|
||||
build_path = /obj/item/weapon/storage/belt/holster
|
||||
category = list("initial","Leather and Cloth")
|
||||
|
||||
/datum/design/leather_satchel
|
||||
name = "Leather satchel"
|
||||
id = "leather_satchel"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 400)
|
||||
build_path = /obj/item/weapon/storage/backpack/satchel
|
||||
category = list("initial","Leather and Cloth")
|
||||
|
||||
/datum/design/leather_jacket
|
||||
name = "Leather jacket"
|
||||
id = "leather_jacket"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 500)
|
||||
build_path = /obj/item/clothing/suit/jacket/leather
|
||||
category = list("initial","Leather and Cloth")
|
||||
|
||||
/datum/design/leather_overcoat
|
||||
name = "Leather overcoat"
|
||||
id = "leather_overcoat"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 1000)
|
||||
build_path = /obj/item/clothing/suit/jacket/leather/overcoat
|
||||
category = list("initial","Leather and Cloth")
|
||||
|
||||
/datum/design/rice_hat
|
||||
name = "Rice hat"
|
||||
id = "rice_hat"
|
||||
build_type = BIOGENERATOR
|
||||
materials = list(MAT_BIOMASS = 300)
|
||||
build_path = /obj/item/clothing/head/rice_hat
|
||||
category = list("initial","Leather and Cloth")
|
||||
@@ -7,7 +7,7 @@
|
||||
req_tech = list("programming" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1000)
|
||||
reagents = list("sacid" = 20)
|
||||
reagents_list = list("sacid" = 20)
|
||||
build_path = /obj/item/weapon/circuitboard/computer/arcade/battle
|
||||
category = list("Computer Boards")
|
||||
|
||||
|
||||
@@ -0,0 +1,261 @@
|
||||
////////////////////////////////////////
|
||||
///////////Computer Parts///////////////
|
||||
////////////////////////////////////////
|
||||
|
||||
/datum/design/disk/normal
|
||||
name = "hard disk drive"
|
||||
id = "hdd_basic"
|
||||
req_tech = list("programming" = 1, "engineering" = 1)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 400, MAT_GLASS = 100)
|
||||
build_path = /obj/item/weapon/computer_hardware/hard_drive
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/disk/advanced
|
||||
name = "advanced hard disk drive"
|
||||
id = "hdd_advanced"
|
||||
req_tech = list("programming" = 2, "engineering" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 800, MAT_GLASS = 200)
|
||||
build_path = /obj/item/weapon/computer_hardware/hard_drive/advanced
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/disk/super
|
||||
name = "super hard disk drive"
|
||||
id = "hdd_super"
|
||||
req_tech = list("programming" = 3, "engineering" = 3)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 1600, MAT_GLASS = 400)
|
||||
build_path = /obj/item/weapon/computer_hardware/hard_drive/super
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/disk/cluster
|
||||
name = "cluster hard disk drive"
|
||||
id = "hdd_cluster"
|
||||
req_tech = list("programming" = 4, "engineering" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 3200, MAT_GLASS = 800)
|
||||
build_path = /obj/item/weapon/computer_hardware/hard_drive/cluster
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/disk/small
|
||||
name = "solid state drive"
|
||||
id = "ssd_small"
|
||||
req_tech = list("programming" = 2, "engineering" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 800, MAT_GLASS = 200)
|
||||
build_path = /obj/item/weapon/computer_hardware/hard_drive/small
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/disk/micro
|
||||
name = "micro solid state drive"
|
||||
id = "ssd_micro"
|
||||
req_tech = list("programming" = 1, "engineering" = 1)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 400, MAT_GLASS = 100)
|
||||
build_path = /obj/item/weapon/computer_hardware/hard_drive/micro
|
||||
category = list("Computer Parts")
|
||||
|
||||
|
||||
// Network cards
|
||||
/datum/design/netcard/basic
|
||||
name = "network card"
|
||||
id = "netcard_basic"
|
||||
req_tech = list("programming" = 2, "engineering" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_METAL = 250, MAT_GLASS = 100)
|
||||
reagents_list = list("sacid" = 20)
|
||||
build_path = /obj/item/weapon/computer_hardware/network_card
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/netcard/advanced
|
||||
name = "advanced network card"
|
||||
id = "netcard_advanced"
|
||||
req_tech = list("programming" = 4, "engineering" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 200)
|
||||
reagents_list = list("sacid" = 20)
|
||||
build_path = /obj/item/weapon/computer_hardware/network_card/advanced
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/netcard/wired
|
||||
name = "wired network card"
|
||||
id = "netcard_wired"
|
||||
req_tech = list("programming" = 5, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_METAL = 2500, MAT_GLASS = 400)
|
||||
reagents_list = list("sacid" = 20)
|
||||
build_path = /obj/item/weapon/computer_hardware/network_card/wired
|
||||
category = list("Computer Parts")
|
||||
|
||||
|
||||
// Data disks
|
||||
/datum/design/portabledrive/basic
|
||||
name = "data disk"
|
||||
id = "portadrive_basic"
|
||||
req_tech = list("programming" = 1)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 800)
|
||||
reagents_list = list("sacid" = 20)
|
||||
build_path = /obj/item/weapon/computer_hardware/hard_drive/portable
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/portabledrive/advanced
|
||||
name = "advanced data disk"
|
||||
id = "portadrive_advanced"
|
||||
req_tech = list("programming" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1600)
|
||||
reagents_list = list("sacid" = 20)
|
||||
build_path = /obj/item/weapon/computer_hardware/hard_drive/portable/advanced
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/portabledrive/super
|
||||
name = "super data disk"
|
||||
id = "portadrive_super"
|
||||
req_tech = list("programming" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 3200)
|
||||
reagents_list = list("sacid" = 20)
|
||||
build_path = /obj/item/weapon/computer_hardware/hard_drive/portable/super
|
||||
category = list("Computer Parts")
|
||||
|
||||
|
||||
// Card slot
|
||||
/datum/design/cardslot
|
||||
name = "ID card slot"
|
||||
id = "cardslot"
|
||||
req_tech = list("programming" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 600)
|
||||
build_path = /obj/item/weapon/computer_hardware/card_slot
|
||||
category = list("Computer Parts")
|
||||
|
||||
// Intellicard slot
|
||||
/datum/design/aislot
|
||||
name = "Intellicard slot"
|
||||
id = "aislot"
|
||||
req_tech = list("programming" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 600)
|
||||
build_path = /obj/item/weapon/computer_hardware/ai_slot
|
||||
category = list("Computer Parts")
|
||||
|
||||
// Mini printer
|
||||
/datum/design/miniprinter
|
||||
name = "miniprinter"
|
||||
id = "miniprinter"
|
||||
req_tech = list("programming" = 2, "engineering" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 600)
|
||||
build_path = /obj/item/weapon/computer_hardware/printer/mini
|
||||
category = list("Computer Parts")
|
||||
|
||||
|
||||
// APC Link
|
||||
/datum/design/APClink
|
||||
name = "area power connector"
|
||||
id = "APClink"
|
||||
req_tech = list("programming" = 2, "powerstorage" = 3, "engineering" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000)
|
||||
build_path = /obj/item/weapon/computer_hardware/recharger/APC
|
||||
category = list("Computer Parts")
|
||||
|
||||
|
||||
// Batteries
|
||||
/datum/design/battery/controller
|
||||
name = "power cell controller"
|
||||
id = "bat_control"
|
||||
req_tech = list("powerstorage" = 1, "engineering" = 1)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 400)
|
||||
build_path = /obj/item/weapon/computer_hardware/battery
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/battery/normal
|
||||
name = "battery module"
|
||||
id = "bat_normal"
|
||||
req_tech = list("powerstorage" = 1, "engineering" = 1)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 400)
|
||||
build_path = /obj/item/weapon/stock_parts/cell/computer
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/battery/advanced
|
||||
name = "advanced battery module"
|
||||
id = "bat_advanced"
|
||||
req_tech = list("powerstorage" = 2, "engineering" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 800)
|
||||
build_path = /obj/item/weapon/stock_parts/cell/computer/advanced
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/battery/super
|
||||
name = "super battery module"
|
||||
id = "bat_super"
|
||||
req_tech = list("powerstorage" = 3, "engineering" = 3)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 1600)
|
||||
build_path = /obj/item/weapon/stock_parts/cell/computer/super
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/battery/nano
|
||||
name = "nano battery module"
|
||||
id = "bat_nano"
|
||||
req_tech = list("powerstorage" = 1, "engineering" = 1)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 200)
|
||||
build_path = /obj/item/weapon/stock_parts/cell/computer/nano
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/battery/micro
|
||||
name = "micro battery module"
|
||||
id = "bat_micro"
|
||||
req_tech = list("powerstorage" = 2, "engineering" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 400)
|
||||
build_path = /obj/item/weapon/stock_parts/cell/computer/micro
|
||||
category = list("Computer Parts")
|
||||
|
||||
|
||||
// Processor unit
|
||||
/datum/design/cpu
|
||||
name = "processor board"
|
||||
id = "cpu_normal"
|
||||
req_tech = list("programming" = 3, "engineering" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 1600)
|
||||
reagents_list = list("sacid" = 20)
|
||||
build_path = /obj/item/weapon/computer_hardware/processor_unit
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/cpu/small
|
||||
name = "microprocessor"
|
||||
id = "cpu_small"
|
||||
req_tech = list("programming" = 2, "engineering" = 2)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 800)
|
||||
reagents_list = list("sacid" = 20)
|
||||
build_path = /obj/item/weapon/computer_hardware/processor_unit/small
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/cpu/photonic
|
||||
name = "photonic processor board"
|
||||
id = "pcpu_normal"
|
||||
req_tech = list("programming" = 5, "engineering" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS= 6400, MAT_GOLD = 2000)
|
||||
reagents_list = list("sacid" = 40)
|
||||
build_path = /obj/item/weapon/computer_hardware/processor_unit/photonic
|
||||
category = list("Computer Parts")
|
||||
|
||||
/datum/design/cpu/photonic/small
|
||||
name = "photonic microprocessor"
|
||||
id = "pcpu_small"
|
||||
req_tech = list("programming" = 4, "engineering" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list(MAT_GLASS = 3200, MAT_GOLD = 1000)
|
||||
reagents_list = list("sacid" = 20)
|
||||
build_path = /obj/item/weapon/computer_hardware/processor_unit/photonic/small
|
||||
category = list("Computer Parts")
|
||||
@@ -0,0 +1,43 @@
|
||||
/////////////////////////////////////
|
||||
//////////Limb Grower Designs ///////
|
||||
/////////////////////////////////////
|
||||
|
||||
/datum/design/leftarm
|
||||
name = "Left Arm"
|
||||
id = "leftarm"
|
||||
build_type = LIMBGROWER
|
||||
reagents = list("synthflesh" = 25)
|
||||
build_path = /obj/item/bodypart/l_arm
|
||||
category = list("initial","human","lizard","plasmaman")
|
||||
|
||||
/datum/design/rightarm
|
||||
name = "Right Arm"
|
||||
id = "rightarm"
|
||||
build_type = LIMBGROWER
|
||||
reagents = list("synthflesh" = 25)
|
||||
build_path = /obj/item/bodypart/r_arm
|
||||
category = list("initial","human","lizard","plasmaman")
|
||||
|
||||
/datum/design/leftleg
|
||||
name = "Left Leg"
|
||||
id = "leftleg"
|
||||
build_type = LIMBGROWER
|
||||
reagents = list("synthflesh" = 25)
|
||||
build_path = /obj/item/bodypart/l_leg
|
||||
category = list("initial","human","lizard","plasmaman")
|
||||
|
||||
/datum/design/rightleg
|
||||
name = "Right Leg"
|
||||
id = "rightleg"
|
||||
build_type = LIMBGROWER
|
||||
reagents = list("synthflesh" = 25)
|
||||
build_path = /obj/item/bodypart/r_leg
|
||||
category = list("initial","human","lizard","plasmaman")
|
||||
|
||||
/datum/design/armblade
|
||||
name = "Arm Blade"
|
||||
id = "armblade"
|
||||
build_type = LIMBGROWER
|
||||
reagents = list("synthflesh" = 75)
|
||||
build_path = /obj/item/weapon/melee/synthetic_arm_blade
|
||||
category = list("special")
|
||||
@@ -82,6 +82,14 @@
|
||||
build_path = /obj/item/weapon/circuitboard/machine/teleporter_hub
|
||||
category = list ("Teleportation Machinery")
|
||||
|
||||
/datum/design/board/quantumpad
|
||||
name = "Machine Design (Quantum Pad Board)"
|
||||
desc = "The circuit board for a quantum telepad."
|
||||
id = "quantumpad"
|
||||
req_tech = list("programming" = 4, "bluespace" = 4, "plasmatech" = 3, "engineering" = 4)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/quantumpad
|
||||
category = list ("Teleportation Machinery")
|
||||
|
||||
/datum/design/board/telepad
|
||||
name = "Machine Design (Telepad Board)"
|
||||
desc = "The circuit board for a telescience telepad."
|
||||
@@ -386,3 +394,19 @@
|
||||
req_tech = list("programming" = 4, "biotech" = 3)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/plantgenes
|
||||
category = list ("Misc. Machinery")
|
||||
|
||||
/datum/design/board/ntnet_relay
|
||||
name = "Machine Design (NTNet Relay Board)"
|
||||
desc = "The circuit board for a wireless network relay."
|
||||
id = "ntnet_relay"
|
||||
req_tech = list("programming" = 2, "engineering" = 2, "bluespace" = 2)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/ntnet_relay
|
||||
category = list("Subspace Telecomms")
|
||||
|
||||
/datum/design/board/limbgrower
|
||||
name = "Machine Design (Limb Grower Board)"
|
||||
desc = "The circuit board for a limb grower."
|
||||
id = "limbgrower"
|
||||
req_tech = list("programming" = 3, "biotech" = 2)
|
||||
build_path = /obj/item/weapon/circuitboard/machine/limbgrower
|
||||
category = list("Medical Machinery")
|
||||
@@ -3,7 +3,7 @@
|
||||
name = "Cyborg Endoskeleton"
|
||||
id = "borg_suit"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/robot_parts/robot_suit
|
||||
build_path = /obj/item/robot_suit
|
||||
materials = list(MAT_METAL=15000)
|
||||
construction_time = 500
|
||||
category = list("Cyborg")
|
||||
@@ -12,7 +12,7 @@
|
||||
name = "Cyborg Torso"
|
||||
id = "borg_chest"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/robot_parts/chest
|
||||
build_path = /obj/item/bodypart/chest/robot
|
||||
materials = list(MAT_METAL=40000)
|
||||
construction_time = 350
|
||||
category = list("Cyborg")
|
||||
@@ -21,7 +21,7 @@
|
||||
name = "Cyborg Head"
|
||||
id = "borg_head"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/robot_parts/head
|
||||
build_path = /obj/item/bodypart/head/robot
|
||||
materials = list(MAT_METAL=5000)
|
||||
construction_time = 350
|
||||
category = list("Cyborg")
|
||||
@@ -30,7 +30,7 @@
|
||||
name = "Cyborg Left Arm"
|
||||
id = "borg_l_arm"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/robot_parts/l_arm
|
||||
build_path = /obj/item/bodypart/l_arm/robot
|
||||
materials = list(MAT_METAL=10000)
|
||||
construction_time = 200
|
||||
category = list("Cyborg")
|
||||
@@ -39,7 +39,7 @@
|
||||
name = "Cyborg Right Arm"
|
||||
id = "borg_r_arm"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/robot_parts/r_arm
|
||||
build_path = /obj/item/bodypart/r_arm/robot
|
||||
materials = list(MAT_METAL=10000)
|
||||
construction_time = 200
|
||||
category = list("Cyborg")
|
||||
@@ -48,7 +48,7 @@
|
||||
name = "Cyborg Left Leg"
|
||||
id = "borg_l_leg"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/robot_parts/l_leg
|
||||
build_path = /obj/item/bodypart/l_leg/robot
|
||||
materials = list(MAT_METAL=10000)
|
||||
construction_time = 200
|
||||
category = list("Cyborg")
|
||||
@@ -57,7 +57,7 @@
|
||||
name = "Cyborg Right Leg"
|
||||
id = "borg_r_leg"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/robot_parts/r_leg
|
||||
build_path = /obj/item/bodypart/r_leg/robot
|
||||
materials = list(MAT_METAL=10000)
|
||||
construction_time = 200
|
||||
category = list("Cyborg")
|
||||
@@ -270,7 +270,7 @@
|
||||
id = "gygax_armor"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/gygax_armor
|
||||
materials = list(MAT_METAL=25000,MAT_DIAMOND=10000)
|
||||
materials = list(MAT_METAL=15000,MAT_DIAMOND=10000,MAT_TITANIUM=10000)
|
||||
construction_time = 600
|
||||
category = list("Gygax")
|
||||
|
||||
@@ -343,7 +343,7 @@
|
||||
id = "durand_armor"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/durand_armor
|
||||
materials = list(MAT_METAL=50000,MAT_URANIUM=30000)
|
||||
materials = list(MAT_METAL=30000,MAT_URANIUM=25000,MAT_TITANIUM=20000)
|
||||
construction_time = 600
|
||||
category = list("Durand")
|
||||
|
||||
@@ -481,7 +481,7 @@
|
||||
id = "phazon_armor"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/phazon_armor
|
||||
materials = list(MAT_METAL=45000,MAT_PLASMA=30000)
|
||||
materials = list(MAT_METAL=25000,MAT_PLASMA=20000,MAT_TITANIUM=20000)
|
||||
construction_time = 300
|
||||
category = list("Phazon")
|
||||
|
||||
@@ -505,7 +505,7 @@
|
||||
category = list("Exosuit Equipment")
|
||||
|
||||
/datum/design/mech_mining_scanner
|
||||
name = "Exosuit Engineering Equipement (Mining Scanner)"
|
||||
name = "Exosuit Engineering Equipment (Mining Scanner)"
|
||||
id = "mech_mscanner"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/mecha_equipment/mining_scanner
|
||||
@@ -571,15 +571,6 @@
|
||||
//////////////Borg Upgrades//////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/borg_upgrade_reset
|
||||
name = "Cyborg Upgrade (Module Reset Board)"
|
||||
id = "borg_upgrade_reset"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/reset
|
||||
materials = list(MAT_METAL=10000)
|
||||
construction_time = 120
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/borg_upgrade_rename
|
||||
name = "Cyborg Upgrade (Rename Board)"
|
||||
id = "borg_upgrade_rename"
|
||||
@@ -648,23 +639,13 @@
|
||||
construction_time = 120
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/borg_upgrade_hyperka
|
||||
name = "Cyborg Upgrade (Hyper-Kinetic Accelerator)"
|
||||
id = "borg_upgrade_hyperka"
|
||||
req_tech = list("materials" = 7, "powerstorage" = 5, "engineering" = 5, "magnets" = 5, "combat" = 4)
|
||||
build_type = MECHFAB //Reqs same as human Hyper KA
|
||||
materials = list(MAT_METAL = 8000, MAT_GLASS = 1500, MAT_SILVER = 2000, MAT_GOLD = 2000, MAT_DIAMOND = 2000)
|
||||
build_path = /obj/item/borg/upgrade/hyperka
|
||||
construction_time = 120
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/borg_upgrade_lavaproof
|
||||
name = "Cyborg Upgrade (Lavaproof Tracks)"
|
||||
id = "borg_upgrade_lavaproof"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/lavaproof
|
||||
req_tech = list("plasmatech" = 4, "materials" = 4, "engineering" = 4)
|
||||
materials = list(MAT_METAL = 8000, MAT_PLASMA = 10000)
|
||||
materials = list(MAT_METAL = 10000, MAT_PLASMA = 4000, MAT_TITANIUM = 5000)
|
||||
construction_time = 120
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
@@ -688,6 +669,46 @@
|
||||
construction_time = 120
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/borg_upgrade_expandedsynthesiser
|
||||
name = "Cyborg Upgrade (Hypospray Expanded Synthesiser)"
|
||||
id = "borg_upgrade_expandedsynthesiser"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/hypospray/expanded
|
||||
req_tech = list("programming" = 5, "engineering" = 4, "biotech" = 5)
|
||||
materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_PLASMA=5000)
|
||||
construction_time = 120
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/borg_upgrade_highstrengthsynthesiser
|
||||
name = "Cyborg Upgrade (Hypospray High-Strength Synthesiser)"
|
||||
id = "borg_upgrade_highstrengthsynthesiser"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/hypospray/high_strength
|
||||
req_tech = list("programming" = 5, "engineering" = 5, "biotech" = 6)
|
||||
materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_PLASMA=10000, MAT_URANIUM=5000)
|
||||
construction_time = 120
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/borg_upgrade_piercinghypospray
|
||||
name = "Cyborg Upgrade (Piercing Hypospray)"
|
||||
id = "borg_upgrade_piercinghypospray"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/piercing_hypospray
|
||||
req_tech = list("materials" = 5, "engineering" = 7, "combat" = 3)
|
||||
materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_TITANIUM=10000, MAT_DIAMOND=5000)
|
||||
construction_time = 120
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
/datum/design/borg_upgrade_defibrillator
|
||||
name = "Cyborg Upgrade (Defibrillator)"
|
||||
id = "borg_upgrade_defibrillator"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/borg/upgrade/defib
|
||||
req_tech = list("programming" = 4, "engineering" = 5, "materials" = 5, "powerstorage" = 5, "biotech" = 5)
|
||||
materials = list(MAT_METAL=15000, MAT_GLASS=15000, MAT_SILVER=10000, MAT_GOLD=10000, MAT_TITANIUM=5000, MAT_DIAMOND=5000)
|
||||
construction_time = 120
|
||||
category = list("Cyborg Upgrade Modules")
|
||||
|
||||
//Misc
|
||||
/datum/design/mecha_tracking
|
||||
name = "Exosuit Tracking Beacon"
|
||||
@@ -719,3 +740,36 @@
|
||||
construction_time = 100
|
||||
build_path = /obj/item/device/assembly/flash/handheld
|
||||
category = list("Misc")
|
||||
|
||||
/datum/design/flightsuit //Multi step build process/redo WIP
|
||||
name = "Flight Suit"
|
||||
desc = "A specialized hardsuit that is able to attach a flightpack and accessories.."
|
||||
id = "flightsuit"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/clothing/suit/space/hardsuit/flightsuit
|
||||
materials = list(MAT_METAL=16000, MAT_GLASS = 8000, MAT_DIAMOND = 200, MAT_GOLD = 3000, MAT_SILVER = 3000, MAT_TITANIUM = 16000) //This expensive enough for you?
|
||||
construction_time = 250
|
||||
category = list("Misc")
|
||||
req_tech = list("magnets" = 2, "combat" = 2, "plasmatech" = 2, "materials" = 4, "engineering" = 3, "powerstorage" = 2)
|
||||
|
||||
/datum/design/flightpack
|
||||
name = "Flight Pack"
|
||||
desc = "An advanced back-worn system that has dual ion engines powerful enough to grant a humanoid flight. Contains an internal self-recharging high-current capacitor for short, powerful boosts."
|
||||
id = "flightpack"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/device/flightpack
|
||||
materials = list(MAT_METAL=16000, MAT_GLASS = 8000, MAT_DIAMOND = 4000, MAT_GOLD = 12000, MAT_SILVER = 12000, MAT_URANIUM = 20000, MAT_PLASMA = 16000, MAT_TITANIUM = 16000) //This expensive enough for you?
|
||||
construction_time = 250
|
||||
category = list("Misc")
|
||||
req_tech = list("magnets" = 4, "combat" = 3, "plasmatech" = 4, "materials" = 5, "engineering" = 4, "powerstorage" = 4)
|
||||
|
||||
/datum/design/flightshoes
|
||||
name = "Flight Shoes"
|
||||
desc = "Flight shoes, attachable to a flight suit to provide additional functions."
|
||||
id = "flightshoes"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/clothing/shoes/flightshoes
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 5000, MAT_GOLD = 1500, MAT_SILVER = 1500, MAT_PLASMA = 2000, MAT_TITANIUM = 2000)
|
||||
construction_time = 100
|
||||
category = list("Misc")
|
||||
req_tech = list("magnets" = 2, "combat" = 2, "plasmatech" = 3, "materials" = 3, "engineering" = 2, "powerstorage" = 2)
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
name = "Piercing Syringe"
|
||||
desc = "A diamond-tipped syringe that pierces armor when launched at high velocity. It can hold up to 10 units."
|
||||
id = "piercesyringe"
|
||||
req_tech = list("materials" = 5, "combat" = 3, "engineering" = 7)
|
||||
req_tech = list("materials" = 7, "combat" = 3, "engineering" = 5)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_GLASS = 4000, MAT_DIAMOND = 1500)
|
||||
build_path = /obj/item/weapon/reagent_containers/syringe/piercing
|
||||
@@ -115,6 +115,66 @@
|
||||
build_path = /obj/item/device/extinguisher_refill
|
||||
category = list("Medical Designs")
|
||||
|
||||
/datum/design/alienscalpel
|
||||
name = "Alien Scalpel"
|
||||
desc = "An advanced scalpel obtained through Abductor technology."
|
||||
id = "alien_scalpel"
|
||||
req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/weapon/scalpel/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical Designs")
|
||||
|
||||
/datum/design/alienhemostat
|
||||
name = "Alien Hemostat"
|
||||
desc = "An advanced hemostat obtained through Abductor technology."
|
||||
id = "alien_hemostat"
|
||||
req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/weapon/hemostat/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical Designs")
|
||||
|
||||
/datum/design/alienretractor
|
||||
name = "Alien Retractor"
|
||||
desc = "An advanced retractor obtained through Abductor technology."
|
||||
id = "alien_retractor"
|
||||
req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/weapon/retractor/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical Designs")
|
||||
|
||||
/datum/design/aliensaw
|
||||
name = "Alien Circular Saw"
|
||||
desc = "An advanced surgical saw obtained through Abductor technology."
|
||||
id = "alien_saw"
|
||||
req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/weapon/circular_saw/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500)
|
||||
category = list("Medical Designs")
|
||||
|
||||
/datum/design/aliendrill
|
||||
name = "Alien Drill"
|
||||
desc = "An advanced drill obtained through Abductor technology."
|
||||
id = "alien_drill"
|
||||
req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/weapon/surgicaldrill/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_SILVER = 2500, MAT_PLASMA = 1000, MAT_TITANIUM = 1500)
|
||||
category = list("Medical Designs")
|
||||
|
||||
/datum/design/aliencautery
|
||||
name = "Alien Cautery"
|
||||
desc = "An advanced cautery obtained through Abductor technology."
|
||||
id = "alien_cautery"
|
||||
req_tech = list("bio" = 4, "materials" = 4, "abductor" = 3)
|
||||
build_path = /obj/item/weapon/cautery/alien
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_SILVER = 1500, MAT_PLASMA = 500, MAT_TITANIUM = 1500)
|
||||
category = list("Medical Designs")
|
||||
|
||||
/////////////////////////////////////////
|
||||
//////////Cybernetic Implants////////////
|
||||
/////////////////////////////////////////
|
||||
@@ -222,10 +282,10 @@
|
||||
name = "Nutriment pump implant"
|
||||
desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are starving."
|
||||
id = "ci-nutriment"
|
||||
req_tech = list("materials" = 5, "powerstorage" = 6, "biotech" = 5)
|
||||
req_tech = list("materials" = 3, "powerstorage" = 4, "biotech" = 3)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
construction_time = 40
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_GOLD = 500, MAT_URANIUM = 500)
|
||||
materials = list(MAT_METAL = 500, MAT_GLASS = 500, MAT_GOLD = 500)
|
||||
build_path = /obj/item/organ/cyberimp/chest/nutriment
|
||||
category = list("Misc", "Medical Designs")
|
||||
|
||||
@@ -233,7 +293,7 @@
|
||||
name = "Nutriment pump implant PLUS"
|
||||
desc = "This implant with synthesize and pump into your bloodstream a small amount of nutriment when you are hungry."
|
||||
id = "ci-nutrimentplus"
|
||||
req_tech = list("materials" = 5, "powerstorage" = 6, "biotech" = 6)
|
||||
req_tech = list("materials" = 5, "powerstorage" = 4, "biotech" = 4)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
construction_time = 50
|
||||
materials = list(MAT_METAL = 600, MAT_GLASS = 600, MAT_GOLD = 500, MAT_URANIUM = 750)
|
||||
@@ -244,10 +304,10 @@
|
||||
name = "Reviver implant"
|
||||
desc = "This implant will attempt to revive you if you lose consciousness. For the faint of heart!"
|
||||
id = "ci-reviver"
|
||||
req_tech = list("materials" = 5, "programming" = 4, "biotech" = 8)
|
||||
req_tech = list("materials" = 5, "programming" = 4, "biotech" = 5)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
construction_time = 60
|
||||
materials = list(MAT_METAL = 800, MAT_GLASS = 800, MAT_GOLD = 500, MAT_URANIUM = 1000, MAT_DIAMOND = 2000)
|
||||
materials = list(MAT_METAL = 800, MAT_GLASS = 800, MAT_GOLD = 300, MAT_URANIUM = 500)
|
||||
build_path = /obj/item/organ/cyberimp/chest/reviver
|
||||
category = list("Misc", "Medical Designs")
|
||||
|
||||
@@ -287,6 +347,16 @@
|
||||
build_path = /obj/item/weapon/implantcase
|
||||
category = list("Medical Designs")
|
||||
|
||||
/datum/design/implant_sadtrombone
|
||||
name = "Sad Trombone Implant Case"
|
||||
desc = "Makes death amusing."
|
||||
id = "implant_trombone"
|
||||
req_tech = list("materials" = 2, "biotech" = 3, "programming" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_GLASS = 500, MAT_BANANIUM = 500)
|
||||
build_path = /obj/item/weapon/implantcase/sad_trombone
|
||||
category = list("Medical Designs")
|
||||
|
||||
/datum/design/implant_freedom
|
||||
name = "Freedom Implant Case"
|
||||
desc = "A glass case containing an implant."
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
id = "bluespace_cell"
|
||||
req_tech = list("powerstorage" = 6, "materials" = 5, "engineering" = 5, "bluespace" = 5)
|
||||
build_type = PROTOLATHE | MECHFAB
|
||||
materials = list(MAT_METAL = 800, MAT_GOLD = 300, MAT_SILVER = 300, MAT_GLASS = 160, MAT_DIAMOND = 160)
|
||||
materials = list(MAT_METAL = 800, MAT_GOLD = 120, MAT_SILVER = 150, MAT_GLASS = 160, MAT_DIAMOND = 160, MAT_TITANIUM = 300)
|
||||
construction_time=100
|
||||
build_path = /obj/item/weapon/stock_parts/cell/bluespace
|
||||
category = list("Misc","Power Designs")
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
materials = list(MAT_METAL = 100, MAT_GLASS = 100)
|
||||
build_path = /obj/item/weapon/stock_parts/capacitor
|
||||
category = list("Stock Parts","Machinery","initial")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/adv_capacitor
|
||||
name = "Advanced Capacitor"
|
||||
@@ -42,6 +43,7 @@
|
||||
materials = list(MAT_METAL = 150, MAT_GLASS = 150)
|
||||
build_path = /obj/item/weapon/stock_parts/capacitor/adv
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/super_capacitor
|
||||
name = "Super Capacitor"
|
||||
@@ -52,6 +54,7 @@
|
||||
materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 100)
|
||||
build_path = /obj/item/weapon/stock_parts/capacitor/super
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/quadratic_capacitor
|
||||
name = "Quadratic Capacitor"
|
||||
@@ -62,6 +65,7 @@
|
||||
materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_DIAMOND = 100)
|
||||
build_path = /obj/item/weapon/stock_parts/capacitor/quadratic
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
//Scanning modules
|
||||
/datum/design/basic_scanning
|
||||
@@ -73,6 +77,7 @@
|
||||
materials = list(MAT_METAL = 100, MAT_GLASS = 50)
|
||||
build_path = /obj/item/weapon/stock_parts/scanning_module
|
||||
category = list("Stock Parts","Machinery","initial")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/adv_scanning
|
||||
name = "Advanced Scanning Module"
|
||||
@@ -83,6 +88,7 @@
|
||||
materials = list(MAT_METAL = 150, MAT_GLASS = 100)
|
||||
build_path = /obj/item/weapon/stock_parts/scanning_module/adv
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/phasic_scanning
|
||||
name = "Phasic Scanning Module"
|
||||
@@ -93,6 +99,7 @@
|
||||
materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_SILVER = 60)
|
||||
build_path = /obj/item/weapon/stock_parts/scanning_module/phasic
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/triphasic_scanning
|
||||
name = "Triphasic Scanning Module"
|
||||
@@ -103,6 +110,7 @@
|
||||
materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_DIAMOND = 60)
|
||||
build_path = /obj/item/weapon/stock_parts/scanning_module/triphasic
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
//Maipulators
|
||||
/datum/design/micro_mani
|
||||
@@ -114,6 +122,7 @@
|
||||
materials = list(MAT_METAL = 100)
|
||||
build_path = /obj/item/weapon/stock_parts/manipulator
|
||||
category = list("Stock Parts","Machinery","initial")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/nano_mani
|
||||
name = "Nano Manipulator"
|
||||
@@ -124,6 +133,7 @@
|
||||
materials = list(MAT_METAL = 150)
|
||||
build_path = /obj/item/weapon/stock_parts/manipulator/nano
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/pico_mani
|
||||
name = "Pico Manipulator"
|
||||
@@ -134,6 +144,7 @@
|
||||
materials = list(MAT_METAL = 200)
|
||||
build_path = /obj/item/weapon/stock_parts/manipulator/pico
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/femto_mani
|
||||
name = "Femto Manipulator"
|
||||
@@ -141,9 +152,10 @@
|
||||
id = "femto_mani"
|
||||
req_tech = list("materials" = 7, "programming" = 5, "engineering" = 5, "bluespace" = 5)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 200, MAT_DIAMOND = 60)
|
||||
materials = list(MAT_METAL = 200, MAT_DIAMOND = 30, MAT_TITANIUM = 30)
|
||||
build_path = /obj/item/weapon/stock_parts/manipulator/femto
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
//Micro-lasers
|
||||
/datum/design/basic_micro_laser
|
||||
@@ -155,6 +167,7 @@
|
||||
materials = list(MAT_METAL = 100, MAT_GLASS = 50)
|
||||
build_path = /obj/item/weapon/stock_parts/micro_laser
|
||||
category = list("Stock Parts","Machinery","initial")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/high_micro_laser
|
||||
name = "High-Power Micro-Laser"
|
||||
@@ -165,6 +178,7 @@
|
||||
materials = list(MAT_METAL = 150, MAT_GLASS = 100)
|
||||
build_path = /obj/item/weapon/stock_parts/micro_laser/high
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/ultra_micro_laser
|
||||
name = "Ultra-High-Power Micro-Laser"
|
||||
@@ -175,6 +189,7 @@
|
||||
materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_URANIUM = 60)
|
||||
build_path = /obj/item/weapon/stock_parts/micro_laser/ultra
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/quadultra_micro_laser
|
||||
name = "Quad-Ultra Micro-Laser"
|
||||
@@ -185,6 +200,7 @@
|
||||
materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_URANIUM = 100, MAT_DIAMOND = 60)
|
||||
build_path = /obj/item/weapon/stock_parts/micro_laser/quadultra
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/basic_matter_bin
|
||||
name = "Basic Matter Bin"
|
||||
@@ -195,6 +211,7 @@
|
||||
materials = list(MAT_METAL = 100)
|
||||
build_path = /obj/item/weapon/stock_parts/matter_bin
|
||||
category = list("Stock Parts","Machinery","initial")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/adv_matter_bin
|
||||
name = "Advanced Matter Bin"
|
||||
@@ -205,6 +222,7 @@
|
||||
materials = list(MAT_METAL = 150)
|
||||
build_path = /obj/item/weapon/stock_parts/matter_bin/adv
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/super_matter_bin
|
||||
name = "Super Matter Bin"
|
||||
@@ -215,6 +233,7 @@
|
||||
materials = list(MAT_METAL = 200)
|
||||
build_path = /obj/item/weapon/stock_parts/matter_bin/super
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
/datum/design/bluespace_matter_bin
|
||||
name = "Bluespace Matter Bin"
|
||||
@@ -225,6 +244,7 @@
|
||||
materials = list(MAT_METAL = 250, MAT_DIAMOND = 200)
|
||||
build_path = /obj/item/weapon/stock_parts/matter_bin/bluespace
|
||||
category = list("Stock Parts")
|
||||
lathe_time_factor = 0.2
|
||||
|
||||
//T-Comms devices
|
||||
/datum/design/subspace_ansible
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
req_tech = list("combat" = 4, "materials" = 4, "powerstorage" = 5)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_GLASS = 10000, MAT_SILVER = 10000)
|
||||
build_path = /obj/item/weapon/gun/energy/shock_revolver
|
||||
build_path = /obj/item/weapon/gun/energy/tesla_revolver
|
||||
category = list("Weapons")
|
||||
|
||||
/datum/design/nuclear_gun
|
||||
@@ -38,17 +38,17 @@
|
||||
id = "nuclear_gun"
|
||||
req_tech = list("combat" = 5, "magnets" = 5, "powerstorage" = 5)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 4000)
|
||||
build_path = /obj/item/weapon/gun/energy/gun/nuclear
|
||||
materials = list(MAT_METAL = 10000, MAT_GLASS = 2000, MAT_URANIUM = 3000, MAT_TITANIUM = 1000)
|
||||
build_path = /obj/item/weapon/gun/energy/e_gun/nuclear
|
||||
category = list("Weapons")
|
||||
|
||||
/datum/design/tele_shield
|
||||
name = "Telescopic Riot Shield"
|
||||
desc = "An advanced riot shield made of lightweight materials that collapses for easy storage."
|
||||
id = "tele_shield"
|
||||
req_tech = list("combat" = 5, "materials" = 4, "engineering" = 4)
|
||||
req_tech = list("combat" = 4, "materials" = 3, "engineering" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 4000, MAT_GLASS = 5000, MAT_SILVER = 3000)
|
||||
materials = list(MAT_METAL = 4000, MAT_GLASS = 4000, MAT_SILVER = 300, MAT_TITANIUM = 200)
|
||||
build_path = /obj/item/weapon/shield/riot/tele
|
||||
category = list("Weapons")
|
||||
|
||||
@@ -69,7 +69,7 @@
|
||||
req_tech = list("combat" = 5, "materials" = 5, "biotech" = 6, "plasmatech" = 7)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000)
|
||||
reagents = list("mutagen" = 40)
|
||||
reagents_list = list("mutagen" = 40)
|
||||
build_path = /obj/item/weapon/gun/energy/decloner
|
||||
category = list("Weapons")
|
||||
|
||||
@@ -83,16 +83,6 @@
|
||||
build_path = /obj/item/weapon/gun/syringe/rapidsyringe
|
||||
category = list("Weapons")
|
||||
|
||||
/datum/design/largecrossbow
|
||||
name = "Energy Crossbow"
|
||||
desc = "A reverse-engineered energy crossbow favored by syndicate infiltration teams and carp hunters."
|
||||
id = "largecrossbow"
|
||||
req_tech = list("combat" = 5, "engineering" = 3, "magnets" = 5, "syndicate" = 3)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 1500, MAT_URANIUM = 1500, MAT_SILVER = 1500)
|
||||
build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large
|
||||
category = list("Weapons")
|
||||
|
||||
/datum/design/temp_gun
|
||||
name = "Temperature Gun"
|
||||
desc = "A gun that shoots temperature bullet energythings to change temperature."//Change it if you want
|
||||
@@ -110,7 +100,7 @@
|
||||
req_tech = list("materials" = 2, "biotech" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 2000, MAT_GLASS = 500)
|
||||
reagents = list("radium" = 20)
|
||||
reagents_list = list("radium" = 20)
|
||||
build_path = /obj/item/weapon/gun/energy/floragun
|
||||
category = list("Weapons")
|
||||
|
||||
@@ -163,7 +153,7 @@
|
||||
id = "xray"
|
||||
req_tech = list("combat" = 7, "magnets" = 5, "biotech" = 5, "powerstorage" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_GOLD = 5000,MAT_URANIUM = 10000, MAT_METAL = 5000)
|
||||
materials = list(MAT_GOLD = 5000,MAT_URANIUM = 8000, MAT_METAL = 5000, MAT_TITANIUM = 2000)
|
||||
build_path = /obj/item/weapon/gun/energy/xray
|
||||
category = list("Weapons")
|
||||
|
||||
@@ -198,8 +188,6 @@
|
||||
category = list("Weapons")
|
||||
|
||||
//WT550 Mags
|
||||
// Literally cancer - Poojawa
|
||||
/*
|
||||
|
||||
/datum/design/mag_oldsmg
|
||||
name = "WT-550 Auto Gun Magazine (4.6x30mm)"
|
||||
@@ -231,7 +219,7 @@
|
||||
id = "mag_oldsmg_tx"
|
||||
materials = list(MAT_METAL = 6000, MAT_SILVER = 600, MAT_URANIUM = 2000)
|
||||
build_path = /obj/item/ammo_box/magazine/wt550m9/wttx
|
||||
*/
|
||||
|
||||
/datum/design/stunshell
|
||||
name = "Stun Shell"
|
||||
desc = "A stunning shell for a shotgun."
|
||||
@@ -271,3 +259,13 @@
|
||||
materials = list(MAT_SILVER = 8000, MAT_GOLD = 8000, MAT_URANIUM = 8000, MAT_GLASS = 12000, MAT_METAL = 12000, MAT_DIAMOND = 3000)
|
||||
build_path = /obj/item/weapon/gun/energy/gravity_gun
|
||||
category = list("Weapons")
|
||||
|
||||
/datum/design/largecrossbow
|
||||
name = "Energy Crossbow"
|
||||
desc = "A reverse-engineered energy crossbow favored by syndicate infiltration teams and carp hunters."
|
||||
id = "largecrossbow"
|
||||
req_tech = list("combat" = 5, "engineering" = 3, "magnets" = 5, "syndicate" = 3)
|
||||
build_type = PROTOLATHE
|
||||
materials = list(MAT_METAL = 5000, MAT_GLASS = 1500, MAT_URANIUM = 1500, MAT_SILVER = 1500)
|
||||
build_path = /obj/item/weapon/gun/energy/kinetic_accelerator/crossbow/large
|
||||
category = list("Weapons")
|
||||
@@ -1,4 +1,4 @@
|
||||
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
|
||||
|
||||
|
||||
/*
|
||||
Destructive Analyzer
|
||||
@@ -45,7 +45,7 @@ Note: Must be placed within 3 tiles of the R&D Console
|
||||
..()
|
||||
|
||||
/obj/machinery/r_n_d/destructive_analyzer/Insert_Item(obj/item/O, mob/user)
|
||||
if(user.a_intent != "harm")
|
||||
if(user.a_intent != INTENT_HARM)
|
||||
. = 1
|
||||
if(!is_insertion_ready(user))
|
||||
return
|
||||
@@ -61,7 +61,7 @@ Note: Must be placed within 3 tiles of the R&D Console
|
||||
return
|
||||
busy = 1
|
||||
loaded_item = O
|
||||
O.loc = src
|
||||
O.forceMove(src)
|
||||
user << "<span class='notice'>You add the [O.name] to the [src.name]!</span>"
|
||||
flick("d_analyzer_la", src)
|
||||
spawn(10)
|
||||
|
||||
@@ -115,7 +115,7 @@
|
||||
return TRUE
|
||||
|
||||
/obj/machinery/r_n_d/experimentor/Insert_Item(obj/item/O, mob/user)
|
||||
if(user.a_intent != "harm")
|
||||
if(user.a_intent != INTENT_HARM)
|
||||
. = 1
|
||||
if(!is_insertion_ready(user))
|
||||
return
|
||||
@@ -615,7 +615,7 @@
|
||||
spawn(cooldownMax)
|
||||
cooldown = FALSE
|
||||
else
|
||||
user << "<span class='notice'>You aren't quite sure what to do with this, yet.</span>"
|
||||
user << "<span class='notice'>You aren't quite sure what to do with this yet.</span>"
|
||||
|
||||
//////////////// RELIC PROCS /////////////////////////////
|
||||
|
||||
|
||||
@@ -114,7 +114,6 @@ var/global/list/obj/machinery/message_server/message_servers = list()
|
||||
rc_msgs += new/datum/data_rc_msg(recipient,sender,message,stamp,id_auth)
|
||||
|
||||
/obj/machinery/message_server/attack_hand(mob/user)
|
||||
// user << "\blue There seem to be some parts missing from this server. They should arrive on the station in a few days, give or take a few Centcom delays."
|
||||
user << "You toggle PDA message passing from [active ? "On" : "Off"] to [active ? "Off" : "On"]"
|
||||
active = !active
|
||||
update_icon()
|
||||
@@ -202,6 +201,7 @@ var/obj/machinery/blackbox_recorder/blackbox
|
||||
use_power = 1
|
||||
idle_power_usage = 10
|
||||
active_power_usage = 100
|
||||
armor = list(melee = 25, bullet = 10, laser = 10, energy = 0, bomb = 0, bio = 0, rad = 0, fire = 50, acid = 70)
|
||||
var/list/messages = list() //Stores messages of non-standard frequencies
|
||||
var/list/messages_admin = list()
|
||||
|
||||
@@ -225,6 +225,7 @@ var/obj/machinery/blackbox_recorder/blackbox
|
||||
qdel(src)
|
||||
blackbox = src
|
||||
|
||||
|
||||
/obj/machinery/blackbox_recorder/Destroy()
|
||||
var/turf/T = locate(1,1,2)
|
||||
if (T)
|
||||
|
||||
@@ -26,14 +26,15 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
"Electronics",
|
||||
"Weapons",
|
||||
"Ammo",
|
||||
"Firing Pins"
|
||||
"Firing Pins",
|
||||
"Computer Parts"
|
||||
)
|
||||
|
||||
|
||||
/obj/machinery/r_n_d/protolathe/New()
|
||||
..()
|
||||
create_reagents(0)
|
||||
materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM))
|
||||
materials = new(src, list(MAT_METAL, MAT_GLASS, MAT_SILVER, MAT_GOLD, MAT_DIAMOND, MAT_PLASMA, MAT_URANIUM, MAT_BANANIUM, MAT_TITANIUM))
|
||||
var/obj/item/weapon/circuitboard/machine/B = new /obj/item/weapon/circuitboard/machine/protolathe(null)
|
||||
B.apply_default_parts(src)
|
||||
|
||||
@@ -75,7 +76,7 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
return round(A / max(1, (all_materials[M]*efficiency_coeff)))
|
||||
|
||||
//we eject the materials upon deconstruction.
|
||||
/obj/machinery/r_n_d/protolathe/deconstruction()
|
||||
/obj/machinery/r_n_d/protolathe/on_deconstruction()
|
||||
for(var/obj/item/weapon/reagent_containers/glass/G in component_parts)
|
||||
reagents.trans_to(G, G.reagents.maximum_volume)
|
||||
materials.retrieve_all()
|
||||
@@ -118,7 +119,7 @@ Note: Must be placed west/left of and R&D console to function.
|
||||
busy = 0
|
||||
updateUsrDialog()
|
||||
|
||||
else if(user.a_intent != "harm")
|
||||
else if(user.a_intent != INTENT_HARM)
|
||||
user << "<span class='warning'>You cannot insert this item into the [name]!</span>"
|
||||
return 1
|
||||
else
|
||||
|
||||
@@ -22,8 +22,8 @@ operations to skip that console. This is useful if you want to make a "public" R
|
||||
a circuit imprinter with certain designs on it and don't want it accidentally updating. The downside of this method is that you have
|
||||
to have physical access to the other console to send data back. Note: An R&D console is on Centcom so if a random griffan happens to
|
||||
cause a ton of data to be lost, an admin can go send it back.
|
||||
- The second method is with Technology Disks and Design Disks. Each of these disks can hold a single technology or design datum in
|
||||
it's entirety. You can then take the disk to any R&D console and upload it's data to it. This method is a lot more secure (since it
|
||||
- The second method is with Technology Disks and Design Disks. Each of these disks can hold technology or design datums in
|
||||
their entirety. You can then take the disk to any R&D console and upload it's data to it. This method is a lot more secure (since it
|
||||
won't update every console in existence) but it's more of a hassle to do. Also, the disks can be stolen.
|
||||
|
||||
|
||||
@@ -34,7 +34,6 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
icon_screen = "rdcomp"
|
||||
icon_keyboard = "rd_key"
|
||||
circuit = /obj/item/weapon/circuitboard/computer/rdconsole
|
||||
light_color = LIGHT_COLOR_PINK
|
||||
var/datum/research/files //Stores all the collected research data.
|
||||
var/obj/item/weapon/disk/tech_disk/t_disk = null //Stores the technology disk.
|
||||
var/obj/item/weapon/disk/design_disk/d_disk = null //Stores the design disk.
|
||||
@@ -52,6 +51,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
|
||||
var/selected_category
|
||||
var/list/datum/design/matching_designs = list() //for the search function
|
||||
var/disk_slot_selected = 0
|
||||
|
||||
|
||||
/proc/CallTechName(ID) //A simple helper proc to find the name of a tech with a given ID.
|
||||
@@ -122,8 +122,10 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
user << "A disk is already loaded into the machine."
|
||||
return
|
||||
|
||||
if(istype(D, /obj/item/weapon/disk/tech_disk)) t_disk = D
|
||||
else if (istype(D, /obj/item/weapon/disk/design_disk)) d_disk = D
|
||||
if(istype(D, /obj/item/weapon/disk/tech_disk))
|
||||
t_disk = D
|
||||
else if (istype(D, /obj/item/weapon/disk/design_disk))
|
||||
d_disk = D
|
||||
else
|
||||
user << "<span class='danger'>Machine cannot accept disks in that format.</span>"
|
||||
return
|
||||
@@ -136,7 +138,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
updateUsrDialog()
|
||||
|
||||
|
||||
/obj/machinery/computer/rdconsole/deconstruction()
|
||||
/obj/machinery/computer/rdconsole/on_deconstruction()
|
||||
if(linked_destroy)
|
||||
linked_destroy.linked_console = null
|
||||
linked_destroy = null
|
||||
@@ -162,6 +164,9 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
add_fingerprint(usr)
|
||||
|
||||
usr.set_machine(src)
|
||||
if(href_list["disk_slot"])
|
||||
disk_slot_selected = text2num(href_list["disk_slot"])
|
||||
|
||||
if(href_list["menu"]) //Switches menu screens. Converts a sent text string into a number. Saves a LOT of code.
|
||||
var/temp_screen = text2num(href_list["menu"])
|
||||
screen = temp_screen
|
||||
@@ -170,16 +175,34 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
selected_category = href_list["category"]
|
||||
|
||||
else if(href_list["updt_tech"]) //Update the research holder with information from the technology disk.
|
||||
var/n = text2num(href_list["updt_tech"])
|
||||
screen = 0.0
|
||||
spawn(50)
|
||||
var/wait = 50
|
||||
if(!n)
|
||||
wait = 0
|
||||
for(var/D in t_disk.tech_stored)
|
||||
if(D)
|
||||
wait += 50
|
||||
spawn(wait)
|
||||
screen = 1.2
|
||||
files.AddTech2Known(t_disk.stored)
|
||||
updateUsrDialog()
|
||||
griefProtection() //Update centcom too
|
||||
if(t_disk)
|
||||
if(!n)
|
||||
for(var/tech in t_disk.tech_stored)
|
||||
if(tech)
|
||||
files.AddTech2Known(tech)
|
||||
else
|
||||
files.AddTech2Known(t_disk.tech_stored[n])
|
||||
updateUsrDialog()
|
||||
griefProtection() //Update centcom too
|
||||
|
||||
else if(href_list["clear_tech"]) //Erase data on the technology disk.
|
||||
if(t_disk)
|
||||
t_disk.stored = null
|
||||
var/n = text2num(href_list["clear_tech"])
|
||||
if(!n)
|
||||
for(var/i in 1 to t_disk.max_tech_stored)
|
||||
t_disk.tech_stored[i] = null
|
||||
else
|
||||
t_disk.tech_stored[n] = null
|
||||
|
||||
else if(href_list["eject_tech"]) //Eject the technology disk.
|
||||
if(t_disk)
|
||||
@@ -188,20 +211,39 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
screen = 1.0
|
||||
|
||||
else if(href_list["copy_tech"]) //Copy some technology data from the research holder to the disk.
|
||||
t_disk.stored = files.known_tech[href_list["copy_tech_ID"]]
|
||||
var/slot = text2num(href_list["copy_tech"])
|
||||
t_disk.tech_stored[slot] = files.known_tech[href_list["copy_tech_ID"]]
|
||||
screen = 1.2
|
||||
|
||||
else if(href_list["updt_design"]) //Updates the research holder with design data from the design disk.
|
||||
var/n = text2num(href_list["updt_design"])
|
||||
screen = 0.0
|
||||
spawn(50)
|
||||
var/wait = 50
|
||||
if(!n)
|
||||
wait = 0
|
||||
for(var/D in d_disk.blueprints)
|
||||
if(D)
|
||||
wait += 50
|
||||
spawn(wait)
|
||||
screen = 1.4
|
||||
files.AddDesign2Known(d_disk.blueprint)
|
||||
updateUsrDialog()
|
||||
griefProtection() //Update centcom too
|
||||
if(d_disk)
|
||||
if(!n)
|
||||
for(var/D in d_disk.blueprints)
|
||||
if(D)
|
||||
files.AddDesign2Known(D)
|
||||
else
|
||||
files.AddDesign2Known(d_disk.blueprints[n])
|
||||
updateUsrDialog()
|
||||
griefProtection() //Update centcom too
|
||||
|
||||
else if(href_list["clear_design"]) //Erases data on the design disk.
|
||||
if(d_disk)
|
||||
d_disk.blueprint = null
|
||||
var/n = text2num(href_list["clear_design"])
|
||||
if(!n)
|
||||
for(var/i in 1 to d_disk.max_blueprints)
|
||||
d_disk.blueprints[i] = null
|
||||
else
|
||||
d_disk.blueprints[n] = null
|
||||
|
||||
else if(href_list["eject_design"]) //Eject the design disk.
|
||||
if(d_disk)
|
||||
@@ -210,10 +252,11 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
screen = 1.0
|
||||
|
||||
else if(href_list["copy_design"]) //Copy design data from the research holder to the design disk.
|
||||
var/slot = text2num(href_list["copy_design"])
|
||||
var/datum/design/D = files.known_designs[href_list["copy_design_ID"]]
|
||||
if(D)
|
||||
var/autolathe_friendly = 1
|
||||
if(D.reagents.len)
|
||||
if(D.reagents_list.len)
|
||||
autolathe_friendly = 0
|
||||
D.category -= "Imported"
|
||||
else
|
||||
@@ -225,7 +268,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
if(D.build_type & (AUTOLATHE|PROTOLATHE|CRAFTLATHE)) // Specifically excludes circuit imprinter and mechfab
|
||||
D.build_type = autolathe_friendly ? (D.build_type | AUTOLATHE) : D.build_type
|
||||
D.category |= "Imported"
|
||||
d_disk.blueprint = D
|
||||
d_disk.blueprints[slot] = D
|
||||
screen = 1.4
|
||||
|
||||
else if(href_list["eject_item"]) //Eject the item inside the destructive analyzer.
|
||||
@@ -234,7 +277,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
usr << "<span class='danger'>The destructive analyzer is busy at the moment.</span>"
|
||||
|
||||
else if(linked_destroy.loaded_item)
|
||||
linked_destroy.loaded_item.loc = linked_destroy.loc
|
||||
linked_destroy.loaded_item.forceMove(linked_destroy.loc)
|
||||
linked_destroy.loaded_item = null
|
||||
linked_destroy.icon_state = "d_analyzer"
|
||||
screen = 1.0
|
||||
@@ -342,6 +385,9 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
var/datum/design/being_built = files.known_designs[href_list["build"]]
|
||||
var/amount = text2num(href_list["amount"])
|
||||
|
||||
if(being_built.make_reagents.len)
|
||||
return 0
|
||||
|
||||
if(!linked_lathe || !being_built || !amount)
|
||||
updateUsrDialog()
|
||||
return
|
||||
@@ -380,18 +426,21 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
enough_materials = 0
|
||||
g2g = 0
|
||||
else
|
||||
for(var/R in being_built.reagents)
|
||||
if(!linked_lathe.reagents.has_reagent(R, being_built.reagents[R]*coeff))
|
||||
for(var/R in being_built.reagents_list)
|
||||
if(!linked_lathe.reagents.has_reagent(R, being_built.reagents_list[R]*coeff))
|
||||
linked_lathe.say("Not enough reagents to complete prototype.")
|
||||
enough_materials = 0
|
||||
g2g = 0
|
||||
|
||||
if(enough_materials)
|
||||
linked_lathe.materials.use_amount(efficient_mats, amount)
|
||||
for(var/R in being_built.reagents)
|
||||
linked_lathe.reagents.remove_reagent(R, being_built.reagents[R]*coeff)
|
||||
for(var/R in being_built.reagents_list)
|
||||
linked_lathe.reagents.remove_reagent(R, being_built.reagents_list[R]*coeff)
|
||||
|
||||
var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes.
|
||||
|
||||
coeff *= being_built.lathe_time_factor
|
||||
|
||||
spawn(32*coeff*amount**0.8)
|
||||
if(linked_lathe)
|
||||
if(g2g) //And if we only fail the material requirements, we still spend time and power
|
||||
@@ -453,16 +502,16 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
enough_materials = 0
|
||||
g2g = 0
|
||||
else
|
||||
for(var/R in being_built.reagents)
|
||||
if(!linked_imprinter.reagents.has_reagent(R, being_built.reagents[R]/coeff))
|
||||
for(var/R in being_built.reagents_list)
|
||||
if(!linked_imprinter.reagents.has_reagent(R, being_built.reagents_list[R]/coeff))
|
||||
linked_imprinter.say("Not enough reagents to complete prototype.")
|
||||
enough_materials = 0
|
||||
g2g = 0
|
||||
|
||||
if(enough_materials)
|
||||
linked_imprinter.materials.use_amount(efficient_mats)
|
||||
for(var/R in being_built.reagents)
|
||||
linked_imprinter.reagents.remove_reagent(R, being_built.reagents[R]/coeff)
|
||||
for(var/R in being_built.reagents_list)
|
||||
linked_imprinter.reagents.remove_reagent(R, being_built.reagents_list[R]/coeff)
|
||||
|
||||
var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes.
|
||||
spawn(16)
|
||||
@@ -522,7 +571,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
else if(href_list["reset"]) //Reset the R&D console's database.
|
||||
griefProtection()
|
||||
var/choice = alert("R&D Console Database Reset", "Are you sure you want to reset the R&D console's database? Data lost cannot be recovered.", "Continue", "Cancel")
|
||||
if(choice == "Continue")
|
||||
if(choice == "Continue" && usr.canUseTopic(src))
|
||||
message_admins("[key_name_admin(usr)] reset \the [src.name]'s database")
|
||||
log_game("[key_name_admin(usr)] reset \the [src.name]'s database")
|
||||
screen = 0.0
|
||||
@@ -640,22 +689,19 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
dat += "</div>"
|
||||
|
||||
if(1.2) //Technology Disk Menu
|
||||
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A><HR>"
|
||||
dat += "<div class='statusDisplay'>Technology Data Disk Contents:<BR><BR>"
|
||||
if(t_disk.stored == null)
|
||||
dat += "The disk has no data stored on it.</div>"
|
||||
dat += "Operations: "
|
||||
dat += "<A href='?src=\ref[src];menu=1.3'>Load Tech to Disk</A>"
|
||||
else
|
||||
dat += "Name: [t_disk.stored.name]<BR>"
|
||||
dat += "Level: [t_disk.stored.level]<BR>"
|
||||
dat += "Description: [t_disk.stored.desc]</div>"
|
||||
dat += "Operations: "
|
||||
dat += "<A href='?src=\ref[src];updt_tech=1'>Upload to Database</A>"
|
||||
dat += "<A href='?src=\ref[src];clear_tech=1'>Clear Disk</A>"
|
||||
dat += "<A href='?src=\ref[src];eject_tech=1'>Eject Disk</A>"
|
||||
|
||||
dat += "Disk Operations: <A href='?src=\ref[src];clear_tech=0'>Clear Disk</A><A href='?src=\ref[src];updt_tech=0'>Upload All</A><A href='?src=\ref[src];eject_tech=1'>Eject Disk</A>"
|
||||
for(var/i in 1 to t_disk.max_tech_stored)
|
||||
dat += "<div class='statusDisplay'>"
|
||||
if(t_disk.tech_stored[i])
|
||||
var/datum/tech/tech = t_disk.tech_stored[i]
|
||||
dat += "Name: [tech.name]<BR>"
|
||||
dat += "Level: [tech.level]<BR>"
|
||||
dat += "Description: [tech.desc]<BR>"
|
||||
dat += "Operations: <A href='?src=\ref[src];updt_tech=[i]'>Upload to Database</A><A href='?src=\ref[src];clear_tech=[i]'>Clear Slot</A>"
|
||||
else
|
||||
dat += "Empty Slot<BR>Operations: <A href='?src=\ref[src];menu=1.3;disk_slot=[i]'>Load Tech to Slot</A>"
|
||||
dat += "</div>"
|
||||
if(1.3) //Technology Disk submenu
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
dat += "<A href='?src=\ref[src];menu=1.2'>Return to Disk Operations</A><div class='statusDisplay'>"
|
||||
@@ -664,42 +710,41 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
var/datum/tech/T = files.known_tech[v]
|
||||
if(T.level <= 0)
|
||||
continue
|
||||
dat += "[T.name] "
|
||||
dat += "<A href='?src=\ref[src];copy_tech=1;copy_tech_ID=[T.id]'>Copy to Disk</A><BR>"
|
||||
dat += "[T.name]"
|
||||
dat += "<A href='?src=\ref[src];copy_tech=[disk_slot_selected];copy_tech_ID=[T.id]'>Copy to Disk</A><BR>"
|
||||
dat += "</div>"
|
||||
|
||||
if(1.4) //Design Disk menu.
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A><div class='statusDisplay'>"
|
||||
if(d_disk.blueprint == null)
|
||||
dat += "The disk has no data stored on it.</div>"
|
||||
dat += "Operations: "
|
||||
dat += "<A href='?src=\ref[src];menu=1.5'>Load Design to Disk</A>"
|
||||
else
|
||||
dat += "Name: [d_disk.blueprint.name]<BR>"
|
||||
var/b_type = d_disk.blueprint.build_type
|
||||
if(b_type)
|
||||
dat += "Lathe Types:<BR>"
|
||||
if(b_type & IMPRINTER) dat += "Circuit Imprinter<BR>"
|
||||
if(b_type & PROTOLATHE) dat += "Protolathe<BR>"
|
||||
if(b_type & AUTOLATHE) dat += "Autolathe<BR>"
|
||||
if(b_type & MECHFAB) dat += "Exosuit Fabricator<BR>"
|
||||
dat += "Required Materials:<BR>"
|
||||
var/all_mats = d_disk.blueprint.materials + d_disk.blueprint.reagents
|
||||
for(var/M in all_mats)
|
||||
dat += "* [CallMaterialName(M)] x [all_mats[M]]<BR>"
|
||||
dat += "</div>Operations: "
|
||||
dat += "<A href='?src=\ref[src];updt_design=1'>Upload to Database</A>"
|
||||
dat += "<A href='?src=\ref[src];clear_design=1'>Clear Disk</A>"
|
||||
dat += "<A href='?src=\ref[src];eject_design=1'>Eject Disk</A>"
|
||||
|
||||
if(1.5) //Technology disk submenu
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A><HR>"
|
||||
dat += "Disk Operations: <A href='?src=\ref[src];clear_design=0'>Clear Disk</A><A href='?src=\ref[src];updt_design=0'>Upload All</A><A href='?src=\ref[src];eject_design=1'>Eject Disk</A>"
|
||||
for(var/i in 1 to d_disk.max_blueprints)
|
||||
dat += "<div class='statusDisplay'>"
|
||||
if(d_disk.blueprints[i])
|
||||
var/datum/design/D = d_disk.blueprints[i]
|
||||
dat += "Name: [D.name]<BR>"
|
||||
if(D.build_type)
|
||||
dat += "Lathe Types:<BR>"
|
||||
if(D.build_type & IMPRINTER) dat += "Circuit Imprinter<BR>"
|
||||
if(D.build_type & PROTOLATHE) dat += "Protolathe<BR>"
|
||||
if(D.build_type & AUTOLATHE) dat += "Autolathe<BR>"
|
||||
if(D.build_type & MECHFAB) dat += "Exosuit Fabricator<BR>"
|
||||
if(D.build_type & BIOGENERATOR) dat += "Biogenerator<BR>"
|
||||
dat += "Required Materials:<BR>"
|
||||
var/all_mats = D.materials + D.reagents_list
|
||||
for(var/M in all_mats)
|
||||
dat += "* [CallMaterialName(M)] x [all_mats[M]]<BR>"
|
||||
dat += "Operations: <A href='?src=\ref[src];updt_design=[i]'>Upload to Database</A> <A href='?src=\ref[src];clear_design=[i]'>Clear Slot</A>"
|
||||
else
|
||||
dat += "Empty Slot<BR>Operations: <A href='?src=\ref[src];menu=1.5;disk_slot=[i]'>Load Design to Slot</A>"
|
||||
dat += "</div>"
|
||||
if(1.5) //Design disk submenu
|
||||
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"
|
||||
dat += "<A href='?src=\ref[src];menu=1.4'>Return to Disk Operations</A><div class='statusDisplay'>"
|
||||
dat += "<h3>Load Design to Disk:</h3><BR>"
|
||||
for(var/v in files.known_designs)
|
||||
var/datum/design/D = files.known_designs[v]
|
||||
dat += "[D.name] "
|
||||
dat += "<A href='?src=\ref[src];copy_design=1;copy_design_ID=[D.id]'>Copy to Disk</A><BR>"
|
||||
dat += "<A href='?src=\ref[src];copy_design=[disk_slot_selected];copy_design_ID=[D.id]'>Copy to Disk</A><BR>"
|
||||
dat += "</div>"
|
||||
|
||||
if(1.6) //R&D console settings
|
||||
@@ -806,7 +851,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
var/c = 50
|
||||
var/t
|
||||
|
||||
var/all_materials = D.materials + D.reagents
|
||||
var/all_materials = D.materials + D.reagents_list
|
||||
for(var/M in all_materials)
|
||||
t = linked_lathe.check_mat(D, M)
|
||||
temp_material += " | "
|
||||
@@ -840,13 +885,14 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
var/temp_material
|
||||
var/c = 50
|
||||
var/t
|
||||
for(var/M in D.materials)
|
||||
var/all_materials = D.materials + D.reagents_list
|
||||
for(var/M in all_materials)
|
||||
t = linked_lathe.check_mat(D, M)
|
||||
temp_material += " | "
|
||||
if (t < 1)
|
||||
temp_material += "<span class='bad'>[D.materials[M]*coeff] [CallMaterialName(M)]</span>"
|
||||
temp_material += "<span class='bad'>[all_materials[M]*coeff] [CallMaterialName(M)]</span>"
|
||||
else
|
||||
temp_material += " [D.materials[M]*coeff] [CallMaterialName(M)]"
|
||||
temp_material += " [all_materials[M]*coeff] [CallMaterialName(M)]"
|
||||
c = min(c,t)
|
||||
|
||||
if (c >= 1)
|
||||
@@ -924,7 +970,7 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
var/temp_materials
|
||||
var/check_materials = 1
|
||||
|
||||
var/all_materials = D.materials + D.reagents
|
||||
var/all_materials = D.materials + D.reagents_list
|
||||
|
||||
for(var/M in all_materials)
|
||||
temp_materials += " | "
|
||||
@@ -950,13 +996,14 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
for(var/datum/design/D in matching_designs)
|
||||
var/temp_materials
|
||||
var/check_materials = 1
|
||||
for(var/M in D.materials)
|
||||
var/all_materials = D.materials + D.reagents_list
|
||||
for(var/M in all_materials)
|
||||
temp_materials += " | "
|
||||
if (!linked_imprinter.check_mat(D, M))
|
||||
check_materials = 0
|
||||
temp_materials += " <span class='bad'>[D.materials[M]/coeff] [CallMaterialName(M)]</span>"
|
||||
temp_materials += " <span class='bad'>[all_materials[M]/coeff] [CallMaterialName(M)]</span>"
|
||||
else
|
||||
temp_materials += " [D.materials[M]/coeff] [CallMaterialName(M)]"
|
||||
temp_materials += " [all_materials[M]/coeff] [CallMaterialName(M)]"
|
||||
if (check_materials)
|
||||
dat += "<A href='?src=\ref[src];imprint=[D.id]'>[D.name]</A>[temp_materials]<BR>"
|
||||
else
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
//This file was auto-corrected by findeclaration.exe on 25.5.2012 20:42:33
|
||||
|
||||
|
||||
//All devices that link into the R&D console fall into thise type for easy identification and some shared procs.
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
var/datum/effect_system/spark_spread/s = new /datum/effect_system/spark_spread
|
||||
s.set_up(5, 1, src)
|
||||
s.start()
|
||||
if (electrocute_mob(user, get_area(src), src, 0.7))
|
||||
if (electrocute_mob(user, get_area(src), src, 0.7, TRUE))
|
||||
return 1
|
||||
else
|
||||
return 0
|
||||
@@ -105,7 +105,7 @@
|
||||
|
||||
|
||||
//we eject the loaded item when deconstructing the machine
|
||||
/obj/machinery/r_n_d/deconstruction()
|
||||
/obj/machinery/r_n_d/on_deconstruction()
|
||||
if(loaded_item)
|
||||
loaded_item.loc = loc
|
||||
loaded_item.forceMove(loc)
|
||||
..()
|
||||
|
||||
@@ -143,11 +143,37 @@ research holder datum.
|
||||
if((D.build_type & AUTOLATHE) && ("initial" in D.category)) //autolathe starts without hacked designs
|
||||
AddDesign2Known(D)
|
||||
|
||||
//Limb Grower files
|
||||
/datum/research/limbgrower/New()
|
||||
for(var/T in (subtypesof(/datum/tech)))
|
||||
possible_tech += new T(src)
|
||||
for(var/path in subtypesof(/datum/design))
|
||||
var/datum/design/D = new path(src)
|
||||
possible_designs += D
|
||||
if((D.build_type & LIMBGROWER) && ("initial" in D.category))
|
||||
AddDesign2Known(D)
|
||||
|
||||
/datum/research/autolathe/AddDesign2Known(datum/design/D)
|
||||
if(!(D.build_type & AUTOLATHE))
|
||||
return
|
||||
..()
|
||||
|
||||
//Biogenerator files
|
||||
/datum/research/biogenerator/New()
|
||||
for(var/T in (subtypesof(/datum/tech)))
|
||||
possible_tech += new T(src)
|
||||
for(var/path in subtypesof(/datum/design))
|
||||
var/datum/design/D = new path(src)
|
||||
possible_designs += D
|
||||
if((D.build_type & BIOGENERATOR) && ("initial" in D.category))
|
||||
AddDesign2Known(D)
|
||||
|
||||
/datum/research/biogenerator/AddDesign2Known(datum/design/D)
|
||||
if(!(D.build_type & BIOGENERATOR))
|
||||
return
|
||||
..()
|
||||
|
||||
|
||||
/***************************************************************
|
||||
** Technology Datums **
|
||||
** Includes all the various technoliges and what they make. **
|
||||
@@ -273,12 +299,44 @@ research holder datum.
|
||||
return cost
|
||||
|
||||
/obj/item/weapon/disk/tech_disk
|
||||
name = "Technology Disk"
|
||||
name = "technology disk"
|
||||
desc = "A disk for storing technology data for further research."
|
||||
icon_state = "datadisk0"
|
||||
materials = list(MAT_METAL=30, MAT_GLASS=10)
|
||||
var/datum/tech/stored
|
||||
materials = list(MAT_METAL=300, MAT_GLASS=100)
|
||||
var/list/tech_stored = list()
|
||||
var/max_tech_stored = 1
|
||||
|
||||
/obj/item/weapon/disk/tech_disk/New()
|
||||
..()
|
||||
src.pixel_x = rand(-5, 5)
|
||||
src.pixel_y = rand(-5, 5)
|
||||
src.pixel_y = rand(-5, 5)
|
||||
for(var/i in 1 to max_tech_stored)
|
||||
tech_stored += null
|
||||
|
||||
|
||||
/obj/item/weapon/disk/tech_disk/adv
|
||||
name = "advanced technology disk"
|
||||
desc = "A disk for storing technology data for further research. This one has extra storage space."
|
||||
materials = list(MAT_METAL=300, MAT_GLASS=100, MAT_SILVER=50)
|
||||
max_tech_stored = 5
|
||||
|
||||
/obj/item/weapon/disk/tech_disk/super_adv
|
||||
name = "quantum technology disk"
|
||||
desc = "A disk for storing technology data for further research. This one has extremely large storage space."
|
||||
materials = list(MAT_METAL=300, MAT_GLASS=100, MAT_SILVER=100, MAT_GOLD=100)
|
||||
max_tech_stored = 10
|
||||
|
||||
/obj/item/weapon/disk/tech_disk/debug
|
||||
name = "centcomm technology disk"
|
||||
desc = "A debug item for research"
|
||||
materials = list()
|
||||
max_tech_stored = 0
|
||||
|
||||
/obj/item/weapon/disk/tech_disk/debug/New()
|
||||
..()
|
||||
var/list/techs = subtypesof(/datum/tech)
|
||||
max_tech_stored = techs.len
|
||||
for(var/V in techs)
|
||||
var/datum/tech/T = new V()
|
||||
tech_stored += T
|
||||
T.level = 8
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
icon = 'icons/obj/machines/research.dmi'
|
||||
icon_state = "server"
|
||||
var/datum/research/files
|
||||
var/health = 100
|
||||
var/heat_health = 100
|
||||
var/list/id_with_upload = list() //List of R&D consoles with upload to server access.
|
||||
var/list/id_with_download = list() //List of R&D consoles with download from server access.
|
||||
var/id_with_upload_string = "" //String versions for easy editing in map editor.
|
||||
@@ -56,12 +56,12 @@
|
||||
var/datum/gas_mixture/environment = loc.return_air()
|
||||
switch(environment.temperature)
|
||||
if(0 to T0C)
|
||||
health = min(100, health + 1)
|
||||
heat_health = min(100, heat_health + 1)
|
||||
if(T0C to (T20C + 20))
|
||||
health = Clamp(health, 0, 100)
|
||||
heat_health = Clamp(heat_health, 0, 100)
|
||||
if((T20C + 20) to (T0C + 70))
|
||||
health = max(0, health - 1)
|
||||
if(health <= 0)
|
||||
heat_health = max(0, heat_health - 1)
|
||||
if(heat_health <= 0)
|
||||
/*griefProtection() This seems to get called twice before running any code that deletes/damages the server or it's files anwyay.
|
||||
refreshParts and the hasReq procs that get called by this are laggy and do not need to be called by every server on the map every tick */
|
||||
var/updateRD = 0
|
||||
@@ -84,18 +84,10 @@
|
||||
griefProtection()
|
||||
..()
|
||||
|
||||
|
||||
/obj/machinery/r_n_d/server/ex_act(severity, target)
|
||||
griefProtection()
|
||||
..()
|
||||
|
||||
|
||||
/obj/machinery/r_n_d/server/blob_act(obj/effect/blob/B)
|
||||
griefProtection()
|
||||
..()
|
||||
|
||||
|
||||
|
||||
//Backup files to centcom to help admins recover data after greifer attacks
|
||||
/obj/machinery/r_n_d/server/proc/griefProtection()
|
||||
for(var/obj/machinery/r_n_d/server/centcom/C in machines)
|
||||
@@ -129,7 +121,7 @@
|
||||
air_update_turf()
|
||||
|
||||
//called when the server is deconstructed.
|
||||
/obj/machinery/r_n_d/server/deconstruction()
|
||||
/obj/machinery/r_n_d/server/on_deconstruction()
|
||||
griefProtection()
|
||||
..()
|
||||
|
||||
@@ -234,7 +226,7 @@
|
||||
|
||||
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")
|
||||
if(choice == "Continue" && usr.canUseTopic(src))
|
||||
var/datum/tech/T = temp_server.files.known_tech[href_list["reset_tech"]]
|
||||
if(T)
|
||||
T.level = 1
|
||||
@@ -242,7 +234,7 @@
|
||||
|
||||
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")
|
||||
if(choice == "Continue" && usr.canUseTopic(src))
|
||||
var/datum/design/D = temp_server.files.known_designs[href_list["reset_design"]]
|
||||
if(D)
|
||||
temp_server.files.known_designs -= D.id
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
desc = "Special mechanical module made to store, sort, and apply standard machine parts."
|
||||
icon_state = "RPED"
|
||||
item_state = "RPED"
|
||||
w_class = 5
|
||||
w_class = WEIGHT_CLASS_HUGE
|
||||
can_hold = list(/obj/item/weapon/stock_parts)
|
||||
storage_slots = 50
|
||||
use_to_pickup = 1
|
||||
@@ -12,7 +12,7 @@
|
||||
allow_quick_empty = 1
|
||||
collection_mode = 1
|
||||
display_contents_with_number = 1
|
||||
max_w_class = 3
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
max_combined_w_class = 100
|
||||
var/works_from_distance = 0
|
||||
var/pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/rped.ogg'
|
||||
@@ -25,16 +25,16 @@
|
||||
if(istype(T))
|
||||
if(T.component_parts)
|
||||
T.exchange_parts(user, src)
|
||||
user.Beam(T,icon_state="rped_upgrade",icon='icons/effects/effects.dmi',time=5)
|
||||
user.Beam(T,icon_state="rped_upgrade",time=5)
|
||||
return
|
||||
|
||||
/obj/item/weapon/storage/part_replacer/bluespace
|
||||
name = "bluespace rapid part exchange device"
|
||||
desc = "A version of the RPED that allows for replacement of parts and scanning from a distance, along with higher capacity for parts."
|
||||
icon_state = "BS_RPED"
|
||||
w_class = 3
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
storage_slots = 400
|
||||
max_w_class = 3
|
||||
max_w_class = WEIGHT_CLASS_NORMAL
|
||||
max_combined_w_class = 800
|
||||
works_from_distance = 1
|
||||
pshoom_or_beepboopblorpzingshadashwoosh = 'sound/items/PSHOOM.ogg'
|
||||
@@ -45,7 +45,7 @@
|
||||
if(get_dist(user, dest_object) < 8)
|
||||
if(dest_object.storage_contents_dump_act(src, user))
|
||||
play_rped_sound()
|
||||
user.Beam(dest_object,icon_state="rped_upgrade",icon='icons/effects/effects.dmi',time=5)
|
||||
user.Beam(dest_object,icon_state="rped_upgrade",time=5)
|
||||
return 1
|
||||
user << "The [src.name] buzzes."
|
||||
playsound(src, 'sound/machines/buzz-sigh.ogg', 50, 0)
|
||||
@@ -67,7 +67,7 @@
|
||||
name = "stock part"
|
||||
desc = "What?"
|
||||
icon = 'icons/obj/stock_parts.dmi'
|
||||
w_class = 2
|
||||
w_class = WEIGHT_CLASS_SMALL
|
||||
var/rating = 1
|
||||
|
||||
/obj/item/weapon/stock_parts/New()
|
||||
@@ -301,4 +301,4 @@
|
||||
icon = 'icons/obj/stock_parts.dmi'
|
||||
icon_state = "capacitor"
|
||||
desc = "A debug item for research."
|
||||
origin_tech = "materials=8;programming=8;magnets=8;powerstorage=8;bluespace=8;combat=8;biotech=8;syndicate=8;engineering=8;plasmatech=8"
|
||||
origin_tech = "materials=8;programming=8;magnets=8;powerstorage=8;bluespace=8;combat=8;biotech=8;syndicate=8;engineering=8;plasmatech=8;abductor=8"
|
||||
|
||||
@@ -28,7 +28,6 @@
|
||||
|
||||
icon_screen = "slime_comp"
|
||||
icon_keyboard = "rd_key"
|
||||
light_color = LIGHT_COLOR_PINK
|
||||
|
||||
/obj/machinery/computer/camera_advanced/xenobio/CreateEye()
|
||||
eyeobj = new /mob/camera/aiEye/remote/xenobio()
|
||||
@@ -66,10 +65,20 @@
|
||||
/obj/machinery/computer/camera_advanced/xenobio/attackby(obj/item/O, mob/user, params)
|
||||
if(istype(O, /obj/item/weapon/reagent_containers/food/snacks/monkeycube))
|
||||
monkeys++
|
||||
user << "<span class='notice'>You feed [O] to the [src]. It now has [monkeys] monkey cubes stored.</span>"
|
||||
user << "<span class='notice'>You feed [O] to [src]. It now has [monkeys] monkey cubes stored.</span>"
|
||||
user.drop_item()
|
||||
qdel(O)
|
||||
return
|
||||
else if(istype(O, /obj/item/weapon/storage/bag))
|
||||
var/obj/item/weapon/storage/P = O
|
||||
var/loaded = 0
|
||||
for(var/obj/G in P.contents)
|
||||
if(istype(G, /obj/item/weapon/reagent_containers/food/snacks/monkeycube))
|
||||
loaded = 1
|
||||
monkeys++
|
||||
qdel(G)
|
||||
if (loaded)
|
||||
user << "<span class='notice'>You fill [src] with the monkey cubes stored in [O]. [src] now has [monkeys] monkey cubes stored.</span>"
|
||||
..()
|
||||
|
||||
/datum/action/innate/camera_off/xenobio/Activate()
|
||||
|
||||
@@ -7,12 +7,13 @@
|
||||
icon = 'icons/mob/slimes.dmi'
|
||||
icon_state = "grey slime extract"
|
||||
force = 1
|
||||
w_class = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
throwforce = 0
|
||||
throw_speed = 3
|
||||
throw_range = 6
|
||||
origin_tech = "biotech=3"
|
||||
var/Uses = 1 // uses before it goes inert
|
||||
var/qdel_timer = null // deletion timer, for delayed reactions
|
||||
|
||||
/obj/item/slime_extract/attackby(obj/item/O, mob/user)
|
||||
if(istype(O, /obj/item/slimepotion/enhancer))
|
||||
@@ -121,7 +122,7 @@
|
||||
/obj/item/slimepotion
|
||||
name = "slime potion"
|
||||
desc = "A hard yet gelatinous capsule excreted by a slime, containing mysterious substances."
|
||||
w_class = 1
|
||||
w_class = WEIGHT_CLASS_TINY
|
||||
origin_tech = "biotech=4"
|
||||
|
||||
/obj/item/slimepotion/afterattack(obj/item/weapon/reagent_containers/target, mob/user , proximity)
|
||||
@@ -133,7 +134,7 @@
|
||||
name = "docility potion"
|
||||
desc = "A potent chemical mix that nullifies a slime's hunger, causing it to become docile and tame."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle19"
|
||||
icon_state = "potsilver"
|
||||
|
||||
/obj/item/slimepotion/docility/attack(mob/living/simple_animal/slime/M, mob/user)
|
||||
if(!isslime(M))
|
||||
@@ -156,10 +157,10 @@
|
||||
qdel(src)
|
||||
|
||||
/obj/item/slimepotion/sentience
|
||||
name = "sentience potion"
|
||||
desc = "A miraculous chemical mix that can raise the intelligence of creatures to human levels. Unlike normal slime potions, it can be absorbed by any nonsentient being."
|
||||
name = "intelligence potion"
|
||||
desc = "A miraculous chemical mix that grants human like intelligence to living beings."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle19"
|
||||
icon_state = "potpink"
|
||||
origin_tech = "biotech=6"
|
||||
var/list/not_interested = list()
|
||||
var/being_used = 0
|
||||
@@ -184,17 +185,17 @@
|
||||
user << "<span class='notice'>You offer the sentience potion to [SM]...</span>"
|
||||
being_used = 1
|
||||
|
||||
var/list/mob/dead/observer/candidates = pollCandidates("Do you want to play as [SM.name]?", ROLE_ALIEN, null, ROLE_ALIEN, 50)
|
||||
var/list/candidates = pollCandidatesForMob("Do you want to play as [SM.name]?", ROLE_ALIEN, null, ROLE_ALIEN, 50, SM, POLL_IGNORE_SENTIENCE_POTION) // see poll_ignore.dm
|
||||
var/mob/dead/observer/theghost = null
|
||||
if(candidates.len)
|
||||
theghost = pick(candidates)
|
||||
SM.key = theghost.key
|
||||
SM.languages_spoken |= HUMAN
|
||||
SM.languages_understood |= HUMAN
|
||||
SM.faction = user.faction
|
||||
SM.mind.enslave_mind_to_creator(user)
|
||||
SM.sentience_act()
|
||||
SM << "<span class='warning'>All at once it makes sense: you know what you are and who you are! Self awareness is yours!</span>"
|
||||
SM << "<span class='userdanger'>You are grateful to be self aware and owe [user] a great debt. Serve [user], and assist them in completing their goals at any cost.</span>"
|
||||
SM << "<span class='userdanger'>You are grateful to be self aware and owe [user] a great debt. Serve [user], and assist [user.p_them()] in completing [user.p_their()] goals at any cost.</span>"
|
||||
user << "<span class='notice'>[SM] accepts the potion and suddenly becomes attentive and aware. It worked!</span>"
|
||||
qdel(src)
|
||||
else
|
||||
@@ -206,7 +207,7 @@
|
||||
name = "consciousness transference potion"
|
||||
desc = "A strange slime-based chemical that, when used, allows the user to transfer their consciousness to a lesser being."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle6"
|
||||
icon_state = "potorange"
|
||||
origin_tech = "biotech=6"
|
||||
var/prompted = 0
|
||||
var/animal_type = SENTIENCE_ORGANIC
|
||||
@@ -239,7 +240,7 @@
|
||||
user.mind.transfer_to(SM)
|
||||
SM.languages_spoken = user.languages_spoken
|
||||
SM.languages_understood = user.languages_understood
|
||||
SM.faction = user.faction
|
||||
SM.faction = user.faction.Copy()
|
||||
SM.sentience_act() //Same deal here as with sentience
|
||||
user.death()
|
||||
SM << "<span class='notice'>In a quick flash, you feel your consciousness flow into [SM]!</span>"
|
||||
@@ -251,7 +252,7 @@
|
||||
name = "slime steroid"
|
||||
desc = "A potent chemical mix that will cause a baby slime to generate more extract."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle16"
|
||||
icon_state = "potred"
|
||||
|
||||
/obj/item/slimepotion/steroid/attack(mob/living/simple_animal/slime/M, mob/user)
|
||||
if(!isslime(M))//If target is not a slime.
|
||||
@@ -275,13 +276,13 @@
|
||||
name = "extract enhancer"
|
||||
desc = "A potent chemical mix that will give a slime extract an additional use."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle17"
|
||||
icon_state = "potpurple"
|
||||
|
||||
/obj/item/slimepotion/stabilizer
|
||||
name = "slime stabilizer"
|
||||
desc = "A potent chemical mix that will reduce the chance of a slime mutating."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle15"
|
||||
icon_state = "potcyan"
|
||||
|
||||
/obj/item/slimepotion/stabilizer/attack(mob/living/simple_animal/slime/M, mob/user)
|
||||
if(!isslime(M))
|
||||
@@ -302,7 +303,7 @@
|
||||
name = "slime mutator"
|
||||
desc = "A potent chemical mix that will increase the chance of a slime mutating."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle3"
|
||||
icon_state = "potgreen"
|
||||
|
||||
/obj/item/slimepotion/mutator/attack(mob/living/simple_animal/slime/M, mob/user)
|
||||
if(!isslime(M))
|
||||
@@ -327,7 +328,7 @@
|
||||
name = "slime speed potion"
|
||||
desc = "A potent chemical mix that will remove the slowdown from any item."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle3"
|
||||
icon_state = "potyellow"
|
||||
origin_tech = "biotech=5"
|
||||
|
||||
/obj/item/slimepotion/speed/afterattack(obj/C, mob/user)
|
||||
@@ -350,7 +351,8 @@
|
||||
V.vehicle_move_delay = 0
|
||||
|
||||
user <<"<span class='notice'>You slather the red gunk over the [C], making it faster.</span>"
|
||||
C.color = "#FF0000"
|
||||
C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
|
||||
C.add_atom_colour("#FF0000", FIXED_COLOUR_PRIORITY)
|
||||
qdel(src)
|
||||
|
||||
|
||||
@@ -358,7 +360,7 @@
|
||||
name = "slime chill potion"
|
||||
desc = "A potent chemical mix that will fireproof any article of clothing. Has three uses."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "bottle17"
|
||||
icon_state = "potblue"
|
||||
origin_tech = "biotech=5"
|
||||
var/uses = 3
|
||||
|
||||
@@ -375,14 +377,39 @@
|
||||
return ..()
|
||||
user <<"<span class='notice'>You slather the blue gunk over the [C], fireproofing it.</span>"
|
||||
C.name = "fireproofed [C.name]"
|
||||
C.color = "#000080"
|
||||
C.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
|
||||
C.add_atom_colour("#000080", FIXED_COLOUR_PRIORITY)
|
||||
C.max_heat_protection_temperature = FIRE_IMMUNITY_SUIT_MAX_TEMP_PROTECT
|
||||
C.heat_protection = C.body_parts_covered
|
||||
C.burn_state = FIRE_PROOF
|
||||
C.resistance_flags |= FIRE_PROOF
|
||||
uses --
|
||||
if(!uses)
|
||||
qdel(src)
|
||||
|
||||
/obj/item/slimepotion/genderchange
|
||||
name = "gender change potion"
|
||||
desc = "An interesting chemical mix that changes the biological gender of what its applied to. Cannot be used on things that lack gender entirely."
|
||||
icon = 'icons/obj/chemical.dmi'
|
||||
icon_state = "potlightpink"
|
||||
|
||||
/obj/item/slimepotion/genderchange/attack(mob/living/L, mob/user)
|
||||
if(!istype(L) || L.stat == DEAD)
|
||||
user << "<span class='warning'>The potion can only be used on living things!</span>"
|
||||
return
|
||||
|
||||
if(L.gender != MALE && L.gender != FEMALE)
|
||||
user << "<span class='warning'>The potion can only be used on gendered things!</span>"
|
||||
return
|
||||
|
||||
if(L.gender == MALE)
|
||||
L.gender = FEMALE
|
||||
L.visible_message("<span class='notice'>[L] suddenly looks more feminine!</span>")
|
||||
else
|
||||
L.gender = MALE
|
||||
L.visible_message("<span class='notice'>[L] suddenly looks more masculine!</span>")
|
||||
L.regenerate_icons()
|
||||
qdel(src)
|
||||
|
||||
////////Adamantine Golem stuff I dunno where else to put it
|
||||
|
||||
// This will eventually be removed.
|
||||
@@ -394,6 +421,7 @@
|
||||
item_state = "golem"
|
||||
item_color = "golem"
|
||||
flags = ABSTRACT | NODROP
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
has_sensor = 0
|
||||
|
||||
/obj/item/clothing/suit/golem
|
||||
@@ -401,11 +429,12 @@
|
||||
desc = "a golem's thick outter shell"
|
||||
icon_state = "golem"
|
||||
item_state = "golem"
|
||||
w_class = 4//bulky item
|
||||
w_class = WEIGHT_CLASS_BULKY
|
||||
gas_transfer_coefficient = 0.90
|
||||
permeability_coefficient = 0.50
|
||||
body_parts_covered = FULL_BODY
|
||||
flags_inv = HIDEGLOVES | HIDESHOES | HIDEJUMPSUIT
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
flags = ABSTRACT | NODROP
|
||||
|
||||
/obj/item/clothing/shoes/golem
|
||||
@@ -413,6 +442,7 @@
|
||||
desc = "sturdy adamantine feet"
|
||||
icon_state = "golem"
|
||||
item_state = null
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
flags = NOSLIP | ABSTRACT | NODROP
|
||||
|
||||
|
||||
@@ -422,7 +452,7 @@
|
||||
icon_state = "golem"
|
||||
item_state = "golem"
|
||||
siemens_coefficient = 0
|
||||
unacidable = 1
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
flags = ABSTRACT | NODROP
|
||||
|
||||
|
||||
@@ -433,6 +463,7 @@
|
||||
item_state = null
|
||||
siemens_coefficient = 0
|
||||
flags = ABSTRACT | NODROP
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
|
||||
|
||||
/obj/item/clothing/head/space/golem
|
||||
@@ -441,7 +472,7 @@
|
||||
item_color = "dermal"
|
||||
name = "golem's head"
|
||||
desc = "a golem's head"
|
||||
unacidable = 1
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
flags = ABSTRACT | NODROP
|
||||
|
||||
/obj/effect/golemrune
|
||||
@@ -450,7 +481,7 @@
|
||||
name = "rune"
|
||||
icon = 'icons/obj/rune.dmi'
|
||||
icon_state = "golem"
|
||||
unacidable = 1
|
||||
resistance_flags = LAVA_PROOF | FIRE_PROOF | UNACIDABLE | ACID_PROOF
|
||||
layer = TURF_LAYER
|
||||
|
||||
/obj/effect/golemrune/New()
|
||||
@@ -496,34 +527,12 @@
|
||||
G.dna.species.auto_equip(G)
|
||||
G.loc = src.loc
|
||||
G.key = ghost.key
|
||||
G << "You are an adamantine golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. Serve [user], and assist them in completing their goals at any cost."
|
||||
G << "You are an adamantine golem. You move slowly, but are highly resistant to heat and cold as well as blunt trauma. You are unable to wear clothes, but can still use most tools. \
|
||||
Serve [user], and assist [user.p_them()] in completing their goals at any cost."
|
||||
G.mind.store_memory("<b>Serve [user.real_name], your creator.</b>")
|
||||
|
||||
var/golem_becomes_antag = FALSE
|
||||
if(iscultist(user)) //If the golem's master is a part of a team antagonist, immediately make the golem one, too
|
||||
ticker.mode.add_cultist(G.mind)
|
||||
golem_becomes_antag = TRUE
|
||||
else if(is_gangster(user))
|
||||
ticker.mode.add_gangster(G.mind, user.mind.gang_datum, TRUE)
|
||||
golem_becomes_antag = TRUE
|
||||
else if(is_handofgod_redcultist(user) || is_handofgod_redprophet(user))
|
||||
ticker.mode.add_hog_follower(G.mind, "Red")
|
||||
golem_becomes_antag = TRUE
|
||||
else if(is_handofgod_bluecultist(user) || is_handofgod_blueprophet(user))
|
||||
ticker.mode.add_hog_follower(G.mind, "Blue")
|
||||
golem_becomes_antag = TRUE
|
||||
else if(is_revolutionary_in_general(user))
|
||||
ticker.mode.add_revolutionary(G.mind)
|
||||
golem_becomes_antag = TRUE
|
||||
else if(is_servant_of_ratvar(user))
|
||||
add_servant_of_ratvar(G)
|
||||
golem_becomes_antag = TRUE
|
||||
G.mind.enslave_mind_to_creator(user)
|
||||
|
||||
G.mind.enslaved_to = user
|
||||
if(golem_becomes_antag)
|
||||
G << "<span class='userdanger'>Despite your servitude to another cause, your true master remains [user.real_name]. This will never change unless your master's body is destroyed.</span>"
|
||||
if(user.mind.special_role)
|
||||
message_admins("[key_name_admin(G)](<A HREF='?_src_=holder;adminmoreinfo=\ref[G]'>?</A>) has been summoned by [key_name_admin(user)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>), an antagonist.")
|
||||
log_game("[key_name(G)] was made a golem by [key_name(user)].")
|
||||
log_admin("[key_name(G)] was made a golem by [key_name(user)].")
|
||||
qdel(src)
|
||||
@@ -540,7 +549,6 @@
|
||||
layer = FLY_LAYER
|
||||
pixel_x = -64
|
||||
pixel_y = -64
|
||||
unacidable = 1
|
||||
mouse_opacity = 0
|
||||
var/mob/living/immune = list() // the one who creates the timestop is immune
|
||||
var/list/stopped_atoms = list()
|
||||
@@ -560,13 +568,13 @@
|
||||
playsound(get_turf(src), 'sound/magic/TIMEPARADOX2.ogg', 100, 1, -1)
|
||||
for(var/i in 1 to duration-1)
|
||||
for(var/atom/A in orange (freezerange, src.loc))
|
||||
if(istype(A, /mob/living))
|
||||
if(isliving(A))
|
||||
var/mob/living/M = A
|
||||
if(M in immune)
|
||||
continue
|
||||
M.Stun(10, 1, 1)
|
||||
M.anchored = 1
|
||||
if(istype(M, /mob/living/simple_animal/hostile))
|
||||
if(ishostile(M))
|
||||
var/mob/living/simple_animal/hostile/H = M
|
||||
H.AIStatus = AI_OFF
|
||||
H.LoseTarget()
|
||||
@@ -596,7 +604,7 @@
|
||||
/obj/effect/timestop/proc/unfreeze_mob(mob/living/M)
|
||||
M.AdjustStunned(-10, 1, 1)
|
||||
M.anchored = 0
|
||||
if(istype(M, /mob/living/simple_animal/hostile))
|
||||
if(ishostile(M))
|
||||
var/mob/living/simple_animal/hostile/H = M
|
||||
H.AIStatus = initial(H.AIStatus)
|
||||
|
||||
@@ -610,7 +618,7 @@
|
||||
singular_name = "floor tile"
|
||||
desc = "Through a series of micro-teleports these tiles let people move at incredible speeds"
|
||||
icon_state = "tile-bluespace"
|
||||
w_class = 3
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
force = 6
|
||||
materials = list(MAT_METAL=500)
|
||||
throwforce = 10
|
||||
@@ -621,19 +629,12 @@
|
||||
turf_type = /turf/open/floor/bluespace
|
||||
|
||||
|
||||
/turf/open/floor/bluespace
|
||||
slowdown = -1
|
||||
icon_state = "bluespace"
|
||||
desc = "Through a series of micro-teleports these tiles let people move at incredible speeds"
|
||||
floor_tile = /obj/item/stack/tile/bluespace
|
||||
|
||||
|
||||
/obj/item/stack/tile/sepia
|
||||
name = "sepia floor tile"
|
||||
singular_name = "floor tile"
|
||||
desc = "Time seems to flow very slowly around these tiles"
|
||||
icon_state = "tile-sepia"
|
||||
w_class = 3
|
||||
w_class = WEIGHT_CLASS_NORMAL
|
||||
force = 6
|
||||
materials = list(MAT_METAL=500)
|
||||
throwforce = 10
|
||||
@@ -644,13 +645,6 @@
|
||||
turf_type = /turf/open/floor/sepia
|
||||
|
||||
|
||||
/turf/open/floor/sepia
|
||||
slowdown = 2
|
||||
icon_state = "sepia"
|
||||
desc = "Time seems to flow very slowly around these tiles"
|
||||
floor_tile = /obj/item/stack/tile/sepia
|
||||
|
||||
|
||||
/obj/item/areaeditor/blueprints/slime
|
||||
name = "cerulean prints"
|
||||
desc = "A one use yet of blueprints made of jelly like organic material. Renaming an area to 'Xenobiology Lab' will extend the reach of the management console."
|
||||
@@ -661,5 +655,6 @@
|
||||
var/area/A = get_area(src)
|
||||
if(success)
|
||||
for(var/turf/T in A)
|
||||
T.color = "#2956B2"
|
||||
T.remove_atom_colour(WASHABLE_COLOUR_PRIORITY)
|
||||
T.add_atom_colour("#2956B2", FIXED_COLOUR_PRIORITY)
|
||||
qdel(src)
|
||||
|
||||
Reference in New Issue
Block a user