11 Commits
Author SHA1 Message Date
GhomandShadow-Quill f2ba845ea0 Fishing lures box peeve (#90741)
## About The Pull Request
This fixes a small excerpt from #90678: 
>"[...] double-examining it to see what extra items it can hold
(normally all lures) only reports the Artificial Minnow as fitting."

By making it use subtypesof instead of typesof for purpose of spawning
lures and making the minnow its own subtype.

## Why It's Good For The Game
Fixing a mild botherance.

## Changelog

🆑
fix: Examining a fishing lures box twice no longer says it can hold just
artificial minnows.
/🆑
2025-04-29 18:33:34 -06:00
GhomandGitHub 1dff5f6de3 Aquariums are now potential fishing spots. (#88243)
## About The Pull Request
You can now fish from aquariums if you wish to. This includes some
backend changes to make it possible for the fish table from
get_fish_table() to contain instances, and all that it entails up to
spawn_reward(), which is a requirement for the gimmick to respect the
various traits and other variables of the already instantiated fish
rather than read from cached properties.

## Why It's Good For The Game
The fish progress score/index had only little nasty flaw that has been
nagging me since day one: Not all fish species can be caught. Skipping
McGill, which is a peculiar case that for cheevo purposes should be
considered a standard goldfish, there is the one, unsignificant yet rare
purple sludgefish which can only be gotten as a rare evolution of the
generic sludgefish. Talk about petty, but this may be a long-term nit I
prefer to handle right now.

Also why not? The 'unmarine mastodon' is near impossible to get unless
you somehow find a oil well which is locked behind a specific ruin.

## Changelog

🆑
fix: Aquariums are now potential fishing spots.
/🆑
2024-11-29 03:33:18 +00:00
carlarctgandGitHub 45aedd1f84 Improved fish lure descriptions to be easier to grok (#87987)
## About The Pull Request

Fish lure descriptions are now much more specific and directly tell you
what the lure can and can't catch.

## Why It's Good For The Game

It was really hard to understand what they actually did without directly
using the bonus fish examine from skill gain. Now they tell you in broad
terms what they catch and what they don't.

## Changelog

🆑
qol: Improved fish lure descriptions to be easier to grok
/🆑
2024-11-18 19:48:36 +01:00
GhomandGitHub 2d7b8a5ff6 material fishing rods and material fish. (#87108)
## About The Pull Request
The reason why I refactored material effects code is here.

In this PR I add the possibility of printing fishing rods from different
materials at your nearest autolathe, though it doesn't stop there. Each
material has different values for (so far) fishing difficulty, casting
range, experience gained and foremost the chance of catching fish made
of the same material as the fishing rod used to catch it. The material
the fish is made from can either increase or decrease the weight of the
fish.

In a many cases, material rods can also have other small effects on
fishing, like removing the chances of duds even without a bait, or
attracting shiny-loving fish, or passing some other fish trait checks.
In a few cases, these fishing rods can have bigger, more impactful
effects on fishing. That said, here's a list of more or less the effects
(skipping very minor ones and those inherited from being items) and
modifiers across materials so far, a few things will be added later:

<details>
<summary>Huge-ass list (out-fucking-dated now that I've added 5 more
variables 😢)</summary>

- Iron: +30% fish weight, 8% chance of material fish
- Glass: +20% fish weight, +5 difficulty, +20% experience, 8% chance of
material fish
- Silver: +35% fish weight, -5 difficulty, - 15% experience, 15.5%
chance of material fish
- Gold: +50% fish weight, -10 difficulty, -25% experience, 20.5%
material fish, +1 casting range
- Diamond: +40% fish weight, -13 difficulty, -30% experience, 23%
material fish, -1 casting range
- Uranium: +100% fish weight, 8% material fish
- Plasma: +30% fish weight, 8% material fish
- Bluespace: +30% fish weight, -5 difficulty, -15% experience, 23%
material fish, +5 range
- - 33% chance of selecting a reward from (almost) any fishing source
instead of the current one.
- Bananium +20 difficulty, +60% experience, 38% material fish, +3
casting range
- - 20% chance of fishing either a clownfish, lubefish, donkfish,
soulfish or skin crab instead
- Titanium: +20% fish weight, -5 difficulty, 8% material fish, +1 range
- Runite: +50% fish weight, -18 difficulty, +220% experience, 38%
material fish, +1 range
- Plastic: -20% fish weight -5 difficulty, +20% experience, 8% material
fish, +2 range
- Wood: -50% fish weight, +8 difficulty, +30% experience, 13% material
fish, -1 range
- Adamantine: +60% fish weight, -23 difficulty, -40% experience, 33%
material fish, +1 range
- Mythril: +40% fish weight, -25 difficulty, -50% experience, 43%
material fish, +2 range
- Hot Ice: -10% fish weight, -10 diffiulty, -10% experience, 18%
material fish, +1 range
- Metal Hydrogen: -40% weight, -15 difficulty, -20% experience, 23%
material, +4 range
- Sand: +20% weight, +30 difficulty, -80% experience, 8% material, -2
range
- Sandstone: +20% weight, +25 difficulty, -70% experience, 8% material,
-2 range
- Snow: -20% weight, +25 difficulty, -70% experience, 8% material, -2
range
- Runed Metal: +50% weight, -12 diff, -10% experience, 38% material
- Bronze, +40% weight, 13% material
- Paper: -60% weight, +40 diff, -90% experience, 8% material, -2 range
- - Has a 20% chance of fishing up an aggressive stickman
- Cardboard: Same as above, but without the stickmen
- Bone: +5% weight, +15 diff, -15% experience, 8% material, -2 range
- - 20% chance of fishing up either a unmarine bonemass, a unmarine
mastodon, a hostile skellie or rarely a single-use spectral instrument
that can turn you or someone else into a spooky scary skeleton.
- Bamboo: -50% weight, -4 difficulty, +30% experience, 13% material, -1
range
- Zeukerite: 20% weight, -16 difficulty, -10% experience, 28% material
- Plasteel: +75% weihgt, +5 difficulty, +10% experience, 8% material
- Plastitanium: +10% weight, -10 difficulty, -5% experience, 8%
material, +1 range
- Plasmaglass: +20% weight, +5 difficulty, +30% experience, 8% material
- Titanium Glass: +25% weight, -5 difficulty, +25% experience 8%
material
- Plastitanium Glass: +20% weight, +50% experience, 8% material
- Alien Alloy: +140% weight, -25 difficulty, 33% material, -40%
experience, +2 range
- Hauntium (good luck using it): +40% weight, -30 difficulty, +50%
experience, 38% material, +2 range
- Meat: +13 difficulty, -20% experience, 28% material, -2 range
- Pizza: -10% weight, +13 difficulty, -20% experience, 28% material, -2
range

</details>

## Why It's Good For The Game
I think it's nice to have two features interact with each other (fishing
and materials), and it adds a layer of interesting uses to some
materials.

## Changelog

🆑
add: Autolathes can now print fishing rods of different materials, which
can increase or decrease fishing difficulty, casting range, and
experience gained, and can have other interesting effects.
/🆑
2024-11-03 11:20:39 -05:00
GhomandGitHub b86a8adf5f [NO GBP] Small fishing tweaks and fixes. (#86948) 2024-09-29 23:20:26 +02:00
GhomandGitHub 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
GhomandGitHub 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
GhomandGitHub 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
GhomandGitHub 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
GhomandGitHub 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
AnturKandGitHub fddb6ea124 Fishing, Version 1 (#67691)
Adds fishing and fishing minigame.
You use fishing rod to fish.
Equipping specific bait/hook/reels will affect your success chances.
You can fish out fish,items and other things.

Fishing Equipment
Fishing rods have three slots: Bait, Reel and Hook.
Any food can be used as bait but dedicated bait makes fishing easier.
You can buy hook and line sets
New bait types:

Worms : Buy can of them at cargo (alternative acquirement method pending)
Doughballs : Use knife on flat piece of dough to get five of them.
Fishing rod types:

Basic : Print these at the lathe, nothing fancy here.
Tech: Experimental tech. Provides infinite bait
Fishing rods can also hook and reel normal items.

Equipment screen and reeling video
Fishing spots
Keep in mind this PR is meant to add the basic systems and i intend to fill these with more fish in future PR's so wait with suggestions until then.

Lavaland lava (no fish here right now, just other stuff), requires reinforced line to fish in.
Maintenance moisture traps.
Beach away mission water.
Fishing portal available for purchase from cargo - This is stopgap until we fill more spots.
Difficulty depends on fishing spot, fish type, and the fish traits and rod setup combinations.
All fish types can have specific traits, most common ones being favourite and disliked bait types/categories.

Other
Fishing catalog now lists fishing related info
New admin debug verb, fishing calculator that show probabilities with different setups so it's easier to balance this.
Fish now have average weight and size. Make sure to boast if you catch a big one.
Adds tgui mouse passthrough
Screens
Sprites:

Fishing portal sprite by @ArcaneMusic
Other sprites by @Mey-Ha-Zah
Bad ones by me. (Could still use better fishing minigame backgrounds)
Sounds:

https://freesound.org/people/soundscalpel.com/sounds/110393/
https://freesound.org/people/soundslikewillem/sounds/343748/
2022-06-16 22:36:10 +01:00