Commit Graph

5337 Commits

Author SHA1 Message Date
Bloop 655b66bdd0 Adds automatic GAGS icon generation for mapping and the loadout menu (#90940)
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.

![FOuGL6ofxC](https://github.com/user-attachments/assets/e5414971-7f13-4883-9f7f-a8a212b46fe8)

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

![StrongDMM_1oeMSoRHXT](https://github.com/user-attachments/assets/83dcfe4c-31be-4953-98f3-dff90268bbc4)

![StrongDMM_uyqu3CggPn](https://github.com/user-attachments/assets/7896f99e-2656-40e1-a9da-3a513882365a)

</details>

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

![dreamdaemon_u4Md3Dqwge](https://github.com/user-attachments/assets/17baaff8-5d5e-4a4d-ba8f-9dd548024155)

</details>

---

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

No more error icons in SDMM and loadout.

🆑
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>
2025-05-29 16:14:43 -04:00
Roxy 3d49b8913e Update stat panel override to work with new map features (#3908)
## About The Pull Request

Pull `code/controllers/subsystem/statpanel.dm` fresh from tg and reapply
our changes, this will let us use the webmap and feedbacklink options in
maps.txt

## Why It's Good For The Game

Cool button

## Proof Of Testing
<details>
<summary>Screenshots/Videos</summary>


![image](https://github.com/user-attachments/assets/14278e78-5d2f-4eb8-a1cd-2252eaae52fa)

</details>

## Changelog

No player facing changes
2025-05-26 23:37:26 -04:00
Nick 74e304553b Fix manifest sql again (#91185)
This one will work this time I swear
2025-05-22 21:19:06 -04:00
TiviPlus 78bc9dba91 Keyboard presses (and thus keybindings) will now report the turf the mouse was over when a player presses or releases a key (#90480)
## About The Pull Request

Semi WIP cus I need to probably make an issue report for lummox, but
apart from that ready for review

Uses the new mouse-pos so we can combine it with screen size and size to
estimate very accurately the mouse position in turf terms. In future
also will need to add a way to continously poll the users mouse pos but
this alone is very useful

## Why It's Good For The Game

This isnt used yet, but the benefits are pretty damn obvious (hitting E
and dashing towards where your mouse??? 1990s features?????)

## Changelog
🆑
refactor: Added the possibility for keybindings to report the turf they
clicked on.
/🆑

---------

Co-authored-by: TiviPlus <572233640+TiviPlus@users.noreply.com>
2025-05-22 21:17:28 -04:00
SmArtKar f740a1e9bb Corrects mining export names on icebox (#91145)
## About The Pull Request

Closes #90666, converts minetypes to defines, gives icebox a minetype
define which could also be used later to give mining suits some fur or
something.

## Changelog
🆑
fix: Icebox artifact exports no longer claim they're from a lava planet
/🆑
2025-05-22 21:15:57 -04:00
Holoo 7ea62255de Admin supply pod fixes (#90744)
## About The Pull Request
Closes https://github.com/tgstation/tgstation/issues/81140
Closes https://github.com/tgstation/tgstation/issues/72342

Fixes presets, custom explosions, partly fixes tooltips (they are
completely broken and some positions don't work at all if text is too
long)
Fixes always failing sound length check and fall sound timing
Adds small preview box for preset color button
Adds 5th variable to custom explosion size: flash range
Adds flash range to admin logs
 

![image](https://github.com/user-attachments/assets/e9068987-4f21-438d-9951-58230cbe0f88)
## Why It's Good For The Game
Less bugs (rip moths)
## Changelog
🆑

fix: fixed presets, custom explosion, fall sound in admin supply pod
admin: admin supply pod now can have flashy explosion, set it via custom
explosion button. Added flash range to admin logs

/🆑
2025-05-22 21:12:30 -04:00
SmArtKar 0f01987115 Refactors ITEM_SLOT_BACKPACK and ITEM_SLOT_BELTPACK out of inventory code (#90869)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

## About The Pull Request

So yesterday I've spotted that we had wrong SLOTS_AMT value set, and
went a bit down a rabbit hole and found how abhorrent our
ITEM_SLOT_BACKPACK and ITEM_SLOT_BELTPACK usage is. They're not real
inventory slots, but just "hints" at items being located in backpacks or
belts, or instructions to put an item into a belt/backpack. This PR
rewrites all usages of them as "hints", and adds an equip_to_storage
proc used to equip an item into a storage positioned in a certain slot,
so ``equip_to_slot_if_possible(item, ITEM_SLOT_BACKPACK)`` is now
``equip_to_storage(item, ITEM_SLOT_BACK)``

## Why It's Good For The Game

Its really stupid and we shouldn't have those as slot flags,
ITEM_SLOT_HANDS at least makes sense but those two are just absurd.
Should make equipping things into non-backpack storage a bit easier too,
in case we end up going through with the idea of suit/uniform pockets
being a major part of player inventory.

## Changelog

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑
refactor: Refactored how backpack and belt contents are handled in mob
inventory code, report any issues with lingering item effects or
inability to equip things into them!
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2025-05-15 16:14:06 -04:00
Nick ae794f83a3 Fixes manifest SQL logging (#91125)
I forgor a column assignment :\
2025-05-15 16:10:26 -04:00
Nick e7bb19b080 Adds logging of the station manifest to the DB (#90993)
This adds a `manifest` table to the database, basically a databasified
version of the `manifest.txt` log.

This is less of a game feature and more of an admin & Statbus tool. We
currently do not have a good way to see who played which character in a
given round. This aims to fix that.

~~Drafted because I'm not sure on some of the typecasting for the
`special` and `latejoin` columns, I would like someone to give that a
once-over.~~ We good.
2025-05-15 16:05:38 -04:00
RengaN02 c0b4cb3024 Crimes are now logging in db (#90948)
<!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
not be viewable. -->
<!-- You can view Contributing.MD for a detailed description of the pull
request process. -->

Crimes are now logged in db

Logging:

![image](https://github.com/user-attachments/assets/6eee470d-863a-4f68-9836-04a0a0079aa2)

<!-- Describe The Pull Request. Please be sure every change is
documented or this can delay review and even discourage maintainers from
merging your PR! -->

idk
we logging citations but not crimes, and i wanted to log the crimes too
<!-- Argue for the merits of your changes and how they benefit the game,
especially if they are controversial and/or far reaching. If you can't
actually explain WHY what you are doing will improve the game, then it
probably isn't good for the game in the first place. -->

<!-- If your PR modifies aspects of the game that can be concretely
observed by players or admins you should add a changelog. If your change
does NOT meet this description, remove this section. Be sure to properly
mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
and its effects on PRs in the tgstation guides for contributors. Please
note that maintainers freely reserve the right to remove and add tags
should they deem it appropriate. You can attempt to finagle the system
all you want, but it's best to shoot for clear communication right off
the bat. -->

🆑 Rengan
server: The crimes are now logging in the database.
/🆑

<!-- Both 🆑's are required for the changelog to work! You can put
your name to the right of the first 🆑 if you want to overwrite your
GitHub username as author ingame. -->
<!-- You can use multiple of the same prefix (they're only used for the
icon ingame) and delete the unneeded ones. Despite some of the tags,
changelogs should generally represent how a player might be affected by
the changes rather than a summary of the PR's contents. -->
2025-05-15 16:05:02 -04:00
Star Kings c6b98bec52 Adds a new Quirk: Unblinking (#3735)
## About The Pull Request

This adds a zero-cost neutral quirk that prevents the holder from
blinking at all without any mechanical downsides.

## Why It's Good For The Game

The tg upstream added automated blinking which just doesn't mesh well
with customization options. The Fluoride Stare quirk gave far too large
a mechanical downside for what could've otherwise been a flavor change.
EDIT: ~~This change now actually DOES replace the Fluoride Stare quirk,
per request of the maintainers.~~
EDIT 2: It doesn't replace Fluoride Stare, wanna experience the torture
of needing to use eye drops every 60 seconds? Have at thee, a separate
PR to remove this later down the line still isn't impossible though.
I'm tired boss.

## Proof Of Testing

Emissive eyes also work fine from our testing.

<details>
<summary>Screenshots/Videos</summary>


![image](https://github.com/user-attachments/assets/a0fe7ae4-f339-44a5-94e4-ccf90e9532fe)

![Screenshot 2025-05-07
042635](https://github.com/user-attachments/assets/41418554-d68b-4697-8f12-970afb8517f3)

</details>

## Changelog

🆑 AstrumLernaean
add: Added a new neutral quirk: Unblinking. Prevents blinking; now with
100% less 'going blind' involved.
/🆑

---------

Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>
2025-05-11 18:04:06 -04:00
Lucy 251d23530e Changes all uses of notify_ghosts to use the real names of mobs (#90919)
## About The Pull Request

Quite simple - this changes every direct mention of a mob in a
`notify_ghosts` message to use `[mob.real_name]` instead of just `[mob]`

## Why It's Good For The Game

makes things less confusing - ghosts can see easily their actual
identity anyways, so it's not like there's much of a reason _not_ to do
this.

## Changelog
🆑
qol: Ghost notifications will now use the real names of mobs when
something happens (i.e no more "Unknown has completed an ascension
ritual!")
/🆑
2025-05-08 19:20:12 -04:00
John Willard df10c57593 webmap is now in maps.txt instead of a config entry (#90821)
## About The Pull Request

Currently the button to open a map in webmap is tied to a config entry,
which would then take the name of the map being played and get the link
to that, however for cases like new/tested/admin uploaded maps where
there is no webmap available, this would still have a link to a url that
doesn't exist.
Instead, we'll make the webmap link be in ``maps.txt``, same as
feedbacklink.

## Why It's Good For The Game

Explained in the about section, this prevents webmaps appearing for maps
that aren't supposed to have a webmap link available.

## Changelog

Nothing player-facing, webmaps aren't currently used (afaik) currently
cause they're broken for tg codebases.
2025-05-08 19:19:46 -04:00
Ben10Omintrix 914a85d562 snails (#90505)
## About The Pull Request
adds snails to the game

![image](https://github.com/user-attachments/assets/f1745795-695f-443a-827e-1f1987d4fdb6)

these are harmless critters you can find in maints. they love eating all
variety of fruits, and are gravitated towards snail people, where
they'll dance around them.

you can also pick them up and put them on your head.

finally, you can also grab them and put them in hydrotrays (they will
swim around in it very slowly). they'll help ur plants grow as they act
as natural weed-repellants, as they'll eat weeds that grow in trays.

![image](https://github.com/user-attachments/assets/512f0974-d0d1-4f90-a540-c03d1c969328)


## Why It's Good For The Game
there's not that many mobs you can usually find in maints, currently
there's only mice and cockroaches, this helps expand the pools a bit.

## Changelog
🆑
add: adds snails to the game. (keep them away from salt!)
/🆑
2025-05-08 19:19:40 -04:00
SmArtKar d8788938be Cult Master title is now granted to the most experienced cult player, improvements and fixes (#90824)
## About The Pull Request

When the cult roundstart ruleset is picked, the most experienced cult
player is granted the cult Master title instead of it being determined
by voting. They can pass the role onto another willing cultist by using
an action once. Fixed cult masters not receiving their large speech
(instead not having any text spans whatsoever) and the Eldritch Pulse
spell being not usable whatsoever. Mark Target now displays an arrow
similar to heretic's living hearbeat to all cultists upon being cast.
This is a commission by Improvedname, but I do stand by the ideas
myself.

## Why It's Good For The Game

Cult Master, since its very inception, has been used for one thing and
one thing only - casting Final Reckoning on the summon rune by whoever
got to the area first and quickly used the vote that the cult reserved
for the finale. This results in other spells almost never being used, as
can be seen by the fact that one of them has been broken for the past 2
years. This change should make cult master more of a commander role akin
to how nuclear operative leader works, and make them a valuable target
for non-cultists to hunt down as they'll be present since roundstart.

## Changelog
🆑
add: Cult Master is now assigned to the player with most hours as a
cultist upon roundstart, instead of being votable.
add: Cult Masters can transfer their role once.
balance: Mark Target now gives all cultists a noticable directional
indicator, similar to heretics' living hearbeat
fix: Fixed cult master's broken speech spans
fix: Fixed Eldritch Pulse not working
/🆑
2025-05-08 19:05:23 -04:00
Roxy d9d0902b70 Merge branch 'master' into upstream-25-04b 2025-05-05 16:24:56 -04:00
LT3 c3d865b5bb Fix station time on stat panel (#3709)
## About The Pull Request

Fixes the station time on the stat panel, cleans up the code edit a bit.

## Why It's Good For The Game

It kills me inside to see the stat panel clock not match all the other
clocks in game.

## Proof Of Testing

<details>
<summary>Screenshots/Videos</summary>


![image](https://github.com/user-attachments/assets/74c5a611-f651-4ef8-98a7-e67416e35ccd)

</details>

## Changelog

🆑 LT3
fix: Stat panel now shows the correct station time
/🆑
2025-05-04 18:07:03 -04:00
Shadow-Quill 99f0b4c950 Fixes Part Dos 2025-04-29 21:06:24 -06:00
LemonInTheDark ed6405829e Updates individual telecomm machines to autolink/operate properly cross zs (#90747)
## About The Pull Request

I thought I fixed this a while back with changes to signals and such
(#76360), but I failed to handle machine to machine interaction and
autolinking properly which broke behavior. Mildly hard to test but it...
should? work better now. I don't think I've missed something but it is
possible.

[Unfucks telecomms_list, mild code quality
stuff](https://github.com/tgstation/tgstation/pull/90747/commits/cc8316d523b31a15d665a15def63e18318320e8f)

[cc8316d](https://github.com/tgstation/tgstation/pull/90747/commits/cc8316d523b31a15d665a15def63e18318320e8f)

GLOB.telecomms_list proported to hold just /telecomms machines but it
WASN'T, we stuffed message computers in there too to make references a
bit easier to clean.

This fixes that, handling them instead with a one to many pattern. I've
also renamed a few things (most prominently GLOB.telecomms_list ->
GLOB.telecomm_machines), and unindented an if check that was essentially
dead code. Also killed a really messy define and replaced it with a
proc.

## Why It's Good For The Game

Mapper asked for it, really should have done this years ago but we
didn't have a usecase for it.

## Changelog
🆑
fix: Tcomms machines will interoperate across z levels in the same
"stack" as expected now
/🆑
2025-04-29 18:33:34 -06:00
Ghom f2ba845ea0 Fishing lures box peeve (#90741)
## About The Pull Request
This fixes a small excerpt from #90678: 
>"[...] double-examining it to see what extra items it can hold
(normally all lures) only reports the Artificial Minnow as fitting."

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

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

## Changelog

🆑
fix: Examining a fishing lures box twice no longer says it can hold just
artificial minnows.
/🆑
2025-04-29 18:33:34 -06:00
John Willard ea28a87ca8 Adds map feedback thread support (AI stat panel buff) (#90506)
This PR started with the idea of adding support for map feedback
threads, which I added to the roundend report, escape menu, and stat
panel. To do this though I had to make pretty annoying changes to the
stat panel and had to touch every single time something to the stat
panel was added, so since we now have a way to have links in the stat
panel I thought of taking full advantage of it and add some QOL.

AIs can now track their borgs by clicking their status on the stat panel

https://github.com/user-attachments/assets/1789dc46-5d12-48e9-bb8d-d3278aa19639

With Melbert's comment, I added another stat panel entry that directs
you to the Webmap page, which currently seems to be a little messed up
(https://github.com/AffectedArc07/SS13WebMap/issues/41 &
https://github.com/AffectedArc07/SS13WebMap/issues/42) but if they get
fixed this would be a swag asf feature

Feedback threads was a suggestion from a player and is fully in control
of admins as an optional thing, and while we still have stat panel I
think it's nice to be able to take advantage of its features.

🆑
admin: Admins can now link a URL for maps, used to give feedback on said
maps. Accessible through the roundend report, escape menu, and stat
panel.
qol: AIs can track their borgs by clicking on them in the stat panel.
qol: You can now directly go to the webmap of maps from the stat panel
(assuming it's set in config).
/🆑
2025-04-29 18:21:47 -06:00
MrMelbert 8eeca96108 Adds Common Second Language quirk, tweaks to partial understanding (#90614)
## About The Pull Request

- Tweaks partial understanding. 

Paragraphs are now split into sentences first creating more natural
breaks between sentences.

- Adds "Common Second Language" quirk

This quirk changes your default understanding of common (up to) 90%
(your choice), meaning you drop the occasional word.


![image](https://github.com/user-attachments/assets/63e9d67b-7db2-4d23-9d0f-bae175962db4)


![image](https://github.com/user-attachments/assets/840ef391-5126-4ba7-9298-804686bcd6df)

Additionally, when your sanity drops below a threshold, you become
forced to speak your native language, albeit with a partial
understanding applied for everyone else.

Incompatible with similar language quirks + can't be taken by humans
(yet?)

## Why It's Good For The Game

Just a fun way to play around with the new "partial understanding"
system.

## Changelog

🆑 Melbert
add: "Common Second Language" quirk
qol: Language translations chunk sentences together better, making
partial understanding a bit easier to parse.
/🆑
2025-04-29 18:20:43 -06:00
John Willard d9c58ac82e Configurable events (removes mult config) (#90659)
As said in https://forums.tgstation13.org/viewtopic.php?t=38517 - Admins
don't want to touch the event multiplier configs because,
``for example changing the mult to 1.5 would make heart attack only roll
on 60+ pop``

and ends with;
``it would be better to make a pull request to the codebase and alter
the min_player var on the events that are issues``

So why not let ALL events be editable by admins?
This PR makes every single event possible to be edited, though the json
only comes with the non-wizard non-holiday ones (though they are totally
addable if admins want to put it in, I just didnt think we should make
it obvious it's possible so they DONT)

The config is off by default (no effect regardless since I have it the
same as code-side).

The multiplier config is rendered irrelevant by instead being able to
tweak the individual events to your liking, especially when one touch of
that causes certain events to be rendered never runnable.
This is (sorta) an admin request, and it also makes event rarities and
such an admin issue, therefore not our problem anymore (mostly), wahoo.

Get FUCKED, Grid Check!

![image](https://github.com/user-attachments/assets/ff4314b5-4404-4f8e-905d-2d4824f8aa71)

🆑
config: Removed event time/weight multipliers, now all events vars are
editable in config.
/🆑

---------

Co-authored-by: CRITAWAKETS <sebastienracicot@hotmail.com>
2025-04-29 18:20:43 -06:00
John Willard 8a5a490aea player hud stays post roundstart, has more info (#90632)
## About The Pull Request

Once the round starts, the TV's text shows the current map, how much
time it is in-game, how many players are connected, and what the
overflow job is (if the station trait is on). video as demonstration but
the overflow text has changed to "[job] overflow" instead of "Overflow
job: [job]"


https://github.com/user-attachments/assets/fe74b28b-06de-4827-9c4d-ca2e51f1e0b9

Closes https://github.com/tgstation/tgstation/issues/90651

## Why It's Good For The Game

Gives useful info on the TV instead of having it just magically
disappear (which currently doesn't work cause I forgot to deactivate it
on initialize for latejoiners) which will become more useful if the stat
panel is removed. Also makes overflow job more obvious, the TV is just a
good place to put info useful for new players though round time
personally was just put there to make the TV feel more full.

Wanted to put this in the original PR but wanted to try to match parity
to the stat panel in case this wasn't wanted.

## Changelog

🆑
qol: The TV on the title screen has round info once the round has
started or ended.
fix: The TV now fits on non-widescreen screens.
/🆑
2025-04-29 18:19:24 -06:00
Cirrial d6e7854fee Fix: EMERGENCY_SHUTTLE_AUTOCALL_THRESHOLD now actually calls the shuttle (#90647)
## About The Pull Request

There's a function to call the shuttle when a proportion of the crew
die. This functionality is probably not turned on on actual tgstation
servers but it is a configurable option for people hosting their own
forks and whatnot to use.

However, while this works, it doesn't actually call the shuttle, as it
seems to require the time remaining for the shuttle to arrive to be
greater than 4 minutes, which, as the shuttle hasn't been called, the
time remaining is 1 second (the fallback value for when it's not in
transit). So it never calls.

(The fix I have here was suggested to me by someone else in the Discord
coding channel so I can't take full credit for it.)

## Why It's Good For The Game

It's good for the automatic shuttle call to call the shuttle

## Changelog
🆑 Kapu1178, Cirrial
fix: The server-configurable shuttle call when enough of the station
dies will now actually call the shuttle.
/🆑
2025-04-29 18:04:56 -06:00
LT3 af1abcd81d Preference menu buttons are disabled until subsystem initializes (#90685) 2025-04-29 18:04:29 -06:00
SmArtKar e14634872e Fixes weather getting stuck and not affecting mobs (#90691)
## About The Pull Request

Weather subsystem code mixed up defines and indexes resulting in broken
behavior when you only had mobs and thunder defined in a subsystem.
Solved this by converting currentpart from define to active task index

Closes #90677

## Changelog
🆑
fix: Ash storms do damage again
/🆑
2025-04-29 18:03:35 -06:00
SmArtKar 60b1319cac [MDB Ignore] Updates visuals for the loadout menu (#90399)
Improves how the loadout menu looks by switching it to the new
ImageButton component, converting recolorable/reskinnable to use icons
with tooltips, and allowing items within a category to be grouped up
together (only used by pocket items as of now)

<details>

<summary>How it looks:</summary>

![image](https://github.com/user-attachments/assets/3ed434cc-5caf-4cd5-b289-76f1946282cd)

![image](https://github.com/user-attachments/assets/bb33e6a4-75c4-4eb5-8e83-2ed9f6853e64)

</details>

Monocles have been made prescription, and prescription, contains pens,
hair color, and other misc tags have been removed.

<details>

<summary>Additionally, plushies now have better baked-in sprites for
loadouts, with randomized lizard plushie receiving a coat of rainbow
paint in place of the removed tooltip.</summary>

![image](https://github.com/user-attachments/assets/ea3124ae-53aa-4eb5-bb27-bde6140b4222)

</details>

Blue button make it hard to figure out details on certain items, and
tiny grey text is borderline unreadable. Also our pocket items category
is horribly bloated.

🆑
qol: Redesigned the loadout UI
balance: Monocles now work as prescription glasses
image: Loadout plushies no longer use mapper previews for their images
/🆑
2025-04-29 18:03:21 -06:00
Iajret 4e6abfe0d4 adds auto-updating for status display image on alert level change (#90602) 2025-04-29 17:53:59 -06:00
Timberpoes 88cc2dffc6 Job assignment code at round start now properly respects any overflow caps set in the config files. (#90612) 2025-04-29 17:53:59 -06:00
Nick 5ee12a8d33 Adds the ability to link forum accounts (#90441) 2025-04-29 17:52:31 -06:00
Bloop 29e2f867b8 Adds some trailing commas to lists (#90501)
## About The Pull Request

I heard you liked commas.

## Why It's Good For The Game

Trailing commas make everyone happy!

## Changelog

Nothing anyone will notice besides downstreams adding to these lists
2025-04-29 17:52:31 -06:00
MrMelbert 8a44bf25fc Reworks language translations. Add partial language understanding. Bilingual update. (#90252)
Fixes #89445 (well, technically. It fixes the bug associated but these
`say`s should really be emotes.)

Three things:

1. Reworks how language translation works.

Rather than scrambling a sentence into a language entirely, sentences
are now scrambled on a per-word basis.

Additionally, the 1000 most common words of a language are *never*
re-scrambled across the duration of a round. Once it's set it's set in
stone.

Example: (Sample / Old / New)

![image](https://github.com/user-attachments/assets/69be41fa-bc40-45f0-bd80-e24e799c9f38)

This allows for a number of things:

- More consistent translations, making it (more) viable to actually
"teach" someone words for something
- Maintaining emphasis such as caps (but not `||`, `++`, or `__` - at
least not yet)
- The following:

2. Adds partial language understanding

Some languages can understand portions of other languages.

![image](https://github.com/user-attachments/assets/b6eee2c7-f564-437b-8c7a-bd1d88a9b680)

This pr adds the following:
- Those who understand Beachtongue can understand 50% of Common and 33%
of Uncommon words.
- Those who understand Common can understand 33% of Beachtongue and 20%
of Uncommon words.
- Those who understand Uncommon can understand 20% of Common and 20% of
Beachtongue words.

3. Bilingual quirk has been expanded to accomodate these changes.

There are now two more preferences:
- Language Speakable
- You can toggle this, so you only understand the language, rather than
understand AND speak.
- Language Skill
- If you choose to be unable to speak the language, you can set how much
of the language you can understand, down to 10%.

Playing around languages is fun, but due to the way our translation
works, ALL context is immediately lost for what the other person may be
saying.

If the other person is shouting in all caps? Output language is normal
chatting. This is lame!

Even if someone is unable to understand you, there's a LOT you can
convey just by how you speak, and getting that across in game is quite
difficult when all translations get mauled so badly.

So this changes that.

- Emphasis like caps lock is maintained, so you see someone shouting in
caps in a foreign language you can probably intuit something is wrong
(but not what is wrong!)
- Some languages can gleam bits of other languages, so you MIGHT be able
to pick out context if you pay close attention
- "Brother" languages will now feel more like "brothers" and not
completely divergent
- You can even "teach" someone words in your language - at least the
most common words! (Until next round)

🆑 Melbert
add: Languages can now have partial understanding of other languages.
More common English words are more likely to be mutually understood.
add: Those who understand Beachtongue can understand 50% of Common and
33% of Uncommon words.
add: Those who understand Common can understand 33% of Beachtongue and
20% of Uncommon words.
add: Those who understand Uncommon can understand 20% of Common and 20%
of Beachtongue words.
add: Bilingual quirk: You can now choose between being able to speak or
not speak the language
add: Bilingual quirk: You can now choose to have partial understanding
of your language, rather than full.
qol: If you speak in ALL CAPS in a foreign language, the translated
words will also be ALL CAPS.
qol: Many more forms of punctuation are now conveyed across
translations.
qol: The 1000 most common English words will now never be scrambled when
translating into other languages for the duration of the round. This
means you can actually "learn" some words if you are especially
attentive! (Until the next round at least)
refactor: Refactored language translations. Report if you see any super
odd looking translations.
fix: Force-says forcing you to speak common (such as cult invocations)
will now correctly force you to speak common (even if you don't know
common)
/🆑
2025-04-29 17:52:31 -06:00
Joshua Kidder f30800d4dc Subsystems meant to represent/handle in-game networks moved under their own subfolder ( no code changes ) (#90561)
## About The Pull Request

While working on another PR, I noticed that there wasn't any real
distinction between subsystems that function as a network for various
logical components/systems in the code, and subsystems that are meant to
represent what is actually an in-game network. As such, I moved what
seemed to be clear representations of the functions of in-game networks
under their own subfolder.

This should have no effects otherwise.
## Why It's Good For The Game

Per an .md I added in the folder, it helps to clearly demarcate what are
backend programmatic networked systems, and what are meant to actually
be a network in the game itself; the radio jammer disrupts your suit
sensors and headset, not your signal relationships with DCS, and I
believe having that distinction be clear at a glance of the file
structure is valuable.
## Changelog
🆑 Bisar
code: Subsystems that are meant to represent a network in-game have been
moved into their own category inside the codebase.
/🆑
2025-04-29 17:52:15 -06:00
John Willard 3c7573f714 Lobby info is now part of the hud instead of stat panel (#90572)
Removes ``/mob/dead/get_status_tab_items()``, replaces it with a lobby
hud icon showing the same information

TV sprite made by Kryson, scanline and static taken from ``effects.dmi``
which I then blew up to fit the size.

https://github.com/user-attachments/assets/99733ae6-c596-42b1-bcae-d1a8d8f094c3

I want to try to remove as much reliance from the stat panel as possible
so we can hopefully remove it, as it takes up 1/3 of the screen for
nothing.

🆑 Kryson, JohnFulpWillard
qol: Lobby info is now on the title screen rather than being hidden in
the stat panel.
/🆑
2025-04-29 17:52:15 -06:00
Bloop 13bf88b2ce Fixes persistent paintings load order (#90515)
## About The Pull Request

Persistent paintings should be loaded after persistence itself

## Why It's Good For The Game

Bugfix confirmed to be working (test merging this fix live currently).

## Changelog

🆑
fix: fixes persistent paintings not loading
/🆑
2025-04-29 17:49:24 -06:00
John Willard 0ed79656bf Adds a sports betting/polling app (#90421)
Adds a new PDA app that allows you to create polls that people can bet
on with credits, the owner can then lock the bets, decide what the
answer is (up to the player for whatever poll they made), and send it
off, giving the money the losers bet into the accounts of the winners.

It's a small PDA app that currently doesn't make any announcements or
come preinstalled in anything, but that's subject to change. PDA screen
sprite is codersprited.

Video demonstration

https://github.com/user-attachments/assets/449e1f0b-7fd3-4948-bff8-2793af831360

Not shown (as I added later), it now uses newscasters as well.

![image](https://github.com/user-attachments/assets/d3defa60-03cc-4557-98b7-b4088b158b3d)

https://forums.tgstation13.org/viewtopic.php?t=38278

Allows people to host polls for station events, allowing for the SS13
version of sports betting.

🆑
add: Adds a new sports betting app on your PDA, you can now host and
vote on polls using in-game credits.
/🆑

---------

Co-authored-by: san7890 <the@san7890.com>
2025-04-29 17:49:24 -06:00
Lucy 13d93f2b17 Fixes to_chat never actually queuing (#90461) 2025-04-29 17:45:28 -06:00
SmArtKar 81509f2e73 Fixes runtimes caused by energy bolas (#90469)
## About The Pull Request

Certain throw impact callbacks, like those on energy bolas, could cause
the object to get deleted, which would make throwing datums runtime
because they didn't account for it.

## Changelog
🆑
fix: Fixed runtimes caused by energy bolas
/🆑
2025-04-29 17:45:01 -06:00
Tim 1f855eb9ff Weather DLC - Make it Rain Anything! (#89550)
Introducing more weather types! And yes, you can now have rain be
reagent based!

<details>
<summary>Regular Rain</summary>

![dreamseeker_9S1WzdBW8Z](https://github.com/user-attachments/assets/83aaa1fe-9105-4e15-8455-0337c5c592ef)

</details>

<details>
<summary>Blood Rain</summary>

![dreamseeker_SZufAoXDFt](https://github.com/user-attachments/assets/209404dc-34dd-4381-9bab-9b84eaec2658)

</details>

<details>
<summary>Acid Rain</summary>

![dreamseeker_ngiOqdB5n2](https://github.com/user-attachments/assets/0ab953c6-a215-444a-bdbd-addfc2b1ddbb)

</details>

You can even make it rain ants, plasma, or drugs. All of their effects
get applied to turfs, objects, and mobs depending on the weather options
you select.

Did I mention... there is thunder?

<details>
<summary>Thunder Strikes</summary>

![Untitled video - Made with
Clipchamp](https://github.com/user-attachments/assets/7c5c5930-6e0a-4706-a41b-3cbcc277bfd5)

</details>

<details>
<summary>Sand Storms</summary>

![dreamseeker_ZEFUS73dSA](https://github.com/user-attachments/assets/4a754f2d-c4e5-4b2f-9add-4742628cfa74)

</details>

Despite all this new stuff, none of it has been directly added to the
game but the code can be used in the future for:
- Wizard event - Similar to lava on floor, but this time make the
reagent random or picked from a list and give wizard immunity
- Chaplain ability - Maybe make this a benefit or ability once enough
favor has been obtained
- Admin events - I have added a BUNCH of admin tooling to run customized
weather events that let you control a lot of options
- New station maps/biomes for downstreams (Jungle Station, etc.)
- Change Ion storms to use the new weather system that triggers
EMP/thunder effects across the station
- IceBox could get plasma rain
- Lavaland could get thunder effects applied to ash storms

Relevant PRs that removed/added some of the weather stuff I used:
- #60303
- #25222

---

- Rain sprites were added via [novaepee](https://github.com/novaepee) in
https://github.com/tgstation/TerraGov-Marine-Corps/pull/9675
- Sand sprites were added via [TiviPlus](https://github.com/TiviPlus)
(who commissioned them from bimmer) in
https://github.com/tgstation/TerraGov-Marine-Corps/pull/4645
- Rain sounds [already existed on
tg](https://github.com/tgstation/tgstation/pull/25222#discussion_r106794579)
and were provided by provided by Cuboos, using Royalty Free sounds,
presumed under default tg sound license - Creative Commons 3.0 BY-SA
- Siren sound is from siren.wav by IFartInUrGeneralDirection --
[Freesound](https://freesound.org/s/46092/) -- License: Attribution 4.0

The original `siren.ogg` sound used on a lot of SS13 servers doesn't
seem to have any attribution that I could locate. The sound was added
about 15 years ago. So I just looked for a somewhat similar sounding
siren noise on Freesound.

More weather customization!

🆑
add: Added new weather types for rain and sandstorms. Rain now uses a
reagent that gets exposed to the turfs, mobs, and objects. There is also
a thunder strike setting you can apply to any weather.
add: Hydro trays and soil will now add reagents to their trays when
exposed to a chemical reaction. (weather, shower, chem spills, foam
grenades, etc.)
add: Weather temperature now affects weather reagents and mobs body
temperature.
bal: Snowstorm temperature calculations were tweaked to allow universal
weather temperature effects.
sound: Added weather sounds from TGMC for rain and sirens (attributed to
Cuboos and IFartInUrGeneralDirection )
image: Added weather images from TGMC for rain and sand storms
(attributed to Novaepee and Bimmer)
refactor: Refactored a lot of the weather code to be more robust
admin: Admins can now control more weather related options when running
weather events. The weather admin verbs have been moved to their own
"Weather" category under the Admin tab.
/🆑

---------

Co-authored-by: LemonInTheDark <58055496+LemonInTheDark@users.noreply.github.com>
Co-authored-by: Ghom <42542238+Ghommie@users.noreply.github.com>
2025-04-29 17:44:46 -06:00
Cruix 075d966320 Added additional layers to hairstyles (#90275)
## About The Pull Request

Added two new "layers" to hairstyles. The first draws on the normal hair
layer but resists being affected by hair masks unless a piece of
clothing really insists that it must mask it. The second draws on top of
the headwear layer and will ignore all hair masking, but will disappear
entirely if a piece of clothing covers the part of the head that
hairpiece originates from.

Each of these "Layers" (called "hair appendages" in the code) is
associated with a part of the head that it comes off of (left side,
rear, right side, etc.), which pieces of clothing can cover to prevent
those parts from being shown. For example, a Beret will allow a ponytail
to sprout off the back of a person's head and ignore the normal hair
mask, but a winter coat hood covers every part of the head except the
front, so it will hide the ponytail completely.

## Costs

Hairstyles that use this system require some extra icon blending, but
each hairstyle will cache the result of each blend whenever a new hair
mask is applied, so the extra cost only happens once. The cache will
also be used on hairstyles that don't utilize the additional layers, so
we should end up with less total icon blending over the course of a
round than we currently have.

Adds a new sprite layer, OUTER_HAIR_LAYER, to humans.

Changes hair masks from strings specifying an icon state to datums with
an icon state and a bitfield storing which parts of the head the
headware that uses them cover. The singletons for these datums are
stored in the SSaccessories subsystem.

Any hairstyle that uses this system will need 1-2 more icon states in
the human_face.dmi file. I currently have 32 hairstyles marked that
could reasonably use this system, about half of which use both
additional icon states.

## Images

Old system:

![before1](https://github.com/user-attachments/assets/c8e5827b-751f-4809-b7a4-d30a3b2aaa70)

New system:

![after1](https://github.com/user-attachments/assets/b25ca6e3-f5cd-4385-822e-29604a7d39ba)

![after2](https://github.com/user-attachments/assets/0b0c8007-42d5-42bd-a9b4-6bf7a7e1264e)

The new system is currently only implemented on the "Ponytail (High)"
hairstyle for demonstration and testing. I have a branch with the same
update for most similar hairstyles I can push if this is merged.

## Why It's Good For The Game

Hair masks are okay but they look really bad with some hairstyles. This
allows people who really care about their character's look to make their
hairstyles work with their favorite hats.

Potential for fixing #88886

## Changelog

🆑
add: Added a system to create hairstyles with multiple layers to allow
better interaction with hats and helmets
image: Added additional sprite layers to the Ponytail (High) hairstyle
/🆑

---------

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
2025-04-29 17:41:06 -06:00
Jeremiah 7b25ffc6c1 516 only tgui (#90397)
## About The Pull Request
oooooh boy, have I been waiting on this PR. It was one of the first
things I tried when I got into 516 alpha. With this, we shuffle off all
the polyfills that makes TGUI build like it's still on IE.

TGUI should look and function exactly the same.

1. updated webpack build targets
2. removed polyfills
3. removed trident references
4. removed trident-only storage
5. updated documentation
6. bumped yarn (sorry, this makes the file diff huge but it seems to be
required)
7. fixed some prettier warnings
## Why It's Good For The Game
TGUI builds without restraint. Smaller bundle size, smaller overhead
## Changelog

🆑
add: TGUI is now v6! No more internet explorer. All gloves are off, it's
running edge under the hood now. Report any issues to the github,
please. Yes, I look!
/🆑
2025-04-29 17:15:52 -06:00
Jeremiah b641276a8f Minifies tgui helpers (#90340)
## About The Pull Request
Instead of just writing out the helper functions and styles directly
inside tgui.html, this minifies them and injects them into the document
on tgui init. The result should be a smaller bundle and more manageable
code, with clear separation of page, style, and javascript
## Why It's Good For The Game
Minification is generally a small perf gain but I want to be clear that
I'm doing this 100% for organization & separation of concerns
## Changelog
N/A
2025-04-29 17:15:01 -06:00
FlufflesTheDog 15ed8137da System for restricting quirks based on species, no more blood deficiency on bloodless species (#90326)
Quirks can now define if they're "species appropriate," where the base
proc's behavior is simply "does this species already have the quirk's
main trait"
I am unsure if that on its own imposes any new restrictions, currently.

Additionally, blood deficiency cannot be picked on any species without
blood or that doesn't breathe.
I'm sure there's more that might make sense, I'm open to suggestions

Alternative to #90238
Currently, reduces the possibility of taking something like blood
deficiency on a race which suffers no downside from it in order to get
free positive quirks.
Future-ly, potentially allows quirks exclusive to only a select few
species as offered by #90238
🆑
fix: Species without blood can no longer be blood deficient
/🆑
2025-04-29 17:15:01 -06:00
Watermelon914 79b00baad2 Refactors subsystems to use dependency-ordering to determine init order. Subsystems can now declare their own dependencies. (#90268)
## About The Pull Request
As the title says.
`init_order` is no more, subsystems ordering now depends on their
declared dependencies.
Subsystems can now declare which other subsystems need to init before
them using a list and the subsystem's typepath
I.e.
```dm
dependencies = list(
    /datum/controller/subsystem/atoms,
    /datum/controller/subsystem/mapping
)
```
The reverse can also be done, if a subsystem must initialize after your
own:
```dm
dependents = list(
    /datum/controller/subsystem/atoms
)
```
Cyclical dependencies are not allowed and will throw an error on
initialization if one is found.
There's also a debug tool to visualize the dependency graph, although
it's a bit basic:

![image](https://github.com/user-attachments/assets/80c854d9-c2a5-4f2f-92db-a031e9a8e257)

Subsystem load ordering can still be controlled using `init_stage`, some
subsystems use this in cases where they must initialize first or last
regardless of dependencies. An error will be thrown if a subsystem has
an `init_stage` before one of their dependencies.

## Why It's Good For The Game
Makes dealing with subsystem dependencies easier, and reduces the chance
of making a dependency error when needing to shift around subsystem
inits.

## Changelog
🆑
refactor: Refactored subsystem initialization
/🆑
2025-04-29 17:11:39 -06:00
Lucy 0a0d59a33c Refactor debugger and byond-tracy init (#90288)
## About The Pull Request

This refactors code related to debugger and byond-tracy
`/datum/debugger` and `/datum/tracy` - which live in the `GLOBAL_REAL`
vars `Debugger` and `Tracy` respectively.

This allows code related to those two to be grouped together in their
own files, rather than mashed into `world.dm` with a bunch of other shit
- while it still initializes during the same stages of init.

In addition, this also ports
https://github.com/BeeStation/BeeStation-Hornet/pull/8947, which prints
runtime errors to chat when the debugger is enabled.

<details>
<summary><h3>Proof of Testing</h3></summary>

![2025-03-27 (1743094986) ~
Code](https://github.com/user-attachments/assets/2678542f-8338-4ca8-9435-e0376da9e80a)
![2025-03-27 (1743095425) ~
Code](https://github.com/user-attachments/assets/35a1c454-c176-4fb9-987b-82eb92f0fd31)
![2025-03-27 (1743095936) ~
dreamseeker](https://github.com/user-attachments/assets/49f607dc-c684-4fd9-8271-a287f2341c52)
![2025-03-27 (1743096001) ~
Code](https://github.com/user-attachments/assets/8cca692c-6253-48e8-9994-beff39211078)
![2025-03-27 (1743096351) ~
dreamseeker](https://github.com/user-attachments/assets/43a993dd-3884-4709-94fc-d072ff97a337)

</details>

## Why It's Good For The Game

Reduces some `GLOB` pollution, and groups a bunch of related code into
dedicated files and datums.
It's simply cleaner.

Printing runtime errors to chat is also very useful, as it allows you to
see when shit is fuck, if you don't want a breakpoint pause for each
error.

## Changelog
🆑
refactor: Refactored some code related to initialization.
code: Runtime errors will now print to the chat while debugging.
/🆑
2025-04-29 17:09:03 -06:00
TiviPlus f1f611e500 Force UTC±0 for time2text logging and IC times (#90347)
## About The Pull Request
This won't actually do anything on live, since those are all set to
UTC±0 currently

Pins logging and IC uses of time2text to UTC±0 instead of using the
system timezone (byond default)
Timezones not being set to utc0 caused issues before (and is again)

All timezones are now passed explicitly to make it more likely it's
cargo culted properly at least

Deletes worldtime2text cus it was gameTimestamp default args

## Why It's Good For The Game
Server timezone changes probably shouldn't affect logging, round times,
file hashes, IC time, when you caught fish, etc

## Changelog
🆑
refactor: Logging and IC timestamps will now always use UTC±0 and not be
affected by server system timezone changes
fix: Station and round times will not longer be incorrect if the system
timezone is not UTC±0
/🆑

---------

Co-authored-by: TiviPlus <572233640+TiviPlus@users.noreply.com>
2025-04-29 17:08:34 -06:00
nevimer 12d995aeea Squashed commit of the following:
commit cb550ab79badae3ffd493dcee24d96f7ad146ed6
Merge: 732416f01d8 2fac5d45a6
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Mon Apr 14 14:40:04 2025 -0400

    Merge branch 'master' into upstream-25-04a

commit 2fac5d45a6
Author: Arturlang <24881678+Arturlang@users.noreply.github.com>
Date:   Mon Apr 14 01:11:47 2025 +0100

    bring back heretic mute ghoul maxhp to 135 HP (#3464)

    ## About The Pull Request
    bring back heretic mute ghoul maxhp to 135 HP, these are the changes
    made in
    https://github.com/Bubberstation/Bubberstation/pull/2972
    ## Why It's Good For The Game
    otherwise flesh heretic is really sad
    ## Proof Of Testing
    numbers change, no need
    ## Changelog
    no cl

    ---------

    Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>

commit e9c4522c27
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 14 01:59:19 2025 +0200

    Automatic changelog for PR #3453 [ci skip]

commit 2d595eba4f
Author: shellspeed1 <46614774+shellspeed1@users.noreply.github.com>
Date:   Sun Apr 13 16:58:54 2025 -0700

    Fixes bitrunning sim having cybersun comms and also makes sure persistence borgs have correct key (#3453)

    ## About The Pull Request

    What it says on the tin
    ## Why It's Good For The Game

    Its best to not let bitrunners ghost spawns talk on comms
    ## Proof Of Testing

    I just did my last cpa today, I'll test this later. Besides its 3 lines
    with just an item swaped.
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    fix: Bitrunning sims no longer have comms access
    fix: Borgs given the persistence access upgrade no longer default to
    interdyne and get cybersun comms instead
    /🆑

    Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>

commit 394e8d64d4
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 23:24:50 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 49141446bf
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 14 00:18:15 2025 +0200

    Automatic changelog for PR #3497 [ci skip]

commit 0332c060a8
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sun Apr 13 18:17:52 2025 -0400

    Xenoarch Machine QOL (#3497)

    <!-- Write **BELOW** The Headers and **ABOVE** The comments else it may
    not be viewable. -->
    <!-- You can view Contributing.MD for a detailed description of the pull
    request process. -->

    ## About The Pull Request

    A little treat for xenoarch
    - The xenoarch bag can now hold broken items and useless relics in
    addition to strange rocks
    - You can use the bag on both the researcher and the recoverer to dump
    the contents in
    - The digger and the researcher make a sound now

    ## Why It's Good For The Game

    A bag that holds only one type of item is annoying, you get a lot of the
    other two items too

    ## Proof Of Testing

    <!-- Compile and run your code locally. Make sure it works. This is the
    place to show off your changes! We are not responsible for testing your
    features. -->
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/e314f9e2-efd3-4e4a-a7ea-412c674f88bf)

    </details>

    ## Changelog

    <!-- If your PR modifies aspects of the game that can be concretely
    observed by players or admins you should add a changelog. If your change
    does NOT meet this description, remove this section. Be sure to properly
    mark your PRs to prevent unnecessary GBP loss. You can read up on GBP
    and its effects on PRs in the tgstation guides for contributors. Please
    note that maintainers freely reserve the right to remove and add tags
    should they deem it appropriate. You can attempt to finagle the system
    all you want, but it's best to shoot for clear communication right off
    the bat. -->

    🆑
    qol: the xenoarch bag can now hold broken items and useless relics
    qol: you can use the bag on the researcher and the recoverer to dump
    items in
    sound: the digger and researcher now make a sound when they complete a
    cycle
    /🆑

    <!-- Both 🆑's are required for the changelog to work! You can put
    your name to the right of the first 🆑 if you want to overwrite your
    GitHub username as author ingame. -->
    <!-- You can use multiple of the same prefix (they're only used for the
    icon ingame) and delete the unneeded ones. Despite some of the tags,
    changelogs should generally represent how a player might be affected by
    the changes rather than a summary of the PR's contents. -->

    <!-- By opening a pull request. You have read and understood the
    repository rules located on the main README.md on this project. -->

commit 2b8c074406
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 19:47:30 2025 +0200

    Automatic changelog for PR #3498 [ci skip]

commit e613940ada
Author: nevimer <77420409+nevimer@users.noreply.github.com>
Date:   Sun Apr 13 13:47:04 2025 -0400

    restores RCD vending, moves RCD's to lockers (#3498)

    ## About The Pull Request
    moves RCD's from engineers backpacks to their lockers roundstart - to
    accommodate the stowaway change aswell as keep a tab on infinite station
    resources.
    ## Why It's Good For The Game

    Above point

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    balance: reenabled the RCD vendors and moved RCD's from spawning in
    backpacks to lockers.
    /🆑

commit 732416f01d8ccc6e082cbdbeb60b30c461d8e965
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sun Apr 13 03:03:20 2025 -0400

    these use GMM prices and thus fluctuate

commit 99f097d67faf17569711d670d5891103d96932b1
Merge: 790b64602cd 945479a622
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sun Apr 13 02:12:01 2025 -0400

    Merge branch 'master' into upstream-25-04a

commit 945479a622
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sun Apr 13 00:59:23 2025 -0400

    Fix hot spring runtime related to duplicate elements (#90555)

    If something is mapped to spawn in on a hot spring tile, the tile will
    add the immerse element in `/turf/open/water/Entered` before
    `Initialize` runs, and when it does there's no check if the element has
    already been added, unlike other spots where the immerse element is
    added. This fixes that by adding a check on the call in `Initialize`.

commit 3472fddc11
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Sun Apr 13 04:16:19 2025 +0000

    Automatic TGS DMAPI Update (#2743)

    This pull request updates the TGS DMAPI to the latest version. Please
    note any changes that may be breaking or unimplemented in your codebase
    by checking what changes are in the definitions file:
    code/__DEFINES/tgs.dm before merging.

    Full changelog can be found
    [here](https://raw.githubusercontent.com/tgstation/tgstation-server/gh-pages/changelog.yml).

    - Added compatibility with SpacemanDMM's `redefined_proc` lint. (#2058
    Cyberboss)
    #tgs-dmapi-release

    Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>

commit e5630753ae
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:53:13 2025 +0200

    Automatic changelog for PR #3481 [ci skip]

commit ac3fea9660
Author: chestlet <98193039+chestlet@users.noreply.github.com>
Date:   Sat Apr 12 20:52:34 2025 -0700

    Nova Port: RB-MK2 GUI Rework (#5136) (#3481)

    ## About The Pull Request
    A significant [rework of the RB-MK2
    GUI](https://github.com/NovaSector/NovaSector/pull/5136) that I did over
    on Nova. The one you guys have now is painful to use in comparison so
    let's get it up to snuff.

    ## Why It's Good For The Game
    More information makes the RB-MK2 easier to use and teach in character.
    With how the GUI is currently, it gives no intuitive explanation for
    what it's doing. You can't tell what's going on with it.

    ## Proof Of Testing

    <details>
    <summary>Screenshots/Videos</summary>

    https://github.com/user-attachments/assets/7a178ac2-df8e-40d3-a6f3-b6aa617b69fd

    </details>

    ## Changelog
    🆑 Chestlet
    admin: Improved RB-MK2 logging so admins have a full trace of exactly
    what happened with it.
    fix: Corrected 'tritium usage' math in the RB-MK2.
    code: We've noticed that the Radioscopical Bluespace Reactor Mark Two
    blueprints provided to our stations came with antiquated firmware. This
    issue has been rectified. (Significant rework of the RB-MK2 GUI)
    /🆑

commit 071fcd84a8
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:48:58 2025 +0200

    Automatic changelog for PR #3495 [ci skip]

commit 0a5f60a36c
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 23:48:24 2025 -0400

    Xenoarch machines cleanup (#3495)

    ## About The Pull Request

    Clean up the code for xenoarch machines some because it made me sad.
    - Changes `attackby`'s to `item_interaction`
    - Keep a list of xenoarch items in contents instead of storing them in
    **an instance of `/obj/item` (yes the abstract concept of an item)**
    - Add context tips for all item interactions and removes that info from
    examine text
    - Switched a list to `static`
    - Add assoc list of `broken_item` types to reward pools instead of
    having a nightmare ladder of `istype` checks

    ## Why It's Good For The Game

    Fixes #3442

    ## Proof Of Testing

    Scout's honor

    ## Changelog
    🆑
    qol: xenoarch machines have context tooltips now
    fix: fixed xenoarch diggers not working
    /🆑

commit 16f02c756b
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:34:54 2025 +0200

    Automatic changelog for PR #3441 [ci skip]

commit ede9fc1646
Author: Bombermansam <Bombermansam@yahoo.com>
Date:   Sat Apr 12 23:34:09 2025 -0400

    [Modular] Adds crowbars to standard borg models that do not have them (#3441)

    ## About The Pull Request
    Adds crowbars to standard borg models that do not have them.
    ## Why It's Good For The Game
    This is a QOL addition, it should not affect balance.

    Half the borg models in the game do not have crowbars and can get stuck
    behind doors if the power fails which is no fun for anyone. This fixes
    it.
    ## Proof Of Testing
    It compiles and was tested locally.
    <details>
    <summary> Screenshots </summary>

    ![dreamseeker_18bfQxpDIz](https://github.com/user-attachments/assets/2dfc12f4-33a1-4ce9-8440-3ea4a098d6e9)

    ![dreamseeker_42TYSMAdVu](https://github.com/user-attachments/assets/5d71bf3f-d20e-47a1-b75e-ece7a10014b0)

    ![dreamseeker_NHBJgPvAtz](https://github.com/user-attachments/assets/56930158-73bb-4917-bb6d-ed6b09ff54aa)

    ![dreamseeker_p9yVo1VNaF](https://github.com/user-attachments/assets/761615e7-dad6-4086-a408-c2fca10f3d58)

    </details>

    ## Changelog
    🆑
    add: Adds Crowbars to Service, Medical, Clown, Sec and Peacekeeper borgs
    /🆑

commit 8e4d6f7052
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:32:18 2025 +0200

    Automatic changelog for PR #3491 [ci skip]

commit 0cdf875cec
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 03:32:09 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit c6f88a026e
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 23:31:16 2025 -0400

    Fix HEV armor not fully initializing (#3491)

    ## About The Pull Request

    `ADD_TRAIT`/`REMOVE_TRAIT` don't take lists you need to use a proc for
    that

    ## Why It's Good For The Game

    Fixes #3484

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/c11c26f8-2f80-44c8-8f94-513155b7f316)

    </details>

    ## Changelog
    🆑
    fix: fixed HEV suit not turning on properly
    /🆑

commit f93466e6ab
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:18:39 2025 +0200

    Automatic changelog for PR #3486 [ci skip]

commit 952a110077
Author: ariaworld <143797359+ariaworld@users.noreply.github.com>
Date:   Sun Apr 13 05:18:04 2025 +0200

    [FIX?] - Brings robotic brain surgery in line with organic brain sugery/lobotomy after the recent update (#3486)

    ## About The Pull Request
    As title!
    ## Why It's Good For The Game
    I originally opened this as an issue because I wasn't sure if this was
    intended, it's why I labeled it as [FIX?]
    Currently organic brain surgery heals the previous tiers of traumas as
    well which makes sure there's no leftover traumas left and also removes
    the RNG re-roll, applying a status effect instead. This PR brings the
    robotic surgery/lobotomy in line with the organic one in a few ways:

    1. Robotic blessed lobotomy now requires holy water as well (just like
    organic)
    2. Fix posibrain surgery now cures TRAUMA_RESILIENCE_SURGERY traumas as
    well
    3. Reticulate splines surgery now cures TRAUMA_RESILIENCE_SURGERY and
    TRAUMA_RESILIENCE_LOBOTOMY traumas as well
    4. Replaced RNG prob(75) roll with the 15-minute status effect that was
    added to organic brain surgery.

    This should balance/fix the robotic brain surgery to the recent change
    that was done to the organic brain surgery. Only issue is the fact how
    the original surgery was coded: there was no RNG roll for fix posibrain
    surgery, while the normal organic surgery did.
    Please feel free to close this PR if this was an intended feature/there
    are issues with potential balance arguments.
    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>
    (It compiles, very simple code just handles surgery steps)
    </details>

    ## Changelog
    🆑 Goku
    balance: Robotic blessed lobotomy now also requires holy water (just
    like the organic surgery)
    balance: Robotic blessed lobotomy requires liquid solder instead of
    Palladium Synthate Catalyst
    fix: Fix posibrain surgery now also cures surgery-tier brain traumas
    balance: Reticulate splines surgery now also cures lower tier brain
    traumas (surgery and lobotomy)
    balance: Replaced advanced robotic brain surgery RNG roll with the
    15-minute vulnerability status effect that was added to organic brain
    surgery
    /🆑

    ---------

    Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>

commit 790b64602cd2e59b8397c4fe2451d2c14bddb546
Merge: 7d39bddbcb2 5e1b40cf89
Author: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Date:   Sat Apr 12 20:13:11 2025 -0700

    Merge branch 'master' into upstream-25-04a

commit 5e1b40cf89
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:08:22 2025 +0200

    Automatic changelog for PR #3492 [ci skip]

commit 5e94554873
Author: ariaworld <143797359+ariaworld@users.noreply.github.com>
Date:   Sun Apr 13 05:07:55 2025 +0200

    [FIX] Fixes Wooden shelves turning into metal racks when broken. (#3492)

    ## About The Pull Request
    Title!
    ## Why It's Good For The Game
    Bugfix, my immersion was ruined
    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![shelf](https://github.com/user-attachments/assets/0bdb3fd2-0b85-4672-a02f-0772a4cb4f20)

    </details>

    ## Changelog
    :cl:Goku
    fix: Fix wooden shelves turning into metal rack parts when broken.
    /🆑

commit 7fed3cb7e4
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 05:07:00 2025 +0200

    Automatic changelog for PR #3493 [ci skip]

commit 2d38b200a0
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Sat Apr 12 20:06:37 2025 -0700

    Allow hypospray in medical pouch (#3493)

    ## About The Pull Request

    Adds hypospray and cable to the allowed list of items in the medical
    pouch

    ## Why It's Good For The Game

    Commonly held items, other reagent containers are accepted but hypo is
    missing.

    ## Changelog

    🆑 LT3
    qol: The medical pouch can now hold hyposprays and cable coil
    /🆑

commit 7d39bddbcb2e775207a4a3e72a3940f9fbf3b0f1
Merge: fde55e27444 bb642474217
Author: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Date:   Sat Apr 12 17:25:22 2025 -0700

    Merge branch 'upstream-25-04a' of https://github.com/Bubberstation/Bubberstation into upstream-25-04a

commit fde55e2744421b10f115724f70f3db8339b13df0
Author: lessthanthree <83487515+lessthnthree@users.noreply.github.com>
Date:   Sat Apr 12 17:25:20 2025 -0700

    screenshots

commit cfa0c20656
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 13 01:39:06 2025 +0200

    Automatic changelog for PR #3478 [ci skip]

commit 0397536620
Author: CatoChristopherMrow <johnmaddentickeledmyrear@gmail.com>
Date:   Sat Apr 12 19:38:42 2025 -0400

    Makes tackle gloves reskinnable (#3478)

    ## About The Pull Request
    Makes tackle gloves reskinnable to their blue, red, and black variants.
    ## Why It's Good For The Game
    Stops basic sec gear forcing you to either wear clashing colors or not
    get the benefit of standard equipment. Viva la matching colors.
    ## Proof Of Testing
    Works on my machine
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑 UvvU
    add: Tackle gloves are now reskinnable.
    /🆑

    ---------

    Co-authored-by: Ian Yanik <Iwantpornspam@gmail.com>

commit 42b725836a
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 12 23:24:45 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit bb642474217244fd233372d9c68cb4bab5f871f7
Merge: 72beef087ea c872e81588
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Sat Apr 12 16:10:29 2025 -0700

    Merge branch 'master' into upstream-25-04a

commit 72beef087ea8a1b291e286b09a0eb5a6713ba255
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 15:26:15 2025 -0400

    this now returns an icon path not an icon object

commit 4e85c985ee77a37b44dcef393b815a04421463b7
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 15:08:12 2025 -0400

    broken dmi

commit c872e81588
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 12 07:45:40 2025 +0200

    Automatic changelog for PR #3490 [ci skip]

commit 27801b991c
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 01:45:17 2025 -0400

    Fix admin chat buttons to cancel/refund storyteller events not working (#3490)

    ## About The Pull Request

    The chat messages that get sent when a storyteller event is about to run
    try to call `Topic` on the scheduled event datum but there isn't
    actually a `Topic` proc defined for them

    ## Why It's Good For The Game

    It's mean to trick admins with fake buttons

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/41d0df79-3220-4b8e-8f86-63df97b2d540)

    </details>

    ## Changelog
    🆑
    admin: the cancel and refund buttons in storyteller event notifications
    will actually do something now
    /🆑

commit bb14605128db2b1b5390d60b28665ed0ceae154a
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 01:06:39 2025 -0400

    im tired

commit 1245d5145e4f41d63dbe983355ef4619b6441655
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 00:40:09 2025 -0400

    what if the world was made of pudding

commit 7011b910d3bfaa0dba4a3d118721ad1d42a7625c
Merge: b8c00cbd266 e9ede320c9
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 00:31:56 2025 -0400

    Merge branch 'master' into upstream-25-04a

commit b8c00cbd2660017d578f07ce20c3732dcfcdb60f
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 00:31:01 2025 -0400

    silence linters

commit 3a3ea510ed12812fba0d97f545bf87749c16831a
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sat Apr 12 00:00:12 2025 -0400

    the economy is in shambles

commit 0a3e17e897b270dc19a63038b8e99e15ff9242ce
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 23:43:06 2025 -0400

    missing icons

commit fefc1348f722cf26bb407e6f7a5ba98184867fba
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 23:24:46 2025 -0400

    no override for this

commit 952f2a7502d972093e1f86bd9fa20bf3ea9788bf
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 23:16:07 2025 -0400

    shotgun icon states

commit 8e256d21c2bdfd2136f60705a3b5f7600ca6c9e7
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 23:02:28 2025 -0400

    no icon

commit 60164e1a4c038661d41bbb25a1e0e536147455a2
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 22:39:35 2025 -0400

    fucking capital letters?

commit 1e395535db671e61ce6514c35928a900d61a3570
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 22:28:06 2025 -0400

    GRRRRRR

commit 68e35b0068388eb94d1c9ec5b865787b1cdc300a
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 21:19:15 2025 -0400

    wrong

commit 9f8c9499f2890fad3c479d42c12888b1e0c55a3a
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 20:59:17 2025 -0400

    just put your icons anywhere who gives a shit

commit f6bc1091867a3b234f2634e8cb120eae5b0053d9
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 19:58:40 2025 -0400

    buh

commit edc876bff750ddce0593e917f5a68de02383c55e
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 19:49:32 2025 -0400

    added our GAGS configs to deploy

commit e9ede320c9
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 23:23:21 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit c726e4ee2d231d48334d43b8ce42d8b4e70b52b0
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 18:50:04 2025 -0400

    fixed recipe foodtypes

commit 9e23291b14371e4703a38ae1711b1fe5b75cbf37
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 18:24:53 2025 -0400

    Fix changelogs

commit bb8477826614c6e81285c5586de07ee26686c6b1
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 17:59:23 2025 -0400

    number of args changed for inject

commit f00ed38c1d
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 11:03:02 2025 +0200

    Automatic changelog for PR #3456 [ci skip]

commit 29b3c8daba
Author: aKromatopzia <94389683+aKromatopzia@users.noreply.github.com>
Date:   Fri Apr 11 17:02:38 2025 +0800

    Smolraptor Updates (#3456)

    ## About The Pull Request
    Adds blue and red sec smolraptors, makes janitor an alt of service

    ![Screenshot_50](https://github.com/user-attachments/assets/a5be3ed8-75da-4939-937c-0261dfcb1953)

    ## Proof Of Testing
    it works

    ## Changelog

    🆑
    add: sec smolraptors
    image: fixes some errors in smolraptors
    /🆑

commit 7c0978a47f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 08:21:22 2025 +0200

    Automatic changelog for PR #3463 [ci skip]

commit 04fd2b0a8a
Author: ArrisFairburne <arrisfairburne@gmail.com>
Date:   Fri Apr 11 02:20:59 2025 -0400

    Synth brain PDAs now have departmental PDA apps pre-installed (#3463)

    ## About The Pull Request

    Synth brains now start with your department's apps pre-installed. For
    example, Scientist synths now start with NT Science Hub. They also now
    have double the storage space compared to the basic PDA.

    ## Why It's Good For The Game

    Convenience.
    Also, synth PDAs have sort of existed in a weird limbo where (at least,
    from my point of view having talked to some others) most synth players
    just don't actually use one of the defining features of their race
    because normal PDAs are largely better and more convenient, hopefully
    this change emphasizes their abilities.
    The doubled brain storage space is just so that synth brain PDAs can
    comfortably house whatever programs come with being a dept. head.
    Balance wise, I doubt it will affect anything (what could you even do
    with the extra storage space, short of the dept. head apps? basic crew
    apps fit comfortably on the basic PDA limit, synths can't be emagged for
    expensive syndie apps, and synths can't store files on their brain via
    disks).

    ## Proof Of Testing

    (image taken after I spawned as RD; this is the synth brain PDA)

    ![image](https://github.com/user-attachments/assets/9a4dc579-f5a3-4df2-ad39-17aace34a250)

    ## Changelog
    🆑
    qol: Synthetic crew now spawn in with PDA apps relevant to their work
    station.
    bal: Synthetic crew brain PDAs now have 128 max capacity points (was
    previously 64)
    /🆑

commit eaa6352aff
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 08:20:28 2025 +0200

    Automatic changelog for PR #3471 [ci skip]

commit 02f3cfdb00
Author: ariaworld <143797359+ariaworld@users.noreply.github.com>
Date:   Fri Apr 11 08:20:05 2025 +0200

    [MAPPING]: Change Kilo Station dorms area type from Locker to Dorms. (#3471)

    ## About The Pull Request
    Makes sure Kilo Station's dorms area actually is a Dorms area.
    ## Why It's Good For The Game
    Other stations' dorms are inside actual Dorms areas, effectively
    granting protection from events like sudden brain trauma/heart attack,
    but Kilo Station didn't have this, they were classified as lockers
    instead.
    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![e](https://github.com/user-attachments/assets/ae6e79db-d68f-4895-a661-e5fa5b0383de)
    </details>

    ## Changelog
    :cl:Goku
    map: Kilo Station's Dormitories area type is now classified as
    dormitories, not as a Locker room.
    /🆑

commit 5266275bc4
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 07:03:33 2025 +0200

    Automatic changelog for PR #3485 [ci skip]

commit 0a38cf2824
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 01:03:07 2025 -0400

    Fix examine menu character preview being tiny (#3485)

    ## About The Pull Request

    Upstream fixed the tiny character preview but it requires a little tweak
    on implementations

    ## Why It's Good For The Game

    I can't see the blorbo

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/48961934-05ed-4cfe-b025-26628bea661c)

    </details>

    ## Changelog
    🆑
    fix: fixed character preview in the examine window being tiny
    /🆑

commit 3fc7296b82
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 06:23:15 2025 +0200

    Automatic changelog for PR #3483 [ci skip]

commit 1d52e91fd0
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Fri Apr 11 00:22:51 2025 -0400

    Fix double box on vote results chat message (#3483)

    ## About The Pull Request

    There's a redundant override in `vote.dm` to enclose the vote results in
    a purple examine box, this is the default way votes are displayed now so
    it's making vote results appear as a box within a box

    ## Why It's Good For The Game

    Looks wrong

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>
    Before:

    ![image](https://github.com/user-attachments/assets/e85781f3-ee68-4581-8a26-42aa577479f9)

    After:

    ![image](https://github.com/user-attachments/assets/b9ffda2a-950b-42e3-b476-c3b62dadd9a0)

    </details>

    ## Changelog
    🆑
    fix: fixed vote results in chat having an extra box around them
    /🆑

commit ab74044fc6
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 06:20:31 2025 +0200

    Automatic changelog for PR #3363 [ci skip]

commit cb06f207d3
Author: Kepteyn <94123167+Kepteyn@users.noreply.github.com>
Date:   Fri Apr 11 05:20:07 2025 +0100

    Just a couple more hotel rooms (#3363)

    ## About The Pull Request

    This adds four (and a half) new infinidorm hotel rooms -- A bar themed
    one, for when you want bar RP that's less public; a nightclub themed
    one; an space themed one for the spaceophilliacs who want to bang in
    space (or an airlock), and finally an oasis themed one, with a day and a
    night version.

    It also fixes the lights in the Library room, given we're no longer
    downstreaming from Skyrat, and it adds a template dmm that should make
    it easier for people to add new rooms should they wish - the plaque on
    the floor represents the spawn point.

    ## Why It's Good For The Game

    This adds even more variety to the infinidorm room options for people to
    roleplay in as a ghost. Or to _roleplay_ in. The bar one in particular
    provides an option for people who want to do a bar RP with some friends
    without getting pesky interruptions from their fellow human beings who
    feel the need to start a gunfight in the bar.

    ## Proof Of Testing

    All the new hotel rooms and the library have been tested in game, and
    are working quite nicely! The template map does not show up as an option
    in-game, as it exists to help mappers.

    ## Screenshots
    <details>
    <summary>Foxbar</summary>

    ![Untitled](https://github.com/user-attachments/assets/ae28e61e-c7db-4b77-8134-82e49ceced3a)

    </details>
    <details>
    <summary>Nightclub</summary>

    ![Untitled](https://github.com/user-attachments/assets/fcc200f1-59e9-402e-aa64-5d97bced377d)

    </details>

    <details>
    <summary>EVA</summary>

    ![Untitled](https://github.com/user-attachments/assets/d2f08b34-921b-4a1c-9c7a-927e04113b8c)
    _The floor is, infact, fake space, and is surrounded by a fake-space
    wall. You will survive nude in space here. Spacesuits still provided._
    </details>

    <details>
    <summary>Oasis</summary>

    ![Untitled](https://github.com/user-attachments/assets/38a9c04b-57c9-4b65-8208-f57abe526eab)
    _Only one is shown for brevity's sake, as the only difference between
    day and night versions is the strength of the external lighting_

    </details>

    <details>
    <summary>Template</summary>

    ![Untitled](https://github.com/user-attachments/assets/9630b870-21d5-47d2-aecf-40d343458451)
    _The template room. The bluespace border must be indestructible solid in
    some form, while the dark grey flooring represents the wall's location
    on the defautl Hilbert room. The door is located where the default door
    is on it, and the plaque on the ground shows where the player will
    spawn_

    </details>

    ## Changelog

    🆑
    add: Added infinidorms: Fox Bar; The Nightclub; EVA; and Oasis (day and
    night versions)
    add: Added a mapping template for creating new infinidorms at
    modular_skyrat\modules\hotel_rooms
    fix: modified the lights of the Library infinidorm so it's not so damn
    dark.
    /🆑

commit 700856e3c5
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 10 23:25:40 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 02353b9ec2
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 11 01:05:38 2025 +0200

    Automatic changelog for PR #3475 [ci skip]

commit f1722bb1c6
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Thu Apr 10 16:05:12 2025 -0700

    Disable lean reset on direction change (#3475)

    ## About The Pull Request

    Edits TG's lean component to perform the same as the pixel shift
    component

    ## Why It's Good For The Game

    Consistent shifting movement

    ## Changelog

    🆑 LT3
    qol: Leaning no longer resets with directional change
    /🆑

commit 4a5c80e1813ecaf7d26ddeabf2593d2b44c86dcb
Merge: b908b32d387 ada9345244
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Thu Apr 10 10:46:20 2025 -0700

    Merge branch 'master' of https://github.com/Bubberstation/Bubberstation into upstream-25-04a

commit ada9345244
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 10 19:16:21 2025 +0200

    Automatic changelog for PR #2896 [ci skip]

commit 472893ae5e
Author: Manatee <74586965+MajManatee@users.noreply.github.com>
Date:   Thu Apr 10 12:15:56 2025 -0500

    Tarkon Tweaks and Xeno Changes (#2896)

    ## About The Pull Request

    Update as of 01/26

    So that was a lie

    Anyways I completely remade tarkon, which is what I ORIGNIALLY wanted to
    do, but used a lot of the pre-existing tarkon assets to do so, to
    maintain the same feel.

    Some NEW NEW features (as the project grew in scope) include:

    Med/RND/Engineering are now separate "Islands" like charlie (tarkon was
    always meant to be like that anyhow
    Each one has a few xenos, and a new "Emergency power generator"
    Scanning this with the new (not a ripoff) Hack-C tool will call in a
    repair drone (Original content) to repair it, and it needs to be
    defended from the xenos it alerts.
    Sucsesfully completing a defence will reward sickass weapons and gear
    you wouldn't normally ever get to see, making further areas easier, and
    a key for the final area.
    Once all 3 keys are obtained, and the areas are re-secured, you can go
    to the boss area and clear out the AI sat / command zone.

    A bitrunning server to allow them to make their own bitden (it's the
    first prototype, and the rest must be researched so it's not
    shift-start)

    more floor safes with various things like some ore thumpers and two
    bluespace beakers

    Crates! Someone misfiled a crate of goodies and it got sent here! These
    orders should be delivered to their owners! I'm sure they would
    appreciate it! Probably...

    A Recycler (Amazing)

    A produce order console! Now you can actually cook whatever you want!
    And it gives you a reason to sell stuff for money!

    more stuff, lots more stuff. things keep getting added the longer it
    takes for this to be looked at.

    Also adds three new variants of xenobio, and two new variants of the
    cargo bay. One cult (we miss you cult), one carp, and a monkey themed
    xenobio.

    ## Why It's Good For The Game
    Part 1 of my attempt to make tarkon feel better to play. The overall
    gameplay was very "Meta" and didn't really give you any reason to clear
    out xenos or the threats. Who knows what might come next.
    Tarkon was pretty stale. A bit of new stuff might be nice. plus a reason
    to use their shuttle is good.

    Furthermore, tarkon WILL run on solar, so if you REALLY don't want to,
    you don't HAVE to go and clear everything out.

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/f707090e-426c-4d63-b171-8fdfa33a0489)

    ![image](https://github.com/user-attachments/assets/26b97663-53c4-49b5-827d-484b6aae9b38)

    ![image](https://github.com/user-attachments/assets/94d03e35-8a44-4d39-b8e7-5fa1a722ff8e)

    ![image](https://github.com/user-attachments/assets/a865263b-6e62-409e-a537-7c5e157e21f7)

    ![image](https://github.com/user-attachments/assets/7d8edb71-5dec-469b-9a39-fe3f1305b127)

    ![image](https://github.com/user-attachments/assets/1bae535a-82e3-43f9-93a0-d2983e011ea7)

    ![image](https://github.com/user-attachments/assets/2ad382a1-58e8-4846-a575-2e4bc732216d)

    ![image](https://github.com/user-attachments/assets/2a41c51c-d447-413f-a4f2-3c272c8ddd15)

    ![image](https://github.com/user-attachments/assets/aaae91bd-aec4-4f0d-93c8-857e63416562)

    ![image](https://github.com/user-attachments/assets/4e89da8d-bbc7-4084-bb8d-353ec032ca4c)

    I did test it, and run the wave defense, it DOES work.
    </details>

    ## Changelog
    🆑
    add:  BUNCH of new tarkon things!
    map: Tarkon QOL changes
    /🆑

    ---------

    Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
    Co-authored-by: Arturlang <24881678+Arturlang@users.noreply.github.com>

commit b908b32d387ffe9a2b40d2d25a03cd04c2e62868
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Thu Apr 10 08:35:37 2025 -0700

    Compiletimes done

commit a9601004a82714a72f62e9b5db07d2adde27c0c3
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Thu Apr 10 08:35:26 2025 -0700

    We are so comically stupid

commit 0f8d37991f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 10 00:05:02 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 31897a95e9
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 10 01:54:47 2025 +0200

    Automatic changelog for PR #3468 [ci skip]

commit 385b734424
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 10 01:54:32 2025 +0200

    Automatic changelog for PR #3470 [ci skip]

commit 0903ee683e
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Wed Apr 9 19:54:20 2025 -0400

    Fix shuttles no longer making sounds or (un)bolting doors (#3468)

    ## About The Pull Request

    The code for these things got lost in an upstream because shuttle code
    got split into multiple files

    ## Why It's Good For The Game

    Fixes #3251

    ## Proof Of Testing

    I tested it and the shuttle went bwwwwrrmmmmm pshewww and the door bolts
    went chk

    ## Changelog
    🆑
    fix: fixed shuttles missing landing/take off engine sounds
    fix: fixed shuttles not bolting/unbolting their doors when moving
    /🆑

commit e5b57bc08c
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Wed Apr 9 16:54:09 2025 -0700

    Fix meow emote for cat tongues (#3470)

    ## About The Pull Request

    Fixes the meow emote to use the correct emote if you have a cat tongue

    ## Why It's Good For The Game

    MEOW.

    ## Changelog

    🆑 LT3
    fix: Mobs with cat tongue get their alternate meow sound back
    /🆑

commit 204ea57363
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 9 23:23:16 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit ce5944e0733f4c5985e2e48878a02c0c35463d0a
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 08:19:09 2025 -0700

    6 compiletime errors left

commit d1905c44f5
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 9 14:03:13 2025 +0200

    Automatic changelog for PR #3461 [ci skip]

commit 6c3bc53604
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date:   Wed Apr 9 08:02:51 2025 -0400

    Deathmatch now stores and reapplies your respawn timer prior to being spawned (#3461)

    ## About The Pull Request
    Title
    ## Why It's Good For The Game
    item number TWO on the list
    ## Proof Of Testing

    ![image](https://github.com/user-attachments/assets/3f6fd5d7-1d62-41a5-9c97-3178585f350a)
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    code: deathmatch doesn't reset your respawn timer
    /🆑

commit f890cb36b9265f011a187b4f332812590838292c
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 01:45:20 2025 -0700

    some color stuff

commit fb849a2a8ebc2166915cfbec1e850510678b2f22
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 01:38:18 2025 -0700

    Fixes

commit 381d77fa68707cc5315b698474df026c2103166c
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 01:20:20 2025 -0700

    We love guncode and refactors!!!!

commit f30bb6ca01319218795e4004219938aa3d976eb3
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 01:00:40 2025 -0700

    I love cherry picking!!!

commit 6677a4c7bbe3c7536276178c841290a489d0a4a9
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 01:00:27 2025 -0700

    so apparently some dumbass on nova reused the turret flag bitfield and it only now runtimes

commit 7acc721baadbdea3d3795a45b9837cfeb4fd4fd0
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 00:58:48 2025 -0700

    Martials and arcade rework updates

commit bf9f393204fe7d40d5e57e76db870eb1a32aed25
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 00:47:58 2025 -0700

    This might break taur icons, remember to test once we compile

commit 3bc256cb16ca2e85b78830345bba0a487f49fc17
Author: Majkl-J <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 9 00:41:03 2025 -0700

    Several varchanges from tg

commit 76f5dc1b5f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Tue Apr 8 23:23:40 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 538049c4cd4960d2c81c43f2e387896049fb02c7
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Tue Apr 8 20:00:59 2025 +0200

    reagent applicators fixes

commit df43e50d68419d2f24bd62eef0432bda8394cc7d
Author: Waterpig <wtryoutube@seznam.cz>
Date:   Tue Apr 8 19:56:27 2025 +0200

    Some missed merge fixes

commit 0f0838bb35
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Tue Apr 8 09:27:36 2025 +0200

    Automatic changelog for PR #3399 [ci skip]

commit 234a410586
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Tue Apr 8 09:27:29 2025 +0200

    Automatic changelog for PR #3397 [ci skip]

commit 722b51eb07
Author: Iamgoofball <iamgoofball@gmail.com>
Date:   Tue Apr 8 02:27:12 2025 -0500

    [MODULAR] Removes the 60 round Sol drum from being printable in Security (#3399)

    ## About The Pull Request

    Removes the 60 round Sol drum from being printable in Security

    ## Why It's Good For The Game

    After discussing magazine size standardization, this came up and to be
    100% honest, the crew does not need LMG ammo capacity on any of their
    guns. Even though it's illegal contraband to use(yes, Illegal Tech is
    still fuckin' Illegal lol), it's still a lot of ammo capacity that we
    don't really want the crew to have.

    ## Proof Of Testing

    Just deleting a research design.

    ## Changelog

    🆑
    del: Removes the 60 round Sol drum from being printable in Security
    /🆑

    ---------

    Co-authored-by: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>

commit 3e7223b959
Author: Iamgoofball <iamgoofball@gmail.com>
Date:   Tue Apr 8 02:27:06 2025 -0500

    [MODULAR] Puts the Sol/Carwo/Romulus/Szot/Trappiste gun magazine sizes in line with /tg/ standards (tiny for everything but rifles which are normal) (#3397)

    ## About The Pull Request

    Puts the Sol/Carwo/Romulus/Szot/Trappiste gun magazine sizes in line
    with /tg/ standards (tiny for everything but rifles which are normal)

    ## Why It's Good For The Game

    Size inconsistencies between items results in confused players; it's
    good to keep this sort of thing synced up so that we're not having
    players ask why one pistol magazine fits in a box while another pistol
    magazine doesn't fit in a box when the air tank that's bigger than both
    of them does fit in the box.

    If I find other guns with weird weight classes I'll fix those too.

    ## Proof Of Testing

    Single-line changes, weight classes is a proven working system already.

    ## Changelog
    🆑
    qol: Puts the Sol/Carwo/Romulus/Szot/Trappiste gun magazine weight
    classes in line with /tg/ standards for magazine weight classes (tiny
    for everything but rifles or larger which are normal)
    /🆑

commit 7b420bb680
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 22:16:23 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit f30b0d5df0
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Tue Apr 8 00:12:44 2025 +0200

    Automatic changelog for PR #3452 [ci skip]

commit aa4901b571
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Mon Apr 7 15:11:59 2025 -0700

    Map vote is called automatically on blob/nukies/etc. round end (#3452)

    ## About The Pull Request

    Triggers the automatic map vote when the round is about to end due to a
    station threat, if it hasn't happened.

    ## Why It's Good For The Game

    Saves it delaying the next round if no admin catches it in time, causing
    a delay as the vote and another restart needs to occur.

    ## Changelog

    🆑 LT3
    admin: Map vote is automatically triggered near the conclusion of
    station ending threats
    fix: Only a single announcement is sent when the shuttle is called,
    fixing the overlapping sounds
    /🆑

commit a6845577bd
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 21:55:15 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit bf8c0ef85f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 23:49:40 2025 +0200

    Automatic changelog for PR #3459 [ci skip]

commit 28e4e2cd42
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Mon Apr 7 17:49:12 2025 -0400

    Refactor changelog handling to separate files (#3459)

    ## About The Pull Request

    This rewrites how our actions handle changelogs, and rewrites a bunch of
    the changelog TGUI (in a separate file cause I don't feel like
    massacring the upstream one). The gist of it is that our actions will
    now create autochangelog files with bubber in the name, our changelog
    compile will only compile those autochangelogs (not upstream ones if
    they happen to be in there), and the compile will be done into separate
    bubber changelog files in `html/changelogs/bubber_archive`. In game, the
    UI will pull both archive files (upstream and ours) and combine them in
    the changelog list, putting the codebase logo next to each change to
    distinguish which one it's from.

    ~~NOTE: I'm opening this as a draft because I'm going to try and reset
    our tg changelogs and then reapply all our historical changelogs into
    the new bubber archive files, I'm just putting this up now so the code
    can be reviewed and shit~~ done

    ## Why It's Good For The Game

    For players this makes it easier to distinguish where a change came
    from, and for developers this means we don't need to worry about
    breaking the changelog when we do an upstream pull, we can completely
    ignore it and just pull everything, and our tg archive files will be 1:1
    with upstream with no shit from us added in.

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/ac8a96f9-dcb3-43f0-8d36-faf610f3a7e0)

    </details>

    ## Changelog

    🆑 TealSeer, LT3
    refactor: refactored how changelogs are generated and displayed
    /🆑

    ---------

    Co-authored-by: lessthanthree <83487515+lessthnthree@users.noreply.github.com>

commit 7de99181db
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Mon Apr 7 17:44:07 2025 -0400

    Rename Autochangelog (#3462)

    the refactor is about to merge this isnt gonna be included otherwise

commit 0ed680f2aa
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 23:36:02 2025 +0200

    Automatic changelog for PR #3457 [ci skip]

commit 0f13b89457
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date:   Mon Apr 7 17:35:25 2025 -0400

    30 minute grace period to respawn (world time, not round time) (#3457)

    ## About The Pull Request
    from when the server starts to 30 minutes after, respawning is free of
    charge
    ## Why It's Good For The Game
    item #1 on the list
    ## Proof Of Testing
    it works dude trust me
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    code: respawn enabled until 30 min (world time)
    /🆑

commit 99cb23f3c5
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 18:30:45 2025 +0200

    Automatic changelog for PR #3434 [ci skip]

commit 697d89abf3
Author: pixelkitty286 <78038207+pixelkitty286@users.noreply.github.com>
Date:   Mon Apr 7 11:30:19 2025 -0500

    Cleans up and reorganizes some of the borg code (#3434)

    ## About The Pull Request
    This PR reorganizes and cleans up some of the borg code and separates
    sprite defines and borg defines once more but this time correctly.

    Also fixes some small bugs with foot steps with chameleon module.

    Moved some borg model specific trait procs into their own file.
    ## Why It's Good For The Game
    Makes it more organized so we don't have one HUGE file containing all
    the sprite defines and borg model code

    ## Proof Of Testing
    It's all back end. Compile test was last done late march.

    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    fix: chameleon model foot steps
    code: moved many of the borg defines to their correct _defines file and
    folder
    /🆑

commit 74985f40fc
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 10:28:15 2025 +0200

    Automatic changelog for PR #3447 [ci skip]

commit d58cf909af
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date:   Mon Apr 7 01:27:49 2025 -0700

    Change podperson eye color (Again (Thanks Upstream)) (#3447)

commit cb3052e6ea
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 02:04:52 2025 +0200

    Automatic changelog for PR #3448 [ci skip]

commit c29d36ada5
Author: sippykot <sippythekot@outlook.com>
Date:   Mon Apr 7 02:04:27 2025 +0200

    Fish Ass: ports over large shark tails from CHOMP (#3448)

    ## About The Pull Request

    see title
    if you want to see who made the sprites, follow the accreditation chain:
    https://github.com/CHOMPStation2/CHOMPStation2/pull/9926

    it doesn't fully use all the sprites, because our system here is so much
    clunkier to use - if someone wants they can probably bash out several
    more tail variants by copying and rearranging the existing sprites

    ## Why It's Good For The Game

    people wanted them, gushed over them in #suggestions, and then no one
    did anything, so...
    also, 🦈

    ## Proof Of Testing

    yeah i compiled it, they finally showed up in game, thanks #coder-longue

    ## Changelog

    🆑
    add: 4 new tail options
    image: new tail sprites
    /🆑

    ---------

    Co-authored-by: Roxy <75404941+TealSeer@users.noreply.github.com>

commit fa6845f9e6
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 23:22:10 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 55fd8dd1f7
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Mon Apr 7 01:01:20 2025 +0200

    Automatic changelog for PR #3426 [ci skip]

commit 16f6d07548
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date:   Sun Apr 6 19:00:55 2025 -0400

    Shadekin NV and movespeed rebalance (#3426)

    ## About The Pull Request
    title + nerf movespeed in the light
    ## Why It's Good For The Game
    still can't see shit (nv trait is 4.5, bumping it up to 15)
    ## Proof Of Testing
    it werks
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    balance: shadekin nv buffed from 4.5/100 to 15/100
    balance: shadekin move a bit slower in the light
    /🆑

commit d2f96730ba
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 22:16:10 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit c7def946b6
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 17:39:00 2025 +0200

    Automatic changelog for PR #3450 [ci skip]

commit f833f3edc4
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sun Apr 6 11:38:26 2025 -0400

    Fix persistence medbots speaking on syndicate frequency (#3450)

    ## About The Pull Request

    Make them speak on cybersun frequency

    ## Why It's Good For The Game

    Fixes #3446

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/05dc7869-8904-4005-be2a-d59301daef13)

    </details>

    ## Changelog

    🆑
    fix: fixed persistence medbots speaking on wrong radio frequency
    /🆑

commit 17b620b48e
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 10:19:15 2025 +0200

    Automatic changelog for PR #3438 [ci skip]

commit bfb9c9e2b5
Author: pixelkitty286 <78038207+pixelkitty286@users.noreply.github.com>
Date:   Sun Apr 6 03:18:52 2025 -0500

    Nerfs super syndicat and makes it no longer a freedom implant. (#3438)

    ## About The Pull Request
    - This PR makes the new syndicat ears item have a 1 minute cool down
    when used and the normal ears have the same thing.

    - This also ports a fix that was done on monkey station:
    https://github.com/Monkestation/Monkestation2.0/pull/6017

    ## Why It's Good For The Game
    - After watching a round on here and getting complaints about this from
    SPLURT I understand now why 20 seconds is too short for such a item like
    this if your gonna be a cat your gonna be a cat for a long while.

    - Also to quote monkey station:
    "It will make the cat not able to bypass any security non-lethal means,
    which in turns mean security won't be forced to lethal them everytime
    they see it."

    ## Proof Of Testing
    Should work only changed the time values.

    Edit: Compiled and tested locally

    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    balance: Super cat ear cool downs are longer and removed the freedom
    implant function.
    /🆑

commit 4ed70fa4c7
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 10:18:17 2025 +0200

    Automatic changelog for PR #3451 [ci skip]

commit 65331b085f
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Sun Apr 6 04:17:45 2025 -0400

    Fix invisible sprites on security HUD nightvision goggles (#3451)

    ## About The Pull Request

    Upstream changed NV goggles to have different icon states for on and off
    and we dont have that so I reverted it to the tg sprite

    ## Why It's Good For The Game

    Fixes #3383

    ## Proof Of Testing
    <details>
    <summary>Screenshots/Videos</summary>

    ![image](https://github.com/user-attachments/assets/77943197-de8f-409a-86c3-bad205888054)

    </details>

    ## Changelog

    🆑
    fix: fixed sechud nv goggles being invisible when off
    /🆑

commit 8aad924f76
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 10:16:18 2025 +0200

    Automatic changelog for PR #3443 [ci skip]

commit 3bd5803844
Author: Swift <jackwars4@gmail.com>
Date:   Sun Apr 6 03:15:53 2025 -0500

    Removes tackle buff for having cat ears (#3443)

    ## About The Pull Request

    Title, manual revert of #1513

    ## Why It's Good For The Game

    Tackle chance could be brought to 100% and people have reportedly been
    exploiting this fact.

    ## Proof Of Testing

    I think it will complie

    ## Changelog

    :cl:Swiftfeather
    balance: Cat ears no longer provide a tackle bonus
    /🆑

commit 89594c8547
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 00:56:59 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit b4af64b182
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sun Apr 6 02:25:40 2025 +0200

    Automatic changelog for PR #3370 [ci skip]

commit 0e684db68a
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Sat Apr 5 17:24:44 2025 -0700

    Update various sound prefs for 516 compatibility (#3370)

    ## About The Pull Request

    Updates our various sound prefs to be functional post upstream/516.

    ## Why It's Good For The Game

    We can control sound as expected again.

    ## To-Do

    - [x] Conditional preference sounds
    - [x] Jukebox sound toggle
    - [x] Jukebox volume override

    ## Changelog

    🆑 LT3
    fix: Sound prefs that went missing post-516 are restored
    add: Jukebox volume slider in game preferences
    /🆑

    ---------

    Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>

commit 60e73702c6
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 07:14:09 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 9a36823173
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 09:02:26 2025 +0200

    Automatic changelog for PR #3425 [ci skip]

commit 1ab85fd206
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date:   Sat Apr 5 03:02:02 2025 -0400

    Spices up vulpkanin [bounty] (#3425)

    ## About The Pull Request
    Changes vulpkanin in several ways:
    - Peanutbutter gives a mood buff
    - Chocolate deals toxin damage while inside you
    - innate hardened soles
    - innate night vision
    - hunger will drain twice as fast
    - higher sensitivity to flashes
    ## Why It's Good For The Game
    vulpkanin are literally human but fluffy, they don't even have lore in
    the species selector (lol) also I'm being paid
    ## Proof Of Testing

    ![image](https://github.com/user-attachments/assets/8860340c-e6c4-4ad9-81ac-89a60f7645eb)

    ![image](https://github.com/user-attachments/assets/3a497358-64f1-4f37-a8c4-e289c7a84734)

    ![image](https://github.com/user-attachments/assets/d6dec08b-c0a6-4d75-8715-2f66791a9cd4)
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    add: several vulpkanin species buffs/debuffs
    /🆑

    ---------

    Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>

commit 4da0397b16
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 08:54:22 2025 +0200

    Automatic changelog for PR #3396 [ci skip]

commit 1ed1187fca
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date:   Fri Apr 4 23:53:57 2025 -0700

    Slug Scream! (#3396)

    ## About The Pull Request

    Adds a new scream, "Slug". Sound file ripped from Splurt

    ## Why It's Good For The Game

    Expression is the best thing that this video game medium can offer.

    ## Proof Of Testing

    https://github.com/user-attachments/assets/147be9dc-98c2-4ee4-bc76-762331710143

    ## Changelog

    🆑
    sound: Slug Scream sound added to *scream choices
    /🆑

commit 66e28121d4
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 08:53:15 2025 +0200

    Automatic changelog for PR #3431 [ci skip]

commit 88a238b93c
Author: Bombermansam <Bombermansam@yahoo.com>
Date:   Sat Apr 5 02:52:48 2025 -0400

    Allows players to be sad like raptors (#3431)

    ## About The Pull Request
    Adds a Sad Kweh emote from the two unused raptor sound files.
    ## Why It's Good For The Game
    You can now sad birdly.
    ## Proof Of Testing
    It compiles and was tested locally.

    https://github.com/user-attachments/assets/bc5f31fb-ad12-4026-be94-d28d2db542df

    ## Changelog
    🆑
    add: *skweh emote to be sad
    /🆑

commit 4a93b42977
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 08:51:43 2025 +0200

    Automatic changelog for PR #3432 [ci skip]

commit f51c4d7942
Author: Bombermansam <Bombermansam@yahoo.com>
Date:   Sat Apr 5 02:51:18 2025 -0400

    Silicons can now Yip (#3432)

    ## About The Pull Request
    Silicons can now emit a singular yip so they can express their inner
    kobold but not too much.
    ## Why It's Good For The Game
    Silicons can yipyip but not yip. This fixes it.
    ## Proof Of Testing
    It compiles and was tested locally.
    </details>

    ## Changelog
    🆑
    fix: Silicons can now yip.
    /🆑

commit 14ec8a0440
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 08:43:03 2025 +0200

    Automatic changelog for PR #3437 [ci skip]

commit e05fe31faa
Author: Odairu <39929315+Odairu@users.noreply.github.com>
Date:   Sat Apr 5 02:42:41 2025 -0400

    Adds more flavor to shadekin empathy (#3437)

    ## About The Pull Request
    BASED ON SANITY SHADEKIN EMPATHY WILL:
    -Take more or less time to send
    -At lowest levels of sanity the message starts to break down some
    -Be a different color in chat
    ## Why It's Good For The Game
    Shadekin empathy is communication through FEELINGS so it being
    better/worse based on how you're FEELING makes sense (to me)
    ## Proof Of Testing

    ![image](https://github.com/user-attachments/assets/2c539f7b-7edc-43c1-9c28-f8da4606dc17)
    <details>
    <summary>Screenshots/Videos</summary>

    </details>

    ## Changelog
    🆑
    balance: shadekin empathy is better/worse based on mood
    /🆑

    ---------

    Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>

commit 457754c461
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Sat Apr 5 06:38:05 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit c3fe3d31ba
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Fri Apr 4 23:16:53 2025 -0700

    You can cuff people to the tram rails #90293 (#3445)

    ## About The Pull Request

    https://github.com/tgstation/tgstation/pull/90293

    ![image](https://private-user-images.githubusercontent.com/7483112/427767772-688e23ff-93df-4f51-990c-4bc475d344fb.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3NDM4MjY2MzAsIm5iZiI6MTc0MzgyNjMzMCwicGF0aCI6Ii83NDgzMTEyLzQyNzc2Nzc3Mi02ODhlMjNmZi05M2RmLTRmNTEtOTkwYy00YmM0NzVkMzQ0ZmIuZ2lmP1gtQW16LUFsZ29yaXRobT1BV1M0LUhNQUMtU0hBMjU2JlgtQW16LUNyZWRlbnRpYWw9QUtJQVZDT0RZTFNBNTNQUUs0WkElMkYyMDI1MDQwNSUyRnVzLWVhc3QtMSUyRnMzJTJGYXdzNF9yZXF1ZXN0JlgtQW16LURhdGU9MjAyNTA0MDVUMDQxMjEwWiZYLUFtei1FeHBpcmVzPTMwMCZYLUFtei1TaWduYXR1cmU9MDBiNTNhZGRjYjY5YWRmMjQyZTM4YjY3MGM3MGMyZTIzM2I4MDkwMGYwNTEwODc2YmE0YWE1ZGFiMDJjZWI1MyZYLUFtei1TaWduZWRIZWFkZXJzPWhvc3QifQ.6w2hr_2ruJTsAcXoAlcbsZe5bM3ii83iBQk7aDQhvMs)

    Handcuffed people can be buckled to the tram rails.
    If the tram hits them then they will die badly.
    If they're not shockproof and are buckled to a powered rail, it will zap
    them repeatedly for a little bit of damage (but not a lot because you
    probably want them to die from something else).
    Unbuckling someone from a powered rail is also pretty dangerous.

    While doing this I fucked around a bit with how the "is the tram deadly"
    calculation worked because I didn't like how a deadly tram cuts your
    head off but does literally no other damage. Now it pulverises and
    beheads you.

    ## Why It's Good For The Game

    ![image](https://github.com/user-attachments/assets/dd851dda-56b0-41c9-b6aa-26c9db0b9a28)

    ---------

    Co-authored-by: tgstation-ci[bot] <179393467+tgstation-ci[bot]@users.noreply.github.com>

commit 3c1c05052f
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 4 23:23:13 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 0287fe4d0b
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Fri Apr 4 21:54:53 2025 +0200

    Automatic changelog for PR #3440 [ci skip]

commit 6d081fe0da
Author: Bombermansam <Bombermansam@yahoo.com>
Date:   Fri Apr 4 15:54:30 2025 -0400

    [Modularized] Nugget Boxes and Foodpacks can now be placed into paper sacks. (#3440)

    ## About The Pull Request
    Nugget Boxes and Foodpacks can now be placed into paper sacks.
    ## Why It's Good For The Game
    You can now live out your minimum wage dreams as a fast food worker a
    Chick'fil'a. To quote someone that wanted this "I can now fastfoodmax as
    a chef".

    Food packs can also be placed into paper sacks because it makes sense.
    ## Proof Of Testing
    It compiles and was tested locally.

    ![dreamseeker_WxYzmwbDrn](https://github.com/user-attachments/assets/9b6e4e8e-fa71-48c3-8bbc-b533e3b3e65e)

    I would like to praise [lessthnthree](https://github.com/lessthnthree)
    for their remarkable patience in teaching me how to properly modularize
    code. Really, thank you so much!

    </details>

    ## Changelog
    🆑
    add: Makes Nugget Boxes and Food packs small
    /🆑

    ---------

    Co-authored-by: LT3 <83487515+lessthnthree@users.noreply.github.com>

commit 0824cb07ba
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 3 20:19:08 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 9d8a54be49
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 3 22:14:42 2025 +0200

    Automatic changelog for PR #3433 [ci skip]

commit 45477353d2
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 3 22:14:33 2025 +0200

    Automatic changelog for PR #3403 [ci skip]

commit b6b6fbfba4
Author: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Date:   Thu Apr 3 14:14:17 2025 -0600

    Job Spawn borgs prioritize linking to the malf AI (#3433)

    ## About The Pull Request

    So there's this little quirk where late join cyborgs will auto link to
    whatever AI has the least cyborgs. This changes that.

    This adds a priority: Malf AI > AI cores

    Also this deletes an unused file I noticed.

    ## Why It's Good For The Game

    Every cyborg that spawns in the game during an active malf round should
    always connect to the malf AI if it's available.

    ## Proof Of Testing

    It works

    ## Changelog

    🆑
    balance: Cyborgs now auto link in a priority system. Malf > AI cores >
    Suit AIs / Cards
    /🆑

commit 1f3aedc6c1
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Thu Apr 3 13:14:07 2025 -0700

    Fix brain trauma surgery (#3403)

    ## About The Pull Request

    Fixes the highest level of trauma surgery leaving leftover traumas.
    Applies a status effect instead of the random roll of a new trauma.

    ## Why It's Good For The Game

    Having to do lobotomy surgery over and over until you hit the 25% RNG to
    make it successfully go away isn't a good gameplay experience. Better to
    just apply a status effect for a while instead.

    ## Changelog

    🆑 LT3
    fix: Lobotomy/blessed lobotomy should correctly remove all surgery based
    traumas
    balance: Lobotomy/blessed lobotomy now provides a predictable status
    effect instead of a trauma RNG roll
    /🆑

commit 95d97cf4a2
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 3 18:50:51 2025 +0200

    Automatic changelog for PR #3429 [ci skip]

commit 3c30dfbaff
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date:   Thu Apr 3 09:50:24 2025 -0700

    Shadekin Ear Gradient (#3429)

    ## About The Pull Request
    Adds a new ear type: Shadekin Gradient
    ## Why It's Good For The Game

    Makes Healer happy

    ## Proof Of Testing

    ![image](https://github.com/user-attachments/assets/16b3910e-68fa-4caf-8678-2e1f4632ecd9)

    ![image](https://github.com/user-attachments/assets/c3f7eb88-24b2-4aed-804a-075df5917517)

    ## Changelog

    🆑
    add: Added new ear type: Shadekin Gradient
    /🆑

    ---------

    Co-authored-by: Jinshee <manastra2536@gmail.com>

commit 3dd8af584e
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 3 06:33:08 2025 +0200

    Automatic changelog for PR #3415 [ci skip]

commit c83b14b15d
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date:   Wed Apr 2 21:32:45 2025 -0700

    Porting New Bug Customization + IPC Screens (#3415)

commit d9d40def4c
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Thu Apr 3 02:35:34 2025 +0200

    Automatic changelog for PR #3387 [ci skip]

commit a154dd9d97
Author: Jinshee <96621959+Jinshee@users.noreply.github.com>
Date:   Wed Apr 2 17:35:10 2025 -0700

    Fixes Waggingtail Sprite for Shadekin tails + Ringtail (#3387)

    ## About The Pull Request

    All of the shadekin tails, ringtail included, had incorrectly assigned
    dmi files for their wagging state, causing them to go invisible. This,
    simply, fixes that.

    ## Why It's Good For The Game

    I love fixing sprites!

    ## Proof Of Testing

    https://github.com/user-attachments/assets/186f7dc6-4b78-4e9e-968e-fcbdae40bf2f

    ## Changelog

    🆑
    fix: fixed wagging state for all shadekin tails and ring tail (long)
    /🆑

commit ba3fa0684c
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 2 21:56:26 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit 70143cdadb
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 2 23:52:41 2025 +0200

    Automatic changelog for PR #3419 [ci skip]

commit ad62db6f9b
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Wed Apr 2 14:52:18 2025 -0700

    Adds pipe carp (#3419)

    ## About The Pull Request

    A Ferocious, highly aggressive fish that thrives in the depths of shoddy
    engineering work. Drawn to poorly sealed pipes, mismatched connectors,
    and hastily patched atmospherics, these creatures feast on structural
    incompetence with alarming efficiency.

    ## Changelog

    🆑 LT3
    add: Added new carp variant: carpmospheric technician
    /🆑

commit dab0ff6a09
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 2 11:40:26 2025 +0200

    Automatic changelog for PR #3423 [ci skip]

commit 27027d5ceb
Author: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Date:   Wed Apr 2 03:40:00 2025 -0600

    take two: Reverts the disaboot apirl fools (#3423)

    ## About The Pull Request

    Apirl fools code cleanup. Was a funny meme, but I don't think they
    should happen next year.

    ## Changelog

    🆑
    del: Disaboots have been removed from apirl fools.
    /🆑

commit 1c08269f2a
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 2 03:08:41 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit c43c9d01ed
Author: LT3 <83487515+lessthnthree@users.noreply.github.com>
Date:   Tue Apr 1 19:38:12 2025 -0700

    [TM ONLY] let me send long ass subtler messages to my heart's content (TGUI payload chunking) (#3406)

    ## About The Pull Request

    (https://github.com/tgstation/tgstation/pull/90295)

    ## Changelog

    🆑 Y0SH1M4S73R
    code: Any tgui message that would be too big to send to the server is
    now split into chunks and sent in sequence. This fixes several issues,
    such as...
    fix: It is once again possible to save large amounts of text on paper at
    once.
    /🆑

    ---------

    Co-authored-by: Y0SH1M4S73R <legoboyo@earthlink.net>
    Co-authored-by: Y0SH1M4S73R <y0sh1m4s73r@gmail.com>
    Co-authored-by: Lucy <lucy@absolucy.moe>

commit c96d028562
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 2 04:35:29 2025 +0200

    Automatic changelog for PR #3420 [ci skip]

commit e22c174b35
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Wed Apr 2 04:35:09 2025 +0200

    Automatic changelog for PR #3407 [ci skip]

commit 43a4b964b1
Author: plsleavemealon <106043510+plsleavemealon@users.noreply.github.com>
Date:   Tue Apr 1 21:35:04 2025 -0500

    Ethereal Powercell Bugfix (#3420)

    ## About The Pull Request

    Fixes ethereal powercells from 20kj back to 220kj which is what they
    used to be.

    ## Why It's Good For The Game

    It is what it used to be, and with the present vanilla values you have
    to recharge yourself once every ~5 minutes or so or suffer a huge mood
    debuff. And if you are entombed, you will suffer death after ~10 minutes
    if you do not recharge.

    ## Proof Of Testing

    ## Changelog

    🆑
    fix: fixed ethereals powercell back to bubbers values
    /🆑

commit 3068303ae3
Author: The Sharkening <95130227+StrangeWeirdKitten@users.noreply.github.com>
Date:   Tue Apr 1 20:34:46 2025 -0600

    Reverts "Adds crew monitors to Advanced biotech and lathes" (#3407)

    ## About The Pull Request

    This removes the handheld crew monitor from the medical lathe.

    ## Why It's Good For The Game

    Alright, I just want to start out with all sources of the handheld crew
    monitor after this PR
    - Paramedics spawn with them
    - Blueshield (command only)
    - The medical vendor premium section.
    - Borg upgrades

    Overall while there's been a lot of QOL to the crew monitor which I
    enjoy, it's all gradually made it so deaths are very noticable and often
    times with someone in medical 1 second later running towards an active
    fight to drag corpses away.

    - I think overall we have a sort of medical omnipresence issue,
    especially with an easy research destroying a level of scarcity with the
    hand held crew monitor.

    Anyone can print it if they have the materials and access to the lathe
    versus only a few existing outside of the paramedic starting with them.

    This PR of course is not going to fully tackle it. It's not going to
    stop a paramedic constantly staring at sensors or the medical console
    beeping when someone's in crit. But this aims to get less eyes on
    sensors, mostly the ability for everyone in medical to have a little
    screen to pull out and see the live feed without actively moving to a
    console.

    Overall I think we have this issue (a lot of it being administrative)
    where every single death must be immedietly found and the person revived
    in 10 minutes. This won't fully tackle that, but if the solution is we
    must bloat a ton of antag abilities and items to combat sensors then I
    think we have too many eyes on sensors.

    ## Proof Of Testing

    ![image](https://github.com/user-attachments/assets/9d845341-7441-4beb-bb61-579b01222190)

    ## Changelog

    🆑
    del: Removes the handheld crew monitor from the medical lathes.
    /🆑

commit c9cca3fbef
Author: Bubberbot <151680451+Bubberbot@users.noreply.github.com>
Date:   Tue Apr 1 23:24:18 2025 +0000

    Bubberstation automatic changelog compile [ci skip]

commit de81adcb6d
Author: Waterpig <49160555+Majkl-J@users.noreply.github.com>
Date:   Wed Apr 2 00:55:25 2025 +0200

    Makes the roundend mapvote not rerun after it gets called the first time (#3418)

    ## About The Pull Request

    See name
    ## Why It's Good For The Game

    Fixes #3395
    ## Proof Of Testing

    It worked I did test it

    ## Changelog
    Nothing player facing, basically allows us to cancel the vote once it
    initializes

commit b36c477460
Author: Roxy <75404941+TealSeer@users.noreply.github.com>
Date:   Tue Apr 1 18:35:54 2025 -0400

    Fix every fucking piece of maint loot being skub (#3412)

    ## About The Pull Request
    the override should append to the global maint loot list not replace it

    ## Why It's Good For The Game
    I'm anti-skub

    ## Proof Of Testing

    I did this PR from my phone in bed because there's no power
2025-04-14 15:51:24 -04:00
Waterpig 753d8e5ba4 Merge branch 'master' of https://github.com/tgstation/tgstation into upstream-25-04a 2025-04-08 18:58:45 +02:00
Arturlang 9950e761c4 Re-adds nanites (#2995)
## About The Pull Request
Re-adds nanites, balance changes pending.
No plans to do mapping/role changes
Based on https://github.com/tgstation/tgstation/pull/60473 with a lot of
work on modularizing

## Why It's Good For The Game
Nanites are a rather interesting system, my hope is to port it in a more
balanced format.

## Proof Of Testing
Works, thoroughly tested

## Changelog

🆑
add: Re-adds nanites
/🆑
TODO:
- [x] Add techweb linking for nanites
- [x] Prevent stacking of armor mods (fortitude + dna vault + nanite
armor)
- [x] Rebalance damage regeneration programs
- [x] Remove force speak program by @StrangeWeirdKitten request
- [x] Convert UI's to TSX
- [x] Fix Nanite program uhb and programmer overlays not working

---------

Co-authored-by: Waterpig <49160555+Majkl-J@users.noreply.github.com>
2025-03-31 14:49:09 -04:00