From e727727f697a48fad9e2ba95faf6934163b0cc86 Mon Sep 17 00:00:00 2001 From: PhantornRU <41479614+PhantornRU@users.noreply.github.com> Date: Mon, 11 Mar 2024 03:45:41 +1000 Subject: [PATCH] [BORG UPDATE] Cyborg engineer inflatable walls tool (#24017) * cyborg engineer inflatable walls * Apply suggestions from code review Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> * Update code/game/objects/items/robot/items/inflatable_tool.dm Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> --------- Co-authored-by: Henri215 <77684085+Henri215@users.noreply.github.com> Co-authored-by: Burzah <116982774+Burzah@users.noreply.github.com> --- .../items/robot/items/inflatable_tool.dm | 44 +++++++++++++++++++ code/game/objects/structures/inflatable.dm | 1 - .../mob/living/silicon/robot/robot_modules.dm | 4 +- paradise.dme | 1 + 4 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 code/game/objects/items/robot/items/inflatable_tool.dm diff --git a/code/game/objects/items/robot/items/inflatable_tool.dm b/code/game/objects/items/robot/items/inflatable_tool.dm new file mode 100644 index 00000000000..105a029d7a7 --- /dev/null +++ b/code/game/objects/items/robot/items/inflatable_tool.dm @@ -0,0 +1,44 @@ +/obj/item/inflatable/cyborg + name = "inflatable wall" + desc = "A folded membrane which rapidly expands into a large cubical shape on activation." + var/power_use = 400 + var/structure_type = /obj/structure/inflatable + /// How long it takes to inflate + var/delay = 1 SECONDS + +/obj/item/inflatable/cyborg/door + name = "inflatable door" + desc = "A folded membrane which rapidly expands into a simple door on activation." + icon_state = "folded_door" + power_use = 600 + structure_type = /obj/structure/inflatable/door + +/obj/item/inflatable/cyborg/examine(mob/user) + . = ..() + . += "As a synthetic, you can restore them at a cyborg recharger." + +/obj/item/inflatable/cyborg/attack_self(mob/user) + if(locate(/obj/structure/inflatable) in get_turf(user)) + to_chat(user, "There's already an inflatable structure!") + return FALSE + + if(!do_after(user, delay, FALSE, user)) + return FALSE + + if(!useResource(user)) + return FALSE + + playsound(loc, 'sound/items/zip.ogg', 75, TRUE) + to_chat(user, "You inflate [src].") + var/obj/structure/inflatable/R = new structure_type(user.loc) + transfer_fingerprints_to(R) + R.add_fingerprint(user) + +/obj/item/inflatable/cyborg/proc/useResource(mob/user) + if(!isrobot(user)) + return FALSE + var/mob/living/silicon/robot/R = user + if(R.cell.charge < power_use) + to_chat(user, "Not enough power!") + return FALSE + return R.cell.use(power_use) diff --git a/code/game/objects/structures/inflatable.dm b/code/game/objects/structures/inflatable.dm index d01c09a789b..21379834d7e 100644 --- a/code/game/objects/structures/inflatable.dm +++ b/code/game/objects/structures/inflatable.dm @@ -148,7 +148,6 @@ flick("door_closing",src) sleep(10) density = !density - opacity = !opacity state_open = !state_open update_icon(UPDATE_ICON_STATE) is_operating = FALSE diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index 08905bc72aa..cdde95777bd 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -411,7 +411,9 @@ /obj/item/stack/tile/catwalk/cyborg, /obj/item/stack/cable_coil/cyborg, /obj/item/stack/sheet/glass/cyborg, - /obj/item/stack/sheet/rglass/cyborg + /obj/item/stack/sheet/rglass/cyborg, + /obj/item/inflatable/cyborg, + /obj/item/inflatable/cyborg/door ) emag_modules = list(/obj/item/borg/stun, /obj/item/restraints/handcuffs/cable/zipties/cyborg, /obj/item/rcd/borg) override_modules = list(/obj/item/gun/energy/emitter/cyborg/proto) diff --git a/paradise.dme b/paradise.dme index 89389604bb4..b2e80227d1f 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1056,6 +1056,7 @@ #include "code\game\objects\items\robot\robot_items.dm" #include "code\game\objects\items\robot\robot_parts.dm" #include "code\game\objects\items\robot\robot_upgrades.dm" +#include "code\game\objects\items\robot\items\inflatable_tool.dm" #include "code\game\objects\items\stacks\medical_packs.dm" #include "code\game\objects\items\stacks\nanopaste.dm" #include "code\game\objects\items\stacks\rods.dm"