diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm
index 3b00bbc7a7e..f1d874a68fd 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/circuits_and_design.dm
@@ -1,24 +1,12 @@
+//////////////////////////////////////
+// RUST Core Control computer
+
/obj/item/weapon/circuitboard/rust_core_control
name = "Circuit board (RUST core controller)"
build_path = "/obj/machinery/computer/rust_core_control"
origin_tech = "programming=4;engineering=5;power=6"
-/obj/item/weapon/circuitboard/rust_fuel_control
- name = "Circuit board (RUST fuel controller)"
- build_path = "/obj/machinery/computer/rust_fuel_control"
- origin_tech = "programming=4;engineering=5;power=6"
-
-/obj/item/weapon/circuitboard/rust_fuel_port
- name = "Circuit board (RUST fuel port)"
- build_path = "/obj/machinery/computer/rust_fuel_control"
- origin_tech = "programming=4;engineering=5;power=6"
-
-/obj/item/weapon/circuitboard/rust_fuel_compressor
- name = "Circuit board (RUST fuel compressor)"
- build_path = "/obj/machinery/computer/rust_fuel_control"
- origin_tech = "programming=4;engineering=5;power=6"
-
datum/design/rust_core_control
name = "Circuit Design (RUST core controller)"
desc = "Allows for the construction of circuit boards used to build a core control console for the RUST fusion engine."
@@ -28,6 +16,14 @@ datum/design/rust_core_control
materials = list("$glass" = 2000, "sacid" = 20, "$gold" = 2000)
build_path = "/obj/item/weapon/circuitboard/rust_core_control"
+//////////////////////////////////////
+// RUST Fuel Control computer
+
+/obj/item/weapon/circuitboard/rust_fuel_control
+ name = "Circuit board (RUST fuel controller)"
+ build_path = "/obj/machinery/computer/rust_fuel_control"
+ origin_tech = "programming=4;engineering=5;power=6"
+
datum/design/rust_fuel_control
name = "Circuit Design (RUST fuel controller)"
desc = "Allows for the construction of circuit boards used to build a fuel injector control console for the RUST fusion engine."
@@ -37,6 +33,14 @@ datum/design/rust_fuel_control
materials = list("$glass" = 2000, "sacid" = 20, "$silver" = 2000)
build_path = "/obj/item/weapon/circuitboard/rust_fuel_control"
+//////////////////////////////////////
+// RUST Fuel Port board
+
+/obj/item/weapon/module/rust_fuel_port
+ name = "Circuit board (RUST fuel port)"
+ icon_state = "card_mod"
+ origin_tech = "engineering=3;power=4"
+
datum/design/rust_fuel_port
name = "Circuit Design (RUST fuel port)"
desc = "Allows for the construction of circuit boards used to build a fuel injection port for the RUST fusion engine."
@@ -44,13 +48,73 @@ datum/design/rust_fuel_port
req_tech = list("programming" = 4, "engineering" = 5, "magnets" = 6)
build_type = IMPRINTER
materials = list("$glass" = 2000, "sacid" = 20, "$uranium" = 3000)
- build_path = "/obj/item/weapon/circuitboard/rust_fuel_port"
+ build_path = "/obj/item/weapon/module/rust_fuel_port"
+
+//////////////////////////////////////
+// RUST Fuel Compressor board
+
+/obj/item/weapon/module/rust_fuel_compressor
+ name = "Circuit board (RUST fuel compressor)"
+ icon_state = "card_mod"
+ origin_tech = "power=4;engineering=5;plasmatech=6"
datum/design/rust_fuel_compressor
name = "Circuit Design (RUST fuel compressor)"
desc = "Allows for the construction of circuit boards used to build a fuel compressor of the RUST fusion engine."
id = "rust_fuel_compressor"
- req_tech = list("programming" = 4, "engineering" = 5 "magnets" = 6)
+ req_tech = list("power" = 4, "engineering" = 5, "plasmatech" = 6)
build_type = IMPRINTER
- materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000)
- build_path = "/obj/item/weapon/circuitboard/rust_fuel_compressor"
+ materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$diamond" = 1000)
+ build_path = "/obj/item/weapon/module/rust_fuel_compressor"
+
+//////////////////////////////////////
+// RUST Tokamak Core board
+
+/obj/item/weapon/circuitboard/rust_core
+ name = "Circuit Design (RUST tokamak core)"
+ build_path = "/obj/machinery/power/rust_core"
+ board_type = "machine"
+ origin_tech = "bluespace=3;engineering=4;plasmatech=5;magnets=6;power=7"
+ frame_desc = "Requires 2 Pico Manipulators, 1 Ultra Micro-Laser, 5 Pieces of Cable, 1 Subspace Crystal and 1 Console Screen."
+ req_components = list(
+ "/obj/item/weapon/stock_parts/manipulator/pico" = 2,
+ "/obj/item/weapon/stock_parts/micro_laser/ultra" = 1,
+ "/obj/item/weapon/stock_parts/subspace/crystal" = 1,
+ "/obj/item/weapon/stock_parts/console_screen" = 1,
+ "/obj/item/weapon/cable_coil" = 5)
+
+datum/design/rust_core
+ name = "Circuit board (RUST tokamak core)"
+ desc = "The circuit board that for a RUST-pattern tokamak fusion core."
+ id = "pacman"
+ req_tech = list(bluespace = 3, engineering = 4, plasmatech = 5, magnets = 6, power = 7)
+ build_type = IMPRINTER
+ reliability_base = 79
+ materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$diamond" = 2000)
+ build_path = "/obj/item/weapon/circuitboard/rust_core"
+
+//////////////////////////////////////
+// RUST Fuel Injector board
+
+/obj/item/weapon/circuitboard/rust_injector
+ name = "Circuit Design (RUST fuel injector)"
+ build_path = "/obj/machinery/power/rust_fuel_injector"
+ board_type = "machine"
+ origin_tech = "power=3;engineering=4;plasmatech=5;magnets=6;materials=7"
+ frame_desc = "Requires 2 Pico Manipulators, 1 Phasic Scanning Module, 1 Super Matter Bin, 1 Console Screen and 5 Pieces of Cable."
+ req_components = list(
+ "/obj/item/weapon/stock_parts/manipulator/pico" = 2,
+ "/obj/item/weapon/stock_parts/scanning_module/phasic" = 1,
+ "/obj/item/weapon/stock_parts/matter_bin/super" = 1,
+ "/obj/item/weapon/stock_parts/console_screen" = 1,
+ "/obj/item/weapon/cable_coil" = 5)
+
+datum/design/rust_injector
+ name = "Circuit board (RUST tokamak core)"
+ desc = "The circuit board that for a RUST-pattern particle accelerator."
+ id = "pacman"
+ req_tech = list(power = 3, engineering = 4, plasmatech = 5, magnets = 6, materials = 7)
+ build_type = IMPRINTER
+ reliability_base = 79
+ materials = list("$glass" = 2000, "sacid" = 20, "$plasma" = 3000, "$uranium" = 2000)
+ build_path = "/obj/item/weapon/circuitboard/rust_core"
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm
index 6127e8f9d7e..13c791b75a2 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/core_field.dm
@@ -258,7 +258,7 @@ Deuterium-tritium fusion: 4.5 x 10^7 K
switch(newsize)
if(1)
size = 1
- icon = 'emfield.dmi'
+ icon = 'rust.dmi'
icon_state = "emfield_s1"
pixel_x = 0
pixel_y = 0
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm
index 1f881c8150e..67935b9ad1f 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port.dm
@@ -11,8 +11,6 @@
anchored = 1
var/opened = 1 //0=closed, 1=opened
- var/coverlocked = 0
- var/locked = 0
var/has_electronics = 0 // 0 - none, bit 1 - circuitboard, bit 2 - wires
/obj/machinery/rust_fuel_assembly_port/attackby(var/obj/item/I, var/mob/user)
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm
index 81bec6781e3..0e7aa477cd6 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_assembly_port_construction.dm
@@ -43,8 +43,6 @@
else
has_electronics = 3
opened = 1
- coverlocked = 1
- locked = 0
icon_state = "port0"
//20% easier to read than apc code
@@ -65,47 +63,19 @@
"\red [user.name] has removed the circuitboard from [src.name]!",\
"\blue You remove the circuitboard.")
has_electronics = 0
- new /obj/item/weapon/circuitboard/rust_fuel_port(loc)
+ new /obj/item/weapon/module/rust_fuel_port(loc)
has_electronics &= ~1
else
opened = 0
icon_state = "port0"
user << "\blue You close the maintenance cover."
- else if(!coverlocked)
+ else
if(cur_assembly)
user << "\red You cannot open the cover while there is a fuel assembly inside."
else
opened = 1
user << "\blue You open the maintenance cover."
icon_state = "port2"
- else
- user << "\red The cover is locked and cannot be opened."
- return
-
- else if (istype(W, /obj/item/weapon/card/id)||istype(W, /obj/item/device/pda)) // trying to unlock the interface with an ID card
- if(opened)
- user << "You must close the cover to swipe an ID card."
- else
- if(src.allowed(usr))
- locked = !locked
- user << "You [ locked ? "lock" : "unlock"] the port interface."
- update_icon()
- else
- user << "\red Access denied."
- return
-
- else if (istype(W, /obj/item/weapon/card/emag) && !emagged) // trying to unlock with an emag card
- if(opened)
- user << "You must close the cover to swipe an ID card."
- else
- flick("apc-spark", src)
- if (do_after(user,6))
- if(prob(50))
- emagged = 1
- locked = 0
- user << "You emag the port interface."
- else
- user << "You fail to [ locked ? "unlock" : "lock"] the port interface."
return
else if (istype(W, /obj/item/weapon/cable_coil) && opened && !(has_electronics & 2))
@@ -134,7 +104,7 @@
has_electronics &= ~2
return
- else if (istype(W, /obj/item/weapon/circuitboard/rust_fuel_port) && opened && !(has_electronics & 1))
+ else if (istype(W, /obj/item/weapon/module/rust_fuel_port) && opened && !(has_electronics & 1))
user << "You trying to insert the port control board into the frame..."
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 10))
diff --git a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm
index 1dd5a77c22d..273d2298f01 100644
--- a/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm
+++ b/code/WorkInProgress/Cael_Aislinn/Rust/fuel_compressor.dm
@@ -5,11 +5,10 @@ var/const/max_assembly_amount = 300
icon_state = "fuel_compressor0"
name = "Fuel Compressor"
var/list/new_assembly_quantities
- var/compressed_matter = 100
+ var/compressed_matter = 0
anchored = 1
var/opened = 1 //0=closed, 1=opened
- var/coverlocked = 0
var/locked = 0
var/has_electronics = 0 // 0 - none, bit 1 - circuitboard, bit 2 - wires
@@ -32,64 +31,83 @@ var/const/max_assembly_amount = 300
return*/
interact(user)
-/*/obj/machinery/rust_fuel_compressor/power_change()
- if(stat & BROKEN)
- icon_state = "broken"
+/obj/machinery/rust_fuel_compressor/attackby(obj/item/weapon/W as obj, mob/user as mob)
+ if (istype(W, /obj/item/weapon/rcd_ammo))
+ compressed_matter += 10
+ del(W)
+ return
+ ..()
+
+/obj/machinery/rust_fuel_compressor/interact(mob/user)
+ if ( (get_dist(src, user) > 1 ) || (stat & (BROKEN|NOPOWER)) )
+ if (!istype(user, /mob/living/silicon))
+ user.unset_machine()
+ user << browse(null, "window=fuelcomp")
+ return
+
+ var/t = "Reactor Fuel Rod Compressor / Assembler
"
+ t += "Close
"
+ if(locked)
+ t += "Swipe your ID to unlock this console."
else
- if( powered() )
- icon_state = initial(icon_state)
- stat &= ~NOPOWER
- else
- spawn(rand(0, 15))
- src.icon_state = "c_unpowered"
- stat |= NOPOWER*/
+ t += "Compressed matter in storage: [compressed_matter] \[Eject all\]"
+ t += "Activate Fuel Synthesis
(fuel assemblies require no more than [max_assembly_amount] rods).
"
+ t += "