From fa4ef1bb9da9ebc934d5ba9485abb517a5c4e6af Mon Sep 17 00:00:00 2001 From: Jamini Date: Thu, 4 Jun 2015 18:46:09 -0400 Subject: [PATCH] RnD QoL. Protolathe sorting and categories. Signed-off-by: Jamini --- code/game/mecha/mech_fabricator.dm | 4 +- code/modules/research/designs.dm | 201 +++++++++++++++++++++++++++-- code/modules/research/rdconsole.dm | 26 +++- 3 files changed, 216 insertions(+), 15 deletions(-) diff --git a/code/game/mecha/mech_fabricator.dm b/code/game/mecha/mech_fabricator.dm index 898ee9c4..92d137a5 100644 --- a/code/game/mecha/mech_fabricator.dm +++ b/code/game/mecha/mech_fabricator.dm @@ -133,7 +133,7 @@ - "Misc"=list(/obj/item/mecha_parts/mecha_tracking) + "Engineering Equipment"=list(/obj/item/mecha_parts/mecha_tracking) ) @@ -464,7 +464,7 @@ if(add_part_to_set(D.category, text2path(D.build_path)))//Adds it to said category i++ else - if(add_part_to_set("Misc", text2path(D.build_path)))//If in doubt, chunk it into the Misc + if(add_part_to_set("Engineering Equipment", text2path(D.build_path)))//If in doubt, chunk it into the Engineering Equipment i++ return i diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm index a367e458..53f71417 100644 --- a/code/modules/research/designs.dm +++ b/code/modules/research/designs.dm @@ -38,6 +38,7 @@ other types of metals and chemistry for reagents). #define CRAFTLATHE 8 //Uses fuck if I know. For use eventually. #define MECHFAB 16 //Remember, objects utilising this flag should have construction_time and construction_cost vars. //Note: More then one of these can be added to a design but imprinter and lathe designs are incompatable. +/var/global/list/protolathe_categories datum/design //Datum for object designs, used in construction var/name = "Name" //Name of the created object. @@ -51,7 +52,7 @@ datum/design //Datum for object designs, used in construction var/list/materials = list() //List of materials. Format: "id" = amount. var/build_path = "" //The file path of the object that gets created var/locked = 0 //If true it will spawn inside a lockbox with currently sec access - var/category = null //Primarily used for Mech Fabricators, but can be used for anything + var/category = "General" //Used for sorting designs. Currently by mech fabbers and the protolathe //A proc to calculate the reliability of a design based on tech levels and innate modifiers. @@ -586,6 +587,7 @@ datum/design/intellicard build_type = PROTOLATHE materials = list("$glass" = 1000, "$gold" = 200) build_path = "/obj/item/device/aicard" + category = "Information Technology" datum/design/paicard name = "Personal Artificial Intelligence Card" @@ -595,6 +597,7 @@ datum/design/paicard build_type = PROTOLATHE materials = list("$glass" = 500, "$metal" = 500) build_path = "/obj/item/device/paicard" + category = "Information Technology" datum/design/posibrain name = "Positronic Brain" @@ -605,6 +608,7 @@ datum/design/posibrain build_type = PROTOLATHE materials = list("$metal" = 2000, "$glass" = 1000, "$silver" = 1000, "$gold" = 500, "$plasma" = 500, "$diamond" = 100) build_path = "/obj/item/device/mmi/posibrain" + category = "Information Technology" /////////////////////////////////// //////////Mecha Module Disks/////// @@ -905,6 +909,7 @@ datum/design/design_disk build_type = PROTOLATHE | AUTOLATHE materials = list("$metal" = 30, "$glass" = 10) build_path = "/obj/item/weapon/disk/design_disk" + category = "Information Technology" datum/design/tech_disk name = "Technology Data Storage Disk" @@ -914,6 +919,16 @@ datum/design/tech_disk build_type = PROTOLATHE | AUTOLATHE materials = list("$metal" = 30, "$glass" = 10) build_path = "/obj/item/weapon/disk/tech_disk" + category = "Information Technology" +datum/design/clone_disk + name = "Cloning Data Storage Disk" + desc = "Produce additional disks for storing genetic data." + id = "clone_disk" + req_tech = list("programming" = 1) + build_type = PROTOLATHE | AUTOLATHE + materials = list("$metal" = 30, "$glass" = 10) + build_path = "/obj/item/weapon/disk/data" + category = "Information Technology" //////////////////////////////////////// /////////////Stock Parts//////////////// @@ -927,6 +942,7 @@ datum/design/basic_capacitor build_type = PROTOLATHE | AUTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/stock_parts/capacitor" + category = "Components" datum/design/basic_sensor name = "Basic Sensor Module" @@ -936,6 +952,7 @@ datum/design/basic_sensor build_type = PROTOLATHE | AUTOLATHE materials = list("$metal" = 50, "$glass" = 20) build_path = "/obj/item/weapon/stock_parts/scanning_module" + category = "Components" datum/design/micro_mani name = "Micro Manipulator" @@ -945,6 +962,7 @@ datum/design/micro_mani build_type = PROTOLATHE | AUTOLATHE materials = list("$metal" = 30) build_path = "/obj/item/weapon/stock_parts/manipulator" + category = "Components" datum/design/basic_micro_laser name = "Basic Micro-Laser" @@ -954,6 +972,7 @@ datum/design/basic_micro_laser build_type = PROTOLATHE | AUTOLATHE materials = list("$metal" = 10, "$glass" = 20) build_path = "/obj/item/weapon/stock_parts/micro_laser" + category = "Components" datum/design/basic_matter_bin name = "Basic Matter Bin" @@ -963,6 +982,7 @@ datum/design/basic_matter_bin build_type = PROTOLATHE | AUTOLATHE materials = list("$metal" = 80) build_path = "/obj/item/weapon/stock_parts/matter_bin" + category = "Components" datum/design/adv_capacitor name = "Advanced Capacitor" @@ -972,6 +992,7 @@ datum/design/adv_capacitor build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/stock_parts/capacitor/adv" + category = "Components" datum/design/adv_sensor name = "Advanced Sensor Module" @@ -981,6 +1002,7 @@ datum/design/adv_sensor build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 20) build_path = "/obj/item/weapon/stock_parts/scanning_module/adv" + category = "Components" datum/design/nano_mani name = "Nano Manipulator" @@ -990,6 +1012,7 @@ datum/design/nano_mani build_type = PROTOLATHE materials = list("$metal" = 30) build_path = "/obj/item/weapon/stock_parts/manipulator/nano" + category = "Components" datum/design/high_micro_laser name = "High-Power Micro-Laser" @@ -999,6 +1022,7 @@ datum/design/high_micro_laser build_type = PROTOLATHE materials = list("$metal" = 10, "$glass" = 20) build_path = "/obj/item/weapon/stock_parts/micro_laser/high" + category = "Components" datum/design/adv_matter_bin name = "Advanced Matter Bin" @@ -1008,6 +1032,7 @@ datum/design/adv_matter_bin build_type = PROTOLATHE materials = list("$metal" = 80) build_path = "/obj/item/weapon/stock_parts/matter_bin/adv" + category = "Components" datum/design/super_capacitor name = "Super Capacitor" @@ -1018,6 +1043,7 @@ datum/design/super_capacitor reliability_base = 71 materials = list("$metal" = 50, "$glass" = 50, "$gold" = 20) build_path = "/obj/item/weapon/stock_parts/capacitor/super" + category = "Components" datum/design/phasic_sensor name = "Phasic Sensor Module" @@ -1028,6 +1054,7 @@ datum/design/phasic_sensor materials = list("$metal" = 50, "$glass" = 20, "$silver" = 10) reliability_base = 72 build_path = "/obj/item/weapon/stock_parts/scanning_module/phasic" + category = "Components" datum/design/pico_mani name = "Pico Manipulator" @@ -1038,6 +1065,7 @@ datum/design/pico_mani materials = list("$metal" = 30) reliability_base = 73 build_path = "/obj/item/weapon/stock_parts/manipulator/pico" + category = "Components" datum/design/ultra_micro_laser name = "Ultra-High-Power Micro-Laser" @@ -1048,6 +1076,7 @@ datum/design/ultra_micro_laser materials = list("$metal" = 10, "$glass" = 20, "$uranium" = 10) reliability_base = 70 build_path = "/obj/item/weapon/stock_parts/micro_laser/ultra" + category = "Components" datum/design/super_matter_bin name = "Super Matter Bin" @@ -1058,6 +1087,7 @@ datum/design/super_matter_bin materials = list("$metal" = 80) reliability_base = 75 build_path = "/obj/item/weapon/stock_parts/matter_bin/super" + category = "Components" @@ -1069,6 +1099,7 @@ datum/design/subspace_ansible build_type = PROTOLATHE materials = list("$metal" = 80, "$silver" = 20) build_path = "/obj/item/weapon/stock_parts/subspace/ansible" + category = "Bluespace Technology" datum/design/hyperwave_filter name = "Hyperwave Filter" @@ -1078,6 +1109,7 @@ datum/design/hyperwave_filter build_type = PROTOLATHE materials = list("$metal" = 40, "$silver" = 10) build_path = "/obj/item/weapon/stock_parts/subspace/filter" + category = "Bluespace Technology" datum/design/subspace_amplifier name = "Subspace Amplifier" @@ -1087,6 +1119,7 @@ datum/design/subspace_amplifier build_type = PROTOLATHE materials = list("$metal" = 10, "$gold" = 30, "$uranium" = 15) build_path = "/obj/item/weapon/stock_parts/subspace/amplifier" + category = "Bluespace Technology" datum/design/subspace_treatment name = "Subspace Treatment Disk" @@ -1096,6 +1129,7 @@ datum/design/subspace_treatment build_type = PROTOLATHE materials = list("$metal" = 10, "$silver" = 20) build_path = "/obj/item/weapon/stock_parts/subspace/treatment" + category = "Bluespace Technology" datum/design/subspace_analyzer name = "Subspace Analyzer" @@ -1105,6 +1139,7 @@ datum/design/subspace_analyzer build_type = PROTOLATHE materials = list("$metal" = 10, "$gold" = 15) build_path = "/obj/item/weapon/stock_parts/subspace/analyzer" + category = "Bluespace Technology" datum/design/subspace_crystal name = "Ansible Crystal" @@ -1114,6 +1149,7 @@ datum/design/subspace_crystal build_type = PROTOLATHE materials = list("$glass" = 1000, "$silver" = 20, "$gold" = 20) build_path = "/obj/item/weapon/stock_parts/subspace/crystal" + category = "Bluespace Technology" datum/design/subspace_transmitter name = "Subspace Transmitter" @@ -1123,6 +1159,7 @@ datum/design/subspace_transmitter build_type = PROTOLATHE materials = list("$glass" = 100, "$silver" = 10, "$uranium" = 15) build_path = "/obj/item/weapon/stock_parts/subspace/transmitter" + category = "Bluespace Technology" //////////////////////////////////////// //////////////////Power///////////////// @@ -1136,7 +1173,7 @@ datum/design/basic_cell build_type = PROTOLATHE | AUTOLATHE |MECHFAB materials = list("$metal" = 700, "$glass" = 50) build_path = "/obj/item/weapon/cell" - category = "Misc" + category = "Engineering Equipment" datum/design/high_cell name = "High-Capacity Power Cell" @@ -1146,7 +1183,7 @@ datum/design/high_cell build_type = PROTOLATHE | AUTOLATHE | MECHFAB materials = list("$metal" = 700, "$glass" = 60) build_path = "/obj/item/weapon/cell/high" - category = "Misc" + category = "Engineering Equipment" datum/design/super_cell name = "Super-Capacity Power Cell" @@ -1157,7 +1194,7 @@ datum/design/super_cell build_type = PROTOLATHE | MECHFAB materials = list("$metal" = 700, "$glass" = 70) build_path = "/obj/item/weapon/cell/super" - category = "Misc" + category = "Engineering Equipment" datum/design/hyper_cell name = "Hyper-Capacity Power Cell" @@ -1168,7 +1205,7 @@ datum/design/hyper_cell build_type = PROTOLATHE | MECHFAB materials = list("$metal" = 400, "$gold" = 150, "$silver" = 150, "$glass" = 70) build_path = "/obj/item/weapon/cell/hyper" - category = "Misc" + category = "Engineering Equipment" datum/design/light_replacer name = "Light Replacer" @@ -1178,6 +1215,8 @@ datum/design/light_replacer build_type = PROTOLATHE materials = list("$metal" = 1500, "$silver" = 150, "$glass" = 3000) build_path = "/obj/item/device/lightreplacer" + category = "Engineering Equipment" + datum/design/heavy_flashlight name = "heavy duty flashlight" @@ -1187,6 +1226,7 @@ datum/design/heavy_flashlight build_type = PROTOLATHE materials = list("$metal" = 2000, "$glass" = 4000) build_path = "/obj/item/device/flashlight/heavy" + category = "Engineering Equipment" //////////////////////////////////////// //////////////MISC Boards/////////////// @@ -1313,6 +1353,7 @@ datum/design/mass_spectrometer materials = list("$metal" = 30, "$glass" = 20) reliability_base = 76 build_path = "/obj/item/device/mass_spectrometer" + category = "Medical Equipment" datum/design/adv_mass_spectrometer name = "Advanced Mass-Spectrometer" @@ -1323,6 +1364,7 @@ datum/design/adv_mass_spectrometer materials = list("$metal" = 30, "$glass" = 20) reliability_base = 74 build_path = "/obj/item/device/mass_spectrometer/adv" + category = "Medical Equipment" datum/design/reagent_scanner name = "Reagent Scanner" @@ -1333,6 +1375,7 @@ datum/design/reagent_scanner materials = list("$metal" = 30, "$glass" = 20) reliability_base = 76 build_path = "/obj/item/device/reagent_scanner" + category = "Medical Equipment" datum/design/adv_reagent_scanner name = "Advanced Reagent Scanner" @@ -1343,6 +1386,7 @@ datum/design/adv_reagent_scanner materials = list("$metal" = 30, "$glass" = 20) reliability_base = 74 build_path = "/obj/item/device/reagent_scanner/adv" + category = "Medical Equipment" datum/design/mmi name = "Man-Machine Interface" @@ -1353,7 +1397,7 @@ datum/design/mmi materials = list("$metal" = 1000, "$glass" = 500) reliability_base = 76 build_path = "/obj/item/device/mmi" - category = "Misc" + category = "Engineering Equipment" datum/design/mmi_radio name = "Radio-enabled Man-Machine Interface" @@ -1364,7 +1408,7 @@ datum/design/mmi_radio materials = list("$metal" = 1200, "$glass" = 500) reliability_base = 74 build_path = "/obj/item/device/mmi/radio_enabled" - category = "Misc" + category = "Engineering Equipment" datum/design/synthetic_flash name = "Synthetic Flash" @@ -1375,7 +1419,7 @@ datum/design/synthetic_flash materials = list("$metal" = 750, "$glass" = 750) reliability_base = 76 build_path = "/obj/item/device/flash/synthetic" - category = "Misc" + category = "Engineering Equipment" datum/design/nanopaste name = "nanopaste" @@ -1385,6 +1429,7 @@ datum/design/nanopaste build_type = PROTOLATHE materials = list("$metal" = 7000, "$glass" = 7000) build_path = "/obj/item/stack/nanopaste" + category = "Medical Equipment" datum/design/laserpointer name = "laser pointer" @@ -1394,6 +1439,7 @@ datum/design/laserpointer build_type = PROTOLATHE materials = list("$metal" = 100, "$glass" = 50) build_path = "/obj/item/device/laser_pointer" + category = "General" datum/design/implant_loyal name = "loyalty implant" @@ -1403,6 +1449,7 @@ datum/design/implant_loyal build_type = PROTOLATHE materials = list("$metal" = 7000, "$glass" = 7000) build_path = "/obj/item/weapon/implantcase/loyalty" + category = "Medical Equipment" datum/design/implant_chem name = "chemical implant" @@ -1412,6 +1459,7 @@ datum/design/implant_chem build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/implantcase/chem" + category = "Medical Equipment" datum/design/implant_free name = "freedom implant" @@ -1421,6 +1469,7 @@ datum/design/implant_free build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/implantcase/freedom" + category = "High-Risk Items" datum/design/energy_shield name = "energy shield" @@ -1430,6 +1479,7 @@ datum/design/energy_shield build_type = PROTOLATHE materials = list("$metal" = 1000, "$glass" = 3000, "$plasma" = 1000) build_path = "/obj/item/weapon/shield/energy" + category = "Weapons" datum/design/implant_death_alarm name = "death alarm implant" @@ -1439,6 +1489,7 @@ datum/design/implant_death_alarm build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/implantcase/death_alarm" + category = "Medical Equipment" datum/design/chameleon name = "Chameleon Jumpsuit" @@ -1448,7 +1499,7 @@ datum/design/chameleon build_type = PROTOLATHE materials = list("$metal" = 500) build_path = "/obj/item/clothing/under/chameleon" - + category = "High-Risk Items" datum/design/bluespacebeaker name = "bluespace beaker" @@ -1459,6 +1510,7 @@ datum/design/bluespacebeaker materials = list("$metal" = 3000, "$plasma" = 3000, "$diamond" = 500) reliability_base = 76 build_path = "/obj/item/weapon/reagent_containers/glass/beaker/bluespace" + category = "Medical Equipment" datum/design/noreactbeaker name = "cryostasis beaker" @@ -1469,7 +1521,7 @@ datum/design/noreactbeaker materials = list("$metal" = 3000) reliability_base = 76 build_path = "/obj/item/weapon/reagent_containers/glass/beaker/noreact" - category = "Misc" + category = "Medical Equipment" datum/design/scalpel_laser1 name = "Basic Laser Scalpel" @@ -1479,6 +1531,7 @@ datum/design/scalpel_laser1 build_type = PROTOLATHE materials = list("$metal" = 12500, "$glass" = 7500) build_path = "/obj/item/weapon/scalpel/laser1" + category = "Medical Equipment" datum/design/scalpel_laser2 name = "Improved Laser Scalpel" @@ -1488,6 +1541,7 @@ datum/design/scalpel_laser2 build_type = PROTOLATHE materials = list("$metal" = 12500, "$glass" = 7500, "$silver" = 2500) build_path = "/obj/item/weapon/scalpel/laser2" + category = "Medical Equipment" datum/design/scalpel_laser3 name = "Advanced Laser Scalpel" @@ -1497,6 +1551,7 @@ datum/design/scalpel_laser3 build_type = PROTOLATHE materials = list("$metal" = 12500, "$glass" = 7500, "$silver" = 2000, "$gold" = 1500) build_path = "/obj/item/weapon/scalpel/laser3" + category = "Medical Equipment" datum/design/scalpel_manager name = "Incision Management System" @@ -1506,6 +1561,7 @@ datum/design/scalpel_manager build_type = PROTOLATHE materials = list ("$metal" = 12500, "$glass" = 7500, "$silver" = 1500, "$gold" = 1500, "$diamond" = 750) build_path = "/obj/item/weapon/scalpel/manager" + category = "Medical Equipment" ///////////////////////////////////////// /////////////////Weapons///////////////// @@ -1521,6 +1577,7 @@ datum/design/nuclear_gun reliability_base = 76 build_path = "/obj/item/weapon/gun/energy/rifle/gun/nuclear" locked = 1 + category = "Weapons" datum/design/stunrevolver name = "Stun Revolver" @@ -1531,6 +1588,7 @@ datum/design/stunrevolver materials = list("$metal" = 4000) build_path = "/obj/item/weapon/gun/energy/stunrevolver" locked = 1 + category = "Weapons" datum/design/lasercannon name = "Laser Cannon" @@ -1541,6 +1599,7 @@ datum/design/lasercannon materials = list("$metal" = 10000, "$glass" = 1000, "$diamond" = 2000) build_path = "/obj/item/weapon/gun/energy/rifle/lasercannon" locked = 1 + category = "Weapons" datum/design/decloner name = "Decloner" @@ -1551,6 +1610,7 @@ datum/design/decloner materials = list("$gold" = 5000,"$uranium" = 5000, "$plasma" = 1500) //"mutagen" = 40 Don't think protolathe can hold chems anymore. Not sure. It's redundant anyway. Mutagen is easy. build_path = "/obj/item/weapon/gun/energy/decloner" locked = 1 + category = "Weapons" datum/design/chemsprayer name = "Chem Sprayer" @@ -1561,6 +1621,7 @@ datum/design/chemsprayer materials = list("$metal" = 5000, "$glass" = 1000, "$plasma" = 3000) reliability_base = 100 build_path = "/obj/item/weapon/reagent_containers/spray/chemsprayer" + category = "Weapons" datum/design/rapidsyringe name = "Rapid Syringe Gun" @@ -1570,6 +1631,7 @@ datum/design/rapidsyringe build_type = PROTOLATHE materials = list("$metal" = 5000, "$glass" = 1000) build_path = "/obj/item/weapon/gun/syringe/rapidsyringe" + category = "Medical Equipment" datum/design/largecrossbow name = "Energy Crossbow" @@ -1579,6 +1641,7 @@ datum/design/largecrossbow build_type = PROTOLATHE materials = list("$metal" = 5000, "$glass" = 1000, "$uranium" = 1000, "$silver" = 1000) build_path = "/obj/item/weapon/gun/energy/crossbow/largecrossbow" + category = "High-Risk Items" datum/design/temp_gun name = "Freeze Ray" @@ -1589,6 +1652,7 @@ datum/design/temp_gun materials = list("$metal" = 5000, "$glass" = 500, "$silver" = 3000) build_path = "/obj/item/weapon/gun/energy/temperature" locked = 1 + category = "General" datum/design/flora_gun name = "Floral Somatoray" @@ -1598,6 +1662,7 @@ datum/design/flora_gun build_type = PROTOLATHE materials = list("$metal" = 2000, "$glass" = 500, "$uranium" = 500) build_path = "/obj/item/weapon/gun/energy/floragun" + category = "General" datum/design/large_grenade name = "Large Grenade" @@ -1608,6 +1673,7 @@ datum/design/large_grenade materials = list("$metal" = 3000) reliability_base = 79 build_path = "/obj/item/weapon/grenade/chem_grenade/large" + category = "General" datum/design/smg name = "Submachine Gun" @@ -1618,6 +1684,7 @@ datum/design/smg materials = list("$metal" = 8000, "$silver" = 2000, "$diamond" = 1000) build_path = "/obj/item/weapon/gun/projectile/automatic" locked = 1 + category = "Weapons" datum/design/rapidlaser name = "Rapid-fire Laser" @@ -1628,6 +1695,7 @@ datum/design/rapidlaser materials = list("$metal" = 5000, "$uranium" = 1000) build_path = "/obj/item/weapon/gun/energy/automatic/rapidlaser" locked = 1 + category = "Weapons" datum/design/ammo_9mm name = "Ammunition Box (9mm)" @@ -1637,6 +1705,7 @@ datum/design/ammo_9mm build_type = PROTOLATHE materials = list("$metal" = 3750, "$silver" = 100) build_path = "/obj/item/ammo_magazine/c9mm" + category = "Weapons" datum/design/stunshell name = "Stun Shell" @@ -1646,6 +1715,7 @@ datum/design/stunshell build_type = PROTOLATHE materials = list("$metal" = 4000) build_path = "/obj/item/ammo_casing/shotgun/stunshell" + category = "Weapons" datum/design/stunshellbox name = "Stun Shell box" @@ -1655,6 +1725,7 @@ datum/design/stunshellbox build_type = PROTOLATHE materials = list("$metal" = 20000) build_path = "/obj/item/ammo_magazine/shotgun/stun" + category = "Weapons" datum/design/plasmapistol name = "plasma pistol" @@ -1664,6 +1735,7 @@ datum/design/plasmapistol build_type = PROTOLATHE materials = list("$metal" = 5000, "$glass" = 1000, "$plasma" = 3000) build_path = "/obj/item/weapon/gun/energy/toxgun" + category = "Weapons" datum/design/lawgiver name = "Lawgiver Mk II" @@ -1673,6 +1745,7 @@ datum/design/lawgiver build_type = PROTOLATHE materials = list("$metal" = 6000, "$glass" = 1000, "$uranium" = 1000, "$plasma" = 1000, "$diamond" = 3000) build_path = "/obj/item/weapon/gun/energy/lawgiver" + category = "Weapons" datum/design/bprotopistol name = "Basic Protopistol" @@ -1683,6 +1756,7 @@ datum/design/bprotopistol materials = list("$metal" = 4000, "$glass" = 1000) build_path = "/obj/item/weapon/gun/energy/laser/modular/pistol/crap" locked = 1 + category = "Weapons" datum/design/protopistol name = "Protopistol" @@ -1693,6 +1767,7 @@ datum/design/protopistol materials = list("$metal" = 8000, "$glass" = 3000, "$uranium" = 1000, "$plasma" = 1000) build_path = "/obj/item/weapon/gun/energy/laser/modular/pistol" locked = 1 + category = "Weapons" datum/design/aprotopistol name = "Advanced Protopistol" @@ -1703,7 +1778,19 @@ datum/design/aprotopistol materials = list("$metal" = 8000, "$glass" = 4000, "$uranium" = 2000, "$plasma" = 2000, "$diamond" = 1000) build_path = "/obj/item/weapon/gun/energy/laser/modular/pistol/advanced" locked = 1 - + category = "Weapons" +/*This is all the station gets for producable force gloves. It's a high-risk item and thus considered contraband +outside of RnD without paperwork with the RD's stamp on it. */ +datum/design/forcegloves + name = "Force Gloves" + desc = "These gloves bend gravity and bluespace, dampening inertia and augmenting the wearer's melee capabilities." + id = "forcegloves" + req_tech = list("combat" = 3,"bluespace" = 3, "engineering" = 3, "magnets" = 3) + build_type = PROTOLATHE + materials = list("$metal" = 4000) + build_path = "/obj/item/clothing/gloves/force/basic" + locked = 1 + category = "Weapons" ///////////////////////////////////////// /////////////////Mining////////////////// @@ -1717,6 +1804,7 @@ datum/design/jackhammer build_type = PROTOLATHE materials = list("$metal" = 2000, "$glass" = 500, "$silver" = 500) build_path = "/obj/item/weapon/pickaxe/jackhammer" + category = "Engineering Equipment" datum/design/drill name = "Mining Drill" @@ -1726,6 +1814,7 @@ datum/design/drill build_type = PROTOLATHE materials = list("$metal" = 6000, "$glass" = 1000) //expensive, but no need for miners. build_path = "/obj/item/weapon/pickaxe/drill" + category = "Engineering Equipment" datum/design/plasmacutter name = "Plasma Cutter" @@ -1736,6 +1825,8 @@ datum/design/plasmacutter materials = list("$metal" = 1500, "$glass" = 500, "$gold" = 500, "$plasma" = 500) reliability_base = 79 build_path = "/obj/item/weapon/pickaxe/plasmacutter" + category = "Engineering Equipment" + /* I'm sorry, but the diamond drill is pretty much redundant. And it messes with my immersions. datum/design/pick_diamond name = "Diamond Pickaxe" @@ -1755,6 +1846,7 @@ datum/design/drill_diamond materials = list("$metal" = 3000, "$glass" = 1000, "$diamond" = 3750) //Yes, a whole diamond is needed. reliability_base = 79 build_path = "/obj/item/weapon/pickaxe/diamonddrill" + category = "Engineering Equipment" datum/design/mesons name = "Optical Meson Scanners" @@ -1764,6 +1856,47 @@ datum/design/mesons build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/clothing/glasses/meson" + category = "Engineering Equipment" + +datum/design/materialscan + name = "Optical Material Scanner" + desc = "Used for seeing objects through walls." + id = "optical_scanner" + build_type = PROTOLATHE + req_tech = list("magnets" = 3, "engineering" = 3) + materials = list("$metal" = 50, "$glass" = 50, "$silver" = 50) + build_path = "/obj/item/clothing/glasses/material" + category = "General" + +datum/design/nightvisiongoggles + name = "Night Vision Goggles" + desc = "Used to see in the dark" + id = "night_vision_goggles" + build_type = PROTOLATHE + req_tech = list("magnets" = 4, "engineering" = 2, "combat" = 2) + materials = list("$metal" = 50, "$glass" = 50, "$gold" = 50) + build_path = "/obj/item/clothing/glasses/night" + category = "High-Risk Items" + +datum/design/sciencegoggles + name = "Science Goggles" + desc = "They still do nothing." + id = "science_goggles" + build_type = PROTOLATHE + req_tech = list("magnets" = 1) + materials = list("$metal" = 50, "$glass" = 50) + build_path = "/obj/item/clothing/glasses/science" + category = "General" + +datum/design/superiorweldgoggles + name = "Superior Welding Goggles" + desc = "Welding Goggles made of slightly better materials." + id = "s_weld_goggles" + build_type = PROTOLATHE + req_tech = list("materials" = 3) + materials = list("$metal" = 50, "$glass" = 50, "$plasma" = 50, "$uranium" = 50) + build_path = "/obj/item/clothing/glasses/welding/superior" + category = "Engineering Equipment" ///////////////////////////////////////// //////////////Blue Space///////////////// @@ -1777,6 +1910,7 @@ datum/design/beacon build_type = PROTOLATHE materials = list ("$metal" = 20, "$glass" = 10) build_path = "/obj/item/device/radio/beacon" + category = "Bluespace Technology" datum/design/bag_holding name = "Bag of Holding" @@ -1787,6 +1921,7 @@ datum/design/bag_holding materials = list("$gold" = 3000, "$diamond" = 1500, "$uranium" = 250) reliability_base = 80 build_path = "/obj/item/weapon/storage/backpack/holding" + category = "Bluespace Technology" datum/design/bluespace_crystal name = "Artificial Bluespace Crystal" @@ -1797,6 +1932,7 @@ datum/design/bluespace_crystal materials = list("$gold" = 1500, "$diamond" = 3000, "$plasma" = 1500) reliability_base = 100 build_path = "/obj/item/bluespace_crystal/artificial" + category = "Bluespace Technology" ///////////////////////////////////////// /////////////////HUDs//////////////////// @@ -1810,6 +1946,7 @@ datum/design/health_hud build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/clothing/glasses/hud/health" + category = "Information Technology" datum/design/security_hud name = "Security HUD" @@ -1820,6 +1957,16 @@ datum/design/security_hud materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/clothing/glasses/hud/security" locked = 1 + category = "Information Technology" + +datum/design/security_glasses //added to list 6/4/15 + name = "Security HUD Sunglasses" + desc = "A combination security HUD and sunglasses commonly worn by high-ranking security officers." + id = "hudglasses" + req_tech = list("magnets" = 5, "combat" = 2) + build_type = PROTOLATHE + materials = list("$metal" = 50, "$glass" = 50, "$gold" = 50, "$silver" = 50) + category = "Information Technology" ///////////////////////////////////////// //////////////////Test/////////////////// @@ -1876,6 +2023,8 @@ datum/design/binaryencrypt build_type = PROTOLATHE materials = list("$metal" = 300, "$glass" = 300) build_path = "/obj/item/device/encryptionkey/binary" + category = "High-Risk Items" + datum/design/pda name = "PDA" desc = "A portable microcomputer by Thinktronic Systems, LTD. Functionality determined by a preprogrammed ROM cartridge." @@ -1884,6 +2033,8 @@ datum/design/pda build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/device/pda" + category = "PDA Cartridges" + datum/design/cart_basic name = "Generic Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1892,6 +2043,8 @@ datum/design/cart_basic build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge" + category = "PDA Cartridges" + datum/design/cart_engineering name = "Power-ON Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1900,6 +2053,8 @@ datum/design/cart_engineering build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/engineering" + category = "PDA Cartridges" + datum/design/cart_atmos name = "BreatheDeep Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1908,6 +2063,8 @@ datum/design/cart_atmos build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/atmos" + category = "PDA Cartridges" + datum/design/cart_medical name = "Med-U Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1916,6 +2073,8 @@ datum/design/cart_medical build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/medical" + category = "PDA Cartridges" + datum/design/cart_chemistry name = "ChemWhiz Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1924,6 +2083,8 @@ datum/design/cart_chemistry build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/chemistry" + category = "PDA Cartridges" + datum/design/cart_security name = "R.O.B.U.S.T. Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1933,6 +2094,8 @@ datum/design/cart_security materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/security" locked = 1 + category = "PDA Cartridges" + datum/design/cart_janitor name = "CustodiPRO Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1941,6 +2104,7 @@ datum/design/cart_janitor build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/janitor" + category = "PDA Cartridges" /* datum/design/cart_clown @@ -1969,6 +2133,8 @@ datum/design/cart_toxins build_type = PROTOLATHE materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/signal/science" + category = "PDA Cartridges" + datum/design/cart_quartermaster name = "Space Parts & Space Vendors Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1978,6 +2144,8 @@ datum/design/cart_quartermaster materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/quartermaster" locked = 1 + category = "PDA Cartridges" + datum/design/cart_hop name = "Human Resources 9001 Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1987,6 +2155,8 @@ datum/design/cart_hop materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/hop" locked = 1 + category = "PDA Cartridges" + datum/design/cart_hos name = "R.O.B.U.S.T. DELUXE Cartridge" desc = "A data cartridge for portable microcomputers." @@ -1996,6 +2166,8 @@ datum/design/cart_hos materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/hos" locked = 1 + category = "PDA Cartridges" + datum/design/cart_ce name = "Power-On DELUXE Cartridge" desc = "A data cartridge for portable microcomputers." @@ -2005,6 +2177,8 @@ datum/design/cart_ce materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/ce" locked = 1 + category = "PDA Cartridges" + datum/design/cart_cmo name = "Med-U DELUXE Cartridge" desc = "A data cartridge for portable microcomputers." @@ -2014,6 +2188,8 @@ datum/design/cart_cmo materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/cmo" locked = 1 + category = "PDA Cartridges" + datum/design/cart_rd name = "Signal Ace DELUXE Cartridge" desc = "A data cartridge for portable microcomputers." @@ -2023,6 +2199,8 @@ datum/design/cart_rd materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/rd" locked = 1 + category = "PDA Cartridges" + datum/design/cart_captain name = "Value-PAK Cartridge" desc = "A data cartridge for portable microcomputers." @@ -2032,3 +2210,4 @@ datum/design/cart_captain materials = list("$metal" = 50, "$glass" = 50) build_path = "/obj/item/weapon/cartridge/captain" locked = 1 + category = "PDA Cartridges" diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm index 6df500a1..587fec23 100644 --- a/code/modules/research/rdconsole.dm +++ b/code/modules/research/rdconsole.dm @@ -46,6 +46,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, var/screen = 1.0 //Which screen is currently showing. var/id = 0 //ID of the computer (for server restrictions). var/sync = 1 //If sync = 0, it doesn't show up on Server Control Console + var/show_category = "All" //Category code req_access = list(access_research) //Data and setting manipulation requires scientist access. @@ -132,7 +133,15 @@ won't update every console in existence) but it's more of a hassle to do. Also, for(var/obj/machinery/r_n_d/server/centcom/S in machines) S.initialize() break - + //Create global protolathe category list if it hasn't been made already. + //Category CODE: WIP + if(isnull(protolathe_categories)) + protolathe_categories = list() + for(var/R in typesof(/datum/design)-/datum/design) + var/datum/design/design = new R + if(design.build_type == PROTOLATHE) + protolathe_categories |= design.category + //Category CODE: WIP /obj/machinery/computer/rdconsole/initialize() SyncRDevices() @@ -159,7 +168,7 @@ won't update every console in existence) but it's more of a hassle to do. Also, else if(istype(D, /obj/item/weapon/card/emag) && !emagged) playsound(src.loc, 'sound/effects/sparks4.ogg', 75, 1) emagged = 1 - user << "\blue You you disable the security protocols" + user << "\blue You disable the security protocols" else //The construction/deconstruction of the console code. ..() @@ -237,7 +246,13 @@ won't update every console in existence) but it's more of a hassle to do. Also, linked_destroy.loaded_item = null linked_destroy.icon_state = "d_analyzer" screen = 2.1 + //Category code + else if(href_list["change_category"]) + var/choice = input("Which category do you wish to display?") as null|anything in protolathe_categories+"All" + if(!choice) return + show_category = choice + //Category code else if(href_list["deconstruct"]) //Deconstruct the item in the destructive analyzer and update the research holder. if(linked_destroy) if(linked_destroy.busy) @@ -700,9 +715,16 @@ won't update every console in existence) but it's more of a hassle to do. Also, dat += "Protolathe Menu:

" dat += "Material Amount: [linked_lathe.TotalMaterials()] cm3 (MAX: [linked_lathe.max_material_storage])
" dat += "Chemical Volume: [linked_lathe.reagents.total_volume] (MAX: [linked_lathe.reagents.maximum_volume])
" + //START CATEGORY CODE. THIS IS WIP + dat += "

Printable Designs

Showing: [show_category].

" + //END CATEGORY CODE for(var/datum/design/D in files.known_designs) if(!(D.build_type & PROTOLATHE)) continue + //CATEGORY CODE START + if(!(show_category == "All" || show_category == D.category)) + continue + //CATEGORY CODE END var/temp_dat = "[D.name]" var/check_materials = 1 for(var/M in D.materials)