Adds Materials to Every Autolathe and Protolathe Item (except for ammo boxes, IK mags, and Dart Boxes) (#31445)

* Holy fuck there's so much shit I'm not even done

* oh god there's so many

* it is done

* Update autolathe_designs.dm

* Update circuitboard.dm
This commit is contained in:
CRUNCH
2026-01-30 21:25:40 +00:00
committed by GitHub
parent 64d5fcb6ef
commit da1ebd039d
155 changed files with 640 additions and 276 deletions
+10 -1
View File
@@ -19,7 +19,7 @@ AI MODULES
throw_speed = 3
throw_range = 15
origin_tech = "programming=3"
materials = list(MAT_GOLD=50)
materials = list(MAT_GLASS = 1000, MAT_GOLD = 100)
new_attack_chain = TRUE
var/datum/ai_laws/laws = null
@@ -147,6 +147,7 @@ AI MODULES
desc = "A 'one crew' AI module: 'Only <name> is crew.'"
icon_state = "green_high"
origin_tech = "programming=4;materials=4"
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
/obj/item/ai_module/one_crew_member/activate_self(mob/user)
if(..())
@@ -287,6 +288,7 @@ AI MODULES
desc = "An 'Asimov' Core AI Module: 'Reconfigures the AI's core laws.'"
icon_state = "green_high"
origin_tech = "programming=3;materials=4"
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
laws = new /datum/ai_laws/asimov
/******************** Crewsimov ********************/
@@ -296,6 +298,7 @@ AI MODULES
desc = "An 'Crewsimov' Core AI Module: 'Reconfigures the AI's core laws.'"
icon_state = "green_low"
origin_tech = "programming=3;materials=4"
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
laws = new /datum/ai_laws/crewsimov
/obj/item/ai_module/crewsimov/cmag_act(mob/user)
@@ -328,6 +331,7 @@ AI MODULES
desc = "A 'Corporate' Core AI Module: 'Reconfigures the AI's core laws.'"
icon_state = "blue_low"
origin_tech = "programming=3;materials=4"
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
laws = new /datum/ai_laws/corporate
/******************** Drone ********************/
@@ -353,6 +357,7 @@ AI MODULES
desc = "A P.A.L.A.D.I.N. Core AI Module: 'Reconfigures the AI's core laws.'"
icon_state = "red_medium"
origin_tech = "programming=3;materials=4"
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
laws = new /datum/ai_laws/paladin
/****************** T.Y.R.A.N.T. *****************/
@@ -362,6 +367,7 @@ AI MODULES
desc = "A T.Y.R.A.N.T. Core AI Module: 'Reconfigures the AI's core laws.'"
icon_state = "red_high"
origin_tech = "programming=3;materials=4;syndicate=1"
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
laws = new /datum/ai_laws/tyrant()
/******************** Antimov ********************/
@@ -371,6 +377,7 @@ AI MODULES
desc = "An 'Antimov' Core AI Module: 'Reconfigures the AI's core laws.'"
icon_state = "red_high"
origin_tech = "programming=4"
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
laws = new /datum/ai_laws/antimov()
/******************** Pranksimov ********************/
@@ -379,6 +386,7 @@ AI MODULES
desc = "A 'Pranksimov' Core AI Module: 'Reconfigures the AI's core laws.'"
icon_state = "pranksimov"
origin_tech = "programming=3;syndicate=1"
materials = list(MAT_GLASS = 1000, MAT_BANANIUM = 100)
laws = new /datum/ai_laws/pranksimov()
/******************** NT Aggressive ********************/
@@ -424,6 +432,7 @@ AI MODULES
desc = "A 'freeform' Core AI module: '<freeform>'"
icon_state = "standard_high"
origin_tech = "programming=5;materials=4"
materials = list(MAT_GLASS = 1000, MAT_DIAMOND = 100)
/obj/item/ai_module/freeformcore/activate_self(mob/user)
if(..())
+1 -1
View File
@@ -718,7 +718,7 @@
icon_state = "rcd"
inhand_icon_state = "rcdammo"
origin_tech = "materials=3"
materials = list(MAT_METAL=16000, MAT_GLASS=8000)
materials = list(MAT_METAL = 16000, MAT_GLASS = 8000)
new_attack_chain = TRUE
var/ammoamt = 20
+1
View File
@@ -8,6 +8,7 @@
throwforce = 5
throw_speed = 1
origin_tech = "engineering=4;materials=2"
materials = list(MAT_METAL = 5000)
var/max_amount = 90
var/active = FALSE
var/obj/structure/cable/last = null
@@ -3,6 +3,7 @@
desc = "Injects things."
icon_state = "reagents"
origin_tech = "materials=3;biotech=4"
materials = list(MAT_GLASS = 200)
container_type = OPENCONTAINER
trigger_causes = BIOCHIP_TRIGGER_DEATH_ANY
implant_data = /datum/implant_fluff/chem
@@ -7,6 +7,7 @@
throw_speed = 3
throw_range = 5
w_class = WEIGHT_CLASS_SMALL
materials = list(MAT_METAL = 2000, MAT_GLASS = 1000)
var/obj/item/bio_chip_case/case
var/static/list/cached_base64_icons = list()
@@ -6,6 +6,7 @@
trigger_causes = BIOCHIP_EMOTE_TRIGGER_UNINTENTIONAL | BIOCHIP_TRIGGER_DEATH_ANY
implant_data = /datum/implant_fluff/sad_trombone
implant_state = "implant-honk"
materials = list(MAT_BANANIUM = 500)
/obj/item/bio_chip/sad_trombone/emote_trigger(emote, mob/source, force)
activate(emote)
@@ -3,6 +3,7 @@
desc = "Track with this."
activated = BIOCHIP_ACTIVATED_PASSIVE
origin_tech = "materials=2;magnets=2;programming=2;biotech=2"
materials = list(MAT_METAL = 500)
implant_data = /datum/implant_fluff/tracking
implant_state = "implant-nanotrasen"
var/warn_cooldown = 0
@@ -6,7 +6,7 @@
inhand_icon_state = "electronic"
origin_tech = "programming=2"
w_class = WEIGHT_CLASS_SMALL
materials = list(MAT_GLASS=200)
materials = list(MAT_GLASS = 1000)
usesound = 'sound/items/deconstruct.ogg'
/// Use this instead of `name`. Formats as: `circuit board ([board_name])`
var/board_name = null
+1
View File
@@ -31,6 +31,7 @@
icon_state = "air_horn"
origin_tech = "materials=4;engineering=4"
honk_sounds = list('sound/items/airhorn2.ogg' = 1)
materials = list(MAT_METAL = 4000, MAT_BANANIUM = 1000)
/obj/item/bikehorn/golden
name = "golden bike horn"
+1
View File
@@ -310,6 +310,7 @@
validSurfaces = list(/turf/simulated/floor,/turf/simulated/wall)
dye_color = null // not technically a crayon, so we're not gonna have it dye stuff in the laundry machine
consumable = FALSE // To stop you from eating spraycans. It's TOO SILLY!
materials = list(MAT_METAL = 100, MAT_GLASS = 100)
/obj/item/toy/crayon/spraycan/Initialize(mapload)
. = ..()
+2
View File
@@ -10,6 +10,7 @@
throwforce = 6
w_class = WEIGHT_CLASS_BULKY
origin_tech = "biotech=4"
materials = list(MAT_METAL = 5000, MAT_GLASS = 2000, MAT_SILVER = 1000)
actions_types = list(/datum/action/item_action/toggle_paddles)
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 50, ACID = 50)
new_attack_chain = TRUE
@@ -221,6 +222,7 @@
slot_flags = ITEM_SLOT_BELT
flags_2 = ALLOW_BELT_NO_JUMPSUIT_2
origin_tech = "biotech=5"
materials = list(MAT_METAL = 10000, MAT_GLASS = 4000, MAT_SILVER = 2000)
/obj/item/defibrillator/compact/loaded/Initialize(mapload)
. = ..()
@@ -10,6 +10,7 @@
flags = NOBLUDGEON
var/flush = null
origin_tech = "programming=3;materials=3"
materials = list(MAT_GLASS = 1000, MAT_GOLD = 200)
/obj/item/aicard/afterattack__legacy__attackchain(atom/target, mob/user, proximity)
..()
@@ -5,6 +5,7 @@ RESTRICT_TYPE(/obj/item/autochef_remote)
icon = 'icons/obj/cooking/misc.dmi'
icon_state = "autochef_remote"
w_class = WEIGHT_CLASS_SMALL
materials = list(MAT_METAL = 3000)
new_attack_chain = TRUE
var/list/linkable_machine_uids = list()
+1 -1
View File
@@ -8,7 +8,7 @@
w_class = WEIGHT_CLASS_TINY
throw_speed = 3
flags = CONDUCT
materials = list(MAT_METAL = 300, MAT_GLASS = 300)
materials = list(MAT_METAL = 750, MAT_GLASS = 750)
origin_tech = "magnets=2;combat=1"
/// Is the flash burnt out?
@@ -5,6 +5,7 @@
icon_state = "defib-on"
inhand_icon_state = "defib"
belt_icon = "defib"
materials = list(MAT_METAL = 200, MAT_GLASS = 200)
var/icon_base = "defib"
///Can the defib shock yet?
@@ -71,7 +71,7 @@
slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
materials = list(MAT_METAL=200)
materials = list(MAT_METAL = 500, MAT_GLASS = 50)
origin_tech = "magnets=1;biotech=1"
/// Can be SIMPLE_HEALTH_SCAN (damage is only shown as a single % value), or DETAILED_HEALTH_SCAN (shows the % value and also damage for every specific limb).
var/mode = DETAILED_HEALTH_SCAN
@@ -367,6 +367,7 @@
icon_state = "healthupgrade"
w_class = WEIGHT_CLASS_TINY
origin_tech = "magnets=2;biotech=2"
materials = list(MAT_METAL = 200, MAT_GLASS = 200)
usesound = 'sound/items/deconstruct.ogg'
#undef SIMPLE_HEALTH_SCAN
@@ -44,6 +44,7 @@
slot_flags = ITEM_SLOT_BELT
origin_tech = "magnets=3;engineering=4"
force = 8
materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 3000)
var/max_uses = 20
var/uses = 10
/// How much to increase per each glass?
@@ -250,6 +251,7 @@
desc = "A modified light replacer that zaps lights into place. Refill with broken or working light bulbs, or sheets of glass."
icon_state = "lightreplacer_blue"
bluespace_toggle = TRUE
materials = list(MAT_METAL = 1500, MAT_SILVER = 150, MAT_GLASS = 6000, MAT_BLUESPACE = 300)
/obj/item/lightreplacer/bluespace/emag_act()
return // long range explosions are stupid
@@ -10,6 +10,7 @@
throw_speed = 5
throw_range = 10
origin_tech = "magnets=1;biotech=1"
materials = list(MAT_METAL = 300, MAT_GLASS = 200)
/obj/item/robotanalyzer/proc/handle_clumsy(mob/living/user)
var/list/msgs = list()
@@ -8,6 +8,7 @@
w_class = WEIGHT_CLASS_SMALL
slot_flags = ITEM_SLOT_BELT
origin_tech = "programming=2"
materials = list(MAT_GLASS = 500, MAT_METAL = 500)
var/request_cooldown = 5 // five seconds
var/last_request
var/obj/item/radio/radio
@@ -5,6 +5,7 @@
icon_state = "beacon"
inhand_icon_state = "signaler"
origin_tech = "bluespace=1"
materials = list(MAT_METAL = 300, MAT_GLASS = 200)
flags = CONDUCT
slot_flags = ITEM_SLOT_BELT
throw_range = 9
@@ -29,6 +29,7 @@ GLOBAL_LIST_EMPTY(deadsay_radio_systems)
inhand_icon_state = "radio"
dog_fashion = /datum/dog_fashion/back
suffix = "\[3\]"
materials = list(MAT_METAL = 200, MAT_GLASS = 100)
/// boolean for radio enabled or not
var/on = TRUE
var/last_transmission
+1 -1
View File
@@ -81,7 +81,7 @@ SLIME SCANNER
slot_flags = ITEM_SLOT_BELT
throw_speed = 4
throw_range = 20
materials = list(MAT_METAL=300, MAT_GLASS=200)
materials = list(MAT_METAL = 300, MAT_GLASS = 200)
origin_tech = "magnets=2;biotech=1;plasmatech=2"
var/details = FALSE
var/datatoprint = ""
@@ -6,6 +6,7 @@
w_class = WEIGHT_CLASS_SMALL
slot_flags = ITEM_SLOT_BELT
origin_tech = "programming=3;materials=3;magnets=3"
materials = list(MAT_METAL = 300, MAT_GLASS = 200)
var/datum/ui_module/crew_monitor/crew_monitor
/obj/item/sensor_device/Initialize(mapload)
+1
View File
@@ -5,6 +5,7 @@
drop_sound = 'sound/items/handling/disk_drop.ogg'
pickup_sound = 'sound/items/handling/disk_pickup.ogg'
w_class = WEIGHT_CLASS_TINY
materials = list(MAT_METAL = 300, MAT_GLASS = 100)
/obj/item/disk/data
name = "Cloning Data Disk"
@@ -2,6 +2,7 @@
name = "mountable frame"
desc = "Place it on a wall."
origin_tech = "materials=1;engineering=1"
materials = list(MAT_METAL = 6000, MAT_GLASS = 2000)
usesound = 'sound/items/deconstruct.ogg'
///amount of metal sheets returned upon the frame being wrenched
@@ -2,7 +2,6 @@
icon = 'icons/obj/status_display.dmi'
icon_state = "frame"
inhand_icon_state = "syringe_kit"
materials = list(MAT_METAL=6000, MAT_GLASS=2000)
mount_requirements = MOUNTED_FRAME_SIMFLOOR | MOUNTED_FRAME_NOSPACE
metal_sheets_refunded = 3
glass_sheets_refunded = 1
@@ -37,30 +37,35 @@
desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case."
icon_state = "l_arm"
part = list("l_arm","l_hand")
materials = list(MAT_METAL = 10000)
/obj/item/robot_parts/r_arm
name = "right arm"
desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case."
icon_state = "r_arm"
part = list("r_arm","r_hand")
materials = list(MAT_METAL = 10000)
/obj/item/robot_parts/l_leg
name = "left leg"
desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case."
icon_state = "l_leg"
part = list("l_leg","l_foot")
materials = list(MAT_METAL = 10000)
/obj/item/robot_parts/r_leg
name = "right leg"
desc = "A skeletal limb wrapped in pseudomuscles, with a low-conductivity case."
icon_state = "r_leg"
part = list("r_leg","r_foot")
materials = list(MAT_METAL = 10000)
/obj/item/robot_parts/chest
name = "torso"
desc = "A heavily reinforced case containing cyborg logic boards, with space for a standard power cell."
icon_state = "chest"
part = list("groin","chest")
materials = list(MAT_METAL = 40000)
var/wired = FALSE
var/obj/item/stock_parts/cell/cell = null
@@ -73,6 +78,7 @@
desc = "A standard reinforced braincase, with spine-plugged neural socket and sensor gimbals."
icon_state = "head"
part = list("head")
materials = list(MAT_METAL = 5000)
var/obj/item/flash/flash1 = null
var/obj/item/flash/flash2 = null
@@ -87,6 +93,7 @@
icon_state = "robo_suit"
w_class = WEIGHT_CLASS_BULKY
model_info = null
materials = list(MAT_METAL = 15000)
var/obj/item/robot_parts/l_arm/l_arm = null
var/obj/item/robot_parts/r_arm/r_arm = null
var/obj/item/robot_parts/l_leg/l_leg = null
@@ -7,6 +7,7 @@
icon = 'icons/obj/module.dmi'
icon_state = "cyborg_upgrade"
origin_tech = "programming=2"
materials = list(MAT_METAL = 10000)
/// Whether or not the cyborg needs to have a chosen module before they can receive this upgrade.
var/require_module = FALSE
/// The type of module this upgrade is compatible with: Engineering, Medical, etc.
@@ -118,6 +119,7 @@
desc = "Used to rename a cyborg."
icon_state = "cyborg_upgrade1"
delete_after_install = TRUE
materials = list(MAT_METAL = 35000)
var/heldname = "default name"
/obj/item/borg/upgrade/rename/attack_self__legacy__attackchain(mob/user)
@@ -143,6 +145,7 @@
desc = "Used to force a reboot of a disabled-but-repaired cyborg, bringing it back online."
icon_state = "cyborg_upgrade1"
delete_after_install = TRUE
materials = list(MAT_METAL = 60000 , MAT_GLASS = 5000)
/obj/item/borg/upgrade/restart/do_install(mob/living/silicon/robot/R)
if(R.health < 0)
@@ -166,6 +169,7 @@
desc = "A energy-operated thruster system for cyborgs."
icon_state = "cyborg_upgrade3"
origin_tech = "engineering=4;powerstorage=4"
materials = list(MAT_METAL = 10000, MAT_PLASMA = 5000, MAT_URANIUM = 6000)
/obj/item/borg/upgrade/thrusters/do_install(mob/living/silicon/robot/R)
R.ionpulse = TRUE
@@ -176,6 +180,7 @@
desc = "This module will repair the cyborg over time."
icon_state = "cyborg_upgrade5"
require_module = TRUE
materials = list(MAT_METAL = 15000, MAT_GLASS = 15000)
var/repair_amount = -1
var/repair_tick = 1
var/msg_cooldown = 0
@@ -264,6 +269,7 @@
icon_state = "cyborg_upgrade2"
require_module = TRUE
origin_tech = "engineering=4;materials=5;programming=4"
materials = list(MAT_METAL = 80000 , MAT_GLASS = 6000 , MAT_URANIUM = 5000)
/obj/item/borg/upgrade/vtec/do_install(mob/living/silicon/robot/R)
R.slowdown_cap = 3.5
@@ -304,6 +310,7 @@
desc = "A diamond drill replacement for the mining cyborg's standard drill."
icon_state = "cyborg_upgrade3"
origin_tech = "engineering=4;materials=5"
materials = list(MAT_METAL = 10000, MAT_GOLD = 250, MAT_URANIUM = 500)
require_module = TRUE
module_type = /obj/item/robot_module/miner
items_to_replace = list(
@@ -325,6 +332,7 @@
name = "mining cyborg lavaproof chassis"
desc = "An upgrade kit to apply specialized coolant systems and insulation layers to a mining cyborg's chassis, enabling them to withstand exposure to molten rock."
icon_state = "ash_plating"
materials = list(MAT_METAL = 10000, MAT_PLASMA = 4000, MAT_TITANIUM = 5000)
resistance_flags = LAVA_PROOF | FIRE_PROOF
require_module = TRUE
module_type = /obj/item/robot_module/miner
@@ -343,6 +351,7 @@
desc = "A modified Rapid Construction Device, able to pull energy directly from a cyborg's internal power cell."
icon_state = "cyborg_upgrade5"
origin_tech = "engineering=4;materials=5;powerstorage=4"
materials = list(MAT_METAL = 30000, MAT_GLASS = 15000)
require_module = TRUE
module_type = /obj/item/robot_module/engineering
items_to_add = list(/obj/item/rcd/borg)
@@ -357,6 +366,7 @@
name = "Rapid Part Exchange Device upgrade"
desc = "A modified Rapid Part Exchange Device designed to be used by engineering robots."
icon_state = "cyborg_upgrade5"
materials = list(MAT_METAL = 40000, MAT_GLASS = 15000)
require_module = TRUE
module_type = /obj/item/robot_module/engineering
items_to_add = list(/obj/item/storage/part_replacer)
@@ -371,6 +381,7 @@
icon = 'icons/obj/vehicles.dmi'
icon_state = "upgrade"
origin_tech = "materials=3;engineering=4"
materials = list(MAT_METAL = 9000, MAT_GLASS = 7600)
require_module = TRUE
module_type = /obj/item/robot_module/janitor
/// How much speed the cyborg loses while the buffer is active
@@ -404,6 +415,7 @@
icon_state = "cyborg_upgrade4"
require_module = TRUE
module_type = /obj/item/robot_module/janitor
materials = list(MAT_GOLD = 1500, MAT_URANIUM = 250, MAT_PLASMA = 1500)
items_to_replace = list(
/obj/item/storage/bag/trash/cyborg = /obj/item/storage/bag/trash/bluespace/cyborg
)
@@ -417,6 +429,7 @@
desc = "An upgrade that replaces a service cyborg's Rapid Service Fabricator with a classy Executive version."
icon_state = "cyborg_upgrade5"
origin_tech = "biotech=2;materials=1"
materials = list(MAT_METAL = 10000, MAT_GLASS = 6000, MAT_GOLD = 2000)
require_module = TRUE
module_type = /obj/item/robot_module/butler
items_to_add = list(/obj/item/kitchen/knife/cheese)
@@ -432,6 +445,7 @@
icon = 'icons/obj/rollerbed.dmi'
icon_state = "holo_retracted"
origin_tech = "magnets=3;biotech=4;powerstorage=3"
materials = list(MAT_METAL = 1000, MAT_SILVER = 500, MAT_GLASS = 500, MAT_DIAMOND = 200)
require_module = TRUE
module_type = /obj/item/robot_module/medical
items_to_replace = list(/obj/item/roller_holder = /obj/item/roller_holder/holo)
@@ -445,6 +459,7 @@
desc = "Unlocks the hidden, deadlier functions of a cyborg."
icon_state = "cyborg_upgrade3"
origin_tech = "combat=6;materials=6"
materials = list(MAT_METAL = 10000, MAT_GLASS = 15000, MAT_DIAMOND = 10000)
require_module = TRUE
/obj/item/borg/upgrade/syndicate/do_install(mob/living/silicon/robot/R)
@@ -460,6 +475,7 @@
icon_state = "cyborg_upgrade4"
require_module = TRUE
module_type = /obj/item/robot_module/janitor
materials = list(MAT_GOLD = 1250, MAT_PLASMA = 2500, MAT_SILVER = 1250)
items_to_replace = list(
/obj/item/soap/nanotrasen = /obj/item/soap/syndie
)
@@ -473,6 +489,7 @@
desc = "An experimental upgrade that replaces an engineering cyborg's tools with the abductor versions."
icon_state = "abductor_mod"
origin_tech = "engineering=6;materials=6;abductor=3"
materials = list(MAT_METAL = 25000, MAT_SILVER = 12500, MAT_PLASMA = 5000, MAT_TITANIUM = 10000, MAT_DIAMOND = 10000) //Base abductor engineering tools * 4
require_module = TRUE
module_type = /obj/item/robot_module/engineering
items_to_replace = list(
@@ -492,6 +509,7 @@
desc = "An experimental upgrade that replaces a medical cyborg's tools with the abductor versions."
icon_state = "abductor_mod"
origin_tech = "biotech=6;materials=6;abductor=2"
materials = list(MAT_METAL = 18000, MAT_GLASS = 1500, MAT_SILVER = 13000, MAT_GOLD = 1000, MAT_PLASMA = 4000, MAT_TITANIUM = 12000, MAT_DIAMOND = 1000) //Base abductor engineering tools *8 + IMS cost
require_module = TRUE
module_type = /obj/item/robot_module/medical
items_to_replace = list(
@@ -518,6 +536,7 @@
desc = "An experimental upgrade that replaces a janitorial cyborg's tools with the abductor versions."
icon_state = "abductor_mod"
origin_tech = "biotech=6;materials=6;abductor=2"
materials = list(MAT_METAL = 10000, MAT_SILVER = 7500, MAT_PLASMA = 2500, MAT_TITANIUM = 7500, MAT_DIAMOND = 5000) //Base abductor jani tools *5
require_module = TRUE
module_type = /obj/item/robot_module/janitor
items_to_replace = list(
@@ -598,6 +598,7 @@
attack_verb = list("poked", "pricked", "stabbed")
hitsound = null
w_class = WEIGHT_CLASS_TINY
materials = list(MAT_METAL = 200)
/obj/item/suture_needle/examine(mob/user)
. = ..()
@@ -6,6 +6,7 @@
icon_state = "tube"
w_class = WEIGHT_CLASS_TINY
origin_tech = "materials=2;engineering=3"
materials = list(MAT_METAL = 1166, MAT_GLASS = 1166)
amount = 6
max_amount = 6
merge_type = /obj/item/stack/nanopaste
+2 -2
View File
@@ -30,7 +30,7 @@ GLOBAL_LIST_INIT(rod_recipes, list (
force = 9.0
throwforce = 10.0
throw_speed = 3
materials = list(MAT_METAL=1000)
materials = list(MAT_METAL = 1000)
attack_verb = list("hit", "bludgeoned", "whacked")
hitsound = 'sound/weapons/grenadelaunch.ogg'
usesound = 'sound/items/deconstruct.ogg'
@@ -93,7 +93,7 @@ GLOBAL_LIST_INIT(rod_recipes, list (
desc = "Treated, specialized iron rods. When exposed to the vacuum of space their coating breaks off, but they can hold up against the extreme heat of molten liquids."
singular_name = "heat resistant rod"
color = "#5286b9ff"
materials = list(MAT_METAL = 1000, MAT_TITANIUM = 1000, MAT_PLASMA = 1000)
materials = list(MAT_METAL = 1000, MAT_PLASMA = 1000, MAT_TITANIUM = 1000)
resistance_flags = FIRE_PROOF | LAVA_PROOF
merge_type = /obj/item/stack/rods/lava
@@ -238,6 +238,7 @@ GLOBAL_LIST_INIT(sinew_recipes, list (
singular_name = "armor plate"
flags = NOBLUDGEON
layer = MOB_LAYER
materials = list(MAT_METAL = 20000, MAT_TITANIUM = 5000)
/obj/item/stack/sheet/animalhide/armor_plate/afterattack__legacy__attackchain(atom/target, mob/user, proximity_flag)
if(!proximity_flag)
@@ -7,6 +7,7 @@
singular_name = "skin plate"
max_amount = 10
merge_type = /obj/item/stack/synthetic_skin
materials = list(MAT_METAL = 1000, MAT_GLASS = 500)
var/skin_level = 1
/obj/item/stack/synthetic_skin/attack__legacy__attackchain(mob/living/M as mob, mob/user as mob)
@@ -31,14 +32,15 @@
desc = "A sealed patch of synthetic skin. An improvement over the basic version, more water resistant and less prone to peeling off."
icon_state = "skin_2"
merge_type = /obj/item/stack/synthetic_skin/level_2
materials = list(MAT_METAL = 2000, MAT_GLASS = 1000, MAT_TITANIUM = 250)
singular_name = "skin patch"
skin_level = 2
/obj/item/stack/synthetic_skin/level_3
name = "level-3 synthetic skin foam"
desc = "A nanite foam injector meeting the requirements of level-3 synthetic skin. The best one can buy, best used to hide major cybernetic alterations, for beauty or for infiltration."
icon_state = "skin_3"
merge_type = /obj/item/stack/synthetic_skin/level_3
materials = list(MAT_METAL = 2500, MAT_GLASS = 2000, MAT_TITANIUM = 500, MAT_BLUESPACE = 250)
singular_name = "nanite foam"
skin_level = 3
+22 -20
View File
@@ -21,6 +21,7 @@
max_w_class = WEIGHT_CLASS_NORMAL
max_combined_w_class = 100
usesound = 'sound/items/rped.ogg'
materials = list(MAT_METAL = 10000, MAT_GLASS = 5000)
var/works_from_distance = FALSE
var/primary_sound = 'sound/items/rped.ogg'
var/alt_sound = null
@@ -83,6 +84,7 @@
alt_sound = 'sound/items/pshoom_2.ogg'
usesound = 'sound/items/pshoom.ogg'
toolspeed = 0.5
materials = list(MAT_METAL = 15000, MAT_GLASS = 5000, MAT_SILVER = 2500)
/obj/item/storage/part_replacer/bluespace/tier4/populate_contents()
for(var/amount in 1 to 30)
@@ -120,35 +122,35 @@
desc = "A basic capacitor used in the construction of a variety of devices."
icon_state = "capacitor"
origin_tech = "powerstorage=1"
materials = list(MAT_METAL=50, MAT_GLASS=50)
materials = list(MAT_METAL = 100, MAT_GLASS = 100)
/obj/item/stock_parts/scanning_module
name = "scanning module"
desc = "A compact, high resolution scanning module used in the construction of certain devices."
icon_state = "scan_module"
origin_tech = "magnets=1"
materials = list(MAT_METAL=50, MAT_GLASS=20)
materials = list(MAT_METAL = 100, MAT_GLASS = 50)
/obj/item/stock_parts/manipulator
name = "micro-manipulator"
desc = "A tiny little manipulator used in the construction of certain devices."
icon_state = "micro_mani"
origin_tech = "materials=1;programming=1"
materials = list(MAT_METAL=30)
materials = list(MAT_METAL = 100)
/obj/item/stock_parts/micro_laser
name = "micro-laser"
desc = "A tiny laser used in certain devices."
icon_state = "micro_laser"
origin_tech = "magnets=1"
materials = list(MAT_METAL=10, MAT_GLASS=20)
materials = list(MAT_METAL = 100, MAT_GLASS = 50)
/obj/item/stock_parts/matter_bin
name = "matter bin"
desc = "A container used to hold compressed matter awaiting re-construction."
icon_state = "matter_bin"
origin_tech = "materials=1"
materials = list(MAT_METAL=80)
materials = list(MAT_METAL = 100)
//Rank 2
@@ -158,35 +160,35 @@
icon_state = "adv_capacitor"
origin_tech = "powerstorage=3"
rating = 2
materials = list(MAT_METAL=50, MAT_GLASS=50)
materials = list(MAT_METAL = 150, MAT_GLASS = 150)
/obj/item/stock_parts/scanning_module/adv
name = "advanced scanning module"
icon_state = "adv_scan_module"
origin_tech = "magnets=3"
rating = 2
materials = list(MAT_METAL=50, MAT_GLASS=20)
materials = list(MAT_METAL = 150, MAT_GLASS = 100)
/obj/item/stock_parts/manipulator/nano
name = "nano-manipulator"
icon_state = "nano_mani"
origin_tech = "materials=3;programming=2"
rating = 2
materials = list(MAT_METAL=30)
materials = list(MAT_METAL = 150)
/obj/item/stock_parts/micro_laser/high
name = "high-power micro-laser"
icon_state = "high_micro_laser"
origin_tech = "magnets=3"
rating = 2
materials = list(MAT_METAL=10, MAT_GLASS=20)
materials = list(MAT_METAL = 150, MAT_GLASS = 100)
/obj/item/stock_parts/matter_bin/adv
name = "advanced matter bin"
icon_state = "advanced_matter_bin"
origin_tech = "materials=3"
rating = 2
materials = list(MAT_METAL=80)
materials = list(MAT_METAL = 150)
//Rating 3
@@ -196,7 +198,7 @@
icon_state = "super_capacitor"
origin_tech = "powerstorage=4;engineering=4"
rating = 3
materials = list(MAT_METAL=50, MAT_GLASS=50)
materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 100)
/obj/item/stock_parts/scanning_module/phasic
name = "phasic scanning module"
@@ -204,28 +206,28 @@
icon_state = "super_scan_module"
origin_tech = "magnets=4;engineering=4"
rating = 3
materials = list(MAT_METAL=50, MAT_GLASS=20)
materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_SILVER = 60)
/obj/item/stock_parts/manipulator/pico
name = "pico-manipulator"
icon_state = "pico_mani"
origin_tech = "materials=4;programming=4;engineering=4"
rating = 3
materials = list(MAT_METAL=30)
materials = list(MAT_METAL = 200)
/obj/item/stock_parts/micro_laser/ultra
name = "ultra-high-power micro-laser"
icon_state = "ultra_high_micro_laser"
origin_tech = "magnets=4;engineering=4"
rating = 3
materials = list(MAT_METAL=10, MAT_GLASS=20)
materials = list(MAT_METAL = 200, MAT_GLASS = 150, MAT_URANIUM = 60)
/obj/item/stock_parts/matter_bin/super
name = "super matter bin"
icon_state = "super_matter_bin"
origin_tech = "materials=4;engineering=4"
rating = 3
materials = list(MAT_METAL=80)
materials = list(MAT_METAL = 200)
//Rating 4
@@ -235,7 +237,7 @@
icon_state = "quadratic_capacitor"
origin_tech = "powerstorage=5;materials=4;engineering=4"
rating = 4
materials = list(MAT_METAL=50, MAT_GLASS=50)
materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_GOLD = 100, MAT_DIAMOND = 100)
/obj/item/stock_parts/scanning_module/triphasic
name = "triphasic scanning module"
@@ -243,25 +245,25 @@
icon_state = "triphasic_scan_module"
origin_tech = "magnets=5;materials=4;engineering=4"
rating = 4
materials = list(MAT_METAL=50, MAT_GLASS=20)
materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_DIAMOND = 30, MAT_BLUESPACE = 30)
/obj/item/stock_parts/manipulator/femto
name = "femto-manipulator"
icon_state = "femto_mani"
origin_tech = "materials=6;programming=4;engineering=4"
rating = 4
materials = list(MAT_METAL=30)
materials = list(MAT_METAL = 200, MAT_DIAMOND = 30, MAT_TITANIUM = 30)
/obj/item/stock_parts/micro_laser/quadultra
name = "quad-ultra micro-laser"
icon_state = "quadultra_micro_laser"
origin_tech = "magnets=5;materials=4;engineering=4"
rating = 4
materials = list(MAT_METAL=10, MAT_GLASS=20)
materials = list(MAT_METAL = 200, MAT_GLASS = 200, MAT_URANIUM = 100, MAT_DIAMOND = 60)
/obj/item/stock_parts/matter_bin/bluespace
name = "bluespace matter bin"
icon_state = "bluespace_matter_bin"
origin_tech = "materials=6;programming=4;engineering=4"
rating = 4
materials = list(MAT_METAL=80)
materials = list(MAT_METAL = 250, MAT_DIAMOND = 100, MAT_BLUESPACE = 100)
@@ -17,6 +17,7 @@
icon_state = "generic"
distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE
force = 10
materials = list(MAT_METAL = 3000, MAT_GLASS = 500)
/obj/item/tank/internals/oxygen
name = "oxygen tank"
@@ -133,6 +134,7 @@
w_class = WEIGHT_CLASS_SMALL
force = 4
volume = 1 // Roughly 4m 15s of air
materials = list(MAT_METAL = 500, MAT_GLASS = 100)
/obj/item/tank/internals/emergency_oxygen/populate_gas()
air_contents.set_oxygen((10 * ONE_ATMOSPHERE) * volume / (R_IDEAL_GAS_EQUATION * T20C))
@@ -144,6 +146,7 @@
name = "extended-capacity emergency oxygen tank"
icon_state = "emergency_engi"
volume = 3 // Lasts 12m 45s
materials = list(MAT_METAL = 800, MAT_GLASS = 100)
/obj/item/tank/internals/emergency_oxygen/engi/empty/populate_gas()
return
@@ -158,6 +161,7 @@
name = "double emergency oxygen tank"
icon_state = "emergency_double"
volume = 6 // Lasts 25m 30s
materials = list(MAT_METAL = 1500, MAT_GLASS = 200)
/obj/item/tank/internals/emergency_oxygen/double/empty/populate_gas()
return
+2 -1
View File
@@ -113,11 +113,12 @@
icon_state = "jaws_pry"
inhand_icon_state = "jawsoflife"
belt_icon = "jaws"
materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25)
materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500)
origin_tech = "materials=2;engineering=2"
usesound = 'sound/items/jaws_pry.ogg'
force = 15
toolspeed = 0.25
materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500)
var/airlock_open_time = 100 // Time required to open powered airlocks
/obj/item/crowbar/power/Initialize(mapload)
+1 -1
View File
@@ -9,7 +9,7 @@
slot_flags = ITEM_SLOT_BELT
force = 10
throwforce = 7
materials = list(MAT_METAL = 300)
materials = list(MAT_METAL = 500)
origin_tech = "engineering=1;combat=1"
attack_verb = list("attacked", "hammered", "smashed", "bludgeoned", "whacked")
+1 -1
View File
@@ -99,7 +99,7 @@
icon_state = "drill_screw"
inhand_icon_state = "drill"
belt_icon = "hand_drill"
materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25)
materials = list(MAT_METAL = 3500, MAT_SILVER = 1500, MAT_TITANIUM = 2500)
origin_tech = "materials=2;engineering=2" //done for balance reasons, making them high value for research, but harder to get
force = 8 //might or might not be too high, subject to change
throwforce = 8
+3 -2
View File
@@ -277,6 +277,7 @@
maximum_fuel = 40
toolspeed = 0.75
light_intensity = 1
materials = list(MAT_METAL = 400, MAT_GLASS = 300)
/obj/item/weldingtool/research/suicide_act(mob/living/user)
@@ -315,7 +316,7 @@
inhand_icon_state = "upindwelder"
belt_icon = "welder_upg"
maximum_fuel = 80
materials = list(MAT_METAL=70, MAT_GLASS=120)
materials = list(MAT_METAL = 800, MAT_GLASS = 500)
origin_tech = "engineering=3;plasmatech=2"
/obj/item/weldingtool/hugetank/empty
@@ -328,7 +329,7 @@
inhand_icon_state = "exwelder"
belt_icon = "welder_exp"
maximum_fuel = 40
materials = list(MAT_METAL=70, MAT_GLASS=120)
materials = list(MAT_METAL = 1000, MAT_GLASS = 500, MAT_PLASMA = 1500, MAT_URANIUM = 200)
origin_tech = "materials=4;engineering=4;bluespace=3;plasmatech=4"
light_intensity = 1
toolspeed = 0.5
+1 -1
View File
@@ -118,7 +118,7 @@
inhand_icon_state = "jawsoflife"
belt_icon = "jaws"
origin_tech = "materials=2;engineering=2"
materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25)
materials = list(MAT_METAL = 4500, MAT_SILVER = 2500, MAT_TITANIUM = 3500)
usesound = 'sound/items/jaws_cut.ogg'
toolspeed = 0.25
w_class = WEIGHT_CLASS_NORMAL
+2 -1
View File
@@ -68,7 +68,7 @@
inhand_icon_state = "drill"
belt_icon = "hand_drill"
usesound = 'sound/items/impactwrench.ogg' // Sourced from freesfx.co.uk
materials = list(MAT_METAL=150,MAT_SILVER=50,MAT_TITANIUM=25)
materials = list(MAT_METAL = 3500, MAT_SILVER = 1500, MAT_TITANIUM = 2500)
origin_tech = "materials=2;engineering=2"
force = 8
throwforce = 8
@@ -156,5 +156,6 @@
desc = "A large wrench designed to interlock with an airlock's bolting mechanisms, allowing it to lift the bolts regardless of power."
icon_state = "bolter_wrench"
origin_tech = "materials=5;engineering=4"
materials = list(MAT_METAL = 5000, MAT_TITANIUM = 3000)
w_class = WEIGHT_CLASS_NORMAL
toolspeed = 2.5
@@ -218,6 +218,7 @@
icon = 'icons/obj/chemical_flamethrower.dmi'
icon_state = "normal"
container_type = REFILLABLE
materials = list(MAT_METAL = 5000)
/// How much ammo do we have? Empty at 0.
var/ammo = 100
/// Which reagent IDs do we accept
@@ -301,6 +302,7 @@
icon_state = "extended"
ammo = 200
required_volume = 20 // Bigger canister? More reagents needed.
materials = list(MAT_METAL = 10000)
/obj/item/chemical_canister/extended/nuclear
name = "\improper Syndicate chemical canister"
@@ -319,3 +321,4 @@
icon_state = "pyro"
ammo = 150
accepted_chemicals = list("phlogiston", "phlogiston_dust", "napalm", "fuel", "thermite", "clf3", "plasma")
materials = list(MAT_METAL = 7500)
@@ -3,6 +3,7 @@
desc = "A compressed plasma grenade, used to start horrific plasma fires."
icon_state = "syndicate"
origin_tech = "materials=3;magnets=4;syndicate=3"
materials = list(MAT_METAL = 3000, MAT_GLASS = 500)
var/spawn_contents = LINDA_SPAWN_HEAT | LINDA_SPAWN_TOXINS
var/spawn_amount = 100
@@ -6,6 +6,7 @@
name = "grenade casing"
desc = "A do it yourself grenade casing!"
icon_state = "chemg"
materials = list(MAT_METAL = 2000)
var/bomb_state = "chembomb"
var/payload_name = null // used for spawned grenades
force = 2
@@ -339,6 +340,7 @@
allowed_containers = list(/obj/item/reagent_containers/glass,/obj/item/reagent_containers/condiment,
/obj/item/reagent_containers/drinks)
origin_tech = "combat=3;engineering=3"
materials = list(MAT_METAL = 3000)
affected_area = 5
ignition_temp = 25 // Large grenades are slightly more effective at setting off heat-sensitive mixtures than smaller grenades.
threatscale = 1.1 // 10% more effective.
@@ -385,6 +387,7 @@
icon_state = "cryog"
affected_area = 2
ignition_temp = -100
materials = list(MAT_METAL = 2000, MAT_SILVER = 500)
/// Intended for pyrotechnical mixes. Produces a small fire upon detonation, igniting potentially flammable mixtures.
/obj/item/grenade/chem_grenade/pyro
@@ -392,6 +395,7 @@
desc = "A custom made pyrotechnical grenade. It heats up and ignites its contents upon detonation."
icon_state = "pyrog"
origin_tech = "combat=4;engineering=4"
materials = list(MAT_METAL = 2000, MAT_PLASMA = 500)
ignition_temp = 500 // This is enough to expose a hotspot.
/// Intended for weaker, but longer lasting effects. Could have some interesting uses.
@@ -400,6 +404,7 @@
desc = "A custom made advanced release grenade. It is able to be detonated more than once. Can be configured using a multitool."
icon_state = "timeg"
origin_tech = "combat=3;engineering=4"
materials = list(MAT_METAL = 3000, MAT_GLASS = 500)
var/unit_spread = 10 // Amount of units per repeat. Can be altered with a multitool.
/obj/item/grenade/chem_grenade/adv_release/multitool_act(mob/user, obj/item/I)
@@ -8,6 +8,7 @@
w_class = WEIGHT_CLASS_SMALL
throw_speed = 3
origin_tech = "magnets=1;programming=3"
materials = list(MAT_METAL = 2000, MAT_GLASS = 1000)
flags = NOBLUDGEON
var/list/signs = list()
var/max_signs = 6
@@ -34,6 +34,7 @@
attack_verb = list("attacked", "stabbed", "poked")
hitsound = 'sound/weapons/bladeslice.ogg'
armor = list(MELEE = 0, BULLET = 0, LASER = 0, ENERGY = 0, BOMB = 0, RAD = 0, FIRE = 50, ACID = 30)
materials = list(MAT_METAL = 100)
var/max_contents = 1
/obj/item/kitchen/utensil/Initialize(mapload)
@@ -94,7 +94,7 @@
force = 5
throwforce = 7
w_class = WEIGHT_CLASS_BULKY
materials = list(MAT_METAL = 500)
materials = list(MAT_METAL = 1000, MAT_TITANIUM = 500)
attack_verb = list("bludgeoned", "whacked", "cracked")
/// Is the secret compartment open?
var/is_open = FALSE
+1
View File
@@ -98,6 +98,7 @@
mopcap = 10
icon_state = "advmop"
origin_tech = "materials=3;engineering=3"
materials = list(MAT_METAL = 2500, MAT_GLASS = 200)
force = 6
throwforce = 8
throw_range = 4
+1 -1
View File
@@ -146,7 +146,7 @@
throw_speed = 3
throw_range = 4
w_class = WEIGHT_CLASS_NORMAL
materials = list(MAT_GLASS = 4000, MAT_METAL = 1000)
materials = list(MAT_METAL = 4000, MAT_GLASS = 4000, MAT_SILVER = 300, MAT_TITANIUM = 200)
/obj/item/shield/riot/tele/add_parry_component()
AddComponent(/datum/component/parry, _stamina_constant = 2, _stamina_coefficient = 0.7, _parryable_attack_types = ALL_ATTACK_TYPES, _parry_cooldown = (5 / 3) SECONDS, _requires_activation = TRUE)
@@ -228,6 +228,7 @@
storage_slots = INFINITY
max_combined_w_class = INFINITY
origin_tech = "bluespace=4;materials=3;engineering=3"
materials = list(MAT_GOLD = 250, MAT_URANIUM = 500)
icon_state = "satchel_bspace"
/obj/item/storage/bag/ore/cyborg/holding
@@ -265,6 +266,7 @@
desc = "For the enterprising botanist on the go. Less efficient than the stationary model, it creates one seed per plant."
icon_state = "portaseeder"
origin_tech = "biotech=3;engineering=2"
materials = list(MAT_METAL = 1000, MAT_GLASS = 400)
/obj/item/storage/bag/plants/portaseeder/Initialize(mapload)
. = ..()
@@ -367,7 +369,7 @@
w_class = WEIGHT_CLASS_BULKY
flags = CONDUCT
slot_flags = null
materials = list(MAT_METAL=3000)
materials = list(MAT_METAL = 3000)
can_hold = list(
/obj/item/food,
/obj/item/reagent_containers/drinks,
@@ -870,6 +870,7 @@
w_class = WEIGHT_CLASS_BULKY
max_combined_w_class = 21 // = 14 * 1.5, not 14 * 2. This is deliberate
origin_tech = "bluespace=5;materials=4;engineering=4;plasmatech=5"
materials = list(MAT_GOLD = 1500, MAT_DIAMOND = 3000, MAT_URANIUM = 1000)
can_hold = list()
large = TRUE
w_class_override = list(
@@ -691,6 +691,7 @@
can_be_cut = FALSE
actions_types = list(/datum/action/item_action/toggle)
dyeable = FALSE
materials = list(MAT_METAL = 10000, MAT_GLASS = 5000, MAT_SILVER = 4000, MAT_TITANIUM = 4000, MAT_PLASMA = 8000)
var/on_cooldown = FALSE
var/obj/item/assembly/signaler/anomaly/pyro/core
var/next_spark_time
+1 -1
View File
@@ -191,7 +191,7 @@
throwforce = 12
attack_verb = list("beat", "smacked")
w_class = WEIGHT_CLASS_HUGE
materials = list(MAT_WOOD = 5000)
materials = list(MAT_WOOD = 10000)
COOLDOWN_DECLARE(last_deflect)
var/deflect_cooldown = 5 MINUTES
COOLDOWN_DECLARE(next_throw_time)
+1
View File
@@ -237,6 +237,7 @@
slot_flags = ITEM_SLOT_BELT
w_class = WEIGHT_CLASS_SMALL
origin_tech = "magnets=1"
materials = list(MAT_METAL = 1500, MAT_GLASS = 500)
/// The reference to the envelope that is currently stored in the mail scanner. It will be cleared upon confirming a correct delivery
var/obj/item/envelope/saved
/// How far away can the scanner scan mail or people
+1
View File
@@ -125,6 +125,7 @@
desc = "Some reflective glass ready to be hung on a wall. Don't break it!"
icon = 'icons/obj/watercloset.dmi'
icon_state = "mirror"
materials = list(MAT_GLASS = 2500)
/obj/item/mounted/mirror/do_build(turf/on_wall, mob/user)
var/obj/structure/mirror/M = new /obj/structure/mirror(get_turf(user), get_dir(on_wall, user), 1)
+1
View File
@@ -459,6 +459,7 @@ GLOBAL_LIST_EMPTY(safes)
name = "safe internals"
desc = "The mechanism and locking bolts for a Scarborough Arms - 2 tumbler safe."
icon_state = "safe_internals"
materials = list(MAT_METAL = 1000)
/**
* # Safe Codes
@@ -238,8 +238,8 @@
desc = "A retracted hardlight stretcher that can be carried around."
icon_state = "holo_retracted"
w_class = WEIGHT_CLASS_SMALL
materials = list(MAT_METAL = 1000)
origin_tech = "magnets=3;biotech=4;powerstorage=3"
materials = list(MAT_METAL = 1000, MAT_SILVER = 500, MAT_GLASS = 500, MAT_DIAMOND = 200)
extended = /obj/structure/bed/roller/holo
/obj/structure/bed/roller/MouseDrop(over_object, src_location, over_location)