From 74aa276a00c96c98926c9eb22fc2cd883ed169db Mon Sep 17 00:00:00 2001 From: Ron Date: Mon, 12 Jun 2017 19:26:39 -0400 Subject: [PATCH] Makes gun closets unmovable unless certain tools are used (#2700) For a gun closet to be moved a screwdriver and wrench has to be used on them in that order. Fixes #2690 --- .../closets/secure/guncabinet.dm | 3 ++ .../closets/secure/secure_closets.dm | 36 +++++++++++++++++++ html/changelogs/Printer16-Guncabs.yml | 36 +++++++++++++++++++ 3 files changed, 75 insertions(+) create mode 100644 html/changelogs/Printer16-Guncabs.yml diff --git a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm index 36a2e676327..56f42a9964d 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/guncabinet.dm @@ -8,6 +8,9 @@ icon_locked ="base" icon_closed ="base" icon_opened = "base" + anchored = 1 + canbemoved = 1 + /obj/structure/closet/secure_closet/guncabinet/Initialize() ..() diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm index e29e9335501..870cb21f1e9 100644 --- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm @@ -5,6 +5,7 @@ icon_state = "secure1" density = 1 opened = 0 + anchored = 0 var/locked = 1 var/broken = 0 var/large = 1 @@ -13,6 +14,9 @@ icon_opened = "secureopen" var/icon_broken = "securebroken" var/icon_off = "secureoff" + var/canbemoved = 0 // if it can be moved by people using the right tools + var/screwed = 1 // if its screwed in place + var/wrenched = 1 // if its wrenched down wall_mounted = 0 //never solid (You can always pass over it) health = 200 @@ -83,6 +87,38 @@ W:spark_system.queue() playsound(src.loc, 'sound/weapons/blade1.ogg', 50, 1) playsound(src.loc, "sparks", 50, 1) + else if(isscrewdriver(W) && canbemoved) + if(screwed) + user << "You start to unscrew the locker from the floor..." + playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) + if (do_after(user, 10 SECONDS, act_target = src)) + user << "You unscrew the locker!" + playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) + screwed = 0 + else if(!screwed && wrenched) + user << "You start to screw the locker to the floor..." + playsound(src, 'sound/items/Welder.ogg', 80, 1) + if (do_after(user, 15, act_target = src)) + user << "You screw the locker!" + playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1) + screwed = 1 + else if(iswrench(W) && canbemoved) + if(wrenched && !screwed) + user << "You start to unfasten the bolts holding the locker in place..." + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + if (do_after(user, 15 SECONDS, act_target = src)) + user << "You unfasten the locker's bolts!" + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + wrenched = 0 + anchored = 0 + else if(!wrenched) + user << "You start to fasten the bolts holding the locker in place..." + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + if (do_after(user, 15, act_target = src)) + user << "You fasten the locker's bolts!" + playsound(src.loc, 'sound/items/Ratchet.ogg', 50, 1) + wrenched = 1 + anchored = 1 else if(!src.opened) togglelock(user)//Attempt to lock locker if closed diff --git a/html/changelogs/Printer16-Guncabs.yml b/html/changelogs/Printer16-Guncabs.yml new file mode 100644 index 00000000000..a688f2097f2 --- /dev/null +++ b/html/changelogs/Printer16-Guncabs.yml @@ -0,0 +1,36 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +################################# + +# Your name. +author: Printer16 + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - tweak: "You can no longer move gun cabinets without unscrewing them and unwrenching them."