From 91e1e848f79647070be2e7df1493b34899b4f27f Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 02:34:15 +0300 Subject: [PATCH 1/8] Bugfixes for windoor construction. --- baystation12.dme | 1 - .../objects/structures/windoor_assembly.dm | 38 +++++++++---------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/baystation12.dme b/baystation12.dme index f002ef969d2..5fb16810581 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -60,7 +60,6 @@ // END_PREFERENCES // BEGIN_INCLUDE #include "code\global.dm" -#include "code\hub.dm" #include "code\names.dm" #include "code\setup.dm" #include "code\stylesheet.dm" diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index 532819d0201..f199d9edd90 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -107,17 +107,17 @@ obj/structure/windoor_assembly/Del() src.name = "Windoor Assembly" //Adding plasteel makes the assembly a secure windoor assembly. Step 2 (optional) complete. - else if(istype(W, /obj/item/stack/sheet/plasteel) && !secure) - var/obj/item/stack/sheet/plasteel/P = W - if(P.amount < 2) - user << "\red You need more plasteel to do this." + else if(istype(W, /obj/item/stack/rods) && !secure) + var/obj/item/stack/rods/R = W + if(R.amount < 4) + user << "\red You need more rods to do this." return - user << "\blue You start to reinforce the windoor with plasteel." + user << "\blue You start to reinforce the windoor with rods." if(do_after(user,40)) if(!src) return - P.use(2) + R.use(4) user << "\blue You reinforce the windoor." src.secure = "secure_" if(src.anchored) @@ -145,7 +145,7 @@ obj/structure/windoor_assembly/Del() if("02") //Removing wire from the assembly. Step 5 undone. - if(istype(W, /obj/item/weapon/wirecutters)) + if(istype(W, /obj/item/weapon/wirecutters) && !src.electronics) playsound(src.loc, 'sound/items/Wirecutter.ogg', 100, 1) user.visible_message("[user] cuts the wires from the airlock assembly.", "You start to cut the wires from airlock assembly.") @@ -156,12 +156,12 @@ obj/structure/windoor_assembly/Del() new/obj/item/weapon/cable_coil(get_turf(user), 1) src.state = "01" if(src.secure) - src.name = "Secure Wired Windoor Assembly" + src.name = "Secure Anchored Windoor Assembly" else - src.name = "Wired Windoor Assembly" + src.name = "Anchored Windoor Assembly" //Adding airlock electronics for access. Step 6 complete. - else if(istype(W, /obj/item/weapon/airlock_electronics)) + else if(istype(W, /obj/item/weapon/airlock_electronics) && W:icon_state != "door_electronics_smoked") playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) user.visible_message("[user] installs the electronics into the airlock assembly.", "You start to install electronics into the airlock assembly.") @@ -177,22 +177,20 @@ obj/structure/windoor_assembly/Del() W.loc = src.loc //Screwdriver to remove airlock electronics. Step 6 undone. - else if(istype(W, /obj/item/weapon/screwdriver)) + else if(istype(W, /obj/item/weapon/screwdriver) && src.electronics) playsound(src.loc, 'sound/items/Screwdriver.ogg', 100, 1) user.visible_message("[user] removes the electronics from the airlock assembly.", "You start to uninstall electronics from the airlock assembly.") if(do_after(user, 40)) - if(!src) return + if(!src || !src.electronics) return user << "\blue You've removed the airlock electronics!" - src.name = "Wired Windoor Assembly" - var/obj/item/weapon/airlock_electronics/ae - if (!electronics) - ae = new/obj/item/weapon/airlock_electronics( src.loc ) + if(src.secure) + src.name = "Secure Wired Windoor Assembly" else - ae = electronics - electronics = null - ae.loc = src.loc - + src.name = "Wired Windoor Assembly" + var/obj/item/weapon/airlock_electronics/ae = electronics + electronics = null + ae.loc = src.loc //Crowbar to complete the assembly, Step 7 complete. else if(istype(W, /obj/item/weapon/crowbar)) From 79d2d578598d776073abae6fb2bc1768d9c04e27 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 02:38:40 +0300 Subject: [PATCH 2/8] Code cleanup. --- code/game/machinery/doors/windowdoor.dm | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 45ff776d401..38afc122be8 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -162,15 +162,9 @@ if(istype(user, /mob/living/carbon/alien/humanoid) || istype(user, /mob/living/carbon/slime/adult)) if(src.operating) return - src.health = max(0, src.health - 25) playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) visible_message("\red [user] smashes against the [src.name].", 1) - if (src.health <= 0) - new /obj/item/weapon/shard(src.loc) - var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc) - CC.amount = 2 - src.density = 0 - del(src) + take_damage(25) else return src.attack_hand(user) @@ -202,16 +196,10 @@ //If it's a weapon, smash windoor. Unless it's an id card, agent card, ect.. then ignore it (Cards really shouldnt damage a door anyway) if(src.density && istype(I, /obj/item/weapon) && !istype(I, /obj/item/weapon/card)) var/aforce = I.force - if(I.damtype == BRUTE || I.damtype == BURN) - src.health = max(0, src.health - aforce) playsound(src.loc, 'sound/effects/Glasshit.ogg', 75, 1) visible_message("\red [src] was hit by [I].") - if (src.health <= 0) - new /obj/item/weapon/shard(src.loc) - var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc) - CC.amount = 2 - src.density = 0 - del(src) + if(I.damtype == BRUTE || I.damtype == BURN) + take_damage(aforce) return From dcf984577aa4e3cb7a6a3a4eacd8948bb4ea5738 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 02:47:24 +0300 Subject: [PATCH 3/8] Adding construction of req_one_access doors. --- code/game/machinery/doors/airlock.dm | 6 +++++- code/game/machinery/doors/airlock_electronics.dm | 8 ++++++++ code/game/objects/structures/door_assembly.dm | 6 +++++- code/game/objects/structures/windoor_assembly.dm | 12 ++++++++++-- 4 files changed, 28 insertions(+), 4 deletions(-) diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm index e8d4078593e..045257fc71d 100644 --- a/code/game/machinery/doors/airlock.dm +++ b/code/game/machinery/doors/airlock.dm @@ -1238,7 +1238,11 @@ About the new airlock wires panel: var/obj/item/weapon/airlock_electronics/ae if(!electronics) ae = new/obj/item/weapon/airlock_electronics( src.loc ) - ae.conf_access = src.req_access + if(src.req_access.len) + ae.conf_access = src.req_access + else if (src.req_one_access.len) + ae.conf_access = src.req_one_access + ae.one_access = 1 else ae = electronics electronics = null diff --git a/code/game/machinery/doors/airlock_electronics.dm b/code/game/machinery/doors/airlock_electronics.dm index 2310e85c07c..ddedf045e7e 100644 --- a/code/game/machinery/doors/airlock_electronics.dm +++ b/code/game/machinery/doors/airlock_electronics.dm @@ -11,6 +11,7 @@ req_access = list(access_engine) var/list/conf_access = null + var/one_access = 0 //if set to 1, door would receive req_one_access instead of req_access var/last_configurator = null var/locked = 1 @@ -33,6 +34,8 @@ else t1 += "Block
" + t1 += "Access requirement is set to " + t1 += one_access ? "ONE
" : "ALL
" t1 += conf_access == null ? "All
" : "All
" @@ -44,6 +47,8 @@ if (!conf_access || !conf_access.len || !(acc in conf_access)) t1 += "[aname]
" + else if(one_access) + t1 += "[aname]
" else t1 += "[aname]
" @@ -75,6 +80,9 @@ if (href_list["logout"]) locked = 1 + if (href_list["one_access"]) + one_access = !one_access + if (href_list["access"]) toggle_access(href_list["access"]) diff --git a/code/game/objects/structures/door_assembly.dm b/code/game/objects/structures/door_assembly.dm index 7ece9970d55..9930d8d84fb 100644 --- a/code/game/objects/structures/door_assembly.dm +++ b/code/game/objects/structures/door_assembly.dm @@ -421,7 +421,11 @@ obj/structure/door_assembly door = new src.airlock_type( src.loc ) //door.req_access = src.req_access door.electronics = src.electronics - door.req_access = src.electronics.conf_access + if(src.electronics.one_access) + door.req_access = null + door.req_one_access = src.electronics.conf_access + else + door.req_access = src.electronics.conf_access if(created_name) door.name = created_name src.electronics.loc = door diff --git a/code/game/objects/structures/windoor_assembly.dm b/code/game/objects/structures/windoor_assembly.dm index f199d9edd90..478f6989baa 100644 --- a/code/game/objects/structures/windoor_assembly.dm +++ b/code/game/objects/structures/windoor_assembly.dm @@ -219,7 +219,11 @@ obj/structure/windoor_assembly/Del() windoor.dir = src.dir windoor.density = 0 - windoor.req_access = src.electronics.conf_access + if(src.electronics.one_access) + windoor.req_access = null + windoor.req_one_access = src.electronics.conf_access + else + windoor.req_access = src.electronics.conf_access windoor.electronics = src.electronics src.electronics.loc = windoor else @@ -233,7 +237,11 @@ obj/structure/windoor_assembly/Del() windoor.dir = src.dir windoor.density = 0 - windoor.req_access = src.electronics.conf_access + if(src.electronics.one_access) + windoor.req_access = null + windoor.req_one_access = src.electronics.conf_access + else + windoor.req_access = src.electronics.conf_access windoor.electronics = src.electronics src.electronics.loc = windoor From eec4606629865c4cf4a89d4b5f395d7058acd8cd Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 02:51:53 +0300 Subject: [PATCH 4/8] Adding removal of electronics out of broken/emagged windoors. --- code/game/machinery/doors/windowdoor.dm | 52 +++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 38afc122be8..7230b27d18b 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -130,6 +130,21 @@ new /obj/item/weapon/shard(src.loc) var/obj/item/weapon/cable_coil/CC = new /obj/item/weapon/cable_coil(src.loc) CC.amount = 2 + var/obj/item/weapon/airlock_electronics/ae + if(!electronics) + ae = new/obj/item/weapon/airlock_electronics( src.loc ) + if(src.req_access.len) + ae.conf_access = src.req_access + else if (src.req_one_access.len) + ae.conf_access = src.req_one_access + ae.one_access = 1 + else + ae = electronics + electronics = null + ae.loc = src.loc + if(operating == -1) + ae.icon_state = "door_electronics_smoked" + operating = 0 src.density = 0 del(src) return @@ -193,6 +208,43 @@ open() return 1 + //If it's emagged, crowbar can pry electronics out. + if (src.operating == -1 && istype(I, /obj/item/weapon/crowbar)) + playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) + user.visible_message("[user] removes the electronics from the windoor.", "You start to remove electronics from the windoor.") + if (do_after(user,40)) + user << "\blue You removed the airlock electronics!" + + var/obj/structure/windoor_assembly/wa = new/obj/structure/windoor_assembly(src.loc) + if (istype(src, /obj/machinery/door/window/brigdoor)) + wa.secure = "secure_" + wa.name = "Secure Wired Windoor Assembly" + else + wa.name = "Wired Windoor Assembly" + if (src.base_state == "right" || src.base_state == "rightsecure") + wa.facing = "r" + wa.dir = src.dir + wa.state = "02" + wa.update_icon() + + var/obj/item/weapon/airlock_electronics/ae + if(!electronics) + ae = new/obj/item/weapon/airlock_electronics( src.loc ) + if(src.req_access.len) + ae.conf_access = src.req_access + else if (src.req_one_access.len) + ae.conf_access = src.req_one_access + ae.one_access = 1 + else + ae = electronics + electronics = null + ae.loc = src.loc + ae.icon_state = "door_electronics_smoked" + + operating = 0 + del(src) + return + //If it's a weapon, smash windoor. Unless it's an id card, agent card, ect.. then ignore it (Cards really shouldnt damage a door anyway) if(src.density && istype(I, /obj/item/weapon) && !istype(I, /obj/item/weapon/card)) var/aforce = I.force From beff70c0147528f327cc9ab06557759467f0fad4 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 02:56:35 +0300 Subject: [PATCH 5/8] Misclick fix. --- baystation12.dme | 1 + 1 file changed, 1 insertion(+) diff --git a/baystation12.dme b/baystation12.dme index 5fb16810581..f002ef969d2 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -60,6 +60,7 @@ // END_PREFERENCES // BEGIN_INCLUDE #include "code\global.dm" +#include "code\hub.dm" #include "code\names.dm" #include "code\setup.dm" #include "code\stylesheet.dm" From 6c43ff47e9fd4c78f60a66aaaac7b0710747b46c Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 03:05:37 +0300 Subject: [PATCH 6/8] Changelog update. --- html/changelog.html | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/html/changelog.html b/html/changelog.html index 44b3cd609bc..ccfe5623a1c 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -57,6 +57,17 @@ Stuff which is in development and not yet visible to players or just code relate (ie. code improvements for expandability, etc.) should not be listed here. They should be listed in the changelog upon commit though. Thanks. --> +
+

