From 78774bf0a0bd4ced0daa0f385ac8614fceffa460 Mon Sep 17 00:00:00 2001 From: "morikou@gmail.com" Date: Sun, 30 Jan 2011 01:40:20 +0000 Subject: [PATCH] SCIENCE! Update: - More R&D stuff. Moved code from code/datums/technology to code/game/research (more apt and it isn't JUST datums now). Still very WIP. - Circuit printer now requires Sulfuric Acid instead of H2SO4. (Yes, I get the irony) - New helper proc: between(low, middle, high). It returns middle unless it is greater than high (in which case, it returns high) or less than low (in which case it returns low). It's a fairly simple proc but it cleans up some bits of code I am working on. - Changeling chem regeneration is now a curve rather then a flat amount. At low amounts (<20) it's faster then in r917, at high amounts it's slower (>20). This means you can use cheap abilities more often and expensive abilities less. - Changeling "Dart" abilities now named "sting" abilities to (Hopefully) cause less confusion. "Boost Dart Range" renamed "Ranged Sting." - Changeling "Absorb DNA" ability now not only doesn't cost chem to use, it actually regenerates a small amount (if successful). git-svn-id: http://tgstation13.googlecode.com/svn/trunk@929 316c924e-a436-60f5-8080-3fe189b3f50e --- code/datums/technology/technology.dm | 207 ---------- code/defines/mob/mob.dm | 2 +- code/defines/procs/helpers.dm | 6 +- .../gamemodes/changeling/changeling_powers.dm | 96 ++--- code/game/master_controller.dm | 2 +- code/game/research/designs.dm | 390 ++++++++++++++++++ code/game/research/rdconsole.dm | 181 ++++++++ code/game/research/research.dm | 227 ++++++++++ icons/obj/computer.dmi | Bin 37991 -> 40376 bytes tgstation.dme | 5 +- 10 files changed, 854 insertions(+), 262 deletions(-) delete mode 100644 code/datums/technology/technology.dm create mode 100644 code/game/research/designs.dm create mode 100644 code/game/research/rdconsole.dm create mode 100644 code/game/research/research.dm diff --git a/code/datums/technology/technology.dm b/code/datums/technology/technology.dm deleted file mode 100644 index 3e2b22b46bc..00000000000 --- a/code/datums/technology/technology.dm +++ /dev/null @@ -1,207 +0,0 @@ -/*************************************************************** -Science Research and Development System (Designed and Developed by the /tg/station crew) - -*insert stuff here later* - -***************************************** - -Integrating Objects into the Science Research and Development System - -First of all, the root /obj/ define has to have two variables added to it if it doesn't have them already: - var/list/origin_tech = list() - var/reliability = 100 - -* The origin_tech list is a list of all the technolgies (by ID) and their level at the time the object was created (format: "ID" = #). -If an object can't be reversed engineered, you're just going to leave this variable alone. -* The relability var is the reliability of an object before tech modifiers. Items that start spawned and items that aren't part of the -R&D system should just leave the reliability var at 100 and ignore it. Otherwise, you'll want to adjust it down based on the -pre-technology-modifier reliability you want for the object. You'd also want to add some sort of mechanic that deals with that -var as well. -*SPECIAL NOTE: For non-carriable objects that you can deconstruct into RE'able parts, make sure to include some way of passing on -the data from the components to the finished procuct and back again. - -***************************************************************/ - - - - -/*************************************************************** -** Master Types ** -** Includes all the helper procs and basic tech processing. ** -***************************************************************/ - -/datum/research //Holder for all the existing, archived, and known tech. Individual to console. - var - list //Datum/tech go here. - possible_tech = list() //List of all tech in the game that players have access to (barring special events). - known_tech = list() //List of locally known tech. - - New() //Insert techs into possible_tech and known_tech at start here. - - - proc - - //Checks to see if tech has all the required pre-reqs. Input: Tech datum/tech; Output: 0/1 (false/true) - HasTechReqs(var/datum/tech/T) - if(T.req_tech.len == 0) - return 1 - var/matches = 0 - for(var/req in T.req_tech) - for(var/known in known_tech) - if(req == known && T.req_tech[req] <= known_tech[known]) - matches++ - if(matches == T.req_tech.len) - return 1 - else - return 0 - - //Adds a tech to known_tech list. Checks to make sure there aren't duplicates. Input: datum/tech; Output: Null - AddTech2Known(var/datum/tech/T) - for(var/datum/tech/known in known_tech) - if(T.id == known.id) - if(T.level > known.level) - known.level = T.level - return - known_tech += T - RefreshKnownTech() - return - - - //Refreshes known_tech list with entries in archived and possible techs. Input/Output: Null. - RefreshKnownTech() - for(var/datum/tech/P in possible_tech - known_tech) - if(HasTechReqs(P, possible_tech)) - AddTech2Known(P) - RefreshKnownTech() - return - - //Makes a new instance of a tech with inputed ID. Input: ID; Output: /datum/tech - NewTech(var/ID) - for(var/datum/tech/newtech in typesof(/datum/tech) - /datum/tech) - if(newtech.id == ID) - return newtech - return null - - - //Finds the reliability of a given object based on it's base reliablity and related technologies. - //Input: Object; Output: Number - //CompositeReliability() //Saving until I get a better guideline of how reliability should calculate. - - - -/*************************************************************** -** Technology Datums ** -** Includes all the various technoliges and what they make. ** -***************************************************************/ - -/datum/tech //Datum of individual technologies. - var - name = "name" //Name of the technology. - desc = "description" //General description of what it does and what it makes. - id = "id" //An easily referenced ID. Must be alphanumeric, lower-case, and no symbols. - level = 1 //A simple number scale of the research level. 1 = theoretical, 10 = tried-and-true. - list/req_tech = list() //List of ids associated values of techs required to research this tech. "id" = # - -//Trunk Technologies (don't actually build anything and don't require any other techs). - - materials - name = "Materials Research" - desc = "Development of new and improved materials." - id = "materials" - - plasmatech - name = "Plasma Research" - desc = "Research into the mysterious substance colloqually known as 'plasma'" - id = "plasmatech" - - powerstorage - name = "Power Storage Technology" - desc = "The various technologies behind the storage of electicity." - id = "powerstorage" - - bluespace - name = "'Blue-space' Research" - desc = "Research into the sub-reality of 'blue-space'" - id = "bluespace" - - biotech - name = "Biological Technology" - desc = "Research into the deeper mysteries of life and organic substances." - id = "biotech" - - magnets - name = "Electromagnetic Spectrum Research" - desc = "Research into the electromagnetic spectrum. No clue how they actually work, though." - id = "magnets" - - programming - name = "Data Theory Research" - desc = "The development of new computer and artificial intelligence systems." - id = "programming" - -//Branch Tech: Materials - metaltech - name = "Metallurgy Research" - desc = "Development of new and improved metal alloys for different purposes." - id = "metaltech" - req_tech = list("materials" = 2) - - glasstech - name = "Transparent Material Research" - desc = "Development of new and stronger transparent materials (glass, crystal, transparent aluminum, etc)." - id = "glasstech" - req_tech = list("materials" = 2) - - explosives - name = "Explosives Research" - desc = "The creation and application of explosive materials." - id = "explosives" - req_tech = list("materials" = 3) - -//Branch Tech: Power Storage and Generation - generators - name = "Power Generation Technology" - desc = "Research into more powerful and more reliable sources." - id = "generators" - req_tech = list("powerstorage" = 2) - - celltech - name = "Power Cell Technology" - desc = "Design better, portable power cells for use in devices." - id = "celltech" - req_tech = list("powerstorage" = 2) - - smestech - name = "Super-Magnetic Energy Storage Technology" - desc = "Design better, stationary power storage devices." - id = "smestech" - req_tech = list("powerstorage" = 3, "magnets" = 3) - -//Major Branch: Biotechnology - cybernetics - name = "Cybernetic Technology" - desc = "The development of advanced man/machine interfaces." - id = "cybernetics" - req_tech = list("biotech" = 3, "programming" = 3) - - - - - -/*************************************************************** -** Design Datums ** -** All the data for building stuff and tracking reliability. ** -***************************************************************/ - -#define IMPRINTER 1 //For circuits. -#define PROTOLATHE 2 //For stuff with reliability issues. -#define AUTOLATHE 4 //For general use or 100% reliability items. - -/datum/design //Datum for object designs, used in construction - var - name = "Name" //Name of the created object. - id = "id" //ID of the created object for easy refernece. Alphanumeric, lower-case, no symbols - req_tech = list() //IDs of that techs the object originated from and the minimum level requirements. - reliability = 100 //Reliability of the device. - build_type = PROTOLATHE //Flag as to what kind machine the design is built in. See defines. - build_path = "" //The file path of the object that gets created. diff --git a/code/defines/mob/mob.dm b/code/defines/mob/mob.dm index 883820cc0ea..07874221737 100644 --- a/code/defines/mob/mob.dm +++ b/code/defines/mob/mob.dm @@ -172,7 +172,7 @@ var/changeling_level = 0 var/list/absorbed_dna = list() var/changeling_fakedeath = 0 - var/chem_charges = 10.00 + var/chem_charges = 20.00 var/sting_range = 1 diff --git a/code/defines/procs/helpers.dm b/code/defines/procs/helpers.dm index 7bc81d724bc..8994b5d99f1 100644 --- a/code/defines/procs/helpers.dm +++ b/code/defines/procs/helpers.dm @@ -829,4 +829,8 @@ else dir = null return dir -*/ \ No newline at end of file +*/ + +//Makes sure MIDDLE is between LOW and HIGH. If not, it adjusts it. Returns the adjusted value. +/proc/between(var/low, var/middle, var/high) + return max(min(middle, high), low) \ No newline at end of file diff --git a/code/game/gamemodes/changeling/changeling_powers.dm b/code/game/gamemodes/changeling/changeling_powers.dm index ff142459119..3850ba5bae2 100644 --- a/code/game/gamemodes/changeling/changeling_powers.dm +++ b/code/game/gamemodes/changeling/changeling_powers.dm @@ -2,9 +2,9 @@ src.verbs += /client/proc/changeling_lesser_transform src.verbs += /client/proc/changeling_fakedeath - src.verbs += /client/proc/changeling_blind_dart - src.verbs += /client/proc/changeling_deaf_dart - src.verbs += /client/proc/changeling_silence_dart + src.verbs += /client/proc/changeling_blind_sting + src.verbs += /client/proc/changeling_deaf_sting + src.verbs += /client/proc/changeling_silence_sting src.changeling_level = 1 return @@ -15,11 +15,11 @@ src.verbs += /client/proc/changeling_lesser_form src.verbs += /client/proc/changeling_fakedeath - src.verbs += /client/proc/changeling_deaf_dart - src.verbs += /client/proc/changeling_blind_dart - src.verbs += /client/proc/changeling_paralysis_dart - src.verbs += /client/proc/changeling_silence_dart - src.verbs += /client/proc/changeling_transformation_dart + src.verbs += /client/proc/changeling_deaf_sting + src.verbs += /client/proc/changeling_blind_sting + src.verbs += /client/proc/changeling_paralysis_sting + src.verbs += /client/proc/changeling_silence_sting + src.verbs += /client/proc/changeling_transformation_sting src.verbs += /client/proc/changeling_boost_range src.changeling_level = 2 @@ -38,16 +38,16 @@ src.verbs -= /client/proc/changeling_lesser_form src.verbs -= /client/proc/changeling_lesser_transform src.verbs -= /client/proc/changeling_fakedeath - src.verbs -= /client/proc/changeling_deaf_dart - src.verbs -= /client/proc/changeling_blind_dart - src.verbs -= /client/proc/changeling_paralysis_dart - src.verbs -= /client/proc/changeling_silence_dart + src.verbs -= /client/proc/changeling_deaf_sting + src.verbs -= /client/proc/changeling_blind_sting + src.verbs -= /client/proc/changeling_paralysis_sting + src.verbs -= /client/proc/changeling_silence_sting src.verbs -= /client/proc/changeling_boost_range - usr.verbs -= /client/proc/changeling_transformation_dart + usr.verbs -= /client/proc/changeling_transformation_sting /client/proc/changeling_absorb_dna() set category = "Changeling" - set name = "Absorb DNA (5)" + set name = "Absorb DNA" if(usr.stat) usr << "\red Not when we are incapacitated." @@ -57,10 +57,6 @@ usr << "\red We must be grabbing a creature in our active hand to absorb them." return - if(usr.chem_charges < 5) - usr << "\red We don't have enough stored chemicals to do that!" - return - var/obj/item/weapon/grab/G = usr.equipped() var/mob/M = G.affecting @@ -72,7 +68,7 @@ usr << "\red We must have a tighter grip to absorb this creature." return - usr.chem_charges -= 5 + usr.chem_charges += 5 var/mob/living/carbon/human/T = M @@ -103,6 +99,8 @@ T << "\red You have been absorbed by the changeling!" usr.absorbed_dna[T.real_name] = T.dna + if(usr.nutrition < 400) usr.nutrition = min((usr.nutrition + T.nutrition), 400) + usr.chem_charges += 5 T.death(0) T.real_name = "Unknown" @@ -374,8 +372,8 @@ /client/proc/changeling_boost_range() set category = "Changeling" - set name = "Boost Dart Range (10)" - set desc="Boosts dart range by 1." + set name = "Ranged Sting (10)" + set desc="Your next sting ability can be used against targets 3 squares away." if(usr.stat) usr << "\red Not when we are incapacitated." @@ -385,14 +383,10 @@ usr << "\red We don't have enough stored chemicals to do that!" return - if(usr.sting_range >= 3) - usr << "\red We can't boost the range anymore!" - return - usr.chem_charges -= 10 - usr << "\blue Your throat adjusts to launch the dart." - usr.sting_range++ + usr << "\blue Your throat adjusts to launch the sting." + usr.sting_range = 3 usr.verbs -= /client/proc/changeling_boost_range @@ -401,10 +395,10 @@ return -/client/proc/changeling_silence_dart(mob/T as mob in oview(usr.sting_range)) +/client/proc/changeling_silence_sting(mob/T as mob in oview(usr.sting_range)) set category = "Changeling" - set name = "Silence Dart (10)" - set desc="Sting target:" + set name = "Silence sting (10)" + set desc="Sting target" if(usr.stat) usr << "\red Not when we are incapacitated." @@ -422,17 +416,17 @@ T.silent += 30 - usr.verbs -= /client/proc/changeling_silence_dart + usr.verbs -= /client/proc/changeling_silence_sting spawn(5) - usr.verbs += /client/proc/changeling_silence_dart + usr.verbs += /client/proc/changeling_silence_sting return -/client/proc/changeling_blind_dart(mob/T as mob in oview(usr.sting_range)) +/client/proc/changeling_blind_sting(mob/T as mob in oview(usr.sting_range)) set category = "Changeling" - set name = "Blind Dart (20)" - set desc="Sting target:" + set name = "Blind sting (20)" + set desc="Sting target" if(usr.stat) usr << "\red Not when we are incapacitated." @@ -465,16 +459,16 @@ T.eye_blind = 10 T.eye_blurry = 20 - usr.verbs -= /client/proc/changeling_blind_dart + usr.verbs -= /client/proc/changeling_blind_sting spawn(5) - usr.verbs += /client/proc/changeling_blind_dart + usr.verbs += /client/proc/changeling_blind_sting return -/client/proc/changeling_deaf_dart(mob/T as mob in oview(usr.sting_range)) +/client/proc/changeling_deaf_sting(mob/T as mob in oview(usr.sting_range)) set category = "Changeling" - set name = "Deaf Dart (5)" + set name = "Deaf sting (5)" set desc="Sting target:" if(usr.stat) @@ -494,17 +488,17 @@ spawn(300) T.sdisabilities &= ~4 - usr.verbs -= /client/proc/changeling_deaf_dart + usr.verbs -= /client/proc/changeling_deaf_sting spawn(5) - usr.verbs += /client/proc/changeling_deaf_dart + usr.verbs += /client/proc/changeling_deaf_sting return -/client/proc/changeling_paralysis_dart(mob/T as mob in oview(usr.sting_range)) +/client/proc/changeling_paralysis_sting(mob/T as mob in oview(usr.sting_range)) set category = "Changeling" - set name = "Paralysis Dart (30)" - set desc="Sting target:" + set name = "Paralysis sting (30)" + set desc="Sting target" if(usr.stat) usr << "\red Not when we are incapacitated." @@ -523,17 +517,17 @@ if (T.reagents) T.reagents.add_reagent("zombiepowder", 20) - usr.verbs -= /client/proc/changeling_paralysis_dart + usr.verbs -= /client/proc/changeling_paralysis_sting spawn(5) - usr.verbs += /client/proc/changeling_paralysis_dart + usr.verbs += /client/proc/changeling_paralysis_sting return -/client/proc/changeling_transformation_dart(mob/T as mob in oview(usr.sting_range)) +/client/proc/changeling_transformation_sting(mob/T as mob in oview(usr.sting_range)) set category = "Changeling" - set name = "Transformation Dart (30)" - set desc="Sting target:" + set name = "Transformation sting (30)" + set desc="Sting target" if(usr.stat) usr << "\red Not when we are incapacitated." @@ -564,9 +558,9 @@ updateappearance(T, T.dna.uni_identity) domutcheck(T, null) - usr.verbs -= /client/proc/changeling_transformation_dart + usr.verbs -= /client/proc/changeling_transformation_sting spawn(5) - usr.verbs += /client/proc/changeling_transformation_dart + usr.verbs += /client/proc/changeling_transformation_sting return \ No newline at end of file diff --git a/code/game/master_controller.dm b/code/game/master_controller.dm index 39f49323ad4..90b79f7b624 100644 --- a/code/game/master_controller.dm +++ b/code/game/master_controller.dm @@ -78,7 +78,7 @@ datum/controller/game_controller M.Life() if (M.mind) if (M.mind.special_role == "Changeling") - M.chem_charges = max(min((M.chem_charges+0.25), 50), 0) + M.chem_charges = between(0, (max((0.9 - (M.chem_charges / 50)), 0.1) + M.chem_charges), 50) sleep(-1) for(var/datum/disease/D in active_diseases) diff --git a/code/game/research/designs.dm b/code/game/research/designs.dm new file mode 100644 index 00000000000..8ddb50527d6 --- /dev/null +++ b/code/game/research/designs.dm @@ -0,0 +1,390 @@ +/*************************************************************** +** Design Datums ** +** All the data for building stuff and tracking reliability. ** +***************************************************************/ +/* +For the materials datum, it assumes you need reagents unless specified otherwise. To designate a material that isn't a reagent, +you use one of the material IDs below. These are NOT ids in the usual sense (they aren't defined in the object or part of a datum), +they are simply references used as part of a "has materials?" type proc. They all start with a $ to denote that they aren't reagents. +The currently supporting non-reagent materials: +- $metal (/obj/item/stack/metal). One sheet = 3750 units. +- $glass (/obj/item/stack/metal). One sheet = 3750 units. +(Insert new ones here) + +Don't add new keyword/IDs if they are made from an existing one (such as rods which are made from metal). Only add raw materials. + +Reliabilitity Guidelines: +- The more dangerous the malfunctions are, the higher the base reliabliity (otherwise, people will just skip that tech). +- High base reliability = High material cost; Low base reliability = Low material cost. + +*/ +#define IMPRINTER 1 //For circuits. +#define PROTOLATHE 2 //For stuff with reliability issues. +#define AUTOLATHE 4 //For general use or 100% reliability items. +//Note: More then one of these can be added to a design but it isn't suggested. + +datum + design //Datum for object designs, used in construction + var + name = "Name" //Name of the created object. + desc = "Desc" //Description of the created object. + id = "id" //ID of the created object for easy refernece. Alphanumeric, lower-case, no symbols + list/req_tech = list() //IDs of that techs the object originated from and the minimum level requirements. + reliability = 100 //Reliability of the device. + build_type = null //Flag as to what kind machine the design is built in. See defines. + list/materials = list() //List of materials. Format: "id" = amount. + build_path = "" //The file path of the object that gets created + + seccamera + name = "Circuit Design (Security)" + desc = "Allows for the construction of circuit boards used to build security camera computers." + id = "seccamera" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/security" + + aicore + name = "Circuit Design (AI Core)" + desc = "Allows for the construction of circuit boards used to build new AI cores." + id = "aicore" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/aicore" + + aiupload + name = "Circuit Design (AI Upload)" + desc = "Allows for the construction of circuit boards used to build an AI Upload Console." + id = "aiupload" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/aiupload" + + med_data + name = "Circuit Design (Medical Records)" + desc = "Allows for the construction of circuit boards used to build a medical records console." + id = "med_data" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/med_data" + + pandemic + name = "Circuit Design (PanD.E.M.I.C. 2200)" + desc = "Allows for the construction of circuit boards used to build a PanD.E.M.I.C. 2200 console." + id = "pandemic" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/pandemic" + + scan_console + name = "Circuit Design (DNA Machine)" + desc = "Allows for the construction of circuit boards used to build a new DNA scanning console." + id = "scan_console" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/machinery/scan_consolenew" + + comconsole + name = "Circuit Design (Communications)" + desc = "Allows for the construction of circuit boards used to build a communications console." + id = "comconsole" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/communications" + + idcardconsole + name = "Circuit Design (ID Computer)" + desc = "Allows for the construction of circuit boards used to build an ID computer." + id = "idcardconsole" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/card" + + teleconsole + name = "Circuit Design (Teleporter Console)" + desc = "Allows for the construction of circuit boards used to build a teleporter control console." + id = "teleconsole" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/teleporter" + + secdata + name = "Circuit Design (Security Records Console)" + desc = "Allows for the construction of circuit boards used to build a security records console." + id = "secdata" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/secure_data" + + atmosalerts + name = "Circuit Design (Atmosphere Alerts Console)" + desc = "Allows for the construction of circuit boards used to build an atmosphere alert console.." + id = "atmosalerts" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/atmosphere/alerts" + + air_management + name = "Circuit Design (Atmospheric Monitor)" + desc = "Allows for the construction of circuit boards used to build an Atmospheric Monitor." + id = "air_management" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/general_air_control" + + general_alert + name = "Circuit Design (General Alert Console)" + desc = "Allows for the construction of circuit boards used to build a General Alert console." + id = "general_alert" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/general_alert" + + robocontrol + name = "Circuit Design (Robotics Control Console)" + desc = "Allows for the construction of circuit boards used to build a Robotics Control console." + id = "robocontrol" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/robotics" + + clonecontrol + name = "Circuit Design (Cloning Machine Console)" + desc = "Allows for the construction of circuit boards used to build a new Cloning Machine console." + id = "clonecontrol" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/cloning" + + arcademachine + name = "Circuit Design (Arcade Machine)" + desc = "Allows for the construction of circuit boards used to build a new arcade machine." + id = "arcademachine" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/arcade" + + powermonitor + name = "Circuit Design (Power Monitor)" + desc = "Allows for the construction of circuit boards used to build a new power monitor" + id = "powermonitor" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/machinery/power/monitor" + + prisonmanage + name = "Circuit Design (Prisoner Management Console)" + desc = "Allows for the construction of circuit boards used to build a prisoner management console." + id = "prisonmanage" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/circuitboard/prisoner" + +/////////////////////////////////// +//////////AI Module Disks////////// +/////////////////////////////////// + safeguard_module + name = "Module Design (Safeguard)" + desc = "Allows for the construction of a Safeguard AI Module." + id = "safeguard_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/safeguard" + + onehuman_module + name = "Module Design (OneHuman)" + desc = "Allows for the construction of a OneHuman AI Module." + id = "onehuman_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/oneHuman" + + protectstation_module + name = "Module Design (ProtectStation)" + desc = "Allows for the construction of a ProtectStation AI Module." + id = "protectstation_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/protectStation" + + notele_module + name = "Module Design (TeleporterOffline Module)" + desc = "Allows for the construction of a TeleporterOffline AI Module." + id = "notele_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/teleporterOffline" + + quarantine_module + name = "Module Design (Quarantine)" + desc = "Allows for the construction of a Quarantine AI Module." + id = "quarantine_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/quarantine" + + oxygen_module + name = "Module Design (OxygenIsToxicToHumans)" + desc = "Allows for the construction of a Safeguard AI Module." + id = "oxygen_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/oxygen" + + freeform_module + name = "Module Design (Freeform)" + desc = "Allows for the construction of a Freeform AI Module." + id = "freeform_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/freeform" + + reset_module + name = "Module Design (Reset)" + desc = "Allows for the construction of a Reset AI Module." + id = "reset_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/reset" + + purge_module + name = "Module Design (Purge)" + desc = "Allows for the construction of a Purge AI Module." + id = "purge_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/purge" + + freeformcore_module + name = "Core Module Design (Freeform)" + desc = "Allows for the construction of a Freeform AI Core Module." + id = "freeformcore_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/freeformcore" + + asimov + name = "Core Module Design (Asimov)" + desc = "Allows for the construction of a Asimov AI Core Module." + id = "asimov_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/asimov" + + paladin_module + name = "Core Module Design (P.A.L.A.D.I.N.)" + desc = "Allows for the construction of a P.A.L.A.D.I.N. AI Core Module." + id = "paladin_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/paladin" + + tyrant_module + name = "Core Module Design (T.Y.R.A.N.T.)" + desc = "Allows for the construction of a T.Y.R.A.N.T. AI Module." + id = "tyrant_module" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/weapon/aiModule/tyrant" + +/////////////////////////////////// +//////////Mecha Module Disks/////// +/////////////////////////////////// + + ripley_main + name = "Circuit Design (APLU \"Ripley\" Central Control module)" + desc = "Allows for the construction of a Safeguard AI Module." + id = "ripley_main" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/mecha_parts/circuitboard/ripley/main" + + ripley_peri + name = "Circuit Design (APLU \"Ripley\" Peripherals Control module)" + desc = "Allows for the construction of a Safeguard AI Module." + id = "ripley_peri" + req_tech = list() + reliability = 100 + build_type = IMPRINTER + materials = list("$metal" = 2000, "acid" = 20) + build_path = "/obj/item/mecha_parts/circuitboard/ripley/peripherals" + + +//////////////////////////////////////// +//Disks for transporting design datums// +//////////////////////////////////////// + +/obj/item/weapon/disk/design_disk + name = "Component Design Disk" + desc = "A disk for storing device design data for construction in lathes." + icon = 'cloning.dmi' + icon_state = "datadisk2" + item_state = "card-id" + w_class = 1.0 + var/datum/design/blueprint + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) \ No newline at end of file diff --git a/code/game/research/rdconsole.dm b/code/game/research/rdconsole.dm new file mode 100644 index 00000000000..f87ab091578 --- /dev/null +++ b/code/game/research/rdconsole.dm @@ -0,0 +1,181 @@ +/obj/machinery/computer/rdconsole + name = "R&D Console" + icon_state = "rdcomp" + var + datum/research/files + obj/item/weapon/disk/tech_disk/t_disk = null + obj/item/weapon/disk/design_disk/d_disk = null + + screen = 1.0 //1 = MAIN, + + New() + files = new /datum/research(src) + + meteorhit() + del(src) + return + + blob_act() + if (prob(50)) + del(src) + + ex_act(severity) + switch(severity) + if(1.0) + del(src) + return + if(2.0) + if (prob(50)) + del(src) + return + + attackby(var/obj/item/weapon/disk/D as obj, var/mob/user as mob) + if(istype(D, /obj/item/weapon/disk/tech_disk)) + if(t_disk) + user << "A disk is already loaded into the machine." + return + t_disk = D + else if (istype(D, /obj/item/weapon/disk/design_disk)) + if(d_disk) + user << "A disk is already loaded into the machine." + return + d_disk = D + user.drop_item() + D.loc = src + user << "You add the disk to the machine!" + src.updateUsrDialog() + //Insert icon change here. + + Topic(href, href_list) + if(stat & BROKEN) return + if(usr.stat || usr.restrained()) return + if(!in_range(src, usr)) return + + add_fingerprint(usr) + + usr.machine = src + if(href_list["menu"]) + screen = text2num(href_list["menu"]) + + else if(href_list["updt_tech"]) + screen = 0.0 + spawn(50) + screen = 3.0 + files.AddTech2Known(t_disk.stored) + updateUsrDialog() + + else if(href_list["clear_tech"]) + t_disk.stored = null + + else if(href_list["eject_tech"]) + t_disk:loc = src.loc + t_disk = null + screen = 1.0 + + else if(href_list["copy_tech"]) + for(var/datum/tech/T in files.known_tech) + if(href_list["copy_tech_ID"] == T.id) + t_disk.stored = T + break + screen = 3.0 + + else if(href_list["clear_design"]) + d_disk.blueprint = null + + else if(href_list["eject_design"]) + d_disk:loc = src.loc + d_disk = null + screen = 1.0 + + else if(href_list["copy_design"]) + for(var/datum/design/D in files.known_designs) + if(href_list["copy_design_ID"] == D.id) + d_disk.blueprint = D + break + screen = 4.0 + + updateUsrDialog() + + attack_ai(mob/user as mob) + return src.attack_hand(user) + + attack_paw(mob/user as mob) + return src.attack_hand(user) + + attack_hand(mob/user as mob) + if(stat & BROKEN) + return + user.machine = src + var/dat = "" + switch(screen) + if(0.0) + dat += "Updating Database...." + if(1.0) //Main Menu + dat += "Main Menu:

" + dat += "Current Research Levels
" + if(t_disk) dat += "Disk Operations
" + else if(d_disk) dat += "Disk Operations
" + else dat += "(Please Insert Disk)
" + + if(2.0) //Research viewer + dat += "Current Research Levels:

" + for(var/datum/tech/T in files.known_tech) + dat += "[T.name]
" + dat += "* Level: [T.level]
" + dat += "* Summary: [T.desc]
" + dat += "Main Menu" + + if(3.0) //Technology Disk Menu + dat += "Disk Contents: (Technology Data Disk)

" + if(t_disk.stored == null) + dat += "The disk has no data stored on it.
" + dat += "Operations: " + dat += "Load Tech to Disk || " + else + dat += "Name: [t_disk.stored.name]
" + dat += "Level: [t_disk.stored.level]
" + dat += "Description: [t_disk.stored.desc]
" + dat += "Operations: " + dat += "Upload to Database || " + dat += "Clear Disk || " + dat += "Eject Disk
" + dat += "
Main Menu" + if(3.1) //Technology Disk submenu + dat += "Load Technology to Disk:

" + for(var/datum/tech/T in files.known_tech) + dat += "[T.name] " + dat += "(Copy to Disk)
" + dat += "

Main Menu || " + dat += "Return to Disk Operations" + + if(4.0) //Design Disk menu. + if(d_disk.blueprint == null) + dat += "The disk has no data stored on it.
" + dat += "Operations: " + dat += "Load Design to Disk || " + else + dat += "Name: [d_disk.blueprint.name]
" + dat += "Level: [between(0, (d_disk.blueprint.reliability + rand(-15,15)), 100)]
" + switch(d_disk.blueprint.build_type) + if(IMPRINTER) dat += "Lathe Type: Circuit Imprinter
" + if(PROTOLATHE) dat += "Lathe Type: Proto-lathe
" + if(AUTOLATHE) dat += "Lathe Type: Auto-lathe
" + dat += "Required Materials:
" + for(var/M in d_disk.blueprint.materials) + if(copytext(M, 1, 2) == "$") dat += "* [copytext(M, 2)] x [d_disk.blueprint.materials[M]]
" + else dat += "* [M] x [d_disk.blueprint.materials[M]]
" + dat += "
Operations: " + dat += "Clear Disk || " + dat += "Eject Disk
" + dat += "Main Menu" + if(4.1) //Technology disk submenu + dat += "Load Design to Disk:

" + for(var/datum/design/D in files.known_designs) + dat += "[D.name] " + dat += "(Copy to Disk)
" + dat += "
Main Menu || " + dat += "Return to Disk Operations" + + + user << browse("Research and Development Console
[dat]", "window=rdconsole;size=575x400") + onclose(user, "rdconsole") \ No newline at end of file diff --git a/code/game/research/research.dm b/code/game/research/research.dm new file mode 100644 index 00000000000..a8e498a8e4f --- /dev/null +++ b/code/game/research/research.dm @@ -0,0 +1,227 @@ +/*************************************************************** +Science Research and Development System (Designed and Developed by the /tg/station crew) + +*insert stuff here later* + +***************************************** + +Integrating Objects into the Science Research and Development System + +First of all, the root /obj/ define has to have two variables added to it if it doesn't have them already: + var/list/origin_tech = list() + var/reliability = 100 + +* The origin_tech list is a list of all the technolgies (by ID) and their level at the time the object was created (format: "ID" = #). +If an object can't be reversed engineered, you're just going to leave this variable alone. +* The relability var is the reliability of an object before tech modifiers. Items that start spawned and items that aren't part of the +R&D system should just leave the reliability var at 100 and ignore it. Otherwise, you'll want to adjust it down based on the +pre-technology-modifier reliability you want for the object. You'd also want to add some sort of mechanic that deals with that +var as well. +*SPECIAL NOTE: For non-carriable objects that you can deconstruct into RE'able parts, make sure to include some way of passing on +the data from the components to the finished procuct and back again. + +***************************************************************/ + +/* +To Do List: +- Need stuff to research! +- Add various vars to base /obj/ type to list what techs were required to make it. Also add malfuction variables. + +*/ + +/*************************************************************** +** Master Types ** +** Includes all the helper procs and basic tech processing. ** +***************************************************************/ + +/datum/research //Holder for all the existing, archived, and known tech. Individual to console. + var + list //Datum/tech go here. + possible_tech = list() //List of all tech in the game that players have access to (barring special events). + known_tech = list() //List of locally known tech. + possible_designs = list() //List of all designs (at base reliability). + known_designs = list() //List of available designs (at base reliability). + + New() //Insert techs into possible_tech here. Known_tech automatically updated. + for(var/T in typesof(/datum/tech) - /datum/tech) + possible_tech += new T(src) + for(var/D in typesof(/datum/design) - /datum/design) + possible_designs += new D(src) + RefreshResearch() + + proc + + //Checks to see if tech has all the required pre-reqs. + //Input: datum/tech; Output: 0/1 (false/true) + TechHasReqs(var/datum/tech/T) + if(T.req_tech.len == 0) + return 1 + var/matches = 0 + for(var/req in T.req_tech) + for(var/datum/tech/known in known_tech) + if(req == known && T.req_tech[req] <= known_tech[known]) + matches++ + if(matches == T.req_tech.len) + return 1 + else + return 0 + + //Checks to see if design has all the required pre-reqs. + //Input: datum/design; Output: 0/1 (false/true) + DesignHasReqs(var/datum/design/D) + if(D.req_tech.len == 0) + return 1 + var/matches + for(var/req in D.req_tech) + for(var/datum/tech/known in known_tech) + if(req == known && D.req_tech[req] <= known_tech[known]) + matches++ + if(matches == D.req_tech.len) + return 1 + else + return 0 + + //Adds a tech to known_tech list. Checks to make sure there aren't duplicates and updates existing tech's levels if needed. + //Input: datum/tech; Output: Null + AddTech2Known(var/datum/tech/T) + for(var/datum/tech/known in known_tech) + if(T.id == known.id) + if(T.level > known.level) + known.level = T.level + return + known_tech += T + RefreshResearch() + return + + AddDesign2Known(var/datum/design/D) + for(var/datum/design/known in known_designs) + if(D.id == known.id) + if(D.reliability > known.reliability) + known.reliability = D.reliability + return + known_designs += D + RefreshResearch() + return + + //Refreshes known_tech list with entries in archived and possible techs. + //Input/Output: n/a + RefreshResearch() + for(var/datum/tech/PT in possible_tech - known_tech) + if(TechHasReqs(PT)) + AddTech2Known(PT) + for(var/datum/design/PD in possible_designs - known_designs) + if(DesignHasReqs(PD)) + AddDesign2Known(PD) + return + + //Finds the reliability of a given object based on it's base reliablity and related technologies. + //Input: Object; Output: Number + //CompositeReliability() //Saving until I get a better idea of how reliability should calculate. + + + +/*************************************************************** +** Technology Datums ** +** Includes all the various technoliges and what they make. ** +***************************************************************/ + +datum + tech //Datum of individual technologies. + var + name = "name" //Name of the technology. + desc = "description" //General description of what it does and what it makes. + id = "id" //An easily referenced ID. Must be alphanumeric, lower-case, and no symbols. + level = 1 //A simple number scale of the research level. Level 0 = Secret tech. + list/req_tech = list() //List of ids associated values of techs required to research this tech. "id" = # + + +//Trunk Technologies (don't actually build anything and don't require any other techs). + + materials + name = "Materials Research" + desc = "Development of new and improved materials." + id = "materials" + + plasmatech + name = "Plasma Research" + desc = "Research into the mysterious substance colloqually known as 'plasma'" + id = "plasmatech" + + powerstorage + name = "Power Storage Technology" + desc = "The various technologies behind the storage of electicity." + id = "powerstorage" + + bluespace + name = "'Blue-space' Research" + desc = "Research into the sub-reality known as 'blue-space'" + id = "bluespace" + + biotech + name = "Biological Technology" + desc = "Research into the deeper mysteries of life and organic substances." + id = "biotech" + + magnets + name = "Electromagnetic Spectrum Research" + desc = "Research into the electromagnetic spectrum. No clue how they actually work, though." + id = "magnets" + + programming + name = "Data Theory Research" + desc = "The development of new computer and artificial intelligence systems." + id = "programming" + + syndicate + name = "Illegal Technologies Research" + desc = "The study of technologies that violate Nanotrassen regulations." + id = "syndicate" + + //Branch Techs + metaltech + name = "Metallurgy Research" + desc = "Development of new and improved metal alloys for different purposes." + id = "metaltech" + req_tech = list("materials" = 2) + + glasstech + name = "Transparent Material Research" + desc = "Development of new and stronger transparent materials (glass, crystal, transparent aluminum, etc)." + id = "glasstech" + req_tech = list("materials" = 2) + + explosives + name = "Explosives Research" + desc = "The creation and application of explosive materials." + id = "explosives" + req_tech = list("materials" = 3) + + generators + name = "Power Generation Technology" + desc = "Research into more powerful and more reliable sources." + id = "generators" + req_tech = list("powerstorage" = 2) + + smestech + name = "Super-Magnetic Energy Storage Technology" + desc = "Design better, stationary power storage devices." + id = "smestech" + req_tech = list("powerstorage" = 3, "magnets" = 3) + + cybernetics + name = "Cybernetic Technology" + desc = "The development of advanced man/machine interfaces." + id = "cybernetics" + req_tech = list("biotech" = 3, "programming" = 3) + +/obj/item/weapon/disk/tech_disk + name = "Technology Disk" + desc = "A disk for storing technology data for further research." + icon = 'cloning.dmi' + icon_state = "datadisk2" + item_state = "card-id" + w_class = 1.0 + var/datum/tech/stored + New() + src.pixel_x = rand(-5.0, 5) + src.pixel_y = rand(-5.0, 5) \ No newline at end of file diff --git a/icons/obj/computer.dmi b/icons/obj/computer.dmi index b1ddc1ee805afb2f19c3796a2441538be7131845..79d26b71e54a7f24a03e8e9957ecf1f3577a18e6 100644 GIT binary patch literal 40376 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