## About The Pull Request
I don't know if it's 516 or some of the latter updates 515 (EDIT:
definitely 516), but fish visual overlays are now rendered under other
overlays composing the aquarium when past a certain pixel offset, since
they are using the pixel x/y vars to do it. All we have to do is to
change it to pixel w/z
## Why It's Good For The Game
Small layering issue.
## Changelog
🆑
fix: fixed a small rendering issue with fishes inside an aquarium.
/🆑
## About The Pull Request
I've been meaning to do this for some time. I need this for
portable/handheld aquariums/fishtanks to be possible. I'll sprite and
code them before I call this PR ready, however suggestions and code
reviews are welcome in the meantime.
Being a pretty heavy refactor, some things might break (we have more
than a few unit tests so perhaps not) while others, coincidentally,
might be fixed without me knowing. Anyway I'm sure this PR fixes
aquarium beauty, which wasn't really working to begin with because the
code was so fucking bad. Nothing really worth of a CL entry tho.
TODO:
- [x] handheld aquariums, craftable with a kit and little plastic or
buyable from the fun vendor ig.
- [x] an aquarium upgrade for handheld aquariums to bypass possible
restrictions.
- [x] update the beauty element to consider items, which shouldn't
contribute to the area beauty when held or otherwise not on a turf.
## Why It's Good For The Game
This should make handheld aquariums possible.
## Changelog
🆑
refactor: refactored aquariums heavily. Please report any fishy bug.
add: Added portable/handheld fish tanks to the game. They can be crafted
with an aquarium kit and 5 sheets of plastic. While portable, they
cannot store fish that are too big or if there're too many already. This
restriction can be removed by using the new "bluespace fish tank kit"
techweb item.
map: Replaced the lawyer's stationary pet aquarium with a fish tank, so
you can carry McGill around.
balance: Reduced the iron cost of stationary aquariums a little.
/🆑
## 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.
/🆑
## 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
## 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.
/🆑
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.
## About The Pull Request
Aquariums now have a beauty element based on their contents. Props give
a fixed beauty value, while for fish it depends on whether they're alive
or not. Some fishes have a better score than others. A few, like the
ratfish, even have negative beauty.
Mobs with the morbid trait now get a positive moodlet when admiring an
aquarium full of dead fish, and a negative one when fish are alive.
Also, this brings a few improvements to bits of aquarium code. Namely
the removal of a GetComponent call and a few balloon alert calls.
## Why It's Good For The Game
Aquariums can be quite decorative at times.
## Changelog
🆑
add: Aquariums now influence the beauty score of an area based on their
contents.
add: Morbid people now get a positive moodlet when admiring an aquarium
full of dead fish, and a negative one when fish are alive.
/🆑
## About The Pull Request
### New fish
#### anxious zipzap
An incredibly anxiety-ridden and electroreceptive fish. Worried about
the walls of its tank closing in constantly. Both literally and as a
general metaphorical unease about life's direction.
It produces electricity, and HATES being with any other fish. One other
zipzap is allowed at most.

#### monocloning jumpercable
A surprisingly useful if nasty looking creation from the syndicate fish
labs. Drop one in a tank, and watch it self-feed and multiply. Generates
more and more power as a growing swarm!
A far better option for power generation than the zipzap, but it's a
syndicate fish. Get an emag or get very lucky!

Working spacebase example

### Aquarium type
Bioelectricity Generator! It boosts the power of electroreceptive fish
to very dangerous levels! But, uh, you put a tesla coil, and voila! Free
power! ...Free power if you keep the fish fed! More fish, more power!

You can convert an aquarium into a bioelectricity generator by
researching the new node, "Marine Utility", from bio processing. Then
you build the biogen upgrade kit and apply it to an already existing
aquarium.
### Fish Traits
#### Electrogenesis
Trait turns the fish into a shock weapon while it's alive, and every
time it feeds, it releases a weak tesla bolt to anyone close to the
tank.
#### Anxiety
anxious fish die when any other fish are in the tank. Please keep them
alone :[
## Why It's Good For The Game
Fish are great, but fish don't have anything to give back to the
station, right? Well, there's some small stuff, but I wanted to add a
bit of functionality towards being able to benefit from having fish.
The anxiety trait with the zipzap gives spessmen a bit of a challenge.
You can settle for one fish generating power per tank and do a
multi-tank generation setup, or you can do some crossbreeding to make a
fish WITH electroreceptive but WITHOUT anxiety. Neat!
## Changelog
🆑
add: New fish, the anxious zipzap
add: New syndicate fish, the monocloning jumpercable
add: New aquarium, the bioelectricity generator
fix: Mixotrophic fish now properly lack food requirements
/🆑
Productionizes #80615.
The core optimization is this:
```patch
- var/hint = to_delete.Destroy(arglist(args.Copy(2))) // Let our friend know they're about to get fucked up.
+ var/hint = to_delete.Destroy(force) // Let our friend know they're about to get fucked up.
```
We avoid a heap allocation in the form of copying the args over to a new
list. A/B testing shows this results in 33% better overtime, and in a
real round shaving off a full second of self time and 0.4 seconds of
overtime--both of these would be doubled in the event this is merged as
the new proc was only being run 50% of the time.
Listing the changes, off the top of my head:
- Resprited fishing rods, hooks, and the worm bait!
- Added a new, telescopic fishing rod, that can be bought as a goodie.
The master rod is also telescopic now.
- Added a couple hooks. One that lets you move the bait up and down,
otherwise keeping it in place, and another that stops the fish from
escaping, but slowly kills it. The former from the bepis fishing tech
node, the latter frm the black market.
- Added a fishing skill and relative legendary reward: A fishing hat,
like the one that recites "women fear me, fish fear me"
- You can now stop fishing by activating the fishing rod in your hand,
and stops it from stealing all clicks on other things if it isn't in
your active hand.
- Reworked fishing traits into fish traits, which can apply to fish
after it has been caught.
- Expanded the fish breeding system. Traits may be passed down to
offsprings, and offsprings may evolve (mutate?) into different kind of
fishes if conditions when conditions are met.
- Added half a dozen new fishes, each with its own traits: lubefish,
sludgefish (and its purple variant), slimefish, unmarine bonemass and
unmarine mastodon. Also, holodeck fish, as a joke.
- New traits: lubed skin, parthenogenesis, toxic (new reagent), toxin
immunity, predator, necrophage, no mating, crossbreeder, aggressive and
revival. Converted Emulsijack's ability and Donkfish's yuckiness into
traits as well.
- Added a fish analyzer that you can scan aquariums and fishes with.
- Fish can now be blended if you really want to. The number of reagents
from blending, w_class, and the number of fillets you get from cutting
fish now scale with size and weight.
- fish feed is no longer infinite (but it should still be plenty).
- Implemented temperature requirements for aquarium fish.
- You can now buy (dead) fish from the black market for dirt cheap.
- Last but now least, toilets are now valid fishing spots.