mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-21 13:05:36 +01:00
[MIRROR] Stock Part Datumization Complete [MDB IGNORE] (#18639)
* Stock Part Datumization Complete (#72559) So i accidently reverted all my commits in #72511 when resolving a merge conflict So ummm yeah fuck my bad anyway Finishes what was started in #71693 and completes the [initiative](https://github.com/tgstation/dev-cycles-initiative/issues/1) Except for `obj/item/stock_parts/cell` and its subtypes. All machines now use `datum/stock_part` for its requested components & component parts Not sure if i caught every machine & stuff in the game so merge with caution 🆑 code: datum stock part for every obj stock part refactor: all machines & dependent experiments to use datum stock parts /🆑 * Fixes a teeny tiny Funce mistake :) Co-authored-by: SyncIt21 <110812394+SyncIt21@users.noreply.github.com> Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
This commit is contained in:
@@ -267,8 +267,8 @@
|
||||
var/delay_multiplier = 6.7 // magic number from wheelchair code
|
||||
|
||||
var/obj/vehicle/ridden/wheelchair/motorized/our_chair = parent
|
||||
for(var/obj/item/stock_parts/manipulator/M in our_chair.contents)
|
||||
speed += M.rating
|
||||
for(var/datum/stock_part/manipulator/manipulator in our_chair.component_parts)
|
||||
speed += manipulator.tier
|
||||
vehicle_move_delay = round(CONFIG_GET(number/movedelay/run_delay) * delay_multiplier) / speed
|
||||
return ..()
|
||||
|
||||
|
||||
@@ -340,14 +340,14 @@
|
||||
/obj/machinery/autolathe/RefreshParts()
|
||||
. = ..()
|
||||
var/mat_capacity = 0
|
||||
for(var/obj/item/stock_parts/matter_bin/new_matter_bin in component_parts)
|
||||
mat_capacity += new_matter_bin.rating*75000
|
||||
for(var/datum/stock_part/matter_bin/new_matter_bin in component_parts)
|
||||
mat_capacity += new_matter_bin.tier * 75000
|
||||
var/datum/component/material_container/materials = GetComponent(/datum/component/material_container)
|
||||
materials.max_amount = mat_capacity
|
||||
|
||||
var/efficiency=1.8
|
||||
for(var/obj/item/stock_parts/manipulator/new_manipulator in component_parts)
|
||||
efficiency -= new_manipulator.rating*0.2
|
||||
for(var/datum/stock_part/manipulator/new_manipulator in component_parts)
|
||||
efficiency -= new_manipulator.tier * 0.2
|
||||
creation_efficiency = max(1,efficiency) // creation_efficiency goes 1.6 -> 1.4 -> 1.2 -> 1 per level of manipulator efficiency
|
||||
|
||||
/obj/machinery/autolathe/examine(mob/user)
|
||||
|
||||
@@ -135,8 +135,8 @@
|
||||
/obj/machinery/cell_charger/RefreshParts()
|
||||
. = ..()
|
||||
charge_rate = 250
|
||||
for(var/obj/item/stock_parts/capacitor/C in component_parts)
|
||||
charge_rate *= C.rating
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
charge_rate *= capacitor.tier
|
||||
|
||||
/obj/machinery/cell_charger/process(delta_time)
|
||||
if(!charging || !anchored || (machine_stat & (BROKEN|NOPOWER)))
|
||||
|
||||
@@ -268,7 +268,6 @@
|
||||
new_machine.circuit.moveToNullspace()
|
||||
QDEL_NULL(new_machine.circuit)
|
||||
for(var/obj/old_part in new_machine.component_parts)
|
||||
// Move to nullspace and delete.
|
||||
old_part.moveToNullspace()
|
||||
qdel(old_part)
|
||||
|
||||
|
||||
@@ -71,8 +71,8 @@
|
||||
/obj/machinery/dish_drive/RefreshParts()
|
||||
. = ..()
|
||||
var/total_rating = 0
|
||||
for(var/obj/item/stock_parts/S in component_parts)
|
||||
total_rating += S.rating
|
||||
for(var/datum/stock_part/stock_part in component_parts)
|
||||
total_rating += stock_part.tier
|
||||
if(total_rating >= 9)
|
||||
update_mode_power_usage(ACTIVE_POWER_USE, 0)
|
||||
else
|
||||
|
||||
@@ -23,10 +23,10 @@
|
||||
precision_coeff = 0
|
||||
for(var/datum/stock_part/scanning_module/scanning_module in component_parts)
|
||||
scan_level += scanning_module.tier
|
||||
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
|
||||
precision_coeff = M.rating
|
||||
for(var/obj/item/stock_parts/micro_laser/P in component_parts)
|
||||
damage_coeff = P.rating
|
||||
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
precision_coeff = matter_bin.tier
|
||||
for(var/datum/stock_part/micro_laser/micro_laser in component_parts)
|
||||
damage_coeff = micro_laser.tier
|
||||
|
||||
/obj/machinery/dna_scannernew/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
/obj/machinery/fat_sucker/RefreshParts()
|
||||
. = ..()
|
||||
var/rating = 0
|
||||
for(var/obj/item/stock_parts/micro_laser/L in component_parts)
|
||||
rating += L.rating
|
||||
for(var/datum/stock_part/micro_laser/micro_laser in component_parts)
|
||||
rating += micro_laser.tier
|
||||
bite_size = initial(bite_size) + rating * 2.5
|
||||
nutrient_to_meat = initial(nutrient_to_meat) - rating * 5
|
||||
|
||||
|
||||
@@ -25,8 +25,8 @@
|
||||
. = ..()
|
||||
interval = 0
|
||||
var/max_time = 40
|
||||
for(var/obj/item/stock_parts/micro_laser/L in component_parts)
|
||||
max_time -= L.rating
|
||||
for(var/datum/stock_part/micro_laser/micro_laser in component_parts)
|
||||
max_time -= micro_laser.tier
|
||||
interval = max(max_time,1)
|
||||
|
||||
/obj/machinery/harvester/update_icon_state()
|
||||
|
||||
@@ -209,8 +209,8 @@ Possible to do for anyone motivated enough:
|
||||
/obj/machinery/holopad/RefreshParts()
|
||||
. = ..()
|
||||
var/holograph_range = 4
|
||||
for(var/obj/item/stock_parts/capacitor/B in component_parts)
|
||||
holograph_range += 1 * B.rating
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
holograph_range += 1 * capacitor.tier
|
||||
holo_range = holograph_range
|
||||
|
||||
/obj/machinery/holopad/examine(mob/user)
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
/obj/machinery/launchpad/RefreshParts()
|
||||
. = ..()
|
||||
var/max_range_multiplier = 0
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
max_range_multiplier += M.rating
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
max_range_multiplier += manipulator.tier
|
||||
range = initial(range)
|
||||
range *= max_range_multiplier
|
||||
|
||||
|
||||
@@ -255,8 +255,8 @@
|
||||
reagents.maximum_volume += our_beaker.volume
|
||||
our_beaker.reagents.trans_to(src, our_beaker.reagents.total_volume)
|
||||
production_coefficient = 1.25
|
||||
for(var/obj/item/stock_parts/manipulator/our_manipulator in component_parts)
|
||||
production_coefficient -= our_manipulator.rating * 0.25
|
||||
for(var/datum/stock_part/manipulator/our_manipulator in component_parts)
|
||||
production_coefficient -= our_manipulator.tier * 0.25
|
||||
production_coefficient = clamp(production_coefficient, 0, 1) // coefficient goes from 1 -> 0.75 -> 0.5 -> 0.25
|
||||
|
||||
/obj/machinery/limbgrower/examine(mob/user)
|
||||
|
||||
@@ -41,8 +41,8 @@
|
||||
/obj/machinery/medipen_refiller/RefreshParts()
|
||||
. = ..()
|
||||
var/new_volume = 100
|
||||
for(var/obj/item/stock_parts/matter_bin/bin in component_parts)
|
||||
new_volume += (100 * bin.rating)
|
||||
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
new_volume += (100 * matter_bin.tier)
|
||||
if(!reagents)
|
||||
create_reagents(new_volume, TRANSPARENT)
|
||||
reagents.maximum_volume = new_volume
|
||||
|
||||
@@ -42,12 +42,12 @@
|
||||
/obj/machinery/quantumpad/RefreshParts()
|
||||
. = ..()
|
||||
var/E = 0
|
||||
for(var/obj/item/stock_parts/capacitor/C in component_parts)
|
||||
E += C.rating
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
E += capacitor.tier
|
||||
power_efficiency = E
|
||||
E = 0
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
E += M.rating
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
E += manipulator.tier
|
||||
teleport_speed = initial(teleport_speed)
|
||||
teleport_speed -= (E*10)
|
||||
teleport_cooldown = initial(teleport_cooldown)
|
||||
|
||||
@@ -23,8 +23,8 @@
|
||||
|
||||
/obj/machinery/recharger/RefreshParts()
|
||||
. = ..()
|
||||
for(var/obj/item/stock_parts/capacitor/C in component_parts)
|
||||
recharge_coeff = C.rating
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
recharge_coeff = capacitor.tier
|
||||
|
||||
/obj/machinery/recharger/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -35,12 +35,12 @@
|
||||
. = ..()
|
||||
recharge_speed = 0
|
||||
repairs = 0
|
||||
for(var/obj/item/stock_parts/capacitor/C in component_parts)
|
||||
recharge_speed += C.rating * 100
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
repairs += M.rating - 1
|
||||
for(var/obj/item/stock_parts/cell/C in component_parts)
|
||||
recharge_speed *= C.maxcharge / 10000
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
recharge_speed += capacitor.tier * 100
|
||||
for(var/datum/stock_part/manipulator/matter_bin in component_parts)
|
||||
repairs += matter_bin.tier - 1
|
||||
for(var/obj/item/stock_parts/cell/cell in component_parts)
|
||||
recharge_speed *= cell.maxcharge / 10000
|
||||
|
||||
/obj/machinery/recharge_station/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -53,8 +53,8 @@
|
||||
/obj/machinery/recycler/RefreshParts()
|
||||
. = ..()
|
||||
var/amt_made = 0
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
amt_made = 12.5 * M.rating //% of materials salvaged
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
amt_made = 12.5 * manipulator.tier //% of materials salvaged
|
||||
amount_produced = min(50, amt_made) + 50
|
||||
var/datum/component/butchering/butchering = GetComponent(/datum/component/butchering/recycler)
|
||||
butchering.effectiveness = amount_produced
|
||||
|
||||
@@ -64,14 +64,14 @@
|
||||
/obj/machinery/sleeper/RefreshParts()
|
||||
. = ..()
|
||||
var/matterbin_rating
|
||||
for(var/obj/item/stock_parts/matter_bin/matterbins in component_parts)
|
||||
matterbin_rating += matterbins.rating
|
||||
for(var/datum/stock_part/matter_bin/matterbins in component_parts)
|
||||
matterbin_rating += matterbins.tier
|
||||
efficiency = initial(efficiency) * matterbin_rating
|
||||
min_health = initial(min_health) * matterbin_rating
|
||||
|
||||
available_chems.Cut()
|
||||
for(var/obj/item/stock_parts/manipulator/manipulators in component_parts)
|
||||
for(var/i in 1 to manipulators.rating)
|
||||
for(var/datum/stock_part/manipulator/manipulators in component_parts)
|
||||
for(var/i in 1 to manipulators.tier)
|
||||
available_chems |= possible_chems[i]
|
||||
|
||||
reset_chem_buttons()
|
||||
|
||||
@@ -158,10 +158,10 @@
|
||||
. = ..()
|
||||
var/laser = 0
|
||||
var/cap = 0
|
||||
for(var/obj/item/stock_parts/micro_laser/M in component_parts)
|
||||
laser += M.rating
|
||||
for(var/obj/item/stock_parts/capacitor/M in component_parts)
|
||||
cap += M.rating
|
||||
for(var/datum/stock_part/micro_laser/micro_laser in component_parts)
|
||||
laser += micro_laser.tier
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
cap += capacitor.tier
|
||||
|
||||
heating_power = laser * 40000
|
||||
|
||||
@@ -445,10 +445,10 @@
|
||||
. = ..()
|
||||
var/lasers_rating = 0
|
||||
var/capacitors_rating = 0
|
||||
for(var/obj/item/stock_parts/micro_laser/laser in component_parts)
|
||||
lasers_rating += laser.rating
|
||||
for(var/obj/item/stock_parts/capacitor/capacitor in component_parts)
|
||||
capacitors_rating += capacitor.rating
|
||||
for(var/datum/stock_part/micro_laser/laser in component_parts)
|
||||
lasers_rating += laser.tier
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
capacitors_rating += capacitor.tier
|
||||
|
||||
heating_power = lasers_rating * 20000
|
||||
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
/obj/machinery/teleport/hub/RefreshParts()
|
||||
. = ..()
|
||||
var/A = 0
|
||||
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
|
||||
A += M.rating
|
||||
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
A += matter_bin.tier
|
||||
accuracy = A
|
||||
|
||||
/obj/machinery/teleport/hub/examine(mob/user)
|
||||
@@ -142,8 +142,8 @@
|
||||
/obj/machinery/teleport/station/RefreshParts()
|
||||
. = ..()
|
||||
var/E
|
||||
for(var/obj/item/stock_parts/capacitor/C in component_parts)
|
||||
E += C.rating
|
||||
for(var/datum/stock_part/capacitor/C in component_parts)
|
||||
E += C.tier
|
||||
efficiency = E - 1
|
||||
|
||||
/obj/machinery/teleport/station/examine(mob/user)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
build_path = /obj/machinery/bsa/back //No freebies!
|
||||
specific_parts = TRUE
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/capacitor/quadratic = 5,
|
||||
/datum/stock_part/capacitor/quadratic = 5,
|
||||
/obj/item/stack/cable_coil = 2)
|
||||
|
||||
/obj/item/circuitboard/machine/bsa/front
|
||||
@@ -15,7 +15,7 @@
|
||||
build_path = /obj/machinery/bsa/front
|
||||
specific_parts = TRUE
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator/femto = 5,
|
||||
/datum/stock_part/manipulator/femto = 5,
|
||||
/obj/item/stack/cable_coil = 2)
|
||||
|
||||
/obj/item/circuitboard/machine/bsa/middle
|
||||
@@ -32,8 +32,8 @@
|
||||
build_path = /obj/machinery/dna_vault //No freebies!
|
||||
specific_parts = TRUE
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/capacitor/super = 5,
|
||||
/obj/item/stock_parts/manipulator/pico = 5,
|
||||
/datum/stock_part/capacitor/super = 5,
|
||||
/datum/stock_part/manipulator/pico = 5,
|
||||
/obj/item/stack/cable_coil = 2)
|
||||
|
||||
//Engineering
|
||||
@@ -51,15 +51,15 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
build_path = /obj/machinery/autolathe
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 3,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/datum/stock_part/matter_bin = 3,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
|
||||
/obj/item/circuitboard/machine/grounding_rod
|
||||
name = "Grounding Rod"
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
build_path = /obj/machinery/power/energy_accumulator/grounding_rod
|
||||
req_components = list(/obj/item/stock_parts/capacitor = 1)
|
||||
req_components = list(/datum/stock_part/capacitor = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
|
||||
@@ -68,92 +68,92 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
build_path = /obj/machinery/telecomms/broadcaster
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/stock_parts/subspace/filter = 1,
|
||||
/obj/item/stock_parts/subspace/crystal = 1,
|
||||
/obj/item/stock_parts/micro_laser = 2)
|
||||
/datum/stock_part/filter = 1,
|
||||
/datum/stock_part/crystal = 1,
|
||||
/datum/stock_part/micro_laser = 2)
|
||||
|
||||
/obj/item/circuitboard/machine/telecomms/bus
|
||||
name = "Bus Mainframe"
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
build_path = /obj/machinery/telecomms/bus
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/stock_parts/subspace/filter = 1)
|
||||
/datum/stock_part/filter = 1)
|
||||
|
||||
/obj/item/circuitboard/machine/telecomms/hub
|
||||
name = "Hub Mainframe"
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
build_path = /obj/machinery/telecomms/hub
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/stock_parts/subspace/filter = 2)
|
||||
/datum/stock_part/filter = 2)
|
||||
|
||||
/obj/item/circuitboard/machine/telecomms/message_server
|
||||
name = "Messaging Server"
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
build_path = /obj/machinery/telecomms/message_server
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/stock_parts/subspace/filter = 3)
|
||||
/datum/stock_part/filter = 3)
|
||||
|
||||
/obj/item/circuitboard/machine/telecomms/processor
|
||||
name = "Processor Unit"
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
build_path = /obj/machinery/telecomms/processor
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 3,
|
||||
/obj/item/stock_parts/subspace/filter = 1,
|
||||
/obj/item/stock_parts/subspace/treatment = 2,
|
||||
/obj/item/stock_parts/subspace/analyzer = 1,
|
||||
/datum/stock_part/manipulator = 3,
|
||||
/datum/stock_part/filter = 1,
|
||||
/datum/stock_part/treatment = 2,
|
||||
/datum/stock_part/analyzer = 1,
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/stock_parts/subspace/amplifier = 1)
|
||||
/datum/stock_part/amplifier = 1)
|
||||
|
||||
/obj/item/circuitboard/machine/telecomms/receiver
|
||||
name = "Subspace Receiver"
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
build_path = /obj/machinery/telecomms/receiver
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/subspace/ansible = 1,
|
||||
/obj/item/stock_parts/subspace/filter = 1,
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/obj/item/stock_parts/micro_laser = 1)
|
||||
/datum/stock_part/ansible = 1,
|
||||
/datum/stock_part/filter = 1,
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/datum/stock_part/micro_laser = 1)
|
||||
|
||||
/obj/item/circuitboard/machine/telecomms/relay
|
||||
name = "Relay Mainframe"
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
build_path = /obj/machinery/telecomms/relay
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/stock_parts/subspace/filter = 2)
|
||||
/datum/stock_part/filter = 2)
|
||||
|
||||
/obj/item/circuitboard/machine/telecomms/server
|
||||
name = "Telecommunication Server"
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
build_path = /obj/machinery/telecomms/server
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/stock_parts/subspace/filter = 1)
|
||||
/datum/stock_part/filter = 1)
|
||||
|
||||
/obj/item/circuitboard/machine/tesla_coil
|
||||
name = "Tesla Controller"
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
desc = "Does not let you shoot lightning from your hands."
|
||||
build_path = /obj/machinery/power/energy_accumulator/tesla_coil
|
||||
req_components = list(/obj/item/stock_parts/capacitor = 1)
|
||||
req_components = list(/datum/stock_part/capacitor = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/cell_charger
|
||||
name = "Cell Charger"
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
build_path = /obj/machinery/cell_charger
|
||||
req_components = list(/obj/item/stock_parts/capacitor = 1)
|
||||
req_components = list(/datum/stock_part/capacitor = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/circulator
|
||||
@@ -167,8 +167,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_ENGINEERING
|
||||
build_path = /obj/machinery/power/emitter
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/obj/item/stock_parts/manipulator = 1)
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/datum/stock_part/manipulator = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/generator
|
||||
@@ -183,7 +183,7 @@
|
||||
build_path = /obj/machinery/ntnet_relay
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/stock_parts/subspace/filter = 1)
|
||||
/datum/stock_part/filter = 1)
|
||||
|
||||
/obj/item/circuitboard/machine/pacman
|
||||
name = "PACMAN-type Generator"
|
||||
@@ -245,7 +245,7 @@
|
||||
build_path = /obj/machinery/power/rtg
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 5,
|
||||
/obj/item/stock_parts/capacitor = 1,
|
||||
/datum/stock_part/capacitor = 1,
|
||||
/obj/item/stack/sheet/mineral/uranium = 10) // We have no Pu-238, and this is the closest thing to it.
|
||||
|
||||
/obj/item/circuitboard/machine/rtg/advanced
|
||||
@@ -253,8 +253,8 @@
|
||||
build_path = /obj/machinery/power/rtg/advanced
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 5,
|
||||
/obj/item/stock_parts/capacitor = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/datum/stock_part/capacitor = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/obj/item/stack/sheet/mineral/uranium = 10,
|
||||
/obj/item/stack/sheet/mineral/plasma = 5)
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 5,
|
||||
/obj/item/stock_parts/cell = 5,
|
||||
/obj/item/stock_parts/capacitor = 1)
|
||||
/datum/stock_part/capacitor = 1)
|
||||
def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high/empty)
|
||||
|
||||
/obj/item/circuitboard/machine/techfab/department/engineering
|
||||
@@ -286,8 +286,8 @@
|
||||
build_path = /obj/machinery/atmospherics/components/unary/thermomachine/freezer
|
||||
var/pipe_layer = PIPING_LAYER_DEFAULT
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 2,
|
||||
/obj/item/stock_parts/micro_laser = 2,
|
||||
/datum/stock_part/matter_bin = 2,
|
||||
/datum/stock_part/micro_laser = 2,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
|
||||
@@ -371,8 +371,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
||||
build_path = /obj/machinery/rnd/production/circuit_imprinter
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/obj/item/reagent_containers/cup/beaker = 2)
|
||||
|
||||
/obj/item/circuitboard/machine/circuit_imprinter/offstation
|
||||
@@ -388,7 +388,7 @@
|
||||
name = "AI Holopad"
|
||||
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
||||
build_path = /obj/machinery/holopad
|
||||
req_components = list(/obj/item/stock_parts/capacitor = 1)
|
||||
req_components = list(/datum/stock_part/capacitor = 1)
|
||||
needs_anchored = FALSE //wew lad
|
||||
var/secure = FALSE
|
||||
|
||||
@@ -414,7 +414,7 @@
|
||||
build_path = /obj/machinery/launchpad
|
||||
req_components = list(
|
||||
/obj/item/stack/ore/bluespace_crystal = 1,
|
||||
/obj/item/stock_parts/manipulator = 1)
|
||||
/datum/stock_part/manipulator = 1)
|
||||
def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial)
|
||||
|
||||
/obj/item/circuitboard/machine/protolathe
|
||||
@@ -422,8 +422,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
||||
build_path = /obj/machinery/rnd/production/protolathe
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 2,
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/datum/stock_part/matter_bin = 2,
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/obj/item/reagent_containers/cup/beaker = 2)
|
||||
|
||||
/obj/item/circuitboard/machine/protolathe/offstation
|
||||
@@ -440,13 +440,13 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
||||
build_path = /obj/machinery/reagentgrinder/constructed
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 1)
|
||||
/datum/stock_part/manipulator = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/smartfridge
|
||||
name = "Smartfridge"
|
||||
build_path = /obj/machinery/smartfridge
|
||||
req_components = list(/obj/item/stock_parts/matter_bin = 1)
|
||||
req_components = list(/datum/stock_part/matter_bin = 1)
|
||||
var/static/list/fridges_name_paths = list(/obj/machinery/smartfridge = "plant produce",
|
||||
/obj/machinery/smartfridge/food = "food",
|
||||
/obj/machinery/smartfridge/drinks = "drinks",
|
||||
@@ -486,8 +486,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
||||
build_path = /obj/machinery/space_heater/constructed
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/obj/item/stock_parts/capacitor = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/datum/stock_part/capacitor = 1,
|
||||
/obj/item/stack/cable_coil = 3)
|
||||
needs_anchored = FALSE
|
||||
|
||||
@@ -496,8 +496,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
||||
build_path = /obj/machinery/electrolyzer
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/obj/item/stock_parts/capacitor = 2,
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/datum/stock_part/capacitor = 2,
|
||||
/obj/item/stack/cable_coil = 5,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
|
||||
@@ -509,8 +509,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
||||
build_path = /obj/machinery/rnd/production/techfab
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 2,
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/datum/stock_part/matter_bin = 2,
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/obj/item/reagent_containers/cup/beaker = 2)
|
||||
|
||||
/obj/item/circuitboard/machine/techfab/department
|
||||
@@ -621,9 +621,9 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
||||
build_path = /obj/machinery/piratepad/civilian
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/card_reader = 1,
|
||||
/datum/stock_part/card_reader = 1,
|
||||
/datum/stock_part/scanning_module = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1
|
||||
/datum/stock_part/micro_laser = 1
|
||||
)
|
||||
|
||||
/obj/item/circuitboard/machine/fax
|
||||
@@ -631,10 +631,10 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_GENERIC
|
||||
build_path = /obj/machinery/fax
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/subspace/crystal = 1,
|
||||
/datum/stock_part/crystal = 1,
|
||||
/datum/stock_part/scanning_module = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,)
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/datum/stock_part/manipulator = 1,)
|
||||
|
||||
//Medical
|
||||
|
||||
@@ -643,9 +643,9 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
||||
build_path = /obj/machinery/chem_dispenser
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 2,
|
||||
/obj/item/stock_parts/capacitor = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/datum/stock_part/matter_bin = 2,
|
||||
/datum/stock_part/capacitor = 1,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/stock_parts/cell = 1)
|
||||
def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high)
|
||||
@@ -655,9 +655,9 @@
|
||||
build_path = /obj/machinery/chem_dispenser/fullupgrade
|
||||
specific_parts = TRUE
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin/bluespace = 2,
|
||||
/obj/item/stock_parts/capacitor/quadratic = 2,
|
||||
/obj/item/stock_parts/manipulator/femto = 2,
|
||||
/datum/stock_part/matter_bin/bluespace = 2,
|
||||
/datum/stock_part/capacitor/quadratic = 2,
|
||||
/datum/stock_part/manipulator/femto = 2,
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/stock_parts/cell/bluespace = 1,
|
||||
)
|
||||
@@ -666,9 +666,9 @@
|
||||
build_path = /obj/machinery/chem_dispenser/mutagensaltpeter
|
||||
specific_parts = TRUE
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin/bluespace = 2,
|
||||
/obj/item/stock_parts/capacitor/quadratic = 2,
|
||||
/obj/item/stock_parts/manipulator/femto = 2,
|
||||
/datum/stock_part/matter_bin/bluespace = 2,
|
||||
/datum/stock_part/capacitor/quadratic = 2,
|
||||
/datum/stock_part/manipulator/femto = 2,
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/stock_parts/cell/bluespace = 1,
|
||||
)
|
||||
@@ -680,9 +680,9 @@
|
||||
build_path = /obj/machinery/chem_dispenser/abductor
|
||||
specific_parts = TRUE
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin/bluespace = 2,
|
||||
/obj/item/stock_parts/capacitor/quadratic = 2,
|
||||
/obj/item/stock_parts/manipulator/femto = 2,
|
||||
/datum/stock_part/matter_bin/bluespace = 2,
|
||||
/datum/stock_part/capacitor/quadratic = 2,
|
||||
/datum/stock_part/manipulator/femto = 2,
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/stock_parts/cell/bluespace = 1,
|
||||
)
|
||||
@@ -693,7 +693,7 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
||||
build_path = /obj/machinery/chem_heater
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
|
||||
/obj/item/circuitboard/machine/chem_mass_spec
|
||||
@@ -701,7 +701,7 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
||||
build_path = /obj/machinery/chem_mass_spec
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/obj/item/stack/cable_coil = 5)
|
||||
|
||||
/obj/item/circuitboard/machine/chem_master
|
||||
@@ -711,7 +711,7 @@
|
||||
desc = "You can turn the \"mode selection\" dial using a screwdriver."
|
||||
req_components = list(
|
||||
/obj/item/reagent_containers/cup/beaker = 2,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
@@ -733,7 +733,7 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
||||
build_path = /obj/machinery/atmospherics/components/unary/cryo_cell
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/stack/sheet/glass = 4)
|
||||
|
||||
@@ -741,14 +741,14 @@
|
||||
name = "Lipid Extractor"
|
||||
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
||||
build_path = /obj/machinery/fat_sucker
|
||||
req_components = list(/obj/item/stock_parts/micro_laser = 1,
|
||||
req_components = list(/datum/stock_part/micro_laser = 1,
|
||||
/obj/item/kitchen/fork = 1)
|
||||
|
||||
/obj/item/circuitboard/machine/harvester
|
||||
name = "Harvester"
|
||||
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
||||
build_path = /obj/machinery/harvester
|
||||
req_components = list(/obj/item/stock_parts/micro_laser = 4)
|
||||
req_components = list(/datum/stock_part/micro_laser = 4)
|
||||
|
||||
/obj/item/circuitboard/machine/medical_kiosk
|
||||
name = "Medical Kiosk"
|
||||
@@ -779,7 +779,7 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
||||
build_path = /obj/machinery/limbgrower
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/obj/item/reagent_containers/cup/beaker = 2,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
|
||||
@@ -788,7 +788,7 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
||||
build_path = /obj/machinery/limbgrower
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator/femto = 1,
|
||||
/datum/stock_part/manipulator/femto = 1,
|
||||
/obj/item/reagent_containers/cup/beaker/bluespace = 2,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
|
||||
@@ -802,16 +802,16 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
||||
build_path = /obj/machinery/sleeper
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/stack/sheet/glass = 2)
|
||||
|
||||
/obj/item/circuitboard/machine/sleeper/fullupgrade
|
||||
build_path = /obj/machinery/sleeper/syndie/fullupgrade
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin/bluespace = 1,
|
||||
/obj/item/stock_parts/manipulator/femto = 1,
|
||||
/datum/stock_part/matter_bin/bluespace = 1,
|
||||
/datum/stock_part/manipulator/femto = 1,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/stack/sheet/glass = 2)
|
||||
|
||||
@@ -824,9 +824,9 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
||||
build_path = /obj/machinery/smoke_machine
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 2,
|
||||
/obj/item/stock_parts/capacitor = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/datum/stock_part/matter_bin = 2,
|
||||
/datum/stock_part/capacitor = 1,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/stock_parts/cell = 1)
|
||||
needs_anchored = FALSE
|
||||
@@ -837,15 +837,15 @@
|
||||
build_path = /obj/machinery/stasis
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 3,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/obj/item/stock_parts/capacitor = 1)
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/datum/stock_part/capacitor = 1)
|
||||
|
||||
/obj/item/circuitboard/machine/medipen_refiller
|
||||
name = "Medipen Refiller"
|
||||
greyscale_colors = CIRCUIT_COLOR_MEDICAL
|
||||
build_path = /obj/machinery/medipen_refiller
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 1)
|
||||
/datum/stock_part/matter_bin = 1)
|
||||
|
||||
/obj/item/circuitboard/machine/techfab/department/medical
|
||||
name = "\improper Departmental Techfab - Medical"
|
||||
@@ -864,9 +864,9 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
||||
build_path = /obj/machinery/recharge_station
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/capacitor = 2,
|
||||
/datum/stock_part/capacitor = 2,
|
||||
/obj/item/stock_parts/cell = 1,
|
||||
/obj/item/stock_parts/manipulator = 1)
|
||||
/datum/stock_part/manipulator = 1)
|
||||
def_components = list(/obj/item/stock_parts/cell = /obj/item/stock_parts/cell/high)
|
||||
|
||||
/obj/item/circuitboard/machine/destructive_analyzer
|
||||
@@ -875,8 +875,8 @@
|
||||
build_path = /obj/machinery/rnd/destructive_analyzer
|
||||
req_components = list(
|
||||
/datum/stock_part/scanning_module = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1)
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/datum/stock_part/micro_laser = 1)
|
||||
|
||||
/obj/item/circuitboard/machine/experimentor
|
||||
name = "E.X.P.E.R.I-MENTOR"
|
||||
@@ -884,8 +884,8 @@
|
||||
build_path = /obj/machinery/rnd/experimentor
|
||||
req_components = list(
|
||||
/datum/stock_part/scanning_module = 1,
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/obj/item/stock_parts/micro_laser = 2)
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/datum/stock_part/micro_laser = 2)
|
||||
|
||||
/obj/item/circuitboard/machine/mech_recharger
|
||||
name = "Mechbay Recharger"
|
||||
@@ -893,16 +893,16 @@
|
||||
build_path = /obj/machinery/mech_bay_recharge_port
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/stock_parts/capacitor = 5)
|
||||
/datum/stock_part/capacitor = 5)
|
||||
|
||||
/obj/item/circuitboard/machine/mechfab
|
||||
name = "Exosuit Fabricator"
|
||||
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
||||
build_path = /obj/machinery/mecha_part_fabricator
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 2,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/datum/stock_part/matter_bin = 2,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
|
||||
/obj/item/circuitboard/machine/monkey_recycler
|
||||
@@ -910,8 +910,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
||||
build_path = /obj/machinery/monkey_recycler
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/manipulator = 1)
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/datum/stock_part/manipulator = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/processor/slime
|
||||
@@ -930,8 +930,8 @@
|
||||
build_path = /obj/machinery/quantumpad
|
||||
req_components = list(
|
||||
/obj/item/stack/ore/bluespace_crystal = 1,
|
||||
/obj/item/stock_parts/capacitor = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/datum/stock_part/capacitor = 1,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/obj/item/stack/cable_coil = 1)
|
||||
def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial)
|
||||
|
||||
@@ -954,7 +954,7 @@
|
||||
build_path = /obj/machinery/teleport/hub
|
||||
req_components = list(
|
||||
/obj/item/stack/ore/bluespace_crystal = 3,
|
||||
/obj/item/stock_parts/matter_bin = 1)
|
||||
/datum/stock_part/matter_bin = 1)
|
||||
def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial)
|
||||
|
||||
/obj/item/circuitboard/machine/teleporter_station
|
||||
@@ -963,7 +963,7 @@
|
||||
build_path = /obj/machinery/teleport/station
|
||||
req_components = list(
|
||||
/obj/item/stack/ore/bluespace_crystal = 2,
|
||||
/obj/item/stock_parts/capacitor = 2,
|
||||
/datum/stock_part/capacitor = 2,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial)
|
||||
|
||||
@@ -973,8 +973,8 @@
|
||||
build_path = /obj/machinery/dna_scannernew
|
||||
req_components = list(
|
||||
/datum/stock_part/scanning_module = 1,
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/stack/cable_coil = 2)
|
||||
|
||||
@@ -984,8 +984,8 @@
|
||||
build_path = /obj/machinery/dna_infuser
|
||||
req_components = list(
|
||||
/datum/stock_part/scanning_module = 1,
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
)
|
||||
|
||||
@@ -1012,7 +1012,7 @@
|
||||
name = "Weapon Recharger"
|
||||
greyscale_colors = CIRCUIT_COLOR_SECURITY
|
||||
build_path = /obj/machinery/recharger
|
||||
req_components = list(/obj/item/stock_parts/capacitor = 1)
|
||||
req_components = list(/datum/stock_part/capacitor = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/techfab/department/security
|
||||
@@ -1027,8 +1027,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SERVICE
|
||||
build_path = /obj/machinery/biogenerator
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/obj/item/stack/cable_coil = 1,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
|
||||
@@ -1040,9 +1040,9 @@
|
||||
/obj/item/circuitboard/machine/chem_dispenser/drinks/fullupgrade
|
||||
build_path = /obj/machinery/chem_dispenser/drinks/fullupgrade
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin/bluespace = 2,
|
||||
/obj/item/stock_parts/capacitor/quadratic = 2,
|
||||
/obj/item/stock_parts/manipulator/femto = 2,
|
||||
/datum/stock_part/matter_bin/bluespace = 2,
|
||||
/datum/stock_part/capacitor/quadratic = 2,
|
||||
/datum/stock_part/manipulator/femto = 2,
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/stock_parts/cell/bluespace = 1,
|
||||
)
|
||||
@@ -1055,9 +1055,9 @@
|
||||
/obj/item/circuitboard/machine/chem_dispenser/drinks/beer/fullupgrade
|
||||
build_path = /obj/machinery/chem_dispenser/drinks/beer/fullupgrade
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin/bluespace = 2,
|
||||
/obj/item/stock_parts/capacitor/quadratic = 2,
|
||||
/obj/item/stock_parts/manipulator/femto = 2,
|
||||
/datum/stock_part/matter_bin/bluespace = 2,
|
||||
/datum/stock_part/capacitor/quadratic = 2,
|
||||
/datum/stock_part/manipulator/femto = 2,
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/stock_parts/cell/bluespace = 1,
|
||||
)
|
||||
@@ -1071,21 +1071,21 @@
|
||||
name = "Deep Fryer"
|
||||
greyscale_colors = CIRCUIT_COLOR_SERVICE
|
||||
build_path = /obj/machinery/deepfryer
|
||||
req_components = list(/obj/item/stock_parts/micro_laser = 1)
|
||||
req_components = list(/datum/stock_part/micro_laser = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/griddle
|
||||
name = "Griddle"
|
||||
greyscale_colors = CIRCUIT_COLOR_SERVICE
|
||||
build_path = /obj/machinery/griddle
|
||||
req_components = list(/obj/item/stock_parts/micro_laser = 1)
|
||||
req_components = list(/datum/stock_part/micro_laser = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/oven
|
||||
name = "Oven"
|
||||
greyscale_colors = CIRCUIT_COLOR_SERVICE
|
||||
build_path = /obj/machinery/oven
|
||||
req_components = list(/obj/item/stock_parts/micro_laser = 1)
|
||||
req_components = list(/datum/stock_part/micro_laser = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/dish_drive
|
||||
@@ -1094,8 +1094,8 @@
|
||||
build_path = /obj/machinery/dish_drive
|
||||
req_components = list(
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/obj/item/stock_parts/matter_bin = 2)
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/datum/stock_part/matter_bin = 2)
|
||||
var/suction = TRUE
|
||||
var/transmit = TRUE
|
||||
needs_anchored = FALSE
|
||||
@@ -1120,8 +1120,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SERVICE
|
||||
build_path = /obj/machinery/gibber
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/manipulator = 1)
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/datum/stock_part/manipulator = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/hydroponics
|
||||
@@ -1129,8 +1129,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SERVICE
|
||||
build_path = /obj/machinery/hydroponics/constructable
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 2,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/datum/stock_part/matter_bin = 2,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
@@ -1139,8 +1139,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SERVICE
|
||||
build_path = /obj/machinery/microwave
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/obj/item/stack/cable_coil = 2,
|
||||
/obj/item/stack/sheet/glass = 2)
|
||||
needs_anchored = FALSE
|
||||
@@ -1150,8 +1150,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SERVICE
|
||||
build_path = /obj/machinery/processor
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/manipulator = 1)
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/datum/stock_part/manipulator = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/processor/screwdriver_act(mob/living/user, obj/item/tool)
|
||||
@@ -1175,7 +1175,7 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SERVICE
|
||||
build_path = /obj/machinery/recycler
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 1)
|
||||
/datum/stock_part/manipulator = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/seed_extractor
|
||||
@@ -1183,8 +1183,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SERVICE
|
||||
build_path = /obj/machinery/seed_extractor
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/manipulator = 1)
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/datum/stock_part/manipulator = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/techfab/department/service
|
||||
@@ -1197,7 +1197,7 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SERVICE
|
||||
build_path = /obj/structure/displaycase/forsale
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/card_reader = 1)
|
||||
/datum/stock_part/card_reader = 1)
|
||||
|
||||
//Supply
|
||||
/obj/item/circuitboard/machine/ore_redemption
|
||||
@@ -1206,9 +1206,9 @@
|
||||
build_path = /obj/machinery/mineral/ore_redemption
|
||||
req_components = list(
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/obj/item/assembly/igniter = 1)
|
||||
needs_anchored = FALSE
|
||||
|
||||
@@ -1228,8 +1228,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
||||
build_path = /obj/machinery/mineral/stacking_machine
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/obj/item/stock_parts/matter_bin = 2)
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/datum/stock_part/matter_bin = 2)
|
||||
|
||||
/obj/item/circuitboard/machine/stacking_unit_console
|
||||
name = "Stacking Machine Console"
|
||||
@@ -1250,9 +1250,9 @@
|
||||
build_path = /obj/machinery/rnd/bepis
|
||||
req_components = list(
|
||||
/obj/item/stack/cable_coil = 5,
|
||||
/obj/item/stock_parts/capacitor = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/datum/stock_part/capacitor = 1,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/datum/stock_part/scanning_module = 1)
|
||||
|
||||
//Misc
|
||||
@@ -1261,8 +1261,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SUPPLY
|
||||
build_path = /obj/machinery/sheetifier
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/obj/item/stock_parts/matter_bin = 2)
|
||||
/datum/stock_part/manipulator = 2,
|
||||
/datum/stock_part/matter_bin = 2)
|
||||
needs_anchored = FALSE
|
||||
|
||||
/obj/item/circuitboard/machine/restaurant_portal
|
||||
@@ -1280,19 +1280,19 @@
|
||||
name_extension = "(Void Core)"
|
||||
build_path = /obj/machinery/power/rtg/abductor
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/capacitor = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/datum/stock_part/capacitor = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/obj/item/stock_parts/cell/infinite/abductor = 1)
|
||||
def_components = list(
|
||||
/obj/item/stock_parts/capacitor = /obj/item/stock_parts/capacitor/quadratic,
|
||||
/obj/item/stock_parts/micro_laser = /obj/item/stock_parts/micro_laser/quadultra)
|
||||
/datum/stock_part/capacitor = /datum/stock_part/capacitor/quadratic,
|
||||
/datum/stock_part/micro_laser = /datum/stock_part/micro_laser/quadultra)
|
||||
|
||||
/obj/item/circuitboard/machine/hypnochair
|
||||
name = "Enhanced Interrogation Chamber"
|
||||
greyscale_colors = CIRCUIT_COLOR_SECURITY
|
||||
build_path = /obj/machinery/hypnochair
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/micro_laser = 2,
|
||||
/datum/stock_part/micro_laser = 2,
|
||||
/datum/stock_part/scanning_module = 2
|
||||
)
|
||||
|
||||
@@ -1302,7 +1302,7 @@
|
||||
build_path = /obj/machinery/plumbing/receiver
|
||||
req_components = list(
|
||||
/obj/item/stack/ore/bluespace_crystal = 1,
|
||||
/obj/item/stock_parts/capacitor = 2,
|
||||
/datum/stock_part/capacitor = 2,
|
||||
/obj/item/stack/sheet/glass = 1)
|
||||
def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial)
|
||||
needs_anchored = FALSE
|
||||
@@ -1311,8 +1311,8 @@
|
||||
name = "Skill Station"
|
||||
build_path = /obj/machinery/skill_station
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 2,
|
||||
/obj/item/stock_parts/micro_laser = 2,
|
||||
/datum/stock_part/matter_bin = 2,
|
||||
/datum/stock_part/micro_laser = 2,
|
||||
/datum/stock_part/scanning_module = 2
|
||||
)
|
||||
|
||||
@@ -1321,16 +1321,16 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
||||
build_path = /obj/machinery/destructive_scanner
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/micro_laser = 2,
|
||||
/obj/item/stock_parts/matter_bin = 1,
|
||||
/obj/item/stock_parts/manipulator = 2)
|
||||
/datum/stock_part/micro_laser = 2,
|
||||
/datum/stock_part/matter_bin = 1,
|
||||
/datum/stock_part/manipulator = 2)
|
||||
|
||||
/obj/item/circuitboard/machine/doppler_array
|
||||
name = "Tachyon-Doppler Research Array"
|
||||
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
||||
build_path = /obj/machinery/doppler_array
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/micro_laser = 2,
|
||||
/datum/stock_part/micro_laser = 2,
|
||||
/datum/stock_part/scanning_module = 4)
|
||||
|
||||
/obj/item/circuitboard/machine/exoscanner
|
||||
@@ -1338,7 +1338,7 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
||||
build_path = /obj/machinery/exoscanner
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/micro_laser = 4,
|
||||
/datum/stock_part/micro_laser = 4,
|
||||
/datum/stock_part/scanning_module = 4)
|
||||
|
||||
/obj/item/circuitboard/machine/exodrone_launcher
|
||||
@@ -1346,7 +1346,7 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
||||
build_path = /obj/machinery/exodrone_launcher
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/micro_laser = 4,
|
||||
/datum/stock_part/micro_laser = 4,
|
||||
/datum/stock_part/scanning_module = 4)
|
||||
|
||||
/obj/item/circuitboard/machine/ecto_sniffer
|
||||
@@ -1363,7 +1363,7 @@
|
||||
req_components = list(
|
||||
/obj/item/stack/sheet/plasteel = 15,
|
||||
/datum/stock_part/scanning_module = 1,
|
||||
/obj/item/stock_parts/manipulator = 1,
|
||||
/datum/stock_part/manipulator = 1,
|
||||
)
|
||||
|
||||
/obj/item/circuitboard/machine/tank_compressor
|
||||
@@ -1382,9 +1382,9 @@
|
||||
req_components = list(
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/reagent_containers/cup/beaker = 2,
|
||||
/obj/item/stock_parts/water_recycler = 1,
|
||||
/obj/item/stock_parts/capacitor = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/datum/stock_part/water_recycler = 1,
|
||||
/datum/stock_part/capacitor = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
)
|
||||
|
||||
/obj/item/circuitboard/machine/coffeemaker/impressa
|
||||
@@ -1394,7 +1394,7 @@
|
||||
req_components = list(
|
||||
/obj/item/stack/sheet/glass = 1,
|
||||
/obj/item/reagent_containers/cup/beaker = 2,
|
||||
/obj/item/stock_parts/water_recycler = 1,
|
||||
/obj/item/stock_parts/capacitor/adv = 1,
|
||||
/obj/item/stock_parts/micro_laser/high = 2,
|
||||
/datum/stock_part/water_recycler = 1,
|
||||
/datum/stock_part/capacitor/adv = 1,
|
||||
/datum/stock_part/micro_laser/high = 2,
|
||||
)
|
||||
|
||||
@@ -144,14 +144,14 @@
|
||||
|
||||
/obj/machinery/electrolyzer/RefreshParts()
|
||||
. = ..()
|
||||
var/manipulator = 0
|
||||
var/power = 0
|
||||
var/cap = 0
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
manipulator += M.rating
|
||||
for(var/obj/item/stock_parts/capacitor/M in component_parts)
|
||||
cap += M.rating
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
power += manipulator.tier
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
cap += capacitor.tier
|
||||
|
||||
working_power = manipulator //used in the amount of moles processed
|
||||
working_power = power //used in the amount of moles processed
|
||||
|
||||
efficiency = (cap + 1) * 0.5 //used in the amount of charge in power cell uses
|
||||
|
||||
|
||||
@@ -153,8 +153,8 @@
|
||||
/obj/machinery/atmospherics/components/unary/cryo_cell/RefreshParts()
|
||||
. = ..()
|
||||
var/C
|
||||
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
|
||||
C += M.rating
|
||||
for(var/datum/stock_part/matter_bin/M in component_parts)
|
||||
C += M.tier
|
||||
|
||||
efficiency = initial(efficiency) * C
|
||||
sleep_factor = initial(sleep_factor) * C
|
||||
|
||||
@@ -63,13 +63,13 @@
|
||||
/obj/machinery/atmospherics/components/unary/thermomachine/RefreshParts()
|
||||
. = ..()
|
||||
var/calculated_bin_rating = 0
|
||||
for(var/obj/item/stock_parts/matter_bin/bin in component_parts)
|
||||
calculated_bin_rating += bin.rating
|
||||
for(var/datum/stock_part/matter_bin/bin in component_parts)
|
||||
calculated_bin_rating += bin.tier
|
||||
heat_capacity = 5000 * ((calculated_bin_rating - 1) ** 2)
|
||||
|
||||
var/calculated_laser_rating = 0
|
||||
for(var/obj/item/stock_parts/micro_laser/laser in component_parts)
|
||||
calculated_laser_rating += laser.rating
|
||||
for(var/datum/stock_part/micro_laser/laser in component_parts)
|
||||
calculated_laser_rating += laser.tier
|
||||
min_temperature = max(T0C - (base_cooling + calculated_laser_rating * 15), TCMB) //73.15K with T1 stock parts
|
||||
max_temperature = T20C + (base_heating * calculated_laser_rating) //573.15K with T1 stock parts
|
||||
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
build_path = /obj/machinery/ltsrbt
|
||||
req_components = list(
|
||||
/obj/item/stack/ore/bluespace_crystal = 2,
|
||||
/obj/item/stock_parts/subspace/ansible = 1,
|
||||
/obj/item/stock_parts/micro_laser = 1,
|
||||
/datum/stock_part/ansible = 1,
|
||||
/datum/stock_part/micro_laser = 1,
|
||||
/datum/stock_part/scanning_module = 2)
|
||||
def_components = list(/obj/item/stack/ore/bluespace_crystal = /obj/item/stack/ore/bluespace_crystal/artificial)
|
||||
|
||||
@@ -56,8 +56,8 @@
|
||||
recharge_cooldown = recharge_time
|
||||
|
||||
power_efficiency = 0
|
||||
for(var/obj/item/stock_parts/micro_laser/laser in component_parts)
|
||||
power_efficiency += laser.rating
|
||||
for(var/datum/stock_part/micro_laser/laser in component_parts)
|
||||
power_efficiency += laser.tier
|
||||
// Shouldn't happen but you never know.
|
||||
if(!power_efficiency)
|
||||
power_efficiency = 1
|
||||
|
||||
@@ -262,7 +262,7 @@
|
||||
/obj/machinery/chem_heater = 3,
|
||||
/obj/machinery/power/emitter = 3
|
||||
)
|
||||
required_stock_part = /obj/item/stock_parts/micro_laser/high
|
||||
required_stock_part = /datum/stock_part/micro_laser/high
|
||||
|
||||
/datum/experiment/scanning/points/machinery_pinpoint_scan/tier2_capacitors
|
||||
name = "Advanced Capacitors Benchmark"
|
||||
@@ -278,7 +278,7 @@
|
||||
/obj/machinery/chem_dispenser/drinks = 3, /*actually having only the chem dispenser works for scanning soda/booze dispensers but im not quite sure how would i go about actually pointing that out w/o these two lines*/
|
||||
/obj/machinery/chem_dispenser/drinks/beer = 3
|
||||
)
|
||||
required_stock_part = /obj/item/stock_parts/capacitor/adv
|
||||
required_stock_part = /datum/stock_part/capacitor/adv
|
||||
|
||||
/datum/experiment/scanning/points/machinery_pinpoint_scan/tier2_scanmodules
|
||||
name = "Advanced Scanning Modules Calibration"
|
||||
@@ -291,7 +291,7 @@
|
||||
/obj/machinery/piratepad/civilian = 2,
|
||||
/obj/machinery/rnd/bepis = 3
|
||||
)
|
||||
required_stock_part = /obj/item/stock_parts/scanning_module/adv
|
||||
required_stock_part = /datum/stock_part/scanning_module/adv
|
||||
|
||||
/datum/experiment/scanning/points/machinery_pinpoint_scan/tier3_cells
|
||||
name = "Power Cells Capacity Test"
|
||||
@@ -319,7 +319,7 @@
|
||||
/obj/machinery/chem_heater = 2,
|
||||
/obj/machinery/chem_mass_spec = 3
|
||||
)
|
||||
required_stock_part = /obj/item/stock_parts/micro_laser/ultra
|
||||
required_stock_part = /datum/stock_part/micro_laser/ultra
|
||||
|
||||
/datum/experiment/scanning/random/mecha_damage_scan
|
||||
name = "Exosuit Materials 1: Stress Failure Test"
|
||||
|
||||
@@ -65,8 +65,8 @@
|
||||
/obj/machinery/coffeemaker/RefreshParts()
|
||||
. = ..()
|
||||
speed = 0
|
||||
for(var/obj/item/stock_parts/micro_laser/laser in component_parts)
|
||||
speed += laser.rating
|
||||
for(var/datum/stock_part/micro_laser/laser in component_parts)
|
||||
speed += laser.tier
|
||||
|
||||
/obj/machinery/coffeemaker/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -68,8 +68,8 @@ GLOBAL_LIST_INIT(oilfry_blacklisted_items, typecacheof(list(
|
||||
/obj/machinery/deepfryer/RefreshParts()
|
||||
. = ..()
|
||||
var/oil_efficiency = 0
|
||||
for(var/obj/item/stock_parts/micro_laser/laser in component_parts)
|
||||
oil_efficiency += laser.rating
|
||||
for(var/datum/stock_part/micro_laser/laser in component_parts)
|
||||
oil_efficiency += laser.tier
|
||||
oil_use = initial(oil_use) - (oil_efficiency * 0.00475)
|
||||
fry_speed = oil_efficiency
|
||||
|
||||
|
||||
@@ -27,19 +27,19 @@
|
||||
. = ..()
|
||||
gibtime = 40
|
||||
meat_produced = initial(meat_produced)
|
||||
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
|
||||
meat_produced += B.rating
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
gibtime -= 5 * M.rating
|
||||
if(M.rating >= 2)
|
||||
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
meat_produced += matter_bin.tier
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
gibtime -= 5 * manipulator.tier
|
||||
if(manipulator.tier >= 2)
|
||||
ignore_clothing = TRUE
|
||||
|
||||
/obj/machinery/gibber/examine(mob/user)
|
||||
. = ..()
|
||||
if(in_range(user, src) || isobserver(user))
|
||||
. += span_notice("The status display reads: Outputting <b>[meat_produced]</b> meat slab(s) after <b>[gibtime*0.1]</b> seconds of processing.")
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
if(M.rating >= 2)
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
if(manipulator.tier >= 2)
|
||||
. += span_notice("[src] has been upgraded to process inorganic materials.")
|
||||
|
||||
/obj/machinery/gibber/update_overlays()
|
||||
|
||||
@@ -85,10 +85,10 @@
|
||||
/obj/machinery/microwave/RefreshParts()
|
||||
. = ..()
|
||||
efficiency = 0
|
||||
for(var/obj/item/stock_parts/micro_laser/M in component_parts)
|
||||
efficiency += M.rating
|
||||
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
|
||||
max_n_of_items = 10 * M.rating
|
||||
for(var/datum/stock_part/micro_laser/micro_laser in component_parts)
|
||||
efficiency += micro_laser.tier
|
||||
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
max_n_of_items = 10 * matter_bin.tier
|
||||
break
|
||||
|
||||
/obj/machinery/microwave/examine(mob/user)
|
||||
|
||||
@@ -28,11 +28,10 @@ GLOBAL_LIST_EMPTY(monkey_recyclers)
|
||||
/obj/machinery/monkey_recycler/RefreshParts() //Ranges from 0.2 to 0.8 per monkey recycled
|
||||
. = ..()
|
||||
cube_production = 0
|
||||
for(var/obj/item/stock_parts/manipulator/B in component_parts)
|
||||
//cube_production += B.rating * 0.1 //ORIGINAL
|
||||
cube_production += B.rating * 0.2 //SKYRAT EDIT CHANGE - buffs to allow 1.2 cubes per monkey at T4
|
||||
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
|
||||
cube_production += M.rating * 0.1
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
cube_production += manipulator.tier * 0.2 // SKYRAT EDIT CHANGE - buffs to allow 1.2 cubes per monkey at T4 - ORIGINAL: cube_production += manipulator.tier * 0.1
|
||||
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
cube_production += matter_bin.tier * 0.2 // SKYRAT EDIT CHANGE - buffs to allow 1.2 cubes per monkey at T4 - ORIGINAL: cube_production += matter_bin.tier * 0.1
|
||||
|
||||
/obj/machinery/monkey_recycler/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -40,10 +40,10 @@
|
||||
|
||||
/obj/machinery/processor/RefreshParts()
|
||||
. = ..()
|
||||
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
|
||||
rating_amount = B.rating
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
rating_speed = M.rating
|
||||
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
rating_amount = matter_bin.tier
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
rating_speed = manipulator.tier
|
||||
|
||||
/obj/machinery/processor/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -34,8 +34,8 @@
|
||||
|
||||
/obj/machinery/smartfridge/RefreshParts()
|
||||
. = ..()
|
||||
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
|
||||
max_n_of_items = 1500 * B.rating
|
||||
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
max_n_of_items = 1500 * matter_bin.tier
|
||||
|
||||
/obj/machinery/smartfridge/examine(mob/user)
|
||||
. = ..()
|
||||
@@ -269,19 +269,6 @@
|
||||
base_build_path = /obj/machinery/smartfridge/drying_rack //should really be seeing this without admin fuckery.
|
||||
var/drying = FALSE
|
||||
|
||||
/obj/machinery/smartfridge/drying_rack/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
// Cache the old_parts first, we'll delete it after we've changed component_parts to a new list.
|
||||
// This stops handle_atom_del being called on every part when not necessary.
|
||||
var/list/old_parts = component_parts.Copy()
|
||||
|
||||
component_parts = null
|
||||
circuit = null
|
||||
|
||||
QDEL_LIST(old_parts)
|
||||
RefreshParts()
|
||||
|
||||
/obj/machinery/smartfridge/drying_rack/on_deconstruction()
|
||||
new /obj/item/stack/sheet/mineral/wood(drop_location(), 10)
|
||||
..()
|
||||
@@ -458,9 +445,9 @@
|
||||
|
||||
/obj/machinery/smartfridge/organ/RefreshParts()
|
||||
. = ..()
|
||||
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
|
||||
max_n_of_items = 20 * B.rating
|
||||
repair_rate = max(0, STANDARD_ORGAN_HEALING * (B.rating - 1) * 0.5)
|
||||
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
max_n_of_items = 20 * matter_bin.tier
|
||||
repair_rate = max(0, STANDARD_ORGAN_HEALING * (matter_bin.tier - 1) * 0.5)
|
||||
|
||||
/obj/machinery/smartfridge/organ/process(delta_time)
|
||||
for(var/obj/item/organ/organ in contents)
|
||||
|
||||
@@ -86,13 +86,13 @@
|
||||
var/new_max_items = 10
|
||||
var/new_processed_items_per_cycle = 0
|
||||
|
||||
for(var/obj/item/stock_parts/matter_bin/bin in component_parts)
|
||||
new_max_items += MAX_ITEMS_PER_RATING * bin.rating
|
||||
for(var/datum/stock_part/matter_bin/bin in component_parts)
|
||||
new_max_items += MAX_ITEMS_PER_RATING * bin.tier
|
||||
|
||||
for(var/obj/item/stock_parts/manipulator/manipulator in component_parts)
|
||||
new_productivity += manipulator.rating
|
||||
new_efficiency += manipulator.rating
|
||||
new_processed_items_per_cycle += PROCESSED_ITEMS_PER_RATING * manipulator.rating
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
new_productivity += manipulator.tier
|
||||
new_efficiency += manipulator.tier
|
||||
new_processed_items_per_cycle += PROCESSED_ITEMS_PER_RATING * manipulator.tier
|
||||
|
||||
max_items = new_max_items
|
||||
efficiency = new_efficiency
|
||||
|
||||
@@ -162,10 +162,10 @@
|
||||
/obj/machinery/hydroponics/constructable/RefreshParts()
|
||||
. = ..()
|
||||
var/tmp_capacity = 0
|
||||
for (var/obj/item/stock_parts/matter_bin/M in component_parts)
|
||||
tmp_capacity += M.rating
|
||||
for (var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
rating = M.rating
|
||||
for (var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
tmp_capacity += matter_bin.tier
|
||||
for (var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
rating = manipulator.tier
|
||||
maxwater = tmp_capacity * 50 // Up to 300
|
||||
maxnutri = (tmp_capacity * 5) + STATIC_NUTRIENT_CAPACITY // Up to 50 Maximum
|
||||
reagents.maximum_volume = maxnutri
|
||||
|
||||
@@ -90,10 +90,10 @@
|
||||
|
||||
/obj/machinery/seed_extractor/RefreshParts()
|
||||
. = ..()
|
||||
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
|
||||
max_seeds = initial(max_seeds) * B.rating
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
seed_multiplier = initial(seed_multiplier) * M.rating
|
||||
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
max_seeds = initial(max_seeds) * matter_bin.tier
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
seed_multiplier = initial(seed_multiplier) * manipulator.tier
|
||||
|
||||
/obj/machinery/seed_extractor/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
/obj/machinery/power/rtg/RefreshParts()
|
||||
. = ..()
|
||||
var/part_level = 0
|
||||
for(var/obj/item/stock_parts/SP in component_parts)
|
||||
part_level += SP.rating
|
||||
for(var/datum/stock_part/stock_part in component_parts)
|
||||
part_level += stock_part.tier
|
||||
|
||||
power_gen = initial(power_gen) * part_level
|
||||
|
||||
|
||||
@@ -87,15 +87,15 @@
|
||||
var/fire_shoot_delay = 12 SECONDS
|
||||
var/min_fire_delay = 2.4 SECONDS
|
||||
var/power_usage = 350
|
||||
for(var/obj/item/stock_parts/micro_laser/laser in component_parts)
|
||||
max_fire_delay -= 2 SECONDS * laser.rating
|
||||
min_fire_delay -= 0.4 SECONDS * laser.rating
|
||||
fire_shoot_delay -= 2 SECONDS * laser.rating
|
||||
for(var/datum/stock_part/micro_laser/laser in component_parts)
|
||||
max_fire_delay -= 2 SECONDS * laser.tier
|
||||
min_fire_delay -= 0.4 SECONDS * laser.tier
|
||||
fire_shoot_delay -= 2 SECONDS * laser.tier
|
||||
maximum_fire_delay = max_fire_delay
|
||||
minimum_fire_delay = min_fire_delay
|
||||
fire_delay = fire_shoot_delay
|
||||
for(var/obj/item/stock_parts/manipulator/manipulator in component_parts)
|
||||
power_usage -= 50 * manipulator.rating
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
power_usage -= 50 * manipulator.tier
|
||||
update_mode_power_usage(ACTIVE_POWER_USE, power_usage)
|
||||
|
||||
/obj/machinery/power/emitter/examine(mob/user)
|
||||
|
||||
@@ -65,8 +65,8 @@
|
||||
var/IO = 0
|
||||
var/MC = 0
|
||||
var/C
|
||||
for(var/obj/item/stock_parts/capacitor/CP in component_parts)
|
||||
IO += CP.rating
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
IO += capacitor.tier
|
||||
input_level_max = initial(input_level_max) * IO
|
||||
output_level_max = initial(output_level_max) * IO
|
||||
for(var/obj/item/stock_parts/cell/PC in component_parts)
|
||||
|
||||
@@ -42,9 +42,9 @@
|
||||
. = ..()
|
||||
var/power_multiplier = 0
|
||||
zap_cooldown = 100
|
||||
for(var/obj/item/stock_parts/capacitor/C in component_parts)
|
||||
power_multiplier += C.rating
|
||||
zap_cooldown -= (C.rating * 20)
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
power_multiplier += capacitor.tier
|
||||
zap_cooldown -= (capacitor.tier * 20)
|
||||
input_power_multiplier = max(1 * (power_multiplier / 8), 0.25) //Max out at 50% efficency.
|
||||
|
||||
/obj/machinery/power/energy_accumulator/tesla_coil/examine(mob/user)
|
||||
|
||||
@@ -471,24 +471,28 @@
|
||||
recharge_amount = initial(recharge_amount)
|
||||
var/newpowereff = 0.0666666
|
||||
var/parts_rating = 0
|
||||
for(var/obj/item/stock_parts/cell/P in component_parts)
|
||||
cell = P
|
||||
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
|
||||
newpowereff += 0.0166666666*M.rating
|
||||
parts_rating += M.rating
|
||||
for(var/obj/item/stock_parts/capacitor/C in component_parts)
|
||||
recharge_amount *= C.rating
|
||||
parts_rating += C.rating
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
if (M.rating > 1)
|
||||
for(var/obj/item/stock_parts/cell/stock_cell in component_parts)
|
||||
cell = stock_cell
|
||||
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
newpowereff += 0.0166666666 * matter_bin.tier
|
||||
parts_rating += matter_bin.tier
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
recharge_amount *= capacitor.tier
|
||||
parts_rating += capacitor.tier
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
/* SKYRAT EDIT - ORIGINAL
|
||||
if (manipulator.tier > 3)
|
||||
dispensable_reagents |= upgrade_reagents
|
||||
*/
|
||||
//SKYRAT EDIT START
|
||||
if (M.rating > 2)
|
||||
if (manipulator.tier > 1)
|
||||
dispensable_reagents |= upgrade_reagents
|
||||
if (manipulator.tier > 2)
|
||||
dispensable_reagents |= upgrade_reagents2
|
||||
if (M.rating > 3)
|
||||
if (manipulator.tier > 3)
|
||||
dispensable_reagents |= upgrade_reagents3
|
||||
//SKYRAT EDIT END
|
||||
parts_rating += M.rating
|
||||
parts_rating += manipulator.tier
|
||||
powerefficiency = round(newpowereff, 0.01)
|
||||
|
||||
/obj/machinery/chem_dispenser/proc/replace_beaker(mob/living/user, obj/item/reagent_containers/new_beaker)
|
||||
|
||||
@@ -91,8 +91,8 @@
|
||||
/obj/machinery/chem_heater/RefreshParts()
|
||||
. = ..()
|
||||
heater_coefficient = 0.1
|
||||
for(var/obj/item/stock_parts/micro_laser/M in component_parts)
|
||||
heater_coefficient *= M.rating
|
||||
for(var/datum/stock_part/micro_laser/micro_laser in component_parts)
|
||||
heater_coefficient *= micro_laser.tier
|
||||
|
||||
/obj/machinery/chem_heater/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -55,8 +55,8 @@ This will not clean any inverted reagents. Inverted reagents will still be corre
|
||||
/obj/machinery/chem_mass_spec/RefreshParts()
|
||||
. = ..()
|
||||
cms_coefficient = 1
|
||||
for(var/obj/item/stock_parts/micro_laser/laser in component_parts)
|
||||
cms_coefficient /= laser.rating
|
||||
for(var/datum/stock_part/micro_laser/laser in component_parts)
|
||||
cms_coefficient /= laser.tier
|
||||
|
||||
/obj/machinery/chem_mass_spec/deconstruct(disassembled)
|
||||
if(beaker1)
|
||||
|
||||
@@ -67,8 +67,8 @@
|
||||
/obj/machinery/reagentgrinder/RefreshParts()
|
||||
. = ..()
|
||||
speed = 1
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
speed = M.rating
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
speed = manipulator.tier
|
||||
|
||||
/obj/machinery/reagentgrinder/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -38,8 +38,8 @@
|
||||
. = ..()
|
||||
create_reagents(REAGENTS_BASE_VOLUME, INJECTABLE)
|
||||
AddComponent(/datum/component/plumbing/simple_demand)
|
||||
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
|
||||
reagents.maximum_volume += REAGENTS_BASE_VOLUME * B.rating
|
||||
for(var/datum/stock_part/matter_bin/B in component_parts)
|
||||
reagents.maximum_volume += REAGENTS_BASE_VOLUME * B.tier
|
||||
if(is_operational)
|
||||
begin_processing()
|
||||
|
||||
@@ -54,8 +54,8 @@
|
||||
/obj/machinery/smoke_machine/RefreshParts()
|
||||
. = ..()
|
||||
var/new_volume = REAGENTS_BASE_VOLUME
|
||||
for(var/obj/item/stock_parts/matter_bin/B in component_parts)
|
||||
new_volume += REAGENTS_BASE_VOLUME * B.rating
|
||||
for(var/datum/stock_part/matter_bin/B in component_parts)
|
||||
new_volume += REAGENTS_BASE_VOLUME * B.tier
|
||||
if(!reagents)
|
||||
create_reagents(new_volume, INJECTABLE)
|
||||
reagents.maximum_volume = new_volume
|
||||
@@ -63,11 +63,11 @@
|
||||
reagents.expose(loc, TOUCH) // if someone manages to downgrade it without deconstructing
|
||||
reagents.clear_reagents()
|
||||
efficiency = 18
|
||||
for(var/obj/item/stock_parts/capacitor/C in component_parts)
|
||||
efficiency += 2 * C.rating
|
||||
for(var/datum/stock_part/capacitor/C in component_parts)
|
||||
efficiency += 2 * C.tier
|
||||
max_range = 1
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
max_range += M.rating
|
||||
for(var/datum/stock_part/manipulator/M in component_parts)
|
||||
max_range += M.tier
|
||||
max_range = max(3, max_range)
|
||||
|
||||
/obj/machinery/smoke_machine/on_set_is_operational(old_value)
|
||||
|
||||
@@ -92,14 +92,14 @@
|
||||
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)
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
C += ((capacitor.tier - 1) * 0.1)
|
||||
power_saver = 1 - C
|
||||
for(var/obj/item/stock_parts/manipulator/Manip in component_parts)
|
||||
M += ((Manip.rating - 1) * PART_CASH_OFFSET_AMOUNT)
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
M += ((manipulator.tier - 1) * PART_CASH_OFFSET_AMOUNT)
|
||||
positive_cash_offset = M
|
||||
for(var/obj/item/stock_parts/micro_laser/Laser in component_parts)
|
||||
L += ((Laser.rating - 1) * PART_CASH_OFFSET_AMOUNT)
|
||||
for(var/datum/stock_part/micro_laser/Laser in component_parts)
|
||||
L += ((Laser.tier - 1) * PART_CASH_OFFSET_AMOUNT)
|
||||
negative_cash_offset = L
|
||||
for(var/datum/stock_part/scanning_module/scanning_module in component_parts)
|
||||
S += ((scanning_module.tier - 1) * 0.25)
|
||||
|
||||
@@ -16,8 +16,8 @@ Note: Must be placed within 3 tiles of the R&D Console
|
||||
/obj/machinery/rnd/destructive_analyzer/RefreshParts()
|
||||
. = ..()
|
||||
var/T = 0
|
||||
for(var/obj/item/stock_parts/S in component_parts)
|
||||
T += S.rating
|
||||
for(var/datum/stock_part/stock_part in component_parts)
|
||||
T += stock_part.tier
|
||||
decon_mod = T
|
||||
|
||||
/obj/machinery/rnd/destructive_analyzer/proc/ConvertReqString2List(list/source_list)
|
||||
|
||||
@@ -110,12 +110,12 @@
|
||||
. = ..()
|
||||
malfunction_probability_coeff = malfunction_probability_coeff_modifier
|
||||
resetTime = initial(resetTime)
|
||||
for(var/obj/item/stock_parts/manipulator/M in component_parts)
|
||||
resetTime = max(1, resetTime - M.rating)
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
resetTime = max(1, resetTime - manipulator.tier)
|
||||
for(var/datum/stock_part/scanning_module/scanning_module in component_parts)
|
||||
malfunction_probability_coeff += scanning_module.tier * 2
|
||||
for(var/obj/item/stock_parts/micro_laser/M in component_parts)
|
||||
malfunction_probability_coeff += M.rating
|
||||
for(var/datum/stock_part/micro_laser/micro_laser in component_parts)
|
||||
malfunction_probability_coeff += micro_laser.tier
|
||||
|
||||
/obj/machinery/rnd/experimentor/examine(mob/user)
|
||||
. = ..()
|
||||
|
||||
@@ -200,15 +200,15 @@
|
||||
if(materials)
|
||||
var/total_storage = 0
|
||||
|
||||
for(var/obj/item/stock_parts/matter_bin/bin in component_parts)
|
||||
total_storage += bin.rating * 75000
|
||||
for(var/datum/stock_part/matter_bin/bin in component_parts)
|
||||
total_storage += bin.tier * 75000
|
||||
|
||||
materials.set_local_size(total_storage)
|
||||
|
||||
var/total_rating = 1.2
|
||||
|
||||
for(var/obj/item/stock_parts/manipulator/manipulator in component_parts)
|
||||
total_rating -= manipulator.rating * 0.1
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
total_rating -= manipulator.tier * 0.1
|
||||
|
||||
efficiency_coeff = max(total_rating, 0)
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
|
||||
var/rating = 0
|
||||
|
||||
for(var/obj/item/stock_parts/manipulator/manipulator in component_parts)
|
||||
rating += manipulator.rating // There is only one.
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
rating += manipulator.tier // There is only one.
|
||||
|
||||
efficiency_coeff = 0.5 ** max(rating - 1, 0) // One sheet, half sheet, quarter sheet, eighth sheet.
|
||||
|
||||
|
||||
@@ -72,14 +72,129 @@ GLOBAL_LIST_INIT(stock_part_datums, generate_stock_part_datums())
|
||||
physical_object_type = /obj/item/stock_parts/scanning_module
|
||||
physical_object_base_type = /obj/item/stock_parts/scanning_module
|
||||
|
||||
/datum/stock_part/scanning_module/tier2
|
||||
/datum/stock_part/scanning_module/adv
|
||||
tier = 2
|
||||
physical_object_type = /obj/item/stock_parts/scanning_module/adv
|
||||
|
||||
/datum/stock_part/scanning_module/tier3
|
||||
/datum/stock_part/scanning_module/phasic
|
||||
tier = 3
|
||||
physical_object_type = /obj/item/stock_parts/scanning_module/phasic
|
||||
|
||||
/datum/stock_part/scanning_module/tier4
|
||||
/datum/stock_part/scanning_module/triphasic
|
||||
tier = 4
|
||||
physical_object_type = /obj/item/stock_parts/scanning_module/triphasic
|
||||
|
||||
/datum/stock_part/capacitor
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/capacitor
|
||||
physical_object_base_type = /obj/item/stock_parts/capacitor
|
||||
|
||||
/datum/stock_part/capacitor/adv
|
||||
tier = 2
|
||||
physical_object_type = /obj/item/stock_parts/capacitor/adv
|
||||
|
||||
/datum/stock_part/capacitor/super
|
||||
tier = 3
|
||||
physical_object_type = /obj/item/stock_parts/capacitor/super
|
||||
|
||||
/datum/stock_part/capacitor/quadratic
|
||||
tier = 4
|
||||
physical_object_type = /obj/item/stock_parts/capacitor/quadratic
|
||||
|
||||
/datum/stock_part/manipulator
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/manipulator
|
||||
physical_object_base_type = /obj/item/stock_parts/manipulator
|
||||
|
||||
/datum/stock_part/manipulator/nano
|
||||
tier = 2
|
||||
physical_object_type = /obj/item/stock_parts/manipulator/nano
|
||||
|
||||
/datum/stock_part/manipulator/pico
|
||||
tier = 3
|
||||
physical_object_type = /obj/item/stock_parts/manipulator/pico
|
||||
|
||||
/datum/stock_part/manipulator/femto
|
||||
tier = 4
|
||||
physical_object_type = /obj/item/stock_parts/manipulator/femto
|
||||
|
||||
/datum/stock_part/micro_laser
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/micro_laser
|
||||
physical_object_base_type = /obj/item/stock_parts/micro_laser
|
||||
|
||||
/datum/stock_part/micro_laser/high
|
||||
tier = 2
|
||||
physical_object_type = /obj/item/stock_parts/micro_laser/high
|
||||
|
||||
/datum/stock_part/micro_laser/ultra
|
||||
tier = 3
|
||||
physical_object_type = /obj/item/stock_parts/micro_laser/ultra
|
||||
|
||||
/datum/stock_part/micro_laser/quadultra
|
||||
tier = 4
|
||||
physical_object_type = /obj/item/stock_parts/micro_laser/quadultra
|
||||
|
||||
/datum/stock_part/matter_bin
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/matter_bin
|
||||
physical_object_base_type = /obj/item/stock_parts/matter_bin
|
||||
|
||||
/datum/stock_part/matter_bin/adv
|
||||
tier = 2
|
||||
physical_object_type = /obj/item/stock_parts/matter_bin/adv
|
||||
|
||||
/datum/stock_part/matter_bin/super
|
||||
tier = 3
|
||||
physical_object_type = /obj/item/stock_parts/matter_bin/super
|
||||
|
||||
/datum/stock_part/matter_bin/bluespace
|
||||
tier = 4
|
||||
physical_object_type = /obj/item/stock_parts/matter_bin/bluespace
|
||||
|
||||
/// Subspace stock parts
|
||||
|
||||
/datum/stock_part/ansible
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/subspace/ansible
|
||||
physical_object_base_type = /obj/item/stock_parts/subspace/ansible
|
||||
|
||||
/datum/stock_part/filter
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/subspace/filter
|
||||
physical_object_base_type = /obj/item/stock_parts/subspace/filter
|
||||
|
||||
/datum/stock_part/amplifier
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/subspace/amplifier
|
||||
physical_object_base_type = /obj/item/stock_parts/subspace/amplifier
|
||||
|
||||
/datum/stock_part/treatment
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/subspace/treatment
|
||||
physical_object_base_type = /obj/item/stock_parts/subspace/treatment
|
||||
|
||||
/datum/stock_part/analyzer
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/subspace/analyzer
|
||||
physical_object_base_type = /obj/item/stock_parts/subspace/analyzer
|
||||
|
||||
/datum/stock_part/crystal
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/subspace/crystal
|
||||
physical_object_base_type = /obj/item/stock_parts/subspace/crystal
|
||||
|
||||
/datum/stock_part/transmitter
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/subspace/transmitter
|
||||
physical_object_base_type = /obj/item/stock_parts/subspace/transmitter
|
||||
|
||||
/datum/stock_part/card_reader
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/card_reader
|
||||
physical_object_base_type = /obj/item/stock_parts/card_reader
|
||||
|
||||
/datum/stock_part/water_recycler
|
||||
tier = 1
|
||||
physical_object_type = /obj/item/stock_parts/water_recycler
|
||||
physical_object_base_type = /obj/item/stock_parts/water_recycler
|
||||
|
||||
@@ -43,8 +43,8 @@
|
||||
/obj/machinery/mech_bay_recharge_port/RefreshParts()
|
||||
. = ..()
|
||||
var/total_rating = 0
|
||||
for(var/obj/item/stock_parts/capacitor/cap in component_parts)
|
||||
total_rating += cap.rating
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
total_rating += capacitor.tier
|
||||
recharge_power = total_rating * 12.5
|
||||
|
||||
/obj/machinery/mech_bay_recharge_port/examine(mob/user)
|
||||
|
||||
@@ -90,20 +90,20 @@
|
||||
var/T = 0
|
||||
|
||||
//maximum stocking amount (default 300000, 600000 at T4)
|
||||
for(var/obj/item/stock_parts/matter_bin/M in component_parts)
|
||||
T += M.rating
|
||||
rmat.set_local_size((200000 + (T*50000)))
|
||||
for(var/datum/stock_part/matter_bin/matter_bin in component_parts)
|
||||
T += matter_bin.tier
|
||||
rmat.set_local_size((200000 + (T * 50000)))
|
||||
|
||||
//resources adjustment coefficient (1 -> 0.85 -> 0.7 -> 0.55)
|
||||
T = 1.15
|
||||
for(var/obj/item/stock_parts/micro_laser/Ma in component_parts)
|
||||
T -= Ma.rating*0.15
|
||||
for(var/datum/stock_part/micro_laser/micro_laser in component_parts)
|
||||
T -= micro_laser.tier * 0.15
|
||||
component_coeff = T
|
||||
|
||||
//building time adjustment coefficient (1 -> 0.8 -> 0.6)
|
||||
T = -1
|
||||
for(var/obj/item/stock_parts/manipulator/Ml in component_parts)
|
||||
T += Ml.rating
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
T += manipulator.tier
|
||||
time_coeff = round(initial(time_coeff) - (initial(time_coeff)*(T))/5,0.01)
|
||||
|
||||
// Adjust the build time of any item currently being built.
|
||||
|
||||
@@ -15,40 +15,49 @@
|
||||
var/panel_open = FALSE
|
||||
///Parts used in building the wheelchair
|
||||
var/list/required_parts = list(
|
||||
/obj/item/stock_parts/manipulator,
|
||||
/obj/item/stock_parts/manipulator,
|
||||
/obj/item/stock_parts/capacitor,
|
||||
/datum/stock_part/manipulator,
|
||||
/datum/stock_part/manipulator,
|
||||
/datum/stock_part/capacitor,
|
||||
)
|
||||
///power cell we draw power from
|
||||
var/obj/item/stock_parts/cell/power_cell
|
||||
///stock parts for this chair
|
||||
var/list/component_parts = list()
|
||||
|
||||
/obj/vehicle/ridden/wheelchair/motorized/make_ridable()
|
||||
AddElement(/datum/element/ridable, /datum/component/riding/vehicle/wheelchair/motorized)
|
||||
|
||||
/obj/vehicle/ridden/wheelchair/motorized/CheckParts(list/parts_list)
|
||||
. = ..()
|
||||
for(var/obj/item/stock_parts/part in parts_list)
|
||||
// find macthing datum/stock_part for this part and add to component list
|
||||
var/datum/stock_part/newstockpart = GLOB.stock_part_datums_per_object[part.type]
|
||||
if(isnull(newstockpart))
|
||||
CRASH("No corresponding datum/stock_part for [part.type]")
|
||||
component_parts += newstockpart
|
||||
// delete this part
|
||||
part.moveToNullspace()
|
||||
qdel(part)
|
||||
refresh_parts()
|
||||
|
||||
/obj/vehicle/ridden/wheelchair/motorized/proc/refresh_parts()
|
||||
speed = 1 // Should never be under 1
|
||||
for(var/obj/item/stock_parts/manipulator/M in contents)
|
||||
speed += M.rating
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
speed += manipulator.tier
|
||||
var/chair_icon = "motorized_wheelchair[speed > delay_multiplier ? "_fast" : ""]"
|
||||
if(icon_state != chair_icon)
|
||||
wheels_overlay = image(icon, chair_icon + "_overlay", ABOVE_MOB_LAYER)
|
||||
wheels_overlay = image(icon, chair_icon + "_overlay", ABOVE_MOB_LAYER)
|
||||
|
||||
icon_state = chair_icon
|
||||
|
||||
for(var/obj/item/stock_parts/capacitor/C in contents)
|
||||
power_efficiency = C.rating
|
||||
for(var/datum/stock_part/capacitor/capacitor in component_parts)
|
||||
power_efficiency = capacitor.tier
|
||||
|
||||
/obj/vehicle/ridden/wheelchair/motorized/get_cell()
|
||||
return power_cell
|
||||
|
||||
/obj/vehicle/ridden/wheelchair/motorized/atom_destruction(damage_flag)
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/atom/movable/atom_content as anything in contents)
|
||||
atom_content.forceMove(T)
|
||||
for(var/datum/stock_part/part in component_parts)
|
||||
new part.physical_object_type(drop_location())
|
||||
return ..()
|
||||
|
||||
/obj/vehicle/ridden/wheelchair/motorized/relaymove(mob/living/user, direction)
|
||||
@@ -93,18 +102,27 @@
|
||||
if(!istype(I, /obj/item/stock_parts))
|
||||
return ..()
|
||||
|
||||
var/obj/item/stock_parts/newstockpart = I
|
||||
for(var/obj/item/stock_parts/oldstockpart in contents)
|
||||
var/datum/stock_part/newstockpart = GLOB.stock_part_datums_per_object[I.type]
|
||||
if(isnull(newstockpart))
|
||||
CRASH("No corresponding datum/stock_part for [newstockpart.type]")
|
||||
for(var/datum/stock_part/oldstockpart in component_parts)
|
||||
var/type_to_check
|
||||
for(var/pathtype in required_parts)
|
||||
if(ispath(oldstockpart.type, pathtype))
|
||||
type_to_check = pathtype
|
||||
break
|
||||
if(istype(newstockpart, type_to_check) && istype(oldstockpart, type_to_check))
|
||||
if(newstockpart.get_part_rating() > oldstockpart.get_part_rating())
|
||||
newstockpart.forceMove(src)
|
||||
user.put_in_hands(oldstockpart)
|
||||
user.visible_message(span_notice("[user] replaces [oldstockpart] with [newstockpart] in [src]."), span_notice("You replace [oldstockpart] with [newstockpart]."))
|
||||
if(newstockpart.tier > oldstockpart.tier)
|
||||
// delete the part in the users hand and add the datum part to the component_list
|
||||
I.moveToNullspace()
|
||||
qdel(I)
|
||||
component_parts += newstockpart
|
||||
// create an new instance of the old datum stock part physical type & put it in the users hand
|
||||
var/obj/item/stock_parts/part = new oldstockpart.physical_object_type
|
||||
user.put_in_hands(part)
|
||||
component_parts -= oldstockpart
|
||||
// user message
|
||||
user.visible_message(span_notice("[user] replaces [oldstockpart.name()] with [newstockpart.name()] in [src]."), span_notice("You replace [oldstockpart.name()] with [newstockpart.name()]."))
|
||||
break
|
||||
refresh_parts()
|
||||
|
||||
@@ -115,9 +133,8 @@
|
||||
to_chat(user, span_notice("You detach the wheels and deconstruct the chair."))
|
||||
new /obj/item/stack/rods(drop_location(), 8)
|
||||
new /obj/item/stack/sheet/iron(drop_location(), 10)
|
||||
var/turf/T = get_turf(src)
|
||||
for(var/atom/movable/atom_content as anything in contents)
|
||||
atom_content.forceMove(T)
|
||||
for(var/datum/stock_part/part in component_parts)
|
||||
new part.physical_object_type(drop_location())
|
||||
qdel(src)
|
||||
return TRUE
|
||||
|
||||
|
||||
@@ -77,9 +77,9 @@
|
||||
/obj/machinery/component_printer/proc/calculate_efficiency()
|
||||
var/rating = 0
|
||||
|
||||
for(var/obj/item/stock_parts/manipulator/manipulator in component_parts)
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
///we do -1 because normal manipulators rating of 1 gives us 1-1=0 i.e no decrement in cost
|
||||
rating += manipulator.rating-1
|
||||
rating += manipulator.tier-1
|
||||
|
||||
///linear interpolation between full cost i.e 1 & 1/8th the cost i.e 0.125
|
||||
///we do it in 6 steps because maximum rating of 2 manipulators is 8 but -1 gives us 6
|
||||
@@ -89,8 +89,8 @@
|
||||
if(materials)
|
||||
var/total_storage = 0
|
||||
|
||||
for(var/obj/item/stock_parts/matter_bin/bin in component_parts)
|
||||
total_storage += bin.rating * 75000
|
||||
for(var/datum/stock_part/matter_bin/bin in component_parts)
|
||||
total_storage += bin.tier * 75000
|
||||
|
||||
materials.set_local_size(total_storage)
|
||||
|
||||
@@ -223,8 +223,8 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
||||
build_path = /obj/machinery/component_printer
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 2,
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/datum/stock_part/matter_bin = 2,
|
||||
/datum/stock_part/manipulator = 2,
|
||||
)
|
||||
|
||||
/obj/machinery/debug_component_printer
|
||||
@@ -350,20 +350,20 @@
|
||||
if(materials)
|
||||
var/total_storage = 0
|
||||
|
||||
for(var/obj/item/stock_parts/matter_bin/bin in component_parts)
|
||||
total_storage += bin.rating * 75000
|
||||
for(var/datum/stock_part/matter_bin/bin in component_parts)
|
||||
total_storage += bin.tier * 75000
|
||||
|
||||
materials.set_local_size(total_storage)
|
||||
|
||||
var/rating = 0
|
||||
|
||||
for(var/obj/item/stock_parts/manipulator/manipulator in component_parts)
|
||||
for(var/datum/stock_part/manipulator/manipulator in component_parts)
|
||||
///we do -1 because normal manipulators rating of 1 gives us 1-1=0 i.e no decrement in cost
|
||||
rating += manipulator.rating-1
|
||||
rating += manipulator.tier - 1
|
||||
|
||||
///linear interpolation between full cost i.e 1 & 1/8th the cost i.e 0.125
|
||||
///we do it in 6 steps because maximum rating of 2 manipulators is 8 but -1 gives us 6
|
||||
var/coff=1.0+((0.125-1.0)*(rating/6))
|
||||
var/coff = 1.0 + ((0.125 - 1.0) * (rating/6))
|
||||
|
||||
return coff
|
||||
|
||||
@@ -535,6 +535,6 @@
|
||||
greyscale_colors = CIRCUIT_COLOR_SCIENCE
|
||||
build_path = /obj/machinery/module_duplicator
|
||||
req_components = list(
|
||||
/obj/item/stock_parts/matter_bin = 2,
|
||||
/obj/item/stock_parts/manipulator = 2,
|
||||
/datum/stock_part/matter_bin = 2,
|
||||
/datum/stock_part/manipulator = 2,
|
||||
)
|
||||
|
||||
@@ -409,13 +409,13 @@ if [ "$pcre2_support" -eq 1 ]; then
|
||||
echo
|
||||
echo -e "${RED}ERROR: TIMER_OVERRIDE used without TIMER_UNIQUE.${NC}"
|
||||
st=1
|
||||
fi
|
||||
fi;
|
||||
part "trailing newlines"
|
||||
if $grep -PU '[^\n]$(?!\n)' $code_files; then
|
||||
echo
|
||||
echo -e "${RED}ERROR: File(s) with no trailing newline detected, please add one.${NC}"
|
||||
st=1
|
||||
fi
|
||||
fi;
|
||||
part "docking_port varedits"
|
||||
if $grep -PU '^/obj/docking_port/mobile.*\{\n[^}]*(width|height|dwidth|dheight)[^}]*[}]' $map_files; then
|
||||
echo
|
||||
@@ -423,10 +423,16 @@ if [ "$pcre2_support" -eq 1 ]; then
|
||||
echo -e "\t\tPlease remove the width, height, dwidth, and dheight varedits from the docking_port.${NC}"
|
||||
st=1
|
||||
fi;
|
||||
part "datum stockpart sanity"
|
||||
if $grep -P 'for\b.*/obj/item/stock_parts/(?!cell)(?![\w_]+ in )' $code_files; then
|
||||
echo
|
||||
echo -e "${RED}ERROR: Should be using datum/stock_part instead"
|
||||
st=1
|
||||
fi;
|
||||
else
|
||||
echo -e "${RED}pcre2 not supported, skipping checks requiring pcre2"
|
||||
echo -e "if you want to run these checks install ripgrep with pcre2 support.${NC}"
|
||||
fi
|
||||
fi;
|
||||
|
||||
if [ $st = 0 ]; then
|
||||
echo
|
||||
|
||||
Reference in New Issue
Block a user