From e19ca2841dabca43e6f280a7f094b71f20ab308e Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Sat, 4 Apr 2015 12:03:26 +0300 Subject: [PATCH 01/12] Girder disassembly changes Current situation: Wrench to girder (unsecured) -> secure girder Wrench to girder (secured) -> disassemble girder Crowbar to girder (secured) -> unsecure girder This PR changes it to: Wrench to girder (unsecured) -> secure girder (same as before) Wrench to girder (secured) -> unsecure girder Welder to girder (unsecured) -> disassemble girder This is more consistent with nearly every other frame in the game, which have to be first unsecured with a wrench and then disassembled with a welder. --- code/game/objects/structures/girders.dm | 121 +++++++++++++----------- 1 file changed, 67 insertions(+), 54 deletions(-) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index e14abdc52d2..912a712977f 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -4,48 +4,55 @@ anchored = 1 density = 1 layer = 2 - var/state = 0 + var/state = 0 //state 0 = normal girder, state 1 = no idea, state 2 = reinforced girder, state 3 = displaced/dislodged girder var/girderpasschance = 20 // percentage chance that a projectile passes through the girder. /obj/structure/girder/attackby(obj/item/W as obj, mob/user as mob, params) add_fingerprint(user) - if(istype(W, /obj/item/weapon/wrench) && state == 0) - if(anchored && !istype(src,/obj/structure/girder/displaced)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << "Now disassembling the girder..." - if(do_after(user,40)) - if(!src.loc) - return - user << "You dissasembled the girder!" - new /obj/item/stack/sheet/metal(get_turf(src)) - qdel(src) - else if(!anchored) - if (!istype(src.loc, /turf/simulated/floor)) - usr << "A floor must be present to secure the girder!" - return - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << "Now securing the girder..." + if(istype(W, /obj/item/weapon/weldingtool) && state == 3) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user] disassembles the girder.", \ + "You start to disassemble the girder...", "You hear welding and clanking.") if(do_after(user, 40)) + if( !WT.isOn() ) + return if(!src.loc) return - user << "You secured the girder!" - var/obj/structure/girder/G = new (loc) - transfer_fingerprints_to(G) + user << "You disassemble the girder." + var/obj/item/stack/sheet/metal/M = new (loc, 2) + transfer_fingerprints_to(M) qdel(src) + else if(istype(W, /obj/item/weapon/wrench) && state == 3 && 4) + if (!istype(src.loc, /turf/simulated/floor)) + usr << "A floor must be present to secure the girder!" + return + playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + user << "You start securing the girder..." + var oldloc = src.loc + if(do_after(user, 40)) + if(src.loc!=oldloc) + return + user << "You secure the girder." + var/obj/structure/girder/G = new (loc) + transfer_fingerprints_to(G) + qdel(src) + else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) - user << "Now slicing apart the girder..." + user << "You start slicing apart the girder..." if(do_after(user,30)) if(!src.loc) return - user << "You slice apart the girder!" + user << "You slice apart the girder." new /obj/item/stack/sheet/metal(get_turf(src)) qdel(src) else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) var/obj/item/weapon/pickaxe/drill/jackhammer/D = W if(!D.bcell.use(D.drillcost)) - user << "Your [D.name] doesn't have enough power to break through the [name]." + user << "Your [D.name] doesn't have enough power to break through the [name]!" return D.update_icon() user << "You smash through the girder!" @@ -55,38 +62,38 @@ else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced)) playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) - user << "Now unsecuring support struts..." + user << "You start unsecuring support struts..." if(do_after(user,40)) if(!src.loc) return - user << "You unsecured the support struts!" + user << "You unsecure the support struts." state = 1 else if(istype(W, /obj/item/weapon/wirecutters) && istype(src,/obj/structure/girder/reinforced) && state == 1) playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) - user << "Now removing support struts..." + user << "You start removing support struts..." if(do_after(user,40)) if(!src.loc) return - user << "You removed the support struts!" + user << "You remove the support struts." var/obj/structure/girder/G = new (loc) transfer_fingerprints_to(G) qdel(src) - else if(istype(W, /obj/item/weapon/crowbar) && state == 0 && anchored ) - playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) - user << "Now dislodging the girder..." + else if(istype(W, /obj/item/weapon/wrench) && state == 0 && anchored ) + playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) + user << "Now unsecuring the girder..." if(do_after(user, 40)) if(!src.loc) return - user << "You dislodged the girder!" + user << "You unsecure the girder." var/obj/structure/girder/displaced/D = new (loc) transfer_fingerprints_to(D) qdel(src) else if(istype(W, /obj/item/stack/sheet)) if (!istype(src.loc, /turf/simulated/floor)) - usr << "The girder is too unstable to build anything!" + usr << "A floor must be present to build a false wall!" return var/obj/item/stack/sheet/S = W @@ -95,23 +102,23 @@ if(/obj/item/stack/sheet/metal, /obj/item/stack/sheet/metal/cyborg) if(!anchored) if (S.use(2)) - user << "You create a false wall! Push on it to open or close the passage." + user << "You create a false wall. Push on it to open or close the passage." var/obj/structure/falsewall/F = new (loc) transfer_fingerprints_to(F) qdel(src) else - user << "You need two sheets of metal to create a false wall." + user << "You need two sheets of metal to create a false wall!" return else if(S.get_amount() < 2) - user << "You need two sheets of metal to finish a wall." + user << "You need two sheets of metal to finish a wall!" return user << "Now adding plating..." if (do_after(user, 40)) if(loc == null || S.get_amount() < 2) return S.use(2) - user << "You added the plating!" + user << "You add the plating." var/turf/Tsrc = get_turf(src) Tsrc.ChangeTurf(/turf/simulated/wall) for(var/turf/simulated/wall/X in Tsrc.loc) @@ -123,22 +130,22 @@ if(/obj/item/stack/sheet/plasteel) if(!anchored) if(S.amount < 2) - user << "You need at least two sheets to create a false wall." + user << "You need at least two sheets to create a false wall!" return S.use(2) - user << "You create a false wall! Push on it to open or close the passage." + user << "You create a false wall. Push on it to open or close the passage." var/obj/structure/falsewall/reinforced/FW = new (loc) transfer_fingerprints_to(FW) qdel(src) else if (src.icon_state == "reinforced") //I cant believe someone would actually write this line of code... if(S.amount < 1) return ..() - user << "Now finalising reinforced wall..." + user << "You start finalizing the reinforced wall..." if(do_after(user, 50)) if(!src.loc || !S || S.amount < 1) return S.use(1) - user << "Wall fully reinforced!" + user << "You fully reinforce the wall." var/turf/Tsrc = get_turf(src) Tsrc.ChangeTurf(/turf/simulated/wall/r_wall) for(var/turf/simulated/wall/r_wall/X in Tsrc.loc) @@ -147,12 +154,12 @@ return else if(S.amount < 1) return ..() - user << "Now reinforcing girders..." + user << "You start reinforcing the girder..." if (do_after(user,60)) if(!src.loc || !S || S.amount < 1) return S.use(1) - user << "Girders reinforced!" + user << "You reinforce the girder." var/obj/structure/girder/reinforced/R = new (loc) transfer_fingerprints_to(R) qdel(src) @@ -236,6 +243,7 @@ name = "displaced girder" icon_state = "displaced" anchored = 0 + state = 3 girderpasschance = 25 /obj/structure/girder/reinforced @@ -271,24 +279,29 @@ layer = 2 /obj/structure/cultgirder/attackby(obj/item/W as obj, mob/user as mob, params) - if(istype(W, /obj/item/weapon/wrench)) - playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << "Now disassembling the girder..." - if(do_after(user,40)) - user << "You dissasembled the girder!" - var/obj/effect/decal/remains/human/R = new (get_turf(src)) - transfer_fingerprints_to(R) - qdel(src) + add_fingerprint(user) + if(istype(W, /obj/item/weapon/weldingtool)) + var/obj/item/weapon/weldingtool/WT = W + if(WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user] disassembles the girder.", \ + "You start to disassemble the girder...", "You hear welding and clanking.") + if(do_after(user, 40)) + if( !WT.isOn() ) + return + user << "You disassemble the girder." + var/obj/effect/decal/remains/human/R = new (get_turf(src)) + transfer_fingerprints_to(R) + qdel(src) else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) - user << "Now slicing apart the girder..." + user << "You start slicing apart the girder..." if(do_after(user,30)) - user << "You slice apart the girder!" + user << "You slice apart the girder." var/obj/effect/decal/remains/human/R = new (get_turf(src)) transfer_fingerprints_to(R) qdel(src) - else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) var/obj/item/weapon/pickaxe/drill/jackhammer/D = W if(!D.bcell.use(D.drillcost)) @@ -321,4 +334,4 @@ qdel(src) return else - return \ No newline at end of file + return From 82025d34a5f23f010601d7111dabe3dc458ea3ce Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Sat, 4 Apr 2015 21:11:37 +0300 Subject: [PATCH 02/12] changelog addition --- html/changelogs/kingofkosmos-girderrakennus.yml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 html/changelogs/kingofkosmos-girderrakennus.yml diff --git a/html/changelogs/kingofkosmos-girderrakennus.yml b/html/changelogs/kingofkosmos-girderrakennus.yml new file mode 100644 index 00000000000..ccbbd546eb9 --- /dev/null +++ b/html/changelogs/kingofkosmos-girderrakennus.yml @@ -0,0 +1,6 @@ +author: kingofkosmos + +delete-after: True + +changes: + - rscadd: "Girder disassembly method changed: only dislodged girders can be disassembled by using a welder." From 052635da72cbd75175619d59978a864dc9e0a58b Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Sat, 4 Apr 2015 21:42:40 +0300 Subject: [PATCH 03/12] Changed to only user's fingerprints get to the new metal after disassembly. --- code/game/objects/structures/girders.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 912a712977f..e0a927afa06 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -22,7 +22,7 @@ return user << "You disassemble the girder." var/obj/item/stack/sheet/metal/M = new (loc, 2) - transfer_fingerprints_to(M) + M.add_fingerprint(user) qdel(src) else if(istype(W, /obj/item/weapon/wrench) && state == 3 && 4) From 47fb65ca1f3566a4b9d3f2aad917bfff14f3b460 Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Sat, 4 Apr 2015 22:10:25 +0300 Subject: [PATCH 04/12] Removed the extra 4. Plasma cutting now produces 2 metals per girder. --- code/game/objects/structures/girders.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index e0a927afa06..cd2b487906e 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -25,7 +25,7 @@ M.add_fingerprint(user) qdel(src) - else if(istype(W, /obj/item/weapon/wrench) && state == 3 && 4) + else if(istype(W, /obj/item/weapon/wrench) && state == 3) if (!istype(src.loc, /turf/simulated/floor)) usr << "A floor must be present to secure the girder!" return @@ -46,7 +46,8 @@ if(!src.loc) return user << "You slice apart the girder." - new /obj/item/stack/sheet/metal(get_turf(src)) + var/obj/item/stack/sheet/metal/M = new (loc, 2) + M.add_fingerprint(user) qdel(src) else if(istype(W, /obj/item/weapon/pickaxe/drill/jackhammer)) From 540e525e259d4da60487a888e6cdf26167bbc1b1 Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Sun, 5 Apr 2015 14:00:02 +0300 Subject: [PATCH 05/12] MADE FALSE WALL CONSTRUCTION TAKE SOME TIME (but only half the time of normal construction steps since it's not airtight and such). Replaced numbered states with the GIRDER_stuff. Fixed some grammar stuff. Made reinforced girder deconstruction give the plasteel back when deconstructed. --- code/game/objects/structures/girders.dm | 45 +++++++++++++++++-------- 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index cd2b487906e..b0cf45e9380 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -1,31 +1,37 @@ +#define GIRDER_NORMAL 0 +#define GIRDER_REINF_STRUTS 1 +#define GIRDER_REINF 2 +#define GIRDER_DISPLACED 3 + /obj/structure/girder name = "girder" icon_state = "girder" anchored = 1 density = 1 layer = 2 - var/state = 0 //state 0 = normal girder, state 1 = no idea, state 2 = reinforced girder, state 3 = displaced/dislodged girder + var/state = GIRDER_NORMAL var/girderpasschance = 20 // percentage chance that a projectile passes through the girder. /obj/structure/girder/attackby(obj/item/W as obj, mob/user as mob, params) add_fingerprint(user) - if(istype(W, /obj/item/weapon/weldingtool) && state == 3) + if(istype(W, /obj/item/weapon/weldingtool) && state == GIRDER_DISPLACED) var/obj/item/weapon/weldingtool/WT = W if(WT.remove_fuel(0,user)) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) user.visible_message("[user] disassembles the girder.", \ "You start to disassemble the girder...", "You hear welding and clanking.") + var oldloc = src.loc if(do_after(user, 40)) if( !WT.isOn() ) return - if(!src.loc) + if(src.loc!=oldloc) return user << "You disassemble the girder." var/obj/item/stack/sheet/metal/M = new (loc, 2) M.add_fingerprint(user) qdel(src) - else if(istype(W, /obj/item/weapon/wrench) && state == 3) + else if(istype(W, /obj/item/weapon/wrench) && state == GIRDER_DISPLACED) if (!istype(src.loc, /turf/simulated/floor)) usr << "A floor must be present to secure the girder!" return @@ -61,29 +67,30 @@ D.playDigSound() qdel(src) - else if(istype(W, /obj/item/weapon/screwdriver) && state == 2 && istype(src,/obj/structure/girder/reinforced)) + else if(istype(W, /obj/item/weapon/screwdriver) && state == GIRDER_REINF) playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) user << "You start unsecuring support struts..." if(do_after(user,40)) if(!src.loc) return user << "You unsecure the support struts." - state = 1 + state = GIRDER_REINF_STRUTS - else if(istype(W, /obj/item/weapon/wirecutters) && istype(src,/obj/structure/girder/reinforced) && state == 1) + else if(istype(W, /obj/item/weapon/wirecutters) && state == GIRDER_REINF_STRUTS) playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) user << "You start removing support struts..." if(do_after(user,40)) if(!src.loc) return user << "You remove the support struts." + new /obj/item/stack/sheet/plasteel(get_turf(src)) var/obj/structure/girder/G = new (loc) transfer_fingerprints_to(G) qdel(src) - else if(istype(W, /obj/item/weapon/wrench) && state == 0 && anchored ) + else if(istype(W, /obj/item/weapon/wrench) && state == GIRDER_NORMAL && anchored ) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) - user << "Now unsecuring the girder..." + user << "You start unsecuring the girder..." if(do_after(user, 40)) if(!src.loc) return @@ -103,6 +110,11 @@ if(/obj/item/stack/sheet/metal, /obj/item/stack/sheet/metal/cyborg) if(!anchored) if (S.use(2)) + user << "You start building a false wall..." + var oldloc = src.loc + if(do_after(user, 20)) + if(src.loc!=oldloc) + return user << "You create a false wall. Push on it to open or close the passage." var/obj/structure/falsewall/F = new (loc) transfer_fingerprints_to(F) @@ -114,7 +126,7 @@ if(S.get_amount() < 2) user << "You need two sheets of metal to finish a wall!" return - user << "Now adding plating..." + user << "You start adding plating..." if (do_after(user, 40)) if(loc == null || S.get_amount() < 2) return @@ -134,7 +146,12 @@ user << "You need at least two sheets to create a false wall!" return S.use(2) - user << "You create a false wall. Push on it to open or close the passage." + user << "You start building a reinforced false wall..." + var oldloc = src.loc + if(do_after(user, 20)) + if(src.loc!=oldloc) + return + user << "You create a reinforced false wall. Push on it to open or close the passage." var/obj/structure/falsewall/reinforced/FW = new (loc) transfer_fingerprints_to(FW) qdel(src) @@ -180,7 +197,7 @@ qdel(src) else if(S.amount < 2) return ..() - user << "Now adding plating..." + user << "You start adding plating..." if (do_after(user,40)) if(!src.loc || !S || S.amount < 2) return @@ -244,13 +261,13 @@ name = "displaced girder" icon_state = "displaced" anchored = 0 - state = 3 + state = GIRDER_DISPLACED girderpasschance = 25 /obj/structure/girder/reinforced name = "reinforced girder" icon_state = "reinforced" - state = 2 + state = GIRDER_REINF girderpasschance = 0 /obj/structure/girder/reinforced/ex_act(severity, target) From 68e0f06278afbc406150af85eb35d3e019d9c762 Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Sun, 5 Apr 2015 17:56:41 +0300 Subject: [PATCH 06/12] "var oldloc"s -> "var/oldloc" Fixed the unsecured girder sliding below vents and scrubbers by placing it on layer 2.45. --- code/game/objects/structures/girders.dm | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index b0cf45e9380..d310b401e82 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -19,8 +19,8 @@ if(WT.remove_fuel(0,user)) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) user.visible_message("[user] disassembles the girder.", \ - "You start to disassemble the girder...", "You hear welding and clanking.") - var oldloc = src.loc + "You start to disassemble the girder...", "You hear welding and clanking.") + var/oldloc = src.loc if(do_after(user, 40)) if( !WT.isOn() ) return @@ -37,7 +37,7 @@ return playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) user << "You start securing the girder..." - var oldloc = src.loc + var/oldloc = src.loc if(do_after(user, 40)) if(src.loc!=oldloc) return @@ -111,7 +111,7 @@ if(!anchored) if (S.use(2)) user << "You start building a false wall..." - var oldloc = src.loc + var/oldloc = src.loc if(do_after(user, 20)) if(src.loc!=oldloc) return @@ -147,7 +147,7 @@ return S.use(2) user << "You start building a reinforced false wall..." - var oldloc = src.loc + var/oldloc = src.loc if(do_after(user, 20)) if(src.loc!=oldloc) return @@ -190,7 +190,7 @@ user << "You need at least two sheets to create a false wall." return S.use(2) - user << "You create a false wall! Push on it to open or close the passage." + user << "You create a false wall. Push on it to open or close the passage." var/F = text2path("/obj/structure/falsewall/[M]") var/obj/structure/FW = new F (loc) transfer_fingerprints_to(FW) @@ -202,7 +202,7 @@ if(!src.loc || !S || S.amount < 2) return S.use(2) - user << "You added the plating!" + user << "You add the plating." var/turf/Tsrc = get_turf(src) Tsrc.ChangeTurf(text2path("/turf/simulated/wall/mineral/[M]")) for(var/turf/simulated/wall/mineral/X in Tsrc.loc) @@ -217,7 +217,7 @@ if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds. user.drop_item() P.loc = src.loc - user << "You fit the pipe into \the [src]!" + user << "You fit the pipe into \the [src]." else ..() @@ -263,6 +263,7 @@ anchored = 0 state = GIRDER_DISPLACED girderpasschance = 25 + layer = 2.45 /obj/structure/girder/reinforced name = "reinforced girder" @@ -303,7 +304,7 @@ if(WT.remove_fuel(0,user)) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) user.visible_message("[user] disassembles the girder.", \ - "You start to disassemble the girder...", "You hear welding and clanking.") + "You start to disassemble the girder...", "You hear welding and clanking.") if(do_after(user, 40)) if( !WT.isOn() ) return From a3129ec0274c6eea5376fe4edfe3a4838b536c48 Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Wed, 8 Apr 2015 20:36:01 +0300 Subject: [PATCH 07/12] dsfagregg --- code/game/machinery/constructable_frame.dm | 48 ++++++++++++++++++---- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 5c823178fad..c820887d4f9 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/stock_parts.dmi' icon_state = "box_0" density = 1 - anchored = 1 + anchored = 0 use_power = 0 var/obj/item/weapon/circuitboard/circuit = null var/list/components = null @@ -59,27 +59,57 @@ return switch(state) if(1) + if(istype(P, /obj/item/weapon/circuitboard)) + user << "The frame needs wiring first!" + return if(istype(P, /obj/item/stack/cable_coil)) var/obj/item/stack/cable_coil/C = P if(C.get_amount() >= 5) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) - user << "You start to add cables to the frame." + user << "You start to add cables to the frame..." + var oldloc = src.loc if(do_after(user, 20)) + if(src.loc!=oldloc) + return if(C.get_amount() >= 5 && state == 1) C.use(5) user << "You add cables to the frame." state = 2 icon_state = "box_1" else - user << "You need five length of cable to wire the frame." + user << "You need five length of cable to wire the frame!" return - if(istype(P, /obj/item/weapon/wrench)) + if(istype(P, /obj/item/weapon/weldingtool) && !anchored) + var/obj/item/weapon/weldingtool/WT = P + if(WT.remove_fuel(0,user)) + playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) + user.visible_message("[user] disassembles the frame.", \ + "You start to disassemble the frame...", "You hear welding and clanking.") + var oldloc = src.loc + if(do_after(user, 40)) + if( !WT.isOn() ) + return + if(src.loc!=oldloc) + return + user << "You disassemble the frame." + var/obj/item/stack/sheet/metal/M = new (loc, 5) + M.add_fingerprint(user) + qdel(src) + if(istype(P, /obj/item/weapon/wrench) && state == 1 && state == 2) + user << "You start [anchored ? "un" : ""]securing [name]..." playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) - user << "You dismantle the frame." - new /obj/item/stack/sheet/metal(src.loc, 5) - qdel(src) + var oldloc = src.loc + if(do_after(user, 40)) + if(src.loc!=oldloc) + return + user << "You [anchored ? "un" : ""]secure [name]." + anchored = !anchored + if(2) if(istype(P, /obj/item/weapon/circuitboard)) + if(!anchored) + user << "The frame needs to be secured first!" + return var/obj/item/weapon/circuitboard/B = P if(B.board_type == "machine") playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) @@ -94,7 +124,7 @@ update_namelist() update_req_desc() else - user << "This frame does not accept circuit boards of this type!" + user << "This frame does not accept circuit boards of this type!" if(istype(P, /obj/item/weapon/wirecutters)) playsound(src.loc, 'sound/items/Wirecutter.ogg', 50, 1) user << "You remove the cables." @@ -381,7 +411,7 @@ to destroy them and players will be able to make replacements. /obj/item/weapon/stock_parts/manipulator = 1, /obj/item/weapon/stock_parts/console_screen = 1, /obj/item/weapon/stock_parts/cell = 1) - + /obj/item/weapon/circuitboard/chem_master name = "circuit board (Chem Master 2999)" build_path = /obj/machinery/chem_master/constructable From 9009ff3bccb0a38733d0e6bbbd23bf8e0cd0ab3c Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Thu, 9 Apr 2015 19:37:26 +0300 Subject: [PATCH 08/12] Added machine frame disassembly with welder and securing/unsecuring with wrench. --- code/game/machinery/constructable_frame.dm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index c820887d4f9..c691d7159e1 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -5,7 +5,7 @@ icon = 'icons/obj/stock_parts.dmi' icon_state = "box_0" density = 1 - anchored = 0 + anchored = 1 use_power = 0 var/obj/item/weapon/circuitboard/circuit = null var/list/components = null @@ -84,7 +84,7 @@ if(WT.remove_fuel(0,user)) playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) user.visible_message("[user] disassembles the frame.", \ - "You start to disassemble the frame...", "You hear welding and clanking.") + "You start to disassemble the frame...", "You hear welding and clanking.") var oldloc = src.loc if(do_after(user, 40)) if( !WT.isOn() ) @@ -95,7 +95,7 @@ var/obj/item/stack/sheet/metal/M = new (loc, 5) M.add_fingerprint(user) qdel(src) - if(istype(P, /obj/item/weapon/wrench) && state == 1 && state == 2) + if(istype(P, /obj/item/weapon/wrench)) user << "You start [anchored ? "un" : ""]securing [name]..." playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) var oldloc = src.loc @@ -106,6 +106,16 @@ anchored = !anchored if(2) + if(istype(P, /obj/item/weapon/wrench)) + user << "You start [anchored ? "un" : ""]securing [name]..." + playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) + var oldloc = src.loc + if(do_after(user, 40)) + if(src.loc!=oldloc) + return + user << "You [anchored ? "un" : ""]secure [name]." + anchored = !anchored + if(istype(P, /obj/item/weapon/circuitboard)) if(!anchored) user << "The frame needs to be secured first!" From 845f693458d4c8a234185eb23f3f6db7e45ed14c Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Sat, 11 Apr 2015 10:16:04 +0300 Subject: [PATCH 09/12] Update kingofkosmos-girderrakennus.yml Added a mention about machine frames to the changelog. --- html/changelogs/kingofkosmos-girderrakennus.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/changelogs/kingofkosmos-girderrakennus.yml b/html/changelogs/kingofkosmos-girderrakennus.yml index ccbbd546eb9..3634d975887 100644 --- a/html/changelogs/kingofkosmos-girderrakennus.yml +++ b/html/changelogs/kingofkosmos-girderrakennus.yml @@ -3,4 +3,4 @@ author: kingofkosmos delete-after: True changes: - - rscadd: "Girder disassembly method changed: only dislodged girders can be disassembled by using a welder." + - wip: "Girder and machine frame construction protocols has been changed. They can now be secured/unsecured with a wrench and disassembled with a welder." From 6ba41ca7a79b1b39c8efafa3f7b559ef215b67cf Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Tue, 14 Apr 2015 19:45:08 +0300 Subject: [PATCH 10/12] Do_afters now use "target = src", removed oldloc-stuff. False wall construction had a bug if you had exactly 2 sheets in your hand, it wouldn't work - fixed it. --- code/game/machinery/constructable_frame.dm | 20 ++----- code/game/objects/structures/girders.dm | 66 ++++++++-------------- 2 files changed, 29 insertions(+), 57 deletions(-) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index c691d7159e1..eba44acf399 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -67,10 +67,7 @@ if(C.get_amount() >= 5) playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1) user << "You start to add cables to the frame..." - var oldloc = src.loc - if(do_after(user, 20)) - if(src.loc!=oldloc) - return + if(do_after(user, 20, target = src)) if(C.get_amount() >= 5 && state == 1) C.use(5) user << "You add cables to the frame." @@ -85,12 +82,9 @@ playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) user.visible_message("[user] disassembles the frame.", \ "You start to disassemble the frame...", "You hear welding and clanking.") - var oldloc = src.loc - if(do_after(user, 40)) + if(do_after(user, 40, target = src)) if( !WT.isOn() ) return - if(src.loc!=oldloc) - return user << "You disassemble the frame." var/obj/item/stack/sheet/metal/M = new (loc, 5) M.add_fingerprint(user) @@ -98,10 +92,7 @@ if(istype(P, /obj/item/weapon/wrench)) user << "You start [anchored ? "un" : ""]securing [name]..." playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) - var oldloc = src.loc - if(do_after(user, 40)) - if(src.loc!=oldloc) - return + if(do_after(user, 40, target = src)) user << "You [anchored ? "un" : ""]secure [name]." anchored = !anchored @@ -109,10 +100,7 @@ if(istype(P, /obj/item/weapon/wrench)) user << "You start [anchored ? "un" : ""]securing [name]..." playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) - var oldloc = src.loc - if(do_after(user, 40)) - if(src.loc!=oldloc) - return + if(do_after(user, 40, target = src)) user << "You [anchored ? "un" : ""]secure [name]." anchored = !anchored diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index d310b401e82..49aa0a97127 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -20,12 +20,9 @@ playsound(src.loc, 'sound/items/Welder2.ogg', 50, 1) user.visible_message("[user] disassembles the girder.", \ "You start to disassemble the girder...", "You hear welding and clanking.") - var/oldloc = src.loc - if(do_after(user, 40)) + if(do_after(user, 40, target = src)) if( !WT.isOn() ) return - if(src.loc!=oldloc) - return user << "You disassemble the girder." var/obj/item/stack/sheet/metal/M = new (loc, 2) M.add_fingerprint(user) @@ -37,10 +34,7 @@ return playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) user << "You start securing the girder..." - var/oldloc = src.loc - if(do_after(user, 40)) - if(src.loc!=oldloc) - return + if(do_after(user, 40, target = src)) user << "You secure the girder." var/obj/structure/girder/G = new (loc) transfer_fingerprints_to(G) @@ -48,9 +42,7 @@ else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) user << "You start slicing apart the girder..." - if(do_after(user,30)) - if(!src.loc) - return + if(do_after(user, 30, target = src)) user << "You slice apart the girder." var/obj/item/stack/sheet/metal/M = new (loc, 2) M.add_fingerprint(user) @@ -70,18 +62,14 @@ else if(istype(W, /obj/item/weapon/screwdriver) && state == GIRDER_REINF) playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) user << "You start unsecuring support struts..." - if(do_after(user,40)) - if(!src.loc) - return + if(do_after(user, 40, target = src)) user << "You unsecure the support struts." state = GIRDER_REINF_STRUTS else if(istype(W, /obj/item/weapon/wirecutters) && state == GIRDER_REINF_STRUTS) playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) user << "You start removing support struts..." - if(do_after(user,40)) - if(!src.loc) - return + if(do_after(user, 40, target = src)) user << "You remove the support struts." new /obj/item/stack/sheet/plasteel(get_turf(src)) var/obj/structure/girder/G = new (loc) @@ -91,9 +79,7 @@ else if(istype(W, /obj/item/weapon/wrench) && state == GIRDER_NORMAL && anchored ) playsound(src.loc, 'sound/items/Ratchet.ogg', 100, 1) user << "You start unsecuring the girder..." - if(do_after(user, 40)) - if(!src.loc) - return + if(do_after(user, 40, target = src)) user << "You unsecure the girder." var/obj/structure/girder/displaced/D = new (loc) transfer_fingerprints_to(D) @@ -109,19 +95,18 @@ if(/obj/item/stack/sheet/metal, /obj/item/stack/sheet/metal/cyborg) if(!anchored) - if (S.use(2)) - user << "You start building a false wall..." - var/oldloc = src.loc - if(do_after(user, 20)) - if(src.loc!=oldloc) - return + if(S.get_amount() < 2) + user << "You need two sheets of metal to create a false wall!" + return + user << "You start building a false wall..." + if(do_after(user, 20, target = src)) + if(!src.loc || !S || S.amount < 2) + return + S.use(2) user << "You create a false wall. Push on it to open or close the passage." var/obj/structure/falsewall/F = new (loc) transfer_fingerprints_to(F) qdel(src) - else - user << "You need two sheets of metal to create a false wall!" - return else if(S.get_amount() < 2) user << "You need two sheets of metal to finish a wall!" @@ -145,16 +130,15 @@ if(S.amount < 2) user << "You need at least two sheets to create a false wall!" return - S.use(2) user << "You start building a reinforced false wall..." - var/oldloc = src.loc - if(do_after(user, 20)) - if(src.loc!=oldloc) + if(do_after(user, 20, target = src)) + if(!src.loc || !S || S.amount < 2) return - user << "You create a reinforced false wall. Push on it to open or close the passage." - var/obj/structure/falsewall/reinforced/FW = new (loc) - transfer_fingerprints_to(FW) - qdel(src) + S.use(2) + user << "You create a reinforced false wall. Push on it to open or close the passage." + var/obj/structure/falsewall/reinforced/FW = new (loc) + transfer_fingerprints_to(FW) + qdel(src) else if (src.icon_state == "reinforced") //I cant believe someone would actually write this line of code... if(S.amount < 1) return ..() @@ -173,7 +157,7 @@ else if(S.amount < 1) return ..() user << "You start reinforcing the girder..." - if (do_after(user,60)) + if (do_after(user, 60)) if(!src.loc || !S || S.amount < 1) return S.use(1) @@ -187,7 +171,7 @@ var/M = S.sheettype if(!anchored) if(S.amount < 2) - user << "You need at least two sheets to create a false wall." + user << "You need at least two sheets to create a false wall!" return S.use(2) user << "You create a false wall. Push on it to open or close the passage." @@ -198,7 +182,7 @@ else if(S.amount < 2) return ..() user << "You start adding plating..." - if (do_after(user,40)) + if (do_after(user, 40)) if(!src.loc || !S || S.amount < 2) return S.use(2) @@ -315,7 +299,7 @@ else if(istype(W, /obj/item/weapon/gun/energy/plasmacutter)) user << "You start slicing apart the girder..." - if(do_after(user,30)) + if(do_after(user, 30)) user << "You slice apart the girder." var/obj/effect/decal/remains/human/R = new (get_turf(src)) transfer_fingerprints_to(R) From d315681120a49b6c3c23677d91cc56d2bd8d93cd Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Wed, 15 Apr 2015 19:56:56 +0300 Subject: [PATCH 11/12] if(state == 1) added to few places. --- code/game/machinery/constructable_frame.dm | 5 +++-- code/game/objects/structures/girders.dm | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index eba44acf399..65b230718ae 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -93,8 +93,9 @@ user << "You start [anchored ? "un" : ""]securing [name]..." playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1) if(do_after(user, 40, target = src)) - user << "You [anchored ? "un" : ""]secure [name]." - anchored = !anchored + if(state == 1) + user << "You [anchored ? "un" : ""]secure [name]." + anchored = !anchored if(2) if(istype(P, /obj/item/weapon/wrench)) diff --git a/code/game/objects/structures/girders.dm b/code/game/objects/structures/girders.dm index 49aa0a97127..c4ebdb69737 100644 --- a/code/game/objects/structures/girders.dm +++ b/code/game/objects/structures/girders.dm @@ -23,10 +23,11 @@ if(do_after(user, 40, target = src)) if( !WT.isOn() ) return - user << "You disassemble the girder." - var/obj/item/stack/sheet/metal/M = new (loc, 2) - M.add_fingerprint(user) - qdel(src) + if(state == 1) + user << "You disassemble the girder." + var/obj/item/stack/sheet/metal/M = new (loc, 2) + M.add_fingerprint(user) + qdel(src) else if(istype(W, /obj/item/weapon/wrench) && state == GIRDER_DISPLACED) if (!istype(src.loc, /turf/simulated/floor)) From ccdb41e6bfd3b68b1de66298b8a9de0bc7b323fa Mon Sep 17 00:00:00 2001 From: kingofkosmos Date: Sat, 18 Apr 2015 09:07:47 +0300 Subject: [PATCH 12/12] state check to disassembling the machine frame --- code/game/machinery/constructable_frame.dm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/constructable_frame.dm b/code/game/machinery/constructable_frame.dm index 65b230718ae..781cc48cf99 100644 --- a/code/game/machinery/constructable_frame.dm +++ b/code/game/machinery/constructable_frame.dm @@ -85,10 +85,11 @@ if(do_after(user, 40, target = src)) if( !WT.isOn() ) return - user << "You disassemble the frame." - var/obj/item/stack/sheet/metal/M = new (loc, 5) - M.add_fingerprint(user) - qdel(src) + if(state == 1) + user << "You disassemble the frame." + var/obj/item/stack/sheet/metal/M = new (loc, 5) + M.add_fingerprint(user) + qdel(src) if(istype(P, /obj/item/weapon/wrench)) user << "You start [anchored ? "un" : ""]securing [name]..." playsound(src.loc, 'sound/items/Ratchet.ogg', 75, 1)