## About The Pull Request
atom_storage.max_specific_storage and atom_storage.max_total_storage had
their values reversed. this fixes that, and i tested to confirm: the
compact coroner medkit can now hold everything it spawns with
## Why It's Good For The Game
before this fix, the max storage of a coroner medkit was two items. it's
very annoying to pull an item from it, only to find it can not go back
in again - moreoever, this gives it consistency with other medkits.
## Changelog
🆑
fix: the coroner medkit can now hold every item it spawns with
/🆑
## About The Pull Request
Fix for few minor bugs that were created by the borg combat rework
## Why It's Good For The Game
Bugs bad.
Also borgs getting permastunned after doing *collapse is not something I
want to see in this game.
## Changelog
🆑
fix: Borgs no longer get permastunned by emotes
fix: Borg hud should not fuck up in few situations
/🆑
## About The Pull Request
Hey there,
This was broken in an update from #74573
(3902973978), the RegEx was only catching
a fraction of the cases it was meant to be.
This is what we were finding on 74573 version of the RegEx:

This is what we should be finding for all of the cases that
`define_sanity` will need to check for:

This is what was broken as a consequence:

As stated in the introductory PR #74333
(ccef887efe), it's not the end of the
world if we miss unmanaged local defines, but it's still useful to have
this as a maintainability tool to ensure that everything remains as
clean as it possibly can. I wish we could do the whole matching method
like the aforementioned PR supposed could happen, but it simply doesn't
appear to work the way we want it to.
## Changelog
Nothing player facing.
I tried to experiment with `UNLINT()` but I got absolutely ganked by
getting the regex to work, so the fix for the FA Icon file may not be
super duper great unfortunately. Let me know if you have a showstopper
idea, this is just a stopguard so this PR can get merged and I don't
have to keep talking about unmanaged local defines while reviewing PRs.
## About The Pull Request
Renames m_intent to move_intent and moves it to the living level
renames tod to station_timestamp_timeofdeath
removes stun_absorption and see_override as one was unused and the other
was never actually implemented
## Why It's Good For The Game
Many vars on the mob and living level were intended to be on the living
and carbon level, but weren't for one reason or another. Generally it
was out of laziness to ensure the mobs being checked for these vars were
the intended mobs, and there's some todo comments on how they want it
changed in the future, though it never happened.
I'm hoping to get these all down in the future, I originally wanted to
move ``stat`` from mob to living but it had hundreds of errors so I
didn't want to do it all here.
## Changelog
Nothing player-facing.
## About The Pull Request
Catching the only, couple tangible issues I've seen so far following the
removal of `handle_atom_del`.
## Why It's Good For The Game
This will fix#77758
## Changelog
🆑
fix: Fixed the double-barreled shotgun not working properly
/🆑
## About The Pull Request
we should really just have an easy way to set up new head jobs instead
of manually doing the same shit for every single one
## Changelog
🆑
fix: quartermasters get their voice of god power boost correctly
/🆑
## About The Pull Request
Changes the cost of railings from 6 metal rods to 2 metal rods.
The time to construct has been reduced from 3.6 to 1 second to be
in-line with the grille.
The health of railings has been reduced from 75 to 25.
Armor of railings have been reduced as well by about 30%.
I'm not positive on whether or not it should cost 1 metal rod or 2. I
decided to play it safe and make it 2. If some maintainer is interested
in making it only cost 1 rod then I will gladly do so- but this was my
compromise.
Also changes decaseconds/ticks to seconds in the rod construction code
to make it look better.
## Why It's Good For The Game
Railings look nice and it's an absolute pain in the ass that they cost 6
metal rods.
They're also currently substantially stronger than grilles for whatever
reason. Grilles have 50 health, while railings have 75.
The armor of railings makes this health of 75 to a whopping effective
health of 150.
Railings shouldn't be stronger than full-tile grilles. They should be
fairly flimsy.
They also shouldn't take a wrench AND wirecutters to deconstruct.
Grilles only take wirecutters and we should mirror that.
## Changelog
🆑
balance: Railings now only cost 2 rods and are much easier to construct.
But they can now be destroyed much easier and cut with wirecutters
without unwrenching.
/🆑
## About The Pull Request
Somewhere down the line with all the refactors the code that saved the
previous eyes' color stopped working.
This just fixes it. It's used for things such as qol for the high
luminosity eyes. It can be considered a fix and QoL alike but I'm going
to label it as QoL.

