From 56782d862df0447b7e22e669ab8f93d0512df70a Mon Sep 17 00:00:00 2001
From: Sinestia <40812746+Sinestia@users.noreply.github.com>
Date: Sun, 14 Aug 2022 03:20:21 -0500
Subject: [PATCH] Fix issues with the bell (#18659)
* Do the code changes
* add anchored to maps
* add instructions to the desc to help
* missed one
* Update code/modules/paperwork/desk_bell.dm
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
* Update code/modules/paperwork/desk_bell.dm
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
* adds visible messages i didnt test this btw cuz r-
* This one I actually tested, fix strings
* deconflict correctly
* Re-run
* add back to cyberiad
Co-authored-by: Luc <89928798+lewcc@users.noreply.github.com>
---
_maps/map_files/Delta/delta.dmm | 6 ++-
_maps/map_files/MetaStation/MetaStation.dmm | 6 ++-
_maps/map_files/cyberiad/cyberiad.dmm | 7 ++-
code/modules/paperwork/desk_bell.dm | 54 ++++++++++++---------
4 files changed, 45 insertions(+), 28 deletions(-)
diff --git a/_maps/map_files/Delta/delta.dmm b/_maps/map_files/Delta/delta.dmm
index 87be4c9c624..e86a085e047 100644
--- a/_maps/map_files/Delta/delta.dmm
+++ b/_maps/map_files/Delta/delta.dmm
@@ -38678,7 +38678,8 @@
/obj/effect/decal/warning_stripes/yellow,
/obj/item/desk_bell{
pixel_x = -6;
- pixel_y = 3
+ pixel_y = 3;
+ anchored = 1
},
/turf/simulated/floor/plasteel{
icon_state = "neutralfull"
@@ -63256,7 +63257,8 @@
/obj/effect/decal/warning_stripes/yellow,
/obj/item/desk_bell{
pixel_x = -6;
- pixel_y = 3
+ pixel_y = 3;
+ anchored = 1
},
/turf/simulated/floor/plasteel/white,
/area/toxins/lab)
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 9a601077d90..95512671dc4 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -15795,7 +15795,8 @@
/obj/effect/mapping_helpers/airlock/access/all/supply/general,
/obj/item/desk_bell{
pixel_x = 7;
- pixel_y = 7
+ pixel_y = 7;
+ anchored = 1
},
/turf/simulated/floor/plasteel,
/area/quartermaster/office)
@@ -75075,7 +75076,8 @@
},
/obj/effect/mapping_helpers/airlock/access/all/science/research,
/obj/item/desk_bell{
- pixel_y = 8
+ pixel_y = 8;
+ anchored = 1
},
/turf/simulated/floor/plasteel{
icon_state = "whitepurplefull"
diff --git a/_maps/map_files/cyberiad/cyberiad.dmm b/_maps/map_files/cyberiad/cyberiad.dmm
index 3c750a95474..5ffce14e957 100644
--- a/_maps/map_files/cyberiad/cyberiad.dmm
+++ b/_maps/map_files/cyberiad/cyberiad.dmm
@@ -38313,7 +38313,9 @@
/obj/structure/noticeboard{
pixel_y = 27
},
-/obj/item/desk_bell,
+/obj/item/desk_bell{
+ anchored = 1
+ },
/turf/simulated/floor/plasteel,
/area/quartermaster/office)
"bQf" = (
@@ -73924,6 +73926,9 @@
name = "Research and Development Desk";
req_access_txt = "47"
},
+/obj/item/desk_bell{
+ anchored = 1
+ },
/turf/simulated/floor/plasteel{
dir = 8;
icon_state = "whitepurplefull"
diff --git a/code/modules/paperwork/desk_bell.dm b/code/modules/paperwork/desk_bell.dm
index b7501d61ac8..da9f631dd84 100644
--- a/code/modules/paperwork/desk_bell.dm
+++ b/code/modules/paperwork/desk_bell.dm
@@ -2,7 +2,7 @@
/obj/item/desk_bell
name = "desk bell"
- desc = "The cornerstone of any customer service job. You feel an unending urge to ring it."
+ desc = "The cornerstone of any customer service job. You feel an unending urge to ring it. It looks like it can be wrenched or screwdrivered."
icon = 'icons/obj/bureaucracy.dmi'
icon_state = "desk_bell"
/// The amount of times this bell has been rang, used to check the chance it breaks
@@ -17,7 +17,11 @@
var/ring_sound = 'sound/machines/bell.ogg'
/obj/item/desk_bell/attack_hand(mob/living/user)
- if(ring_cooldown > world.time)
+ if(in_inventory && ishuman(user))
+ if(!user.get_active_hand())
+ user.put_in_hands(src)
+ return TRUE
+ if(ring_cooldown > world.time || !anchored)
return TRUE
if(!ring_bell(user))
to_chat(user, "[src] is silent. Some idiot broke it.")
@@ -35,17 +39,7 @@
if(!remove_item_from_storage(M))
M.unEquip(src)
M.put_in_hands(src)
-
- else if(istype(over_object, /obj/screen))
- switch(over_object.name)
- if("r_hand")
- if(!remove_item_from_storage(M))
- M.unEquip(src)
- M.put_in_r_hand(src)
- if("l_hand")
- if(!remove_item_from_storage(M))
- M.unEquip(src)
- M.put_in_l_hand(src)
+ anchored = FALSE
add_fingerprint(M)
@@ -53,25 +47,39 @@
/obj/item/desk_bell/screwdriver_act(mob/living/user, obj/item/tool)
. = TRUE
if(broken_ringer)
- to_chat(user, "You begin repairing the bell...")
+ visible_message("[user] begins repairing [src]...", "You begin repairing [src]...")
tool.play_tool_sound(src)
if(tool.use_tool(src, user, 5 SECONDS))
- user.visible_message("[user] repairs the bell.", "You repair the bell.")
+ user.visible_message("[user] repairs [src].", "You repair [src].")
playsound(user, 'sound/items/change_drill.ogg', 50, vary = TRUE)
broken_ringer = FALSE
times_rang = 0
return TRUE
return FALSE
-// Deconstruct
+// Deconstruct and Anchor
/obj/item/desk_bell/wrench_act(mob/living/user, obj/item/tool)
- to_chat(user, "You begin taking apart the bell...")
- if(tool.use_tool(src, user, 5 SECONDS))
- to_chat(user, "You disassemble the bell...")
- playsound(user, 'sound/items/deconstruct.ogg', 50, vary = TRUE)
- new /obj/item/stack/sheet/metal(drop_location(), 2)
- qdel(src)
- return TRUE
+ . = TRUE
+ if(user.a_intent == INTENT_HARM && !in_inventory)
+ visible_message("[user] begins taking apart [src]...", "You begin taking apart [src]...")
+ if(tool.use_tool(src, user, 5 SECONDS, volume = tool.tool_volume))
+ visible_message("[user] takes apart [src].", "You take apart [src].")
+ playsound(user, 'sound/items/deconstruct.ogg', 50, vary = TRUE)
+ new /obj/item/stack/sheet/metal(drop_location(), 2)
+ qdel(src)
+ return TRUE
+ if(!in_inventory)
+ if(!anchored)
+ user.visible_message("[user] begins securing [src]...", "You begin securing [src]...")
+ if(!tool.use_tool(src, user, 3 SECONDS, volume = tool.tool_volume))
+ return
+ anchored = TRUE
+ else
+ user.visible_message("[user] begins unsecuring [src]...", "You begin unsecuring [src]...")
+ if(!tool.use_tool(src, user, 3 SECONDS, volume = tool.tool_volume))
+ return
+ anchored = FALSE
+
/// Check if the clapper breaks, and if it does, break it
/obj/item/desk_bell/proc/check_clapper(mob/living/user)