The Epic Construction Update (#5976)

How to build machine blueprints!

Use steel sheets like normal, then rotate the frame how you like it using the directional arrow. From here use a Multitool to finalize it and then wire it up like you would before.
This commit is contained in:
Lady Fowl
2019-09-10 22:07:46 +03:00
committed by Erki
parent abd926b14a
commit d6ff38ef96
164 changed files with 2571 additions and 1055 deletions
+2 -2
View File
@@ -148,7 +148,7 @@
return
if(W.iswrench())
if(!anchored)
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 75, 1)
playsound(get_turf(src), W.usesound, 75, 1)
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the anchor bolts to the floor.", \
"You hear a ratchet")
@@ -157,7 +157,7 @@
check_shield_icons()
connect_to_network()
else if(!linked_shielding.len > 0)
playsound(get_turf(src), 'sound/items/Ratchet.ogg', 75, 1)
playsound(get_turf(src), W.usesound, 75, 1)
user.visible_message("[user.name] unsecures the [src.name].", \
"You remove the anchor bolts.", \
"You hear a ratchet")
+14 -14
View File
@@ -446,8 +446,8 @@
to_chat(user, "<span class='warning'>Disconnect wires first.</span>")
return
playsound(src.loc, 'sound/items/Crowbar.ogg', 50, 1)
to_chat(user, "You are trying to remove the power control board...") //lpeters - fixed grammar issues)
if(do_after(user, 50))
to_chat(user, "You are trying to remove the power control board...")
if(do_after(user, 50/W.toolspeed))
if (has_electronics==1)
has_electronics = 0
if ((stat & BROKEN))
@@ -513,12 +513,12 @@
if (has_electronics==1 && terminal)
has_electronics = 2
stat &= ~MAINT
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "You screw the circuit electronics into place.")
else if (has_electronics==2)
has_electronics = 1
stat |= MAINT
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "You unfasten the electronics.")
else /* has_electronics==0 */
to_chat(user, "<span class='warning'>There is nothing to secure.</span>")
@@ -559,7 +559,7 @@
user.visible_message("<span class='warning'>[user.name] adds cables to the APC frame.</span>", \
"You start adding cables to the APC frame...")
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 20))
if(do_after(user, 20/W.toolspeed))
if (C.amount >= 10 && !terminal && opened && has_electronics != 2)
var/obj/structure/cable/N = T.get_cable_node()
if (prob(50) && electrocute_mob(usr, N, N))
@@ -580,7 +580,7 @@
user.visible_message("<span class='warning'>[user.name] dismantles the power terminal from [src].</span>", \
"You begin to cut the cables...")
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 50))
if(do_after(user, 50/W.toolspeed))
if(terminal && opened && has_electronics!=2)
if (prob(50) && electrocute_mob(usr, terminal.powernet, terminal))
spark(src, 5, alldirs)
@@ -593,7 +593,7 @@
user.visible_message("<span class='warning'>[user.name] inserts the power control board into [src].</span>", \
"You start to insert the power control board into the frame...")
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 10))
if(do_after(user, 10/W.toolspeed))
if(has_electronics==0)
has_electronics = 1
to_chat(user, "<span class='notice'>You place the power control board inside the frame.</span>")
@@ -611,7 +611,7 @@
"You start welding the APC frame...", \
"You hear welding.")
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
if(do_after(user, 50))
if(do_after(user, 50/W.toolspeed))
if(!src || !WT.remove_fuel(3, user)) return
if (emagged || (stat & BROKEN) || opened==2)
new /obj/item/stack/material/steel(loc)
@@ -642,7 +642,7 @@
return
user.visible_message("<span class='warning'>[user.name] replaces the damaged APC frame with a new one.</span>",\
"You begin to replace the damaged APC frame...")
if(do_after(user, 50))
if(do_after(user, 50/W.toolspeed))
user.visible_message(\
"<span class='notice'>[user.name] has replaced the damaged APC frame with new one.</span>",\
"You replace the damaged APC frame with new one.")
@@ -658,16 +658,16 @@
else if (istype(W, /obj/item/device/debugger))
if(emagged || hacker || infected)
to_chat(user, "<span class='warning'>There is a software error with the device. Attempting to fix...</span>")
if(do_after(user, 10 SECONDS, act_target = src))
if(do_after(user, 10/W.toolspeed SECONDS, act_target = src))
to_chat(user, "<span class='notice'>Problem diagnosed, searching for solution...</span>")
if(do_after(user, 30 SECONDS, act_target = src))
if(do_after(user, 30/W.toolspeed SECONDS, act_target = src))
to_chat(user, "<span class='notice'>Solution found. Applying fixes...</span>")
if(do_after(user, 60 SECONDS, act_target = src))
if(do_after(user, 60/W.toolspeed SECONDS, act_target = src))
if(prob(15))
to_chat(user, "<span class='warning'>Error while applying fixes. Please try again.</span>")
return
to_chat(user, "<span class='notice'>Applied default software. Restarting APC...</span>")
if(do_after(user, 10 SECONDS, act_target = src))
if(do_after(user, 10/W.toolspeed SECONDS, act_target = src))
to_chat(user, "<span class='notice'>APC Reset. Fixes applied.</span>")
if(hacker)
hacker.hacked_apcs -= src
@@ -694,7 +694,7 @@
to_chat(user, "<span class='warning'>You need more welding fuel to complete this task.</span>")
return
playsound(src.loc, 'sound/items/Welder.ogg', 50, 1)
if(do_after(user, 10))
if(do_after(user, 10/W.toolspeed))
if(!src || !WT.remove_fuel(1, user)) return
if ((stat & BROKEN))
new /obj/item/stack/material/steel(loc)
+1 -1
View File
@@ -146,7 +146,7 @@
/obj/machinery/power/generator/attackby(obj/item/weapon/W as obj, mob/user as mob)
if(W.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
anchored = !anchored
user.visible_message("[user.name] [anchored ? "secures" : "unsecures"] the bolts holding [src.name] to the floor.", \
"You [anchored ? "secure" : "unsecure"] the bolts holding [src] to the floor.", \
+2 -2
View File
@@ -202,7 +202,7 @@
if(GRAV_NEEDS_SCREWDRIVER)
if(I.isscrewdriver())
to_chat(user, "<span class='notice'>You secure the screws of the framework.</span>")
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, I.usesound, 50, 1)
broken_state++
if(GRAV_NEEDS_WELDING)
if(I.iswelder())
@@ -224,7 +224,7 @@
if(GRAV_NEEDS_WRENCH)
if(I.iswrench())
to_chat(user, "<span class='notice'>You secure the plating to the framework.</span>")
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, I.usesound, 75, 1)
set_fix()
else
..()
+2 -2
View File
@@ -46,7 +46,7 @@
add_fingerprint(user)
if (W.iswrench())
if (src.stage == 1)
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
to_chat(usr, "You begin deconstructing [src].")
if (!do_after(usr, 30, act_target = src))
return
@@ -114,7 +114,7 @@
"You close [src]'s casing.",
"You hear something being screwed in."
)
playsound(src.loc, 'sound/items/Screwdriver.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
switch(fixture_type)
if("tube")
+1 -1
View File
@@ -341,7 +341,7 @@
// attempt to stick weapon into light socket
else if(status == LIGHT_EMPTY)
if(W.isscrewdriver()) //If it's a screwdriver open it.
playsound(src.loc, 'sound/items/Screwdriver.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
user.visible_message("[user.name] opens [src]'s casing.", \
"You open [src]'s casing.", "You hear a noise.")
var/obj/machinery/light_construct/newlight = null
+1 -1
View File
@@ -85,7 +85,7 @@
SSmachinery.powernet_update_queued = TRUE
else if(O.isscrewdriver())
open = !open
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, O.usesound, 50, 1)
if(open)
to_chat(user, "<span class='notice'>You open the access panel.</span>")
else
+1 -1
View File
@@ -290,7 +290,7 @@
else if(O.isscrewdriver())
open = !open
playsound(src.loc, 'sound/items/Screwdriver.ogg', 50, 1)
playsound(src.loc, O.usesound, 50, 1)
if(open)
to_chat(user, "<span class='notice'>You open the access panel.</span>")
else
+1 -1
View File
@@ -74,7 +74,7 @@ var/global/list/rad_collectors = list()
if(P)
to_chat(user, "<span class='notice'>Remove the phoron tank first.</span>")
return 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
src.anchored = !src.anchored
user.visible_message("[user.name] [anchored? "secures":"unsecures"] the [src.name].", \
"You [anchored? "secure":"undo"] the external bolts.", \
+4 -4
View File
@@ -158,14 +158,14 @@
switch(state)
if(0)
state = 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
user.visible_message("[user.name] secures [src] to the floor.", \
"You secure the external reinforcing bolts to the floor.", \
"You hear a ratchet")
src.anchored = 1
if(1)
state = 0
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
user.visible_message("[user.name] unsecures [src] reinforcing bolts from the floor.", \
"You undo the external reinforcing bolts.", \
"You hear a ratchet")
@@ -188,7 +188,7 @@
user.visible_message("[user.name] starts to weld [src] to the floor.", \
"You start to weld [src] to the floor.", \
"You hear welding")
if (do_after(user,20))
if (do_after(user,20/W.toolspeed))
if(!src || !WT.isOn()) return
state = 2
to_chat(user, "You weld [src] to the floor.")
@@ -201,7 +201,7 @@
user.visible_message("[user.name] starts to cut [src] free from the floor.", \
"You start to cut [src] free from the floor.", \
"You hear welding")
if (do_after(user,20))
if (do_after(user,20/W.toolspeed))
if(!src || !WT.isOn()) return
state = 1
to_chat(user, "You cut [src] free from the floor.")
@@ -97,14 +97,14 @@ field_generator power level display
switch(state)
if(0)
state = 1
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the external reinforcing bolts to the floor.", \
"You hear ratchet")
src.anchored = 1
if(1)
state = 0
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
user.visible_message("[user.name] unsecures [src.name] reinforcing bolts from the floor.", \
"You undo the external reinforcing bolts.", \
"You hear ratchet")
@@ -124,7 +124,7 @@ field_generator power level display
user.visible_message("[user.name] starts to weld the [src.name] to the floor.", \
"You start to weld the [src] to the floor.", \
"You hear welding")
if (do_after(user,20, act_target = src))
if (do_after(user,20/W.toolspeed, act_target = src))
if(!src || !WT.isOn()) return
state = 2
to_chat(user, "You weld the field generator to the floor.")
@@ -136,7 +136,7 @@ field_generator power level display
user.visible_message("[user.name] starts to cut the [src.name] free from the floor.", \
"You start to cut the [src] free from the floor.", \
"You hear welding")
if (do_after(user,20, act_target = src))
if (do_after(user,20/W.toolspeed, act_target = src))
if(!src || !WT.isOn()) return
state = 1
to_chat(user, "You cut the [src] free from the floor.")
+1 -1
View File
@@ -19,7 +19,7 @@
/obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user)
if(W.iswrench())
anchored = !anchored
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
if(anchored)
user.visible_message("[user.name] secures [src.name] to the floor.", \
"You secure the [src.name] to the floor.", \
@@ -202,14 +202,14 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
switch(src.construction_state)//TODO:Might be more interesting to have it need several parts rather than a single list of steps
if(0)
if(O.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, O.usesound, 75, 1)
src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the external bolts.")
temp_state++
if(1)
if(O.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, O.usesound, 75, 1)
src.anchored = 0
user.visible_message("[user.name] detaches the [src.name] from the floor.", \
"You remove the external bolts.")
@@ -341,14 +341,14 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
switch(src.construction_state)//TODO:Might be more interesting to have it need several parts rather than a single list of steps
if(0)
if(O.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, O.usesound, 75, 1)
src.anchored = 1
user.visible_message("[user.name] secures the [src.name] to the floor.", \
"You secure the external bolts.")
temp_state++
if(1)
if(O.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, O.usesound, 75, 1)
src.anchored = 0
user.visible_message("[user.name] detaches the [src.name] from the floor.", \
"You remove the external bolts.")
+1 -1
View File
@@ -336,7 +336,7 @@
else
to_chat(user, "<span class='notice'>You begin to cut the cables...</span>")
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
if(do_after(user, 50))
if(do_after(user, 50/W.toolspeed))
if (prob(50) && electrocute_mob(usr, terminal.powernet, terminal))
big_spark.queue()
building_terminal = 0
+3 -3
View File
@@ -62,7 +62,7 @@
if(W.iscrowbar())
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
user.visible_message("<span class='notice'>[user] begins to take the glass off the solar panel.</span>")
if(do_after(user, 50))
if(do_after(user, 50/W.toolspeed))
var/obj/item/solar_assembly/S = locate() in src
if(S)
S.forceMove(src.loc)
@@ -227,13 +227,13 @@
if(W.iswrench())
anchored = 1
user.visible_message("<span class='notice'>[user] wrenches the solar assembly into place.</span>")
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
return 1
else
if(W.iswrench())
anchored = 0
user.visible_message("<span class='notice'>[user] unwrenches the solar assembly from it's place.</span>")
playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)
playsound(src.loc, W.usesound, 75, 1)
return 1
if(istype(W, /obj/item/stack/material) && (W.get_material_name() == "glass" || W.get_material_name() == "rglass"))
+2 -2
View File
@@ -29,7 +29,7 @@
return
if(W.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "<span class='notice'>You [anchored ? "unfasten" : "fasten"] [src] to the flooring.</span>")
anchored = !anchored
if(!anchored)
@@ -75,7 +75,7 @@
return
if(W.iswrench())
playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1)
playsound(src.loc, W.usesound, 50, 1)
to_chat(user, "<span class='notice'>You [anchored ? "unfasten" : "fasten"] [src] to the flooring.</span>")
anchored = !anchored
return
+1 -1
View File
@@ -62,7 +62,7 @@
if(W.iscrowbar())
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
user.visible_message("<span class='notice'>[user] begins to take the glass off the solar tracker.</span>")
if(do_after(user, 50))
if(do_after(user, 50/W.toolspeed))
var/obj/item/solar_assembly/S = locate() in src
if(S)
S.forceMove(src.loc)