## About The Pull Request
After https://github.com/tgstation/tgstation/pull/80628, these shouldn't
be needed anymore right?
## Why It's Good For The Game
Cleans up some vestigial code
## Changelog
EDIT: Not player-facing.
## About The Pull Request
I woke up today and thought 'what would be easy thing to do today so I
can say I've done something?'. Then I remembered I saw several gangtool
usages the time I split radio up, and I could remedy those. 7 hours
later, device.dmi is split in a folder of its own, and I've also given
unique sprites to door remotes and landing desginators.
## Why It's Good For The Game
The device.dmi was kind of a mess.
## Changelog
🆑
/🆑
## About The Pull Request
Implements half of this (with some minor changes):

The ultimate goal of this is to split our attack chain in two:
- One for non-combat item interactions
- Health analyzer scanning
- using tools on stuff
- surgery
- Niche other interactions
- One for combat attacking
- Item hit thing, item deal damage.
- Special effects on attack would go here.
This PR begins this by broadining tool act into item interact.
Item interact is a catch-all proc ran at the beginning of attack chain,
before `pre_attack` and such, that handles the first part of the chain.
This allows us to easily catch item interaction and cancel the attack
part of the chain by using deliberate bitflag return values, rather than
`TRUE` / `FALSE`*.
*Because right now, `TRUE` = `cancel attack`, no matter what, which is
unclear to people.
Instead of moving as much as possible to the new proc in this PR, I
started by doing some easy, obvious things. More things can be moved in
the future, or technically they don't even need to move in a lot of
cases.
## Changelog
🆑 Melbert
refactor: Refactored some methods of items interacting with other
objects or mobs, such as surgery and health analzyers. Report if
anything seems wrong
/🆑
## About The Pull Request
Code to handle this flag only ever existed on the `/obj` sublevel, so
there's no need for it to be on the `/atom` level `flags_1`. There was
probably a point in time in which mobs or turfs conducted electricity
but there's zero code for it anymore so we truly just live in a society
now.
## Why It's Good For The Game
Frees up a slot on `flags_1` (which is really nice actually), proper
scoping of certain bitflag stuff, etc.
## Changelog
Not relevant to players.
I may have screwed something up, will be doing a few passes on this
myself to ensure all the search and replaces went alright but we should
be good™️
## About The Pull Request
The auto-feeding mechanic wasn't working correctly due to bad logic.
## Why It's Good For The Game
Fixing an issue which is my fault.
## Changelog
🆑
fix: The aquarium auto-feeding feature now works correctly.
/🆑
## About The Pull Request
Fixes#76349
I didn't know that people needed to add any new traits to a global list
so they can be easily read in View Variables, and was pretty shocked to
find out many other people didn't know it was a thing. Let's make it a
thing by testing it using a new CI Python Linter to check this. But oh
no-

