diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm
index d6d25ffc0a..57d78e21f1 100644
--- a/code/game/objects/structures/inflatable.dm
+++ b/code/game/objects/structures/inflatable.dm
@@ -4,14 +4,20 @@
icon = 'icons/obj/inflatable.dmi'
icon_state = "folded_wall"
w_class = ITEMSIZE_NORMAL
+ var/deploy_path = /obj/structure/inflatable
- attack_self(mob/user)
- playsound(loc, 'sound/items/zip.ogg', 75, 1)
- user << "You inflate [src]."
- var/obj/structure/inflatable/R = new /obj/structure/inflatable(user.loc)
- src.transfer_fingerprints_to(R)
- R.add_fingerprint(user)
- qdel(src)
+/obj/item/inflatable/attack_self(mob/user)
+ inflate(user,user.loc)
+
+/obj/item/inflatable/afterattack(var/atom/A, var/mob/user)
+ ..(A, user)
+ if(!user)
+ return
+ if(!user.Adjacent(A))
+ to_chat(user,"You can't reach!")
+ return
+ if(istype(A, /turf))
+ inflate(user,A)
/obj/structure/inflatable
name = "inflatable wall"
@@ -82,6 +88,17 @@
if(health <= 0)
deflate(1)
+/obj/structure/inflatable/CtrlClick()
+ hand_deflate()
+
+/obj/item/inflatable/proc/inflate(var/mob/user,var/location)
+ playsound(location, 'sound/items/zip.ogg', 75, 1)
+ to_chat(user,"You inflate [src].")
+ var/obj/structure/inflatable/R = new deploy_path(location)
+ src.transfer_fingerprints_to(R)
+ R.add_fingerprint(user)
+ qdel(src)
+
/obj/structure/inflatable/proc/deflate(var/violent=0)
playsound(loc, 'sound/machines/hiss.ogg', 75, 1)
if(violent)
@@ -102,7 +119,7 @@
set category = "Object"
set src in oview(1)
- if(isobserver(usr)) //to stop ghosts from deflating
+ if(isobserver(usr) || usr.restrained() || !usr.Adjacent(src))
return
verbs -= /obj/structure/inflatable/verb/hand_deflate
@@ -123,14 +140,7 @@
desc = "A folded membrane which rapidly expands into a simple door on activation."
icon = 'icons/obj/inflatable.dmi'
icon_state = "folded_door"
-
- attack_self(mob/user)
- playsound(loc, 'sound/items/zip.ogg', 75, 1)
- user << "You inflate [src]."
- var/obj/structure/inflatable/door/R = new /obj/structure/inflatable/door(user.loc)
- src.transfer_fingerprints_to(R)
- R.add_fingerprint(user)
- qdel(src)
+ deploy_path = /obj/structure/inflatable/door
/obj/structure/inflatable/door //Based on mineral door code
name = "inflatable door"
@@ -165,7 +175,6 @@
if(isSwitchingStates) return
if(ismob(user))
var/mob/M = user
- if(world.time - user.last_bumped <= 60) return //NOTE do we really need that?
if(M.client)
if(iscarbon(M))
var/mob/living/carbon/C = M
diff --git a/html/changelogs/Nerezza - inflatablechanges.yml b/html/changelogs/Nerezza - inflatablechanges.yml
new file mode 100644
index 0000000000..d214cdae3f
--- /dev/null
+++ b/html/changelogs/Nerezza - inflatablechanges.yml
@@ -0,0 +1,38 @@
+################################
+# 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: Nerezza
+
+# 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:
+ - rscadd: "Inflatables can be deflated using ctrl-click."
+ - rscadd: "Inflatables can be deployed on adjacent tiles by clicking them."
+ - bugfix: "Bumping into closed inflatable doors will no longer freeze them for a few moments."
\ No newline at end of file