Merge pull request #452 from Fox-McCloud/RND-Fixes-Balance

RnD Fixes and Tweaks
This commit is contained in:
ZomgPonies
2015-02-28 22:16:37 -05:00
12 changed files with 70 additions and 309 deletions
+7 -7
View File
@@ -15,20 +15,20 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
var/diamond_amount = 0
var/max_material_amount = 75000.0
var/efficiency_coeff
var/list/categories = list(
"AI Modules",
"Computer Boards",
"Engineering Machinery",
"Exosuit Modules",
"Hydroponics Machinery",
"Hydroponics Machinery",
"Medical Machinery",
"Misc. Machinery",
"Research Machinery",
"Subspace Telecomms",
"Teleportation Machinery"
)
reagents = new()
/obj/machinery/r_n_d/circuit_imprinter/New()
@@ -62,13 +62,13 @@ using metal and glass, it uses glass and reagents (usually sulfuric acis).
/obj/machinery/r_n_d/circuit_imprinter/proc/check_mat(datum/design/being_built, var/M)
switch(M)
if("$glass")
return (g_amount - (being_built.materials[M]/efficiency_coeff) >= 0) ? 1 : 0
return (g_amount - (being_built.materials[M]/efficiency_coeff) >= 0)
if("$gold")
return (gold_amount - (being_built.materials[M]/efficiency_coeff) >= 0) ? 1 : 0
return (gold_amount - (being_built.materials[M]/efficiency_coeff) >= 0)
if("$diamond")
return (diamond_amount - (being_built.materials[M]/efficiency_coeff) >= 0) ? 1 : 0
return (diamond_amount - (being_built.materials[M]/efficiency_coeff) >= 0)
else
return (reagents.has_reagent(M, (being_built.materials[M]/efficiency_coeff)) != 0) ? 1 : 0
return (reagents.has_reagent(M, (being_built.materials[M]/efficiency_coeff)) != 0)
/obj/machinery/r_n_d/circuit_imprinter/proc/TotalMaterials()
@@ -857,7 +857,8 @@
id = "borg_upgrade_jetpack"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/jetpack
materials = list("$metal"=10000,"$plasma"=15000,"$uranium" = 20000)
req_tech = list("engineering" = 4, "power" = 4)
materials = list("$metal"=10000, "$plasma"=5000, "$uranium" = 6000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -866,6 +867,7 @@
id = "borg_upgrade_disablercooler"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/disablercooler
req_tech = list("combat" = 5, "power" = 4)
materials = list("$metal"=80000 , "$glass"=6000 , "$gold"= 2000, "$diamond" = 500)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -902,7 +904,8 @@
id = "borg_upgrade_vtec"
build_type = MECHFAB
build_path = /obj/item/borg/upgrade/vtec
materials = list("$metal"=80000 , "$glass"=6000 , "$gold"= 5000)
req_tech = list("engineering" = 4, "materials" = 5)
materials = list("$metal"=80000 , "$glass"=6000 , "$uranium"= 5000)
construction_time = 120
category = list("Cyborg Upgrade Modules")
@@ -11,7 +11,7 @@
reliability_base = 74
build_path = "/obj/item/device/mass_spectrometer/adv"
category = list("Medical")
/datum/design/adv_reagent_scanner
name = "Advanced Reagent Scanner"
desc = "A device for identifying chemicals and their proportions."
@@ -22,18 +22,7 @@
reliability_base = 74
build_path = /obj/item/device/reagent_scanner/adv
category = list("Medical")
/datum/design/implant_chem
name = "Chemical Implant"
desc = "An implant which can be filled with various chemicals, and then injected on command."
id = "implant_chem"
req_tech = list("materials" = 2, "biotech" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/implantcase/chem
locked = 1
category = list("Medical")
/datum/design/noreactbeaker
name = "Cryostasis Beaker"
desc = "A cryostasis beaker that allows for chemical storage without reactions. Can hold up to 50 units."
@@ -44,7 +33,7 @@
reliability_base = 76
build_path = /obj/item/weapon/reagent_containers/glass/beaker/noreact
category = list("Medical")
/datum/design/cyborg_analyzer
name = "Cyborg Analyzer"
desc = "A hand-held scanner able to diagnose robotic injuries."
@@ -55,7 +44,7 @@
reliability_base = 76
build_path = /obj/item/device/robotanalyzer
category = list("Medical")
/datum/design/defib
name = "Defibrillator"
desc = "A device that delivers powerful shocks to detachable paddles that resuscitate incapacitated patients."
@@ -66,17 +55,8 @@
reliability = 76
build_path = /obj/item/weapon/defibrillator
category = list("Medical")
/datum/design/implant_free
name = "Freedom Implant"
desc = "An implant which allows the user to instantly escape from restraints."
id = "implant_free"
req_tech = list("syndicate" = 2, "biotech" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/implantcase/freedom
category = list("Medical")
/datum/design/sensor_device
name = "Handheld Crew Monitor"
desc = "A device for tracking crew members on the station."
@@ -87,28 +67,7 @@
reliability_base = 76
build_path = /obj/item/device/sensor_device
category = list("Medical")
/datum/design/implanter
name = "Implanter"
desc = "A basic implanter for injecting implants"
id = "implanter"
req_tech = list("materials" = 2, "biotech" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = "/obj/item/weapon/implanter"
category = list("Medical")
/datum/design/implant_loyal
name = "Loyalty Implant"
desc = "An implant which makes its carrier loyal to Nanotrasen."
id = "implant_loyal"
req_tech = list("materials" = 2, "biotech" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 7000, "$glass" = 7000)
build_path = /obj/item/weapon/implantcase/loyalty
locked = 1
category = list("Medical")
/datum/design/mmi
name = "Man-Machine Interface"
desc = "The Warrior's bland acronym, MMI, obscures the true horror of this monstrosity."
@@ -119,7 +78,7 @@
reliability_base = 76
build_path = /obj/item/device/mmi
category = list("Misc","Medical")
/datum/design/mass_spectrometer
name = "Mass-Spectrometer"
desc = "A device for analyzing chemicals in the blood."
@@ -130,7 +89,7 @@
reliability_base = 76
build_path = /obj/item/device/mass_spectrometer
category = list("Medical")
/datum/design/posibrain
name = "Positronic Brain"
desc = "Allows for the construction of a positronic brain"
@@ -151,7 +110,7 @@
reliability_base = 74
build_path = /obj/item/device/mmi/radio_enabled
category = list("Misc","Medical")
/datum/design/nanopaste
name = "Nanopaste"
desc = "A tube of paste containing swarms of repair nanites. Very effective in repairing robotic machinery."
@@ -1,200 +0,0 @@
/////////////////////////////////////////
/////////////PDA and Radio///////////////
/////////////////////////////////////////
/datum/design/binaryencrypt
name = "Binary Encryption Key"
desc = "An encyption key for a radio headset. Contains cypherkeys."
id = "binaryencrypt"
req_tech = list("syndicate" = 2)
build_type = PROTOLATHE
materials = list("$metal" = 300, "$glass" = 300)
build_path = /obj/item/device/encryptionkey/binary
category = list("Communication")
/datum/design/cart_atmos
name = "BreatheDeep Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_atmos"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/atmos
category = list("Communication")
/datum/design/cart_chemistry
name = "ChemWhiz Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_chemistry"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/chemistry
category = list("Communication")
/datum/design/cart_janitor
name = "CustodiPRO Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_janitor"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/janitor
category = list("Communication")
/datum/design/cart_mime
name = "Gestur-O 1000 Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_mime"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/mime
category = list("Communication")
/datum/design/cart_basic
name = "Generic Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_basic"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge
category = list("Communication")
/datum/design/cart_clown
name = "Honkworks 5.0 Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_clown"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/clown
category = list("Communication")
/datum/design/cart_hop
name = "Human Resources 9001 Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_hop"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/hop
locked = 1
category = list("Communication")
/datum/design/cart_medical
name = "Med-U Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_medical"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/medical
category = list("Communication")
/datum/design/cart_cmo
name = "Med-U DELUXE Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_cmo"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/cmo
locked = 1
category = list("Communication")
/datum/design/pda
name = "PDA"
desc = "A portable microcomputer by Thinktronic Systems, LTD. Functionality determined by a preprogrammed ROM cartridge."
id = "pda"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/device/pda
category = list("Communication")
/datum/design/cart_engineering
name = "Power-ON Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_engineering"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/engineering
category = list("Communication")
/datum/design/cart_ce
name = "Power-On DELUXE Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_ce"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/ce
locked = 1
category = list("Communication")
/datum/design/cart_security
name = "R.O.B.U.S.T. Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_security"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = "/obj/item/weapon/cartridge/security"
locked = 1
category = list("Communication")
/datum/design/cart_hos
name = "R.O.B.U.S.T. DELUXE Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_hos"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/hos
locked = 1
category = list("Communication")
/datum/design/cart_toxins
name = "Signal Ace 2 Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_toxins"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/signal/toxins
category = list("Communication")
/datum/design/cart_rd
name = "Signal Ace DELUXE Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_rd"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/rd
locked = 1
category = list("Communication")
/datum/design/cart_quartermaster
name = "Space Parts & Space Vendors Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_quartermaster"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/quartermaster
locked = 1
category = list("Communication")
/datum/design/cart_captain
name = "Value-PAK Cartridge"
desc = "A data cartridge for portable microcomputers."
id = "cart_captain"
req_tech = list("engineering" = 2, "powerstorage" = 3)
build_type = PROTOLATHE
materials = list("$metal" = 50, "$glass" = 50)
build_path = /obj/item/weapon/cartridge/captain
locked = 1
category = list("Communication")
+4 -5
View File
@@ -26,17 +26,16 @@ Note: Must be placed west/left of and R&D console to function.
var/list/categories = list(
"Bluespace",
"Communication",
"Equipment",
"Janitorial",
"Medical",
"Mining",
"Miscellaneous",
"Power",
"Stock Parts",
"Weapons"
)
"Stock Parts",
"Weapons"
)
reagents = new()
+32 -28
View File
@@ -389,34 +389,38 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if (g2g) //If input is incorrect, nothing happens
var/enough_materials = 1
linked_lathe.busy = 1
flick("protolathe_n",linked_lathe)
use_power(power)
for(var/M in being_built.materials)
if(!linked_lathe.check_mat(being_built, M))
if(linked_lathe.check_mat(being_built, M) < amount)
src.visible_message("<span class='notice'>The [src.name] beeps, \"Not enough materials to complete prototype.\"</span>")
enough_materials = 0
g2g = 0
break
switch(M)
if("$metal")
linked_lathe.m_amount = max(0, (linked_lathe.m_amount-(being_built.materials[M]/coeff * amount)))
if("$glass")
linked_lathe.g_amount = max(0, (linked_lathe.g_amount-(being_built.materials[M]/coeff * amount)))
if("$gold")
linked_lathe.gold_amount = max(0, (linked_lathe.gold_amount-(being_built.materials[M]/coeff * amount)))
if("$silver")
linked_lathe.silver_amount = max(0, (linked_lathe.silver_amount-(being_built.materials[M]/coeff * amount)))
if("$plasma")
linked_lathe.plasma_amount = max(0, (linked_lathe.plasma_amount-(being_built.materials[M]/coeff * amount)))
if("$uranium")
linked_lathe.uranium_amount = max(0, (linked_lathe.uranium_amount-(being_built.materials[M]/coeff * amount)))
if("$diamond")
linked_lathe.diamond_amount = max(0, (linked_lathe.diamond_amount-(being_built.materials[M]/coeff * amount)))
if("$bananium")
linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-(being_built.materials[M]/coeff * amount)))
else
linked_lathe.reagents.remove_reagent(M, being_built.materials[M]/coeff * amount)
if(enough_materials)
for(var/M in being_built.materials)
switch(M)
if("$metal")
linked_lathe.m_amount = max(0, (linked_lathe.m_amount-(being_built.materials[M]/coeff * amount)))
if("$glass")
linked_lathe.g_amount = max(0, (linked_lathe.g_amount-(being_built.materials[M]/coeff * amount)))
if("$gold")
linked_lathe.gold_amount = max(0, (linked_lathe.gold_amount-(being_built.materials[M]/coeff * amount)))
if("$silver")
linked_lathe.silver_amount = max(0, (linked_lathe.silver_amount-(being_built.materials[M]/coeff * amount)))
if("$plasma")
linked_lathe.plasma_amount = max(0, (linked_lathe.plasma_amount-(being_built.materials[M]/coeff * amount)))
if("$uranium")
linked_lathe.uranium_amount = max(0, (linked_lathe.uranium_amount-(being_built.materials[M]/coeff * amount)))
if("$diamond")
linked_lathe.diamond_amount = max(0, (linked_lathe.diamond_amount-(being_built.materials[M]/coeff * amount)))
if("$bananium")
linked_lathe.clown_amount = max(0, (linked_lathe.clown_amount-(being_built.materials[M]/coeff * amount)))
else
linked_lathe.reagents.remove_reagent(M, being_built.materials[M]/coeff * amount)
var/P = being_built.build_path //lets save these values before the spawn() just in case. Nobody likes runtimes.
var/R = being_built.reliability
@@ -855,17 +859,17 @@ won't update every console in existence) but it's more of a hassle to do. Also,
for(var/M in D.materials)
t = linked_lathe.check_mat(D, M)
temp_material += " | "
if (!t)
if (t < 1)
temp_material += "<span class='bad'>[D.materials[M]/coeff] [CallMaterialName(M)]</span>"
else
temp_material += " [D.materials[M]/coeff] [CallMaterialName(M)]"
c = min(c,t)
if (c)
if (c >= 1)
dat += "<A href='?src=\ref[src];build=[D.id];amount=1'>[D.name]</A>"
if(c >= 5.0)
if(c >= 5)
dat += "<A href='?src=\ref[src];build=[D.id];amount=5'>x5</A>"
if(c >= 10.0)
if(c >= 10)
dat += "<A href='?src=\ref[src];build=[D.id];amount=10'>x10</A>"
dat += "[temp_material]"
else
@@ -890,17 +894,17 @@ won't update every console in existence) but it's more of a hassle to do. Also,
for(var/M in D.materials)
t = linked_lathe.check_mat(D, M)
temp_material += " | "
if (!t)
if (t < 1)
temp_material += "<span class='bad'>[D.materials[M]/coeff] [CallMaterialName(M)]</span>"
else
temp_material += " [D.materials[M]/coeff] [CallMaterialName(M)]"
c = min(c,t)
if (c)
if (c >= 1)
dat += "<A href='?src=\ref[src];build=[D.id];amount=1'>[D.name]</A>"
if(c >= 5.0)
if(c >= 5)
dat += "<A href='?src=\ref[src];build=[D.id];amount=5'>x5</A>"
if(c >= 10.0)
if(c >= 10)
dat += "<A href='?src=\ref[src];build=[D.id];amount=10'>x10</A>"
dat += "[temp_material]"
else