mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-15 20:22:07 +00:00
* Fishing hook and reel line tweaks (also qol for the fish bounties) (#80599) ## About The Pull Request This PR includes a series of small changes and additions to hooks and reel lines, as well as the aforementioned bounties. My objective here is to make the (base) hook and reel line feel more useful. Ditto with a few other things. Here's the list of changes: - Almost all fishing rods come with a hook and reel line pre-installed. The rod from the fishing toolbox comes with separate hook and reel line. - Without a hook, you cannot fish. Without a reel line, the cast range is reduced (from 5 to 3). - Fishing with a reel line installed provides a mild boon to completion speed by default. - The sinewy reel line (craftable from lavaland mobs) can now be used to fish on lava / liquid plasma, but it's a bit stiff and gives a mild malus to completion speed. - Unlike other hooks, the rescue and jawed hooks now allow you to cast a line and reel in living mobs too, not only items. They even get a status alert they can click to un-snag themselves, or move away far enough to achieve the same effect. - Master fishing rod buffed. It now comes with a flexible reel line and weighted hook pre-installed, and can be cast further than other rods. - On top of that, the jawed hook will slow down living mobs snagged by it and is a bit harder to remove. - when casting a line, it will now show the icon of the current hook as projectile, not a generic one. - Reeling now correctly checks movement resistance and anchorage. - Reeling an object (or a mob) now plays a sound. Ditto for installing/removing slotted items. - A few balloon alert feedbacks. - Minor code improvements. - The jawed hook should look a smidge sharper. - reel lines are now small items. ## Why It's Good For The Game The base hook and reel line didn't do anything begin with, and you would do just fine without them. In the end it's just a bit unintuitive for them not to be a requirement. Beside that, it makes sense for the rescue hook to be able to snag mobs, so they may as well be used to drag people out of lava or liquid plasma. As for the jawed hook, it always felt to me a bit underwhelming and a bit of a filler I had cooked up on the moment. It really could have some 'tactical' utility in virtue of being one of those niche black market items. ## Changelog 🆑 add: Most fishing rods come with a hook and line preinstalled. Fishing toolboxes come with separate reel and lines as usual. balance: Fishing hooks are now required to fish. balance: Without a reel line, the range of fishing rods is reduced by two tiles. Conversely, having one installed gives a mild buff to the minigame completion speed. balance: The craftable sinewy reel line can now be used to fish on lava or liquid plasma, but it's a bit harder to use. balance: The rare-to-find-in-maintenance master fishing rod now comes with a flexible line and weighted hook preinstalled, and has better range than other rods. balance: Fishing reel lines are now small enough to fit pockets. add: The rescue and jawed hook can now snag and reel in mobs, not only items. The jawed hook also slows down when applied, a la beartrap. qol: Fish bounties now accept filled (stasis) fish cases. qol: Several balloon alerts for fishing rod interactions. fix: Reeling in items (and mobs) now respects movement resistance and anchorage. fix: Fixed the fishing rod equipment UI being too small to fit its components. sound: Reeling in something now plays a sound. /🆑 * Fishing hook and reel line tweaks (also qol for the fish bounties) --------- Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
25 lines
889 B
Plaintext
25 lines
889 B
Plaintext
/// Status effect from multiple sources, when all sources are removed, so is the effect
|
|
/datum/status_effect/grouped
|
|
// Grouped effects adds itself to [var/sources] and destroys itself if one exists already, there are never actually multiple
|
|
status_type = STATUS_EFFECT_MULTIPLE
|
|
/// A list of all sources applying this status effect. Sources are a list of keys
|
|
var/list/sources = list()
|
|
|
|
/datum/status_effect/grouped/on_creation(mob/living/new_owner, source)
|
|
var/datum/status_effect/grouped/existing = new_owner.has_status_effect(type)
|
|
if(existing)
|
|
existing.sources |= source
|
|
merge_with_existing(existing, source)
|
|
qdel(src)
|
|
return FALSE
|
|
|
|
sources |= source
|
|
return ..()
|
|
|
|
/datum/status_effect/grouped/proc/merge_with_existing(datum/status_effect/grouped/existing, source)
|
|
return
|
|
|
|
/datum/status_effect/grouped/before_remove(source)
|
|
sources -= source
|
|
return !length(sources)
|