## Why It's Good For The Game
Restores previous functionality that was lost in a refactor
## Changelog
🆑
qol: inserting new high luminosity eyes will now properly remember the
previous eyes' color and default to that initially
/🆑
## About The Pull Request
Fixes#77885
zipping it now looks for storage items inside its contents and closes
their UI recursively, including its own UI as well.
## Changelog
🆑
fix: zipping a duffle bag closes the UI of all storage items opened
inside it
/🆑
## About The Pull Request
Removes watcher emissive appearance while dead.
## Why It's Good For The Game
Made it look like they were haunted by their own ghost, spooky but
inappropriate.
## Changelog
🆑
fix: Watchers won't retain an ethereal outline of their wings hovering
over their dead body.
/🆑
## About The Pull Request
Noticed one of these snowmen drop an ash walker earlier today, and
thought I would have that fixed for consistency's sake, as there's no
ash walkers on icemoon. After I done that, I felt weird for just cutting
out a thing like that, so figured a replacement: eskimos. So yeah.
## Why It's Good For The Game
Consistency: There's no more ash walker corpses in legions on Icemoon,
as there's no, and never was, any living ones.
Fluff: Eskimos that replace them make much more sense.
## Changelog
🆑
add: Gave snow legions a separate corpse-drop pool: ash walkers
excluded, but eskimos included.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Fixes the infinite loop introduced by #77671 that was caused by
materials entering the recycler by ensuring that they have an old
location when entering the recycler. If they don't, that means they're
coming from nullspace and thus were very likely just created, so they
shouldn't be getting recycled (which was the cause of the MC dying from
inserting enough materials to cause one sheet to be salvaged from a
recycler).
Adding [s] because it can be abused to basically grind a server to a
halt, so I recommend merging this as soon as possible.
Closes https://github.com/tgstation/tgstation/pull/77936.
## Why It's Good For The Game
Infinite loops causing the master controller to die aren't that good, I
think we can all agree that the game working is nice.
## Changelog
🆑 GoldenAlpharex
fix: Fixes the recycler being able to grind the server to a halt by
trying to recycle the same sheet worth of material over and over and
over again.
/🆑
## About The Pull Request
Hey there,

This message randomly popped up while I was adminning, and it was
completely dogshit useless (as well as not being an HREF exploit since
Snowdin was loaded and you should be expected to do that, but that's
indicative of a harder bug). Let's yeet the `message_admins()` portion
(as well as make it actually actable information rather than just
'Unknown' and give it an actual follow jump button) and if then if we
don't have a client, stack_trace (in case people want to make basic mobs
keymash to send shuttles in the future).
## Why It's Good For The Game
This is completely useless and confusing. It's not even an HREF exploit
because this behavior is completely intended. It's more helpful to
coders now too because this thing failing isn't just locked to
admin-only logs, it stack traces (which is publically available).
## Changelog
🆑
admin: The "HREF Dock Exploit" message should now contain a bit more
usable information (such as a jump link) so you can investigate if
something is really going wacky with shuttles.
/🆑
---------
Co-authored-by: Gallyus <5572280+francinum@users.noreply.github.com>
## About The Pull Request