18.06.2013

+

Segrain updated:

+
    +
  • Fixed some bugs in windoor construction.
  • +
  • Secure windoors are made with rods again.
  • +
  • Windoors drop their electronics when broken. Emagged windoors can have theirs removed by crowbar.
  • +
  • Airlock electronics can be configured to make door open for any single access on it instead of all of them.
  • +
+
+

13.06.2013

Kilakk updated:

From 6f5cffa753a2b5fad25fd3684c0ffcc342a16d51 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 03:20:34 +0300 Subject: [PATCH 7/8] Better term. --- code/game/machinery/doors/windowdoor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 7230b27d18b..3c1e4c36421 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -213,7 +213,7 @@ playsound(src.loc, 'sound/items/Crowbar.ogg', 100, 1) user.visible_message("[user] removes the electronics from the windoor.", "You start to remove electronics from the windoor.") if (do_after(user,40)) - user << "\blue You removed the airlock electronics!" + user << "\blue You removed the windoor electronics!" var/obj/structure/windoor_assembly/wa = new/obj/structure/windoor_assembly(src.loc) if (istype(src, /obj/machinery/door/window/brigdoor)) From aa2ab80f6cb6d7da97452a31d435a483cd780b75 Mon Sep 17 00:00:00 2001 From: Segrain Date: Tue, 18 Jun 2013 03:33:56 +0300 Subject: [PATCH 8/8] Missed a line. --- code/game/machinery/doors/windowdoor.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/game/machinery/doors/windowdoor.dm b/code/game/machinery/doors/windowdoor.dm index 3c1e4c36421..66184774c49 100644 --- a/code/game/machinery/doors/windowdoor.dm +++ b/code/game/machinery/doors/windowdoor.dm @@ -190,7 +190,7 @@ /obj/machinery/door/window/attackby(obj/item/weapon/I as obj, mob/user as mob) //If it's in the process of opening/closing, ignore the click - if (src.operating) + if (src.operating == 1) return //Emags and ninja swords? You may pass.