Commit Graph

155 Commits

Author SHA1 Message Date
Ghom 418e322ea2 [NO GBP] Fixes the fishing experience gain from reeling objects (#86845)
## About The Pull Request
Little oopsie since I've forgot that time is in deciseconds for a moment
there, therefore it should be multiplied by 0.13 and not 1.3

## Why It's Good For The Game
I made a mistake.

## Changelog
Too small to add to the CL.
2024-09-24 16:00:19 -06:00
grungussuss 58501dce77 Reorganizes the sound folder (#86726)
## About The Pull Request

<details>

- renamed ai folder to announcer

-- announcer --
- moved vox_fem to announcer
- moved approachingTG to announcer

- separated the ambience folder into ambience and instrumental
-- ambience --

- created holy folder moved all related sounds there
- created engineering folder and moved all related sounds there
- created security folder and moved ambidet there
- created general folder and moved ambigen there
- created icemoon folder and moved all icebox-related ambience there
- created medical folder and moved all medbay-related ambi there
- created ruin folder and moves all ruins ambi there
- created beach folder and moved seag and shore there
- created lavaland folder and moved related ambi there
- created aurora_caelus folder and placed its ambi there
- created misc folder and moved the rest of the files that don't have a
specific category into it

-- instrumental --

- moved traitor folder here
- created lobby_music folder and placed our songs there (title0 not used
anywhere? - server-side modification?)

-- items --

- moved secdeath to hailer
- moved surgery to handling

-- effects --

- moved chemistry into effects
- moved hallucinations into effects
- moved health into effects
- moved magic into effects

-- vehicles --

- moved mecha into vehicles


created mobs folder

-- mobs --

- moved creatures folder into mobs
- moved voice into mobs

renamed creatures to non-humanoids
renamed voice to humanoids

-- non-humanoids--

created cyborg folder
created hiss folder
moved harmalarm.ogg to cyborg

-- humanoids --




-- misc --

moved ghostwhisper to misc
moved insane_low_laugh to misc

I give up trying to document this.

</details>

- [X] ambience
- [x] announcer
- [x] effects
- [X] instrumental
- [x] items
- [x] machines
- [x] misc 
- [X] mobs
- [X] runtime
- [X] vehicles

- [ ] attributions

## Why It's Good For The Game

This folder is so disorganized that it's vomit inducing, will make it
easier to find and add new sounds, providng a minor structure to the
sound folder.

## Changelog
🆑 grungussuss
refactor: the sound folder in the source code has been reorganized,
please report any oddities with sounds playing or not playing
server: lobby music has been repathed to sound/music/lobby_music
/🆑
2024-09-23 22:24:50 -07:00
Ghom ff2760e908 Adds new tasty fish to deep fryers. (#86690)
## About The Pull Request
This PR introduces three new fish that can be caught from deep fryers.
That's right, deep fryers are also fishing spots now. Is it silly? Yeah,
but this is more or less the reason I made a whole PR to make fish
edible. They've two gimmicks: one is that they're already fried, and
neither raw nor gorey and can be cut into nuggets. The other is that
they can evolve into the next type just by growing, no need of pairing
them with each other, starting from the 'fryish', then the 'fritterish'
(and its two variants: 'bernard-fish' and 'matthew-fish', big pun on the
english food company) and finally the 'nessie-fish' which is very rare
and big and you'd probably get 20 nuggets by cutting it alone.

Other than that, this PR adds a simple growth mechanic to fish, where
they get a bit larger each time they're fed. The gained size and weight
depends on several factors like hunger, their current size and weight
and how much until they hit the maximum cap of twice the initial size
and weight. This means bigger fish grow slowier, and it's better to feed
them once in a while but not every other second. Obviously size and
weight influence a lot of fish mechanics, so it's good to have a way to
increase these values outside of breeding RNG (which is very shallow).
TL;DR: Feed the fish once their hunger reaches 50% circa for maximum
growth.

Included in the PR are a few tidbits, like fixing a little mistake
around the 'picky eater' fish trait, more readable code around the
fish_growth component (unrelated to the aforementioned growth mechanic)
and hunger or adding the fish evolution datum for armored pikes (normal
pikes plus stinger trait, which I basically forgot to), and adjusting
how weight and size of offsprings is calculated.

## Why It's Good For The Game
First and foremost, a brand new on-station fishing spot that is not the
fishing portal, toilets (or the rare moisture traps in maint). Second, a
fish growth mechanic through which weight and size can be increased.
Third, a few code things. Four, little bugs, now fixed.

Fifth, have a screenshot of me fucking around to find out how many bites
it takes to eat all of the deepfried gargantuan nessie (53, and I had to
spawn another 10 humans to finish it):

![immagine](https://github.com/user-attachments/assets/a7054cac-6f94-4327-891e-f171894a71d6)


## Changelog

🆑
add: You can now fish new, tasty treats by the station deep fryers.
add: You can now grow fish inside an aquarium by feeding them regularly
(at 50% hunger for maximum growth).
add: Added the evolution for pikes to armored pikes.
/🆑
2024-09-22 18:43:27 +00:00
Ghom 66d88ee0b7 Fishing skill now improves cast range and reeling objects, and slightly reduced exp gain from ez pz fishing spots. (#86776)
## About The Pull Request
The fishing skill now improves the casting range of the rod by 1 turf at
expert level and 2 at legendary level. It also reduces the delay for
reeling objects (not the fishing minigame), which by default is 0.8
seconds, up to 0.3 seconds. Reeling objects also provides a pitiable
amount of fishing experience.

Fishing on fishing spots with particularly low difficulty compared to
the overall skill level now reduces the experience gained. Keep in mind
fishing also provides a exp bonus based on difficulty regardless of
skill level. This just serves to mitigate the bonus from toilets & co at
high level.

## Why It's Good For The Game
A good angler should know how to spin the rod and cast the line farther
than the average person, and reel in objects faster.

## Changelog

🆑
balance: The fishing skill now positively affects fishing rod cast range
and reeling objects outside of the minigame. Reeling objects also
provides a pitiable amount of fishing experience.
balance: High fishing skill now reduces experience gained from low
difficulty fishing spots.
sound: Removed noise from reeling sounds.
/🆑
2024-09-22 18:02:44 +01:00
Ghom 981890bd5c Add radial icons and overlays to linkable fishing spots (#86774)
## About The Pull Request
#86291 added the option to link fishing spots to the fish portal
generator, however I did not sprite radial icons for any of them beside
a default undescriptive star just to not leave them icon-less.

This PR introduces radial icon states for linkable fishing spots and
overlays that show on the fish portal gen when selected. A few actually
reuse pre-existing icons, like for example chasms and the beach, but
most of them are new. To top it off, linked fishing spots show a little
star on the top-left of their radial icon to distinguish them from
normal portals.

## Why It's Good For The Game
Follow-up to my previous PR where I had gotten too lazy to sprite these
icon states. Here's how they look in the editor, which is not much
different than how they'd look in-game because the radial buttons are
more or less that dark too:

![immagine](https://github.com/user-attachments/assets/e00d80e9-39c6-473c-b791-d83f53bacc6e)


## Changelog

🆑
image: added icon states for linkable fishing spots in the fish portal
gen radial menu.
/🆑
2024-09-22 18:02:02 +01:00
Ghom 0acaf6850b You can try to pet fish while holding them too (careful around aggressive ones) (#86594)
## About The Pull Request
Earlier this day, I have found myelf adding a check to the fish petting
proc Ben added recently along with his aquarium UI rework, so I've
thought it'd be good if players could do it regardless of aquariums.
I've also added a couple lines to check if it's a safe environment and
the fish isn't dead, because petting a dead or drowning fish shouldn't
solicit much of a cute reaction.
Furthermore, petting aggressive fish comes with a coin flip where you
get your hand bitten half of the times. I think it's a pretty much
reasonable interaction.
Also, petting chasm crabs lowers their anger slightly, which determines
the behavior of the juvenile lobstrosity they grow to be.

## Why It's Good For The Game
Polishing a fish feature added by another contributor.

## Changelog

🆑
add: You can pet fish while holding them. Be wary of petting aggressive
fish.
/🆑
2024-09-18 16:13:19 -04:00
Ghom 1aad3e118c You can now link fishing portal generators to other fishing spots. (#86291)
## About The Pull Request
You can now interact with the fishing portal generator with a multitool
to load it in the buffer and subsequently link fishing spots to it by
tapping them with the same multitool. The maximum number of fishing
spots that can be linked at once depends on the tier of the matter bins
of the machinery. Normally, while you can link fishing spots from other
z-levels, they can only be activated if they're on the same z-level as
the machinery (or if both are on station for multi-z stations). This
limitation can be bypassed by upgrading the machinery with a tier 3 or
higher capacitator.

While it's possible, I'm not spriting new fishing portal overlays and
icons for the radial menu for every fish source out there (yet). The
code is enough work for now.

This also comes with a unit test, because there is no such thing as too
many unit tests for fishing.

## Why It's Good For The Game
Fish portal generators are designed to let players fish a different
bunch of things while being able to be moved wherever you like, unlike a
lake or an ocean, with all the comfort of being able to able to catch
fish from distant locations. Allowing players to link other fishing
spots to it fits its design. It also means that you can go out and
explore, find more fishing spots and then return to the station without
having to detach yourself from the ongoing round for several more
minutes.

## Changelog

🆑
add: You can now link fishing portal generators to other fishing spots
with a multitool. The number of fishing spots that can be linked at once
and whether the link can be activated from different z levels depends on
the tier of the stock parts it's built with.
/🆑

---------

Co-authored-by: Emmett Gaines <ninjanomnom@gmail.com>
2024-09-18 14:14:04 +00:00
Ghom ba4fa8fe07 What you wear and on what chair you sit on can now influence fishing difficulty (#86646)
## About The Pull Request
A foreword, I had to refactor a few bits of shitcode my past self added
first. For context, the "gone fishing" and "actively fishing" traits
only had one source, which is the fishing challenge itself, ad there was
no way to access the challenge from outside its code, except for a few
weakrefs which were being used as sources for the aforementioned traits
(the shitcode in a nutshell). There were also a few signals that I
didn't like because they were being sent to the harder-to-access
challenge datum rather than the user. So I scrapped the traits for a
couple signals to send to the user, then added a global list as a mean
to easily access the challenge datum, and lastly changed the code to
accomodate the titled feature (and allow the challenge to recalculate
its difficulty DURING the minigame phase)

Moving on to the actual feature: I've added a component that can be
added to objects on which mobs can be buckled to or items. When equipped
in the right slots or buckled to, the object will adjust the difficulty
of current and future fishing challenges by a certain amount (more often
than not positive, but there're many exceptions) as long as the object
isn't equipped or the user is unbuckled.

I've been having some fun adding component to a ton of clothes in the
game as well as chairs. Way too many objects to enumerate, so I'll give
you the general idea:
- each carp-themed article provides a slight positive modifier (easier)
- some (not all) doctor-related garbs provide a marginal positive
modifier each (fish doctor jokes)
- floortile camo clothes have positive modifiers
- Tuxedo, laceups, gowns provide negative modifier (more difficult)
- utility garbs such as bio/bomb/rad hoods and suits are quite bad. Riot
armor too.
- boxing gloves are very, very bad. Insulated gloves and haul gauntlets
are also very bad, to a lesser degree.
- **tackle** gloves are good. (pun intended)
- wizard garbs are good, because wizards are good at casting. (also a
pun)
- magboots slightly bad. Space suits bad.
- Blindfolds and welding protection are also bad. Gas masks marginally
bad.
- Pirate attire is nice to have. (I just vibed a little on this one)
- plastic chairs are quite versatile because they can be carried around,
but the mime chair is the best, followed by ratvarian chairs.
- Fishing toolboxes, analyzers and the fish catalog are a plus, because
they can be held.
- And the fishing hat, obviously (not as great as you'd think)

Some of these may be subject to change depending on what people say.

## Why It's Good For The Game
A hundred lines of fishing challenge code made ever-so-slightly less
awful, and a way to modify fishing diffculty beside skills and bait.

## Changelog

🆑
add: Your current clothes and what chair you sit on can now influence
the difficulty of fishing minigames. Having a bare minimum of fishing
skill will let you distinguish which objects can help and which won't,
so keep an eye out. Holding fishing toolboxes, fish analyzers or fish
catalogs can also help.
/🆑
2024-09-17 22:33:04 +00:00
Ghom bb3629bcdc [NO GBP] Fixing a runtime with examining fishing spots while wielding a rod (#86689)
## About The Pull Request
Well, it seems examining a fishing spot (with sufficient skill) while
wielding a rod is borked because of a bad line. It should be `init_name`
and not `reward`. Thanks to vinylspider for informing me about it.

## Why It's Good For The Game
Fixing stuff I made and then broke.

## Changelog

🆑
fix: examining fishing spots while wielding a rod (with sufficient
skill) now works.
/🆑
2024-09-17 17:56:22 -04:00
deathrobotpunch bbc685b60a adds fishing category to games vendor (#86699)
## About The Pull Request
this pull request adds a fishing category to the games vendor with items
that cost 50 credits more than their goodie alternatives.
## Why It's Good For The Game
this allows people to start their fishing goals earlier without waiting
20 minutes for cargo at the caveat of the items costing 50 credits extra
than normal
## Changelog
🆑
add: Added new fishing category to games vendor
/🆑
2024-09-17 14:48:31 +02:00
Ghom ab222330ef Squashs four fish boolean vars into a bitfield (plus VV support) (#86623)
## About The Pull Request
this is a very marginal code improvement to fish. One bitfield is better
than a bunch of booleans, and it lets me add more TRUE/FALSE settings in
the future without having to make new vars for it.

Also VV support for several vars (fish_traits will have to wait), if me
or someone else wants to var-edit fish for testing purposes or whatsnot.

## Why It's Good For The Game
Slight code improvement and var-edititing support.

## Changelog
N/A
2024-09-16 22:10:14 -04:00
Ghom 686a1d3286 [NO GBP] The fishing line and float are now actually offset to match the fishing spot (#86659)
## About The Pull Request
I've made a PR before so that beam datum (and therefore the fishing
line) would take pixel_w/z into account, but what I didn't consider is
that the fishing line is actually attached to the float (as it should
be), so it did basically nothing on the other end of fishing lines while
fishing. This PR fixes that.

## Why It's Good For The Game
Fixing a small visual inconsistency.

## Changelog
N/A
2024-09-16 09:18:09 -04:00
Ghom 73685ac4b5 [NO GBP] Fixed the force of swordfish and armored pikes (#86620)
## About The Pull Request
Noticed this while resolving conflicts on another fish PR. I had
copypasted the code and then modified it, but I've forgot to change the
path too.

## Why It's Good For The Game
A mistake was made.

## Changelog

🆑
fix: Fixed the force of swordfish and armored pikes
/🆑
2024-09-15 14:06:49 +00:00
Ghom adc47b42ee You can release fish after catching it (#86126)
## About The Pull Request
This PR nerfs the mood event from fishing from 5 to 4. In exchange,
after catching a fish, you can release it in the appropriate fishing
spot for a minor positive mood event (if it's alive, or if the user has
either the morbid or naive traits). It also counts towards fish
population for fish that are limited in the amount of times they can be
catched. Mobs with the naive trait (clowns) get the positive mood event
even if the fish is dead or being released in a bad place like lava

Some fishing spots like toilets and moisture traps don't have this
option, but that's because they've their own interactions with fish
that'd otherwise be overridden by it.

This PR also fixes mobs with the morbid trait (coroners) not enjoying
aquarium in their own morbid ways and add a few touches pertaining the
naive trait like alternative chat messages when interacting with the
fish.

## Why It's Good For The Game
This gives players a way to get rid of unwanted fish without leaving it
to die on the floor, also it's in the spirit of recreational fishing.

## Changelog

🆑
fix: Fixed morbid mobs (coroners) not enjoying room beauty and aquariums
in their own weird ways.
add: You an now release fish after catching it for a positive moodlet
(or to repopulate certain fishing spot with rare fish).
/🆑

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
2024-09-15 13:57:41 +00:00
Ghom 00e2f6cd7b Fish sources are more thoroughfully stressed during unit tests. (#86637)
## About The Pull Request
The profound fisher component (for both mobs and gloves) as well as the
proc responsible for rolling rewards are now being tested too. This is
something I've meant to do in a while, #86633 just happened to kick it
off now.

## Why It's Good For The Game
More tests, fewer mistakes flying under the radar.

## Changelog
N/A
2024-09-15 13:49:48 +00:00
Ghom 2e44894321 [NO GBP] Fixes aquarium props not showing up in the aquarium. (#86618)
## About The Pull Request
RegisterSignals apparently doesn't throw warnings when the signals arg
is not a list and just silently fails.

## Why It's Good For The Game
Fixing stuff.

## Changelog

🆑
fix: Fixed aquarium props not showing up inside the aquarium.
/🆑
2024-09-15 13:57:32 +02:00
Ghom d832da7c0a [NO GBP] Fixes a line in fish sources code. (#86633)
## About The Pull Request
We ned to set the `leveling_exponent` here, not the
`weight_leveling_exponents` static variable itself.

## Why It's Good For The Game
Fixing fishing with baits. I should improve the unit tests later...

## Changelog

🆑
fix: Fishing with baits works again.
/🆑
2024-09-15 13:56:08 +02:00
Ghom 9a3dceda26 Fishing in a virtual domain doesn't deplete limited loot anymore (also the treasure chest is no longer anchored) (#86625)
## About The Pull Request
I've recently realized that bitrunning fishing spots can steal the
limited loot from outside the virtual reality, which sucks. Also Livrah
asked me why the treasure chest is anchored, to which I said it's
actually an oversight.

## Why It's Good For The Game
Fixing stuff.

## Changelog

🆑
fix: Bitrunning fishing spots no longer deplete limited loot from
outside the virtual reality.
fix: The treasure chest from the beach is no longer anchored to the
floor.
/🆑
2024-09-15 13:55:27 +02:00
Ghom 8d0e6734fe Fish (ya know, from fishing) is now edible (#86110)
## About The Pull Request
Fish (the item that you catch with a fishing rod) now has an edible
component attached to it, making it possible to eat them if you really
have to, at the cost of eventually killing and deleting the fish,
however, you normally shouldn't.
Along with the seafood and meat foodtypes flags, it possess the gore and
raw foodtypes too, making them pretty awful to eat unless you're a
(non-vegan) lizard, felinid, or wearing the strange bandana*, which can
only be found in the cqc kit case. Furthermore, it carry diseases like
the ones from food left on the floors for too long, so a strong stomach
is required to safely eat it even if you actually like it, dummy...
UNLESS you fry or grill it, thus killing the diseases (as well as the
fish) and removing both the gore and raw food types, then it becomes an
actually ok meal... UNLESS you're dumb enough to eat a pufferfish, a
donkfish or a slimefish.

That is more or less the general rule. A few fish stray for it. For
example, lavaloops are never raw (still gorey). The skeleton fish are
never edibles, and holodeck fish is, well, holographic and thus
disappears if you try to eat it.

*the strange bandana is a reference to MSG, and this is a reference to
the MGS3 fish eating animation.

This is WIP btw, I'll have to test it and add some then polish it.

## Why It's Good For The Game
Whole unprocessed fish should be technically edible, even if not safe to
eat nine times out of ten. Also I kinda need this if I want to add a
tasty fishing spot to the kitchen deepfriers.

## Changelog

🆑
add: Whole, unprocessed fish is now edible. However it's pretty much
reccomended to grill or fry it for over 30 spess seconds before
attempting to eat it.
fix: germ-covered, dirty food no longer tries to infect you through
contact.
/🆑
2024-09-15 13:13:47 +02:00
MrMelbert 8486f2f7e2 Storage / table interactions at the bottom of the interaction chain (#85512)
Because the wings were in fact made of wax 

## About The Pull Request

Storage goes to the very bottom of the interaction chain, hardcoded in
on `/atom`.
This is not preferred, obviously, but it ends up being a lot less
snowflaking overall.

Tables also go at the very bottom by extending `base_item_interaction`. 

Fixes #83742
Fixes #84434 
Fixes #83982
Fixes #85516
Fixes #84990
Fixes #84890
Closes #85036
Closes #84025 (RMB places it on the table.)
Closes #86616

Other changes:

Refactored pod storage to be less jank. Patches some exploits around it.

## Why It's Good For The Game

Should make a lot more interactions a lot more reliable... hopefully

## Changelog

🆑 Melbert
refactor: Storage and Tables are now a lower priority action, meaning
some uses of items on storage should work... better, now. Here's hoping
at least, report any oddities.
refactor: Note: For an overwhelming majority of items, **combat mode**
will attempt to attack/insert into the target, while **non-combat-mode**
will attempt to use on a target. This means screwdrivering or emagging a
MODsuit must be done on non-combat-mode, as combat mode will simply put
the screwdriver or emag into its storage. Same applies to tables, though
when in doubt, RMB may help (for things which are also weapons, like
mops).
refactor: Refactored escape pod storage, now they actually properly show
as unlocked on red alert and above.
/🆑
2024-09-12 23:48:19 +02:00
Ghom cdfbfe55ce Fish electrogenesis now scales with size. (#86593)
## About The Pull Request
A little touch to fish electrogenesis. Now its power scales with the
size of the fish. The initial values for the zip zap and the jumpercable
have been edited so that their average output is more or less
unaffected.

This PR also adds a check to fish petting to ensure that the user is
shocked only if the fish actually has the electrogenesis trait and not
just the energy that'd be generated if the fish had the trait.

## Why It's Good For The Game
The size and weight of a fish are variables that influence a lot of
mechanics such as reagents, number of fillets, weight class, force,
slowdown when carried or dragged, other traits, cargo value.
Electrogenesis should be no different.

Also fixing a possible oversight (not in the changelog because so far
the only fish with over 15 MJ is the zip zap and it's about impossible
to remove their electrogenesis trait rn also because they don't
reproduce).

## Changelog

🆑
balance: Fish electrogenesis now scales with size.
/🆑
2024-09-12 15:55:16 -04:00
Ghom 7a28a34986 [NO GBP] Fixing fishing code not caring whether a reward is limited or not. (#86125)
## About The Pull Request
At some point, I must have removed the check for limited items from
`get_modified_fish_table()` and never replaced the `fish_table.Copy()`
call with `get_fish_table()` (which has it), causing limited rewards to
be yet `again` unlimited. This extends to explosive and lobstrosities
(clientless mobs with the profound fisher comp) once the associated
value of the reward in the `fish_counts` list (the list of keeps track
of these limited rewards) reaches a negative value, because the code
only checks if the value is equal to zero where it frankly it should
check if the value is equal or less than zero.

Also I've set `explosion_malus` to true for a few fish sources that
cover multiple turfs, revisited a few comments and a redundant
UnregisterSignal call in lazy_fishing_spot

## Why It's Good For The Game
Fixing an oversight.

## Changelog

🆑
fix: Fixing fishing not caring whether a reward is limited or not.
/🆑
2024-09-12 13:19:03 +02:00
Ghom 59e3f1a240 Fishing rewards are now chosen once the minigame starts, not beforehand (feat. Crushing the difficulty now skips the minigame) (#86175)
## About The Pull Request
Rolling the reward up to 30 seconds before the minigame starts leaves
ample room for conditions to mutate and unforeseeable events to happen,
which can lead to more frequent issues. Furthermore, it makes more sense
this way, since you aren't pulling a carp until it bites the hook.

Also TIL that the difficulty of the fishing sources is added to the
default difficulty of the minigame, which is 15 and doesn't replace it,
which means most fishing spots have a default difficulty of 35 to 40, so
I thought it'd be nice if you somehow were able to skip the minigame if
you reduce the difficulty to 0 or less, which is totally possible with
some prep. IIRC, using the athletics fishing gloves at maximum fitness
level (21) + max fishing level (10) + settler quirk (5) + a favorite
bait (5) can lower the difficulty by a whooping 41 points, so it's
totally possible to achieve the skips on many fishing spots. Doing this
however won't train your fishing skill.

## Why It's Good For The Game
More stability. Also we skip the minigame entirely if it gets so easy it
becomes another waiting phase with little to no input.

## Changelog
🆑
balance: With enough preparation, good skills and equipment, you can
manage to skip the minigame phase of fishing by reducing the difficulty
all the way down to 0.
/🆑
2024-09-12 13:17:34 +02:00
Ghom e21d5e37e2 Slims down the aquarium content component, moving most of its code to the items it's attached to. (#86104)
## About The Pull Request
If I ever want to convert aquariums to component so that we get portable
fish tanks, I'll have to remove the garbage code from aquarium contents
first, because it's a bit confusing to look at, and most of it is
hard-coded or about fish animations, which is annoying because it'll
also prevent me from making different animations for different fish in
the long run. This PR should replace some of the mess with a few signals
so that we can have slightly more freedom around the visuals of aquarium
contents.

#86090 should be merged first by the way to avoid issues with missing
visuals.

## Why It's Good For The Game
See the previous section.

## Changelog
N/A
2024-09-12 13:09:58 +02:00
Ghom 023bfd0e5d Autowiki for fishing. (#86035)
## About The Pull Request
I've come to realize manually updating all fishing stuff on the very
much outdated wiki would be a colossal pain in the rear, so I've decided
to automate a few bits to generate autowiki lists containing information
about fish, fish traits, bait, hooks, reels, fishng rods, fish sources
and fish experiments.

Now tested.

## Why It's Good For The Game
Making a huge autowiki for a feature that's being constantly updated (by
me) but still has a particularly lame and outdated page on the wiki.

## Changelog
N/A
2024-09-10 12:58:05 -04:00
klorpa 69176298ed Spelling Fixes (#86056)
## About The Pull Request
Fixes several errors to spelling, grammar, and punctuation.
## Why It's Good For The Game
Improves readability and user experience.
## Changelog
🆑
spellcheck: fixed a few typos
/🆑
2024-09-10 17:04:59 +02:00
Ghom 953aa080a2 [NO GBP] Fixes the text of the instructions paper for lures. (#86537)
## About The Pull Request
I'm not a good writer, there're a couple instances that could've been
worded better, and a typo or two, however the biggest problem were two
bold tags not being properly closed on the last paragraph.

## Why It's Good For The Game
Spellchecking. 

## Changelog

🆑
spellcheck: fixed a few wording and markdown issues on the instructions
paper for fishing lures.
/🆑
2024-09-08 15:22:48 -04:00
Ghom 10c2b7364e The fishening v3: Fishing lures. (#86007)
## About The Pull Request
Over half of the line changes are merely from splitting the
fish_types.dm into several files since it was over 1k lines already.

One of the small issues with fishing right now is RNG. You want to get
some specific fish, and you go through all the micromanaging with hooks,
reels and baits only for the random number god to say "nope", and that's
only going to get worse the more fish are in the game.

However, I've a solution: (unconsumable/reusable) fishing lures, each of
which attracts different fish based on different conditions. The only
caveat is that they require to be spun at set intervals (usually 1 to 3
seconds, depending on the lure, with a second-long window). Worry not,
there're visual cues in the form of a green/red light hovering the
fishing float, so you won't get screwed up by the server slowing down or
whatever.
The whole box of lures (12 so far) can be from cargo for the fair price
of 450 credits.

I've also added 5 new fish: monkfish, plaice, pike, another punnier
variant of the pike, perch and squid. The latter is quite special
because of the ink production trait, which lets players use it to blind
others at a close range and when butchered, it yields an ink sac, which
can be processed into a can of squid ink (one less item exclusive to the
produce console), or thrown at people in a sort-of-similar fashion of
banana cream pies (except it's ink).

<details>
  <summary>Images</summary>

Fishing lures (forgot to take my cursor off the veggie one before the
screenshot):

![immagine](https://github.com/user-attachments/assets/8ba7a0f2-2a9f-4177-9c0d-ebeabd8a0ef7)

The five new fish:

![immagine](https://github.com/user-attachments/assets/1c251079-3b39-48bb-af6c-0a35623953a7)

</details>

<details>
<summary>A table of fish catchable wth each lure (excluding
holodeck)</summary>


![table](https://github.com/user-attachments/assets/dee95855-405b-4945-bfc2-70e816e46109)

</details>

A few more things in the CL, baitfish are a thing now.

## Why It's Good For The Game
There should be ways to contrast some of the RNG fishing has. After all,
it's only going to get more random the more fish are in the game.
Furthermore, I find it disappointing that a lot of food stuff is
exclusive to the ingredients console and there're no other ways to get
it.

## Changelog

🆑
add: Added fishing lures to the game. They don't get used up like baits
and let you catch specific kinds of fish, though they need to be spun
every few seconds. The whole set can be ordered from cargo for 450
credits.
balance: The magnet hook now removes dud chances.
add: Added five new fish types: perch, two types of pike, monkfish,
plaice and squid. Squids have a fairly special ink production trait,
which lets you use them (unless dead) to ink people face at close range,
and can be butchered for an ink sac, which can either be processed into
canned squid ink, or thrown at someone.
fix: Refactored throwing a little. Some items (specifically
components/elements) won't be triggered when caught. no more plates
shattering despite being caught for example.
add: Goldfish, lavaloops, needlefish and armorfish can now be used as
baits.
/🆑
2024-09-06 19:50:28 -04:00
Ghom 5d67d64534 The proc that calculates the force of a fish now takes metalgen into consideration. (#86159)
## About The Pull Request
This is more of a nit than anything. The game is so full of different
features, preventing each and every single mechanic from getting in the
way of something is a sisyphean task, yet we try, so one must imagine a
contributor happy.

## Why It's Good For The Game
Consistency.

## Changelog
It's nothing note-worthy.
2024-09-05 17:14:44 +02:00
Ghom 3a2d4258b2 Aquarium fish visuals cleanup and unit test. (#86090)
## About The Pull Request
Right now, there are two ways to set the aquarium visual for fish. The
first is to make a small little blob of pixels representing the fish
inside the aquarium, and then set the fish' sprite_width/sprite_height
vars for that little blob of pixels. The second is to set the fish'
source_width/source_height representing the boundaries of the fish
original icon state and then sprite_width/sprite_height to get how much
the icon state will be resized when used as an aquarium visual.

So far so good, except we're only humans, and this sort of stuff can and
will confuse us and overall make the process of adding new fish more
complex. There are quite a few fish that don't have these vars set up in
the right way, so I've decided to butcher out the second method in favor
of the first one. Given the size of the aquarium icon states, this is a
pretty trivial task. Furthermore it works better for fish whose sprites
are coiled or snakey-looking (jumpercables and emulsijack) or on a
diagonal axis.

I've also added an unit test to ensure future contributions don't ever
forget to set the right vars and make an aquarium icon state.

## Why It's Good For The Game
Less confusion, and two less fish variables (they've over 40!).

## Changelog

🆑
fix: fixed a few minor nits with aquarium fish visuals.
/🆑
2024-09-05 14:47:47 +02:00
Ben10Omintrix c1c9ecb8d5 [no gbp] aquarium ui fix (#86477)
## About The Pull Request
i wrongfully capitalized some stuff in my last commit 

## Why It's Good For The Game
fixes aquarium ui

## Changelog
🆑
fix: aquarium ui now displays props and fishes correctly
/🆑
2024-09-04 18:52:26 +00:00
Ben10Omintrix 91baa94ac5 event based incapicated and able_to_run (#86031)
## About The Pull Request
this is a revival of #82635 . i got permission from potato to reopen
this, he did almost all the work. i only just solved the conflicts and
fixed all the bugs that were preventing the original from being merged
(but it should be TMed first)

## Why It's Good For The Game
slightly improves the performance of basic mob AI

## Changelog
🆑
LemonInTheDark
refactor: able_to_run and incapacitated have been refactored to be event
based
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: ZephyrTFA <matthew@tfaluc.com>
2024-09-04 10:02:49 -04:00
Ben10Omintrix 9f686f5cc6 new aquarium ui and few new additions (#85627)
## About The Pull Request
gives the aquarium a new ui:

![image](https://github.com/user-attachments/assets/e00b16dd-e457-4742-95c3-c68dfeac9bc5)
u can now also pet and nickname ur fish through this interface. petting
them will have them do a small dance and increase their happiness

![image](https://github.com/user-attachments/assets/150528f0-befc-47ea-8dbc-01052bfb702d)

the hearts indicate how happy the fish is with the tank's living
conditions and if theyve been petted recently.

## Why It's Good For The Game
gives aquariums a better UI making it easier to use

## Changelog
🆑
qol: gives aquariums a new easier to use UI
/🆑
2024-09-04 15:44:36 +02:00
grungussuss de68bb7a2b fish sounds (#86445)
## About The Pull Request
sounds fishy around here
<details>



https://github.com/user-attachments/assets/9131a1c5-a3ad-4fa8-b858-9c3ddba3d450



https://github.com/user-attachments/assets/0d7381a8-b0c3-4796-befa-b71e4819aaa8



https://github.com/user-attachments/assets/a714c857-11bd-42b4-adaf-7447c236711e



https://github.com/user-attachments/assets/f8697933-1e5f-4403-b3f2-959e6e0c8254



https://github.com/user-attachments/assets/72530952-14ea-4c97-aa32-76c80036fff5



</details>

## Why It's Good For The Game


![image](https://github.com/user-attachments/assets/78e4621e-5358-49d3-846e-0e2464ec5133)

## Changelog

🆑 grungussuss
sound: fish now have new sounds
/🆑

---------

Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2024-09-04 14:40:34 +02:00
tgstation-ci[bot] 9a9b428b61 Wallening Revert [MDB Ignore][IDB Ignore] (#86161)
This PR is reverting the wallening by reverting everything up to
8868a5d1fe and replaying the PRs skipping
#85491.

The following 239 (39 + Wallening Main PR excluded) PRs need to be
replayed (DO NOT EDIT THIS LIST MANUALLY, IT IS USED BY THE BOT TO TRACK
PROGRESS):

  - [x] #85777 - Reverted in 3
  - [x] #85767 - Reverted in 2
  - [x] #85763 - Reverted in c
  - [x] #85762 - Reverted in 2
  - [x] #85760 - Reverted in dbc19df13b033ac8bb5a83fa38c5cf140cf31836
  - [x] #85733 - Reverted in 22f17d057eac71661b86c3f2186489568c130043
  - [x] #85721 - Reverted in 6d90643dbbc90f3d21f2d25dc85dc4d4f706d6a3
  - [x] #85719 - Reverted in c52954648309ad4786238f409cd33142d486190f
  - [x] #85705 - Reverted in 3b5ddabfd5ab2cfec226a643be6e8a8fd656c831
  - [x] #85684 - Reverted in cbc1839625f44ba67bcd5489c3629ef98e31b2d4
  - [x] #85662 - Reverted in 69cac24e236604c262093abea7b9566ecbd092c4
  - [x] #85663 - Reverted in f394c3b1430d346b0598abf19fe511b30c3f4676
  - [x] #85673 - Reverted in 8a9ae0411488c9c779a54c5c41076238c230a304
  - [x] #85718 - Reverted in f8f18d8b626e963b06555f76850702740d5de0c3
  - [x] #85667 - Reverted in a1365766d178b727b6c6b503ad410e9d88d57ddd
  - [x] #85683 - Reverted in 3bdb0207d883de8db6f726d976025517cc6d3cba
  - [x] #85676 - Reverted in 0a5d667b2c8a9a2519af2a4fda8cd39f568e5049
  - [x] #85661 - Reverted in 49fc6bc1815133644d7173aa7914ede6c900218a
  - [x] #85682 - Reverted in b41efe96fd72228b079319ac07c660f4cd974af6
  - [x] #85695 - Reverted in 89a173b136cb0297070cef39c5bc9783b6323f02
  - [x] #85654 - Reverted in 1e4836b5173a40fbeb8755e0fb76ebc8d39fe1e0
  - [x] #85655 - Reverted in b4dde41eebd0422e1ec440b4d8d54229fc9617f4
  - [x] #85634 - Reverted in 0c352fc785762da025a68873438593b508f757d9
  - [x] #85700 - Reverted in 1327cf7fe48d7f4fd227120508f77c831aefa4ca
  - [x] #85633 - Reverted in c71c8c9d43112a1f4c6331bbba546881dcffd59d
  - [x] #85649 - Reverted in 73484337077f616878e63208d9bf2309f0d2e579
  - [x] #85475 - Reverted in 839f700001a57646109e75332d5311fe27bbc957
  - [x] #85467 - Reverted in 6f08421f64d01b13775d146cf7a451f9f38e195a
  - [x] #85472 - Reverted in 63c6a9b04e72e8130df5eeb2861c75f80a97e3de
  - [x] #85300 - Reverted in 7c776034f34ee6a76810c1a3779f169f2430c418
  - [x] #85249 - Reverted in 257d02273751fc1f939f76756f70b614a6e06789
  - [x] #85236 - Reverted in f9f4c444c8fc027dea87d4dbe0ebb8dd6bc67154
  - [x] #85299 - Reverted in f24ddff51dc3fec7145a2e97f057f1b286921db3
  - [x] #85228 - Reverted in cb8c318f7e2183d9f941c582f79e4c8b2503d95c
  - [x] #84910 - Reverted in 2a562ca26d9d13f335c276487f66edaa0d21b3bd
  - [x] #84889 - Reverted in 679da6885b034bcd8843f7f4c855388bce263733
  - [x] #84766 - Reverted in 4035dd7adee74af0fed82c14a8749585b2ab1c96
  - [x] #85607 - Reverted in dc9a0462b4c287cee2d541925f8a9988d18d9d85
  - [x] #85618 - Reverted in 2a06f57c89939dc31e9273ef250bd050cff17ff1
  - [x] #85619 - Reverted in b98661affc90e44c68a58c05e57cdf1dfd094c93
  - [x] #85608 - Reverted in 57a935126233f90255aef0a55dab16524be1faac
  - [x] #85648 - Reverted in ab82c66a95d4fbff86040b421a86cc82dca73009
  - [x] #85692 - Reverted in f04fac92bd3594f12f244bae9ea0c5c300c737fb
  - [x] #85544 - Reverted in 7b1198eb5c700e85ec163e60828c01fac55a9909
  - [x] #85631 - Reverted in 81c04ceb553f9887d59f8edf8b2526ff3807264b
  - [x] #85529 - Reverted in 2a7e2c8e3856d67cdefda0d25803393070a6e996
  - [x] #85525 - Reverted in 6ed2d9f28a9333c705eafd21acf54771b8e4db36
  - [x] #85514 - Reverted in a4fa2aa79d93b69d15e0fb9cb1fb7a5bc288bb34
  - [x] #85520 - Reverted in 6e1bd4b11cd55e36cab332c5a0c90c76a2e43703
  - [x] #85521 - Reverted in 79afdac194da5f42b38fb0fdfc394f2b8d485266
  - [x] #85519 - Reverted in a967cae1fb3feea23fdf196595e496431740f52d
  - [x] #85513 - Reverted in e3934edf8794f93a37dc7f63c60aa64ed7b60736
  - [x] #85498 - Reverted in cf1fadbc54a1365362aaeb142cbbd4e2c3be6f15
  - [x] #85485 - Reverted in 2a650ef9c0454bd650d6a13d10c0cb71bb134b2b
  - [x] #85494 - Reverted in bbb97958010dc0f74cee279fd304a7fcaccb625e
  - [x] #85552 - Reverted in f1780715bd054300e50e9102ad150c76690d4ca1
  - [x] #85724 - Reverted in 6933699cef8b01f9aef989f36ca079680a2777ff
  - [x] #85735 - Reverted in a6564f19226ef3969bec0573b49fa772d6e6df31
  - [x] #85729 - Reverted in f728d121a2f27a3cc7973fc2041df9b7193b796d
  - [x] #85704 - Reverted in 38f5b034a3370eda4657a2a5a6adcf3df6ec280c
  - [x] #85660 - Reverted in 7db39869d37ff5b39574d88ffc872449ab5b457c
  - [x] #85752 - Reverted in 1f2988028b7cccad121fc658d6547d89453703b7
  - [x] #85592 - Reverted in 263cbcfcb54746a9361369d86b44cc3e2d375199
  - [x] #85580 - Reverted in a92d53624198dce844c108b5dbea09cf2a16cd10
  - [x] #85573 - Reverted in a7d51042355798038ced44f64e987261b85e93bc
  - [x] #85534 - Reverted in 31787e7d1ce4fec2ce20776672099bf35486a296
  - [x] #85511 - Reverted in 2567a2eb56cdb7058f89ea298e53197147198d82
  - [x] #85508 - Reverted in 69de2ac16c20d968adcd19f0732fd2f84a4ae90e
  - [x] #85680 - Reverted in 44437ac406c708b9a3ab3b47f4e3c10e77a0b91b
  - [x] #85551 - Reverted in 7f17d428fd2787a6982534bfc9ac9188fd4b8675
  - [x] #85478 - Reverted in bd9e575dafc62dc7e1259e8c19199ba15d82be4f
  - [x] #85476 - Reverted in 4ce8052076de0bb52f1ed87663920e98482ade62
  - [x] #85593 - Reverted in 9ff5924d3d56fcba3f180fc4b539568fb2013323
  - [x] #85441 - Reverted in db96015adaec01f3fbcb978796a0d7abd5668932
  - [x] #85567 - Reverted in 62696ad04fb34fd946708309bd3e439db9b3f488
  - [x] #85337 - Reverted in 1267e9f002d03c33187afd2e734e95a78a5ca6ac
  - [x] #85348 - Reverted in 4fcc3c659ee2a38d978e137252309644d5adde8f
  - [x] #85350 - Reverted in e691c833dd5aca2e7808591516e8443e8ccf1b27
  - [x] #85744 - Reverted in 251578d2868a691981b824a268c540b9c15a424e
  - [x] #85772 - Reverted in bc6804a04aa9368074bcc853e689c8fe6de2cb3a
  - [x] #85797 - Reverted in a05e36ec4a0129ff6901ea07488120b54a8ee124
  - [x] #85787 - Reverted in a5393f94b9e71d9ea0625e5fcfb5baaf16af38d3
  - [x] #85742 - Reverted in cd99a2aeaa1347b790c9bfdae35e41900e2ada9a
  - [x] #85440 - Reverted in 8b5ead7c7f0d8087b41256a296e730443752f17d
  - [x] #85739 - Reverted in 3511aae5a4798104220b79ad0e5b2b357dc1e83b
  - [x] #85293 - Reverted in fc687ca36ef476ab9080f0c62b427ab0af533d68
  - [x] #85716 - Reverted in 130b32a222a7585cfdde71aa561fb8b2c7d8083b
- ~~[ ] #85848 - Reverted in f6c46ca2f5cb2d039e4b26731570ca801741cc5d~~
(SKIPPED)
  - [x] #85795 - Reverted in 4684c3325a9135b6bf10eb43026f373993bf605d
  - [x] #85859 - Reverted in 0e0838fe11b7d9af4f62af4f7388ed8fb57bf49c
  - [x] #84873 - Reverted in 34407b79a45718a305f3bfe3fac7f129b4f1c51f
  - [x] #85864 - Reverted in 4b25a209c5019bb65922cd793aff339f20c3d026
- ~~[ ] #85845 - Reverted in a326246e81b7b9242bbf45e7ab3b31caf9ce8147~~
(SKIPPED)
  - [x] #85844 - Reverted in bdf1e6c1e3469884550d3211e51ec9303a022482
- ~~[ ] #85843 - Reverted in 41a8acb196af0988372b06ade7131d07d03daab3~~
(NOT BEING INCLUDED)
- ~~[ ] #85840 - Reverted in 4807bacea8418000f84d62ca0fb122846cab4929~~
(NOT BEING INCLUDED)
- ~~[ ] #85837 - Reverted in bc9edfa8666de14ca4e57e466146d753182a3a71~~
(NOT BEING INCLUDED)
  - [x] #85865 - Reverted in 14c958b465af40f0ff28b100047c4c572919ae19
- ~~[ ] #85818 - Reverted in a77256f74e2d330f5f76141eb9c994a8e5e45810~~
(NOT BEING INCLUDED)
  - [x] #85822 - Reverted in caba685be95fd336f0b09e88bccfb8856d5ad9b4
  - [x] #85794 - Reverted in 0d4de984eb8513d065e8ac724e8cde11f01d4ef7
  - [x] #85756 - Reverted in 9c5a7e1a5f895851493e149ccb5cd50e35cd6101
  - [x] #85852 - Reverted in 74303e5bbae8426a073d068ef4342d8acc420a09
- ~~[ ] #85841 - Reverted in e5831ce3cc87765cb13e6d342417bc1730780392~~
(NOT BEING INCLUDED)
- ~~[ ] #85834 - Reverted in 1be665204da791ec7520d0799c015157fc625953~~
(NOT BEING INCLUDED)
  - [x] #85792 - Reverted in 33b4e48175040f9f76ef83d3154f10c69589b6ad
  - [x] #85646 - Reverted in fd23a0d6c4c96470b688dc0a35370c61c7e32f61
- ~~[ ] #85799 - Reverted in 4a7a6d812f2f301c1e749c92f324223f9bde8a39~~
(NOT BEING INCLUDED)
  - [x] #85819 - Reverted in 8bf001b7889d3a4282947cd332833c473b98eac1
  - [x] #85479 - Reverted in 6aeb5ef4582c03febe0c914185d29f75df4d5d94
- ~~[ ] #85824 - Reverted in 9ca3edfaa17d97306ac73207ef32fd1272061f6b~~
(SKIPPED)
  - [x] #85406 - Reverted in 702280ff48c8aef44f4da9a85eb33a7bc5faa013
  - [x] #85778 - Reverted in ce0ec5c685aadb02ae049d6714f1d2fd6dae1f26
- ~~[ ] #85851 - Reverted in 610c68b275cf3c54181d36ce48bd97b0cce0665c~~
(NOT BEING INCLUDED)
  - [x] #85754 - Reverted in 5cbdda00c5335db79ea50aedba097de1d06bf91b
  - [x] #85266 - Reverted in abdfec798e5223dfa9d67e1967d7618454dbec28
- ~~[ ] #85823 - Reverted in 86b766abd3d77af8ad835a3464fc5ff95cc11079~~
(NOT BEING INCLUDED)
- ~~[ ] #85842 - Reverted in 7ddd47e26ef1bc336e92a6675a33ec3191039c16~~
(NOT BEING INCLUDED)
  - [x] #85857 - Reverted in e32312ee20e9fdccb6dd7c4dc2d185540bd2276b
  - [x] #85856 - Reverted in 7d5d74c2b55a08ef5553568e996053157359dbe2
  - [x] #85276 - Reverted in 1d6fa881e4aef1e6b368d5b6809bccb021fbbd2a
  - [x] #85886 - Reverted in f27d6cabdf8f06f29926616345fa82c4e1e48708
- ~~[ ] #85771 - Reverted in 019d898b601c9ef4d45b7ee0f2144518ee127ca9~~
(SKIPPED)
  - [x] #85464 - Reverted in adc00417795deb85f8aa6170b0f0a07c40c8798c
- ~~[ ] #85870 - Reverted in d69b998420bfb39693bb59b9b9a20611880fdafa~~
(NOT BEING INCLUDED)
- ~~[ ] #85869 - Reverted in 0063c69f111bb67144f9b379476250ce86c99eee~~
(NOT BEING INCLUDED)
  - [x] #85530 - Reverted in b40c93399411d277b3899e149196f3eb974f841f
- ~~[ ] #85871 - Reverted in 63908bbd0a71d0a2bd0a4691816c17cc9eb5310c~~
(NOT BEING INCLUDED)
- ~~[ ] #85832 - Reverted in b29dab083f091198d65a9b0754536f13a935dc2c~~
(SKIPPED)
- ~~[ ] #85825 - Reverted in d072b294ca3bc526df5128df45653db97ba38fe1~~
(NOT BEING INCLUDED)
  - [x] #85632 - Reverted in 290092c7d826aa5b100a38cd4bacc5330b39a934
  - [x] #85902 - Reverted in 76118d620e71f1819a9385863b689d9a8d4ea810
  - [x] #85906 - Reverted in 82623c2cc0fd9aee3e79c95fe5558146c59bc941
  - [x] #85907 - Reverted in 68b7305f21240ca28c33afc904ee532966b7c4bd
  - [x] #85449 - Reverted in ab86a79339ef7b01ceb08dc7279c698927ebcbfa
- ~~[ ] #85875 - Reverted in 0a1fcda90e638e66d574c247e93f0669d0c27b0e~~
(NOT BEING INCLUDED)
- ~~[ ] #85861 - Reverted in 6dad5111aa144860371c93a2d78094fe3d39a7e1~~
(NOT BEING INCLUDED)
  - [x] #85264 - Reverted in dc1d2dcc995f33fc5773e037f5171e9516897281
  - [x] #85726 - Reverted in dbd9ec81586c87c1ab2afc43d43c4f020907dc1b
  - [x] #85730 - Reverted in 7de2c2a1d012ccb03f82c6beabd71a66aa0f910a
  - [x] #85880 - Reverted in 02169d2f28611765997fa332dda69c8031436fd1
  - [x] #85176 - Reverted in e3c85aae1cf665c9892bf7280b7b48ea42323198
- ~~[ ] #85887 - Reverted in 56b35f294b303fd30fbd7685011d37b456d584c7~~
(NOT BEING INCLUDED)
  - [x] #85883 - Reverted in 53be06a505ebd8581114bba8590e378d387b6c1a
- ~~[ ] #85882 - Reverted in a8877ff0083ca5753e3d3b1b9c9edc3613fa6570~~
(NOT BEING INCLUDED)
  - [x] #85895 - Reverted in 741235d41b3a19a40434653f1c14fc0999fac9c3
- ~~[ ] #85746 - Reverted in b7aebb6e5788f6c484173f0a5e29f042ea0c8560~~
(NOT BEING INCLUDED)
- ~~[ ] #85889 - Reverted in d677231d8c55efcd2cf427d510d961cd00f186c7~~
(NOT BEING INCLUDED)
- ~~[ ] #85888 - Reverted in 693f79abae54980ee098d602ed79926d51d5094b~~
(NOT BEING INCLUDED)
  - [x] #85898 - Reverted in 4f41fda23e6b9711aef5d00836591c1ac230612e
- ~~[ ] #85821 - Reverted in 738c9a75f65c4a376da36ad208e1fd8fdeac1ff0~~
(NOT BEING INCLUDED)
  - [x] #85694 - Reverted in f7ea4d19cdaa2067c87c43362b514c684b56b1f3
  - [x] #85308 - Reverted in 4a89b62774da5e9ec9ea241c60ec2a99f51f9bed
  - [x] #85904 - Reverted in 999dbe1773cc7488c629bb8d0d21be5454dbef60
- ~~[ ] #85901 - Reverted in bbf832da9e0c61ad25221530df3b1e93cace25dd~~
(NOT BEING INCLUDED)
- ~~[ ] #85896 - Reverted in 542fe408728faaef8a16869e13c4661018a8a07c~~
(NOT BEING INCLUDED)
  - [x] #85927 - Reverted in 7dc87df28e79ef3e9f3fad83cc0907d2dc867c47
  - [x] #85908 - Reverted in bcca80f073a486ca7908e9636d0e8b275c2085bf
  - [x] #85929 - Reverted in 094bf3610a73961f6433a52ada1a52f25d853738
  - [x] #85877 - Reverted in 5874cafd0dab8d3bd61cf1f662793c2708f42dcc
  - [x] #85903 - Reverted in b3ba8fffc5548e0f2ae6bada3baf10bad3c75e54
- ~~[ ] #85913 - Reverted in 67f7ec48d20f9a64ce4664fa2c452a25b60db59e~~
(SKIPPED)
  - [x] #85914 - Reverted in 7efcd3a5f7fef33c2a1625386bfead80a6ed5309
  - [x] #85917 - Reverted in fc50a5ff998d0e7269131a029e533e90e9dc3c54
- ~~[ ] #85949 - Reverted in 10a8e0f5c69e3ca1eb6e26f00945bfe226598bc2~~
(NOT BEING INCLUDED)
- ~~[ ] #85338 - Reverted in 847549ab938f77464829b1392a1b6f2b2f4b9e8f~~
(SKIPPED)
- ~~[ ] #85922 - Reverted in 3d9388249b8c322aac5dd4980d4ab4673ca01006~~
(SKIPPED)
  - [x] #85923 - Reverted in 2c6ffa4decf40eb52a92353aeb98aee8cbc7b4a2
- ~~[ ] #85920 - Reverted in 1de5b03981d9fcf9c2e6823bffa515fb939aa541~~
(NOT BEING INCLUDED)
  - [x] #85919 - Reverted in 1773e9baccdc941285f56ccb416f5c7125b031ef
  - [x] #85271 - Reverted in aecf8002cf2807a76b6b295867e50392b4bc4534
  - [x] #85918 - Reverted in 023ec3a4d1b1b2fc8f596fea65a77ddc9a06689f
  - [x] #85924 - Reverted in e4886079ad90f33628ac59e0793dfbbc8b8b9420
  - [x] #85928 - Reverted in 7470b7d5ac40be21c345e8825f4c4efc4738e29f
  - [x] #85926 - Reverted in 7761c9e3a1f442f37d4db4b27e5d78fae95edf00
  - [x] #85900 - Reverted in 633736cb0655dc464e9794666c63ae6ec7689826
  - [x] #85909 - Reverted in a47c7ec8a77bd02f8b7bb1ce3c621efbe57077c3
- ~~[ ] #85931 - Reverted in 9bc7a412982da6fbdb9cd24570d98877b76a45c3~~
(NOT BEING INCLUDED)
- ~~[ ] #85894 - Reverted in c15e1711656929aeb59f482145ecf029b40d58b8~~
(SKIPPED)
- ~~[ ] #85759 - Reverted in f45d70be0ffb9bf007bfa18a1bd1b5ce23d6dcfc~~
(SKIPPED)
- ~~[ ] #85892 - Reverted in fc08dc1a7160f584c94e368962eb56c18dccc86a~~
(SKIPPED)
- ~~[ ] #85915 - Reverted in 428f475c26f383998a689560a16de86da3f17557~~
(NOT BEING INCLUDED)
  - [x] #85222 - Reverted in 66e7ac2f00735c90acdb69a50c9e485a0f4e1552
  - [x] #85150 - Reverted in 3079387f926e41febb576105ec0b3acec2f7beba
  - [x] #85935 - Reverted in ce6114f644593ead295763362a61d19077f22acf
- ~~[ ] #85936 - Reverted in f601fa796bce7e70645a84fff91391cbb6ed8e37~~
(NOT BEING INCLUDED)
  - [x] #85937 - Reverted in 64242f589df3d9118fd5c09d19574758260c76a1
- ~~[ ] #85940 - Reverted in a979c6c24705a8729efab5eca40840f1c8070f1d~~
(NOT BEING INCLUDED)
- ~~[ ] #85942 - Reverted in 9562c14083212fc962b8687663ba5fac2ebfdd1a~~
(NOT BEING INCLUDED)
  - [x] #85944 - Reverted in adf8e1927e4b9886c9042d6a0eaaef74e4e0e102
  - [x] #85605 - Reverted in 88dbfb4f859f12549e8cf8ed5204ee8d7183d40f
  - [x] #85945 - Reverted in dea9e79a9c298eae05b8d173d8df4a37218e2d9c
  - [x] #84964 - Reverted in 234481fb1d92a266768fcbca49245151236803ed
  - [x] #85952 - Reverted in c62d87ab54d687db64b1551b319195527ca92924
  - [x] #85953 - Reverted in bd0e46245ccb597081b8baa4f81ff85949f672be
- ~~[ ] #85943 - Reverted in 697b6841391354885ef2d314d9185b8eee7a5cb0~~
(NOT BEING INCLUDED)
  - [x] #85946 - Reverted in f4afd4d330b6fc28397f7707bca8773d44cb15ed
  - [x] #85950 - Reverted in 394fffcb836f32f4e1b1fd91a621249e0e5d7d67
  - [x] #85955 - Reverted in 2230a5bc141cd11fc79ccf6b4b653257508a7e65
  - [x] #85319 - Reverted in fdaddd9cd6ed0bdd1cd78ba3c9729035936abcbd
- ~~[ ] #85934 - Reverted in 41bb6122b6d6e3c38c500d5ddf63808836ab090e~~
(NOT BEING INCLUDED)
- ~~[ ] #85255 - Reverted in 3e213b8554b40e53f6429969d6e9dbaa357fb09e~~
(SKIPPED)
- ~~[ ] #85961 - Reverted in 6f3d000b3601dc7f75f7edd221fab3edc3bbbd8c~~
(NOT BEING INCLUDED)
  - [x] #85956 - Reverted in a5bf22a93ca1a149ca839e6c874d088b32c7c25f
  - [x] #85958 - Reverted in c964a46741bd26a600bb75bc6463c629c11c914f
- ~~[ ] #85969 - Reverted in b599cd4bd3ae223210eb0d3b47c3bd814e1cb08c~~
(NOT BEING INCLUDED)
  - [x] #85252 - Reverted in 5a0e2f31a6e1093ab47970056f5bb3af54172e12
  - [x] #85984 - Reverted in b000da82f62bb48b059a881d596f3a2e7d985d21
  - [x] #85137 - Reverted in 1f31b558e41fc66d5da9db30a83d89cbb9949eae
  - [x] #85881 - Reverted in f3913f94c4557c4fc9d5605cd8e875accabebda6
  - [x] #85972 - Reverted in d3afed87a3a8eed7e0016512d2186b6aded0fca9
  - [x] #85998 - Reverted in 3d286b763cf2f7fe11b6f0ccb2456130570726c2
  - [x] #85358 - Reverted in 75f84bda1b3c80d54ae94a567bf96016aaae45b2
- ~~[ ] #85964 - Reverted in be1aeb010afa20c1b6949218d8911ee9e900b3d7~~
(SKIPPED)
  - [x] #85960 - Reverted in 69cbfce1529377ce7cd998ab474add0d61650d7f
  - [x] #85992 - Reverted in 89e4a7bb0b793461338ba1b0a3d332bf78ef140c
  - [x] #85967 - Reverted in d398e418eb340f309be523514ae0befdf1869560
  - [x] #84888 - Reverted in bb98eb09f06a1fdc0bbb733d6a42d711e6d477bc
- ~~[ ] #85983 - Reverted in 81152a9cd347eb7b4073758e2e96490e6e729ca9~~
(NOT BEING INCLUDED)
  - [x] #85976 - Reverted in 93c091347ca8f04763b91fd4c39ccdff848a0d50
- ~~[ ] #85962 - Reverted in de32ea25b534c725e3d55418ef0363145f0ed2b0~~
(NOT BEING INCLUDED)
  - [x] #85977 - Reverted in 393652a1ef065014748ae6977a9f36b32c99dc7c
  - [x] #85959 - Reverted in 52e6e07eb98bcb74a423934b14d5850dbf2c6647
- ~~[ ] #85988 - Reverted in a5853ccde46b5fee2d9eb31755384de15e7a5a87~~
(SKIPPED)
- ~~[ ] #85974 - Reverted in eab20ba04e6b06f862a0fb35cedb6374af7b93c0~~
(SKIPPED)
  - [x] #85939 - Reverted in ca85b05692f55f6b3e4bd0b3f30c63f89531c33f
  - [x] #85878 - Reverted in 3b3d3dbff9148e46b01f3af28f17f66bef4dfd16
  - [x] #85858 - Reverted in 08d6082e62d07117170ff5ffd065daad1278e853
  - [x] #85651 - Reverted in b76ab4a2114dd0eb78336878b2825d9919c210cc
  - [x] #85505 - Reverted in 0958eaa7b6f4d48400bea4e215e11edaa933ba8a
- ~~[ ] #85352 - Reverted in 620cec18618e514bbe4d3eb0a0d0db1528b9d312~~
(SKIPPED)
  - [x] #85279 - Reverted in ba0fd529ef94ba793fe2eee40975533fe8f475e3
  - [x] #85954 - Reverted in d7fe0336f2a968b93fd02361814930236e3b8ddf
- ~~[ ] #85996 - Reverted in 5fbd62139e0c1b668aaaf35d249d527cdc276b93~~
(SKIPPED)
  - [x] #85994 - Reverted in c99a03c6833ac58e0288111953573f697488234f
  - [x] #85470 - Reverted in fbd5ac46d84d27455cbcf5f998741124ed6de625
- ~~[ ] #85981 - Reverted in dc74c75011ddfb1b16d644fd2ca5607599532d6f~~
(NOT BEING INCLUDED)
  - [x] #86011 - Reverted in b14b42e70e2bd21f19d443065b2342e4591c5e05
  - [x] #85820 - Reverted in 26248546b9f7d0fedec52e7b2f7def40d457e29f
  - [x] #86013 - Reverted in e17ac14f53d08be988f0516e7c39d31496a35184
  - [x] #85986 - Reverted in 4021ffea0b1bbb1f6c5b26a296abd5a8bda1d5b3
  - [x] #86019 - Reverted in c0801b3aa5dbdd33ca7c6c81e80c9fa573ada9e1
  - [x] #86010 - Reverted in 10dff005729305b75deaf1c5755a94125fa5141d
  - [x] #86029 - Reverted in 664619213db52930fa22007561dad01fe8bb3de4
  - [x] #86024 - Reverted in e74ea4368cbd2cd085aa6e8bbe83db07800b0bd4
  - [x] #86022 - Reverted in 0b2fc6a1f478c48546b161fd3ddd571f7ed6000f
  - [x] #86015 - Reverted in b99d93592dbf8840a035f22f26b64bcf27c817cb
  - [x] #85415 - Reverted in d6102c7339838675c03eb771d7a3b5a9bea4035d
- ~~[ ] #85703 - Reverted in 339b7edf3c0318f9f02922018d6918211660234f~~
(SKIPPED)
  - [x] #85890 - Reverted in 4e54f376e07071f84ed283e7468e334aaf6e4e02
  - [x] #86046 - Reverted in 0bbe2c9a048c229d151682e08aca1fa176c3ad91
  - [x] #86008 - Reverted in a0a0635cd6618618c49fda7cf150231d62a14236
  - [x] #86042 - Reverted in fa376315a064b945ed9846225c7f48e38e9b55ed
  - [x] #85891 - Reverted in 603dcd691e9eaad0a610c60c94fee522391bd2b3
  - [x] #86040 - Reverted in e42fc7618194b4b01cb68ca0c61385e465d0cb05
  - [x] #86025 - Reverted in 536bb25fe91845fe05bb7d512d8e73cc193b67ff
  - [x] #86012 - Reverted in 5cb4ec5bdf87653a5bb651c536f21423db30887e
  - [x] #86004 - Reverted in e9536143e78e3b0614d3ce6ee2c9a40005ba9b91
  - [x] #85989 - Reverted in 88a92322c2f028d2e3a2be18951d35d1135a6268
  - [x] #86044 - Reverted in d0a5fb5956be23144e325d3d51f53cb103dd5bbe
  - [x] #86001 - Reverted in 195c3597044315c9b10d002e6196911ac0622c45
  - [x] #86030 - Reverted in 5265796286b481d34fc91a1f8c58b6373d23415e
  - [x] #86055 - Reverted in e82138798cda028b673fe7ac83890e5a6b9e16d2
  - [x] #86057 - Reverted in c921900e6151552aa0768b4c9d7cc58c58dfbcc0
  - [x] #86014 - Reverted in c004d4e989a2faa672793f58fd98bd6fded8194e
  - [x] #85304 - Reverted in 611510bd7f65ee06738b7344326d72f57a131f8a
  - [x] #86061 - Reverted in f14b0a245dcf164bb99f7696e180847bb5be9b11
  - [x] #86075 - Reverted in 5339fe6c098d48769eda3f9935aa3488faa73097
  - [x] #86089 - Reverted in 10b5398e6b55f4799ca7d6740ac50c031e157c43
  - [x] #86081 - Reverted in ba86f43383cd2e8417c0a465c23fe3227fcd5520
  - [x] #85609 - Reverted in 9e5208feaca3163b7f4237c316d880161933777f
  - [x] #86114 - Reverted in cf410a97b8348381f96cc784a6489d7c1dea49ba
  - [x] #86023 - Reverted in a7a2e95c0c1b0598f15019934c80ccc80a9f89af
  - [x] #86027 - Reverted in 9cf71611befac64d26d326c060ef082262aeca70
  - [x] #86016 - Reverted in b67fa06e1559c8de87899bd06d09891b4c7ae947
  - [x] #86095 - Reverted in dc5abd827bb56e1609afe5a9d2bdd957d40cc75c
  - [x] #86105 - Reverted in f5b8e7ecbe99cb38e829a98a4f6eb2c200af8b91
  - [x] #86070 - Reverted in 6c460bbc22827bdbc566b524b8e6a959cbb61c37

After that some startup commits on this branch need to be reverted then
it can be merged.

---------

Co-authored-by: tgstation-ci <179393467+tgstation-ci[bot]@users.noreply.github.com>
Co-authored-by: Jordan Dominion <Cyberboss@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: MrMelbert <kmelbert4@gmail.com>
2024-09-03 10:41:51 +02:00
Ghom 1e36864d4f Removes a no longer used fish variable. (#86105)
## About The Pull Request
Since Ben revamped the fish analyzer, this variable is no longer used.
Frankly it could as well be removed. Knowing the family history of a
fish really isn't in the top 100 things to do before being robusted in
maints.

## Why It's Good For The Game
Unused var.

## Changelog
N/A.
2024-08-29 13:52:19 +02:00
Ghom 3152a7e07e [NO GBP] Fixes the chainsaw evolution for goldfishes (#86001)
## About The Pull Request
It was checking if the size was over 1000 instead of the weight. Also
I'm changing the code to use the initial values of the average size and
weight of goldfish, since I'm shrinking the lil' fella a bit in an
upcoming PR.

## Why It's Good For The Game
Fixing an oopsie.

## Changelog

🆑
fix: Fixes the chainsaw evolution for goldfishes.
/🆑
2024-08-25 18:05:19 +01:00
Ghom 2e0ff48bbb Fixing three fishing issues in one PR. (#86042)
## About The Pull Request
This will fix #83730, fix #85985 and fix #86033.

## Why It's Good For The Game
See above.

## Changelog

🆑
fix: You can no longer pickup closets and crates wrapped in a package
with a fishing rod.
fix: Fixed a few harddel issues with mob spawns that caused charred
corpses fished from lavaland to create an invisible blockade.
fix: Fixed being able to fish up mobs that have fallen in totally
different z-levels with a rescue hook (i.e. from bitrunning domains to
lavaland).
/🆑

---------

Co-authored-by: MrMelbert <51863163+MrMelbert@users.noreply.github.com>
2024-08-24 23:45:27 +01:00
Ghom 73081bcff0 Add messages (paper, photos, cash) in bottles. (#85703)
## About The Pull Request
This PR adds a new persistent feature: message inside bottles. These are
basically glass bottles with inside a piece of paper, a photo or space
cash (no holocredits, and most bills rarely go over 1000 credits anyway)
from a previous round, which can be fished at the beach, or from the
relative fishing portals.

Each piece of written paper or photo that isn't map-loaded has a roughly
a 0.2% chance to be added to the message bottles database at the end of
the round. However, you can also manually toss a glass bottle with
inside a paper/photo/bill into the ocean (or a fishing portal generator
with the ocean/beach module loaded) for guaranteed results.

The bottles are removed from the database once fished up by the by,
unless tossed back into the ocean.

I've also offset a couple bottle sprites that weren't properly aligned
(for the message overlays).

TODO:
- [x] add a couple (20 prob or less) message bottle spawners to the
beach away mission or something.
- [x] add a few sounds for adding and removing the message from the
bottle. (pickup/drop sounds already handle that)
- [x] test it properly.

## Why It's Good For The Game
I think it'd be neat to have a way to send photos, snarky "seek grass"
messages, as well as the occasional financial aid to future players, and
furthermore, another thing to tie fishing to.

## Changelog

🆑
add: You can place papers, photos and cash bills (no holochips) inside
bottles and then toss them into the ocean (or fishing portal gen with
relative settings) with right-click, for others to fish them up on
future rounds.
/🆑
2024-08-24 01:31:38 -04:00
Ghom c77c50ae3d Athletic Fishing Gloves and Fishing Module to fish without a fishing rod (#85415)
## About The Pull Request
This PR adds a pair of fishing gloves that let you fish and work out at
once, and also a MODsuit module that lets you use MOD gloves to do the
same thing (without the workout, an external fishing rod has to be
inserted first). In both cases, you can equip or unequip bait, hook and
line by using the fishing rod interface which you can open by
right-clicking the gloves. To get both of them, you've to perform the
first fish scanning experiment.

I had to refactor the profound fisher component a bit to do this.

## Why It's Good For The Game
Interweaving a few different features with fishing. Fishing and
Athletics are both skills, so I thought it'd be nice if it were a way to
take advantage of both, and level them up accordingly. Also fishing
gloves with maxxed out athletics can make fishing a lot noticeably
easier at higher difficulty.

## Changelog

🆑
add: Added Athletic Fishing Gloves and Fishing Glove Module to the
advanced fishing tech node. Both can be used to fish without having to
hold a fishing rod. The athletic fishing gloves will also train your
athletics skill.
/🆑
2024-08-23 21:29:09 +00:00
Da Cool Boss 0fc2e41d24 Adds descriptions to aquarium decoration items (#86019)
## About The Pull Request
Adds item descriptions to aquarium decorations, and makes them contain a
small amount of plastic (about as much as a plastic coin each).
## Why It's Good For The Game
Currently they inherit and share the placeholder description "this is
boring" which isn't good for items players are supposed to have. Making
them contain plastic is for flavour reasons, previously they contained
no materials.
## Changelog
🆑
fix: Aquarium decorations now contain plastic.
spellcheck: Added item descriptions for aquarium decorations.
/🆑
2024-08-23 19:38:00 +02:00
Ghom 7fcfc9dc1c Fishing toolboxes (and maint) now come with a paper slip containing fishing-related tips. (#85279)
## About The Pull Request
Fishing is full of stuff that goes under the radar with little
visibility and the [wiki page](https://tgstation13.org/wiki/Fishing) is
outdated as fuck (look at all those ugly old codersprites oh my
goodness). I don't want to shove tip of the rounds for something so
niche but a few tips inside the fishing toolboxes people get sometimes,
as well as maintenance shouldn't hurt.

This PR is for currently a draft until the other PRs are in. Many of the
tips refer to stuff that hasn't been merged yet.

## Why It's Good For The Game
I cannot trust the wiki contributors to do a good job at it nor keep up
with the continuous changes I do. Also these might help players
sometimes.

## Changelog

🆑
add: Fishing toolboxes (and occasionally maintenance) now come with a
paper slip containing fishing-related tips.
/🆑

---------

Co-authored-by: necromanceranne <40847847+necromanceranne@users.noreply.github.com>
2024-08-21 15:25:03 +01:00
Ghom 659e6f0ca2 Fishing expansion 2: one-year later boogaloo (#85252)
## About The Pull Request
This PR mainly adds more fish and more fishing spots to the game, while
refactoring a few aspects of the fishing minigame.

Listing out with the new fish:
- Arctic char: mainly filler content for the ice hole fishing spot
- Sockeye Salmon: ditto but also provides better fillets that boost the
quality of resulting food items when cooked or used in recipes
- Soulfish: joke content, found by the cursed spring ruin
- Skin Crab: also a joke found by the cursed spring
- Bump-Fish: filler for the sand fishing spot
- Burrower Crab: ditto, reusing a fish sprite I made last year
- Sand Surfer: ditto
- Three-Eyed Goldfish: It's a reference, doh
- Stingray: A modestly weaponizable fish (whoops I've forgot to set the
hit sounds), it possess a few traits that make it deliver bits of venom
each time you hit someone with it
- Swordfish: Huge-ass fish that may require two hands to wield (or not,
if the RNG wants to make it smaller). Stats-wise, it's more or less the
equivalent of the captain sabre, if not stronger (and more unwieldy due
to size and weight). Becomes weaker when dead. Also gives better quality
fillets.
- Chainsawfish: A mutation of the goldfish with some size, weight and
traits requirements, but can also be found on emagged fishing portals.
Stronger than the swordfish, it behaves sort of like a chainsaw, with
the similar tool behaviour and var values. Also becomes weaker when
dead.

As for the fishing spots, you can now fish on sand turfs, at the cursed
springs or on ice. Rivers/jungle water now has its own fishing spot
datum, and no longer uses the generic fishing portal one. To fish on
ice, you first have to carve a hole with a pick or a shovel.

I've also refactored the fish "AI" hardcoded stuff used in the fishing
minigame into their own datums, which let me add a few fancier ways to
how the fish moves during the minigame (i.e. the soulfish moving at 1
FPS or the chainsawfish getting faster and faster).

As for the sword and chainsaw fish, their potential strength is balanced
out by the need of keeping them alive, as well as the potential
cumbersomeness, two-handed wielding and potential slowdown from the
excessive weight of the fish (Thank you Big Slappy for the inspiration).

Other minor changes include: Pufferfish giving better quality fillets
(too bad they're poisonous, I'll go and make a skillchip to let cooks
safely separate the poisonous liver from the fillets); McGill The
lawyer's goldfish) having a 15% of being three-eyed; the aforementioned
slowdown from fish weight and two-handed carry from fish size; a couple
new fish icons (the ones that hint you on what you're trying to catch)
for the fishing minigame; a few adjustments to prevent self-reproducing
fish from ignoring the population cap and let fish with a stable
population of 1 to crossbreed (also gotta make a different PR to let it
happen rarely without the crossbreeding trait).

This PR is still a WIP, gotta test it several times.

## Why It's Good For The Game
Fishing is something I've been working on for about a year now, but
there are still a few places where it's kinda lackluster, like there's
not enough diverse fishing spots or useful fish (I'll be working on a
separate PR to make the logistic of a carrying a fish around without
letting it die a tad easier). Also, look at these sprites:

![new
fish](https://github.com/user-attachments/assets/49c55065-32b0-44ec-ac12-74b3a1763f50)

Can you guess which is which?

## Changelog

For the sake of not dumping players with niche information 90% of the
players won't understand, I'll keep the CL pretty generic

🆑
add: Added twelve new fish types to the game. Some are cool, other are
not, some come with their own special traits and some are straight-up
weapons.
add: Added more fishing spots to the game. Sand, ice, rivers, the cursed
spring...
balance: A few fish like salmon, swordfish and pufferfish (poisonous
btw) now give better quality fillets when butchered, which can improve
the quality of food that uses them even further.
balance: Excessive fish weight will make the fish slowier to carry,
while excessive size may make it require two hands.
balance: Adjusted size, weight and cooldowns of several fish, for the
better.
/🆑
2024-08-20 06:46:11 +02:00
John Willard 1880003270 Reworks silicon/ai access checking & fixes some ui_act's (#84964)
## About The Pull Request

Currently to check for Silicon access, we do:
``if is silicon or is admin ghost or has unlimited silicon privileges or
has machine remote in hand``
What has unlimited silicon privileges? Bots, Drones, and admin ghosts.
To check for AI access, it just checks for AI instead of silicon, and
doesnt check for unlimited silicon privileges.

This was kinda silly, so I thought I should make this a little easier to
understand.
Now all silicon/ai traits come from ``AI_ACCESS_TRAIT`` or
``SILICON_ACCESS_TRAIT``. I made a single exception to keep Admin ghost,
since now instead of being a var on the client, we moved it to using the
same trait but giving it to the client instead, but since we have to
keep parity with previous functionality (admins can spawn in and not
have this on, it only works while as a ghost), I kept previous checks as
well.

No more type checks, removes a silly var on the mob level and another on
the client.

Now while I was doing this, I found a lot of tgui's ``ui_act`` still
uses ``usr`` and the wrong args, so I fixed those wherever I saw them,
and used a mass replace for the args.

Other changes:

- machinery's ``ui_act`` from
https://github.com/tgstation/tgstation/pull/81250 had ``isAI`` replaced
with ``HAS_AI_ACCESS``, this has been reverted. Machine wands and admin
ghosts no longer get kicked off things not on cameras. This was my
fault, I overlooked this when adding Human AI.
- Human AI's wand gives AI control as long as it's in your hand, you can
swap to your offhand. I hope this doesn't end up going horribly,
otherwise I'll revert this part. It should let human AIs not have their
UI closed on them when swapping to eat food or use their door wand or
whatnot.
- Bots previously had special checks to scan reagents and be
unobservant, I replaced this with giving them the trait. I also fixed an
instance of unobservant not being used, so now statues don't affect the
basic creature, whatever that is.

## Why It's Good For The Game

This is an easier to understand way of handling silicon access and makes
these mobs more consistent between eachother.
Other than what I've mentioned above, this should have no impact on
gameplay itself.

## Changelog

🆑
fix: Statues don't count as eyes to creatures.
fix: Human AIs and Admin ghosts no longer get kicked off of machines
that aren't on cameranets.
/🆑
2024-08-19 10:43:45 +00:00
Ghom ff3b73dc82 Refactored the fish case and examining fish. New bluespace fish case to fit large fish inside a backpack. (#85271)
## About The Pull Request
I've refactored the FISH_SAFE_STORAGE trait into an element, mainly
because there were a few problems with how it worked: It wasn't stopping
hunger from raising, ditto with the breeding wait, and it offered no
healing whatsoever, which I find kind of a bummer. The new element will
keep the fish from getting any hungrier or ready to reproduce and will
heal them up to 65% of their base health.

Also, I've added a new bluespace fish case as a techweb design, found
along with other stuff in the advanced fishing node, though if you want
I can move it to a bluespace node. This should make it possible to
reasonably store and carry around larger fish.

Examining a fish will no longer give out readings on weight and size if
you haven't at least attempted fishing once (you can get to novice level
in less than a minute). While examining a fish with apprentice level or
higher will also give readings on the general conditions of the fish (is
it starving? drowning? has it lost a considerable chunk of health?). The
fishing skillchip also gives you these traits.

I've also converted two fish variables into traits, because fish have
waaaay too many variables. and gave some topdown shading to the
pre-existing fishbox sprite.

## Why It's Good For The Game


## Changelog

🆑
add: Added a bluespace fish case to the advanced fishing node.
balance: Fish cases will keep a fish from getting hungrier or ready to
reproduce, while also healing it up to 65% health.
balance: Examining a fish with zero fishing skill whatsoever won't give
a reading on its size and weight. Conversely, examining one with the
skill leveled two times will give general information on if it's
starving, sick, hungry, or dead.
/🆑
2024-08-18 06:06:17 -07:00
Ghom d9168e7254 Adds a treasure chest to the ocean/beach fishing spot. (#85276)
## About The Pull Request
This PR adds a treasure chest that can be fished from the ocean if
you're lucky enough (or have enough explosives or lobstrosities to do it
for you). The treasure chest is basically a mystery box (like the ones
from the deathmatch) with a couple catches; the treasure chest can be
opened up to 18 times in total before breaking down, however, it can
only be opened up to 3 times per spaceman, encouraging the player to
share it with others.

Here the possible loot by the by:
- A toolbox containing a master fishing rod, all the hooks and reels,
fish feed, an experi-scanner, an aquarium kit and a can of super baits
- A box containing a lazarus injector, a cup and a bottle of strange
reagent which you can use to revive fish now
- A circuit board for a pre-emagged fishing portal generator
- A master fishing rod
- A can of super fishing baits
- A fish case containing Tiziran fish
- A fish case containing Syndicate fish
- An old, yet fairly strong cutlass
- An old laser gun which fires only 5 shots before running out
- A crank laser musket
- A smoothbore disabler
- A surplus bolt action rifle
- A ration pack
- A can of squid ink
- A bottle of aged rum that forces you to switch to the piratespeak
language
- A money bag with some doubloons inside
- A piratespeak manual
- Pirate armored coat
- Pirate armored hat
- A pre-loaded cannon
- Four trash cannon balls
- Four cannon balls

## Why It's Good For The Game
Mystery boxes are fun, from the little fanfare they play to the
potential loot they can give, and I had an old treasure chest I had
sprited for fun years ago around so I've come up with an entertaining
idea. If you think the loot list is a bit too hot, I can cool it down a
bit.
Also yeah, I wanted to make fish revivable with strange reagent, since
you can already do it with lazarus injectors even though using a lazarus
injector for this would be a severe waste of mining points.

## Changelog

🆑
add: Added a treasure chest you can rarely fish from the ocean/beach,
with loot being a mix of fishing and piratey stuff.
add: You can revive fish with strange reagent now.
/🆑
2024-08-16 15:53:52 +02:00
YesterdaysPromise fec946e9c0 /Icon/ Folder cleansing crusade part, I think 4; post-wallening clean-up. (#85823)
Hello everybuddy, your number three rated coder-failure here to clean up
some mess. This PR accomplishes some of the more major structural clean
up changes I wanted to do with /obj/ folder, but decided to wait on
until wallening gets merged, and so, time has come. Several things to
still be done, although I know these cleaning PR's are quite a load, so
will wait for this one to get done with first.

## Why It's Good For The Game
Saner spriters, better sprites, less annoyance. Also deleted a whole
load of redundancy this time around, a lot of sprites which existed
simultaniously in two places now got exit their quantum superposition.
2024-08-15 20:22:02 -07:00
SmArtKar 151c95cbbf Fixed fish analyzers not being able to scan fish (#85772)
## About The Pull Request

Closes #85741

## Changelog
🆑
fix: Fixed fish analyzers not being able to scan fish
/🆑
2024-08-14 14:02:02 +02:00
Ghom 34da6fa88a Stop clientless lobstrosities from fishing other lobstrosities and the necropolis chest (#85365)
## About The Pull Request
So, I've heard something funny happened on a downstream. A lobstrosity
fished out another lobstrosity from the plasma river. And later another
couple lobstrosities joined the fry, then again and again until it
became a gang of over 50 lobstrosities that would absolutely terminate
anyone that dared to interrupt their fishing party, as well as their
FPS.


![immagine](https://github.com/user-attachments/assets/7be1859e-8201-4c6d-bddb-5f324848379e)

I've also blacklisted the single necropolis chest the lava fishing spot
has, because it kinda sucks to get that chance to fish it up stolen by
some random lobstrosity god-knows-where around the map.

## Why It's Good For The Game
Yes, this is very funny. However, getting your FPS butchered by dozens
upon dozens of lobstrosities is not, and that's an honest issue.

## Changelog

🆑
fix: Stop clientless lobstrosities from fishing other lobstrosities,
which in turn can fish other lobstrosities and so on.
balance: Stop clientless lobstrosities from fishing the lavaland fishing
spot chest.
/🆑
2024-08-01 15:28:19 +01:00
Ghom 36ca9a8559 Raising lobstrosities from chrabs is now a component. Adds in tadpoles which become frogs. (#85346)
## About The Pull Request
I've componentized part of the code that manages raising lobstrosities
from chrabs so that it can be added to other fish too. As proof of
concept, I've added tadpoles. Tadpoles are not fished like the rest,
instead you merely right-click a puddle and after 5 seconds you'll get
one. Tadpoles are fairly fragile, cannot be butchered, don't reproduce,
require lukewarm freshwater, need to be feed frequently, and become
frogs after about 3 minutes.

## Why It's Good For The Game
A small needed refactor for the chrab code, plus another small fish to
make it easier to complete the first fish scanning experiment.

## Changelog

🆑
add: Added tadpoles, which can be scooped from puddles with right-click.
Functionally they're like most fish, which require an aquarium to
survive, and also need to be fed fairly frequently, however they quickly
become frogs after about 3 minutes of care.
add: Every station now has a couple puddles. One at the public garden
and the other in prison.
qol: Changed the name of an aquarium UI button from "Reproduction
Prevention" to "Reproduction and Growth", as it controls both fish
breeding and growth.
/🆑
2024-07-31 15:18:23 +01:00