mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-14 12:13:06 +00:00
Random Update:
- Napalm nerfed. - Changelog updated. - Cook(ed) book icon added for eventual cooking overhaul. - Tech tree framework added (very WIP though). git-svn-id: http://tgstation13.googlecode.com/svn/trunk@894 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -296,7 +296,7 @@ datum
|
|||||||
|
|
||||||
var/datum/gas_mixture/napalm = new
|
var/datum/gas_mixture/napalm = new
|
||||||
|
|
||||||
napalm.toxins = created_volume * created_volume
|
napalm.toxins = created_volume
|
||||||
napalm.temperature = 400+T0C
|
napalm.temperature = 400+T0C
|
||||||
|
|
||||||
target_tile.assume_air(napalm)
|
target_tile.assume_air(napalm)
|
||||||
|
|||||||
207
code/datums/technology/technology.dm
Normal file
207
code/datums/technology/technology.dm
Normal file
@@ -0,0 +1,207 @@
|
|||||||
|
/***************************************************************
|
||||||
|
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.
|
||||||
@@ -44,6 +44,31 @@
|
|||||||
<strong>Thanks to:</strong> CDK Station devs, GoonStation devs, the original SpaceStation developers and Erikat for the new title image
|
<strong>Thanks to:</strong> CDK Station devs, GoonStation devs, the original SpaceStation developers and Erikat for the new title image
|
||||||
|
|
||||||
<h4>Changelog</h4>
|
<h4>Changelog</h4>
|
||||||
|
<h5>20.01.2011, r894</h5>
|
||||||
|
<ul>
|
||||||
|
<LI>Pipes can now be removed and re-attached by wrenching them.
|
||||||
|
<LI>Mining system continues to develop. Still unaccessible to players.
|
||||||
|
<LI>Various map changes. Some minor lag causing things were fixed.
|
||||||
|
<LI>Admins have a new tool: They can now give any spell to anyone. Hurray!
|
||||||
|
<LI>Imadolazine now works. Maybe?
|
||||||
|
<LI>Singularity now releases itself if fed too much and will potentially explode.
|
||||||
|
<LI>Magboots now successfully prevent you from getting pulled into the singularity.
|
||||||
|
<LI>Strike teams immune to facehuggers. Why? I dunno.
|
||||||
|
<LI>Many reagent containers are adjustable so you can pour the exact amount you need.
|
||||||
|
<LI>No more emitters working in space, Collectors and collector controllers now ID lockable.
|
||||||
|
<LI>Christmas Contest plaque finally added. It's near the armor/warden's office.
|
||||||
|
<LI>Rocks fall, everyone dies.
|
||||||
|
<LI>All cyborgs and robots can now be named. Just use a pen on the cyborg's frame before the brain is inserted.
|
||||||
|
<LI>Knock spell now unbolts doors as well as opens them.
|
||||||
|
<LI>New cultist runs and other changes.
|
||||||
|
<LI>Added surgery tools for eventual surgery system.
|
||||||
|
<LI>Autolathe and Circuit Printer animations redone. Yay pretty icons.
|
||||||
|
<LI>AI law changes/uploads are now tracked (admin viewable).
|
||||||
|
<LI>Revheads now get a PDA uplink instead of a headset one.
|
||||||
|
<LI>Added a penlight.
|
||||||
|
<LI>Science Research and Development tech tree uploaded. Not really accessible by anyone yet, though.
|
||||||
|
</ul>
|
||||||
|
|
||||||
<h5>14.01.2011, r853</h5>
|
<h5>14.01.2011, r853</h5>
|
||||||
<ul>
|
<ul>
|
||||||
<LI>Changlings Overhauled. Now function kinda like alium (using an internal chemical reserve instead of plasma) with each ability requiring a certain amount of chemicals to activate. Both venoms removed. Several "Dart" abiliites added. They allow the changling to deafen, blind, mute, paralyze, or even transform (dead) targets.
|
<LI>Changlings Overhauled. Now function kinda like alium (using an internal chemical reserve instead of plasma) with each ability requiring a certain amount of chemicals to activate. Both venoms removed. Several "Dart" abiliites added. They allow the changling to deafen, blind, mute, paralyze, or even transform (dead) targets.
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.9 KiB |
@@ -14,6 +14,7 @@
|
|||||||
#define FILE_DIR "code/datums"
|
#define FILE_DIR "code/datums"
|
||||||
#define FILE_DIR "code/datums/diseases"
|
#define FILE_DIR "code/datums/diseases"
|
||||||
#define FILE_DIR "code/datums/spells"
|
#define FILE_DIR "code/datums/spells"
|
||||||
|
#define FILE_DIR "code/datums/technology"
|
||||||
#define FILE_DIR "code/defines"
|
#define FILE_DIR "code/defines"
|
||||||
#define FILE_DIR "code/defines/area"
|
#define FILE_DIR "code/defines/area"
|
||||||
#define FILE_DIR "code/defines/mob"
|
#define FILE_DIR "code/defines/mob"
|
||||||
@@ -210,6 +211,7 @@
|
|||||||
#include "code\datums\spells\magic_missile.dm"
|
#include "code\datums\spells\magic_missile.dm"
|
||||||
#include "code\datums\spells\mutate.dm"
|
#include "code\datums\spells\mutate.dm"
|
||||||
#include "code\datums\spells\teleport.dm"
|
#include "code\datums\spells\teleport.dm"
|
||||||
|
#include "code\datums\technology\technology.dm"
|
||||||
#include "code\defines\atom.dm"
|
#include "code\defines\atom.dm"
|
||||||
#include "code\defines\client.dm"
|
#include "code\defines\client.dm"
|
||||||
#include "code\defines\global.dm"
|
#include "code\defines\global.dm"
|
||||||
|
|||||||
Reference in New Issue
Block a user