mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-26 13:37:58 +01:00
Blood: The Last Annoying, Sparkly Twit Update:
- When a blood sample is taken, it retains some information on what kind of chemicals were the subject's body at the time the sample was taken. - Two new R&D Items: Mass-Spectrometer (EM Spectrum Research 2, Biotech 2) and Advanced Mass-Spectrometer (EM Spectrum Research 4, Biotech 2). Allows for the identification of chemicals in a blood sample. To use the devices, you simply use a container (or syringe) full of blood on the device and then click the device in your hand (like how you use the gas analyzer). At low reliability, they might miss some chemicals in their report or potentially even break. The Advanced version not only lists what chemicals were present in the body, but also much much. - The deconstructive analyzer now gives 1 or 2 points to a device design's reliability (rather then just 1) when analyzing a device. Also fixed some bugs in the deconstructive analyzer. - Not all devices have a 100% reliability now (most current ones did, but not all). - Few tweaks in R&D lab. Derp derp. - Mint tweaked slightly. Miners can now access the mint foyer and the mint materials loading area but not the vault (only the captain can access the vault, by default). - Research sub-paths Robotics and generators removed. Now all techs just use the primary paths. Sub-paths might be re-added later but not these ones. - Power Storage Technology renamed "Power Manipulation Technology". - More stuff can be analyzed in the destructive analyzer. Intellicards can now be produced from the protolathe (Programming 4. Requires 1000 glass and 200 gold) - Updated the R&D readme file. Now it has a list of all the holes in the tech paths (ie. Where we need to add new stuff). It's not intended as a complete list of everything that can be made or researched, just a check list to make sure all the research levels are covered. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@1073 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -68,7 +68,7 @@ datum
|
||||
|
||||
|
||||
blood
|
||||
data = new/list("donor"=null,"virus"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null)
|
||||
data = new/list("donor"=null,"virus"=null,"blood_DNA"=null,"blood_type"=null,"resistances"=null,"trace_chem"=null)
|
||||
name = "Blood"
|
||||
id = "blood"
|
||||
reagent_state = LIQUID
|
||||
|
||||
@@ -617,6 +617,11 @@
|
||||
if(istype(target, /mob/living/carbon/human))//I wish there was some hasproperty operation...
|
||||
var/mob/living/carbon/human/HT = target
|
||||
B.data["blood_type"] = copytext(HT.b_type,1,0)
|
||||
var/list/temp_chem = list()
|
||||
for(var/datum/reagent/R in target.reagents.reagent_list)
|
||||
temp_chem += R.name
|
||||
temp_chem[R.name] = R.volume
|
||||
B.data["trace_chem"] = list2params(temp_chem)
|
||||
//debug
|
||||
//for(var/D in B.data)
|
||||
// world << "Data [D] = [B.data[D]]"
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
name = "Optical Meson Scanner"
|
||||
icon_state = "meson"
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=2"
|
||||
|
||||
/obj/item/clothing/glasses/regular
|
||||
name = "Prescription Glasses"
|
||||
@@ -33,3 +34,4 @@
|
||||
name = "Optical Thermal Scanner"
|
||||
icon_state = "thermal"
|
||||
item_state = "glasses"
|
||||
origin_tech = "magnets=3"
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
throw_range = 5
|
||||
w_class = 3.0
|
||||
m_amt = 50000
|
||||
origin_tech = "materials=3"
|
||||
origin_tech = "materials=4"
|
||||
var/datum/effects/system/spark_spread/spark_system
|
||||
|
||||
|
||||
@@ -165,6 +165,28 @@
|
||||
g_amt = 20
|
||||
origin_tech = "magnets=1"
|
||||
|
||||
/obj/item/device/mass_spectrometer
|
||||
desc = "A hand-held mass spectrometer which identifies trace chemicals in a blood sample."
|
||||
name = "mass-spectrometer"
|
||||
icon_state = "spectrometer"
|
||||
item_state = "analyzer"
|
||||
w_class = 2.0
|
||||
flags = FPRINT | TABLEPASS| CONDUCT | ONBELT | OPENCONTAINER
|
||||
throwforce = 5
|
||||
throw_speed = 4
|
||||
throw_range = 20
|
||||
m_amt = 30
|
||||
g_amt = 20
|
||||
origin_tech = "magnets=2;biotech=2"
|
||||
var
|
||||
details = 0
|
||||
recent_fail = 0
|
||||
|
||||
/obj/item/device/mass_spectrometer/adv
|
||||
name = "advanced mass-spectrometer"
|
||||
icon_state = "adv_spectrometer"
|
||||
details = 1
|
||||
origin_tech = "magnets=4;biotech=2"
|
||||
|
||||
/obj/item/weapon/axe
|
||||
name = "Axe"
|
||||
@@ -177,6 +199,7 @@
|
||||
throw_range = 5
|
||||
w_class = 3.0
|
||||
flags = FPRINT | CONDUCT | NOSHIELD | TABLEPASS
|
||||
origin_tech = "combat=3"
|
||||
|
||||
/obj/item/weapon/bananapeel
|
||||
name = "Banana Peel"
|
||||
@@ -201,6 +224,7 @@
|
||||
var/charges = 10.0
|
||||
var/maximum_charges = 10.0
|
||||
var/status = 1
|
||||
origin_tech = "combat=2"
|
||||
|
||||
/obj/item/weapon/bedsheet
|
||||
name = "bedsheet"
|
||||
@@ -424,7 +448,6 @@
|
||||
force = 10.0
|
||||
item_state = "fire_extinguisher"
|
||||
m_amt = 90
|
||||
origin_tech = "materials=1"
|
||||
|
||||
/obj/item/weapon/f_card
|
||||
name = "Finger Print Card"
|
||||
@@ -457,7 +480,7 @@
|
||||
throw_speed = 4
|
||||
throw_range = 20
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | ONBELT
|
||||
origin_tech = "materials=2"
|
||||
origin_tech = "materials=2;combat=1"
|
||||
|
||||
/obj/item/weapon/empgrenade
|
||||
desc = "It is set to detonate in 5 seconds."
|
||||
@@ -631,6 +654,7 @@
|
||||
icon_state = "caplaser"
|
||||
desc = "This is an antique laser gun. All craftsmanship is of the highest quality. It is decorated with assistant leather and chrome. The object menaces with spikes of energy. On the item is an image of Space Station 13. The station is exploding."
|
||||
force = 10
|
||||
origin_tech = null
|
||||
|
||||
/obj/item/weapon/gun/revolver
|
||||
desc = "There are 0 bullets left. Uses 357"
|
||||
@@ -648,7 +672,7 @@
|
||||
desc = "There are 0 bullets left. Uses 357"
|
||||
name = "revolver"
|
||||
icon_state = "mateba"
|
||||
origin_tech = "combat=2;materials=2"
|
||||
origin_tech = "combat=3;materials=2"
|
||||
|
||||
/obj/item/weapon/gun/detectiverevolver
|
||||
desc = "A cheap Martian knock-off of a Smith & Wesson Model 10. Uses .38-Special rounds."
|
||||
@@ -1056,6 +1080,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
|
||||
throw_speed = 4
|
||||
throw_range = 20
|
||||
m_amt = 100
|
||||
origin_tech = "magnets=1"
|
||||
|
||||
/obj/item/weapon/spellbook
|
||||
name = "Spell Book"
|
||||
@@ -1563,6 +1588,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
|
||||
force = null
|
||||
throwforce = null
|
||||
var/armed = 0
|
||||
origin_tech = "combat=1"
|
||||
|
||||
/obj/item/weapon/mousetrap/armed
|
||||
icon_state = "mousetraparmed"
|
||||
@@ -1613,6 +1639,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
|
||||
throw_speed = 1
|
||||
throw_range = 3
|
||||
plant_type = 1
|
||||
origin_tech = "combat=1"
|
||||
seed = "/obj/item/seeds/nettleseed"
|
||||
New()
|
||||
..()
|
||||
@@ -1633,6 +1660,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
|
||||
throw_range = 3
|
||||
plant_type = 1
|
||||
seed = "/obj/item/seeds/deathnettleseed"
|
||||
origin_tech = "combat=3"
|
||||
New()
|
||||
..()
|
||||
reagents.add_reagent("nutriment", 1)
|
||||
@@ -1726,7 +1754,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
|
||||
name = "Capacitor"
|
||||
desc = "A basic capacitor used in the construction of a variety of devices."
|
||||
icon_state = "capacitor"
|
||||
origin_tech = "energystorage=1"
|
||||
origin_tech = "powerstorage=1"
|
||||
m_amt = 50
|
||||
g_amt = 50
|
||||
|
||||
@@ -1742,7 +1770,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
|
||||
name = "Micro-Manipulator"
|
||||
desc = "A tiny little manipulator used in the construction of certain devices."
|
||||
icon_state = "micro_mani"
|
||||
origin_tech = "robotics=1"
|
||||
origin_tech = "materials=1;programming=1"
|
||||
m_amt = 30
|
||||
|
||||
/obj/item/weapon/stock_parts/micro_laser
|
||||
@@ -1763,7 +1791,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
|
||||
/obj/item/weapon/stock_parts/capacitor/adv
|
||||
name = "Advanced Capacitor"
|
||||
desc = "An advanced capacitor used in the construction of a variety of devices."
|
||||
origin_tech = "energystorage=3"
|
||||
origin_tech = "powerstorage=3"
|
||||
rating = 2
|
||||
m_amt = 50
|
||||
g_amt = 50
|
||||
@@ -1781,7 +1809,7 @@ Total SMES charging rate should not exceed total power generation rate, or an ov
|
||||
name = "Nano-Manipulator"
|
||||
desc = "A tiny little manipulator used in the construction of certain devices."
|
||||
icon_state = "micro_mani"
|
||||
origin_tech = "robotics=3"
|
||||
origin_tech = "materials=3,programming=2"
|
||||
rating = 2
|
||||
m_amt = 30
|
||||
|
||||
|
||||
@@ -49,6 +49,8 @@
|
||||
access_mining = 48
|
||||
access_mining_office = 49
|
||||
access_mailsorting = 50
|
||||
access_mint = 51
|
||||
access_mint_vault = 52
|
||||
|
||||
/obj/var/list/req_access = null
|
||||
/obj/var/req_access_txt = "0"
|
||||
@@ -167,11 +169,11 @@
|
||||
if("Shaft Miner")
|
||||
return list(access_maint_tunnels, access_mining)
|
||||
if("Quartermaster")
|
||||
return list(access_maint_tunnels, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_office)
|
||||
return list(access_maint_tunnels, access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_office, access_mint)
|
||||
if("Chief Engineer")
|
||||
return list(access_engine, access_engine_equip, access_tech_storage, access_maint_tunnels,
|
||||
access_external_airlocks, access_atmospherics, access_emergency_storage, access_eva,
|
||||
access_heads, access_ai_upload, access_construction, access_robotics)
|
||||
access_heads, access_ai_upload, access_construction, access_robotics, access_mint)
|
||||
if("Research Director") // added hydroponics access -- Skie
|
||||
return list(access_medical, access_morgue, access_medlab, access_rd,
|
||||
access_tech_storage, access_maint_tunnels, access_heads, access_tox,
|
||||
@@ -192,7 +194,7 @@
|
||||
access_tech_storage, access_chapel_office, access_atmospherics, access_kitchen,
|
||||
access_bar, access_janitor, access_crematorium, access_robotics, access_cargo, access_cargo_bot, access_construction,
|
||||
access_hydroponics, access_library, access_manufacturing, access_lawyer, access_virology, access_cmo, access_qm, access_clown, access_mime, access_surgery,
|
||||
access_theatre, access_research, access_mining, access_mining_office, access_mailsorting)
|
||||
access_theatre, access_research, access_mining, access_mining_office, access_mailsorting, access_mint_vault, access_mint)
|
||||
|
||||
/proc/get_region_accesses(var/code)
|
||||
switch(code)
|
||||
@@ -207,11 +209,11 @@
|
||||
if(4) //engineering and maintenance
|
||||
return list(access_engine, access_engine_equip, access_maint_tunnels, access_external_airlocks, access_emergency_storage, access_tech_storage, access_atmospherics, access_construction, access_robotics)
|
||||
if(5) //command
|
||||
return list(access_change_ids, access_ai_upload, access_teleporter, access_eva, access_heads, access_captain, access_all_personal_lockers)
|
||||
return list(access_change_ids, access_ai_upload, access_teleporter, access_eva, access_heads, access_captain, access_all_personal_lockers, access_mint_vault)
|
||||
if(6) //station general
|
||||
return list(access_chapel_office, access_kitchen,access_bar, access_janitor, access_crematorium, access_library, access_theatre, access_lawyer, access_clown, access_mime)
|
||||
if(7) //supply
|
||||
return list(access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_office, access_mailsorting)
|
||||
return list(access_cargo, access_cargo_bot, access_qm, access_mining, access_mining_office, access_mailsorting, access_mint)
|
||||
|
||||
/proc/get_region_accesses_name(var/code)
|
||||
switch(code)
|
||||
|
||||
@@ -173,6 +173,9 @@
|
||||
throw_speed = 3
|
||||
throw_range = 15
|
||||
|
||||
ripley
|
||||
origin_tech = "programming=3;materials=3"
|
||||
|
||||
ripley/peripherals
|
||||
name = "Circuit board (Ripley Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
@@ -181,6 +184,9 @@
|
||||
name = "Circuit board (Ripley Central Control module)"
|
||||
icon_state = "mainboard"
|
||||
|
||||
gygax
|
||||
origin_tech = "programming=4;materials=4"
|
||||
|
||||
gygax/peripherals
|
||||
name = "Circuit board (Gygax Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
@@ -197,6 +203,9 @@
|
||||
name = "Circuit board (Ripley-on-Fire Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
honker
|
||||
origin_tech = "programming=3;materials=3"
|
||||
|
||||
honker/peripherals
|
||||
name = "Circuit board (H.O.N.K Peripherals Control module)"
|
||||
icon_state = "mcontroller"
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
w_class = 2.0
|
||||
flags = FPRINT | TABLEPASS | ONBELT
|
||||
var/flush = null
|
||||
origin_tech = "programming=4"
|
||||
|
||||
|
||||
attack(mob/living/silicon/ai/M as mob, mob/user as mob)
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
throw_speed = 1
|
||||
throw_range = 5
|
||||
w_class = 2.0
|
||||
origin_tech = "syndicate=2;magnets=4"
|
||||
var/can_use = 1
|
||||
var/obj/dummy/chameleon/active_dummy = null
|
||||
var/saved_item = "/obj/item/weapon/shard"
|
||||
|
||||
@@ -14,4 +14,5 @@
|
||||
throw_speed = 3
|
||||
desc = "You can use this on airlocks or APCs to try to hack them without cutting wires."
|
||||
m_amt = 50
|
||||
g_amt = 20
|
||||
g_amt = 20
|
||||
origin_tech = "magnets=1"
|
||||
@@ -12,6 +12,7 @@
|
||||
throw_range = 2
|
||||
m_amt = 750
|
||||
w_amt = 750
|
||||
origin_tech = "powerstorage=3;syndicate=3"
|
||||
var/drain_rate = 600000 // amount of power to drain per tick
|
||||
var/power_drained = 0 // has drained this much power
|
||||
var/max_power = 1e8 // maximum power that can be drained before exploding
|
||||
|
||||
@@ -6,6 +6,7 @@ DETECTIVE SCANNER
|
||||
HEALTH ANALYZER
|
||||
GAS ANALYZER
|
||||
PLANT ANALYZER
|
||||
MASS SPECTROMETER
|
||||
|
||||
*/
|
||||
|
||||
@@ -236,4 +237,55 @@ PLANT ANALYZER
|
||||
user.show_message("\blue Temperature: [round(environment.temperature-T0C)]°C", 1)
|
||||
|
||||
src.add_fingerprint(user)
|
||||
return
|
||||
return
|
||||
|
||||
/obj/item/device/mass_spectrometer/New()
|
||||
..()
|
||||
var/datum/reagents/R = new/datum/reagents(5)
|
||||
reagents = R
|
||||
R.my_atom = src
|
||||
|
||||
/obj/item/device/mass_spectrometer/on_reagent_change()
|
||||
if(reagents.total_volume)
|
||||
icon_state = initial(icon_state) + "_s"
|
||||
else
|
||||
icon_state = initial(icon_state)
|
||||
|
||||
/obj/item/device/mass_spectrometer/attack_self(mob/user as mob)
|
||||
if (user.stat)
|
||||
return
|
||||
if (crit_fail)
|
||||
user << "\red This device has critically failed and is no longer functional!"
|
||||
return
|
||||
if (!(istype(user, /mob/living/carbon/human) || ticker) && ticker.mode.name != "monkey")
|
||||
user << "\red You don't have the dexterity to do this!"
|
||||
return
|
||||
if(reagents.total_volume)
|
||||
var/list/blood_traces = list()
|
||||
for(var/datum/reagent/R in reagents.reagent_list)
|
||||
if(R.id != "blood")
|
||||
reagents.clear_reagents()
|
||||
user << "\red The sample was contaminated! Please insert another sample"
|
||||
return
|
||||
else
|
||||
blood_traces = params2list(R.data["trace_chem"])
|
||||
break
|
||||
var/dat = "Trace Chemicals Found: "
|
||||
for(var/R in blood_traces)
|
||||
if(prob(reliability))
|
||||
if(details)
|
||||
dat += "[R] ([blood_traces[R]] units) "
|
||||
else
|
||||
dat += "[R] "
|
||||
recent_fail = 0
|
||||
else
|
||||
if(recent_fail)
|
||||
crit_fail = 1
|
||||
reagents.clear_reagents()
|
||||
return
|
||||
else
|
||||
recent_fail = 1
|
||||
user << "[dat]"
|
||||
reagents.clear_reagents()
|
||||
return
|
||||
|
||||
|
||||
@@ -146,6 +146,9 @@
|
||||
safety = 1
|
||||
return
|
||||
|
||||
/obj/item/weapon/pen/sleepypen
|
||||
origin_tech = "syndicate=1"
|
||||
|
||||
/obj/item/weapon/pen/sleepypen/attack_paw(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
return
|
||||
|
||||
@@ -41,9 +41,10 @@ datum
|
||||
var/new_reliability = reliability_mod + reliability_base
|
||||
for(var/datum/tech/T in temp_techs)
|
||||
if(T.id in req_tech)
|
||||
new_reliability += (T.level - req_tech[T]) * 5
|
||||
new_reliability += T.level
|
||||
new_reliability = between(reliability_base, new_reliability, 100)
|
||||
return new_reliability
|
||||
reliability = new_reliability
|
||||
return
|
||||
|
||||
|
||||
///////////////////Computer Boards///////////////////////////////////
|
||||
@@ -226,7 +227,7 @@ datum
|
||||
name = "Module Design (OneHuman)"
|
||||
desc = "Allows for the construction of a OneHuman AI Module."
|
||||
id = "onehuman_module"
|
||||
req_tech = list("programming" = 3, "syndicate" = 2)
|
||||
req_tech = list("programming" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/oneHuman"
|
||||
@@ -330,6 +331,21 @@ datum
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/weapon/aiModule/tyrant"
|
||||
|
||||
|
||||
///////////////////////////////////
|
||||
/////Non-Board Computer Stuff//////
|
||||
///////////////////////////////////
|
||||
|
||||
intellicard
|
||||
name = "Intellicard AI Transportation System"
|
||||
desc = "Allows for the construction of an intellicard."
|
||||
id = "intellicard"
|
||||
req_tech = list("programming" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list("$glass" = 1000, "$gold" = 200)
|
||||
build_path = "/obj/item/device/aicard"
|
||||
|
||||
|
||||
///////////////////////////////////
|
||||
//////////Mecha Module Disks///////
|
||||
///////////////////////////////////
|
||||
@@ -338,7 +354,7 @@ datum
|
||||
name = "Circuit Design (APLU \"Ripley\" Central Control module)"
|
||||
desc = "Allows for the construction of a \"Ripley\" Central Control module."
|
||||
id = "ripley_main"
|
||||
req_tech = list("programming" = 3, "robotics" = 5)
|
||||
req_tech = list("programming" = 3, "materials" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/ripley/main"
|
||||
@@ -347,7 +363,7 @@ datum
|
||||
name = "Circuit Design (APLU \"Ripley\" Peripherals Control module)"
|
||||
desc = "Allows for the construction of a \"Ripley\" Peripheral Control module."
|
||||
id = "ripley_peri"
|
||||
req_tech = list("programming" = 3, "robotics" = 5)
|
||||
req_tech = list("programming" = 3, "materials" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/ripley/peripherals"
|
||||
@@ -356,7 +372,7 @@ datum
|
||||
name = "Circuit Design (\"Gygax\" Central Control module)"
|
||||
desc = "Allows for the construction of a \"Gygax\" Central Control module."
|
||||
id = "gygax_main"
|
||||
req_tech = list("programming" = 4, "robotics" = 5)
|
||||
req_tech = list("programming" = 4, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/gygax/main"
|
||||
@@ -365,7 +381,7 @@ datum
|
||||
name = "Circuit Design (\"Gygax\" Peripherals Control module)"
|
||||
desc = "Allows for the construction of a \"Gygax\" Peripheral Control module."
|
||||
id = "gygax_peri"
|
||||
req_tech = list("programming" = 4, "robotics" = 5)
|
||||
req_tech = list("programming" = 4, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/gygax/peripherals"
|
||||
@@ -374,7 +390,7 @@ datum
|
||||
name = "Circuit Design (\"Gygax\" Weapons & Targeting Control module)"
|
||||
desc = "Allows for the construction of a \"Gygax\" Weapons & Targeting Control module."
|
||||
id = "gygax_targ"
|
||||
req_tech = list("programming" = 4, "robotics" = 5)
|
||||
req_tech = list("programming" = 4, "materials" = 4)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/gygax/targeting"
|
||||
@@ -383,7 +399,7 @@ datum
|
||||
name = "Circuit Design (\"H.O.N.K\" Central Control module)"
|
||||
desc = "Allows for the construction of a \"H.O.N.K\" Central Control module."
|
||||
id = "honker_main"
|
||||
req_tech = list("programming" = 2, "robotics" = 3)
|
||||
req_tech = list("programming" = 3, "materials" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/honker/main"
|
||||
@@ -392,7 +408,7 @@ datum
|
||||
name = "Circuit Design (\"H.O.N.K\" Peripherals Control module)"
|
||||
desc = "Allows for the construction of a \"H.O.N.K\" Peripheral Control module."
|
||||
id = "honker_peri"
|
||||
req_tech = list("programming" = 2, "robotics" = 3)
|
||||
req_tech = list("programming" = 3, "materials" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/honker/peripherals"
|
||||
@@ -401,7 +417,7 @@ datum
|
||||
name = "Circuit Design (\"H.O.N.K\" Weapons & Targeting Control module)"
|
||||
desc = "Allows for the construction of a \"H.O.N.K\" Weapons & Targeting Control module."
|
||||
id = "honker_targ"
|
||||
req_tech = list("programming" = 2, "robotics" = 3)
|
||||
req_tech = list("programming" = 3, "materials" = 3)
|
||||
build_type = IMPRINTER
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/item/mecha_parts/circuitboard/honker/targeting"
|
||||
@@ -453,7 +469,7 @@ datum
|
||||
name = "Micro Manipulator"
|
||||
desc = "A stock part used in the construction of various devices."
|
||||
id = "micro_mani"
|
||||
req_tech = list("robotics" = 1)
|
||||
req_tech = list("materials" = 1, "programming" = 1)
|
||||
build_type = PROTOLATHE | AUTOLATHE
|
||||
materials = list("$metal" = 30)
|
||||
build_path = "/obj/item/weapon/stock_parts/manipulator"
|
||||
@@ -498,7 +514,7 @@ datum
|
||||
name = "Nano Manipulator"
|
||||
desc = "A stock part used in the construction of various devices."
|
||||
id = "nano_mani"
|
||||
req_tech = list("robotics" = 3)
|
||||
req_tech = list("materials" = 3, "programming" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list("$metal" = 30)
|
||||
build_path = "/obj/item/weapon/stock_parts/manipulator/nano"
|
||||
@@ -584,8 +600,8 @@ datum
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/machinery/r_n_d/circuit_imprinter"
|
||||
|
||||
protolathe
|
||||
name = "Protolathe Board"
|
||||
autolathe
|
||||
name = "Atuolathe Board"
|
||||
desc = "The circuit board for a autolathe."
|
||||
id = "autolathe"
|
||||
req_tech = list("materials" = 2)
|
||||
@@ -593,6 +609,30 @@ datum
|
||||
materials = list("$glass" = 2000, "acid" = 20)
|
||||
build_path = "/obj/machinery/autolathe"
|
||||
|
||||
/////////////////////////////////////////
|
||||
////////////Medical Tools////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
mass_spectrometer
|
||||
name = "Mass-Spectrometer"
|
||||
desc = "A device for analyzing chemicals in the blood."
|
||||
id = "mass_spectrometer"
|
||||
req_tech = list("biotech" = 2, "magnets" = 2)
|
||||
build_type = PROTOLATHE
|
||||
materials = list("$metal" = 30, "$glass" = 20)
|
||||
reliability_base = 76
|
||||
build_path = "/obj/item/device/mass_spectrometer"
|
||||
|
||||
adv_mass_spectrometer
|
||||
name = "Advanced Mass-Spectrometer"
|
||||
desc = "A device for analyzing chemicals in the blood and their quantities."
|
||||
id = "adv_mass_spectrometer"
|
||||
req_tech = list("biotech" = 2, "magnets" = 4)
|
||||
build_type = PROTOLATHE
|
||||
materials = list("$metal" = 30, "$glass" = 20)
|
||||
reliability_base = 74
|
||||
build_path = "/obj/item/device/mass_spectrometer/adv"
|
||||
|
||||
/////////////////////////////////////////
|
||||
//////////////////Test///////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
@@ -13,7 +13,7 @@ A brief overview is below. For more details, see the related files.
|
||||
The major research and development is performed using a combination of four machines:
|
||||
- R&D Console: A computer console that allows you to manipulate the other devices that are linked to it and view/manipulate the
|
||||
technologies you have researched so far.
|
||||
- Protolathe: Used to make new hand-held devices and parts for larger devices. Uses metal and glass as raw materials.
|
||||
- Protolathe: Used to make new hand-held devices and parts for larger devices. All metals and reagents as raw materials.
|
||||
- Destructive Analyzer: You can put hand-held objects into it and it'll analyze them for technological advancements but it destroys
|
||||
them in the process. Destroyed items will send their raw materials to a linked Protolathe (if any)
|
||||
- Circuit Imprinter: Similar to the Protolathe, it allows for the construction of circuit boards. Uses glass and acid as the raw
|
||||
@@ -24,6 +24,216 @@ are the "Tech Trees" of the game. You start out with a number of them at the gam
|
||||
Destructive Analyzer. By themselves, they don't do a whole lot. However, they unlock Device Designs. This is the information used
|
||||
by the circuit imprinter and the protolathe to produce objects. It also tracks the current reliability of that particular design.
|
||||
|
||||
MORE STUFF HERE LATER.
|
||||
//EXISTING TECH
|
||||
Each tech path should have at LEAST one item at every level (levels 1 - 20). This is to allow for a more fluid progression of the
|
||||
researching. Existing tech (ie, anything you can find on the station or get from the quartermaster) shouldn't go higher then
|
||||
level 5 or 7. Everything past that should be stuff you research.
|
||||
|
||||
Below is a checklist to make sure every tree is filled. As new items get added to R&D, add them here if there is an empty slot.
|
||||
When thinking about new stuff, check here to see if there are any slots unfilled.
|
||||
|
||||
//MATERIALS
|
||||
1 | Metal
|
||||
2 | Solid Plasma
|
||||
3 | Silver
|
||||
4 | Gold
|
||||
5 | Uranium
|
||||
6 | Diamond
|
||||
7 |
|
||||
8 |
|
||||
9 |
|
||||
10 |
|
||||
11 |
|
||||
12 |
|
||||
13 |
|
||||
14 |
|
||||
15 |
|
||||
16 |
|
||||
17 |
|
||||
18 |
|
||||
19 |
|
||||
20 |
|
||||
|
||||
//PLASMA TECH
|
||||
1 |
|
||||
2 | Solid Plasma
|
||||
3 |
|
||||
4 |
|
||||
5 |
|
||||
6 |
|
||||
7 |
|
||||
8 |
|
||||
9 |
|
||||
10 |
|
||||
11 |
|
||||
12 |
|
||||
13 |
|
||||
14 |
|
||||
15 |
|
||||
16 |
|
||||
17 |
|
||||
18 |
|
||||
19 |
|
||||
20 |
|
||||
|
||||
//POWER TECH
|
||||
1 | Basic Capacitor, Basic Cell
|
||||
2 | High-Capacity Cell (10,000)
|
||||
3 | Super-Capacity Cell (20,000), Powersink
|
||||
4 |
|
||||
5 |
|
||||
6 |
|
||||
7 |
|
||||
8 |
|
||||
9 |
|
||||
10 |
|
||||
11 |
|
||||
12 |
|
||||
13 |
|
||||
14 |
|
||||
15 |
|
||||
16 |
|
||||
17 |
|
||||
18 |
|
||||
19 |
|
||||
20 |
|
||||
|
||||
//BLUE SPACE
|
||||
1 |
|
||||
2 | Teleporter Console Board
|
||||
3 | Teleport Gun, Hand Tele
|
||||
4 | Teleportation Scroll
|
||||
5 |
|
||||
6 |
|
||||
7 |
|
||||
8 |
|
||||
9 |
|
||||
10 |
|
||||
11 |
|
||||
12 |
|
||||
13 |
|
||||
14 |
|
||||
15 |
|
||||
16 |
|
||||
17 |
|
||||
18 |
|
||||
19 |
|
||||
20 |
|
||||
|
||||
//BIOTECH
|
||||
1 | Bruise Pack, Scalple
|
||||
2 | PANDEMIC Board, Mass Spectrometer
|
||||
3 | AI Core, Brains
|
||||
4 |
|
||||
5 |
|
||||
6 |
|
||||
7 |
|
||||
8 |
|
||||
9 |
|
||||
10 |
|
||||
11 |
|
||||
12 |
|
||||
13 |
|
||||
14 |
|
||||
15 |
|
||||
16 |
|
||||
17 |
|
||||
18 |
|
||||
19 |
|
||||
20 |
|
||||
|
||||
//MAGNETS
|
||||
1 | Basic Sensor
|
||||
2 | Comm Console Board
|
||||
3 | Adv Sensor
|
||||
4 | Adv Mass Spectrometer, Chameleon Projector
|
||||
5 |
|
||||
6 |
|
||||
7 |
|
||||
8 |
|
||||
9 |
|
||||
10 |
|
||||
11 |
|
||||
12 |
|
||||
13 |
|
||||
14 |
|
||||
15 |
|
||||
16 |
|
||||
17 |
|
||||
18 |
|
||||
19 |
|
||||
20 |
|
||||
|
||||
//PROGRAMMING
|
||||
1 | Arcade Board
|
||||
2 | Sec Camera
|
||||
3 | Cloning Machine Console Board
|
||||
4 | AI Core, Intellicard
|
||||
5 |
|
||||
6 |
|
||||
7 |
|
||||
8 |
|
||||
9 |
|
||||
10 |
|
||||
11 |
|
||||
12 |
|
||||
13 |
|
||||
14 |
|
||||
15 |
|
||||
16 |
|
||||
17 |
|
||||
18 |
|
||||
19 |
|
||||
20 |
|
||||
|
||||
//SYNDICATE
|
||||
1 | Sleepypen
|
||||
2 | TYRANT Module, Emag
|
||||
3 | Cloaking Device, Powre Sink
|
||||
4 |
|
||||
5 |
|
||||
6 |
|
||||
7 |
|
||||
8 |
|
||||
9 |
|
||||
10 |
|
||||
11 |
|
||||
12 |
|
||||
13 |
|
||||
14 |
|
||||
15 |
|
||||
16 |
|
||||
17 |
|
||||
18 |
|
||||
19 |
|
||||
20 |
|
||||
|
||||
//COMBAT
|
||||
1 | Flashbang, Mousetrap, Nettle
|
||||
2 | Stun Baton
|
||||
3 | Power Axe, Death Nettle
|
||||
4 |
|
||||
5 |
|
||||
6 |
|
||||
7 |
|
||||
8 |
|
||||
9 |
|
||||
10 |
|
||||
11 |
|
||||
12 |
|
||||
13 |
|
||||
14 |
|
||||
15 |
|
||||
16 |
|
||||
17 |
|
||||
18 |
|
||||
19 |
|
||||
20 |
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
@@ -224,8 +224,8 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
if(linked_destroy.busy)
|
||||
usr << "\red The destructive analyzer is busy at the moment."
|
||||
|
||||
else
|
||||
linked_destroy.loaded_item:loc = linked_destroy.loc
|
||||
else if(linked_destroy.loaded_item)
|
||||
linked_destroy.loaded_item.loc = linked_destroy.loc
|
||||
linked_destroy.loaded_item = null
|
||||
linked_destroy.icon_state = "d_analyzer"
|
||||
screen = 2.1
|
||||
@@ -243,15 +243,15 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
spawn(24)
|
||||
linked_destroy.busy = 0
|
||||
if(!linked_destroy.hacked)
|
||||
if(linked_destroy.reliability < 90)
|
||||
files.UpdateDesign(linked_destroy.loaded_item.type)
|
||||
else
|
||||
if(linked_destroy.loaded_item.reliability >= 90)
|
||||
var/list/temp_tech = linked_destroy.ConvertReqString2List(linked_destroy.loaded_item.origin_tech)
|
||||
for(var/T in temp_tech)
|
||||
files.UpdateTech(T, temp_tech[T])
|
||||
if(linked_lathe) //Also sends salvaged materials to a linked autolateh, if any.
|
||||
linked_lathe.m_amount = min(linked_lathe.max_material_storage, ((linked_lathe.TotalMaterials() + linked_destroy.loaded_item.m_amt)*linked_destroy.decon_mod))
|
||||
linked_lathe.g_amount = min(linked_lathe.max_material_storage, ((linked_lathe.TotalMaterials() + linked_destroy.loaded_item.g_amt)*linked_destroy.decon_mod))
|
||||
if(linked_destroy.loaded_item.reliability < 100)
|
||||
files.UpdateDesign(linked_destroy.loaded_item.type)
|
||||
if(linked_lathe) //Also sends salvaged materials to a linked autolathe, if any.
|
||||
linked_lathe.m_amount = min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.m_amt*linked_destroy.decon_mod))
|
||||
linked_lathe.g_amount = min((linked_lathe.max_material_storage - linked_lathe.TotalMaterials()), (linked_destroy.loaded_item.g_amt*linked_destroy.decon_mod))
|
||||
linked_destroy.loaded_item = null
|
||||
for(var/I in contents)
|
||||
del(I)
|
||||
@@ -427,6 +427,8 @@ won't update every console in existence) but it's more of a hassle to do. Also,
|
||||
screen = 2.0
|
||||
else if(linked_destroy.loaded_item == null)
|
||||
screen = 2.1
|
||||
else
|
||||
screen = 2.2
|
||||
if(3 to 3.9)
|
||||
if(linked_lathe == null)
|
||||
screen = 3.0
|
||||
|
||||
@@ -139,7 +139,7 @@ research holder datum.
|
||||
UpdateDesign(var/path)
|
||||
for(var/datum/design/KD in known_designs)
|
||||
if(KD.build_path == path)
|
||||
KD.reliability_mod++
|
||||
KD.reliability_mod += rand(1,2)
|
||||
break
|
||||
return
|
||||
|
||||
@@ -174,8 +174,8 @@ datum
|
||||
id = "plasmatech"
|
||||
|
||||
powerstorage
|
||||
name = "Power Storage Technology"
|
||||
desc = "The various technologies behind the storage of electicity."
|
||||
name = "Power Manipulation Technology"
|
||||
desc = "The various technologies behind the storage and generation of electicity."
|
||||
id = "powerstorage"
|
||||
|
||||
bluespace
|
||||
@@ -195,7 +195,7 @@ datum
|
||||
|
||||
programming
|
||||
name = "Data Theory Research"
|
||||
desc = "The development of new computer and artificial intelligence and datat storage systems."
|
||||
desc = "The development of new computer and artificial intelligence and data storage systems."
|
||||
id = "programming"
|
||||
|
||||
syndicate
|
||||
@@ -213,7 +213,7 @@ datum
|
||||
name = "Explosives Research"
|
||||
desc = "The creation and application of explosive materials."
|
||||
id = "explosives"
|
||||
req_tech = list("materials" = 3) */
|
||||
req_tech = list("materials" = 3)
|
||||
|
||||
generators
|
||||
name = "Power Generation Technology"
|
||||
@@ -225,7 +225,7 @@ datum
|
||||
name = "Robotics Technology"
|
||||
desc = "The development of advanced automated, autonomous machines."
|
||||
id = "robotics"
|
||||
req_tech = list("materials" = 3, "programming" = 3)
|
||||
req_tech = list("materials" = 3, "programming" = 3)*/
|
||||
|
||||
|
||||
/obj/item/weapon/disk/tech_disk
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 16 KiB |
+5418
-5420
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user