Continuing the work of
https://github.com/tgstation/tgstation/pull/77850.
it started with finding one that was being missed and causing a
runtime...then I noticed a whole lot more. While I was doing this I
found callbacks that weren't being nulled in `Destroy()`, so I added
that wherever I found these spots as well as some general code cleanup.
There were a lot more of these than I initially hoped to encounter so
I'm labeling it as a refactor.
## Why It's Good For The Game
Fixes lots of runtimes, improves code resiliency.
## Changelog
🆑
refactor: fixed a bunch of instances of callbacks being qdeleted and
cleaned up related code
/🆑
## About The Pull Request
Moves pulling the scanner wand from alt click into right clicking with
an empty hand.
Turns a few `to_chat` into balloon alerts.
Screentips.
## Why It's Good For The Game
Firstly, right click is just better UX than Alt clicking IMO.
I often talk with people that have no idea you can pull the scanner wand
from the kiosk to check on other patients.
That is such a neat feature and I just want it used more, so I hope this
nudges people to learn about it easier.
I did plan on also adding a new sprite for when the kiosk has a wand,
but after a few attempts I gave up for now, maybe someday I have more
patience I come back to it because it would help way more than these
changes...
## Changelog
🆑 Guillaume Prata
qol: Medical Kiosk now have their wand removed with a right click, got
new screentips and have a few of its chat messages turned into balloon
alerts.
/🆑
---------
Co-authored-by: ArcaneMusic <41715314+ArcaneMusic@users.noreply.github.com>
## About The Pull Request
https://github.com/tgstation/tgstation/pull/77641 made it so that RCD
effects can be hit while they're constructing to stop their
construction. however, the construction effect itself lingers a bit
after things are done constructing, allowing it to eat up clicks. this
fixes it by removing the flag when it's done constructing.
## Why It's Good For The Game
fix good 👯👯♂️👯♀️🎉🏖️🐝
## Changelog
🆑
fix: You should no longer attack RCD effects when they're done
constructing.
/🆑
## About The Pull Request
Makes messenger bags craftable using the same recipe as backpacks and
satchels.
## Why It's Good For The Game
Just making the list of craftable containers complete
## Changelog
🆑
qol: Messenger bags can be crafted with 4 cloth.
/🆑
## About The Pull Request
Simply replaces the decloning virus's dependency on clone loss with a
status effect that operates on a strike system, very similar to how it
was handled with clone damage. The strikes are reversed if you have
mutadone in your blood, eventually removing the status effect entirely.
If the virus is cured, the status effect is also removed.
Additionally, the decloning virus was not curable before. The cure hints
suggested this shouldn't be the case, so I added it back again.
## Why It's Good For The Game
Explanation from #77569:
> Clone damage is a damage type that shouldn't exist anymore, it's a
relic left from the era of cloning and it's so specific of a damage type
that it rarely gets used as a result. It really should be a type of
affliction (wound etc) instead of its own damage counter.
What's changed since then is that I don't think clone damage should not
exist at all anymore. It only affects one department and a few odd
situations anyways.
This PR should actually change very little about the virus, as it works
with the same numbers as it did before, and since cloneloss healing is
just as easy to come by as taking mutadone is.
## Changelog
🆑 distributivgesetz
add: Replaces decloning clone damage with a strike system that you can
replenish with Mutadone.
fix: The decloning virus is curable with rezadone again.
/🆑
## About The Pull Request
Might as well go over all of them here.
1. Holoparasites deal half of the damage they take as clone damage to
their summoner when they are knocked out. Now it deals damage to the
brain instead.
2. Prion peptides used to deal a little bit of clone damage every
reagent tick. Now they do it to the brain.
3. When transforming back to human from a slime via a shapeshift spell,
the total damage you have gets flat converted into clone damage. Now it
gets flat converted to toxin damage.
4. Black stabilized slimes let you drain health from other people if you
latched onto them, dealing clone damage to whoever you latched onto,
same as slimes used to do. This has been converted to brute damage.
## Why It's Good For The Game
Explanation from #77569:
> Clone damage is a damage type that shouldn't exist anymore, it's a
relic left from the era of cloning and it's so specific of a damage type
that it rarely gets used as a result. It really should be a type of
affliction (wound etc) instead of its own damage counter.
Only a few left to go, cosmic heretic lore, the greed ruin and the
decloner gun. Then we can remove clone damage completely.
## Changelog
🆑
del: Removes miscellaneous sources of clone damage from the game.
/🆑
## About The Pull Request
Fixes https://github.com/tgstation/tgstation/issues/77714
Icons for apocalypse weren't pathed properly, so they were just applying
non-existing icons.
Also changed preview image for unholy water bottle on the altar, as it
was added it's own icon.
## Changelog
🆑
fix: fixed apocalypse rune applying invisibility to mobs.
fix: Unholy water preview icon is now similar with the icon it has.
/🆑
## About The Pull Request
It was possible for explosions to process throwing FIRST, then the
actual explosion. That's dumb, let's not do that.
Fixes a bug with SS explosions, it used SSair defines for its currentrun
default, which because of misordered defines lead to it running throwing
first for ONLY the first explosion. DUMB.
Changed how objects pick where they land. instead of using get_dir we
get the angle to the center, then invert it. Should lead to a nicer
picture
Unanchors broken disposal pipes so they'll get flung around Ups the
throw range for explosions. This needs more tweaking someday, but this
is ok for now
## Why It's Good For The Game
Throwing will happen consistently now, less fuckin floating shit sitting
in spac
## About The Pull Request
pretty much what it says on the tin, did you know that you have to have
medical access to order cats? or that only the HoS can order crabs and
even then it requires bluespace pods? or how about the fact that cows
are locked behind hydroponics access?
this has been rectified by stripping the access requirements from all
the animals in the livestock category of the cargo orders console,
PLEASE TAKE NOTE: this does not allow you to purchase crates that were
locked behind some other form of locking mechanic, such as crabs needing
bluespace pods, or butterflies requiring contraband access via hacking,
they still require those things, just no longer an ID.
## Why It's Good For The Game
let assistants build their farms, there isn't actually any mechanical
bonus to being able to buy animals other than i guess you can ride pigs
and horses? its fun to be able to buy all the animals without me having
to go to the HoP and get a chefs ID with botanical access, and then get
medical access, and then ask the HoP to tag along so i can get him to
buy a corgi crate, you know what i mean?
## Changelog
🆑
balance: removes the access restrictions from all animals found under
the livestocks tab of the cargo order console, now assistants can
private order animals for their farms without access hunting
/🆑
## About The Pull Request
If you RCD a lattice with floor/wall mode on icebox, it won't actually
place down the floor because the open space is not "space" - this
switches the check to openspace, allowing you to fix floors on icebox by
clicking on lattices. For some reason this would also cause you to waste
your matter units on this action.
## Why It's Good For The Game
fix good
## Changelog
🆑
fix: You should be able to click on lattices on icebox with the RCD and
construct a floor now
/🆑
## About The Pull Request
fixes the regal rat not running away from whoever attacked him. also
adds a new pet command behavior which makes the king's minions drop
whatever they are doing and defend their king from whoever has attacked
him.
## Why It's Good For The Game
the rats now behave right
## Changelog
🆑
fix: regal rats now run away from whoever attacked them
add: new pet behavior which makes pets defend their owners if they got
attacked
/🆑
## About The Pull Request
The latest cargo resprite changed the QM jumpsuit/skirt to only expose
the arms, which was not even brought up in the changelog.
This is stupidly annoying to deal with for both the QM and doctors at
medbay, since surgery becomes a lot more clumbersome and opens the QM
for free theft.
The bulk of the uniforms already expose the torse as the standard and I
can't see a reason for the QM to go outside the norm, even more when
their uniform is basically a copy of the CT ones, and the CT ones can be
adjusted properly.
Also kills a duplicate sprite since I was there.
## Why It's Good For The Game
Consistency.
## Changelog
🆑 Guillaume Prata
qol: QM jumpsuit/skirt expose the torso when adjusted.
/🆑
## About The Pull Request
Adds interaction between immovable rod and the tram for the rare
occasions the rod hits it at the front or back while flying at a
parallel angle.
The rod will push/pull the tram in the direction it's flying until a
short distance past the tram's usual landmark, eventually winning and
carrying on.
- Only applies to random rods, if the rod has a target it will ignore
the tram as usual.
- Looping rod only pushes the tram once.
- As long as the tram has power, can be returned to the rails as usual
by calling it.
## Why It's Good For The Game
When the HoP is having a really unlucky day.
https://github.com/tgstation/tgstation/assets/83487515/2f0393cd-f796-4b00-8674-d97e57358543https://github.com/tgstation/tgstation/assets/83487515/f74c8497-8d62-4fcf-80a0-da7259160b7f
## Changelog
🆑 LT3
add: Immovable rod will now battle the unstoppable tram should they
cross paths
fix: Birdshot's maint tram doors now work properly
fix: Tramstation's exterior light fixtures no longer get destroyed as
soon as the tram moves
code: Tram landmarks are now all subtyped instead of map varedits
/🆑
## About The Pull Request
fixes bug in multitools where they didnt unregister signals
fixes modlink scryers checking battery charge without a battery
frequency stuff is a bit more explained
## Why It's Good For The Game
good stuf
## Changelog
🆑
fix: fixes multitools possibly randomly losing their buffer
fix: fixes modlinks checking battery charge without a battery and
working without charge
qol: modlink stuff is a bit more explained
fix: modlinks printed from rnd no longer start with a frequency
(remember to copy it from another one with a multitool buffer, robotics
starts with 2 NT frequency linked ones)
/🆑
## About The Pull Request
the ninja stungloves are no longer a knockdown + shove in one click (not
a stun). clicking on people now first does the shove and THEN knocks
someone down for 3 seconds after a 0.3 second delay. this means you need
to click on them twice
ninja's stealth module now gives you the silent footsteps trait when
active
all ninjas now have the light step and freerunning quirks
## Why It's Good For The Game
ninjas really cool but he doesn't really need 1 click stuns in addition
to all his other tools, he can escape pretty much anything and has a
sword for melee encounters, and knocking someone down instantly is still
really powerful
ninjas getting quirks that fit them is cute i think, makes sense and is
useful
## Changelog
🆑
balance: ninja's stealth module gives silent footsteps when active
balance: all ninjas now have the light step and freerunning quirks
balance: ninja's hacker module shove no longer stuns in 1 hit. first
shove knocks down and pushes away, second one stuns
fix: fixes ninja shoves not causing sparks
qol: the person in an energy net is now reasonable to hit, the dark part
of the sprite is now an underlay, so you can click the person inside the
net pretty easily and if you wanna hit the net you click the green part
or the darker sides that the human sprite doesnt cover
/🆑
## About The Pull Request
[Makes the do_afters list behave as
expected](b7cd6c520f)
Half the code expected it to be a flat list of things we are acting on,
half expected it to be an assoc list of thing -> interaction count
Let's make that second dream a reality yeah?
[Disables stoplag's lag stoppage for unit
tests](88b2bb371c)
Because of the unique environment of unit tests (High cpu usage, lots of
sleeping) this risks spurious hard deletes from neverending stoplag
runs.
## Why It's Good For The Game
Less errors/guesswork in testing, better code
Potentially addresses #77865
## About The Pull Request
When doing my new food release, I thought moussaka used both potatoes
and eggplants when it only uses eggplants, which can be substituted for
potatoes (which is lame and not authentic!)
Also, pita bread no longer burns on the griddle
## Why It's Good For The Game
Food becomes a bit more consistent!
## Changelog
🆑
fix: Moussaka now only uses eggplants instead of eggplants and potatoes
fix: Pita bread no longer burns on the griddle/oven
/🆑
## About The Pull Request
The roundend report now has a section dedicated to achievements earned.
It will report the ckey/identity of the player, the earned achievement,
and where it was earned.

