Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spatial Interdictor QoL and efficiency improvement pass #11513

Merged
merged 2 commits into from Nov 7, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
14 changes: 7 additions & 7 deletions code/datums/manufacturing.dm
Expand Up @@ -3015,19 +3015,19 @@ ABSTRACT_TYPE(/datum/manufacture/pod/weapon)

/************ INTERDICTOR STUFF ************/

/datum/manufacture/interdictor_frame
name = "Interdictor Frame Kit"
item_paths = list("MET-2")
item_amounts = list(10)
item_outputs = list(/obj/item/interdictor_frame_kit)
/datum/manufacture/interdictor_kit
name = "Interdictor Assembly Kit"
item_paths = list("MET-2","CON-1")
item_amounts = list(10,4)
item_outputs = list(/obj/item/interdictor_kit)
time = 15 SECONDS
create = 1
category = "Machinery"

/datum/manufacture/interdictor_rod_lambda
name = "Lambda Phase-Control Rod"
item_paths = list("MET-2","CON-1","CRY-1","INS-1")
item_amounts = list(10,20,10,5)
item_amounts = list(2,10,5,2)
item_outputs = list(/obj/item/interdictor_rod)
time = 20 SECONDS
create = 1
Expand All @@ -3036,7 +3036,7 @@ ABSTRACT_TYPE(/datum/manufacture/pod/weapon)
/datum/manufacture/interdictor_rod_sigma
name = "Sigma Phase-Control Rod"
item_paths = list("MET-2","CON-2","INS-1","POW-1")
item_amounts = list(10,25,10,5)
item_amounts = list(2,10,5,2)
item_outputs = list(/obj/item/interdictor_rod/sigma)
time = 20 SECONDS
create = 1
Expand Down
2 changes: 1 addition & 1 deletion code/obj/item/manudrive.dm
Expand Up @@ -52,7 +52,7 @@
name = "Engineering Manudrive: Spatial Interdictor Assembly Blueprint"
desc = "A drive for data storage that can be inserted and removed from manufacturers to temporarily add recipes to a manufacturer. This drive carries a blueprint that permits the user to manufacture spatial interdictor rods and frames."
icon_state = "datadisk2"
temp_recipe_string = list(/datum/manufacture/interdictor_frame,
temp_recipe_string = list(/datum/manufacture/interdictor_kit,
/datum/manufacture/interdictor_rod_lambda,
/datum/manufacture/interdictor_rod_sigma)

Expand Down
39 changes: 20 additions & 19 deletions code/obj/machinery/interdictor.dm
Expand Up @@ -249,9 +249,8 @@
//assembly zone

//interdictor rod: the doohickey that lets the interdictor do its thing
//the blueprint to create this should be in engineering along with guide, frame blueprint and mainboards
//these are the primary factor for scarcity as they require several materials to manufacture
//blueprint paths: /obj/item/paper/manufacturer_blueprint/interdictor_rod_lambda & /obj/item/paper/manufacturer_blueprint/interdictor_rod_sigma
//these are a primary factor for scarcity as they require several materials to manufacture, alongside the power cells
//can be manufactured by installing /obj/item/disk/data/floppy/manudrive/interdictor_parts

/obj/item/interdictor_rod
name = "Lambda phase-control rod"
Expand All @@ -276,9 +275,7 @@
interdist = 7

//interdictor board: power management circuitry and whatnot
//engineering should start with about three of these,
//adjacent to the rod/frame blueprint and the interdictor assembly and use guide.
//mechanics can scan to reproduce
//included in the assembly kit alongside frame

/obj/item/interdictor_board
name = "spatial interdictor mainboard"
Expand All @@ -292,12 +289,11 @@
w_class = W_CLASS_TINY
flags = FPRINT | TABLEPASS | CONDUCT

//interdictor frame: main framework for assembling the interdictor (lo and behold)
//the blueprint to create this should be in engineering along with guide, rod blueprint and mainboards
//blueprint path is /obj/item/paper/manufacturer_blueprint/interdictor_frame
//interdictor assembly kit: supplies the core components for assembling the interdictor (lo and behold)
//can be manufactured by installing /obj/item/disk/data/floppy/manudrive/interdictor_parts

/obj/item/interdictor_frame_kit
name = "spatial interdictor frame kit"
/obj/item/interdictor_kit
name = "spatial interdictor assembly kit"
desc = "You can hear an awful lot of junk rattling around in this box."
icon = 'icons/obj/machines/interdictor.dmi'
icon_state = "interdict-kit"
Expand All @@ -320,11 +316,16 @@

if (canbuild)
boutput(user, "<span class='notice'>You empty the box of parts onto the floor.</span>")
var/obj/O = new /obj/interdictor_frame( get_turf(user) )
O.fingerprints = src.fingerprints
O.fingerprints_full = src.fingerprints_full
var/obj/frame = new /obj/interdictor_frame( get_turf(user) )
frame.fingerprints = src.fingerprints
frame.fingerprints_full = src.fingerprints_full
var/obj/board = new /obj/item/interdictor_board( get_turf(user) )
board.fingerprints = src.fingerprints
board.fingerprints_full = src.fingerprints_full
qdel(src)

//unconstructed interdictor, where the assembly procedure happens

/obj/interdictor_frame
name = "spatial interdictor frame"
desc = "An unassembled frame for a spatial interdictor. Several bolts are sticking out."
Expand Down Expand Up @@ -352,17 +353,17 @@
switch(state)
if(0)
if (iswrenchingtool(I))
actions.start(new /datum/action/bar/icon/interdictor_assembly(src, I, 4 SECONDS), user)
actions.start(new /datum/action/bar/icon/interdictor_assembly(src, I, 2 SECONDS), user)
else
..()
if(1)
if (istype(I, /obj/item/interdictor_board))
actions.start(new /datum/action/bar/icon/interdictor_assembly(src, I, 2 SECONDS), user)
actions.start(new /datum/action/bar/icon/interdictor_assembly(src, I, 1 SECOND), user)
else
..()
if(2)
if (istype(I, /obj/item/interdictor_rod))
actions.start(new /datum/action/bar/icon/interdictor_assembly(src, I, 2 SECONDS), user)
actions.start(new /datum/action/bar/icon/interdictor_assembly(src, I, 1 SECOND), user)
else
..()
if(3)
Expand All @@ -385,12 +386,12 @@
if (I.amount < 4)
boutput(user, "<span style=\"color:red\">You don't have enough cable to connect the components (4 required).</span>")
else
actions.start(new /datum/action/bar/icon/interdictor_assembly(src, I, 4 SECONDS), user)
actions.start(new /datum/action/bar/icon/interdictor_assembly(src, I, 1 SECOND), user)
else
..()
if(5)
if (istype(I, /obj/item/electronics/soldering))
actions.start(new /datum/action/bar/icon/interdictor_assembly(src, I, 2 SECONDS), user)
actions.start(new /datum/action/bar/icon/interdictor_assembly(src, I, 1 SECOND), user)
else
..()
if(6)
Expand Down
6 changes: 3 additions & 3 deletions code/obj/machinery/manufacturer.dm
Expand Up @@ -2644,11 +2644,11 @@
icon_state = "blueprint"
blueprint = /datum/manufacture/alastor

/obj/item/paper/manufacturer_blueprint/interdictor_frame
name = "Interdictor Frame Kit"
/obj/item/paper/manufacturer_blueprint/interdictor_kit
name = "Interdictor Assembly Kit"
icon = 'icons/obj/writing.dmi'
icon_state = "interdictor_blueprint"
blueprint = /datum/manufacture/interdictor_frame
blueprint = /datum/manufacture/interdictor_kit

/obj/item/paper/manufacturer_blueprint/interdictor_rod_lambda
name = "Lambda Phase-Control Rod"
Expand Down
10 changes: 5 additions & 5 deletions code/obj/storage/secure_crates.dm
Expand Up @@ -130,8 +130,8 @@
spawn_contents = list(/obj/item/pipebomb/bomb/engineering = 6)

interdictor
name = "interdictor assembly kit"
desc = "Contains mainboards, a manudrive and a usage guide for spatial interdictors."
name = "interdictor fabrication crate"
desc = "Contains a drive with spatial interdictor manufacture data, power cells, and a usage guide for spatial interdictors."
req_access = list(access_engineering)

make_my_stuff()
Expand All @@ -140,14 +140,14 @@
B1.pixel_x = 8
B1.pixel_y = 3

var/obj/item/interdictor_board/B2 = new(src)
var/obj/item/cell/supercell/B2 = new(src)
B2.pixel_x = -6
B2.pixel_y = -3

var/obj/item/interdictor_board/B3 = new(src)
var/obj/item/cell/supercell/B3 = new(src)
B3.pixel_x = -6

var/obj/item/interdictor_board/B4 = new(src)
var/obj/item/cell/supercell/B4 = new(src)
B4.pixel_x = -6
B4.pixel_y = 3

Expand Down
6 changes: 2 additions & 4 deletions strings/books/interdictor_guide.txt
Expand Up @@ -39,7 +39,7 @@
<hr>
<h3>ASSEMBLING THE DEVICE</h3>
<br>
(I) Assemble the frame kit and phase-control rod at any manufacturer using the blueprints included with your Spatial Interdictor Starter Kit. Materials not provided.
(I) Fabricate the assembly kit and phase-control rod at any manufacturer using the drive included with your interdictor crate. Materials not provided.
<br>
Phase control rods may be manufactured in Lambda or Sigma configurations. Lambda rods cover a three-unit radius, while the advanced but more materially complex Sigma rods cover a seven-unit radius.
<br>
Expand All @@ -48,9 +48,7 @@
<br>
(II) Gather the following equipment before assembly:
<br>
- Interdictor frame kit
<br>
- Interdictor mainboard
- Interdictor assembly kit, containing frame and mainboard
<br>
- Interdictor phase-control rod
<br>
Expand Down