## About The Pull Request
What it says on the tin.
Inflicts status effects instead of brain traumas.
Needs a large dosage (somewhere around 50 units, I don't think the code
comments are accurate about the dosage) to remove the status effect.
Having any amount of holy water in your system prevents the paintings
from inflicting its status effect on you.
## Why It's Good For The Game
So I had a little event involving these paintings, and I...vastly
underestimated just how horrifically disruptive these paintings can be
and how few options you have to deal with them adequately if there are a
lot of them around. They can do some serious damage.
They probably don't exactly see much use, not because of their lack of
effectiveness, but because they simply do not push the heretic closer to
victory. Most heretics ignore these kinds of 'sabotage' tools because
they're slow like that. But if someone is particularly eager to use
them, they might make enough of a mess to, say, force a shuttle call
early as the station rusts mysteriously all around them and everyone
starts to crater in sanity. (moon heretics would love that if they
weren't speedrunning ascension)
So, traumas suck and also resolving the trauma does not necessarily give
you the means to stop getting more traumas or deal with future traumas
while dealing with the paintings, Holy water is already a tool for
dealing with magical stuff, but in of itself it is not necessarily
immediately sourcable unless there is a chaplain, or botany or cargo has
been on ball. So it still reliant on someone else to help combat it than
just some random joe shmoe with a wirecutter. I think this is mostly net
neutral balance wise enough to be considered 'quality of life' if only
that it makes engagement better while still being largely as impactful
as it ever was due to the fact people will likely still suffer/inflict
damage on the station from coming into contact with the painting, as
well as the removal still taking an amount of time and a large dosage of
holy water, all the while the effect still takes place.
## Changelog
🆑
qol: Eldritch paintings no longer inflict brain traumas on you that need
surgery to remove. Instead, they inflict a status effect that can be
protected from and removed using large doses of holy water.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
This could cause runtimes preventing antag datum removal in case your
body got destroyed. Ideally we'd unit test for this, but I can't get it
to work sanely without touching some dynamic code (due to some antag
datums requiring a bunch of snowflaky setups), so the unit test will
come after its refactored.
## Changelog
🆑
fix: Fixed some edge cases where antagonist datums would "stick" and not
get removed if your body got destroyed.
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Removes self_ignition component and replaces it with a more performant
and cleaner bodypart effect system.
Additionally, fixes two issues where plasmamen would sometimes still be
set on fire/be affected by fire damage even when sealed, and where they
could have exposed hands but not get set ablaze.
- Closes#89277
## Why It's Good For The Game
self_ignition component is per-limb and thus causes plasmamen to tick
six times as much going through all of their equipment. This is plain
better.
## Changelog
🆑
fix: Plasmamen no longer should get perpetually stuck ablaze in rare
edge case scenarios
fix: Plasmamen need to wear gloves once again
code: Updated plasmamen limb tracking/effects to be more performant
/🆑
## About The Pull Request
Very simply put, we weren't actually unregistering the
`COMSIG_MOVABLE_MOVED` signal on detaching.
This was making it so that when you open a critter crate it doesn't
actually unregister the signal, meaning that it re-attaches a lot of its
effects to the turf the next time the crate moves. However, because it
wasn't actually *properly* attached anymore, breaking the crate wouldn't
unregister the turf.
So this was making it so that if you were to open a critter crate and
then move it immediately after, it would regain its ability to elevate
you as if it were closed, and this would linger even after it breaking.
This fixes that.
## Why It's Good For The Game
Fixes https://github.com/tgstation/tgstation/issues/91204.
## Changelog
🆑
fix: Critter crates no longer re-attain their ability to lift you
despite being open if you move one after opening it, and neither does
this lifting field stay after you destroy it.
/🆑
## About The Pull Request
Attaching goliath plating to mechs now requires and takes up an armor
slot.

Also removed some now-unused values on armor modules
##### This is a comission for Ezel/Improvedname
## Why It's Good For The Game
Currently you can get to melee armor cap on Ripley or Paddy by stacking
an armor booster with goliath armor (20 + 30 + nat 40 = 90) which is a
bit absurd. While its strong enough on ripley, a lot of both antagonist
and crew weapons (most, in fact) are melee and thus become absolutely
useless against an already very oppressive roundstart mech that Paddy
is. This makes goliath plates a better option than an armor booster that
you have to go down to lavaland to while preventing it from being
stacked to reach absurd numbers. Also could possibly lead to allowing
attachment of those to other mechs which I think could be neat.
## Changelog
🆑
balance: Ripley goliath plating now takes up an armor slot on the mech
/🆑
## About The Pull Request
Fixing more stuff because I didn't test it properly before.
## Why It's Good For The Game
It should work now. Fix#91560.
## Changelog
🆑
fix: Fixed mutation injectors.
fix: Fixed mutadone turning actual monkeys into humonkeys.
/🆑
## About The Pull Request
(old video)
https://github.com/user-attachments/assets/4b04c372-05a2-4bab-b4a4-1b2c965061e5
unlocked by holographics research
put two facing eachother and turn one on to make a field that blocks
atmos, if not obstructed by wall
fields cannot be broken or clicked but the generators may (theyre
relatively weak)
requires external airlock access or apc access
uses area power, environmental channel
may be locked
may be screwed open to access wiring, has 1 wire that just toggles it
changes tiny fans on stations to use those
## Why It's Good For The Game
a better and rebuildable alternative to magic tiny fans
## Changelog
🆑
add: atmospherics shield generator, unlocked by Holographics research
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
The value of the "ByondRef" key referenced the dummy mutation used for
alias and sequence and not the one actually from the mutations list of
the dna datum.
## Why It's Good For The Game
This will fix#91532.
## Changelog
🆑
fix: Fixed DNA consoles.
/🆑
## About The Pull Request
Changes some logic in underfloor object and atmos component rendering to
make them look nicer when visible, but not accessible under floors. Also
changes how catwalks get rendered to improve their visuals when opened.
Before:

After:

## Why It's Good For The Game
Makes pipes look less shit. The rendering curse reigns eternal.
## Changelog
🆑
fix: Fixed vents and pipes partially poking out from under glass and
catwalk floors
/🆑
## About The Pull Request
- Fixes#91494
- Fixes#91479
- Fixes#90533
The ORM disconnects the machines from its `Destroy()` proc by which time
its deleted flag has already been set to TRUE leading to an early
return, thus causing the silo to not disconnect properly
## Changelog
🆑
fix: lathes don't break on ore silo deletion
/🆑
## About The Pull Request
-# so help me space jesus if this doesn't compile despite working fine
on my local machine
Makes burdened chaplain and psyker pirates not blind, so that someone
playing them isnt assaulted by irregularly flashing monochromatic lights
on a black background. Instead the echolocation outlines will simply
pulse to highlight nearby objects regardless of lighting conditions or
other vision obscuring effects. adds support for if you want
psykerization to blind people or not.
keeps bitrunner psykers blind, since that's the point of the domain.
Just avoid those domains if you can't handle the effect, sorry.
## Why It's Good For The Game
A. It makes psyker an actual useful ability. I have personally seen, as
a ghost, psyker pirates fail to navigate out of their ship for a full
five minutes, and then die horribly because they are unable to actually
do anything because they're **Worse than blinded** since blindness has a
small radius of working vision.
B. In-game effects should not cause **real world eye pain and nausea**
thank you very much.
neat fact: blind seers only really work when the seer-ing makes up for
the blindness.
example of outline highlighting hidden underfloor objects (like that
satchel!) while user is not horribly blinded

## Changelog
🆑
fix: blind psykers are not blinded twice by two different sources, head
and brain.
qol: Psyker bounty hunters and chaplains are no longer blinded by
default, so as to reduce the amount of eye strain from the echolocation
effect. The echolocation virtual domains remain as they are.
/🆑
---------
Co-authored-by: ThrowawayUseless <notarealemail@emailservice.fake>
## About The Pull Request
This PR aims to clean or bring up to date portions of code about dna,
the dna console and mutations. This includes taking care of or removing
some of the awful choices like the pratically useless
`datum/mutation/human` pathing, or the class variable, in favor of using
sources to avoid potential issues with extraneous sources of a mutation.
The files changed are over a hundred just because I removed the
`datum/mutation/human` path, but the actual bulk of the code is mainly
shared between the datum/dna.dm, _mutations.dm and dna_console.dm.
## Why It's Good For The Game
Mutation shitcode is hurting my future plans for infusions a little.
Also it's a much needed refactor. Drafted 'till I'm sure it works
without issues.
## Changelog
🆑
refactor: Refactored mutation code backend. Report any issue.
/🆑
## About The Pull Request
This mostly just refactors the book `attackby(...)` proc into
`item_interaction(...)`, with some side-effects and screentips.
Notable ones follow here:
We move carving away from combat mode, and instead based it on whether
our tool is a pure writing utensil, a pure carving tool, or both at once
like the captain's fountain pen. If it's a pure tool, both left click
and right click are its respective primary action. If it's both,
however, left click is vandalizing and right click is carving.
This tries to ensure the expected primary interaction is always
left-click, without blocking anything if it could do both.
We move the barcode scanner interaction to the barcode scanner instead.
There's no good reason for this to stay on the book itself.
We add `can_vandalize(...)` as a proc and move all checks in there, so
we can call it after every tgui input. We don't replace the
`to_chat(...)` calls here with balloon alerts because the additional
clarifying info is needed, and it keeps the 'soulful' blind message.
We add `get_attack_self_context(...)` as a proc for getting screentips
on hovering over it in your active hand, because both the bible subtype
and the syndicate bible _bible subtype_ want different screentips there
in different situations, and so while it's clunky it's much less clunky
than the alternatives I considered.
Making it use actual storage datums avoids subtypes needing to make
manual changes to it in the `carve_out(...)` proc, and is just good for
organization.
This doesn't add screentips to most bible-specific interactions, as I
deemed them outside of the scope of this pr.
Those are better off done atomized into another pr.
## Why It's Good For The Game
less attackby, more item interaction
screentips good
I think having the carving interaction on combat mode is unintuitive,
especially when that's the only interaction it can do.
This ensures the expected primary interaction is always left-click.
## Changelog
🆑
refactor: Refactored the book interaction chain. Please report any
issues.
fix: You can no longer vandalize carved out books if you carve it after
opening the input menu but before entering anything.
qol: Added screentips to book interactions.
qol: Added screentips to barcode scanner interactions.
qol: Carving out books no longer uses combat mode, instead using
left-click by default and right-click if your tool can also write.
Screentips account for this.
/🆑
---------
Co-authored-by: Ben10Omintrix <138636438+Ben10Omintrix@users.noreply.github.com>
## About The Pull Request
Caused by ``initial()`` usage on the base type, and speed modification
on the holy child. Since move_intent can only be run or walk, we're good
to just +- on the base type instead.
Closes#91492
## Changelog
🆑
fix: Fixed holy hoverboards being able to gain speed boosts via move
intent changing while in space
/🆑
## About The Pull Request
Mobs will check for swarming when an atom inits on their tile as well as
when one enters it
## Why It's Good For The Game
I was fucking around with the Hive Head changeling power and noticed
that the bees it spawns tend to stack up instead of spread out nicely,
and I didn't like that.

## Changelog
🆑
fix: Small stacking mobs like mice and bees will attempt to spread out
visually within their tile as soon as they spawn rather than just when
moving
/🆑
## About The Pull Request
Reduces the time spent selecting ghosts for the "blackout drunk" effect
from 20 seconds to 10
## Why It's Good For The Game
Your average person who triggers the "Blackout Drunk" effect (where
another player is put in control of their character) is roughly 45
seconds away from dying of liver failure (number I pulled out of my ass)
or at least getting knocked out for a long time due to the amount of
alcohol in their blood
20 of those seconds are spent polling for ghosts, meaning that the
length of time between someone else assuming direct control and the
character becoming permanently unconscious is frequently not really long
enough for them to do anything funny
You know when clicking this role that you're signing up for a good time
not a long time, but I think that also means people probably don't need
to think too long about whether they want to play it or not, so halving
the selection time gives you a full 10 seconds more time to tell
everyone in the bar that they're your best friends
Regular Split Personality traumas aren't so time critical and can
continue to enjoy a lengthier selection process to possibly gather more
candidates
## Changelog
🆑
qol: ghost candidates for blackout drunk are selected more quickly
/🆑
## About The Pull Request
Adds bloodroaches.

These are cockroaches that have gorged themselves on blood in
maintenance. They're very gross!

Splatting one causes an explosion of blood all around the death
perimeter, splashing both turfs and mobs with blood.
They have a 1% chance of spawning in place of normal roaches.
They also spawn in:
- Abandoned crates, replacing the 30 roaches with 30 bloodroaches.
- As backup anomalous crystal possession targets.
- Grimy fridges
Added a trait given to things killed by pest spray, used to check on
death explosion for bloodroaches.
Changed roach spawns in maps to use mob spawners, so I can replace them
with bloodroaches 1% of the time.
## Why It's Good For The Game
Splatting a random roach in maintenance that explodes into blood sounds
hilarious. It also adds janitorial depth by requiring pest spray to
carefully eliminate these pests
## Changelog
🆑
add: Added bloodroaches, a rare variant of cockroaches that explode into
a shower of blood when squashed.
/🆑
## About The Pull Request
This has the potential to create a lot of needless mob updates which is
not great. Now should only update a mob's clothing if it was actually
washed.
This PR
1) ensures that all wash() procs return a bitflag.
2) ensures that `wash()` proccalls which result in expensive operations
like icon updates only do so when it is necessary
## Why It's Good For The Game
Updating mob sprites is expensive, and doing it when nothing has been
changed is bad.
## Changelog
Nothing really player facing
## About The Pull Request
Turns out there were a couple of black mask subtypes that I missed as
well as a prisoner uniform subtype.
Also fixes some bugs that are not related to the map icon pr to further
improve the situation with GAGS previews.
## Why It's Good For The Game
Smaller .dmis, working previews
## Changelog
🆑
fix: spraycan can now be used to recolor the gi, glow shoes, striped
dress, H.E.C.K. suit
fix: most GAGS items should now be showing up in the lootpanel again
/🆑
## About The Pull Request
My original plan was to just implement materials into crafting so that
items would inherit the materials of their components, allowing for some
interesting stuff if the material flags of the item allow it. However to
my dismay crafting is a pile of old tech debt, starting from the old
`del_reqs` and `CheckParts` which still contain lines about old janky
bandaids that are no longer in use nor reachable, up to the
`customizable_reagent_holder` component which has some harddel issues
when your custom food is sliced, and items used in food recipes not
being deleted and instead stored inside the result with no purpose as
well as other inconsistencies like stack recipes that transfer materials
having counterparts in the UI that don't do that.
EDIT: Several things have come up while working on this, so I apologise
that it ended up changing over 100+ files. I managed to atomize some of
the changes, but it's a bit tedious.
EDIT: TLDR because I was told this section is too vague and there's too
much going on. This PR:
- Improves the dated crafting code (not the UI).
- replaced `atom/CheckParts` and `crafting_recipe/on_craft_completion`
with `atom/on_craft_completion`.
- Reqs used in food recipes are now deleted by default and not stored
inside the result (they did nothing).
- Renames the customizable_reagent_holder comp and improves it (No
harddels/ref issues).
- Adds a unit test that tries to craft all recipes to see what's wrong
(it skips some of the much more specific reqs for now).
- In the unit test is also the code to make sure materials of the
crafted item and a non-crafted item of the same type are roughly the
same, so far only applied to food.
- Some mild material/food refactoring around the fact that food item
code has been changed to support materials.
## Why It's Good For The Game
Improving the backbone of the crafting system. Also materials and food
code.
## Changelog
🆑
refactor: Refactored crafting backend. Report possible pesky bugs.
balance: the MEAT backpack (from the MEAT cargo pack) may be a smidge
different because of code standardization.
/🆑
## About The Pull Request
- ~~The DB schema version define was set to 5.30, the changelog readme
said the latest was 5.28, and the sample insert query in the readme said
it was 5.31~~ (fixed in #91127) Changes the define and readme to 5.32
- Add new entry in readme to rename `character` column in `manifest`
table to `character_name`, because `character` is a reserved word in SQL
and every insert query is failing
- Changed the initial roundstart manifest queries from
number_of_players_readied_up individual insert queries to one mass
insert because I suspect this is add several extra seconds to the start
time
## Why It's Good For The Game
fix yes :)
## Changelog
🆑
server: increment DB schema version to 5.32
server: changed column name in manifest table from character to
character_name because the former is a reserved word
fix: changed round start manifest DB queries from dozens of individual
inserts to one mass insert
fix: hopefully fixed some lag on round start
/🆑
## About The Pull Request
Tanks while used as internals gives a progress bar to show how full they
are, starting from the pressure when first starting to get used, when we
expect the player to know how much is in the tank, and ticking down as
it gets used. Alternative to this could be using the initial pressure,
but then it would remain at 100% for quite a while when you put more
than it starts off with.
This replaces the stat panel entry for them, this is a part of
https://hackmd.io/443_dE5lRWeEAp9bjGcKYw

