mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-07-21 21:17:44 +01:00
4a5104e4a0
## About The Pull Request Allows people to detach a cleaner and vacuum (uses the trash bag) from janitor borgs. This option uses zero water management and doesn't create slip tiles. The module can be locked with alt click. <img width="342" height="681" alt="image" src="https://github.com/user-attachments/assets/0fe53f8b-d850-4354-aa70-382ca40dcd37" /> <img width="590" height="581" alt="image" src="https://github.com/user-attachments/assets/70fea653-ad20-479a-8986-fed0e15af4b1" /> https://github.com/user-attachments/assets/ff81a214-1bfb-4a33-a660-ccb563e310af Sounds are from soundsnap and properly licenced. https://soundsnap.zendesk.com/hc/en-us/articles/115003916431-Legal ## Why It's Good For The Game I think co-op mechanics are fun. If you manage to get a friend, this is an option with zero water management. I feel like janitor borgs don't really have much the way to cooperate with their base mechanics. You can walk into a department and clean it wordlessly. This gives the option where you can clean with your friend (or the crime scene you're trying to scrub) ## Changelog 🆑 StrangeWeirdKitten, Toriate (sprites) add: Janitor borgs now have a crew operated end that allows their squishy overlords to do some cleaning themselves. /🆑
64 lines
2.6 KiB
Plaintext
64 lines
2.6 KiB
Plaintext
///Status effect applied when casting a fishing rod at someone, provided the attached fishing hook allows it.
|
|
/datum/status_effect/grouped/hooked
|
|
id = "hooked"
|
|
duration = STATUS_EFFECT_PERMANENT
|
|
tick_interval = STATUS_EFFECT_NO_TICK
|
|
status_type = STATUS_EFFECT_MULTIPLE
|
|
alert_type = /atom/movable/screen/alert/status_effect/hooked
|
|
|
|
/datum/status_effect/grouped/hooked/proc/try_unhook()
|
|
return do_after(owner, 2 SECONDS, timed_action_flags = IGNORE_USER_LOC_CHANGE, extra_checks = CALLBACK(src, PROC_REF(still_exists)), interaction_key = DOAFTER_SOURCE_REMOVING_HOOK)
|
|
|
|
/datum/status_effect/grouped/hooked/proc/still_exists()
|
|
return !QDELETED(src)
|
|
|
|
/datum/status_effect/grouped/hooked/source_added(datum/beam/held/source)
|
|
RegisterSignal(source, COMSIG_QDELETING, PROC_REF(on_fishing_line_deleted))
|
|
|
|
/datum/status_effect/grouped/hooked/proc/on_fishing_line_deleted(datum/source)
|
|
SIGNAL_HANDLER
|
|
owner.remove_status_effect(type, source)
|
|
|
|
/atom/movable/screen/alert/status_effect/hooked
|
|
name = "Snagged By Hook"
|
|
desc = "You're being caught like a fish by some asshat! Click to safely remove the hook or move away far enough to snap it off."
|
|
use_user_hud_icon = USER_HUD_STYLE_INHERIT
|
|
overlay_state = "hooked"
|
|
clickable_glow = TRUE
|
|
|
|
/atom/movable/screen/alert/status_effect/hooked/Click()
|
|
. = ..()
|
|
if(!.)
|
|
return
|
|
if(!owner.can_resist())
|
|
return
|
|
owner.balloon_alert(owner, "removing hook...")
|
|
var/datum/status_effect/grouped/hooked/effect = owner.has_status_effect(attached_effect.type)
|
|
if(!effect.try_unhook())
|
|
return
|
|
owner.balloon_alert(owner, "hook removed")
|
|
var/datum/beam/held/rand_source = pick(effect.sources)
|
|
qdel(rand_source)
|
|
|
|
///Version used by the jawed fishing hook, which also applies slowdown
|
|
/datum/status_effect/grouped/hooked/jaws
|
|
id = "hooked_jaws"
|
|
alert_type = /atom/movable/screen/alert/status_effect/hooked/jaws
|
|
|
|
/datum/status_effect/grouped/hooked/jaws/on_apply()
|
|
. = ..()
|
|
owner.add_movespeed_modifier(/datum/movespeed_modifier/hook_jawed)
|
|
|
|
/datum/status_effect/grouped/hooked/jaws/on_remove()
|
|
. = ..()
|
|
owner.remove_movespeed_modifier(/datum/movespeed_modifier/hook_jawed)
|
|
|
|
/datum/status_effect/grouped/hooked/jaws/try_unhook()
|
|
return do_after(owner, 10 SECONDS, extra_checks = CALLBACK(src, PROC_REF(still_exists)), interaction_key = DOAFTER_SOURCE_REMOVING_HOOK)
|
|
|
|
/atom/movable/screen/alert/status_effect/hooked/jaws
|
|
name = "Snagged By Jaws"
|
|
desc = "You've been snagged by some sort of beartrap-slash-fishing-hook-gizmo! Click to safely remove the hook or move away far enough to snap it off."
|
|
use_user_hud_icon = USER_HUD_STYLE_INHERIT
|
|
overlay_state = "hooked_jaws"
|