## Why It's Good For The Game
Adds some more fun stuff to the roundend report, and contributes to the
recent uptick in achievement-related PRs.
## Changelog
🆑 Rhials
add: The roundend report will now read out any achievements ("cheevos"
as you may know them) earned by players over the course of the round.
/🆑
## About The Pull Request
Ports BeeStation/BeeStation-Hornet#3590. As it is right now, it's
trivial to set up a contraption using a conveyor belt and a shocked
grille to continuously shock monkey bodies. While this is very funny, it
also serves as a ghetto powersink that's hard to locate, easy to
replicate, and lasts effectively forever, since you can just keep
shocking the same bodies over and over again.
This doesn't completely remove the ability to make these, but it makes
them require at least a little maintenance and provides a way for them
to stop working even if the crew isn't able to locate them.
In an attempt to finally get people using the _actual_ powersink,
they'll show up a bit earlier in progression now. I'm not convinced 20
minutes is enough, but I don't want to put them in early enough that it
fucks with Engineering's ability to set things up at round start. We can
turn this down further if need be.
I'm also up for turning the TC requirement down, but 11 feels about
right for what they're supposed to do, so I'd prefer we try this first
and see how that works.
## Why It's Good For The Game
I'm all for goofy weird shit players have found, but there's an issue
with being able to do what an antag item is supposed to do but just
plain better. This shouldn't make creating these impossible or make them
unusable, but it'll require players to actively monitor them if they
want it to run for an extended period.
Additionally, we don't really see powersinks much anymore, and while
that might be more because powernets are kind of buggy and unreliable, I
think making them easier to get will make them show up a little more.
## Changelog
🆑 Vekter
balance: Grilles will now take 0-1 damage every time they shock
something.
balance: Powersinks are now available earlier in traitor progression.
/🆑
---------
Co-authored-by: Fikou <23585223+Fikou@users.noreply.github.com>
## About The Pull Request
Replaces the Traitor's Camera Bug item with an application that allows
you to view camera apps.
The difference between this app and the Security one is that it does not
have an access requirement, does not make noise (it didn't previously
due to a bug, fixed in this PR), and can be installed on PDAs.
This can also be installed from syndienet, which means nukies now have a
way to see the station cameras while off the ship.
Adds Syndicate app disks, which are made of Gold. This is only used by
the Camera app as of right now.
I also fixed some issues along the way;
- Camera tablet app now properly shows cameras
- It now properly makes the noises it is supposed to
- It clears the viewers properly on the ui being closed or the app being
exited.
Syndicate app disks ddelete their apps upon being transferred over (like
maintenance disks), trying to remain consistent with previous behavior.
I also made this for a [personal project I am currently working
on](https://hackmd.io/XLt5MoRvRxuhFbwtk4VAUA). I could just make this UI
be TGUI, but I thought it could be worth trying to turn it into a better
item first.
Tracking people is much simpler now- You choose anyone from a list of
people found on cameras, and it will try to find a camera that sees
them. It follows them until you close the app or switch camera.
https://github.com/tgstation/tgstation/assets/53777086/1536ebb9-0c4f-45bb-b593-f98791ea6d23
## Why It's Good For The Game
The Camera Bug is one of the worst traitor items as of current. You can
remotely shut off a single camera, something that can be done with basic
tools you are likely carrying around anyways, and uses an HTML clunky UI
to flip through cameras.
This new Traitor item makes it much easier to use, since the camera
consoles are something you are likely already used to.
It also means emagging a tablet is slightly more useful, and golden data
disks are pretty cool.
Unfortunately this means that they no longer grant illegal tech, because
otherwise you can simply clone the app infinitely for personal use, and
deconstruct the disk itself for tech. This can be grinded into gold, but
I think if we want an illegal tech item, it'll have to find a new host.
Closes https://github.com/tgstation/tgstation/issues/74839
Closes https://github.com/tgstation/tgstation/issues/39975
Closes https://github.com/tgstation/tgstation/issues/53820
## Changelog
🆑
balance: The Traitor's Camera bug is now a tablet app that works like a
silent camera console with an extra ability to track people through
their nearby cameras.
/🆑
## About The Pull Request
You shouldn't ever qdel a callback. If you don't want to own it free
your ref (remove it from a list/set it to null). When all refs are
cleared it'll get cleaned up by byond itself
## About The Pull Request
Some fixes in #77219 brought up some weirdness with the sleep status
effect. Healium would perma-sleep people, and sleeping in general lost
the ability to heal minor wounds.
## Why It's Good For The Game
Fix bugs, wow healium is abusable right now
`mind.transfer_to` sets mind to null.
`mind.set_original_character` thus, should not work, but happens to
because BYOND incorrectly caches this.
This is causing problems with OpenDream because they do not have this
same bug.
## About The Pull Request
Using `src` as a trait source is an error and can often lead to
hard-deletes
If you wish to tie a source to a certain datum, it is common to use
`REF(src)` instead.
Ideally, we would lint or test for any use of a reference rather than a
string in use in trait sources, but that's a bit harder to setup.
Currently (from what I can see) the *only* erroneous use of references
as sources are via `src`, so it being the most common error, I see it
fine to lint for it.
## Changelog
Nothing player facing.
## About The Pull Request
Replaces four hardcoded `locate(wound) in wounds` with a proc and 1
loop.
## Why It's Good For The Game
Why iterate over a loop four times when you can iterate once?
## Changelog
🆑 Melbert
code: Cleans up limb wound examine text code a tad.
/🆑
## About The Pull Request
In addition, improves dump_harddel_deets usage to hopefully hit in unit
testing
byond_status() will dump as a part of find_references(). While I'd like
to expand that if we ever get a proper version, this is good for how we
have things setup rn.
## About The Pull Request
the goldgrub is now a basic monster. the goldgrub will now look for
walls to mine and look for ores to eat. if he finds any nearby humans he
will escape and dig away. also if he sense a storm is coming he will dig
away and only come back out when the storm is gone. the goldgrub will
escape from u but u can now befriend the goldgrub. if u feed him ores he
will love u and become ur pet u can ride him or make him follow u. he
will also help u mine, if u leave him to mine for a bit and come back to
him later u can ask him to spit out all the materials he mined and he
will give them to u. also if u feed him a bluespace ore, he will lay an
egg and have a baby. the goldgrub is very protective over this egg he
will drag it around with him. the goldgrub baby will follow his mom or
dad until he grows up to be like his mom or dad
## Why It's Good For The Game
give the goldgrub more character and now he can help miners to mine if
they befriend him
## Changelog
🆑
refactor: the goldgrub has been refactored please report any bugs
add: the goldgrub can now be tamed and he can have babys
/🆑
Current implementation uses isobserver for checking if we should send to
the player but dead players (who are still in their body) are not
observers and will fail that check.
## About The Pull Request
Closes#77793
This PR reverts the buffs made to ammo capacity on laser weapons in PR
#75329 . This PR does not touch anything else about the laser buffs
(damage and wound chance).
## Why It's Good For The Game
In the eyes of some, the laser buffs were a necessity to prevent them
feeling like a wet noodle (which I don't think was the case, but I
digress). However, the laser buffs also brought along a reduction in
energy cost per shot, which has allowed people to effectively spam the
newly buffed lasers to an unhealthy degree, since they only need to land
4 of the many shots a laser gun can currently produce to win the fight.
The buff as a whole has created a massive power gap between the rest of
the crew's weaponry and lasers, who wildly outclass anything else the
crew can currently obtain along with some antag gear. The crew was
already in a position of strength compared to the antagonists they face,
so the buff has had negative implications regarding the current balance.
However, if we allow antags to get buffed in line with the new lasers,
then lasers will become the only option as opposed to the clear best
option, which I don't think we want. So, I think nerfing the ammo
capacity back down to what it was originally is the most healthy way to
bring lasers back in line without making them feel weak. Let's see what
happens.
## Changelog
🆑
balance: Lasers now have increased energy cost, reverting the cost back
to the initial value before the laser buff.
/🆑
1. Removes `/obj/machinery/ore_silo/proc/remote_attackby()`. This proc
calls `datum/component/material_container/user_insert()` anyway which
performs all the checks necessary for inserting stuff into the ore silo
and `/obj/machinery/ore_silo/proc/remote_attackby()` was just repeating
its code & checks. So now inserting into the ore silo is directly
handled by the mat container without this proxy proc making the
operation slightly faster
2. Removed silo `attackby` code. Same operations can be done via
`screwdriver_act` & `crowbar_act` procs much cleaner
3. The ore silo now hooks onto signals
`COMSIG_MATCONTAINER_ITEM_CONSUMED` and
`COMSIG_MATCONTAINER_SHEETS_RETRIVED` and logs into silo when they are
triggered. This means when you insert/eject sheets from the silo the
connected machine performing the operation no longer has to do the
logging manually thus the proc `silo_log` has been removed from a lot of
places ,reducing overall code size
4. A lot of stuff that use materials from the ore silo follow this
pattern.
i.e. They first use the materials from the silo and then log it via
`silo_log` proc. This code pattern is repeated in a lot of places so
let's just merge these 2 lines with some extra sanity checks into a
single proc inside `remote_materials` itself. That's what was done and
the number of places where you log manually into the silo has been
removed further reducing code size everywhere.
5. Added auto doc & cleaned up some procs
Since logging is now done by the ore silo directly, we need a way to
pass the machine that is inserting items into the silo to the signal
handlers of the ore silo [via the `context` var]. So other code changes
elsewhere is because of this var
Set_dynamic_human_appearance set the new appearance directly on the
target mob. This has caused the mob's name to become Unknown, and its
description to become empty, as it inherited the name and description of
the appearance's source, which was a default spawned dummy human.
This PR makes it so that it nulls the icon of the target, and then
copies the appearance via copy_overlays.
Thank you Fikou for pointing out this simple solution, I almost did
something complicated with signals.