## Why It's Good For The Game
Adds a visual indicator to tell people how much air they've used since
toggling the tank's internals which is much better than the previous'
random numbers in stat panel.
## Changelog
🆑
qol: internal tanks gives a progress bar when you toggle them, allowing
you to see how much you've consumed so far.
/🆑
this adds the `persistent_client`, `fully_created`, `window_scaling`,
`byond_version`, and `byond_build` vars to `/datum/client_interface`, to
closer match the interface.
- `byond_version` and `byond_build` will always be set to
`world.byond_version` and `world.byond_build`
- persistent clients are only initialized for mock clients during unit
tests.
- i also slightly changed the `mock_client_uid` var so it's used in the
same way as mobs use `next_mob_id`
## About The Pull Request
This moves Cyborgs onto using storage datums, removing the remenants of
the shitcode that was Cyborg inventory. It's now done mostly by
equipping/unequipping/storage items, much like how other mobs do.
This allows borgs to take advantage of more hand support stuff and
things like ``dropped()``, so borgs no longer have to copy paste drop
code to ``cyborg_unequip``
It also:
- Removes ``CYBORG_ITEM_TRAIT``
- Removes all borg items being ``NODROP``
https://github.com/user-attachments/assets/11442a10-3443-41f2-8c72-b38fb0126cdb
## Why It's Good For The Game
Currently borgs are able to have their entire inventory open and a bag
below it, which I thought was a little weird. I always assumed they WERE
storage items, so I guess I'm doing it myself.
Cyborgs using storage code makes it easier for contributors to actually
do stuff with, without risking breaking everything. It also hopefully
will make borg items more resilient against breaking in the future, now
that we're not relying on nodrop.
Also just brings them more in line with other mobs, all of which make
use of storages.
## Changelog
🆑
refactor: Cyborg's modules now use storage (so opening a bag will close
modules instead of overlap one over the other).
qol: Observers can now see Cyborg's inventories (like they can for
humans).
/🆑
---------
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
Closes#91131.
The author currently has other priorities, and as I need it for
something else I am finishing it myself with the author's blessing.
Recently, we turned `transferItemToLoc(...)` into a proc intended to be
for transfers to non-turfs, with it now playing an animation to reflect
that.
However, this had the effect of leaving us with `dropItemToGround(...)`
for mob>turf transfers, which isn't _ideal_. It sends an 'item dropped'
signal, it randomizes offsets, and using it to transfer to a
non-`drop_location()` loc was implemented as an afterthought.
So in this pr we create a new proc, `transfer_item_to_turf(...)`, that
separates off the actual transferring, setting offsets, and animating
into its own proc.
Then `dropItemToGround(...)`, tables, racks, easels, closets, hoops,
beds, conveyor belts, pin the tail corgi posters, some other stuff, and
the `floor_placeable` element call such each with their own preferred
arguments.
While we could leave setting offsets out of it, because setting the
offsets after calling the animation works just fine, having them be set
before the animation felt like a more intuitive flow.
...While I would love to refactor the easel's incredibly questionable
`attackby(...)`, that is outside of the scope of this pr.
## Why It's Good For The Game
Fixes#91082.
Less jank 👍
## Changelog
🆑
fix: Placing an item on a table/turf via the alt-click menu actually
centers it, again.
fix: Certain items, like canvases or syringe guns, are no longer weirdly
offset when placed on tables.
fix: Placing items on racks, closets, crates, hoops, beds, conveyor
belts, and pin the tail corgi posters is animated again, instead of
instantly teleporting followed by the pickup animation.
fix: Placing a canvas on an easels no longer applies a random offset as
if dropped.
fix: Tucking in someone else actually animates the bedsheet from you to
them, instead of from them to them.
qol: Placing a canvas on an easel is animated.
/🆑
## About The Pull Request
Refactors most of blood handling code untouched by #90593 and completely
rewrites all blood decals, components and reagents.
- Blood types now have behavioral flags which allow them to control
where they leave decals/DNA/viruses. Oil no longer transfers DNA and
viruses with it, while podpeople water-blood doesn't leave visible
decals on turfs and items, but still can be picked up by DNA scanners.
- Multiple blood types have received unique handling - liquid
electricity blood now glows in the dark, oil trails are flammable and
lube ones are slippery. Oil blood can be restored with fuel, lube with
silicon and slime with stable plasma (as normal plasma already passively
regenerates their blood), instead of everything using iron. Saline
solution only supplements on iron-based blood and won't do anything to
help with bloodloss for species who rely on different blood types.
(Roundstart this applies only to Ethereals)
- All blood logic has been moved away from the blood reagent itself into
a blood element that is assigned to the blood reagent by default, and to
any reagent that's drawn from a mob as their "blood" (in
``transfer_blood_to``). This means that blood you draw from lizards will
be green and have lizard's blood description instead of mentioning red
blood cells, Ethereal "blood" will actually contain their DNA and genes,
etc.
- Refactored all blood decals. Blood states are no more, everything is
now handled via blood DNA. Credits to MrMelbert and Maplestation, as a
significant amount of code has been taken from
https://github.com/MrMelbert/MapleStationCode/pull/436 and many of his
followup PRs. Oil and xenomorph splatters are now subtypes of blood,
blood drying is now animated, blood trails now curve and can be
diagonal.
- Rewrote bloodysoles and bloody_spreader components, credits to Melbert
again for the former, while latter now makes more sense with its
interactions. Bloody soles no longer share blood DNA with your hands.
- Ported Melbert's bloody footprint sprites and bot-blood-spreading
functionality.
- Removed all species-side reagent interactions, instead they're handled
by said species' livers. (This previously included exotic blood
handling, thus the removal)
- Slightly optimized human rendering by removing inbetween overlay
holders for clothing when they're not needed.
- Blood-transmitted diseases will now get added to many more decals than
before.
- Cleaned up and partially refactored replica pods, fixed an issue where
monkeys/manipulators were unable to harvest mindless pods.
- Exotic bloodtype on species now automatically assigns their blood
reagent, without the need to assign them separately.
- Clown mobs now bleed (with colorful reagent instead of blood during
april fools), and so do vatbeasts (lizard blood)
- Implemented generic procs for handling bleeding checks, all sorts of
scanners now also correctly call your blood for what it is.
- Podpeople's guts are now lime-green like their organs, instead of
being weirdly greyish like their water-blood. (Their bleeding overlays
are still grey, as they're bleeding water)
- Slimepeople now can bleed. Their jelly is pale purple in color, but
their wound overlays copy their body color.
- Injecting/spraying/splashing/etc mob with a reagent preserves its
data, so you could theoretically recycle fine wines from someone's
bloodstream
- Fixed burdened chaplain's sect never actually giving a blessing when
applying effects, and giving a blessing when nothing can be healed.
Inverted check strikes again.
- Closes#91039
#### Examples
A lot of blood here has dried, visually the blood colors are almost
exactly the same as before either of the blood refactors.


## About The Pull Request
Prettier (an auto formatter) is set to only run within the tgui folder
currently. This removes that limitation, allowing it to automatically
format all supported files in the repo (.js, .html, .yml
[etc](https://prettier.io/docs/))
I made a few exceptions for bundled and generated files
## Why It's Good For The Game
I'm of the opinion that code should look uniform and am lazy enough to
want CTRL-S to format files without having to think beyond that
## Changelog
## About The Pull Request
It was removed in https://github.com/tgstation/tgstation/pull/27799
because the spear was broken and the Flans' AI sucked with not-great
sprites and was all just one big reference. Original addition:
https://github.com/tgstation/tgstation/pull/22270
This re-adds it, updates the map (now using airless turfs) with extra
ambiance, using ash whelps (lavaland variation of ice whelps) instead of
Flans, re-adds the spear, and adds armor as well this time around.
The spear gives you a jump ability to crash down upon a player below
you, rather than teleporting to wherever you throw the spear at. You
can't attack while mid-air, you can go through tables but not
walls/doors, and you also can't un-dualwield or drop the spear mid-jump.
Landing on a mob deals double damage to them (36 to unarmored people),
while landing on objects deals 150 damage to them (taken from savannah's
jump ability, which was in turn taken from hulk's punching)
It's also got some extra throw force (24 compared to default spear's 20)
The armor has basic security-level armor but covers your whole body.
Does not include space protection, and can be worn by Ian.
Video demonstration
https://github.com/user-attachments/assets/a77c3a0d-17d2-4e8d-88b6-cdbca8b1f2c3
New sprites demonstration
https://github.com/user-attachments/assets/0e465351-5484-406f-8adc-ffa1ac180daf
Armor demonstration
https://github.com/user-attachments/assets/abdfcac6-65bf-443c-bde2-27d157ee3a80
Map

With the changes in https://github.com/tgstation/tgstation/pull/90771 I
had to mess with ash whelp abilities a bit, I decided to make them use
cold fire instead of hardcoding blue color on top of the fire sprites,
and it now acts accordingly too
https://github.com/user-attachments/assets/cfca0d70-d13d-4c73-996d-2d4a7519866d
The jump was taken from Savannah Ivanov, and Goof's bunny jumping.
##### Code bounty by Ezel/Improvedname
## Why It's Good For The Game
This Re-implements a old spear that got removed for its buggyness/bad
mapping and on the authors request as well not wanting to deal with it.
Re-introduces the SkyBulge as a space ruin, referencing Dragoons from
Final Fantasy. this just like any normal spear, but using the savannah
jump mechanic, this allows you to close distances with the spear
avoiding ranged projectiles in the jump, and if you directly land on
your target you will do double the damage.
##### -Ezel/Improvedname
## Changelog
🆑 Ezel/Improvedname, Toriate, JohnFulpWillard
add: Re-added the Dragoon Tomb lair, now has a Skybulge spear and
Drachen armor.
balance: Ice whelps now spit out cold fire.
/🆑
---------
Co-authored-by: Jacquerel <hnevard@gmail.com>
## About The Pull Request
This is my second contribution to the move towards removing the stat
panel (first one being https://github.com/tgstation/tgstation/pull/90572
)
This moves the info buttons at the top right of the game's screen
(Changelog, Rules, Wiki, etc) to the Escape menu, except for Fullscreen
which is now a pref instead. This means you can set Fullscreen to be on
permanently and every launch will automatically fullscreen you (the
viewport will be a little off because it only fixes it once
initialization is complete). This follows through rounds and auto
updates if you set your game to fullscreen with the OOC button or F11,
so players will learn about the pref after playing a round with
fullscreen enabled.
What the game now looks like
##### Alt ideas for sprites: Changelog can be a newspaper and Forums can
be a newscaster
https://github.com/user-attachments/assets/7871a226-1e0b-410d-a690-88f3616bebb0
This is something I wanted to do since the Esc menu was added but just
never got around to it, but here it is.
## Why It's Good For The Game
These buttons don't warrant being in the player's face 24/7 and since
we've want to remove the stat panel and this has to be somewhere, I
thought it would be a better fit in the Escape menu. It helps make the
Esc menu the tool players use to access their OOC tools and overall I
think improves the appearance of the game's screen to something more
like an actual game would look like, especially when our comparison is
SS14.
## Changelog
🆑
qol: Info buttons previously at the top right of your screen (Changelog,
wiki, forums) is now in the Escape menu.
qol: Fullscreen is now a preferences and will follow you through rounds.
/🆑
## About The Pull Request
This is part of my ongoing project to remove the Stat panel which you
can read/contribute to here: https://hackmd.io/443_dE5lRWeEAp9bjGcKYw
Replaces the pAI button at the bottom of Ghost's HUD with a new button
for Ghost settings
Default look

With fun verbs (admin only, the 2 buttons at the top right), No body,
and lag switches on (disables T-Ray and Zooming)

The ghost icon next to "re-enter body" is the DNR button, which requires
double click.
Extra view is now easier to understand, 0 is "default", anything more is
extra vision you get. Goes to 3 for regular users, 7 for BYOND members.
Removes the "Ghost" tab from the stat panel entirely, this replaces it.
## Why It's Good For The Game
The Ghost tab of the stat panel is filled with barely functional stuff,
like "Jump to Mob" which allows you to jump to "oranges ear" which
teleports you to nullspace, or the 4 different jump to verbs for
different things which is irrelevant from the Orbit menu and the many
improvements it got over the years, and even the Notifications panel,
which seems pretty useful, but because it's delegated to a small button
filled with the rest of these it gets entirely drowned out.
This puts all the important things in front of the user at the click of
a button, meant to be easy to navigate and giving important information
first.
## Changelog
🆑
add: Added a 'Ghost settings' button, taking the spot of the pAI
candidate button and replacing the "Ghost" tab of the Stat panel. This
button contains buttons pertinent to your time as an Observer.
/🆑
Being colorblind now makes you see all wires in tones of grey.
Also fixes the eyechart not taking the monochromacy quirk into account
when checking for colorblindness
Makes the quirk/trauma a bit more immersive and can lead to funny
situations when you know which color to cut but can't find it.
## About The Pull Request
Completely undocumented change in #86624 which blacklisted Cargorilla
from random rolls
## Why It's Good For The Game
Monkey
## Changelog
🆑 Melbert
fix: Cargorilla is back
/🆑
## About The Pull Request
adds stoats to the game!

these are relatively friendly animals u can find in maints. they'll hunt
down mice and other smaller vermin (making them a janitor's best friend)
,and are nimble enough to crawl through pipes. They also love stealing
things as they will drag random objects they find lying around them.
additionally, you may find disposal bins that are shaking, this means
there's a stoat inside rummaging it for food. clicking eject or throwing
anything in the bin will cause the stoat to immediately jump out scared.
u can also tame them by feeding them eggs or dead mice.
## Why It's Good For The Game
further expands the mob pool of maints, establishing some sort of
ecosystem.
## Changelog
🆑
add: added stoats to the game
/🆑
## About The Pull Request
Neruwhine can no longer roll Cosmic Neural Pattern or its stable
subtype.
Fixed the planetary gravity damage status effect not clearing itself
when you lose the voided trauma.
Closes#90702
## Why It's Good For The Game
Cosmic Neural Pattern is a voidwalker exclusive and is more of a magical
status effect than an actual brain trauma, so having it be temporarily
rollable is a bit stupid.
## Changelog
🆑
balance: Neruwhine can no longer roll voidwalker traumas.
fix: Fixed the planetary gravity damage status effect not clearing
itself when you lose the voided trauma.
/🆑
## About The Pull Request
This PR adds usb functionality to advanced camera consoles.
The advanced camera console component gets the last valid position
viewed from the console, which is usually the current viewed position,
unless you move the view into static.
The advanced camera target intercept outputs the position you left/right
click (except shift-clicking), and what you clicked on. This only works
for atoms the camera can actually see, even if you somehow glitch your
way into not seeing static on your client.
Equipment action components on circuits attached to a camera console
will add their actions to be used from the console.
## Why It's Good For The Game
Expands the use cases for the advanced camera console, providing a means
to extend their functionality, as well as a potentially powerful source
of input data for circuit users able to acquire illegal tech (or get the
board from a space ruin).
## Changelog
🆑
add: Advanced camera consoles now have usb ports. Connected circuits can
get the position the camera is viewing, get the location of targeted
entities, and provide the console with actions that the user can
activate.
/🆑
---------
Co-authored-by: Mothblocks <35135081+Mothblocks@users.noreply.github.com>
## About The Pull Request
So this is all because of a leftover bit making all fancy holders set
their `max_slots` to the `spawn_count`, which of course would override
the custom storage datums.
526e006583/code/game/objects/items/storage/fancy.dm (L33-L36)
This just moves all of the fancy storage items away from
auto-calculating storage based on those vars entirely, making new
storage datums for all of the ones which didn't have one yet.
We also move this out of the misc file, because a misc file is
meaningless if everything together makes it bloated.
We also do some minor fixes and changes.
- The pickle jar could only hold seven small items, even though it'd
take ten pickles, so we make it hold ten small items.
- Coffee cartridge racks started with the sprite for 4 of them, so we
make it start with the sprite for 1 of them.
- Nugget fish in the bugget box :)
- We make a few of the visual storages with even amounts above 7 split
their storage up into two even rows, so their UI actually looks full
when full.
## Why It's Good For The Game
Less jank good 👍
It feels kinda awkward when you have a full box of stuff, visually full
of stuff, and the storage UI is for a significant portion empty- but you
can't put in more.
This makes it so the full storage UI actually matches the object looking
full.
It's funny if Fryish, the nugget fish, can be stored in a nugget box.
## Changelog
🆑
balance: Egg boxes' storage UI is now 6 slots wide, such that it
contains an even dozen slots when full.
balance: The storage UIs for heart-shaped chocolate boxes, pickle jars,
and rolling paper packs are now 4, 5, and 5 slots wide respectively,
such that they fill the whole storage UI when full.
balance: Fryish and its fried snack cousins can now be stored in nugget
boxes.
fix: Pickle jars can actually hold the ten pickles they spawn with.
fix: Fertile egg boxes, coffee condiment displays, and coffee cart racks
have the right amount of slots.
fix: Coffee cart racks spawn with the sprite for holding 1 cartridge
like they do, rather than looking like they're holding 4 cartridges.
/🆑
## About The Pull Request
split personality may not roll if the target is in a deathmatch area
bolt of possession deals 25 brain damage if the target is in a
deathmatch area (8 hits for brain death)
removed a camera from the meta brig map
Disciple of Pete has 9 tile range signalers instead (that nobody uses
anyway lmao because you cant use them for minibombs or the other
grenades)
## Why It's Good For The Game
fixes#91171fixes#90912fixes#89212
## Changelog
🆑
fix: removed a camera from the deathmatch meta brig map, disciple of
pete has low-range signalers, deathmatch bolt of possession deals brain
damage instead, split personality may not roll in deathmatch
/🆑
## About The Pull Request
I was trying to fix a hard delete and it became a whole thing
- Reworks `/obj/item/stack/proc/split_stack` to no longer also try to
put it in the user's hands, or take a user at all. The proc now purely
splits the stack and returns the new one
- Creates `/obj/item/stack/proc/split_n_take` which uses `split_stack`
and does the other behaviors like fingerprint adding and putting in the
user's hands
- Update usages of `split_stack` to either properly use it and remove
the code added to get around the put in hands behavior, or change them
to use `split_n_take` instead
- Fix a random bug in pipe bomb building I noticed while testing
## Why It's Good For The Game
Ultimately this fixes a hard delete with goldgrubs eating a piece of ore
while sitting on top of another piece of ore of the same type (the put
in hands behavior of split stack would cause the ore being consumed to
drop to the ground briefly, merge with the ore there, and then qdel
while still being moved to the goldgrub contents), but also added bonus
that it makes `split_stack` just split the stack and not some other
stuff too. Also a pipe bomb bug fix
## Changelog
🆑
fix: fixed being able to add seemingly infinite refined bluespace
crystals to pipe bombs
refactor: /obj/item/stack/split_stack no longer tries to move the stack
into the user's hands, use /obj/item/stack/split_n_take for that
/🆑
## About The Pull Request
`apply_wound` passes a ref to the thing that caused the wound, so that
the name can be stored and visible when an autopsy is conducted on the
wounded. The problem is projectiles are `/obj/projectile`, not
`/obj/item/projectile`, so the else condition (which is there so if it's
already being passed a string `wound_source` it will just use that)
happens and a ref to the projectile itself is stored in the
`wound_source` var, there's no handling for cleaning this up because
it's an unintended behavior.
## Why It's Good For The Game
Hard del fix
## Changelog
No player facing changes
## About The Pull Request
Revival of https://github.com/tgstation/tgstation/pull/86482, which is
even more doable now that we have rustg iconforge generation.
What this PR does:
- Sets up every single GAGS icon in the game to have their own preview
icon autogenerated during compile. This is configurable to not run
during live. The icons are created in `icons/map_icons/..`
- This also has the side effect of providing accurate GAGS icons for
things like the loadout menu. No more having to create your own
previews.

<details><summary>Mappers rejoice!</summary>


</details>
<details><summary>Uses iconforge so it does not take up much time during
init</summary>

</details>
---
### Copied from https://github.com/tgstation/tgstation/pull/86482 as
this still applies:
Note for Spriters:
After you've assigned the correct values to vars, you must run the game
through init on your local machine and commit the changes to the map
icon dmi files. Unit tests should catch all cases of forgetting to
assign the correct vars, or not running through init.
Note for Server Operators:
In order to not generate these icons on live I've added a new config
entry which should be disabled on live called GENERATE_ASSETS_IN_INIT in
the config.txt
## Why It's Good For The Game
No more error icons in SDMM and loadout.
## Changelog
🆑
refactor: preview icons for greyscale items are now automatically
generated, meaning you can see GAGS as they actually appear ingame while
mapping or viewing the loadout menu.
/🆑
---------
Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
## About The Pull Request
Given the existence of basic mobs with hand slots, it feels like
throwing and giving items shouldn't be something exclusive to carbon
mobs, so I've pulled things around to make this happen. The only basic
mobs with hands at time of writing are gorillas and dextrous
holoparasites, but the inability to throw things when you're a gorilla
just doesn't seem right to me.
Some more details about what I've done here:
- Made the dextrous component optionally enable throwing for the mob
it's added to.
- Moved offer/give item functionality to /mob/living (I can't see any
reason why only carbon mobs should have this option)
- Moved throwing and give item hotkeys from carbon to "human" (where all
the other /mob/living hotkeys go) and, as a result, removed carbon
hotkeys (nothing is left in them).
- Moved throwing code and item offering code to its own file because
living.dm is 3000+ lines long and should probably be broken up some day
(I'm not brave enough for that)
- Cleaned up an unused global signal that hasn't been used since dogs
got moved to basic mobs.
- Other miscellaneous cleanup where I noticed it.
- In terms of testing: Tested using gorillas (only checked the dextrous
holoparasite to confirm the button and hotkeys worked). Things that were
working:
- Can throw items if the mob is set up to allow it.
- Can give items as a gorilla to a human, as a human to a gorilla, and
as a human to a human.
- Can give a high five to a gorilla (and the gorilla can receive it).
Gorillas can't give a high five back, though (they don't have the
emote), this already ballooned in scope, someone else can make that
happen.
- There are an alarmingly high amount of niche
emote-into-item-into-giving behaviours I suspect half the playerbase or
more aren't even aware of (does anyone offer their hand to someone to
get them up off of the ground?) and I don't know if I broke any of them
with this, but the fact high fives work gives me some hope they're
probably still fine.
## Why It's Good For The Game
Lets gorillas and dextrous holoparasites throw things and give things,
but most importantly sets up more framework for any future dextrous
basic mobs to also be able to do this. There's no real reason to keep
this functionality confined to carbon mobs when dextrous basic mobs are
a thing.
## Changelog
🆑
add: Gorillas can now throw things and offer items to players.
refactor: Moved throwing and offering item code to be based on living
mobs, not just carbon mobs.
/🆑
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
## About The Pull Request
This is a PR I made a while ago for downstreams, and it has become my
favorite negative quirk to play with. It grants your character a
slightly more forgiving version of the narcolepsy trauma, as it has
lower odds of making you snooze plus a bonus list of reagents that will
suppress symptoms (`modafinil` and `synaptizine` for now), and cares
about if you are caffeinated, (have `trait_simulated`).
The rate at which you fall asleep/get drowsy is appropriate in my
opinion, though I could understand if players would want it to be more
common.

## Why It's Good For The Game
Really fun quirk to play with, adds more risk to your gameplay. Use your
over-the-counter stimulants to try and win from a stun baton.
## Changelog
🆑
add: Adds Narcolepsy as a -8 negative quirk!
refactor: Slightly adjusts the logic of the narcolepsy trauma
balance: The narcolepsy trauma its symptoms can now be softened by being
caffeinated, and modafinil or synaptizine suppress it entirely
/🆑
## About The Pull Request
Currently, due to the amount of stamina damage that entering a tile
deal, as well as the amount of stamina damage and the frequency of the
stamina damage inflicted by the swimming status effect, wading into deep
water may be tantamount to suicide without stimulants.
To avoid this problem, we've made some adjustments to how and when we
inflict our swimmer with stamina damage.
Firstly, we've reduced the values for stamina loss and oxygen loss by a
fairly decent margin.
Secondly, we only inflict stamina damage on wading into deep water 30%
of the time. When this happens, we award experience and give our swimmer
the exercised buff.
Thirdly, for a bit of realism, our combined weight class of equipped
items and combined equipped item slowdowns contribute to our stamina
penalty from wading through water. Smaller objects do not affect this,
but things like jumpsuits and backpacks do. Shorts do not contribute to
this weight specifically. You're definitely going to sink if you are
wearing the RD's MODsuit. (though the RD has the strength to move in
that thing anyway)
Fourthly, we increased the tick interval for the swimming status effect
from every second to every five seconds. This better represents long
term swimming exhaustion. However, we don't award athletics skill points
for this. You have to actually move to get skill improvements.
Breath loss from drowning also has been put behind a probability,
because losing breathes is actually pretty severe and we don't want this
increment infinitely quickly.
As an added bonus, we now include athletics boosters to swimming.
Finally, we fixed a runtime in the exercised status effect when assigned
to a mob without a mind.
## Why It's Good For The Game
One time I found an assistant that had drowned in the 1x3 deep water on
Metastation because he didn't know stepping into deep water was
basically asking to die a horrible death. Rather nasty.
Also that other swimming PR reminded me that this needs fixing. It is
hilariously lethal. I just want to go for a swim at the beach!
## Changelog
🆑
balance: Swimming is no longer so hyper lethal, and also benefits from
athletics boosters.
balance: By default, swimming through deep water does a somewhat low but
mounting quantity of stamina damage. Reduced by athletics skill and
athletics boosters.
balance: Your total carried equipment weight (and their slowdowns, if
any) contribute to your stamina loss while swimming. If you fell into
deep water, best start stripping items.
balance: Floating is slightly less lethal, especially if you are
starting to drown.
fix: Fixes a runtime caused by the exercised status effect.
/🆑
## About The Pull Request
This PR fixes and issue where /obj/food/grown items that were produced
as a trash product from other /obj/food/grown items did not inherit seed
characteristics.
This only(?) affected the bungo pit, as it is currently the only item of
this class(?).
## Why It's Good For The Game
Tot botanists are sad when they can't reexperience the hottest meta
strategy of 2022.
## Changelog
🆑
fix: fixed bungo pits not inheriting genes and stats from the fruit.
/🆑
## About The Pull Request
Melee attack chain now has a list passed along with it,
`attack_modifiers`, which you can stick force modifiers to change the
resulting attack
This is basically a soft implementation of damage packets until a more
definitive pr, but one that only applies to item attack chain, and not
unarmed attacks.
This change was done to facilitate a baton refactor - batons no longer
hack together their own attack chain, and are now integrated straight
into the real attack chain. This refactor itself was done because batons
don't send any attack signals, which has been annoying in the past (for
swing combat).
## Changelog
🆑 Melbert
refactor: Batons have been refactored again. Baton stuns now properly
count as an attack, when before it was a nothing. Report any oddities,
particularly in regards to harmbatonning vs normal batonning.
refactor: The method of adjusting item damage mid-attack has been
refactored - some affected items include the Nullblade and knives.
Report any strange happenings with damage numbers.
refactor: A few objects have been moved to the new interaction chain -
records consoles, mawed crucible, alien weeds and space vines, hedges,
restaurant portals, and some mobs - to name a few.
fix: Spears only deal bonus damage against secure lockers, not all
closet types (including crates)
/🆑
## About The Pull Request
I was about to start working on something, but then I've noticed
chromosomes-related code was looking quite old and had some magic
numbers in it, so I've decided to update it a little.
## Why It's Good For The Game
Better code.
## Changelog
N/A
---------
Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>