Merge branch 'master' of https://github.com/Citadel-Station-13/Citadel-Station-13 into putnamos-for-real
This commit is contained in:
@@ -0,0 +1,270 @@
|
||||
//This system is designed to act as an in-between for cargo and science, and the first major money sink in the game outside of just buying things from cargo (As of 10/9/19, anyway).
|
||||
|
||||
//economics defined values, subject to change should anything be too high or low in practice.
|
||||
|
||||
#define MACHINE_OPERATION 100000
|
||||
#define MACHINE_OVERLOAD 500000
|
||||
#define MAJOR_THRESHOLD 5500
|
||||
#define MINOR_THRESHOLD 3500
|
||||
#define STANDARD_DEVIATION 1000
|
||||
|
||||
/obj/machinery/rnd/bepis
|
||||
name = "\improper B.E.P.I.S. Chamber"
|
||||
desc = "A high fidelity testing device which unlocks the secrets of the known universe using the two most powerful substances available to man: excessive amounts of electricity and capital."
|
||||
icon = 'icons/obj/machines/bepis.dmi'
|
||||
icon_state = "chamber"
|
||||
density = TRUE
|
||||
layer = ABOVE_MOB_LAYER
|
||||
use_power = IDLE_POWER_USE
|
||||
active_power_usage = 1500
|
||||
circuit = /obj/item/circuitboard/machine/bepis
|
||||
|
||||
var/banking_amount = 100
|
||||
var/banked_cash = 0 //stored player cash
|
||||
var/datum/bank_account/account //payer's account.
|
||||
var/account_name //name of the payer's account.
|
||||
var/error_cause = null
|
||||
//Vars related to probability and chance of success for testing
|
||||
var/major_threshold = MAJOR_THRESHOLD
|
||||
var/minor_threshold = MINOR_THRESHOLD
|
||||
var/std = STANDARD_DEVIATION //That's Standard Deviation, what did you think it was?
|
||||
//Stock part variables
|
||||
var/power_saver = 1
|
||||
var/inaccuracy_percentage = 1.5
|
||||
var/positive_cash_offset = 0
|
||||
var/negative_cash_offset = 0
|
||||
var/minor_rewards = list(/obj/item/stack/circuit_stack/full, //To add a new minor reward, add it here.
|
||||
/obj/item/flashlight/flashdark,
|
||||
/obj/item/pen/survival,
|
||||
/obj/item/circuitboard/machine/sleeper/party,
|
||||
/obj/item/toy/sprayoncan)
|
||||
var/static/list/item_list = list()
|
||||
|
||||
/obj/machinery/rnd/bepis/attackby(obj/item/O, mob/user, params)
|
||||
if(default_deconstruction_screwdriver(user, "chamber_open", "chamber", O))
|
||||
update_icon_state()
|
||||
return
|
||||
if(default_deconstruction_crowbar(O))
|
||||
return
|
||||
if(!is_operational())
|
||||
to_chat(user, "<span class='notice'>[src] can't accept money when it's not functioning.</span>")
|
||||
return
|
||||
if(istype(O, /obj/item/holochip) || istype(O, /obj/item/stack/spacecash))
|
||||
var/deposit_value = O.get_item_credit_value()
|
||||
banked_cash += deposit_value
|
||||
qdel(O)
|
||||
say("Deposited [deposit_value] credits into storage.")
|
||||
update_icon_state()
|
||||
return
|
||||
if(istype(O, /obj/item/card/id))
|
||||
var/obj/item/card/id/Card = O
|
||||
if(Card.registered_account)
|
||||
account = Card.registered_account
|
||||
account_name = Card.registered_name
|
||||
say("New account detected. Console Updated.")
|
||||
else
|
||||
say("No account detected on card. Aborting.")
|
||||
return
|
||||
return ..()
|
||||
|
||||
/obj/machinery/rnd/bepis/RefreshParts()
|
||||
var/C = 0
|
||||
var/M = 0
|
||||
var/L = 0
|
||||
var/S = 0
|
||||
for(var/obj/item/stock_parts/capacitor/Cap in component_parts)
|
||||
C += ((Cap.rating - 1) * 0.1)
|
||||
power_saver = 1 - C
|
||||
for(var/obj/item/stock_parts/manipulator/Manip in component_parts)
|
||||
M += ((Manip.rating - 1) * 250)
|
||||
positive_cash_offset = M
|
||||
for(var/obj/item/stock_parts/micro_laser/Laser in component_parts)
|
||||
L += ((Laser.rating - 1) * 250)
|
||||
negative_cash_offset = L
|
||||
for(var/obj/item/stock_parts/scanning_module/Scan in component_parts)
|
||||
S += ((Scan.rating - 1) * 0.25)
|
||||
inaccuracy_percentage = (1.5 - S)
|
||||
|
||||
/obj/machinery/rnd/bepis/proc/depositcash()
|
||||
var/deposit_value = 0
|
||||
deposit_value = banking_amount
|
||||
if(deposit_value == 0)
|
||||
update_icon_state()
|
||||
say("Attempting to deposit 0 credits. Aborting.")
|
||||
return
|
||||
deposit_value = clamp(round(deposit_value, 1), 1, 15000)
|
||||
if(!account)
|
||||
say("Cannot find user account. Please swipe a valid ID.")
|
||||
return
|
||||
if(!account.has_money(deposit_value))
|
||||
say("You do not possess enough credits.")
|
||||
return
|
||||
account.adjust_money(-deposit_value) //The money vanishes, not paid to any accounts.
|
||||
SSblackbox.record_feedback("amount", "BEPIS_credits_spent", deposit_value)
|
||||
banked_cash += deposit_value
|
||||
use_power(1000 * power_saver)
|
||||
say("Cash deposit successful. There is [banked_cash] in the chamber.")
|
||||
update_icon_state()
|
||||
return
|
||||
|
||||
/obj/machinery/rnd/bepis/proc/withdrawcash()
|
||||
var/withdraw_value = 0
|
||||
withdraw_value = banking_amount
|
||||
if(withdraw_value > banked_cash)
|
||||
say("Cannot withdraw more than stored funds. Aborting.")
|
||||
else
|
||||
banked_cash -= withdraw_value
|
||||
new /obj/item/holochip(src.loc, withdraw_value)
|
||||
say("Withdrawing [withdraw_value] credits from the chamber.")
|
||||
update_icon_state()
|
||||
return
|
||||
|
||||
/obj/machinery/rnd/bepis/proc/calcsuccess()
|
||||
var/turf/dropturf = null
|
||||
var/gauss_major = 0
|
||||
var/gauss_minor = 0
|
||||
var/gauss_real = 0
|
||||
var/list/turfs = block(locate(x-1,y-1,z),locate(x+1,y+1,z)) //NO MORE DISCS IN WINDOWS
|
||||
while(length(turfs))
|
||||
var/turf/T = pick_n_take(turfs)
|
||||
if(is_blocked_turf(T, exclude_mobs=TRUE))
|
||||
continue
|
||||
else
|
||||
dropturf = T
|
||||
break
|
||||
if (!dropturf)
|
||||
dropturf = drop_location()
|
||||
gauss_major = (gaussian(major_threshold, std) - negative_cash_offset) //This is the randomized profit value that this experiment has to surpass to unlock a tech.
|
||||
gauss_minor = (gaussian(minor_threshold, std) - negative_cash_offset) //And this is the threshold to instead get a minor prize.
|
||||
gauss_real = (gaussian(banked_cash, std*inaccuracy_percentage) + positive_cash_offset) //this is the randomized profit value that your experiment expects to give.
|
||||
say("Real: [gauss_real]. Minor: [gauss_minor]. Major: [gauss_major].")
|
||||
flick("chamber_flash",src)
|
||||
update_icon_state()
|
||||
banked_cash = 0
|
||||
if((gauss_real >= gauss_major) && (SSresearch.techweb_nodes_experimental.len > 0)) //Major Success.
|
||||
say("Experiment concluded with major success. New technology node discovered on technology disc.")
|
||||
new /obj/item/disk/tech_disk/major(dropturf,1)
|
||||
if(SSresearch.techweb_nodes_experimental.len == 0)
|
||||
say("Expended all available experimental technology nodes. Resorting to minor rewards.")
|
||||
return
|
||||
if(gauss_real >= gauss_minor) //Minor Success.
|
||||
var/reward = pick(minor_rewards)
|
||||
new reward(dropturf)
|
||||
say("Experiment concluded with partial success. Dispensing compiled research efforts.")
|
||||
return
|
||||
if(gauss_real <= -1) //Critical Failure
|
||||
say("ERROR: CRITICAL MACHIME MALFUNCTI- ON. CURRENCY IS NOT CRASH. CANNOT COMPUTE COMMAND: 'make bucks'") //not a typo, for once.
|
||||
new /mob/living/simple_animal/deer(dropturf, 1)
|
||||
use_power(MACHINE_OVERLOAD * power_saver) //To prevent gambling at low cost and also prevent spamming for infinite deer.
|
||||
return
|
||||
//Minor Failure
|
||||
error_cause = pick("attempted to sell grey products to American dominated market.","attempted to sell gray products to British dominated market.","placed wild assumption that PDAs would go out of style.","simulated product #76 damaged brand reputation mortally.","simulated business model resembled 'pyramid scheme' by 98.7%.","product accidently granted override access to all station doors.")
|
||||
say("Experiment concluded with zero product viability. Cause of error: [error_cause]")
|
||||
return
|
||||
|
||||
/obj/machinery/rnd/bepis/update_icon_state()
|
||||
if(panel_open == TRUE)
|
||||
icon_state = "chamber_open"
|
||||
return
|
||||
if((use_power == ACTIVE_POWER_USE) && (banked_cash > 0) && (is_operational()))
|
||||
icon_state = "chamber_active_loaded"
|
||||
return
|
||||
if (((use_power == IDLE_POWER_USE) && (banked_cash > 0)) || (banked_cash > 0) && (!is_operational()))
|
||||
icon_state = "chamber_loaded"
|
||||
return
|
||||
if(use_power == ACTIVE_POWER_USE && is_operational())
|
||||
icon_state = "chamber_active"
|
||||
return
|
||||
if(((use_power == IDLE_POWER_USE) && (banked_cash == 0)) || (!is_operational()))
|
||||
icon_state = "chamber"
|
||||
return
|
||||
|
||||
/obj/machinery/rnd/bepis/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
|
||||
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
|
||||
if(!ui)
|
||||
ui = new(user, src, ui_key, "bepis", name, 500, 480, master_ui, state)
|
||||
ui.open()
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/rnd/bepis/ui_data(mob/user)
|
||||
var/list/data = list()
|
||||
var/powered = FALSE
|
||||
var/zvalue = (banked_cash - (major_threshold - positive_cash_offset - negative_cash_offset))/(std)
|
||||
var/std_success = 0
|
||||
var/prob_success = 0
|
||||
//Admittedly this is messy, but not nearly as messy as the alternative, which is jury-rigging an entire Z-table into the code, or making an adaptive z-table.
|
||||
var/z = abs(zvalue)
|
||||
if(z > 0 && z <= 0.5)
|
||||
std_success = 19.1
|
||||
else if(z > 0.5 && z <= 1.0)
|
||||
std_success = 34.1
|
||||
else if(z > 1.0 && z <= 1.5)
|
||||
std_success = 43.3
|
||||
else if(z > 1.5 && z <= 2.0)
|
||||
std_success = 47.7
|
||||
else if(z > 2.0 && z <= 2.5)
|
||||
std_success = 49.4
|
||||
else
|
||||
std_success = 50
|
||||
if(zvalue > 0)
|
||||
prob_success = 50 + std_success
|
||||
else if(zvalue == 0)
|
||||
prob_success = 50
|
||||
else
|
||||
prob_success = 50 - std_success
|
||||
|
||||
if(use_power == ACTIVE_POWER_USE)
|
||||
powered = TRUE
|
||||
data["account_owner"] = account_name
|
||||
data["amount"] = banking_amount
|
||||
data["stored_cash"] = banked_cash
|
||||
data["mean_value"] = (major_threshold - positive_cash_offset - negative_cash_offset)
|
||||
data["error_name"] = error_cause
|
||||
data["power_saver"] = power_saver
|
||||
data["accuracy_percentage"] = inaccuracy_percentage * 100
|
||||
data["positive_cash_offset"] = positive_cash_offset
|
||||
data["negative_cash_offset"] = negative_cash_offset
|
||||
data["manual_power"] = powered ? FALSE : TRUE
|
||||
data["silicon_check"] = issilicon(user)
|
||||
data["success_estimate"] = prob_success
|
||||
return data
|
||||
|
||||
/obj/machinery/rnd/bepis/ui_act(action,params)
|
||||
if(..())
|
||||
return
|
||||
switch(action)
|
||||
if("deposit_cash")
|
||||
if(use_power == IDLE_POWER_USE)
|
||||
return
|
||||
depositcash()
|
||||
if("withdraw_cash")
|
||||
if(use_power == IDLE_POWER_USE)
|
||||
return
|
||||
withdrawcash()
|
||||
if("begin_experiment")
|
||||
if(use_power == IDLE_POWER_USE)
|
||||
return
|
||||
if(banked_cash == 0)
|
||||
say("Please deposit funds to begin testing.")
|
||||
return
|
||||
calcsuccess()
|
||||
use_power(MACHINE_OPERATION * power_saver) //This thing should eat your APC battery if you're not careful.
|
||||
use_power = IDLE_POWER_USE //Machine shuts off after use to prevent spam and look better visually.
|
||||
update_icon_state()
|
||||
if("amount")
|
||||
var/input = text2num(params["amount"])
|
||||
if(input)
|
||||
banking_amount = input
|
||||
if("toggle_power")
|
||||
if(use_power == ACTIVE_POWER_USE)
|
||||
use_power = IDLE_POWER_USE
|
||||
else
|
||||
use_power = ACTIVE_POWER_USE
|
||||
update_icon_state()
|
||||
if("account_reset")
|
||||
if(use_power == IDLE_POWER_USE)
|
||||
return
|
||||
account_name = ""
|
||||
account = null
|
||||
say("Account settings reset.")
|
||||
. = TRUE
|
||||
@@ -14,7 +14,7 @@
|
||||
/datum/design/bottle
|
||||
materials = list(/datum/material/glass = 1200)
|
||||
build_type = AUTOBOTTLER
|
||||
category = list("Storge")
|
||||
category = list("Storage")
|
||||
|
||||
/datum/design/bottle/wine
|
||||
name = "Bottle Design (Wine)"
|
||||
@@ -165,6 +165,7 @@
|
||||
name = "Export Design (Gin)"
|
||||
desc = "Allows for the blowing, and bottling of Gin bottles."
|
||||
id = "gin_export"
|
||||
reagents_list = list(/datum/reagent/consumable/ethanol/gin = 50)
|
||||
build_path = /obj/item/export/bottle/gin
|
||||
|
||||
/datum/design/bottle/export/whiskey
|
||||
@@ -331,4 +332,4 @@
|
||||
id = "greenroad"
|
||||
reagents_list = list(/datum/reagent/consumable/vitfro = 50, /datum/reagent/consumable/ethanol/rum = 30, /datum/reagent/ash = 10)
|
||||
category = list("Beers")
|
||||
build_path = /obj/item/export/bottle/greenroad
|
||||
build_path = /obj/item/export/bottle/greenroad
|
||||
|
||||
+12
-6
@@ -10,6 +10,7 @@
|
||||
id = "beanbag_slug"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron = 250)
|
||||
materials = list(/datum/material/iron = 1000)
|
||||
build_path = /obj/item/ammo_casing/shotgun/beanbag
|
||||
category = list("initial", "Security")
|
||||
|
||||
@@ -73,12 +74,12 @@
|
||||
build_path = /obj/item/restraints/handcuffs
|
||||
category = list("hacked", "Security")
|
||||
|
||||
/datum/design/receiver
|
||||
name = "Modular Receiver"
|
||||
id = "receiver"
|
||||
build_type = AUTOLATHE | NO_PUBLIC_LATHE
|
||||
materials = list(/datum/material/iron = 15000)
|
||||
build_path = /obj/item/weaponcrafting/receiver
|
||||
/datum/design/rifle_receiver
|
||||
name = "Rifle Receiver"
|
||||
id = "rifle_receiver"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron = 24000)
|
||||
build_path = /obj/item/weaponcrafting/improvised_parts/rifle_receiver
|
||||
category = list("hacked", "Security")
|
||||
|
||||
/datum/design/shotgun_slug
|
||||
@@ -113,6 +114,10 @@
|
||||
build_path = /obj/item/ammo_casing/shotgun/incendiary
|
||||
category = list("hacked", "Security")
|
||||
|
||||
/////////////////
|
||||
// Bullets //
|
||||
/////////////////
|
||||
|
||||
/datum/design/riot_dart
|
||||
name = "Foam Riot Dart"
|
||||
id = "riot_dart"
|
||||
@@ -192,3 +197,4 @@
|
||||
materials = list(/datum/material/iron = 5500)
|
||||
build_path = /obj/item/clothing/head/foilhat
|
||||
category = list("hacked", "Misc")
|
||||
|
||||
|
||||
+19
-2
@@ -81,7 +81,16 @@
|
||||
materials = list(/datum/material/iron = 50, /datum/material/glass = 50)
|
||||
build_path = /obj/item/airlock_painter
|
||||
category = list("initial", "Misc","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/airlock_painter/decal
|
||||
name = "Decal Painter"
|
||||
id = "decal_painter"
|
||||
build_type = AUTOLATHE | PROTOLATHE
|
||||
materials = list(/datum/material/iron = 50, /datum/material/glass = 50)
|
||||
build_path = /obj/item/airlock_painter/decal
|
||||
category = list("initial","Tools","Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/cultivator
|
||||
name = "Cultivator"
|
||||
@@ -271,4 +280,12 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron = 5000, /datum/material/glass = 2000)
|
||||
build_path = /obj/item/vending_refill/custom
|
||||
category = list("initial", "Misc")
|
||||
category = list("initial", "Misc")
|
||||
|
||||
/datum/design/trigger_assembly
|
||||
name = "Trigger Assembly"
|
||||
id = "trigger_assembly"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron = 6500, /datum/material/glass = 50)
|
||||
build_path = /obj/item/weaponcrafting/improvised_parts/trigger_assembly
|
||||
category = list("initial", "Misc")
|
||||
|
||||
@@ -139,7 +139,7 @@
|
||||
id = "tool_box"
|
||||
build_type = AUTOLATHE
|
||||
materials = list(MAT_CATEGORY_RIGID = 500)
|
||||
build_path = /obj/item/storage/toolbox
|
||||
build_path = /obj/item/storage/toolbox/greyscale
|
||||
category = list("initial","Tools")
|
||||
|
||||
/datum/design/spraycan
|
||||
@@ -148,7 +148,8 @@
|
||||
build_type = AUTOLATHE
|
||||
materials = list(/datum/material/iron = 100, /datum/material/glass = 100)
|
||||
build_path = /obj/item/toy/crayon/spraycan
|
||||
category = list("initial", "Tools")
|
||||
category = list("initial", "Tools", "Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/geiger
|
||||
name = "Geiger Counter"
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
name = "Double-Bladed Toy Sword"
|
||||
id = "dbtoysword"
|
||||
materials = list(/datum/material/plastic = 1000)
|
||||
build_path = /obj/item/twohanded/dualsaber/toy
|
||||
build_path = /obj/item/dualsaber/toy
|
||||
category = list("initial", "Melee")
|
||||
|
||||
/datum/design/autoylathe/toykatana
|
||||
|
||||
@@ -95,3 +95,23 @@
|
||||
build_path = /obj/item/storage/bag/ore/holding
|
||||
category = list("Bluespace Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_CARGO
|
||||
|
||||
/datum/design/bluespace_tray
|
||||
name = "Bluespace Tray"
|
||||
desc = "A tray created using bluespace technology to fit more food on it."
|
||||
id = "bluespace_tray"
|
||||
build_type = PROTOLATHE
|
||||
build_path = /obj/item/storage/bag/tray/bluespace
|
||||
materials = list(/datum/material/iron = 2000, /datum/material/bluespace = 500)
|
||||
category = list("Bluespace Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/bluespace_carrier
|
||||
name = "Bluespace Jar"
|
||||
desc = "A jar used to contain creatures, using the power of bluespace."
|
||||
id = "bluespace_carrier"
|
||||
build_type = PROTOLATHE
|
||||
build_path = /obj/item/pet_carrier/bluespace
|
||||
materials = list(/datum/material/glass = 1000, /datum/material/bluespace = 600)
|
||||
category = list("Bluespace Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
@@ -43,4 +43,20 @@
|
||||
id = "libraryconsole"
|
||||
build_path = /obj/item/circuitboard/computer/libraryconsole
|
||||
category = list("Computer Boards")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ALL
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ALL
|
||||
|
||||
/datum/design/board/flight_control
|
||||
name = "Computer Design (Shuttle Flight Controls)"
|
||||
desc = "Allows for the construction of circuit boards used to build a console that enables shuttle flight"
|
||||
id = "shuttle_control"
|
||||
build_path = /obj/item/circuitboard/computer/shuttle/flight_control
|
||||
category = list("Computer Boards", "Shuttle Machinery")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/board/shuttle_docker
|
||||
name = "Computer Design (Private Navigation Computer)"
|
||||
desc = "Allows for the construction of circuit boards used to build a console that enables the targetting of custom flight locations"
|
||||
id = "shuttle_docker"
|
||||
build_path = /obj/item/circuitboard/computer/shuttle/docker
|
||||
category = list("Computer Boards", "Shuttle Machinery")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
@@ -10,6 +10,14 @@
|
||||
category = list("Computer Boards")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/board/shuttleseccamera
|
||||
name = "Computer Design (Shuttle-Linked Security Camera)"
|
||||
desc = "Same as a regular security camera console, but when linked to a shuttle, will specifically access cameras on that shuttle."
|
||||
id = "shuttleseccamera"
|
||||
build_path = /obj/item/circuitboard/computer/security/shuttle
|
||||
category = list("Computer Boards")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/board/secdata
|
||||
name = "Computer Design (Security Records Console)"
|
||||
desc = "Allows for the construction of circuit boards used to build a security records console."
|
||||
|
||||
@@ -166,5 +166,3 @@
|
||||
desc = "This disk will add the ability to remotely feed slimes potions via the Xenobiology console, and lift the restrictions on the number of slimes that can be stored inside the Xenobiology console. This includes the contents of the basic slime upgrade disk."
|
||||
id = "xenobio_slimeadv"
|
||||
build_path = /obj/item/disk/xenobio_console_upgrade/slimeadv
|
||||
|
||||
|
||||
|
||||
@@ -122,3 +122,44 @@
|
||||
build_path = /obj/item/circuitboard/machine/autolathe/toy
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ALL
|
||||
category = list("Misc. Machinery")
|
||||
|
||||
/datum/design/board/hypnochair
|
||||
name = "Machine Design (Enhanced Interrogation Chamber)"
|
||||
desc = "Allows for the construction of circuit boards used to build an Enhanced Interrogation Chamber."
|
||||
id = "hypnochair"
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
build_path = /obj/item/circuitboard/machine/hypnochair
|
||||
category = list("Misc. Machinery")
|
||||
|
||||
/datum/design/board/engine_plasma
|
||||
name = "Machine Design (Plasma Thruster Board)"
|
||||
desc = "The circuit board for a plasma thruster."
|
||||
id = "engine_plasma"
|
||||
build_path = /obj/item/circuitboard/machine/shuttle/engine/plasma
|
||||
category = list ("Shuttle Machinery")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/board/engine_void
|
||||
name = "Machine Design (Void Thruster Board)"
|
||||
desc = "The circuit board for a void thruster."
|
||||
id = "engine_void"
|
||||
build_path = /obj/item/circuitboard/machine/shuttle/engine/void
|
||||
category = list ("Shuttle Machinery")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/board/engine_heater
|
||||
name = "Machine Design (Engine Heater Board)"
|
||||
desc = "The circuit board for an engine heater."
|
||||
id = "engine_heater"
|
||||
build_path = /obj/item/circuitboard/machine/shuttle/heater
|
||||
category = list ("Shuttle Machinery")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/board/sheetifier
|
||||
name = "Sheetifier"
|
||||
desc = "This machine turns weird things into sheets."
|
||||
id = "sheetifier"
|
||||
build_path = /obj/item/circuitboard/machine/sheetifier
|
||||
category = list ("Misc. Machinery")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ALL
|
||||
|
||||
|
||||
@@ -66,6 +66,14 @@
|
||||
category = list("Research Machinery")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/board/bepis
|
||||
name = "Machine Design (B.E.P.I.S. Board)"
|
||||
desc = "The circuit board for a B.E.P.I.S."
|
||||
id = "bepis"
|
||||
build_path = /obj/item/circuitboard/machine/bepis
|
||||
category = list("Research Machinery")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE
|
||||
|
||||
/datum/design/board/protolathe
|
||||
name = "Machine Design (Protolathe Board)"
|
||||
desc = "The circuit board for a protolathe."
|
||||
|
||||
@@ -264,6 +264,79 @@
|
||||
construction_time = 600
|
||||
category = list("Gygax")
|
||||
|
||||
//Medical Gygax
|
||||
/datum/design/medigax_chassis
|
||||
name = "Exosuit Chassis (\"Medical Gygax\")"
|
||||
id = "medigax_chassis"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/chassis/medigax
|
||||
materials = list(/datum/material/iron=20000)
|
||||
construction_time = 100
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_torso
|
||||
name = "Exosuit Torso (\"Medical Gygax\")"
|
||||
id = "medigax_torso"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_torso
|
||||
materials = list(/datum/material/iron=20000,/datum/material/glass=10000,/datum/material/diamond=2000)
|
||||
construction_time = 300
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_head
|
||||
name = "Exosuit Head (\"Medical Gygax\")"
|
||||
id = "medigax_head"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_head
|
||||
materials = list(/datum/material/iron=10000,/datum/material/glass=5000, /datum/material/diamond=2000)
|
||||
construction_time = 200
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_left_arm
|
||||
name = "Exosuit Left Arm (\"Medical Gygax\")"
|
||||
id = "medigax_left_arm"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_left_arm
|
||||
materials = list(/datum/material/iron=15000, /datum/material/diamond=1000)
|
||||
construction_time = 200
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_right_arm
|
||||
name = "Exosuit Right Arm (\"Medical Gygax\")"
|
||||
id = "medigax_right_arm"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_right_arm
|
||||
materials = list(/datum/material/iron=15000, /datum/material/diamond=1000)
|
||||
construction_time = 200
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_left_leg
|
||||
name = "Exosuit Left Leg (\"Medical Gygax\")"
|
||||
id = "medigax_left_leg"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_left_leg
|
||||
materials = list(/datum/material/iron=15000, /datum/material/diamond=2000)
|
||||
construction_time = 200
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_right_leg
|
||||
name = "Exosuit Right Leg (\"Medical Gygax\")"
|
||||
id = "medigax_right_leg"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_right_leg
|
||||
materials = list(/datum/material/iron=15000, /datum/material/diamond=2000)
|
||||
construction_time = 200
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
/datum/design/medigax_armor
|
||||
name = "Exosuit Armor (\"Medical Gygax\")"
|
||||
id = "medigax_armor"
|
||||
build_type = MECHFAB
|
||||
build_path = /obj/item/mecha_parts/part/medigax_armor
|
||||
materials = list(/datum/material/iron=15000,/datum/material/diamond=10000,/datum/material/titanium=10000)
|
||||
construction_time = 600
|
||||
category = list("Medical-Spec Gygax")
|
||||
|
||||
//Durand
|
||||
/datum/design/durand_chassis
|
||||
name = "Exosuit Chassis (\"Durand\")"
|
||||
|
||||
@@ -212,6 +212,16 @@
|
||||
category = list("Medical Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
|
||||
/datum/design/chem_pack
|
||||
name = "Intravenous Medicine Bag"
|
||||
desc = "A plastic pressure bag for IV administration of drugs."
|
||||
id = "chem_pack"
|
||||
build_type = PROTOLATHE
|
||||
departmental_flags = DEPARTMENTAL_FLAG_MEDICAL
|
||||
materials = list(/datum/material/plastic = 1500)
|
||||
build_path = /obj/item/reagent_containers/chem_pack
|
||||
category = list("Medical Designs")
|
||||
|
||||
/datum/design/cloning_disk
|
||||
name = "Cloning Data Disk"
|
||||
desc = "Produce additional disks for storing genetic data."
|
||||
@@ -238,7 +248,7 @@
|
||||
|
||||
/datum/design/bodybag
|
||||
name = "Body Bag"
|
||||
desc = "A normal body bag used for storge of dead crew."
|
||||
desc = "A normal body bag used for storage of dead crew."
|
||||
id = "bodybag"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/plastic = 4000)
|
||||
|
||||
@@ -206,6 +206,35 @@
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/bright_helmet
|
||||
name = "Workplace-Ready Firefighter Helmet"
|
||||
desc = "By applying state of the art lighting technology to a fire helmet with industry standard photo-chemical hardening methods, this hardhat will protect you from robust workplace hazards."
|
||||
id = "bright_helmet"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 4000, /datum/material/glass = 1000, /datum/material/plastic = 3000, /datum/material/silver = 500)
|
||||
build_path = /obj/item/clothing/head/hardhat/red/upgraded
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SECURITY | DEPARTMENTAL_FLAG_CARGO
|
||||
|
||||
/datum/design/mauna_mug
|
||||
name = "Mauna Mug"
|
||||
desc = "This awesome mug will ensure your coffee never stays cold!"
|
||||
id = "mauna_mug"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 1000, /datum/material/glass = 100)
|
||||
build_path = /obj/item/reagent_containers/glass/maunamug
|
||||
category = list("Equipment")
|
||||
|
||||
/datum/design/rolling_table
|
||||
name = "Rolly poly"
|
||||
desc = "We duct-taped some wheels to the bottom of a table. It's goddamn science alright?"
|
||||
id = "rolling_table"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 4000)
|
||||
build_path = /obj/structure/table/rolling
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ALL
|
||||
|
||||
/datum/design/portaseeder
|
||||
name = "Portable Seed Extractor"
|
||||
desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant."
|
||||
@@ -285,6 +314,25 @@
|
||||
build_path = /obj/item/vending_refill/donksoft
|
||||
category = list("Equipment")
|
||||
|
||||
/datum/design/eng_gloves
|
||||
name = "Tinkers Gloves"
|
||||
desc = "Overdesigned engineering gloves that have automated construction subroutines dialed in, allowing for faster construction while worn."
|
||||
id = "eng_gloves"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron=2000, /datum/material/silver=1500, /datum/material/gold = 1000)
|
||||
build_path = /obj/item/clothing/gloves/color/latex/engineering
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/lavarods
|
||||
name = "Lava-Resistant Metal Rods"
|
||||
id = "lava_rods"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron=1000, /datum/material/plasma=500, /datum/material/titanium=2000)
|
||||
build_path = /obj/item/stack/rods/lava
|
||||
category = list("initial", "Stock Parts")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_CARGO | DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/////////////////////////////////////////
|
||||
////////////Janitor Designs//////////////
|
||||
/////////////////////////////////////////
|
||||
@@ -295,7 +343,7 @@
|
||||
id = "broom"
|
||||
build_type = PROTOLATHE | AUTOLATHE
|
||||
materials = list(/datum/material/iron = 1000, /datum/material/glass = 600)
|
||||
build_path = /obj/item/twohanded/broom
|
||||
build_path = /obj/item/broom
|
||||
category = list("initial", "Equipment", "Misc")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
@@ -659,3 +707,122 @@
|
||||
build_path = /obj/item/clothing/gloves/tackler/rocket
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/////////////////////////////////////////
|
||||
/////////////Internal Tanks//////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/oxygen_tank
|
||||
name = "Oxygen Tank"
|
||||
desc = "An empty oxygen tank."
|
||||
id = "oxygen_tank"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 2000)
|
||||
build_path = /obj/item/tank/internals/oxygen/empty
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/plasma_tank
|
||||
name = "Plasma Tank"
|
||||
desc = "An empty plasma tank."
|
||||
id = "plasma_tank"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 2000)
|
||||
build_path = /obj/item/tank/internals/plasma/empty
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/emergency_oxygen
|
||||
name = "Emergency Oxygen Tank"
|
||||
desc = "A small emergency oxygen tank."
|
||||
id = "emergency_oxygen"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 1000)
|
||||
build_path = /obj/item/tank/internals/emergency_oxygen/empty
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/plasma_belt_tank
|
||||
name = "Plasmaman Belt Tank"
|
||||
desc = "A small tank of plasma for plasmamen."
|
||||
id = "plasmaman_tank_belt"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 1000)
|
||||
build_path = /obj/item/tank/internals/plasmaman/belt/empty
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/emergency_oxygen_engi
|
||||
name = "Engineering Emergency Oxygen Tank"
|
||||
desc = "An emergency oxygen tank for engineers."
|
||||
id = "emergency_oxygen_engi"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 1000)
|
||||
build_path = /obj/item/tank/internals/emergency_oxygen/engi/empty
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/////////////////////////////////////////
|
||||
/////////////////Tape////////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/sticky_tape
|
||||
name = "Sticky Tape"
|
||||
id = "sticky_tape"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/plastic = 500)
|
||||
build_path = /obj/item/stack/sticky_tape
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/super_sticky_tape
|
||||
name = "Super Sticky Tape"
|
||||
id = "super_sticky_tape"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/plastic = 3000)
|
||||
build_path = /obj/item/stack/sticky_tape/super
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/datum/design/pointy_tape
|
||||
name = "Pointy Tape"
|
||||
id = "pointy_tape"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 1500, /datum/material/plastic = 1000)
|
||||
build_path = /obj/item/stack/sticky_tape/pointy
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SERVICE
|
||||
|
||||
/////////////////////////////////////////
|
||||
/////////////////Shuttle Upgrades////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
/datum/design/shuttle_speed_upgrade
|
||||
name = "Shuttle Route Optimisation Upgrade"
|
||||
desc = "A disk that allows for calculating shorter routes when inserted into a flight control console."
|
||||
id = "disk_shuttle_route"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 1000, /datum/material/glass = 1000)
|
||||
build_path = /obj/item/shuttle_route_optimisation
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/shuttle_speed_upgrade_hyper
|
||||
name = "Shuttle Bluespace Hyperlane Optimisation Upgrade"
|
||||
desc = "A disk that allows for calculating shorter routes when inserted into a flight control console. This one abuses bluespace hyperlanes for increased efficiency."
|
||||
id = "disk_shuttle_route_hyper"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 1000, /datum/material/glass = 1000)
|
||||
build_path = /obj/item/shuttle_route_optimisation/hyperlane
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/shuttle_speed_upgrade_void
|
||||
name = "Shuttle Voidspace Optimisation Upgrade"
|
||||
desc = "A disk that allows for calculating shorter routes when inserted into a flight control console. This one access voidspace for increased efficiency."
|
||||
id = "disk_shuttle_route_void"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 1000, /datum/material/glass = 1000)
|
||||
build_path = /obj/item/shuttle_route_optimisation/void
|
||||
category = list("Equipment")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
@@ -42,6 +42,16 @@
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/shuttlecreator
|
||||
name = "Rapid Shuttle Designator"
|
||||
desc = "An advanced device capable of defining areas for use in the creation of shuttles"
|
||||
id = "shuttle_creator"
|
||||
build_path = /obj/item/shuttle_creator
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 8000, /datum/material/titanium = 5000, /datum/material/bluespace = 5000)
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/handdrill
|
||||
name = "Hand Drill"
|
||||
desc = "A small electric hand drill with an interchangeable screwdriver and bolt bit"
|
||||
@@ -72,6 +82,16 @@
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SCIENCE | DEPARTMENTAL_FLAG_ENGINEERING
|
||||
|
||||
/datum/design/rld_mini
|
||||
name = "Mini Rapid Light Device (MRLD)"
|
||||
desc = "A tool that can portable and standing lighting orbs and glowsticks."
|
||||
id = "rld_mini"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 20000, /datum/material/glass = 10000, /datum/material/plastic = 8000, /datum/material/gold = 2000)
|
||||
build_path = /obj/item/construction/rld/mini
|
||||
category = list("Tool Designs")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_CARGO
|
||||
|
||||
/////////////////////////////////////////
|
||||
//////////////Alien Tools////////////////
|
||||
/////////////////////////////////////////
|
||||
|
||||
@@ -91,7 +91,7 @@
|
||||
|
||||
/datum/design/mag_oldsmg
|
||||
name = "WT-550 Semi-Auto SMG Magazine (4.6x30mm)"
|
||||
desc = "A 20 round magazine for the out of date security WT-550 Semi-Auto SMG."
|
||||
desc = "A 32 round magazine for the out of date security WT-550 Semi-Auto SMG."
|
||||
id = "mag_oldsmg"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 4000)
|
||||
@@ -101,7 +101,7 @@
|
||||
|
||||
/datum/design/mag_oldsmg/ap_mag
|
||||
name = "WT-550 Semi-Auto SMG Armour Piercing Magazine (4.6x30mm AP)"
|
||||
desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG."
|
||||
desc = "A 32 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG."
|
||||
id = "mag_oldsmg_ap"
|
||||
materials = list(/datum/material/iron = 6000, /datum/material/silver = 600)
|
||||
build_path = /obj/item/ammo_box/magazine/wt550m9/wtap
|
||||
@@ -109,7 +109,7 @@
|
||||
|
||||
/datum/design/mag_oldsmg/ic_mag
|
||||
name = "WT-550 Semi-Auto SMG Incendiary Magazine (4.6x30mm IC)"
|
||||
desc = "A 20 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG."
|
||||
desc = "A 32 round armour piercing magazine for the out of date security WT-550 Semi-Auto SMG."
|
||||
id = "mag_oldsmg_ic"
|
||||
materials = list(/datum/material/iron = 6000, /datum/material/silver = 600, /datum/material/glass = 1000)
|
||||
build_path = /obj/item/ammo_box/magazine/wt550m9/wtic
|
||||
@@ -117,7 +117,7 @@
|
||||
|
||||
/datum/design/mag_oldsmg/tx_mag
|
||||
name = "WT-550 Semi-Auto SMG Uranium Magazine (4.6x30mm TX)"
|
||||
desc = "A 20 round uranium tipped magazine for the out of date security WT-550 Semi-Auto SMG."
|
||||
desc = "A 32 round uranium tipped magazine for the out of date security WT-550 Semi-Auto SMG."
|
||||
id = "mag_oldsmg_tx"
|
||||
materials = list(/datum/material/iron = 6000, /datum/material/silver = 600, /datum/material/uranium = 2000)
|
||||
build_path = /obj/item/ammo_box/magazine/wt550m9/wttx
|
||||
@@ -125,7 +125,7 @@
|
||||
|
||||
/datum/design/mag_oldsmg/rubber_mag
|
||||
name = "WT-550 Semi-Auto SMG rubberbullets Magazine (4.6x30mm rubber)"
|
||||
desc = "A 20 round rubber shots magazine for the out of date security WT-550 Semi-Auto SMG"
|
||||
desc = "A 32 round rubber shots magazine for the out of date security WT-550 Semi-Auto SMG"
|
||||
id = "mag_oldsmg_rubber"
|
||||
materials = list(/datum/material/iron = 6000)
|
||||
build_path = /obj/item/ammo_box/magazine/wt550m9/wtrubber
|
||||
@@ -234,13 +234,13 @@
|
||||
category = list("Firing Pins")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
/datum/design/pin_away
|
||||
name = "Station Locked Pin"
|
||||
desc = "This is a security firing pin which only authorizes users who are off station."
|
||||
id = "pin_away"
|
||||
/datum/design/pin_explorer
|
||||
name = "Outback Firing Pin"
|
||||
desc = "This firing pin only shoots while ya ain't on station, fair dinkum!"
|
||||
id = "pin_explorer"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 1500, /datum/material/glass = 2000)
|
||||
build_path = /obj/item/firing_pin/away
|
||||
materials = list(/datum/material/silver = 1000, /datum/material/gold = 1000, /datum/material/iron = 500)
|
||||
build_path = /obj/item/firing_pin/explorer
|
||||
category = list("Firing Pins")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
@@ -500,3 +500,13 @@
|
||||
materials = list(MAT_CATEGORY_RIGID = 12000)
|
||||
build_path = /obj/item/melee/cleric_mace
|
||||
category = list("Imported")
|
||||
|
||||
/datum/design/stun_boomerang
|
||||
name = "OZtek Boomerang"
|
||||
desc = "Uses reverse flow gravitodynamics to flip its personal gravity back to the thrower mid-flight. Also functions similar to a stun baton."
|
||||
id = "stun_boomerang"
|
||||
build_type = PROTOLATHE
|
||||
materials = list(/datum/material/iron = 10000, /datum/material/glass = 4000, /datum/material/silver = 10000, /datum/material/gold = 2000)
|
||||
build_path = /obj/item/melee/baton/boomerang
|
||||
category = list("Weapons")
|
||||
departmental_flags = DEPARTMENTAL_FLAG_SECURITY
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
for(var/i in 1 to amount)
|
||||
var/obj/O = new path(get_turf(src))
|
||||
if(efficient_with(O.type))
|
||||
O.set_custom_materials(matlist.Copy())
|
||||
O.set_custom_materials(matlist)
|
||||
O.rnd_crafted(src)
|
||||
SSblackbox.record_feedback("nested tally", "item_printed", amount, list("[type]", "[path]"))
|
||||
investigate_log("[key_name(user)] built [amount] of [path] at [src]([type]).", INVESTIGATE_RESEARCH)
|
||||
|
||||
@@ -1075,6 +1075,9 @@ Nothing else in the console has ID requirements.
|
||||
/obj/machinery/computer/rdconsole/ui_interact(mob/user)
|
||||
. = ..()
|
||||
var/datum/browser/popup = new(user, "rndconsole", name, 900, 600)
|
||||
var/datum/asset/spritesheet/assets = get_asset_datum(/datum/asset/spritesheet/research_designs)
|
||||
|
||||
popup.add_head_content("<link rel='stylesheet' type='text/css' href='[assets.css_tag()]'>")
|
||||
popup.add_stylesheet("techwebs", 'html/browser/techwebs.css')
|
||||
popup.set_content(generate_ui())
|
||||
popup.open()
|
||||
|
||||
@@ -21,6 +21,16 @@
|
||||
. = ..()
|
||||
stored_research = new /datum/techweb/admin
|
||||
|
||||
/obj/item/disk/tech_disk/major
|
||||
name = "Reformatted technology disk"
|
||||
desc = "A disk containing a new, completed tech from the B.E.P.I.S. Upload the disk to an R&D Console to redeem the tech."
|
||||
icon_state = "rndmajordisk"
|
||||
custom_materials = list(/datum/material/iron=300, /datum/material/glass=100)
|
||||
|
||||
/obj/item/disk/tech_disk/major/Initialize()
|
||||
. = ..()
|
||||
stored_research = new /datum/techweb/bepis
|
||||
|
||||
/obj/item/disk/tech_disk/illegal
|
||||
name = "Illegal technology disk"
|
||||
desc = "A technology disk containing schematics for syndicate inspired equipment."
|
||||
|
||||
@@ -24,10 +24,10 @@
|
||||
var/list/tiers = list() //Assoc list, id = number, 1 is available, 2 is all reqs are 1, so on
|
||||
|
||||
/datum/techweb/New()
|
||||
hidden_nodes = SSresearch.techweb_nodes_hidden.Copy()
|
||||
for(var/i in SSresearch.techweb_nodes_starting)
|
||||
var/datum/techweb_node/DN = SSresearch.techweb_node_by_id(i)
|
||||
research_node(DN, TRUE, FALSE)
|
||||
hidden_nodes = SSresearch.techweb_nodes_hidden.Copy()
|
||||
return ..()
|
||||
|
||||
/datum/techweb/admin
|
||||
@@ -63,6 +63,19 @@
|
||||
id = "SCIENCE"
|
||||
organization = "Nanotrasen"
|
||||
|
||||
/datum/techweb/bepis //Should contain only 1 BEPIS tech selected at random.
|
||||
id = "EXPERIMENTAL"
|
||||
organization = "Nanotrasen R&D"
|
||||
|
||||
/datum/techweb/bepis/New()
|
||||
. = ..()
|
||||
var/bepis_id = pick(SSresearch.techweb_nodes_experimental) //To add a new tech to the BEPIS, add the ID to this pick list.
|
||||
var/datum/techweb_node/BN = (SSresearch.techweb_node_by_id(bepis_id))
|
||||
hidden_nodes -= BN.id //Has to be removed from hidden nodes
|
||||
research_node(BN, TRUE, FALSE, FALSE)
|
||||
update_node_status(BN)
|
||||
SSresearch.techweb_nodes_experimental -= bepis_id
|
||||
|
||||
/datum/techweb/Destroy()
|
||||
researched_nodes = null
|
||||
researched_designs = null
|
||||
@@ -126,17 +139,17 @@
|
||||
modify_point_list(l)
|
||||
|
||||
/datum/techweb/proc/copy_research_to(datum/techweb/receiver, unlock_hidden = TRUE) //Adds any missing research to theirs.
|
||||
if(unlock_hidden)
|
||||
for(var/i in receiver.hidden_nodes)
|
||||
CHECK_TICK
|
||||
if(!hidden_nodes[i])
|
||||
receiver.hidden_nodes -= i //We can see it so let them see it too.
|
||||
for(var/i in researched_nodes)
|
||||
CHECK_TICK
|
||||
receiver.research_node_id(i, TRUE, FALSE)
|
||||
for(var/i in researched_designs)
|
||||
CHECK_TICK
|
||||
receiver.add_design_by_id(i)
|
||||
if(unlock_hidden)
|
||||
for(var/i in receiver.hidden_nodes)
|
||||
CHECK_TICK
|
||||
if(!hidden_nodes[i])
|
||||
receiver.hidden_nodes -= i //We can see it so let them see it too.
|
||||
receiver.recalculate_nodes()
|
||||
|
||||
/datum/techweb/proc/copy()
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
var/display_name = "Errored Node"
|
||||
var/description = "Why are you seeing this?"
|
||||
var/hidden = FALSE //Whether it starts off hidden.
|
||||
var/experimental = FALSE //If the tech can be randomly granted by the BEPIS as a reward. Meant to be fully given in tech disks, not researched.
|
||||
var/starting_node = FALSE //Whether it's available without any research.
|
||||
var/list/prereq_ids = list()
|
||||
var/list/design_ids = list()
|
||||
@@ -102,6 +103,6 @@
|
||||
description = "NT default research technologies."
|
||||
// Default research tech, prevents bricking
|
||||
design_ids = list("basic_matter_bin", "basic_cell", "basic_scanning", "basic_capacitor", "basic_micro_laser", "micro_mani", "desttagger", "handlabel", "packagewrap",
|
||||
"destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", "paystand",
|
||||
"destructive_analyzer", "circuit_imprinter", "experimentor", "rdconsole", "bepis", "design_disk", "tech_disk", "rdserver", "rdservercontrol", "mechfab", "paystand",
|
||||
"space_heater", "beaker", "large_beaker", "bucket", "xlarge_beaker", "sec_shellclip", "sec_beanbag", "sec_rshot", "sec_bshot", "sec_slug", "sec_islug", "sec_dart", "sec_38", "sec_38lethal",
|
||||
"rglass","plasteel","plastitanium","plasmaglass","plasmareinforcedglass","titaniumglass","plastitaniumglass")
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
////////////////////////B.E.P.I.S. Locked Techs////////////////////////
|
||||
|
||||
/datum/techweb_node/light_apps
|
||||
id = "light_apps"
|
||||
display_name = "Illumination Applications"
|
||||
description = "Applications of lighting and vision technology not originally thought to be commercially viable."
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("bright_helmet", "rld_mini")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
|
||||
/datum/techweb_node/aus_security
|
||||
id = "aus_security"
|
||||
display_name = "Australicus Security Protocols"
|
||||
description = "It is said that security in the Australicus sector is tight, so we took some pointers from their equipment. Thankfully, our sector lacks any signs of these, 'dropbears'."
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("pin_explorer", "stun_boomerang")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
|
||||
/datum/techweb_node/spec_eng
|
||||
id = "spec_eng"
|
||||
display_name = "Specialized Engineering"
|
||||
description = "Conventional wisdom has deemed these engineering products 'technically' safe, but far too dangerous to traditionally condone."
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("lava_rods", "eng_gloves")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
|
||||
/datum/techweb_node/rolling_table
|
||||
id = "rolling_table"
|
||||
display_name = "Advanced Wheel Applications"
|
||||
description = "Adding wheels to things can lead to extremely beneficial outcomes."
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("rolling_table")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
|
||||
/datum/techweb_node/Mauna_Mug
|
||||
id = "mauna_mug"
|
||||
display_name = "Mauna Mug"
|
||||
description = "A bored scientist was thinking to himself for very long...and then realized his coffee got cold! He made this invention to solve this extreme problem."
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("mauna_mug")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
|
||||
/datum/techweb_node/nanite_replication_protocols
|
||||
id = "nanite_replication_protocols"
|
||||
display_name = "Nanite Replication Protocols"
|
||||
description = "Advanced behaviours that allow nanites to exploit certain circumstances to replicate faster."
|
||||
prereq_ids = list("nanite_smart")
|
||||
design_ids = list("kickstart_nanites","factory_nanites","tinker_nanites","offline_nanites","synergy_nanites")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
|
||||
/datum/techweb_node/interrogation
|
||||
id = "interrogation"
|
||||
display_name = "Enhanced Interrogation Technology"
|
||||
description = "By cross-referencing several declassified documents from past dictatorial regimes, we were able to develop an incredibly effective interrogation device. \
|
||||
Ethical concerns about loss of free will may still apply, according to galactic law."
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("hypnochair")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3500)
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
|
||||
/datum/techweb_node/tackle_advanced
|
||||
id = "tackle_advanced"
|
||||
display_name = "Advanced Grapple Technology"
|
||||
description = "Nanotrasen would like to remind its researching staff that it is never acceptable to \"glomp\" your coworkers, and further \"scientific trials\" on the subject \
|
||||
will no longer be accepted in its academic journals."
|
||||
design_ids = list("tackle_dolphin", "tackle_rocket")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
|
||||
/datum/techweb_node/sticky_advanced
|
||||
id = "sticky_advanced"
|
||||
display_name = "Advanced Sticky Technology"
|
||||
description = "Taking a good joke too far? Nonsense!"
|
||||
design_ids = list("super_sticky_tape", "pointy_tape")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
@@ -5,7 +5,7 @@
|
||||
display_name = "Biological Technology"
|
||||
description = "What makes us tick." //the MC, silly!
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv", "medspray","genescanner")
|
||||
design_ids = list("medicalkit", "chem_heater", "chem_master", "chem_dispenser", "sleeper", "vr_sleeper", "pandemic", "defibrillator", "defibmount", "operating", "soda_dispenser", "beer_dispenser", "healthanalyzer", "blood_bag", "bloodbankgen", "telescopiciv", "medspray","genescanner","chem_pack")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
/datum/techweb_node/adv_biotech
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
display_name = "Applied Bluespace Research"
|
||||
description = "Using bluespace to make things faster and better."
|
||||
prereq_ids = list("bluespace_basic", "engineering")
|
||||
design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic")
|
||||
design_ids = list("bs_rped","biobag_holding","minerbag_holding", "bluespacebeaker", "bluespacesyringe", "phasic_scanning", "bluespacesmartdart", "xenobio_slimebasic", "bluespace_tray", "bluespace_carrier")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
|
||||
|
||||
/datum/techweb_node/adv_bluespace
|
||||
@@ -63,3 +63,36 @@
|
||||
prereq_ids = list("bluespace_warping", "syndicate_basic")
|
||||
design_ids = list("desynchronizer")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
/////////////////////////shuttle tech/////////////////////////
|
||||
/datum/techweb_node/basic_shuttle_tech
|
||||
id = "basic_shuttle"
|
||||
display_name = "Basic Shuttle Research"
|
||||
description = "Research the technology required to create and use basic shuttles."
|
||||
prereq_ids = list("practical_bluespace", "adv_engi")
|
||||
design_ids = list("shuttle_creator", "engine_plasma", "engine_heater", "shuttle_control", "shuttle_docker")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
|
||||
|
||||
/datum/techweb_node/shuttle_route_upgrade
|
||||
id = "shuttle_route_upgrade"
|
||||
display_name = "Route Optimisation Upgrade"
|
||||
description = "Research into bluespace tunnelling, allowing us to reduce flight times by up to 20%!"
|
||||
prereq_ids = list("basic_shuttle")
|
||||
design_ids = list("disk_shuttle_route")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
/datum/techweb_node/shuttle_route_upgrade_hyper
|
||||
id = "shuttle_route_upgrade_hyper"
|
||||
display_name = "Hyperlane Optimisation Upgrade"
|
||||
description = "Research into bluespace hyperlane, allowing us to reduce flight times by up to 40%!"
|
||||
prereq_ids = list("shuttle_route_upgrade", "bluespace_warping")
|
||||
design_ids = list("disk_shuttle_route_hyper")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
|
||||
|
||||
/datum/techweb_node/shuttle_route_upgrade_void
|
||||
id = "shuttle_route_upgrade_void"
|
||||
display_name = "Nullspace Breaching Upgrade"
|
||||
description = "Research into voidspace tunnelling, allowing us to significantly reduce flight times."
|
||||
prereq_ids = list("shuttle_route_upgrade_hyper", "alientech")
|
||||
design_ids = list("disk_shuttle_route_void", "engine_void")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 12500)
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("solarcontrol", "recharger", "powermonitor", "rped", "pacman", "adv_capacitor", "adv_scanning", "emitter", "high_cell", "adv_matter_bin",
|
||||
"atmosalerts", "atmos_control", "recycler", "autolathe", "autolathe_secure", "high_micro_laser", "nano_mani", "mesons", "thermomachine", "rad_collector", "tesla_coil", "grounding_rod",
|
||||
"apc_control", "power control", "airlock_board", "firelock_board", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine", "rcd_ammo")
|
||||
"apc_control", "power control", "airlock_board", "firelock_board", "airalarm_electronics", "firealarm_electronics", "cell_charger", "stack_console", "stack_machine", "rcd_ammo","oxygen_tank",
|
||||
"plasma_tank", "emergency_oxygen", "emergency_oxygen_engi", "plasmaman_tank_belt")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 6000)
|
||||
|
||||
/datum/techweb_node/adv_engi
|
||||
@@ -15,7 +16,9 @@
|
||||
display_name = "Advanced Engineering"
|
||||
description = "Pushing the boundaries of physics, one chainsaw-fist at a time."
|
||||
prereq_ids = list("engineering", "emp_basic")
|
||||
design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask" , "rcd_loaded", "rpd", "tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade_frames", "rcd_upgrade_simple_circuits", "rcd_ammo_large")
|
||||
design_ids = list("engine_goggles", "magboots", "forcefield_projector", "weldingmask" , "rcd_loaded", "rpd",
|
||||
"tray_goggles_prescription", "engine_goggles_prescription", "mesons_prescription", "rcd_upgrade_frames",
|
||||
"rcd_upgrade_simple_circuits", "rcd_ammo_large", "sheetifier")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 4000)
|
||||
|
||||
/datum/techweb_node/anomaly
|
||||
|
||||
@@ -42,6 +42,14 @@
|
||||
"gygax_peri", "gygax_targ", "gygax_armor")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
/datum/techweb_node/medigax
|
||||
id = "mech_medigax"
|
||||
display_name = "EXOSUIT: Medical-Spec Gygax"
|
||||
description = "Medical-Spec Gygax designs"
|
||||
prereq_ids = list("mech_gygax", "mecha_odysseus")
|
||||
design_ids = list("medigax_chassis", "medigax_torso", "medigax_head", "medigax_left_arm", "medigax_right_arm", "medigax_left_leg", "medigax_right_leg", "medigax_armor")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
/datum/techweb_node/durand
|
||||
id = "mech_durand"
|
||||
display_name = "EXOSUIT: Durand"
|
||||
|
||||
@@ -66,3 +66,24 @@
|
||||
design_ids = list("air_horn", "honker_main", "honker_peri", "honker_targ", "honk_chassis", "honk_head", "honk_torso", "honk_left_arm", "honk_right_arm",
|
||||
"honk_left_leg", "honk_right_leg", "mech_banana_mortar", "mech_mousetrap_mortar", "mech_honker", "mech_punching_face", "implant_trombone", "borg_transform_clown")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
|
||||
////////////////////////Tape tech////////////////////////////
|
||||
/datum/techweb_node/sticky_basic
|
||||
id = "sticky_basic"
|
||||
display_name = "Basic Sticky Technology"
|
||||
description = "The only thing left to do after researching this tech is to start printing out a bunch of 'kick me' signs."
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("sticky_tape")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500)
|
||||
hidden = TRUE
|
||||
experimental = TRUE
|
||||
|
||||
// Can be researched after getting the basic sticky technology from the BEPIS major reward
|
||||
/datum/techweb_node/sticky_advanced
|
||||
id = "sticky_advanced"
|
||||
display_name = "Advanced Sticky Technology"
|
||||
description = "Taking a good joke too far? Nonsense!"
|
||||
prereq_ids = list("sticky_basic")
|
||||
design_ids = list("super_sticky_tape", "pointy_tape")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
|
||||
hidden = TRUE
|
||||
@@ -74,11 +74,3 @@
|
||||
prereq_ids = list("nanite_harmonic", "alientech")
|
||||
design_ids = list("spreading_nanites","mindcontrol_nanites","mitosis_nanites")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 10000)
|
||||
|
||||
/datum/techweb_node/nanite_replication_protocols
|
||||
id = "nanite_replication_protocols"
|
||||
display_name = "Nanite Replication Protocols"
|
||||
description = "Advanced behaviours that allow nanites to exploit certain circumstances to replicate faster."
|
||||
prereq_ids = list("nanite_smart")
|
||||
design_ids = list("kickstart_nanites","factory_nanites","tinker_nanites","offline_nanites","synergy_nanites")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5000)
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
display_name = "Basic Tools"
|
||||
description = "Basic mechanical, electronic, surgical and botanical tools."
|
||||
prereq_ids = list("base")
|
||||
design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet", "mop", "broom", "normtrash")
|
||||
design_ids = list("screwdriver", "wrench", "wirecutters", "crowbar", "multitool", "welding_tool", "tscanner", "analyzer", "cable_coil", "pipe_painter", "airlock_painter", "decal_painter", "scalpel", "circular_saw", "surgicaldrill", "retractor", "cautery", "hemostat", "cultivator", "plant_analyzer", "shovel", "spade", "hatchet", "mop", "broom", "normtrash", "spraycan")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 500)
|
||||
|
||||
/datum/techweb_node/basic_mining
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
display_name = "Weapon Development Technology"
|
||||
description = "Our researchers have found new to weaponize just about everything now."
|
||||
prereq_ids = list("engineering")
|
||||
design_ids = list("pin_testing", "tele_shield", "lasercarbine", "pin_away")
|
||||
design_ids = list("pin_testing", "tele_shield", "lasercarbine")
|
||||
research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 7500)
|
||||
|
||||
/datum/techweb_node/adv_weaponry
|
||||
|
||||
@@ -276,7 +276,7 @@ Burning extracts:
|
||||
|
||||
/obj/item/slimecross/burning/adamantine/do_effect(mob/user)
|
||||
user.visible_message("<span class='notice'>[src] crystallizes into a large shield!</span>")
|
||||
new /obj/item/twohanded/required/adamantineshield(get_turf(user))
|
||||
new /obj/item/shield/adamantineshield(get_turf(user))
|
||||
..()
|
||||
|
||||
/obj/item/slimecross/burning/rainbow
|
||||
@@ -440,7 +440,7 @@ Burning extracts:
|
||||
attack_verb = list("irradiated","mutated","maligned")
|
||||
return ..()
|
||||
|
||||
/obj/item/twohanded/required/adamantineshield
|
||||
/obj/item/shield/adamantineshield
|
||||
name = "adamantine shield"
|
||||
desc = "A gigantic shield made of solid adamantium."
|
||||
icon = 'icons/obj/slimecrossing.dmi'
|
||||
@@ -450,12 +450,15 @@ Burning extracts:
|
||||
armor = list("melee" = 50, "bullet" = 50, "laser" = 50, "energy" = 0, "bomb" = 30, "bio" = 0, "rad" = 0, "fire" = 80, "acid" = 70)
|
||||
slot_flags = ITEM_SLOT_BACK
|
||||
block_chance = 75
|
||||
force = 0
|
||||
throw_range = 1 //How far do you think you're gonna throw a solid crystalline shield...?
|
||||
throw_speed = 2
|
||||
force = 15 //Heavy, but hard to wield.
|
||||
attack_verb = list("bashed","pounded","slammed")
|
||||
item_flags = SLOWS_WHILE_IN_HAND
|
||||
|
||||
/obj/item/shield/adamantineshield/ComponentInitialize()
|
||||
. = ..()
|
||||
AddComponent(/datum/component/two_handed, require_twohands=TRUE, force_wielded=15)
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/shapeshift/slimeform
|
||||
name = "Slime Transformation"
|
||||
|
||||
Reference in New Issue
Block a user