There were about 200+ missing traits. Alright, so let's do the
following:
* Move trait defines to their own dedicated folder in the `_DEFINES`
folder.
* Split up the traits mega-file into different files, for better
organization. One for the macros, one for the sources, and a few for the
"trait declarations"
* Run the linter a load of times and add everything to the globalvars
file, removing anything that's no longer used and figuring out where the
best categorization of it is. also minor code improvements. also rename
all of the ones that look weird. also fix list indentations
* Also alphabetize the lists because it's easy
* Move everything to a new `traits_by_type` list, while keeping the
admin one the way it is for the time being while we figure out a better
way to show that list to admins.
* Profit
## Why It's Good For The Game
Mapping trait injectors will now work for any type of trait. You
shouldn't add any trait via this injector though, but you're no longer
limited to coders remembering to add it to that critical list you
needed.
Lays the framework for a better view variables experience. This work is
too lengthy to presently do, but hopefully we can get this done sooner
rather than later. we will need a code-accessible way to view these
traits for such a framework to be implemented, so let's just do that.
Future steps are to break down the mega-declarations file into a folder
full of separate files by typepath, but that requires a lot of auditing.
Does need to happen one day though, there's a lot of mob traits mingled
with datum traits and auuugh we gotta do this later this PR is already
massive.
there's probably ways to game this but this catches _my_ mistakes so
good luck to everyone else (it should work for 99% of everyone)
## Changelog
Nothing applicable to players. However, to mappers, the mapping trait
injector should always be able to add any kind of trait (which is rather
good for the times when you need it).
## About The Pull Request
Finishing what https://github.com/tgstation/tgstation/pull/79513/
started, removes 'targetted' typo from code. Also updates the basic mob
guide with the new updated var names.
## Why It's Good For The Game
Typos bad. Accurate guides good.
## Changelog
🆑
code: gets rid of the rest of the instances of 'targetted' typo from
code
/🆑
## About The Pull Request
Adds a fishing spot to hydroponics trays.
Chances
- 33% nothing
- 33% grass
- 20% random seed (discludes rarer seeds, such as gatfruit and most
mutations)
- 10% grass seeds
- 1% strange seed
- 1% axolotl
- 1% frog
Lightly inspired by something (I think) is possible on Goon, but
obviously entirely new code.
## Why It's Good For The Game
Mostly just for laughs, they're basins of water so surely you can get
something out of it.
## Changelog
🆑 Melbert
add: Fishers can now try their luck at fishing out of hydroponics
basins.
/🆑
## About The Pull Request
This PR adds three basic/assistant bounties for shipping fish. The
reward is above par when compared to other basic bounties, however, each
shipped fish that is either dead or comes from a case (bought from
cargo, cause that's lazy) will reduce the payout by a portion of it,
also the pool of assistant bounties is quite big you wouldn't roll them
too often.
The three bounties are the following: One for any kind of fish, another
for fish of matching fluid type (freshwater, saltwater, sulphuric
water), and lastly, one for specific types of fish, possibly easy money
if RNG is with you.
## Why It's Good For The Game
I wanted to add something diffrent from most grimy assistant/basic
bounties where you either just print the stuff from the nearby autolathe
or fetch it for little money. Also, this provides another outlet to
fishing, I guess.
## Changelog
🆑
add: Added a few fish related bounties.
add: Fish cases to store and preserve life fish within can be now
printed from the service techfab and the autolathe.
/🆑
## About The Pull Request
Added a reagent holder to aquarium tanks and some code to enable the
fish to be automatically fed at selectable intervals of 1 minute to 7
(default 3). The holder can be accessed and filled by opening the
control panel, and emptied with a plunger if necessary. Simple plumbing
compatibility has been added as well, in case you think the 6 units of
capacity of the reagent holder (enough to feed a fish 60 times) are not
enough. The preset fishing tank starts with enough feed to keep its
contents alive for 30 minutes.
Beside that, I've fixed a small oversight with the fish analyzer goodie
pack. It should cost 150, not 500.
The fish catalog is now a goodie pack you can get as a goodie for dirt
cheap (25 creds) and a subtype of `book/manual`, so there's a slim
chance you may find it at the library or somewhere else.
Fixed a small oversight inside the fish catalog.
Mapped in a single aquarium kit for each station map, in the service
hallway/storage room where the techfab and cargo consoles are also
found.
Aquarium kits are now compatible with slapcrafting.
## Why It's Good For The Game
Aquariums require too much maintainance for a gimmick, and it's quite
awful to see the fish inside preset aquariums die 5 minutes into the
round. Also, you cannot get fish catalogs anywhere but from the aquarium
kit crate, which costs 1k credits, though its pertinence with fishing
goes beyond aquarium stuff.
Lastiy, I think it's good to give the crew a free aquarium kit. The
price of the supply pack is a bit out of reach for many, service could
use a bit of fisciculture too (I may make it a service pack later, so
that it can be ordered through the service console).
## Changelog
🆑
add: Aquariums now have a small internal reagent holder, accessible when
the panel is open and used to automatically feed the fishes at
selectable intervals, also compatible with plumbing.
add: Fish catalogs can now be bought as a goodie pack, for 25 cr, or
rarely found at the library or maints.
fix: Fixed the prices of fish analyzers. It's supposed to be 150 cr, not
500.
map: Added an aquarium kit to each station, found in the room where the
service techfab and order console also are.
qol: Aquarium kits are now compatible with slapcrafting (crafted by
hitting them with the required material without opening the menu).
balance: Moved the aquarium kit and fish supply packs from the "General"
section to "Service" and "Livestock" respectively, meaning they can be
ordered for free from the service orders console.
/🆑
## About The Pull Request

What it says on the tin. Runtime shown above, it was missing the user
arg.
## Why It's Good For The Game
Bugfix
## Changelog
🆑
fix: "line snapped" and "rod dropped" balloon alerts will now display
when they are supposed to while fishing
/🆑
## About The Pull Request
fix: Examining twice experiment handlers with an active fish-related
experiment now gives a comprehensible, correctly spaced list of scanned
species rather than something like "pufferfishguppyslimefishchasmchrab".
fix: No more "line snapped" balloon messages everytime the fishing
minigame is over
fix: Getting to the Master level of the fishing skill now correctly
gives you that slight helping hand to identify yet-to-be-caught fishes.
## Why It's Good For The Game
Taking care of some issues I've noticed just yesterday.
## Changelog
🆑
fix: Examining twice experiment handlers with an active fish-related
experiment now gives a comprehensible, correctly spaced list of scanned
species rather than something like "pufferfishguppyslimefishchasmchrab".
fix: No more "line snapped" balloon messages everytime the fishing
minigame is over
fix: Getting to the Master level of the fishing skill now correctly
gives you that slight helping hand to identify yet-to-be-caught fishes.
/🆑
## About The Pull Request
I recently read of someone being confused that they couldn't use them to
perform fish-related experiments, so I thought it would be a good idea
to add that. Also, I've converted the related misc supply pack to a
goodie one, like other fishing supplies.
## Why It's Good For The Game
It makes sense, and a fair amount of players doesn't even know
experiments exists until they play the scientist role a couple times.
## Changelog
🆑
add: Fish analyzers can now be used to perform fish scanning
experiments.
balance: They can now be singularly bought as a goodie pack for 125 cr
each, instead of a crate of three for 500 cr.
/🆑
## About The Pull Request
This is a PR I worked on last month, but had to put on hold while
dealing with some pressing issues with fishing feature, minigame and
other stuff, and because I had to atomize out some of the stuff
previously present here.
I've expanded on the fishing portal generator to do something other than
dispense guppies and goldfishes. It now has multiple settings,
unlockable by performing scanning experiments for fish types, available
from the get go, which also reward a meager amount of techweb points
upon completion. The generator can now be built too. No longer it has to
be ordered from cargo.
It can also be emagged for the syndicate setting, tho right now it only
dispenses donkfish and emulsijack, both otherwise impossible to get
outside of... exodrone adventures.
The advanced fishing rod now comes with an experiment handler component,
specific to the fish scanning experiment, that automatically scans
fished content. The node to get it now requires 2000 points and the
first fish scanning exp to be unock.
A new skillchip has been added, which adds a trait that changes the icon
of the fish shown in the minigame UI, giving some clues on what the
reward will be. The same trait is also gained by reaching the master
(penultimate) level of the fishing skill.
A new fish type has been added, with its own quirks. One of these quirks
included temporarily switching movement direction of the bait.
Currently, it can only be fished in the hyperspace and randomizer
setting of the fishing portal.
Screenshots:


## Why It's Good For The Game
The fishing portal generator is but a stale and underdeveloped prototype
of the fishing feature right now, so much I was thinking of removing it
at first. However, we also have a lot of fishes which are pretty much
unfishable, so I came up with the idea of adding new portal settings
that allow people to actually get them.
As for the skillchip and trait, it's but an extra to both the vending
machine in the library and the fishing skill itself, which has an
overall humble impact on the minigame.
## Changelog
🆑
add: Expanded the fishing portal generator. It now comes with several
portal options that can be unlocked by performing fish scanning
experiments, which also award a modest amount of techweb points.
balance: The fishing portal generator is now buildable and no longer
orderable. The board can be printed from cargo, service and science
lathes.
balance: Advanced fishing tech is no longer a BEPIS design. It now
requires the base fish scanning experiment and 2000 points to be
unlocked.
add: The advanced fishing rod now comes with an incorporated
experiscanner specific for fish scanning.
add: Added a new skillchip that may change the icon of the "fish" shown
in the minigame UI to less generic ones. Reaching master level in
fishing also does that.
qol: The experiment handler UI no longer shows unselectable experiments.
/🆑
## About The Pull Request
This should also fix the hooked item exploit for real now, but to avoid
further goofs, I'm keeping this as a draft until I finish running the
game locally.
## Why It's Good For The Game
Closes#78357.
## Changelog
🆑
fix: Actually fixed the hooked item exploit.
/🆑
## About The Pull Request
That of beams being layered below mobs has been a minor issue ever since
that mess that is FoV was implemented (with the exception of chain
lighting of the 'lighting' holoparasite type). I'm changing the plane of
beams to GAME_PLANE_UPPER_FOV_HIDDEN along a couple other things.
## Why It's Good For The Game
Re-read the above section, also fishing lines shouldn't generally glow
in the dark like very thin lightsabers, and them being layered below
mobs has always been a peeve to me.
## Changelog
🆑
fix: Fixed beams rendering below mobs by default.
fix: The fishing line beam is no longer emissive (it doesn't glow in the
dark).
/🆑
---------
Co-authored-by: Zephyr <12817816+ZephyrTFA@users.noreply.github.com>
## About The Pull Request
Fixes https://github.com/Skyrat-SS13/Skyrat-tg/issues/23763
Somewhere along https://github.com/tgstation/tgstation/pull/77739 and
the following fishing PR's this feature got overlooked and broken.
The args for `dispense_reward()` and `find_chasm_contents()` needed to
be updated as they were just wrong.
This sets them straight and adds an additional fishing unit test for the
rescue hook to hopefully prevent this edge case from being overlooked.
## Why It's Good For The Game
Rescue hooks work again, hooray.
## Changelog
🆑
fix: rescue hooks will once again drop the mob next to the fisherman
instead of just displaying a balloon alert and doing nothing
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
In no case, neither the origin nor the target of a fishing line are
turfs. This was actually meant to check their locations.
## Why It's Good For The Game
Forgive me, I was busy an other PR so I couldn't get to it in time. This
PR has been tested tho.
## Changelog
🆑
fix: fixed fishing.
/🆑
## About The Pull Request
The bait wasn't being consumed properly because it was badly coded.
Whoopsies.
The achievement would be unlocked upon gaining legendary rank ONLY IF
you won the minigame. My bad.
Upon win (and loss), the fishing minigame would often be prematurely
closed before ui act could run due to internal calls to do that. A
classic example of race condition.
Last but not least, the fishing hook exploit that would allow items to
be in multiple places, including nullspace, and cause a load of issues.
## Why It's Good For The Game
This PR should fix all of them. Closes#78210, closes#78204, closes
#78187, closes#77265, closes#77265, closes#73014.
## Changelog
🆑
fix: Fixed a race condition that made fishing yield no reward way too
often.
fix: The legendary fisher achievement is awarded even if you don't win
the minigame.
fix: Fixed a fish hook exploit.
fix: Baits are now properly consumed by caught fish and (alive) mobs.
/🆑
## About The Pull Request
It shouldn't look like a goldfish.
## Why It's Good For The Game
Ditto.
## Changelog
🆑
fix: The holographic pufferfish from the holographic beach from the
holodeck no longer looks like a goldfish.
/🆑
## About The Pull Request
Gives the telescopic fishing rod its own name.
## Why It's Good For The Game
Guess why.
## Changelog
🆑
spellcheck: Corrected the name of the telescopic fishing rod to
"telescopic fishing rod" from the more generic "fishing rod"
/🆑
## About The Pull Request
The default spawnables from chasms are spawned on top of the chasm
rather than on the user's turf, and that can be an issue.
## Why It's Good For The Game
This will fix#77982.
## Changelog
🆑
fix: fixed fishing skeleton mob spawners that immediately crumble back
into the void of whatever chasm you fished them from.
/🆑
## About The Pull Request
The gain for second were 10 lower than they were supposed to be, since I
hadn't taken into account the deciseconds. I've also a cap on the gain
and lowered the necessary time just to be sure it doesn't take too much
time to attain the legendary tier anyway. I may bump it up later if
people say it's too easy.
## Why It's Good For The Game
This will fix#77972.
## Changelog
🆑
fix: It's now humanly possible to reach the legendary fisherman rank,
get the achievement and the hat.
/🆑
## About The Pull Request
During my first fishing related PR, I hadn't yet know that for the
`fish_counts` var to work, its contents also had to be within the
`fish_table` list, thus I ended up adding stuff that's not actually
fishable. Also there was no unit test to enforce that design, which is
lame.
## Why It's Good For The Game
Fixing the issues explained above. Basically #78019 but done right.
## Changelog
🆑
fix: You can now actually fish soggy wallets from toilets, rare ores on
ice moon, some boney stuff in oil puddles (good luck finding them) and
lube-fishes by the seawater.
/🆑
## About The Pull Request
This ensures that the compact fishing toolbox only holds small objects,
like a cardboard box, with the exception of a fishing rod.
## Why It's Good For The Game
I fucked up and gave settlers a smuggler satchel.
## Changelog
🆑
fix: Compact fishing toolboxes no longer break space and time to contain
any normal-sized object. Instead, they only break space and time to
contain fishing rods. Settlers migrating to Nanotrasen space have no
reasonable explanation for this phenomenon.
/🆑
## About The Pull Request
This PR contains a few changes that I hadn't got to do earlier,
including: different pressure / air mixture thresholds for different
fish (if amphibious), fish being able to be fed directly without the
need of an aquarium, replacing the `available_in_random_cases` variable
with a weight define of value 0, the preset fishing sources global list
so we don't have to manually instantiate lazy fishing spots and assign
them stupid string defines, chasm detritus made into datums, a couple
balloon alerts and removal of unused code.
## Why It's Good For The Game
The fishing portal generator UI is unused, the perfect variable for the
fishing minigame is also unused.
There's no reason for chasm detritus to be an item instead of a datum.
It isn't a map spawner.
Chasm chrabs, if given the amphibious trait, should be able to survive
Lavaland/Icemoon's atmosphere.
I don't even know why I made a snowflake proc to instantiate the
evolutions global list instead of `init_subtypes_w_path_keys`
The shiny lover and wary fish traits were actually making the minigame
slightly easier.
The background icons for the UI had a zero-alpha, one pixel thin stripe
on top that needed to be colored.
Improved `fish_source/proc/dispense_reward`.
Some doc comments and a typo or two.
## Changelog
🆑
add: You can now feed fish with the can of fish feed without having to
put the fish in a aquarium first.
balance: Some fish may survive in different, harsher atmospheres if
given the amphibious trait, like chasm chrabs on lavaland.
qol: aquarium now uses balloon alerts when feeding fish.
fix: The wary and shiny lover no longer incorrectly remove difficulty
from the minigame if conditions aren't met.
/🆑
## About The Pull Request
Adds the Settler quirk. This gives you bonuses to taming animals and
fishing, as well as making you gain hunger slower than others.
However, you are quite a bit slower than most people, and have trouble
with vaulting objects. You do, however, suffer significantly less from
equipment slowdown. (to the point that it is almost zero)
Settler riders are faster on their mounts than others if they're at
least sane. They start to slow down if they're less sane.
You are also shorter than most people.
<details>
<summary>Typical Settler encounters the typical Spacer</summary>

</details>
## Why It's Good For The Game
I wanted to add a lightweight quirk that was kind of the 'opposite' of
Spacer, but a little more focused on interacting with elements of the
game world that would enjoy some attention. So, I thought 'what about an
outdoorsman quirk?'
So, I based it around being from people who lived out on the rim, under
unideal circumstances (and probably heavier gravity than Earth), and
taming the land. The slower movespeed encourages finding an animal to
tame that you can ride, and the bonuses to taming should help make that
a bit easier. The other additions just made sense for someone living it
a bit rough in the wilderness.
Having a bunch of settlers taming cows and riding around on them all
shift just kind of sounds hilarious to me.
## Changelog
🆑
add: Settler quirk! Conqueror the great outdoors....in space. Just make
sure nobody asks you to get anything from the top shelf.
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Exactly what it reads on the title. I shouldn't be bothered
thoroughfully explaining this with several paragraphs when it's only 3
lines of code affected.
## Why It's Good For The Game
I've sadly the dramatic timing of noticing my own slips minutes after
one of my PRs (#77420 in this case) get merged.
## Changelog
Barely any impact to the game beside perhaps ironically more generous
probability weights for fish without a bait.
## About The Pull Request
In this episode:
- Fishing without a bait is a noob trap, examining the rod will provide
you that information as well as a few other.
- Fishing without a bait will lower the odds of catching fish, but not
other objects.
- Catching objects that aren't fish or living mobs, or catching a dud
won't consume your bait.
- You're theorically* half as much more likely to catch fish even
without a bait.
- the synthetic bait from the tech fishing rod ignores preferences and
bait-related traits.
*I'm saying theorically because our `pick_weight()` doesn't support
decimal values. If the weight is lower than 1, (0.5 because we're
rounding), you're outta luck, get a bait.
## Why It's Good For The Game
Many people complain that fishing is tedious and that they almost always
catch nothing, even if they've probably forgotten to hook a bait to it,
because fishing without one (Really, just use any food, even that dollar
store snack is better than nothing) raises the odds of getting a dud
tenfold.
However, it's not completely their fault if nothing warns them against
it, which is why examining the fishing rod will tell you that.
The buff to the meager probability of catching a fish without a bait is
also due to the aforementioned decimal issue, but also because I
honestly believe even the most "skull-dented" player doesn't doesn't
deserve such a low chance.
"Inanimate" objects (well, fish are items, ironically) shouldn't
generally consume baits. Ditto for duds.
The tech fishing rod is nice on its own, but subpar to any other fishing
rod coupled with an amount of baits, since you're limited to what can be
caught with an unremovable doughball.
## Changelog
🆑
qol: Examining a fishing rod will now provide information on equipped
hook, line, bait, and right click functionality.
balance: Fishing without a bait will only lower the odds (a smidge less,
too) of catching fish, not other things.
balance: Catching something that isn't a fish or a living mob won't
consume the bait anymore.
balance: The Bepis fishing rod will now ignore fish's bait preferences.
/🆑
## About The Pull Request
Another couple, tiny mistakes my fishing PR. I believe I had forgotten
to change the logic while swtiching to early returns.
## Why It's Good For The Game
Bugfixing.
## Changelog
🆑
fix: Fixed certain aquarium fish eating other fish when not hungry.
/🆑
## About The Pull Request
What it should do is spawn a generic item when the list of possible
things to retrieve is empty, not the other way around. Surprised this
weren't caught earlier.
## Why It's Good For The Game
See above.
## Changelog
🆑
fix: Fixed a logic mistake for chasm fishing that resulted in only
generic items being spawned.
/🆑
## About The Pull Request
I'm slowly chipping away at mining mobs. These ones also got some new
sprites because the old ones were a bit weird except when facing South.

Arctic Lobstrosities are now hairy to give them a little more visual
distinction from Lavaland ones.
In terms of behaviour, they're now a little faster and can charge you
from further away.
They will _only_ attack players who are incapacitated in some way
(primarily from being hit by their charge, but could be from a Goliath
or something too) and will otherwise keep their distance until they can
charge again. They move slower for a short duration after charging
though, so you have time to slap them a bit.
If a Lobstrosity downs you then it will try to snip off one of your
arms, then retreat in order to eat it.
Obviously nobody likes losing an arm, but this does give you an
opportunity to get away while it is distracted? Funnily enough the way
our health system works means that sometimes losing that arm actually
takes you out of soft crit so you can stumble back to the station for a
replacement (or try to wrestle yours back?)
All of these things are achievable also by a player if you make one
sapient, they will pull arms off mobs they attack which are in crit and
can eat arms if they see them lying around if they want.
I added an element to let you dismember people with your bare hands,
maybe someone evil can use it to add a beheading attack some day.
Here's a video of their new behaviours:
https://www.youtube.com/watch?v=9eKxsH7hD7Q
## Why It's Good For The Game
Gives mobs more character.
Reduces our list of frozen simple mobs.
Replaces some ugly side sprites.
Medbay enrichment?
## Changelog
🆑
refactor: Lobstrosities are now basic mobs and have different AI
behaviour. Please report anything which seems like it shouldn't be
happening.
add: Lobstrosities will now only opportunistically attack things they
have knocked over with their charge, and are otherwise timid.
add: Lobstrosities are hungry for fingers and will steal one of your
arms if they defeat you in combat, although this gives you time to crawl
away.
sprite: New sprites for Lobstrosities.
/🆑
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.
## About The Pull Request
Due to a mental breakdown caused by unfathomable abomination that is
icons folder, I swore to myself to one day clean it. Today is kind of
that day. Been at it for around 6, you gotta understand I need a rest. I
tracked most changes in descriptions of commits if you are looking for
details.
## Why It's Good For The Game
Saner spriters make better sprites. And also, just helps keep track of
things.
## Changelog
🆑
image: added sprites for different variants of scrolls.
image: modified couple posters with ghost pixels.
/🆑
---------
Co-authored-by: OrionTheFox <76465278+OrionTheFox@users.noreply.github.com>
## About The Pull Request
This PR introduces a signal sent to the target when a lazarus injector
is being used on them, hence read the title.
EDIT: I've forgotten to add that Tom no longer counts toward the mice
population cap now, being unique.
## Why It's Good For The Game
Being items rather than simple/basic mobs, dead mice (without a mind
datum), bees and fishes cannot be revived by the lazarus injector. While
I agree that spending one for this may be an egregious waste of mining
points, it's still fleshing out the feature a bit.
## Changelog
🆑
add: You can now revive dead fishes, bees and (mindless) mice with a
lazarus injector.
balance: Tom, the mouse, no longer counts toward the mice population
cap.
/🆑
## About The Pull Request
Signals were initially only usable with component listeners, which while
no longer the case has lead to outdated documentation, names, and a
similar location in code.
This pr pulls the two apart. Partially because mso thinks we should, but
also because they really aren't directly linked anymore, and having them
in this midstate just confuses people.
[Renames comp_lookup to listen_lookup, since that's what it
does](102b79694f)
[Moves signal procs over to their own
file](33d07d01fd)
[Renames the PREQDELETING and QDELETING comsigs to drop the parent bit
since they can hook to more then just comps
now](335ea4ad08)
[Does something similar to the attackby comsigs (PARENT ->
ATOM)](210e57051d)
[And finally passes over the examine
signals](65917658fb)
## Why It's Good For The Game
Code makes more sense, things are better teased apart, s just good imo
## Changelog
🆑
refactor: Pulled apart the last vestiges of names/docs directly linking
signals to components
/🆑
## About The Pull Request
Books didn't render markdown and instead just dumped the raw contents,
(after a html encode), into the window.
Changes them to use tgui and support markdown rendering.
## Why It's Good For The Game
Books should should look the same as the paper used to make them.
## Changelog
🆑
fix: Book's no longer take your formatting and throw it out the window.
refactor: Book display and rendering
/🆑
---------
Co-authored-by: GoldenAlpharex <58045821+GoldenAlpharex@users.noreply.github.com>
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
## About The Pull Request
When trying to fish for bodies with a rescue hook, the chance of getting
a random 'default' generic skeleton is too high.
On top of that, there can be a number of legion skeletons clogging up
the contents list, making catching a sentient mob a RNG based nightmare.
---
This PR makes it far more likely to catch an actual person that has
fallen into the chasm when using the rescue hook, which is how it's
supposed to work, by doing two things:
1) Reduced the chance of getting a default skeleton regardless of the
chasm's contents from 50% to 12.5%.
2) If a body that once belonged to a sentient player is down there, that
will always be fished up before any of the non sentient ones are.
## Why It's Good For The Game
Makes using a rescue hook far less annoying to use when you just want to
save someone who has fallen in.
Duds can still happen as usual, and there is still a small chance of
getting a generic skeleton if you fail the 87.5% chance roll...but
overall, fishing someone up with the rescue rod is a lot better now.
## Changelog
🆑
qol: the rescue hook has a much greater chance at catching actual fallen
player bodies as opposed to generic skeletons/other npc corpses
/🆑
---------
Co-authored-by: san7890 <the@san7890.com>
This tracks the seconds per tick of a subsystem, however note that it is
not completely accurate, as subsystems can be delayed, however it's
useful to have this number as a multiplier or ratio, so that if in
future someone changes the subsystem wait time code correctly adjusts
how fast it applies effects
regexes used
git grep --files-with-matches --name-only 'DT_PROB' | xargs -l sed -i
's/DT_PROB/SPT_PROB/g'
git grep --files-with-matches --name-only 'delta_time' | xargs -l sed -i
's/delta_time/seconds_per_tick/g'
## About The Pull Request
This sprite file had been a dumping ground for miscellaneous sprites for
the past decade. It's bloated and full of random kinds of icons and even
has a few unused ones. It's time to reorganize them into their own
separate dmi's based on theme.
## Why It's Good For The Game
Better organization and easier access when looking for stuff.
## Changelog
🆑
imageadd: Split all icons in weapons_and_items.dmi to their own
categories
imagedel: Removed some unused icons
/🆑
## About The Pull Request
- Juggernaut and Rust Walker projectiles were subtyped off of magic,
which is `nodamage`.
- The juggernaut actually had a copy+paste error with their type
`on_hit` which caused none of their special effects on hit ("relative
patching catches this")
- Then I realized projectiles have this var `nodamage` which is, for all
intents and purposes, just `damage > 0`. it's not checked for pacifism,
it's just that. This is dumb. So very dumb, so I removed it.
- There are, however, a few situations which used it in a unique way,
such as the blast wave cannon. This is why I replaced it with a proc,
`is_hostile_projectile`, for certain situations to actually find out if
the projectile is damaging. Projectiles can override this on a per type
basis by default, damaging projectiles = hostile.
- This has a chance to break some things, but I ... kinda doubt it will.
Fixes#73756
## Why It's Good For The Game
Projectiles that act as they should, less dumb vars
## Changelog
🆑 Melbert
fix: Fixes Juggernaut / Rust Walker projectiles doing zero damage
fix: Fixes Juggernaut projectiles not doing bonus damage to nearby
structures
code: Removed projectile nodamage var, replaces it with just checking
for damage
/🆑
This builds on what #69790 did and improved the code even further.
Notable things:
- `Topic()` is a deprecated proc in our codebase (replaced with
Javascript tgui) so it makes sense to rename `canUseTopic` to
`can_perform_action` which is more straightforward in what it does.
- Positional and named arguments have been converted into a easier to
use `action_bitflag`
- The bitflags adds some new checks you can use like: `NEED_GRAVITY |
NEED_LITERACY | NEED_LIGHT` when you want to perform an action.
- Redundant, duplicate, or dead code has been removed.
- Fixes several runtimes where `canUseTopic` was being called without a
proper target (IV drips, gibber, food processor)
- Better documentation for the proc and bitflags with examples
Necessary for #72292 to work effectively, and probably not very useful
out of that context. Split out of its own PR because this is long and
boring.
I want to make sure that we're catching actual mistakes there, and not
just experiencing side effects of how shitty the attack chain is.
## About The Pull Request
Updated crafting menu, adding a lot of new functions and recipes that
were not in the crafting menu before.
<img alt="cult"
src="https://user-images.githubusercontent.com/3625094/206009533-aec3a1dd-cbe5-45eb-8515-1b75fabb65c5.PNG">
<img alt="nH77dLyyGx"
src="https://user-images.githubusercontent.com/3625094/206009786-b6706f70-0599-40bf-b051-8f499de43abd.png">

https://user-images.githubusercontent.com/3625094/206009841-738e4a03-0660-45b7-8d83-15eeb6501967.mp4
## Why It's Good For The Game
It is easier to use, and it has a lot of recipes that were spread
throughout the game, some of which weren't even on the wiki.
Crafting and cooking now count about 1200 recipes in total, including
conditionally available ones.
## Changelog
🆑
qol: Rewrote the crafting/cooking menu UI
qol: Split crafting and cooking menus in two different menus
qol: Crafting is no longer blocking the entire UI, only the "Make"
buttons are disabled
qol: Added stack crafting recipes to the crafting menu
qol: Added cooking recipes that were absent in the crafting menu before
(tool recipes, machine recipes, reactions)
qol: Added option to search recipes by title
qol: Added option to filter recipes by required materials/ingredients
qol: Added food types to the cooking menu, highlighting diet of your
species (liked, disliked foods)
qol: Added total nutrition value of the result to the cooking menu
qol: Added option to filter cooking recipes by the food type of the
resulting food
qol: Added "Can make" category that lists all currently craftable
recipes throughout all categories
refactor: changed categories and reshuffled some items in them
code: Reagents now have default container to get an icon from the
reagent datum
code: Objects now have `desc_controls` var for OOC information about
mouse controls that are visible on examine, but not in the description
fix: Fixed alignment on many food icons
fix: Fixed missing icon for beef stroganoff
/🆑
Co-authored-by: tattle <66640614+dragomagol@users.noreply.github.com>
## About The Pull Request
A side effect of my pizza PR #71202 I added contextual screentips as
part of processable.dm. In doing this, I noticed that with a few
exceptions, almost every single bread and cake type copies the proc
exactly the same for every single child of cake or bread, so I put the
proc on the parent of bread and cake and gave them slice_types, making
them more similar to pizza.dm
For everything else I've changed the default that I put in
processable.dm into "slice" or "cut" for things that use the knife and
"flatten" for things that use the rolling pin.
Finally, you can slice bread with saws now, because I think its silly
that only pizza gets this luxury.
## Why It's Good For The Game
Because it wasnt the focus of #71202 I didn't mess with screentips
outside of the pizza file a lot, but now that it's merged I figure I
should go and do that.
As Bread and Cake's processables are almost fully standardized it seems
silly for them to call on the proc 12 times in the same document so I
did this, which also allows for more versatility in editing how they
work as well allow people to, if they want to, add more tool behaviours
in the future without adding in 12 lines of code. Also means that people
who want to add new cake or bread have one less thing to do.
## Changelog
🆑
add: you can saw bread with a saw into bread slices
qol: added screentip verbs to a bunch of food files
code: bread and cake now have slice types and all only have one call on
the processable.dm proc
/🆑