Compare commits

...
Author SHA1 Message Date
pre-commit-ci[bot] 37e44ee3ee [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2026-01-11 19:10:58 +00:00
Vanessa fc28b60175 Added shared bible cooldown for BibleUsers 2026-01-11 13:01:32 -06:00
Delta-V bot 5d25f1cb38 Automatic changelog update 2026-01-11 17:43:49 +01:00
Minerva c750867ce6 Makes the crash cart obtainable via ordering (#5190) 2026-01-11 10:43:29 -06:00
Delta-V bot 3839387b75 Automatic changelog update 2026-01-11 17:27:25 +01:00
dcd5733185 Some guidebook and localisation touch ups (#5178)
* - Fixed squished Ovinia and Kitsune in species page of guidebook.
- Added Skia to Minor antagonists in guidebook

* Fixed typo posession -> possession

* changed cryoxadone's dec from saying works regardless if alive or dead to needs to be alive

* added documentation

* Fixed failure to follow contribution guidelines (thanks faint)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fixed pump part of guide book showing vol pump max kPa as ???.

* Added empty line at bottom of ftl file

* Update Resources/Locale/en-US/reagents/meta/medicine.ftl

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Pharaz4 <143268074+Pharaz4@users.noreply.github.com>

* Update Resources/Locale/en-US/_DV/reagents/meta/medicine.ftl

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Pharaz4 <143268074+Pharaz4@users.noreply.github.com>

* Fix issue 5151

---------

Signed-off-by: Pharaz4 <143268074+Pharaz4@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2026-01-11 10:27:06 -06:00
Delta-V bot b76d723b72 Automatic changelog update 2026-01-11 16:40:21 +01:00
210b8a4d53 Spare ID always unlocks during War Ops (#5104)
* Spare ID will now unlock during war ops

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Increased to 15 seconds.

* summary docs fixes

* Added some docs to MoveToUnlocked. Reworked things a tiny bit.

* Added some docs to MoveToUnlocked. Reworked things a tiny bit.

* Buh

* Remove blank lines that seem to have come from nowhere

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Tobias Berger <toby@tobot.dev>
2026-01-11 15:40:02 +00:00
Delta-V bot eecaeb9e59 Automatic changelog update 2026-01-11 16:38:43 +01:00
Vanessa 73cbc7ecb2 Revert 'nerf melee when laying down #3173' (#5182) 2026-01-11 09:38:24 -06:00
Delta-V bot 1a8e4bbf71 Automatic changelog update 2026-01-11 16:35:02 +01:00
Milon 857d0291fb fix emergency JOL not using battery (#5189)
fucky wuckies are all gone
2026-01-11 09:34:43 -06:00
github-actions[bot]andDeltaV-Bot facdd4b7de Update Credits (#5185)
Co-authored-by: DeltaV-Bot <github@deltav.gay>
2026-01-11 16:09:21 +01:00
Delta-V bot e9e2b4d75a Automatic changelog update 2026-01-11 00:06:23 +01:00
keekee38 6a0bbeeec8 More players required for nukies (#5159)
10 -> 20 and 35 -> 40
2026-01-10 17:06:04 -06:00
Delta-V bot ee21dd3dc1 Automatic changelog update 2026-01-10 23:08:03 +01:00
Joe 66d8e33855 Add Space Cleaner Regen to Janiborg's Adv. Internal Spray Jet (#5155)
* feat: Add space cleaner regeneration to janitor borgs and wall dispensers.

* chore: i managed to accidentally add a space where one doesnt belong. yaml gaming.

* refactor:  Remove SolutionRegeneration from CleanerDispenser and BorgSprayBottle
2026-01-10 16:07:43 -06:00
VanessaandTobias Berger 5f1788c8db Feroxi hardsuit helmet fixes (#5161)
* Feroxi hardsuit helmet fixes

* Comment

* Actually fix feroxi helmets

---------

Co-authored-by: Tobias Berger <toby@tobot.dev>
2026-01-10 23:07:30 +01:00
Delta-V bot 7ee563bfb0 Automatic changelog update 2026-01-10 22:58:31 +01:00
snowywinters d4a64a7cec AI interactables (#5132)
* SMES/Substation

* Techfabs

* Atmos

* wires

* wire panels

* Revert "Atmos"

This reverts commit 7bbc0689d0.
2026-01-10 15:58:12 -06:00
Delta-V bot bb336b13a4 Automatic changelog update 2026-01-10 22:45:14 +01:00
Joe 5c6dae9400 fix: Check if RootContainer is null before referencing its members. (#5173) 2026-01-10 15:44:55 -06:00
Delta-V bot dbc08599b4 Automatic changelog update 2026-01-10 22:44:10 +01:00
ConstantlyConfused 63efa8409b Make feroxi nukies have the correct survival boxes (#5179)
Make feroxi nukies spawn with the correct survival box
2026-01-10 15:43:50 -06:00
Delta-V bot 9b55153b83 Automatic changelog update 2026-01-10 22:43:17 +01:00
ConstantlyConfused 6953199fda Update the Spare Captain's ID announcement (#5177)
make the free aa announcement match current space law
2026-01-10 15:42:58 -06:00
Delta-V bot 554aa30a5a Automatic changelog update 2026-01-10 17:49:18 +01:00
Milon bb529a3f18 fix senior job icons / names (#5176)
fix
2026-01-10 17:48:59 +01:00
Delta-V bot 2e91729348 Automatic changelog update 2026-01-10 15:18:16 +01:00
DisposableCrewmember42 e15dd1a715 feat: adminoverlay command (#5123)
* feat: adminoverlay command

* tweak: move adminoverlay perm under ADMIN
2026-01-10 15:17:57 +01:00
Delta-V bot 68ec2bc672 Automatic changelog update 2026-01-09 17:34:45 +01:00
PureBreadBagel 7a08ab7d73 Hotfix for our makeshift omnitools from Starlight! (#5165)
* Update OrganManipulation.xml

* Merge branch 'DeltaV-Station:master' into master

* Merge branch 'DeltaV-Station:master' into master

* Merge branch 'DeltaV-Station:master' into master

* no more taser!

* Merge branch 'DeltaV-Station:master' into master

* Merge branch 'DeltaV-Station:master' into master

* Merge branch 'DeltaV-Station:master' into master

* fixing le craft

* Fixie my tool of omnipotent

* new verb

* QUick fixes!!

* AAAAAA

* quick fix

* change requests done

* grrg
2026-01-09 17:34:25 +01:00
Delta-V bot 3f778e6da5 Automatic changelog update 2026-01-08 21:53:50 +01:00
Vanessa 053f386122 Redrock Spawn Distance Increase (#5166)
* red rock distance increased
2026-01-08 21:53:31 +01:00
Delta-V bot 64d383b9c0 Automatic changelog update 2026-01-08 18:11:44 +01:00
KOTOB 3ba0c9753e Smooth combat mode rotation (Make Flashlights Awesome) (#5163)
* its so peak
2026-01-08 18:11:25 +01:00
Delta-V bot 453aab5cd7 Automatic changelog update 2026-01-08 17:15:23 +01:00
Field Command 745c401df2 Revert "Asterisk winter update" (#5156)
Revert "Asterisk winter update (#4925)"

This reverts commit 359a7011ff.
2026-01-08 10:15:04 -06:00
Delta-V bot d99b4842ac Automatic changelog update 2026-01-08 17:13:13 +01:00
This_Is_Gray 82a4969e1a Revert "It Snew On Lady Elegance (Christmas PR)" (#5162)
Revert "It Snew On Lady Elegance (Christmas PR) (#4903)"

This reverts commit 0f388ece51.
2026-01-08 10:12:54 -06:00
Delta-V bot b8aa4cd422 Automatic changelog update 2026-01-08 16:53:40 +01:00
Vanessa 33ffbdbcb8 Taser nerfs based on community feedback (#5106)
* Some taser nerfs based on community feedback

* Comment

* Reverted some of the nerfs. Gave tasers a 5 second cooldown.
2026-01-08 09:53:20 -06:00
Delta-V bot c9a1eaba99 Automatic changelog update 2026-01-07 18:53:07 +01:00
VelcroboyandVelcroboy 05b6452ea5 Adjust toilet loot frequency to be less frequent (#5064)
* Adjust toilet loot frequency to be less frequent

* Add perma version

* Update loot pools

* Add random reagents

* sum glassers

* HoW haha

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2026-01-07 11:52:48 -06:00
Delta-V bot d8b698e738 Automatic changelog update 2026-01-07 17:35:44 +01:00
Vanessaandpre-commit-ci[bot] 46acbaaf26 Colossus Effigy Blacklist (#5160)
* Added colossus effigy blacklist.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-07 17:35:25 +01:00
Vanessa c0821274f3 Might fix nukie commander not spawning (#5146)
* Might fix current commander whitelist

* Added missing DV comments
2026-01-07 10:30:02 -06:00
Delta-V bot 11ad11cad0 Automatic changelog update 2026-01-07 16:57:49 +01:00
859bd63600 make aac tablet Better (#5153)
* graphic design is my passion

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update Content.Client/_DV/AACTablet/UI/AACWindow.xaml

Milon will probably tell me to.

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

---------

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2026-01-07 15:57:28 +00:00
Delta-V bot 7975aecfc1 Automatic changelog update 2026-01-07 05:02:05 +01:00
6af220451c Medical Crashcarts + small guidebook fix (#5140)
* Update OrganManipulation.xml

* no more taser!

* Crashcart (#2376)

Co-authored-by: funkystationbot <funky@funkystation.org>

* oh boy

* readded the tags cus im silly

* Update Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Tag work!

* ergh

* me when there is no tag

* Update Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* aaaaghhh im bad at coding

* sick

* edited starting items

* fix!

* fix harpy guidebook

* Update Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/_Funkystation/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/Entities/Objects/Tools/gas_tanks.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Apply suggestions from code review

EVERYTHING ALL AT ONCE

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/Catalog/Fills/Items/gas_tanks.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/_Funkystation/Entities/Objects/Specific/Medical/crashcart.yml

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

---------

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>
Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: mkanke-real <mikekanke@gmail.com>
Co-authored-by: funkystationbot <funky@funkystation.org>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2026-01-06 22:01:46 -06:00
Delta-V bot f0990c33a6 Automatic changelog update 2026-01-07 03:37:53 +01:00
VelcroboyandVelcroboy 54fe7ccf2a Map Edits: Arena (#5085)
* Map Edits: Arena

* enabled pumps

* regent -> []

* feedback

* missing pipe

* Toilers

* WP Edits

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2026-01-06 20:37:32 -06:00
Delta-V bot 403a172e8e Automatic changelog update 2026-01-06 22:57:48 +01:00
Vanessa 8384f178db Revert "Remove crate Melting" (#5152)
Revert "Remove crate Melting (#5050)"

This reverts commit 25e5934b04.
2026-01-06 15:57:29 -06:00
Delta-V bot 21fa68f744 Automatic changelog update 2026-01-06 19:41:48 +01:00
fb98bfe575 deepfryer 2.0 (#5043)
* was it worth the hype

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* minor stuff

* multi-ingredient recipe support

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* oil transfer

* explosions and fire

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* make the yaml linter happy

* YML recipes

* typo ops

* review

* Apply suggestions from code review

Milon told me to.

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Stop-Signs <stopsign221@gmail.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2026-01-06 12:41:29 -06:00
Delta-V bot 4b4c2ef973 Automatic changelog update 2026-01-06 17:59:51 +01:00
Velcroboy f381af07e4 Revert "It's a Tortuga Xmas!" (#5147)
Revert "It's a Tortuga Xmas! (#4893)"

This reverts commit 566382e75f.
2026-01-06 17:59:31 +01:00
BarryNorfolk bf8cce52a1 Remove warnings in Content.Server for _DV content (#5114)
* Cleanup datafields with matching autogenerated tag [RA0027]

* Remove unused dependencies [CS0414]

* Swap to AddMarkupOrThrow over PushMarkup [CS0618]

* Fix namespacing [CA1050]

* Prefer the generic overload [CA2263]

* Fix exception throwing [CA2208]

* Mark RoundStartCaptain as static [CA1822]

* Don't use string literal [RA0033]

* Remove un-needed null check [CS8073]

* Explicitly set webhookData to null [CS0649]

* Use protoId over bare string

* Prefer HasComp over TryComp with no usage of the actual comp
2026-01-06 10:31:51 -06:00
Delta-V bot f7dbafc607 Automatic changelog update 2026-01-06 16:59:59 +01:00
Stxcking e344e79cdf More Feroxi Mask Sprites (#5149)
guh
2026-01-06 09:59:39 -06:00
Milonandpre-commit-ci[bot] fae22b6e86 mail commands and API (#5150)
* 5 minute adventure

* ftl and comments cleanup

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-06 09:57:16 -06:00
Delta-V bot decf64222d Automatic changelog update 2026-01-06 06:27:48 +01:00
Vanessa ef44b2a4f7 Disable Santa Anomalies (#5145)
Until next year~
2026-01-05 22:27:29 -07:00
Delta-V bot ebc0ccc36b Automatic changelog update 2026-01-06 02:31:33 +01:00
Stxcking 1c8be0197f Give Medical Borgs Crew Monitors (#5117)
* guh

* no alerts
2026-01-05 19:31:14 -06:00
Stxcking 93ceaff6a6 Give Player Ghosts Mass Scanner (#5109)
* buh

* remove lines guh

* whatever text

* move to _DV
2026-01-05 19:30:28 -06:00
Delta-V bot 682cda9d67 Automatic changelog update 2026-01-05 22:05:21 +01:00
Vape e36cb563fe Revert "Holidays on Glacier" (#5139)
Revert "Holidays on Glacier (#4936)"

This reverts commit 3bd56db54c.
2026-01-05 15:05:01 -06:00
turtlemutt a345a0b2df Revert "Winterhouse" (#5135)
Revert "Winterhouse (#4910)"

This reverts commit 4f39809ea9.
2026-01-05 01:13:20 -06:00
Delta-V bot db5e43aaa7 Automatic changelog update 2026-01-04 20:26:59 +01:00
Stxcking d9f8961733 Electronic Damage Icon (#5127)
guh
2026-01-04 13:26:40 -06:00
Delta-V bot 721c41a3df Automatic changelog update 2026-01-04 20:26:08 +01:00
Vanessa 334255b84d Fixed footprint system deleting people (#5128)
Fixed footprints deleting the people who left them, and not the footprint itself lmao.
2026-01-04 19:25:48 +00:00
Delta-V bot 4302a7620d Automatic changelog update 2026-01-04 17:37:27 +01:00
Milon 0d0d5a17de footprints prediction (#5111)
* works

* shuffle stuff around

* no more fucky wuckies, fucky wuckies are GONE

* maybe this will just fix my problems?

* usings

* thats not how flying works

* review
2026-01-04 10:37:08 -06:00
Delta-V bot 3a051b65a3 Automatic changelog update 2026-01-04 01:15:28 +01:00
Astra 06c9596b6f Return of the Cyborg Hydra (#5116)
Re-add Borg Hydra
2026-01-03 18:15:09 -06:00
Velcroboy 79d0781320 Revert "Map Edits: Shoukou Xmas" (#5076)
Revert "Map Edits: Shoukou Xmas (#5024)"

This reverts commit d00e19f4b1.
2026-01-03 16:50:46 +01:00
Velcroboy ac9a9762e2 Revert "Map Edits: Edge Xmas" (#5078)
Revert "Map Edits: Edge Xmas (#5022)"

This reverts commit 67fd579fb1.
2026-01-03 16:49:39 +01:00
Velcroboy 0f461b2c9c Revert "Map Edits: Division XMAS" (#5079)
Revert "Map Edits: Division XMAS (#5021)"

This reverts commit 215d42d871.
2026-01-03 16:46:09 +01:00
Velcroboy 90a1ce7c33 Revert "Map Edits: Chibi Xmas" (#5077)
Revert "Map Edits: Chibi Xmas (#5023)"

This reverts commit 7862eb9e8c.
2026-01-03 16:43:52 +01:00
Delta-V bot e13c37508f Automatic changelog update 2026-01-03 14:56:21 +01:00
2502a9fffe New glimmer events! Foxfire & Restyle (#5102)
* Add glimmer restyle and foxfire

* Fix typo

* Fix typo

* Fix test fail and kobold hair bug (thanks to FaintSpeaker)

* Update Content.Server/_DV/StationEvents/Events/GlimmerRestyleRule.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Astra <226853568+EmberAstra@users.noreply.github.com>

* Update Content.Server/_DV/StationEvents/Events/GlimmerRestyleRule.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Astra <226853568+EmberAstra@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update Content.Server/_DV/StationEvents/Components/GlimmerFoxfireSpawnRuleComponent.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Astra <226853568+EmberAstra@users.noreply.github.com>

* Update Content.Server/_DV/StationEvents/Components/GlimmerFoxfireSpawnRuleComponent.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Astra <226853568+EmberAstra@users.noreply.github.com>

* Update Content.Server/_DV/StationEvents/Events/GlimmerFoxfireSpawnRule.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Astra <226853568+EmberAstra@users.noreply.github.com>

* Update Content.Server/_DV/StationEvents/Events/GlimmerRestyleRule.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Astra <226853568+EmberAstra@users.noreply.github.com>

* Only filter for potential psionics

* Lower restyle glimmer requirement

* Semicolon my beloathed

* Popup false when going bald to bald

* Update Content.Server/_DV/StationEvents/Events/GlimmerRestyleRule.cs

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

---------

Signed-off-by: Astra <226853568+EmberAstra@users.noreply.github.com>
Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-03 13:56:01 +00:00
IRSMsoso 2e024d43cb Fix debug assert in OnUpdateAlert of Cosmic Cult System (#5112) 2026-01-03 07:41:50 -06:00
Delta-V bot f7faf5c9c1 Automatic changelog update 2026-01-03 14:27:54 +01:00
Sir Warockandpre-commit-ci[bot] 53e4097bbf New Surgery UI (#5107)
* One Commit ops

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Remove one Line

* Readonly variable

* Better Switch cases

* Actually better this way

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-03 07:27:35 -06:00
Delta-V bot 5885d4db79 Automatic changelog update 2026-01-03 01:48:41 +01:00
VelcroboyandVelcroboy f2ffb88d7d Update potted plants with slightly larger interaction zone (#5052)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2026-01-02 17:48:22 -07:00
Delta-V bot 8814144904 Automatic changelog update 2026-01-03 01:47:46 +01:00
3617bc3b53 Fix Cosmic Cult Server Crash (#5097)
* Fixed a bug where the server would crash if there were zero cultists and it would try to hold a vote with zero options.

* Added a check to prevent the vote if a steward already exists.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added clarity to logs in case a 2nd cult gets added or something.

* Update Content.Server/_DV/CosmicCult/CosmicCultRuleSystem.cs

Co-authored-by: Milon <milonpl.git@proton.me>
Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

---------

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Milon <milonpl.git@proton.me>
2026-01-02 17:47:27 -07:00
Delta-V bot 509ffa86c8 Automatic changelog update 2026-01-03 01:42:26 +01:00
Halo3moth db272e7b47 Advanced plate carrier nerf (#5081)
* Fun hater

* She change on my request till I direction
2026-01-02 17:42:07 -07:00
Delta-V bot 117b5433c3 Automatic changelog update 2026-01-03 01:12:49 +01:00
Field Command 3953ef9771 Midpoint: Festive times are over. (#5040)
Festive times are over
2026-01-02 18:12:29 -06:00
Delta-V bot 73b25fcb64 Automatic changelog update 2026-01-03 00:54:56 +01:00
6a1a4e6bc5 Engineering Void Suit (#4944)
* Add engineering void suit

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update Resources/Prototypes/_DV/Catalog/Fills/Lockers/engineering.yml

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: Astra <226853568+EmberAstra@users.noreply.github.com>

* Update Resources/Prototypes/_DV/Entities/Clothing/OuterClothing/softsuits.yml

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: Astra <226853568+EmberAstra@users.noreply.github.com>

* Update Resources/Textures/_DV/Clothing/OuterClothing/Suits/engineering-light.rsi/meta.json

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: Astra <226853568+EmberAstra@users.noreply.github.com>

* Remove brute resistances

* The great recoloring

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Apply suggestions from code review

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

* Vulp/feroxi helmets no longer unshaded

---------

Signed-off-by: Astra <226853568+EmberAstra@users.noreply.github.com>
Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2026-01-02 17:54:37 -06:00
Delta-V bot 0d9b339fc5 Automatic changelog update 2026-01-02 20:01:17 +01:00
Corynandpre-commit-ci[bot] dc261bc4d0 Change how Minor Mass Mind Swap Cooldown starts/Fix Telegnosis (#5013)
* Move Cooldown to the Event itself

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Move delay into variable within the component

* Move Cooldown Method into an optional bit within MindSwapPowerSystem

* Remove redundant using and dependency

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-02 13:00:58 -06:00
Delta-V bot 4223bae8aa Automatic changelog update 2026-01-02 08:02:32 +01:00
Vanessa d8ed2ffc59 Fix Duplicate Kill Heads Objectives and Add TargetObjectiveImmune (#4996)
* Added TargetObjectiveImmune to PickObjectiveTargetSystem. Moved early merge component to DV namespace (since its not upstream).

* Fixed traitors rolling only heads for teach a lesson

* Derp

* Added more TargetObjectiveImmune filters.

* Comments.

* More changes
2026-01-02 00:02:12 -07:00
IRSMsoso 2dc78795a0 Fix starlight prototype directory case (#5105) 2026-01-02 04:14:18 +00:00
Delta-V bot 1548baa05a Automatic changelog update 2026-01-02 01:37:40 +01:00
Charlie MorleyandVanessa d9505a1d9a hotfix id card console (#5103)
* hotfix id card console not working due to unintentionally hidden accesses

* Update Content.Shared/Access/Components/IdCardConsoleComponent.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Charlie Morley <cmorley191@gmail.com>

---------

Signed-off-by: Charlie Morley <cmorley191@gmail.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2026-01-02 00:37:21 +00:00
Delta-V bot 83436c78ee Automatic changelog update 2026-01-01 22:32:04 +01:00
Stop-Signs 520b2540a6 Fix sharp katana being unable to fit into katana sheathe (#5098)
* shing

* lmao im an idiot
2026-01-01 21:31:44 +00:00
Delta-V bot d052caeb0e Automatic changelog update 2026-01-01 22:15:39 +01:00
Vanessa 95a9aa5880 Fixed cryox working on the dead. (#5096) 2026-01-01 15:15:19 -06:00
0ea6fe67a0 Internal Affairs Agent Role (#5075)
* test for now

* icon fix

* text fix

* fucking around, using it more like changeling yo

* whatever failed tests

* probably works?

* fix

* test test

* messing around yet again

* removed useless file

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* why the fuck do objectives work now

* fix round screen not showing up

* implanter, music track and general fixes added

* text improvement

* slightly fixed formatting

* conflict fix

* Update Resources/Prototypes/_DV/Roles/Antags/ntAgent.yml

NTAgent-round-end-name

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Cepelinas1 <kakelis01@gmail.com>

* Update Resources/Prototypes/_DV/Roles/Antags/ntAgent.yml

NTAgent-role-greeting-human

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Cepelinas1 <kakelis01@gmail.com>

---------

Signed-off-by: Cepelinas1 <kakelis01@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2026-01-01 14:27:31 -06:00
Delta-V bot 6fa8012bbd Automatic changelog update 2025-12-31 22:53:32 +01:00
9ad868b2b7 Detective Module/ SecBorg Buffs and SecBorg PDA (#5005)
* Detective Module/ SecBorg Buffish

Gives a Detective module to the secborg with a PDA to. Also gives them 3 slots instead of 2 and 100 health

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Add SecurityCyborgPDA to borg_modules for patrol

Add SecurityCyborgPDA item to borg modules for patrol

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* Add BorgModulesSecurityDeltaVStatic recipe pack and pray it fucking works dear god

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* fixed copywrite info

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* fixed copywrite info again

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* adjusted crew manifest cartridge from bottom to top for cleaner look on PDA

makes PDA programms look more "normal"

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* Fixed Merge conflict with upstream (I think upstream atleast)

Fixed a merge issue with upstream and the pack

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* Update Resources/Prototypes/_DV/Entities/Objects/Specific/Robotics/borg_modules.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* Moved Forensic things to _DV/Robo

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* Removed PDA from Patrol mod so it's only in Det mod

Removed SecurityCyborgPDA item from borg modules list.

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* Removed borg-slot-forensic-empty = Forensic Reports and Bureaucracy Supplies and Moved it to _DV/Robo

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

---------

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-31 15:53:13 -06:00
Delta-V bot 5eaf79d9d8 Automatic changelog update 2025-12-31 21:19:09 +01:00
Sir Warockandpre-commit-ci[bot] 268a1e79e5 The Jetpack Stays On During Harmbatoning (#4990)
* OneCommitOps

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Requested Changes

* Small fix

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-31 14:18:49 -06:00
Delta-V bot c85ee48f17 Automatic changelog update 2025-12-31 21:11:47 +01:00
Corynandpre-commit-ci[bot] 762715f810 Blood Red Super Synth from wyci-thread (#5019)
* Blood Red Super Synth from wyci-thread

* Move the blood red synth into _DV

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Move uplink changes into _DV

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Change cost to 1

* Reparent the Red Super Synth to the Super Synth

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-31 14:11:28 -06:00
58cc793e86 Port Starlight's expanded makeshift items (#4984)
* 1

* 2

* remove dismantle testing changes

* add ammount handling, and add random angle

* code-side things

* code-side things

* code-side things

* 3

* 4

* 5

* 6

* changed description for now

* whoops

* 7

* 8

* 9

* Texture fix

* Tada!

I diiid iiitttt

* Delete .icon.png-autosave.kra

* 10

* test

another

* 11

* Localization fixes 2

Also some minor rebalancing of armor/shield/helmet crafting

* ROOOUND 33333

* test

wawa

* wiz

* fixes

* MORE FIXES

* MORE MORE FIXES

* Smg mag fix

* Why does it have reflet

Removed reflect chance and made the damage the same as a plasteel arming sword

* belt fix

* phosphorus addition

* improvised round bulk crafting

* Update tags

* tags update 2

* Update tags.yml

* fix tags AGAIN

* TAG FIX AGAIN

* Fixed the sound path

* Fixed missing components hopefully

* fix it hopefully

* Update tidebreaker.yml

* fixed errors

* fixed?

* Update shields.yml

* Update tools.yml

* Fixes

* Update tools.yml

* Update tools.yml

* Update tools.yml

* Update tools.yml

* Update tools.yml

* screwdriver fix 200

* Update tools.yml

* Update tools.yml

* Apply suggestions from code review

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update SharedItemSwitchSystem.cs

* review changes

* Fix server and client files

* Namespace fixes.

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Entities/Objects/Tools/crowbars.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Entities/Objects/Tools/tools.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Entities/Objects/Tools/tools.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Entities/Objects/Tools/tools.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Entities/Objects/Tools/tools.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/Entities/Clothing/Belt/belts.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Recipes/Crafting/Graphs/improvised/improvised_omnitool.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Recipes/Crafting/Graphs/improvised/improvised_omnitool.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Recipes/Crafting/Graphs/improvised/improvised_omnitool.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/Recipes/Crafting/Graphs/improvised/improvised_omnitool.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_StarLight/tags.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update SharedWeaponDismantleOnShootSystem.cs

* Update Resources/Prototypes/Recipes/Crafting/Graphs/improvised/improvised_shotgun_shell.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

* Update Resources/Prototypes/_DV/Entities/Objects/Weapons/Guns/Ammunition/Boxes/improvised.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>

---------

Signed-off-by: Apachito <ivanlopezlegos2004@gmail.com>
Co-authored-by: KillerTheFlareon <tyler443344@outlook.com>
Co-authored-by: Matthew Herber <matthewherber@sbcglobal.net>
Co-authored-by: Athena-AI <AthenaTheAI@outlook.com>
Co-authored-by: stickycheZ101 <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>
Co-authored-by: stickycheZ101 <96800602+stickycheZ101@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: Vanessa <vanessalouwagie@gmail.com>
2025-12-31 14:08:48 -06:00
Delta-V bot d7ebd18ad3 Automatic changelog update 2025-12-31 20:04:15 +01:00
verybigman a006cfb67c China Lake Frag Rounds Adjustment (#5002)
* 1

* final

* upstream fix

* balancing

* fix
2025-12-31 13:03:56 -06:00
Delta-V bot d32b2f46cf Automatic changelog update 2025-12-31 19:38:35 +01:00
MD360 ecd24937b3 Borgs must amogus. (#5035)
Xeno/borg can amogus
2025-12-31 12:38:16 -06:00
Delta-V bot ba5e71a897 Automatic changelog update 2025-12-31 19:37:59 +01:00
Delta-V bot d878d26f3e Automatic changelog update 2025-12-31 19:37:41 +01:00
Winter 8425e99a95 Add vox-specific sprites for all security hardsuits, elite ERT hardsuits, and mystagouge hardsuit. (#5086)
* New vox sprites for RD suit, all security hardsuits, and all elite ERT suits

* Fixed accidental inclusion of old sprite version for standard hardsuit
2025-12-31 12:37:37 -06:00
Astra 7fa4c7451c Fix the wings in salvage's suits (#5032)
Cover them wings
2025-12-31 12:37:18 -06:00
Delta-V bot 85298e7a9e Automatic changelog update 2025-12-31 19:37:11 +01:00
Dorragon 193fb89c62 Xenovent event changes (#5008)
* We are so back xisters

* Change parent order instead of adding suffix to everything
2025-12-31 12:36:51 -06:00
Delta-V bot 057ff427b4 Automatic changelog update 2025-12-31 19:36:05 +01:00
810d9616aa Add enabled version of atmos pumps, filters, and mixers (#5015)
* Add enabled version of atmos pumps, filters, and mixers

* spaces

* Comment and move entities to _DV

* Update Content.Shared/Atmos/Components/GasPressurePumpComponent.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>

* Update Content.Shared/Atmos/Piping/Binary/Components/GasVolumePumpComponent.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>

---------

Signed-off-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-31 12:35:45 -06:00
Tobias Berger 77328e58e3 less stupid stale workflow (#5046) 2025-12-31 12:34:37 -06:00
Delta-V bot 712ca2b283 Automatic changelog update 2025-12-31 19:33:23 +01:00
Halo3moth 897afe1786 Give energy shotgun back self recharge (#5070)
* Update battery_guns.yml

Gave it back its recharge god bless

* Should fix the yml fail?
2025-12-31 12:33:03 -06:00
Delta-V bot 6354c6df77 Automatic changelog update 2025-12-31 19:27:53 +01:00
MD360 9a1dafde3c Renamed 4 job plushies. (#5088)
Renamed 4 plushies.
2025-12-31 12:27:34 -06:00
Delta-V bot f5d157c1bf Automatic changelog update 2025-12-31 19:22:43 +01:00
dge21 25e5934b04 Remove crate Melting (#5050)
Update crates.yml

more tampering

Signed-off-by: dge21 <129136517+dge21@users.noreply.github.com>
2025-12-31 12:22:23 -06:00
Delta-V bot ed20f2e03b Automatic changelog update 2025-12-31 07:52:48 +01:00
Field Command 896403da6f Pebble fixes (#5041) 2025-12-31 00:52:28 -06:00
Delta-V bot 2284596a5c Automatic changelog update 2025-12-31 07:50:44 +01:00
Field Command 1f99ab9328 Byoin: Festive time is over. (#5039)
Festive time is over
2025-12-31 00:50:25 -06:00
Delta-V bot 7c87a1ae80 Automatic changelog update 2025-12-31 07:48:55 +01:00
biddygelson 348ad6c50a Academy/1.4.0 (#5036)
* * Removed festivities, but still cold out there.
* Fixed robo doors, no more AA.
* Moved E-light in sec hall so is on wall rather than window.
* Replaced intercom in public lawyer office for justice intercom.
* Fixed power in surgeon's hallway
* Fixed psych's maint door to be psych only.
* Added IPC/Borg Medbay in Robotics
* tweaks to ordering in prototype, no changes.

* * tweaked cargo dock for compliant dock, conveyance button, and space for loading/unloading.
2025-12-31 00:48:35 -06:00
Vanessa 14d7977967 Fixed QM mantle. (#5082) 2025-12-30 18:29:44 +00:00
Delta-V bot dd41ad91dc Automatic changelog update 2025-12-30 18:40:03 +01:00
Tobias Berger 69bb5e3ab9 Fix grinder items not being reduced (#5080) 2025-12-30 17:39:44 +00:00
VelcroboyandVelcroboy 41ad4d9269 Fix DV Warp Points (#5060)
* Fix DV Warp Points

* Ghost only on evac

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-30 17:34:23 +00:00
Delta-V bot c233d7ae9e Automatic changelog update 2025-12-30 17:32:13 +01:00
Tobias Berger 6f42855947 Fix #5054 (#5065) 2025-12-30 10:31:53 -06:00
Delta-V bot 6b4b0c74f1 Automatic changelog update 2025-12-30 17:28:52 +01:00
Vanessa 82445918d5 Various Upstream Merge Fixes (#5066)
* Moved migrations to DV migration file.

* Buffed jug size. Oops.

* Removed time requirement from mantles.

* Added missing static packs from fabs
2025-12-30 17:28:33 +01:00
Delta-V bot 0cbd9cbeeb Automatic changelog update 2025-12-30 14:24:23 +01:00
VelcroboyandVelcroboy be356fea82 Fix curtains colliding with other structures (#5053)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-30 07:24:03 -06:00
BarryNorfolk 88bb7fbc7f Add missing syndi states for commander/operative (#5074) 2025-12-30 12:58:12 +00:00
Delta-V bot ae682678e3 Automatic changelog update 2025-12-30 13:57:23 +01:00
Tobias Berger 54c85ec1ce Reparent DV prescription glasses (#5067)
Fixes #5055
2025-12-30 06:57:04 -06:00
Delta-V bot 0799b8edd4 Automatic changelog update 2025-12-30 03:02:07 +01:00
PureBreadBagel 96badc9897 Guidehotfix (#5058)
* Update OrganManipulation.xml

* no more taser!

* Hotfix! xml doesnt like my comments

* more fixes

* Ouchies.

* fixed an error

* fixes indentation

* im bad at commenting

* Thanks toby
2025-12-30 02:01:47 +00:00
Delta-V bot 457caf0c38 Automatic changelog update 2025-12-29 22:44:04 +01:00
Tobias Berger 2025891fc2 Upstream Merge Changelog Fix (September/October Edition) (#5051)
* This vexes me

* Extra fixes for https://github.com/space-wizards/space-station-14/pull/41119

* Missing upmerge CL (here's hoping)

* Remove stray BOM
2025-12-29 22:43:44 +01:00
Tobias Berger d7c803747d Merge pull request #4962 from DeltaV-Station/upstream-merge-september
Upstream Merge (September and October 2025)
2025-12-29 22:03:23 +01:00
Tobias Berger 140179175c Formatting 2025-12-29 21:45:03 +01:00
Tobias Berger fd3c82c38b Extra _DV fixes for https://github.com/space-wizards/space-station-14/pull/40955 2025-12-29 21:44:55 +01:00
Tobias Berger 0f1076ab4c Rename DefaultEmpDamage 2025-12-29 21:43:45 +01:00
Tobias Berger de6b43b069 Extra _DV fixes for https://github.com/space-wizards/space-station-14/pull/39124 2025-12-29 21:43:45 +01:00
Tobias Berger 625d27fd7a Extra _DV fixes for https://github.com/space-wizards/space-station-14/pull/39848 2025-12-29 21:43:34 +01:00
Vanessa 77db8f6722 Added Imp comment to namespace in Rev code. 2025-12-29 14:19:33 -06:00
Vanessa 33677d5b6b Reverted DeltaV-specific ID computer code. Fixes new Grant/Revoke buttons. 2025-12-29 14:16:27 -06:00
Vanessa f326bd3014 Got rid of preloaded grids. Fixed custom shuttles in upstream files. 2025-12-29 12:16:01 -06:00
SlamBamActionman f4240bc373 [Staging] Fix certain projectiles moving faster than intended (#41905)
Return to original value (25)
2025-12-29 11:57:33 -06:00
Vanessa af915ce4fe Reverted KFV ashing value to upstream's damage value. 2025-12-29 11:43:41 -06:00
Vanessa cf76599616 Early merge of #42158. Fixes medibots. 2025-12-29 11:41:54 -06:00
Vanessa 9835041bbb Updated the changelog orders. 2025-12-29 11:41:53 -06:00
Vanessa b9ecad60e6 Added the the revert check to BodySystem's check-if-polymorphed logic 2025-12-29 11:39:38 -06:00
Vanessa b5a2bc243c Added jet injectors to the guidebook. 2025-12-29 11:39:38 -06:00
Vanessa faf16d0c99 Removed the rest of UnsafeOilEffects for Deepfryer because it has never worked appearently. 2025-12-29 11:39:38 -06:00
Vanessa c501daa23d KFV went out of business. 2025-12-29 11:39:38 -06:00
Vanessa a3ccb2eb85 Missing DeltaV comment. 2025-12-29 11:39:38 -06:00
Vanessa 3e20796126 Comments. 2025-12-29 11:39:38 -06:00
Vanessa b6e104a49f Removed HarpySquishes since its not used. 2025-12-29 11:39:38 -06:00
Vanessa ee09eb21a2 Early merge of typo-fix (#41652) 2025-12-29 11:39:38 -06:00
Tobias Berger c9cea03ad8 Update nix dev env (#41886)
Update flake
2025-12-29 11:39:38 -06:00
Vanessa 3812e77da3 Added shotgun drums back to the techfab due to #5014 2025-12-29 11:39:38 -06:00
Vanessa 14a91a0132 Updated damage namespaces in Mail system 2025-12-29 11:39:38 -06:00
pre-commit-ci[bot] 2150807060 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-12-29 11:39:38 -06:00
Vanessa bab31f5f0b Fixed secborgs in the robotics console. 2025-12-29 11:39:38 -06:00
Princess CheeseballsandPrincess Cheeseballs 8165753e1a Remove remote detonation/disable from the robotics console. (#41834)
End the war

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:37 -06:00
chromiumboyandScarKy0 10aaed5b48 Station AI ghost role (#40607)
* Initial commit

* API

* review

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
2025-12-29 11:39:37 -06:00
pre-commit-ci[bot] 640c9ef974 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-12-29 11:39:37 -06:00
Vanessa 8ca30a135d Added playtime trackers for pet roles that have playtime requirements. 2025-12-29 11:39:37 -06:00
pre-commit-ci[bot] 069a1e4064 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-12-29 11:39:37 -06:00
Vanessa 0ba6dddb77 Buildable SmartFridge fixes. 2025-12-29 11:39:37 -06:00
Vanessa 360ab9f648 Migrated ERT and pet playtimes to job roles. 2025-12-29 11:39:37 -06:00
Vanessa 4a5764d672 Added an accessible override event to BodyPart to allow surgery to work again. 2025-12-29 11:39:37 -06:00
Vanessa 69504f97ec Revert "Can't crawl over counters (#40099)"
This reverts commit 01a7fc66f0.
2025-12-29 11:39:37 -06:00
Vanessa b5412c8df8 Hopefully fixed a persistant shitmed error that keeps popping up because it cannot re-parent an entity's grid 2025-12-29 11:39:37 -06:00
Princess CheeseballsandPrincess Cheeseballs 29fa901a85 Make Nutriment Work again. (#40869)
Fix nutriment

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:37 -06:00
Vanessa 1e66b9d05e Various unit test fixes. 2025-12-29 11:39:37 -06:00
Vanessa d4393aaf11 Added portafibs back to medical belts. 2025-12-29 11:39:37 -06:00
pre-commit-ci[bot] 137264c756 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-12-29 11:39:37 -06:00
Vanessa c345039934 Added a dummy component for BombingTarget for mapping compatibility. 2025-12-29 11:39:37 -06:00
Vanessa bcad4d5615 Updated upstream changelog. It's mostly correct. 2025-12-29 11:39:37 -06:00
Sir WarockandPrincess Cheeseballs 7a607871b9 Add jet injectors (#40076)
* Added Jet Injectors

* Small fixes

* YML Linter fix

* Requested Adjustments

* Better Sprites for the Jet Injector

* Actually forgor to give credit

* Fix merge conflicts and refactor

* Undo Oversight

* Introduction of Advanced Jet Injectors

* minor oversight

* Adhere to requests

* Remove Loadout, add Lockers

* harder better faster stronger

* vend shortage

* Sound effect

* will this work or do I just gotta choose one at random???

* alright fine I'll do it this way

* quiet the hissing, raise the pitch

* Merge new sprites

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:37 -06:00
pre-commit-ci[bot] 798e6ca4cc [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-12-29 11:39:37 -06:00
Vanessa 51e67002c2 Re-enabled deep fryers 2025-12-29 11:39:36 -06:00
Vanessa 7b5444ed37 Addtional YAML fixes from upstream merge changes 2025-12-29 11:39:36 -06:00
Leon Friedrich e77c193fe5 Remove StressTestMovementComponent (#40993) 2025-12-29 11:39:36 -06:00
Vanessa 43a4db57d3 Upstream merge cleanup 2025-12-29 11:39:36 -06:00
Vanessa 232cf8b5e0 Various fixes to DV-specific Battery systems. 2025-12-29 11:39:36 -06:00
slarticodefastandArtisticRoomba 7b8038df14 Cleanup BatterySystem (#41298)
* cleanup

* fix fixtures

* this belongs into the next PR

* review

* misc

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-12-29 11:39:36 -06:00
Vanessa 80f4492e41 Re-added action system to Rev system for Imp changes. 2025-12-29 11:39:36 -06:00
Princess CheeseballsandPrincess Cheeseballs 74cc4bc12c Conveyors spin fix (#37468)
* Init commit

* And on the third day god said: good enough

* and on the fourth day god said: oops

* Commit of evil

* I hate conveyors

* Switch the numbas

* I hate conveyors

* Master Merge

* And on the third day, God said: Good Enough

* I hate conveyors

* AAAA

* Optimize it a bit

* Move that

* Init Commit

* Oops

* Remove that

* One last commit

* Removed one TryComp

* Remove TryComp

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:36 -06:00
Hitlinemoss 70004b2fb2 Golden plunger + security star(s) moved to job trinkets loadout tab (#41094)
* Golden plunger + security star(s) moved to job trinkets loadout tam

* Fixed being unable to pick both job-plushie and the plunger/star at the same time

* Whoops, forgot to commit the bartender fix

* SecStar playtime baked into prototype itself

* Removed increased job-trinket limit (likely bad to hardcode these for very specific roles)
2025-12-29 11:39:36 -06:00
Justin Pfeifler 83d4239d5f Gravity Generators cannot be unanchored while active (#41256)
* Add unanchor attempt check

* Combine shared component and server component

- Combines SharedGravityGeneratorComponent and GravityGeneratorComponent
- AutoNetworked the GravityActiveBool

* Remove SharedGravityGeneratorComponent

* Update to SharedGravityGeneratorComponent

* Fix to be a complete sentence

* Dirty GravityActive whenever changed

* Rename component and remove view variables

* Update referenced component name

* Move unanchor attempt to shared system

* Add client system

* Revert popup to PopupEntity

* Fix popup to be PopupClient

* Set access restriction on GravityActive
2025-12-29 11:39:36 -06:00
Princess CheeseballsandPrincess Cheeseballs db1f32c9e6 Fix Entity Effect Scaling (Hopefully) for good and some other misc fixes (#41163)
* Fix the last of the entity effects bugs

* aaa

* losing it

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:36 -06:00
chromiumboy 2b3d4a4d9f Gas analyzer fix for gas pipe manifolds (#41325)
Initial commit
2025-12-29 11:39:36 -06:00
JesterX666andslarticodefast 636085892c Log radial menu interractions for the RCD, Issue #40902 (#40986)
* Log radial menu interractions,  Issue #40902

* code review adjustement

* Asked modifications from code review

* Update Content.Shared/RCD/Systems/RCDSystem.cs

Yeah, I'm old and using a very old C# syntax :D  I need to update my brain

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Shared/RCD/Systems/RCDSystem.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:36 -06:00
eoineoineoin f5129aa9dd Fix changelog button always indicating new changes. (#41277)
* Refresh changelog button when ServerId is changed

* Listen to specific cvar being changed
2025-12-29 11:39:36 -06:00
Kittygyat 75b4d9e18b Fixed several unintended burn groupings with the untrained bible use & clumsy gun explosion (#41307)
Fixed several unintended burn groupings
2025-12-29 11:39:36 -06:00
Centronias db3d2a81c2 Make bleach a better space cleaner (#41276)
* make bleach a better space cleaner

* imagine me cherry picking just the first bad commit and then totally forgetting there was a second commit lel
2025-12-29 11:39:36 -06:00
UpAndLeavesandArtisticRoomba b792068a0b Move TileFireEvent to Shared (#41285)
* Move to shared

* cleanup

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-12-29 11:39:36 -06:00
ArtisticRoomba fc1bc7b722 Document Atmospherics Hotspot (#41283)
* hotspot partial docs

* Finalize docs
2025-12-29 11:39:36 -06:00
Connor Huffine e18f1cdfd9 Clean up implanter player guides (#41268)
Remove references to rags cleaning DNA
2025-12-29 11:39:36 -06:00
ScarKy0 e676fbb187 Clone toolshed commands (#41261)
* init

* fuck this file its such a mess why wont anyone sort this holy shit

* review
2025-12-29 11:39:36 -06:00
LukaSladeandāda 2bd664ac19 Voice Sensor Item (#41098)
* Voice Signaler can be Linked

* Fixes and Balancing

* a space has officially been added

* thinmfg

* things

* finalized everything I think?

* fixed??

* actually commit please (imagine this fixes everything im gonna cry)

* new fix

* Update Resources/Prototypes/Entities/Objects/Devices/Electronics/misc_linking_utilities.yml

added as per review

Co-authored-by: āda <ss.adasts@gmail.com>

* connection range from 25 to 15

* Renamed state from 'voice' to 'icon'

* Change state from 'voice' to 'icon' in YAML

* removed comma from voicesensor sprite yml

* Modify defaultLinks for Trigger source port

Updated defaultLinks for Trigger source port.

* Changed PNG name from voice to icon

* Removed G menu recipe and added autolathe recipe

* Fixed test fail

* removed empty line

* removed another line

* removed extra lines in meta.json

* test commit to rerun tests

---------

Co-authored-by: āda <ss.adasts@gmail.com>
2025-12-29 11:39:35 -06:00
slarticodefastandScarKy0 1586ae2306 Add DNA injector (#41271)
* add item

* Update Content.Shared/Changeling/Systems/ChangelingClonerSystem.cs

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>

---------

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
2025-12-29 11:39:35 -06:00
ArtisticRoomba f00f084e8b Document Atmospherics ExcitedGroups (#41269)
Document ExcitedGroups
2025-12-29 11:39:35 -06:00
ādaandiaada 832f9ac258 Remove unused tags (#41265)
* the letter R

* the letter S

* extras

* the letter T

* the letter U

* the letter V

* the letter W

* the final letter ( X )

* the easy ones

* Unused b and c

* unused d

* unused G

* unused I

* unused K

* un used m and p

* the letter R

* unused T

* un used W

* re-add heavy rifle, document magazines

* final alphabet

* Merge remote-tracking branch 'upstream/master' into work/tag-nuke

* delete haunted

* Revert "delete haunted"

This reverts commit 870d782f7d97a1d7cb34cd14a288cc0cd0299cce.

* mistake

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:35 -06:00
ArtisticRoomba 9b3c84e271 Cleanup and document TileAtmosphere (#41254)
* Cleanup and document TileAtmosphere

* superconduction
2025-12-29 11:39:35 -06:00
ArtisticRoomba e52239050b Cleanup and document AirtightData/MonstermosInfo (#41258)
cleanup and document airtightdata/monstermosinfo
2025-12-29 11:39:35 -06:00
Vanessa b0d80e7471 Cloning fix 2025-12-29 11:39:35 -06:00
Connor Huffine 255430c4d9 Remove warning from CloningPodSystem (#41246)
* Change raw string to protoId

* Address comment
2025-12-29 11:39:35 -06:00
Leon Friedrich ac2c936f6d Improve CreateDeleteCreateTest failure messages (#40996)
* Improve CreateDeleteCreateTest failure messages

* nameof
2025-12-29 11:39:35 -06:00
Hannah Giovanna Dawson eeaf32a410 Migrate random shuttle events to load dynamically (#40326) 2025-12-29 11:39:35 -06:00
Hitlinemoss ab8deb4839 Assorted tweaks to towel trinkets (#39831)
* Added tactical katana + tactical katana shipment (placeholder descriptions)

* Revert "Added tactical katana + tactical katana shipment (placeholder descriptions)"

This reverts commit aa1928be7f4d938df1838943781e63c47a03cc11.

Whoops, committed to master by mistake

* Cleaned up trinket menu

* Fixed dark green towel clothingVisuals color values

* Sorted towels by color

* Undo move of candles

* Sorted towels by actual HSV Hue value

* Remove 10h playtime requirement from white towels

* Removed cheap lighter from PR
2025-12-29 11:39:35 -06:00
Justin Pfeiflerandslarticodefast 3a193e6933 Edible Chameleon Clothing (#41232)
* Remove ignore for WhitelistChameleon tag

* Add correct tags to chameleon clothing

* Apply suggestions from code review

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:35 -06:00
SlamBamActionman c6f98a3008 Fix walls and other unanchorable objects being unanchored by the G.O.R.I.L.L.A gauntlet (#41219)
* Initial commit

* Review fixes

* Bitwise? Yeah my wisdom score is a 10

* Review comments
2025-12-29 11:39:35 -06:00
Leon Friedrich 21a4b9ba8e Fix note heisentest (#41244) 2025-12-29 11:39:35 -06:00
Connor Huffine b8cd376ea7 Update SolutionRoundingTest.cs (#41238) 2025-12-29 11:39:35 -06:00
Connor Huffine ea266c5f40 Remove unused dependency (#41231) 2025-12-29 11:39:35 -06:00
Connor Huffineandslarticodefast c780a6baf9 Remove some warnings generated by SolutionTests (#41194)
* Add indirection

* Address feedback

* const

* VSC trolled me

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:35 -06:00
eoineoineoinandslarticodefast b9673cc7d9 Borg module action QOL: put module name into tooltips (#38750)
* Borg module action QOL: put module name into tooltips

* Fix tests

* Tidy up component lookups

* formatting

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:35 -06:00
Princess CheeseballsandPrincess Cheeseballs cd6a041c0a Make CuffableComponent and CuffableSystem not Crash (Hopefully) (#39123)
* This system is ancient

* Destroy that API

* Address reviews

* Destroy merge conflicts from orbit

* seems to work fine

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:35 -06:00
slarticodefastandArtisticRoomba 98540ecbe7 Allow InteractionTests to load other maps (#41226)
* load maps and marker

* cleanup

* sneaky doc

* sneaky doc2

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-12-29 11:39:34 -06:00
NoreUhhandNoreUhh 059f74cfbe Add 2 New Reagents (Felinase and Caninase) (#41136)
* Flavors, Flavor Profiles, Reagent Text

* Base Reagent and Mix reaction

* Borkinase, flavor stuff

* Final touches me thinks

* Comment out shit

* Update fun.yml

removed comments

* Update fun.yml

Increased output for borkinase and felinase

* explosive reaction

creates razorium when mixed and makes a radioactive explosion. screaming explosion funny!!!

* reagent descriptions

updated em

* chem is no longer nuclear bomb

* remove tile-break scale

* recipe change

done through web view dont kill me im lazy

* removed cellular, halved rads

done through web again, dont end me thanks

* updated locale to reflect name change

* updated reagent to reflect name change

* updated reactions to reflect name changes

---------

Co-authored-by: NoreUhh <noreuhh@gmail.com>
2025-12-29 11:39:34 -06:00
Connor Huffine 4e8cef60a4 Remove unused dependencies (#41213) 2025-12-29 11:39:34 -06:00
Connor Huffine 869e2d350f Remove double includes (#41211) 2025-12-29 11:39:34 -06:00
ArtisticRoomba e2c40e78b9 Atmospherics Substepping (#40465)
* initial shitcode commit

* command boilerplate

* command flushed out and docs fixes

* missed one important thing in method extraction

* do loc properly

* rest later

* address review

* this worked on my laptop but not on my desktop but okay

* review comments

* address review
2025-12-29 11:39:34 -06:00
Errant e234864fa3 Fix for Tesla Twins Miniboss (#41199)
* increase QA standards on the Tesla Generator production line

* comment

* Inert datafield and code

* I'm not even supposed to be here today
2025-12-29 11:39:34 -06:00
Vanessa 99def04bbe Fixed chitnid alcohol processing. 2025-12-29 11:39:34 -06:00
Super 0880b80bd1 Add multi-job exclusion support to objectives, and add more appropriate job restrictions to certain thief objectives. (#40065)
* multi exclusion!

* quick correction

* migrate all job: fields to jobs fields to avoid test fails. breaking change!!!
2025-12-29 11:39:34 -06:00
Kryyto 407256a93c Add a new gas React() benchmark (#41202)
* Add a new gas React() benchmark

* fix the iteration amount to 100, remove unused using

* fix the iteration amount to 1000
2025-12-29 11:39:34 -06:00
Connor Huffine 6b2d64268f Remove inaccessible code (#41209)
Remove false check
2025-12-29 11:39:34 -06:00
Connor Huffine 263c09a67a Remove unused includes in Ninja (#41207)
* Remove Unused

* Additional cleanup
2025-12-29 11:39:34 -06:00
eoineoineoin c6e799b949 Fix client crash in MeleeWeaponSystem (#41121)
Avoid crash when animating deleted entity
2025-12-29 11:39:34 -06:00
ādaandiaada 42c6edacd4 Fix all ignored recipes in material arbitrage (#41134)
* lights

* drink glasses

* vial chem bottle

* plates n stuff

* boards

* airtank

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:34 -06:00
104eb4b066 General touchups to antagonist flavor text (#41184)
* General touchups to antagonist flavor text

* Update Resources/Locale/en-US/game-ticking/game-presets/preset-wizard.ftl

* Update Resources/Locale/en-US/game-ticking/game-presets/preset-wizard.ftl

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
2025-12-29 11:39:34 -06:00
Connor Huffine be2f58dae0 Readd CutWireVariationPass with Cvar (#41191)
* Readd CutWireVariationPass

* Add Cvar to disable cutwirevariationpass

* Revert "Add Cvar to disable cutwirevariationpass"

This reverts commit c8dab794a523a27385f6144ab09e99d19fc02c24.
2025-12-29 11:39:34 -06:00
kosticia 3d7b83c5e5 fix typo in migrations (#41203)
aaaaaa
2025-12-29 11:39:34 -06:00
Connor Huffine 89c0210986 TemperatureSystem Base Class Initialization (#41196)
Add base class initialization
2025-12-29 11:39:34 -06:00
Connor Huffine 61ee871453 Remove warnings in Pow3r (#41195)
Refactor obsolete methods
2025-12-29 11:39:34 -06:00
Errant 3da6f2eadf Remove the remaining CheckButtons (#41073)
remove CheckButtons
2025-12-29 11:39:34 -06:00
Errant bfd25ba11e Rules tab in changelog (#40257)
* add Rules tab to changelog

* rules clear

* make Entries the last field, to reduce merge conflicts for all future edits in these files

* update date

* comment

* This was a nice dream, but it turns out SS14.Changelog just bulldozes it anyway

* update date
2025-12-29 11:39:34 -06:00
rumaks 95393679fa Fix the ethanol guidebook entry (#41192)
change liver metabolism rate to 1
2025-12-29 11:39:34 -06:00
rumaks aed96bb4fe Change the recipe for licoxide to not require lead (#40991)
change licoxide recipe
2025-12-29 11:39:33 -06:00
SnappingOpossum 1104ad85b7 Allow pacifists to use disabling modes of energy magnum and energy shotgun (#41029)
Pacifists can stun with emagnum and eshotgun
2025-12-29 11:39:33 -06:00
Sir Warock d1f545a047 Widen Ammo UI (#40570) 2025-12-29 11:39:33 -06:00
kosticiaandPrincess Cheeseballs b49f9adc86 Rename kira special to the orange-lime soda (#41167)
* rename kira

* these one too

* migration

* Revert "migration"

This reverts commit ae0006ef745909c2e17b37fd18fd1d57204fe773.

* Revert "these one too"

This reverts commit 9757d2cf6898719b158e03c0f3b637cd2b55ce17.

* Revert "rename kira"

This reverts commit 170408c6f7486a6746b7a7c52cf10c597ead2608.

* bless the emo

* aaaaa

* time to end this right here and right now

* Revert "time to end this right here and right now"

This reverts commit b2c38573f9f8b5e8f736443d646d26839a0694cf.

* Revert "aaaaa"

This reverts commit 0f9451e22533b2f646211219e04103ce16d952ca.

* Revert "bless the emo"

This reverts commit 223607accf81e286481cab8d1037b1eb89a44dac.

* rename

* bikeshedding

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:33 -06:00
Princess CheeseballsandPrincess Cheeseballs 7ab349682f [Hotfix] Fix Phalanx (#41170)
feex

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:33 -06:00
Princess CheeseballsandPrincess Cheeseballs f5686383ba [HOTFIX] Fix status effect removal from entity effects and buckets not being draggable (#41168)
just do less work it's that easy!

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:33 -06:00
emberwinters 8c80382feb Diphenhydramine drowsiness maximum fix (#41169)
Update medicine.yml
2025-12-29 11:39:33 -06:00
TheGrimbeeper 74c5aa098d Xenoartifact: Fix phasing effect (#41160) 2025-12-29 11:39:33 -06:00
scrivoy 4802be7dc4 Resprite and refactor wall dispensers (fuel, cleaner) (#36251)
* resprite fuel and cleaner walldispenser

* added sprites and moved walldispensers in own .rsi

* forgot to remove sprites in old location

* meta.json - use 4 spaces instead of 2

* moved reagent from food to tank container

* clean up code inheritance

* replace static sprites with layered sprites and update related code

* added BaseDispenser for shared logic across dispensers

* make BaseDispenser unspawnable

* Add Explosive and PacifismDangerousAttack to FuelDispenser for consistency with WeldingFuelTank

* moved the sprite one pixel down

* reset wall_dispensers.yml to master

* rename sprite states, remove unused sprites, bring back code changes after merge

* really remove every unused sprite

* add maxVol

* indent to 4 spaces

* cleanup

* remove pepper dispenser

* switch to shared fill level sprite
2025-12-29 11:39:33 -06:00
Hitlinemoss 220db6c822 More-generic bar flask name/description (#41144)
More generic bar flask name/description
2025-12-29 11:39:33 -06:00
sleepyyapril fa8516ea1b Discord Command Arguments as List (#41113)
* start (i got distracted)

* feat: list-based arguments for the discord implementation

* chore: unnecessary?

* chore: rename ArgumentList to Arguments

* fix: rename error

* chore: todo

* fix: error, again. I'm silly.

* chore: review

* *sound of flames*
2025-12-29 11:39:33 -06:00
Princess CheeseballsandPrincess Cheeseballs ca58cdbec4 Fix chemical explosion scaling. (#41153)
Fix area reaction scaling

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:33 -06:00
Atakkuandāda f05d3f9220 Implemented parenting and minimum default for loadout groups (#40861)
* Implemented parenting and minimum default for loadouts

* Fix a mistake

* Apply suggestion from @iaada

Co-authored-by: āda <ss.adasts@gmail.com>

* Implement @iaada's suggestion to rename MinDefault to DefaultSelected

* happy little accidents

* Moved Parents and Abstract fields to under ID, added inheritdoc

---------

Co-authored-by: āda <ss.adasts@gmail.com>
2025-12-29 11:39:33 -06:00
Vanessa 1dc29c9e32 Literally all of the damageable system refactor shitmed fixes. 2025-12-29 11:39:33 -06:00
Hannah Giovanna DawsonandPrincess Cheeseballs bd98b9212b Update DamageableSystem to modern standards (#39417)
* Update DamageableSystem to modern standards

* DamageContainerId -> DamageContainerID with lint flag

* Replace strings with protoids

* Make CVar subscription declarations all consistently whitespaced

* ChangeDamage -> TryChangeDamage, cope with C# jank

* Revert event signature changes

* Restore a comment

* Re-add two queries

* Init the queries

* Use appearanceQuery in DamageChanged

* Use damageableQuery in TryChangeDamage

* Use damageableQuery in SetDamageModifierSetId

* Final cleanup, fix sandboxing

* Rectify ExplosionSystem:::ProcessEntity's call to TryChangeDamage

* Re-organize DamageableSystem

* first big fuck you breaking change.

* THATS A LOT OF DAMAGE!!!

* Fix test fails

* test fixes 2

* push it

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:33 -06:00
metalgearslothandSlamBamActionman 6a8e307679 Double bullet speeds (#34971)
* Double bullet speeds

The only reason we had it at 20m/s was tunneling reasons.

The quick maths is (BodyA size + BodyB size) / frametime. Currently the game is doing substepping AFAIK so we can use 0.016 as the frametime therefore with a 0.40 width body we can get up to 40.625 (assuming the target is no narrower than 0.25 which given my thindows change last year should be a decently safe assumption).

* Fix

* Fix impact visuals, as they overshoot otherwise

* Revert changes

---------

Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
2025-12-29 11:39:33 -06:00
Vanessa 4530e78e86 Add jet injectors (#40076) 2025-12-29 11:39:33 -06:00
Vanessa 504aecba37 More fixes. 2025-12-29 11:39:32 -06:00
Nemanja 2429e7b6b4 fix singulo decay (#28743) 2025-12-29 11:39:32 -06:00
Vanessa fc1d452e39 Various upstream tweaks and fixes. 2025-12-29 11:39:32 -06:00
lzk 3458075a14 make water cup spill when worn (#41148) 2025-12-29 11:39:32 -06:00
eoineoineoin 6d9a34415f Move Monotone button, checkbox styles out of StyleNano and into sheetlets (#41120) 2025-12-29 11:39:32 -06:00
Pieter-Jan Briers b738d805a9 Nanotrasen is a word (#41124) 2025-12-29 11:39:32 -06:00
03cdc0f9f2 Document tags: M-Q (#41141)
* the letter M

* the letter N

* the letter O

* the letter P

* the letter q

* Update Resources/Prototypes/tags.yml

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:32 -06:00
ArtisticRoombaandslarticodefast 33002e7485 DeltaPressure Predicted Examine (#41135)
* predicted examine

* atrociously satanic

* do it right this time

* deltafields aren't necessary

* Update Content.Server/Atmos/EntitySystems/AtmosphereSystem.DeltaPressure.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:32 -06:00
sleepyyapril 9965777d04 Fix TryProccessRadioMessage Typo (#41139)
fix proccess typo
2025-12-29 11:39:32 -06:00
16f205b75d Damageable/Destructible Benchmarks (#41064)
* the fard

* oomba

* The woke swarm...

* Review

* review

* Apply suggestions from code review

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:32 -06:00
beck-thompson a788927cea Admin alerts now link players with tpto (#40472)
* Admin alerts now link players with tpto

* Add coords

* Slarti tweaks!

* He saw my minor spelling mistake - its over...
2025-12-29 11:39:32 -06:00
ThatGuyUSA c5bb4668f7 Fixes .50 Uranium projectile sprite (#41068)
* 'fixed' .50 uranium displaying what it was set to

* Changed depleted-uranium to uranium
2025-12-29 11:39:32 -06:00
HuaqasandSouthbridge b71726aae4 Add Crazy Lube to the Toy Box. (#36292)
* Add crazy lube to the toy box.

* Decrease volume from 100u to 60u.

* Bring it back to 100u now lube evaporates.

* 4 space indent

Co-authored-by: Southbridge <7013162+southbridge-fur@users.noreply.github.com>

---------

Co-authored-by: Southbridge <7013162+southbridge-fur@users.noreply.github.com>
2025-12-29 11:39:32 -06:00
TheGrimbeeper 1463a83a82 Xenoartifact: Fix teleport effect (#41049)
* Fix teleport effect

Fix teleport effect, teleporting the artifact instead of the node. Also fix the popup happening twice.

* Detach from parent

* Resolve popup

* fix pulling issue

* Fixed via joint system instead of pulling system

* artifact

* requested changes
2025-12-29 11:39:32 -06:00
ArtisticRoomba c035f3bd8b Fix DeltaPressure serialization spam (#41131)
* Fix DeltaPressure serialization spam

* Add TODO
2025-12-29 11:39:32 -06:00
Kyle Tyo 853fda5af2 Remove IsFirstTimePredicted from Ninja systems (#41127)
commit
2025-12-29 11:39:32 -06:00
psykana 7b39355168 Internals: prioritize gas tanks over jetpacks (#35068)
* Internals: prioritize gas tanks over jetpacks

* Use HasComp
2025-12-29 11:39:32 -06:00
slarticodefast f7b1de8255 remove a bunch of redundant IsFirstTimePredicted checks (#41119) 2025-12-29 11:39:32 -06:00
Errant 2f9731cfc9 Set newplayerthreshold cvar for the development serverconfig (#41099)
add ahelp newplayer threshold default to the dev configuration
2025-12-29 11:39:32 -06:00
Princess CheeseballsandPrincess Cheeseballs de5bdbc2f4 Fix eating the whole stack of uranium. (#41092)
* I hate stack system!!!

* a lil bit of fixing, as a treat

* humgry

* mmm burger

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:32 -06:00
3901ea4d56 [STAGING] Remove Wizard Roundstart Antag (#40983)
* 1984 the wizard

* this is better actually

* disable wiz preference

* add code comment

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:32 -06:00
slarticodefast d2331ae65c Hotfix: Not all pens embed, exploding pens embed when activated (#41105)
* Revert "All pens embed (#39104)"

This reverts commit 3c1982a85f.

* only activated pens embed

* fix disembedding during prediction
2025-12-29 11:39:31 -06:00
Hitlinemoss d813816007 Backend vault-freezer cleanup (#41097) 2025-12-29 11:39:31 -06:00
beck-thompson 482235dbfd Fix the pin texture not rendering (#41093) 2025-12-29 11:39:31 -06:00
70f775fd8e Purges uses of TransformComponent.Coordinates.set (#34937)
* ECS-TransformComponent-Coordinates
Moves over all uses of the setter to use SharedTransformSystem.SetCoordinates instead

* revert unrelated change

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:31 -06:00
ad4f64fcd6 Stack System Cleanup (#38872)
* eye on the prize

* OnStackInteractUsing, TryMergeStacks, TryMergeToHands, TryMergeToContacts

* namespace

* Use, get count, getMaxCount

* component access

* add regions, mark TODO

* obsolete TryAdd, public TryMergeStacks

* GetMaxCount

* event handlers

* event handlers

* SetCount

* client server event handlers

* move to shared

* Revert "move to shared"

This reverts commit 45540a2d6b8e1e6d2a8f83a584267776c7edcd73.

* misc changes to shared

* split

* spawn and SpawnNextToOrDrop

* SpawnMultipleAtPosition, SpawnMultipleNextToOrDrop, CalculateSpawns, general server cleanup

* Rename Use to TryUse.

* Small misc changes

* Remove obsolete functions

* Remove some SetCount calls

* Partialize

* small misc change

* don't nuke the git dif with the namespace block

* Comments and reordering

* touchup to UpdateLingering

* Summary comment for StackStatusControl

* Last pass

* Actual last pass (for now)

* I know myself too well

* fixup

* goodbye lingering

* fixes

* review

* fix test

* second look

* fix test

* forgot

* remove early comp getting

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:31 -06:00
Centronias 88b2dcebc6 BaseSpawnEntityEntityEffect scales its spawned entities by default (#41091)
* make basically all entity spawning reactions scaling

* Intelligence
2025-12-29 11:39:31 -06:00
Princess CheeseballsandPrincess Cheeseballs e59a873ae6 Reduce Triggers Boilerplate. (#41086)
* Push 1

* cleanup + master merge

* launchontrigger

* A crumb of cleanup

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:31 -06:00
pre-commit-ci[bot] 460bcebc2e [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-12-29 11:39:31 -06:00
SlamBamActionman 612fd96d7d Fix a single vox jumpsuit displacement pixel (#41080)
fix displacement
2025-12-29 11:39:31 -06:00
Hannah Giovanna Dawson 4afd2fb05d LaunchOnTriggerComponent (#39871)
* LaunchOnTriggerComponent

Launches an object when a trigger on that
object is caused. The launch will be a certain
amount of force. The direction of the force
will be in the direction the object is facing.

* Fire stationary objects in the direction they're facing

* EVIL

* LESS EVIL

* Resolve @ScarKy0 comments
2025-12-29 11:39:31 -06:00
PicklOH bf945e5839 Space Carp are fireproof now (#40820)
Fish are more fireproof
2025-12-29 11:39:31 -06:00
Princess CheeseballsandPrincess Cheeseballs 6bdbcdfb36 Delete an Unused Event. (#41083)
delet

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:31 -06:00
Vanessa 90bd82213d Migrated all other FoodComponent references to Edible 2025-12-29 11:39:31 -06:00
a3db6f513b Delete FoodComponent, migrate prototypes to EdibleComponent (#41070)
* yml

* yml fixes

* cs

* document regression

* comment

* organs fix

* diona consistency

* push

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:31 -06:00
Nox 5e04a7ddb8 HOS & Warden Weapon Spawners (#40860)
* Added HOS weapon spawner

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

* Added a new file for the weapon spawns, added warden weapon spawner.

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

* Added offset to the spawners

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

---------

Signed-off-by: Nox38 <nebulousnox38@gmail.com>
2025-12-29 11:39:31 -06:00
beck-thompson 03bb462c58 PAIs will no longer get uplinks instead of traitors when a player is selected as an traitor (#41069)
* Fix bug, add logging

* Fixes
2025-12-29 11:39:31 -06:00
slarticodefast 355cf08d43 Fix wielding two-handed items with only one hand (#40966)
* fix

* review
2025-12-29 11:39:31 -06:00
MDuch369 b3fd980ae5 Gas recycler tweaks (#39212)
* allows gas recycler to be rotated

* Add Gas Recycler guide .xml

* Add Gas Recycler to engineereing guidebook yaml

* add loc

* add guide help component

* expanded guidebook entry

* recycler now can rotate pipe ports while keeping the rest in the same orientation

* guidebook edits

* added  teg arrows for recycler

* guidebook tweaks
2025-12-29 11:39:31 -06:00
Silverfur-underscore 2c2b50c277 Fixed Mime Lizard Plush going "weh" when colliding with something or being eaten (#41063)
* nulled EmitSoundOnCollide for mime job lizard plush

* Silenced edible sound
2025-12-29 11:39:30 -06:00
Moomoobeef 128674f542 Banana bread now shows up in the guidebook (#41047)
added banana bread to the correct group
2025-12-29 11:39:30 -06:00
Errant ce339498a6 Remove a code comment (#41052)
literally 1984
2025-12-29 11:39:30 -06:00
Princess CheeseballsandPrincess Cheeseballs 7d888e511d Mild Entity Effect/Condition Cleanup (#41059)
* Commit

* ploop

* borger

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:30 -06:00
Absotively 542447ec6a Hand labeler UI improvements (#40318)
* Populate and select label line edit on window open

* Widen hand labeller UI

* Add reset and clear buttons to hand labeler UI

* Add window resizing fix from https://github.com/space-wizards/space-station-14/pull/40322

* xaml cleanup, button grouping
2025-12-29 11:39:30 -06:00
Pieter-Jan Briers d81594171b Fix pre-round Discord ahelps showing incorrect round number (#41060)
Why was there a +1 ???
2025-12-29 11:39:30 -06:00
slarticodefast 7e6ee4afff Predict DestructibleSystem Part 2: First batch of entity effects (#41039)
* first batch

* fix name

* fix
2025-12-29 11:39:30 -06:00
08dfaf0dd5 Merge Injector & Hypospray Systems & Components (#41833)
* Merge Injector & Hyposprays

* Fixes

* Requested Changes

* Preview

* Inclusion of Prototypes

* Fix

* small oversight

* Further fixes

* A few more fixes & Bluespacesyringe buff

Co-Authored-By: āda <177162775+iaada@users.noreply.github.com>

* Final Commit, hopefully

* Merge conflict no more

* YML fix

* Add required changes

Co-Authored-By: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>

* cleanup warnings removal

* Bug fix & Maintainer Requests

Co-Authored-By: āda <177162775+iaada@users.noreply.github.com>

* Adhere to requested changes

Co-Authored-By: āda <177162775+iaada@users.noreply.github.com>

---------

Co-authored-by: āda <177162775+iaada@users.noreply.github.com>
Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:30 -06:00
Uberration 95cac43684 Fix: LockSystem - HasUserAccess - Set DenyReason Localization Text Properly (#41012)
* Update AccessReaderSystem.cs

Fixes #40987
Related to PR #40883

Set DenyReason in CheckUserHasLockAccessEvent when access is denied to display "Access denied." popup to users. Uses ??= to avoid overriding reasons from possible systems.

* RE-FIX: Localize default deny reason in LockSystem.HasUserAccess

The default deny reason was being passed as a localization key string instead of being localized before display.

* Re-added null coalescing operator

Per maint request
2025-12-29 11:39:30 -06:00
TheSecondLord 2a980af679 Toilet cistern stashes spawn containing basic loot (#41013)
* toilets can have maints loot as a treat

* reviews addressed

* nobody told me oasis maps a diamond ring in the toilet
2025-12-29 11:39:30 -06:00
SolidSyn 4e82c2b694 Changes Slippery Slope to not require a robe and hat for casting. (#41038) 2025-12-29 11:39:30 -06:00
Huaqas caa1f8f616 Remove reference to Velcro (#41032)
Velcro is a brand that is owned by a company that has lawyers. Lawyers are bad.
2025-12-29 11:39:30 -06:00
ToastEnjoyer 8e2c246308 added seclight to hos locker (#41031) 2025-12-29 11:39:30 -06:00
Absotively 4de470b7b6 Move ChemMaster buffer sort button out of transfer/discard button group (#41018)
* Move chemmaster buffer sort button out of transfer/discard button group

* Use margin for layout
2025-12-29 11:39:30 -06:00
JesterX666andslarticodefast 84d7c3d8cc Add Integration Testing for issue #40868 (#40972)
* Integration tests for hunger and thirst

* Adjustements after the code review comments

* cleanup

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:30 -06:00
b7febc7b35 Prevent freindly fauna node from spawning hostile mobs (#40979)
* "friendly"

* remove hostile mobs

* completely remove hostiles

* add hostile fauna

---------

Co-authored-by: Quasr <~182430031+quasr-9@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:30 -06:00
Princess CheeseballsandPrincess Cheeseballs b2f02e6eed Fix Being Drunk! (#41002)
* Drunk moment

* push

* fix test fails + a smidge of cleanup

* two smidges of cleanup

* Unpredicted so don't need the workaround

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:30 -06:00
SlamBamActionmanandPrincess Cheeseballs 6c561b3e9a Add doafter to filling the hypopen (#40538)
* Initial commit

* Small QOL buff

* Review changes

* Ch-ch-ch-ch-chaaaanges

* Review changes

* oops

* Oh ya fix the fill thing

* cleanup warnings make a few more private methods

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:29 -06:00
SolidSyn 1fba48236a Changed mindswaps cooldown from 5 minutes to 3 minutes (#41027) 2025-12-29 11:39:29 -06:00
eoineoineoin 53fa40bc39 Add a sheetlet for ConfirmButton (#41011)
* Add a sheetlet for ConfirmButton

* Move sheetlet to central location; alphabetize using statements
2025-12-29 11:39:29 -06:00
eoineoineoin 7bd591ea79 Fix style on paper editing background (#41009) 2025-12-29 11:39:29 -06:00
eoineoineoin c1a644839f Fix refresh button in fax machine (#41024) 2025-12-29 11:39:29 -06:00
Pieter-Jan Briers c20763751a Don't show NaN/infinity if AME has no cores (#41026)
Fixes #41025
2025-12-29 11:39:29 -06:00
Kyle Tyoandslarticodefast d52dd5dcd6 Mosin be tested, Verin be breaded. (#40957)
* Create WeaponSniperTests.cs

* Update SharedGunSystem.cs

* requested changes.

* Update WeaponTests.cs

* rerun tests

* Update WeaponTests.cs

* Update WeaponTests.cs

* Update Content.IntegrationTests/Tests/Weapons/WeaponTests.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:29 -06:00
Perry Fraserandslarticodefast 5e59018676 fix: make IdentityComp.IdentityEntitySlot optional (#39357)
* fix: make IdentityComp.IdentityEntitySlot optional

* Revert "fix: make IdentityComp.IdentityEntitySlot optional"

This reverts commit fa25263be916ed142bf2cff9871fca3e64c6da2b.

* fix conflicts

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:29 -06:00
MoraandTrixxedHeart b61d90816c Changed Vox Head Marking Point Limit To 4 (#40542)
* Fix vox head marking limit

* Sets Vox head marking points 4

---------

Co-authored-by: TrixxedHeart <46364955+TrixxedBit@users.noreply.github.com>
2025-12-29 11:39:29 -06:00
Vanessa 9617c03412 Fixed PrivilegedIdIsAuthorized in DV namespace 2025-12-29 11:39:29 -06:00
96e69b955c Feature/door remote radial (#36378)
* it works! kinda

* so it works now

* minor cleanup

* central button now is useful too

* more cleanup

* minor cleanup

* more cleanup

* refactor: migrated code from toolbox (as it was rejected as too specific)

* feat: moved border drawing for radial menu into RadialMenuTextureButton. Radial menu position setting into was moved to OverrideArrange to not being called on every frame

* refactor: major reworks!

* renamed DrawBagleSector to DrawAnnulusSector

* Remove strange indexing

* Regularize math

* refactor: re-orienting segment elements to be Y-mirrored

* refactor: extracted radial menu radius multiplier property, changed color pallet for radial menu button

* refactor: removed icon backgrounds on textures used in current radial menu buttons with sectors, RadialContainer Radius renamed and now actually changed control radius.

* refactor: in RadialMenuTextureButtonWithSector all sector colors are converted to and from sRGB in property getter-setters

* refactor: renamed srgb to include Srgb suffix so devs gonna see that its srgb clearly

* fix: enabled any functional keys pressed when pushing radial menu buttons

* fix: radial menu sector now scales with UIScale

* fix: accept only one event when clicking on radial menu ContextualButton

* fix: now radial menu buttons accepts only click/alt-click, now clicks outside menu closes menu always

* feat: simple radial menu prototype for easier creation

* refactor: cleanup, restored emote filtering, button models now have class hierarchy

* refactor: remove usage of closure from 'outside code'

* refactor: remove non existing type from UiControlTest

* refactor: remove unused using

* refactor: revert ability to declare radial menu layers in xaml, scale 32px sprites using scale in radial menu

* refactor: whitespaces

* feat: now door remote have some kind of ui to switch mode

* refactor: subscribe for dispose on existing radial menus

* feat: now simple radial menu button models can have custom color for each sector background (and hover background color). Also added OpenOverMouseScreenPosition inside SimpleRadialMenu

* fix: AI door menu now can be closed by verb if it gets unpowered

* refactor: simplify code for DoorRemoteBoundUserInterface

* fix open/close mode sprite

* remove broken merge changes

* refactor: changed DoorRemoteSystem to be fully in shared

* refactor: localize DoorRemoteBoundUserInterface

* refactor: fix multiple invocation for  TryToggleDoor inside DoorRemoteSystem on prediction

* refactor: extracted sprites and loc strings into prototype for cleaner code. Currently selected mode now have different background.

* refactor: changed hover selected color to recommmended

* refactor: reuse stylenano colors!

* review

* refactor: remove StyleNano reference

* refactor: revert removal of item status for door remote

* refactor: fix status control misprediction

* refactor: remove invalid comments, rename client DoorRemoteSystem comp after handle method

* refactor: fix DoorRemoteStatusControl not displaying status on entity pickup

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:29 -06:00
Kresnyandslarticodefast 64e3332457 Update Controls.xml (#40978)
* initial commit

* Apply suggestions from code review

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:29 -06:00
lzkandslarticodefast cc0a81a3a0 fix species name in station records (#36217)
* fix species name in station records

* the hellish commit

* Update GeneralStationRecordConsoleWindow.xaml.cs

* fix

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:29 -06:00
Leon Friedrich 374cb51d93 Fix IdCardConsoleSystem NRE (#40994) 2025-12-29 11:39:29 -06:00
qwerltaz f8dc959667 goats eat kudzu again (#40220)
* kudzu edible, food htn starts at peckish, no nutrition needed for npc to eat

* fix kudzu tags

* remove old stomach 2 from ruminant body

* make kudzu nutrition non-zero

* skip targeting food if nutrition is zero

* move edible from baseKudzu
2025-12-29 11:39:29 -06:00
SnappingOpossum 5f03da10c4 Allow upgraded solars to take structural damage (#40992)
Parent Damageable on solars
2025-12-29 11:39:29 -06:00
B_Kirillandslarticodefast b58823ad93 Criminal console status expansion (#36244)
* Criminal console update and new icons sprites

* Change Hostile and Paroled sprites

* Change Hostile sprite

* Return the 8x8 scale, redraw new icons

* Some changes

Redraw eliminated icon and change icons scaling in pda

* Update Resources/Textures/Interface/Misc/security_icons.rsi/meta.json

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Client/CartridgeLoader/Cartridges/WantedListUiFragment.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:29 -06:00
Kittygyat c93661f956 Added the cosmetic carp suit to the autodrobe inventory (#40995)
Added cosmetic carp suit to the autodrobe inventory
2025-12-29 11:39:29 -06:00
Princess CheeseballsandPrincess Cheeseballs b8008309bf Zombies can't hurt II. (#41007)
* Make zombie system not fard

* Actually who cares if our owner is not a zombie, let melee weapons be zombies that's funny as fuck

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:29 -06:00
ādaandiaada 348b984c7e Consistency fix for soap making (#40998)
soap

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:29 -06:00
ArtisticRoomba 50b112ab89 Slime organs metabolizing slime restores blood level + halves slime hunger satiation when consumed by a slime organ (#32537)
* metabolizing slime restores blood level

* halved the effectiveness of hunger satiation when slime is consumed by a slime organ

* kaboom

* ref george orwell's 1984

* rewrite george orwell's 1984

* Revert "rewrite george orwell's 1984"

This reverts commit c283a38e584c477f601179ea7504ec2651d22d31.

* this is exactly like doublethink from george orwell's 1984

* this is exactly like the ministry of truth from george orwell's 1984

* this is exactly like the ministry of peace from george orwell's 1984

* i'm going to lose it just like the protagonist in george orwell's 1984
2025-12-29 11:39:28 -06:00
Vanessa 8aeb9082e7 Replaced remaining StyleNano references. 2025-12-29 11:39:28 -06:00
Brandon LiandJanet Blackquill e2f5f4b7fa StyleNano removal: Palette system and Sheetlets (#29903)
* Apply patch https://github.com/moonheart08/space-station-14/compare/1777eea9a42a8bdbc4a865327bb9ef3e10fe57de..6b32bb2b148ef9d312b5332ccea4d8688694dba5

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* make red squiggly line go away

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Add todo list

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Add palette to `TextureButton`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Rename `PalettedButtonSheetlet` to `NTButtonSheetlet` and move useful methods to `ButtonSheetlet`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* migrate `ContextMenu` styles

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Update todo

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* tweak NT colors

* New stylesheet: `InterfaceStylesheet` & `InterfaceTooltipSheetlet`

* Move inheritance of `IButtonConfig` to `NanotransenStylesheet.Buttons`

* move `MenuButtonSheetlet` & actually implement `InterfaceStylesheet` correctly

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* tweak color & update todo

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* chat is this real (update chat palette)

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Update todo

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `SmallButton` and remove some obsolete things from `StyleNano`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* rename `StyleClasses` to `StyleClass` so `Stylesheets.Redux.StyleClasses` syntax is dead

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* replace `ButtonColorGreen` with `Positive`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `Placeholder`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Examine popup buttons

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* move over more things & cleanup `StyleNano` more (under 1000 lines!!!!)

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Remove some more redundant stuff

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Undo style change for chat window

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* paper editing works now

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `OptionButton` styles

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `ListContainer`, move `DefaultWindow` styles (for now) & more cleanup

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* fix `ActionButton` not having highlighting

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* remove imports of `Robust.Client.UserInterface.StylesheetHelpers` & format

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `ButtonBig` and more cleanup

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Move items inheriting from `ISheetletConfig` into their own directory

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Cleanup & move `Label` styles

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Action search box styles

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Moved, stuff is

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* rename `LabelSubtext` to `LabelSubText` & move more stuff (were almost there!!)

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* yap & move over MORE stuff (just like one thing left!!!)

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Change status classes to appropriate existing classes

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* remove remaining references to `StyleNano`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Fix some hardcoding & broken code, `GetFromControl`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Scrollbars!

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* chores

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* clean up `StyleClass.cs`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `ItemListSheetlet` refactor

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* more chores!

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Consistency w/ directory structure

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Move `MainMenuSheetlet`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `ColorPalette`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* whoopsie

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Remove most sheet-specific sheetlets

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* fix warnings, cleanup, & fix scrollbar (this is why we fix warnings boys)

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* yap

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* MASSIVE resharper skill issue

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* actually use `ISheetletConfig`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* have specific sheetlet be specific

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `GetResourceOr`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* cleanup & move / remove `IPalette`s

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* actually do specific stylesheets correctly & fix tooltips

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* cleanup & logging

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* Move `FontKind` and `FontKindExtensions` to their own files

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* rename `InterfaceStylesheet` to `SystemStylesheet`

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* change `ButtonHovered` etc to `PseudoHovered` etc

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* give the palettes fun names

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* `StyleSpace` is no more

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* It should compile now! I am now going to bed (fr) if it fails it fails

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* make squiggly red line go away

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>

* add additional type restrictions to sheetlets

* `CommonStylesheet`

* minor cleanup

* Make `GetSheetletRules` not horrible

* wait this was duplicating style rules. oops!

* move some sheetlets to their associated xamls

* oh wait apparently that was important

* review pass 1

* review pass 2 (font & color stuff)

* review pass 3: remove unused stuff / filename fix

* fix warnings & "replace cast with explicit variable type"

* move `Palette` stuff to its own directory

* tweak colors (they're different now that I actually fixed the OKlab thing)

* review pass 4: little things

* make window close button grey before hovering

* refactor `HLine` to make it less terrible and allow it to be styled

* fix `NanoHeading` (it's been broken for a while whoops) and cleanup hardcoding

* band-aid missing references in `StyleNano`

* move `StyleBox` generating functions out of `IButtonSheetlet` into `StyleBoxHelper`

* remove dictionary field from `IStylesheetManager`

* Add check for unloaded sheetlets

* style tweaks to satisfy OCD

* I somehow missed this: `Caution` styleclass replaced with `negative`, refactor `PowerChargeWindow`

* tweak palettes for like the fourth time

* construct `StyleNano` / `StyleSpace` in `StylesheetManager` and mark them as obsolete

* rename `BackgroundPanel` classes for consistency

* tweak window / `ListContainer`

* oh right you use `///` not `/**`

* font system is bad, make it temporary

* acknowledge Divider funkyness

* remove use of class `Disabled`

* `ColorPalette` allow overriding colors with brace initialization

* review pass again

* tweak disabled button colors

* `StatusPalette` tweaks

* typo

* Make squiggly red line go away

* Delete `Redux`

* Remove all references to `Redux`

* make red less radioactive

* Store stylesheet name inside stylesheet class

* fix merge errors

* use RT's Oklab support instead

* shuffle around `StylesheetManager` fields

* apply stylesheets based off `StylesheetComponent`

* simplify `ColorPalette` construction

* add todo for `SheetletConfigType`

* `OptionButton` has a background color now

* fix disabled buttons

* sigh (red color palette fixed)

* make `ItemList` use primary palette

* Revert "apply stylesheets based off `StylesheetComponent`"

This reverts commit c05b147da845f6e04ff33d1cbd91a18a92c676d7.

* dead code removal

* buttons are green when pressed (we need togglebuttons)

---------

Signed-off-by: Brandon Li <sirbrandonthenerd@gmail.com>
Co-authored-by: Janet Blackquill <uhhadd@gmail.com>
2025-12-29 11:39:28 -06:00
pre-commit-ci[bot] f9e728b547 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-12-29 11:39:28 -06:00
Vanessa 56023ecef5 Fixed shared chat references. 2025-12-29 11:39:28 -06:00
ArtisticRoombaandPrincess Cheeseballs 3ff4794f99 New job lizard plushies + Job-specific trinkets loadout (#34127)
* add the job wehs, add job crate fill and add purchaseable crate

* add job wehs to new loadout type

* add the MULTIWEH

* fix that one bug in testing

* mime and clown plushies have custom sounds

* was looking at the wrong thing alright

* indecisive

* properly attribute multiweh

* my worst nemesis, yaml linter... how dare they point out my mistakes...

* Remove crate and cargo buy at maintainer request

* add multiweh to bulk lizard plushie crate at a 1% chance

* double whammy

---------

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
2025-12-29 11:39:28 -06:00
Pgriha 44c31f660e Adding cotton seeds to cargo seeds crate (#40970)
* First one

* Let me count
2025-12-29 11:39:28 -06:00
558f1e74a4 refactor: new overload for SharedRandomExtensions.HashCodeCombine (#40990)
* refactor: new overload for SharedRandomExtensions.HashCodeCombine

* Update Content.Shared/Random/Helpers/SharedRandomExtensions.cs

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:28 -06:00
AsnDen 13c1b9165d Large thruster (#37681)
* Large thruster

* copyright

* remove russian 📣

* Make it stronger (16x of normal)

* More energy consumption

* Update meta.json

* You can't deconstruct this thruster

* price - 1500 (5x)
2025-12-29 11:39:28 -06:00
Vanessa b078351ff0 Changed DV lawboard inheritence 2025-12-29 11:39:28 -06:00
PotentiallyTom c09b328eb0 Silicon lawset book and Law boards can now point to the list of lawsets. (#40944)
* AI compendium book proto added

* added BaseSiliconLawboard and have silicon boards parent it

* color tweaks

* requested change
2025-12-29 11:39:28 -06:00
lzk 30aa781662 fix arachnid lungs (#34381) 2025-12-29 11:39:28 -06:00
Vanessa 79a7609d88 Fixed namespaces in Devil systems 2025-12-29 11:39:28 -06:00
slarticodefastandpa.pecherskij 13abdb6e08 Add virtual chat API methods in Shared (#40895)
* move chat stuff to shared

* refactor: using cleanup +whitespaces + xml-doc

* review

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-12-29 11:39:28 -06:00
slarticodefast 36222ada7a Add EntityEffectOnTrigger and RejuvenateOnTrigger (#40967)
commit
2025-12-29 11:39:28 -06:00
Kittygyat 2238f3fbd0 Lets monkeys & kobolds shove/disarm! (#38542)
Let monkeys shove/disarm
2025-12-29 11:39:28 -06:00
SpaceLizard 64be64a5da Fix some crystals (#40985)
Update crystal_shard.yml
2025-12-29 11:39:28 -06:00
Vanessa 4c70e36022 Vox organ changes. 2025-12-29 11:39:27 -06:00
Princess CheeseballsandPrincess Cheeseballs 7cdd75408a Fix Ninja EMP themselves. (#40968)
* push

* Skibidi toiler

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:27 -06:00
Anri 4275f5ae04 Ninja headset (#40054)
* init-commit

* skill-issue

* happens

* post-review-changes

* desc-fix

* is-it
2025-12-29 11:39:27 -06:00
ādaandiaada b31c47b18f Document tags: H-L (#40976)
* the letter H

* The letter I

* the letter J

* The letter K

* The letter L

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:27 -06:00
JackRyd3randJacobThayil 10d593fab0 Added the sidearm tag to energy magnum (#40974)
Co-authored-by: JacobThayil <jtha821@aucklanduni.ac.nz>
2025-12-29 11:39:27 -06:00
Hitlinemoss 3bc01962b7 Folders and clipboards recycle into what they are actually made of now (#40954)
* Folders recycle into paper, clipboards recycle into wood/plastic and steel

* CC clipboards also contain some cloth

* The nuclear code folder is also made of paper

* Whoops, violated the laws of thermodynamics

* Whoops, broke the laws of economics
2025-12-29 11:39:27 -06:00
MissKay1994 60ebb1dbdc Add sprites for Vox organs (#40555)
* Blue organs for blue blood

* EYES GO IN THE HEAD

* Accidental upload

* Also accidental upload

* skreeching for the future

* SKREEEEEEEEEE

* THese are not the files you are looking for

* Sprite attribution
2025-12-29 11:39:27 -06:00
Vanessa 70eb07aaf8 Fixed some Beer Goggles safe throw logic. 2025-12-29 11:39:27 -06:00
Hitlinemoss 89498177ed Cargo orders that contain beverages now come in freezers (#40955) 2025-12-29 11:39:27 -06:00
f905239b87 Make a lot more puddle stuff predicted (#38871)
* feat: predict evaporation

* refactor: move puddle update logic to shared

* refactor: move more puddle stuff to Shared

Still can't do stuff that creates puddles :(

* refactor: move puddle transfers to shared

* fix: various style fixes + switch to predicted variants

* style: make some puddle stuff private instead of protected

* refactor: move solution dumping to its own system

* docs: clarify Drainable/Dumpable/Refillable docs

Also whacks unneeded VVAccess's.

* fix: audit usages of drainable+refillable

I'm leaving spear and arrow for now... but I don't love it.

* Added an item query I guess

* Review changes

* You can pour out waterguns

* Review changes

* oops

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
2025-12-29 11:39:27 -06:00
Mehnix 3456705e86 All pens embed (#39104)
* Embed for all

* Unify all thrown pen damage

Removes PenEmbeddable Abstract Entity as it is redundant. Those that parented to it now just parent to Pen.

* Fancy Pens deserve that damage bonus

Keeps an abstract entity for fancier pens to parent off of. Someone might do different fonts in the future, and them doing more damage is funny.
2025-12-29 11:39:27 -06:00
Absotively 09c4546fa9 Update outdated comment re: borging & borg playtime requirements (#40886)
Update outdated comment
2025-12-29 11:39:27 -06:00
ScarKy0 3807ece40a Trigger On Hitscan (#40964)
* init

* doc

* merge systems

* review
2025-12-29 11:39:27 -06:00
76356eceef AddReagentOnTrigger (#39875)
* Trigger

* Unnecessary(?) Checks

* request

* Update

Co-Authored-By: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* cleanup

* standard name

* don't use name alias

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:27 -06:00
slarticodefast bfde480948 Fix AddReagent modifying to solution being added in some cases (#40959)
fix
2025-12-29 11:39:27 -06:00
Stefano Pigozzi 28f938df79 Fix Space Villain tie message (#40958)
Fix `space-villain-game-enemy-dies-with-player-message`
2025-12-29 11:39:27 -06:00
Vanessa 225bef1fad Added a system to change heat on hitscan hit. 2025-12-29 11:39:27 -06:00
Vanessa f440bc0ebd Migrated hitscan protos to new entity. Fixed vox emotes. 2025-12-29 11:39:27 -06:00
beck-thompson 760f44386e Hitscans are now entities (#38035)
* Hitscans are now entities

* Cleanup

* Cleanup

* Silly mistakes but stop sign testing helps :)

* Address most of the review

* Reviews

* perry :(

* Final reviews

* Add comments

* Split event up

* better comment

* cleanup
2025-12-29 11:39:27 -06:00
Kittygyat 4ab3b160e2 Slightly resprited the service borg (#39764)
* Small resprite of the service borg

* forgot credits

* Spriting fix, merging fix

* Deduplicated meta.json file
2025-12-29 11:39:27 -06:00
PicklOH f3941a7206 Remove rag forensics cleaning (#40818)
Removes rag forensics
2025-12-29 11:39:26 -06:00
Kittygyat 010670cbc6 Made a new generic borg module for art; the Artistry Module! (#39679)
* Made a new generic borg module for art; the Artistry Module!

* Made requested changes, changed the crayon emptyRepresentatives

* Did the thing.

* Added updated action sprite,with thanks to TiniestShark, also Attempted to fix the merge conflict

* changed empty representative of red to rainbow

* Added recharging crayon 'Electric Crayon' and sprite to the borg module, removed redundant extra crayon slot.

* Added requested changes, replaced old spraypainter with new recharging borg spraypainter

* Forgot to readd the recyclable tag to Crayon

* Removed compressed paint hand
2025-12-29 11:39:26 -06:00
ādaandiaada d5411ae965 Fix recharging spray painter (#40953)
* commit

* fix

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:26 -06:00
Mora 228986e2b8 Add GenpopLeave and GenpopEnter to Security accesses (#39515)
Add GenpopLeave and GenpopEnter perms to security job accesses
2025-12-29 11:39:26 -06:00
MoraandTrixxedHeart 5a3e0bce66 Added Vox Chitter and Clicking (#40878)
Added Vox chitter and clicking

Co-authored-by: TrixxedHeart <46364955+TrixxedBit@users.noreply.github.com>
2025-12-29 11:39:26 -06:00
Wolfkey-SomeoneElseTookMyUsername ca7644132b Fix some food recipe categories (#40949)
Fix some guidebook food categories
2025-12-29 11:39:26 -06:00
Errant f1d2a02d31 Remove two obsolete buttons from the Admin UI (#40904)
remove unused UIs
2025-12-29 11:39:26 -06:00
rlebell33 790d1731aa add the diona typing indicator to the FloraTree entity (#39103)
* add the diona typing indicator to the FloraTree entity

* move diona typing indicator to BaseTree

* add comment
2025-12-29 11:39:26 -06:00
ScarKy0andPrincess Cheeseballs 449bcbb452 Event based lock access (#40883)
* init

* some bonus stuff

* CheckForAnyReaders

* reader

* doc

* review

* fuck yaml

* Me when I push changes myshelf

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:26 -06:00
QuasrandQuasr 7a7f67494c Bring sky blue carpet in line with other carpets (#40867)
* add table and curtains as constructables; carpet now in printer

* add textures

* whoops, didn't mean to change that

* textures v2

* add open curtain proto

---------

Co-authored-by: Quasr <~182430031+quasr-9@users.noreply.github.com>
2025-12-29 11:39:26 -06:00
MilenVolfandslarticodefast cb49d8d851 Add "Reset to default" verb to TriggerOnVoice (#35636)
* Add "Reset to default" verb to `TriggerOnVoice`

* Forgor to remove these changes

* Apply requested changes

* Test fail is real

* Apply requested changes

* Update according to refactored trigger system

* cleanup

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:26 -06:00
Worldwaker ec966ba1c2 Fixes parcels and parcel wrapped humanoids being invulnerable (#40940)
* Primary Commit

* Made requested changes, fixed line spacing.
2025-12-29 11:39:26 -06:00
slarticodefast 3c0cef7aa2 Make parcelwrap able to wrap humanoids (#40911)
* parcel

* help, I'm being forced to add admin abuse features

* review
2025-12-29 11:39:26 -06:00
Red Mushie 2244bf7360 Fix power sensor looking at wrong electrical network (#40934)
* Fix power sensor looking at wrong electrical network if it happened to be connected

* Remove unnecessary loop in power sensor logic
2025-12-29 11:39:26 -06:00
Dinner a6251e746c Reorganize ID card sprites to use job icon sprites directly (#40414)
* reorganize id card sprites

* add CBURN attribution

* comment offset

* fix captain ID steal icon

* oops

* update attribution

* slightly more precise language in attribution

* add aliases, cleanup parents and inhands

* adjust syndicate sprites

* missed a spot

* fix historic attribution issues, add black inhands to id cards

* errant curly brace begone

* control stripe color through yaml, meta fix

* make deathsquad blue
2025-12-29 11:39:26 -06:00
Leon Friedrich 5b07d02d49 Undo effect logging changes (#40919)
* Undo effect logging changes

* remove ShouldLog
2025-12-29 11:39:26 -06:00
d90050305a Grenade penguin htn (#34935)
* we can do better

* better

* slightlybetter

* remove unused dependency

* uplink description more descriptive

* more intentional explosion stats

* cleanup

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:26 -06:00
Vanessa 6319c2e6aa Removed test that we didn't need 2025-12-29 11:39:26 -06:00
Samuka-CandSimon 54d643a2c7 Add bank toolshed commands (#40614)
* add bank commands

* Follow convention

* use protoId

* make logic better

* Move stuff to shared

* Make things dirty

* Move UpdateBankAccount to shared as well

* nullable + resolve

* Fix commands

* make things less legible

* typo

* same typo

* im dumb

* I don't know how to spell

* replace select with foreach

Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>

* replace select with foreach again

---------

Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
2025-12-29 11:39:26 -06:00
Leon Friedrichandslarticodefast 77df3ccf27 Fix ResearchSystem threading exception (#40917)
* Fix ResearchSystem threading exception

* Update Content.Server/Research/Systems/ResearchSystem.Client.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:25 -06:00
telavivgamers a9d328e632 Ashtrays can contain ashes and matches (#40926) 2025-12-29 11:39:25 -06:00
Leon Friedrichandslarticodefast 40759f556c Add admin ui tests (#40914)
* Add admin ui tests

* fix notes test

* Apply suggestions from code review

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:25 -06:00
Matt Idzik 4f925f4c04 Fixed votekicks putting you on a one hour vote cooldown (#40622)
* Fixed votekick.timeout cvar not configuring behavior as intended.

* Refactor TimeoutStandardVote to include timeoutOverride
2025-12-29 11:39:25 -06:00
YoungThug 577c6d79bb Resprites and keeping consistency for forgotten figurines (#40889)
* Resprites and keeping consistency for forgotten figurines

* Slarti Requests

* fixed sus
2025-12-29 11:39:25 -06:00
ādaandiaada a78a5b6458 Document tags: G (#40898)
* Use more consistent and clear language in documentation

* the letter G

* the friends we made along the way

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:25 -06:00
Connor Huffine bc69e3eec7 Singularity eats carpet (#40896)
* Add carpet fixture

* Remove DoorPassable

* Put DoorPassable Back
2025-12-29 11:39:25 -06:00
QuasrandQuasr f5c22dbcaf Give destroyed machine frames outlines (#40892)
add outline to destroyed frames

Co-authored-by: Quasr <~182430031+quasr-9@users.noreply.github.com>
2025-12-29 11:39:25 -06:00
OnyxTheBrave 109c0e850d Logging for turret controller (#40884)
* Logging for turret controller

* Wording

* MEDIUM

* changed to use ItemConfigure
2025-12-29 11:39:25 -06:00
slarticodefast 22006fdb18 Fix sericulture zombies (#40279)
fix sericulture zombies
2025-12-29 11:39:25 -06:00
Winkarst-cpu 0f1dff9c27 Fix emag sparking animation on doors (#40350)
* Fix

* Update

* Comment
2025-12-29 11:39:25 -06:00
mtrs163 cc39174401 Don't add ImplicitRoof to grids with roof component (#38551)
* Don't add implicitroof to grids with roof component

* changes 1
2025-12-29 11:39:25 -06:00
SlamBamActionman f000f03c82 Improve lying trait grammar (#39370)
* Improvements

* Forgot Sure
2025-12-29 11:39:25 -06:00
Nemanja d53341409d FTL Fixes (#39040)
* FTL fixes

* one. space.

* change this too
2025-12-29 11:39:25 -06:00
Myra f0ca3b1d3d Clean up TitleWindowManager.cs (#36327)
* Clean up TitleWindowManager.cs

- I did not like how `OnHostnameChange()` always needed a string even though that string would always just be the hostname, so now it's just part of its function
- The extra function made to just trigger `OnHostnameChange()` are removed. It just runs the right function off the bat.
- Checking for `ClientRunLevel.InGame` for setting the title without the hostname, which means the previous joined server won't appear for a split second before being corrected by the new cvars being set. Or if the server prefers no host name in the titlebar by the time we connect.

* review

* Sus
2025-12-29 11:39:25 -06:00
Myra 5c28fa8e78 Improve IPIntel reasons (#40071)
* Improve IPIntel reasons

* Better

* Better 2

* Grammarly (aka reviews)

Writing's not that easy, but Grammarly can help. This sentence is grammatically correct, but it's wordy and hard to read. It undermines the writer's message, and the word choice is bland. Grammarly's cutting-edge technology helps you craft compelling, understandable writing that makes an impact on your reader.
2025-12-29 11:39:25 -06:00
Pieter-Jan Briers be28184aa3 Prometheus exporter for github repo stats (#38607)
* Prometheus exporter for github repo stats

I want more grafana charts

Already deployed on moon, this is just so other codebases can use it if they want.

* Add docs and issue/PR priorities

* Sure add merge conflicts too
2025-12-29 11:39:25 -06:00
Partmedia b4d818de44 Fix generating migrations with USE_SYSTEM_SQLITE (#40910) 2025-12-29 11:39:25 -06:00
B_Kirill f507917ab4 Fix zombie locked rotation (#40812)
Fix
2025-12-29 11:39:25 -06:00
temm1ie ffec2e022f New botany poster (#40908)
* init

* change-desc

* PERIOD
2025-12-29 11:39:25 -06:00
0x6273 85e64ab3e2 Add date picker (#40660)
* Add DatePicker

* DatePicker fixes

- Now uses `DateOnly` (currently fails sandbox, but PJB has promised to add
it in engine)
- Add MinDate and MaxDate fields
- Use constructor instead of parsing date string
2025-12-29 11:39:25 -06:00
Leon Friedrich 0bbfa51dda Update engine to v267.3.0 (#40899) 2025-12-29 11:39:24 -06:00
Kit a9706cacae slime guidebook change (#40842)
guidebook change
2025-12-29 11:39:24 -06:00
Princess CheeseballsandPrincess Cheeseballs 27216b971a Fix Cryptobolin and make it use NewStatusEffectSystem. (#40675)
* Push

* Mercury too I guess???

* Update comment

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:24 -06:00
Vanessa 1c3538effe Refactored and added names to DV lawsets. 2025-12-29 11:39:24 -06:00
PotentiallyTom 010b65ef14 Adds a guidebook reference table for silicon lawsets (#38225)
* skeleton

* ok I think I understand this now

* xaml more like xam L

* good enough individual law control

* Works

* Final checks

* Final_Final.exe.docx

* removed unecessary usings

* locstrings

* doc comments

* requested changeds except var

* visual stuff

* I could write a manifesto about how much I dislike var

* color tweak + other thing

* request changed minus the inheritance

* sans Boxcontainer

* :/

* cache find

* requested changed

* removed usings

* Moved margin and removed unecessary BoxContainer
2025-12-29 11:39:24 -06:00
telavivgamers f6560b3357 Changed Soviet soda vending machine name (#40850)
* Changed Soviet soda vending machine name

Now it is not faux-Cyrillic

* Replaced transliteration by real Cyrillic

Moved the Latin transliteration into a suffix
2025-12-29 11:39:24 -06:00
ScarKy0 5235a73dfc Fix AI radial on objects without access (#38444)
* init

* review

* Update SharedStationAiSystem.cs

* bolt
2025-12-29 11:39:24 -06:00
MoraandTrixxedHeart f899bc589a Remove high pitched buzzing noise from spray2.ogg (#40877)
Co-authored-by: TrixxedHeart <46364955+TrixxedBit@users.noreply.github.com>
2025-12-29 11:39:24 -06:00
slarticodefastandpa.pecherskij 8ac76060bb Move ChatSystem.Emotes to shared (#40866)
* move to shared

* entity effect to shared

* refactor: whitespaces+xml-doc typo fixups

* refactor: a little bit more of xml-doc typos fixups

Removed Incompatible RMC Emotes stuff.

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-12-29 11:39:24 -06:00
Mora d633b7321d Rename "trash" reagent to "reprocessed material" (#39761)
* renamed trash to reprocessed material

* minor wording change

* awfully to awful
2025-12-29 11:39:24 -06:00
Vanessa 04f125b31c Fixed lollipop RSI. 2025-12-29 11:39:24 -06:00
slarticodefast 6253cb8fda Predict DestructibleSystem, Part 1: IThresholdTrigger (#40876)
part 1
2025-12-29 11:39:24 -06:00
meganerobotandmeganerobot bb56d6e27a Make SmartFridges airtight (#40196)
* added airtight component to smartfridge.yml

* pulled the Airtight component, replaced mask with Impassable

* back to the way it was i guess

---------

Co-authored-by: meganerobot <andrewoidmk2@gmail.com>
2025-12-29 11:39:24 -06:00
Winkarst-cpu 6db5062c22 Fix barber scissors cancel errors (#40329)
Fix
2025-12-29 11:39:24 -06:00
lzk 39576208e4 food box.yml cleanup (#40873)
* food box.yml cleanup

* Update box.yml
2025-12-29 11:39:24 -06:00
GitHubUser53123 04015f18bc NonSpreaderZombieComponent prevents infection of crit mobs (#40857)
prevent the most critical bug in the history of station space 14
2025-12-29 11:39:24 -06:00
Princess CheeseballsandPrincess Cheeseballs f5a69c4ca8 Fix Plant Mutations (#40870)
Whoops x2

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:24 -06:00
pre-commit-ci[bot] 8f97a7720d [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-12-29 11:39:23 -06:00
Vanessa 6c1589045e There is a god. 2025-12-29 11:39:23 -06:00
Vanessa 57d3798fee Reorganized some of the new ECS code. 2025-12-29 11:39:23 -06:00
Vanessa df9f638eee No one will care. 2025-12-29 11:39:23 -06:00
Vanessa 95557be4ee More ECS fixes. Will I never escape this hell? 2025-12-29 11:39:23 -06:00
Vanessa e54548fcf6 More ECS fixes. 2025-12-29 11:39:23 -06:00
Vanessa ff620be7ff Fixed a typo with the Addicting system. 2025-12-29 11:39:23 -06:00
Princess CheeseballsandPrincess Cheeseballs 66118f024f Cryogenics evenheal + New chem "Arcyrox" (#41696)
* Cryo chems

* Actually cryo eats a lot of this stuff, should probably buff the amount you get...

* minor necrosol buff

* fuck it old recipe

* Fucked up my math, half is closer to 6 here.

* cryox

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:23 -06:00
Vanessa e9cec4a002 Fixed some temperature components that were moved to shared. 2025-12-29 11:39:23 -06:00
Vanessa 075f2f4dfd God fuck deepfryers. 2025-12-29 11:39:23 -06:00
Vanessa ba7dceb2a8 Why are we here? Just to suffer? 2025-12-29 11:39:23 -06:00
Vanessa 9cf3fb6aef Migrated the psionic reolling stuff to the new ECS system. Am I out of this hellhole yet? 2025-12-29 11:39:23 -06:00
Vanessa 3f69342eb4 Removed Trinox for the new upstream cryo chem 2025-12-29 11:39:23 -06:00
Vanessa f8c0f8f5cd Converted addicting and in pain statuses to the new ECS system. 2025-12-29 11:39:23 -06:00
Vanessa 4077f006f4 Converted SupressPain and Suppress Addiction to the new ECS system. 2025-12-29 11:39:23 -06:00
Vanessa 98d9580ae5 Updated all of ReagentThreshold and TotalDamage conditions in non-upstream files 2025-12-29 11:39:22 -06:00
Vanessa 0ecadc915f Migrated some existing code changes from old effect system to refactored system. 2025-12-29 11:39:22 -06:00
kosticia b8f9ddbbb4 Artifact glue reagent (#38670)
* a

* Revert "a"

This reverts commit 2b9ba4ea67a9395d30b7ab37c8065f627f1a961a.

* f

* dev it

* a?

* ad

* forgor

* Revert "f"

This reverts commit 39228c7cbe4d28ba43b73580b55e01c3979eb869.

* derandomisation!

* reviv

* flavor

* fixe

* dwwasdwasdwa

* dwasdwasdwas

* fuck you
2025-12-29 11:39:22 -06:00
f3c49f9294 Entity effects ECS refactor (#40580)
* LOCKED THE FUCK IN

* Forgot this little fella

* Crying

* All entity effects ported, needs cleanup still

* Commit

* HEHEHEHAW

* Shelve for now

* fixe

* Big

* First big chunk of changes

* Big if true

* Commit

* IT BUILDS!!!

* Fix LINTER fails

* Cleanup

* Scale working, cut down on some evil code

* Delete old Entity Effects

* Accidentally breaking shit by fixing bugs

* Fix a bunch of effects not working

* Fix reagent thresholds

* Update damage

* Wait don't change the gas metabolisms A

* Cleanup

* more fixes

* Eh

* Misc fixes and jank

* Remove two things, add bullshit, change condition to inverted

* Remove unused "Shared" system structure

* Namespace fix

* merge conflicts/cleanup

* More fixes

* Guidebook text begins

* Shelve

* Push

* More shit to push

* Fix

* Fix merg conflicts

* BLOOD FOR THE BLOOD GOD!!!

* Mild cleanup and lists

* Fix localization and comments

* Shuffle localization around a bit.

* All done?

* Nearly everything

* Is this the end?

* Whoops forgot to remove that TODO

* Get rid of some warnings for good measure...

* It's done

* Should make those virtual in case we want to override them tbqh...

* Update Content.Shared/EntityEffects/Effects/Botany/PlantAttributes/PlantDestroySeeds.cs

Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>

* Fix test fails real

* Add to codeowners

* Documentation to everything

* Forgot to push whoops

* Standardize Condition names

* Fix up metabolism a little as a treat

* review

* add IsServer checks

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: Pok <113675512+Pok27@users.noreply.github.com>
2025-12-29 11:39:22 -06:00
Princess Cheeseballs f7ca8bdee8 [PRIORITY NEGATIVE ONE/STABLE HOTFIX] ADMIN NOTES CANNOT BE ACCESSED (#40863)
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Fix logger obsolete warnings (#40553)"
2025-12-29 11:39:22 -06:00
Ps3Moira b5f26ed9bf Resprite Maint Hatch + New Syndicate Hatch (#38076)
* Resprite + New Syndicate Hatch

* Add trailing line

* Update airlocks.yml

* Update base_structureairlocks.yml

* Remove Wall IconSmooth for material doors and shutters

* revert iconsmoothing removing lol

* Update shutters.yml

* Update shutters.yml

* Revert Regular Hatch
2025-12-29 11:39:22 -06:00
Callmoreandslarticodefast 28a8b5298b Automatically add trash tag to spent bullet casings (#40829)
* Automatically add trash tag to spent bullet casings

* Resolving comments

* 2

* Update Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Cartridges/pistol.yml

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:22 -06:00
Fildranceandpa.pecherskij 77872ff451 Use PredictedQueueDel in SharedDestructibleSystem.DestroyEntity (#40856)
feat: predict queuedel in SharedDestructibleSystem.DestroyEntity

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-12-29 11:39:22 -06:00
K-Dynamic 8dec76b9d9 Explicitly attribute each state in organs.rsi, exchange CEV-Eris stomach sprite with /tg/station 13 (#39753)
attribute each state, replace cev-eris stomach sprite with tg
2025-12-29 11:39:22 -06:00
DrSmugleafandslarticodefast db3751a5b1 Fix species not being ordered alphabetically in the character customization UI (#39359)
* Fix species not being ordered alphabetically in the character customization UI

* Update Content.Client/Lobby/UI/HumanoidProfileEditor.xaml.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:22 -06:00
B_Kirill 7a2528bdf7 Flash immunity examine visibility toggle (#40848) 2025-12-29 11:39:22 -06:00
Princess CheeseballsandPrincess Cheeseballs 3c81d41709 Quieter Meat Kudzu (#39304)
Init Commit

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:22 -06:00
ādaandiaada 5450f81686 Organize StackPrototype with inheritance (#38412)
* In one commit like an animal

* carpet fix

* move materials, more bad commit discipline

* re-add marble

* don't also do materials in the same PR, dude

* the return of floor_tile_stacks.yml for atomizing

* resolve an old issue

* re-add det cable

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:22 -06:00
JopogrechkinandArtisticRoomba 8fdf551d6e Brand new hair (#39850)
* Update human_hair.yml

* overeyepigtail

* Update meta.json

* Update human-hair.ftl

* Update meta.json

* Update Resources/Prototypes/Entities/Mobs/Customization/Markings/human_hair.yml

rerun test

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-12-29 11:39:22 -06:00
Super 004241ea3a Add Syndicate IDs to the uplink for 1 TC (#38381)
* syndie ids :3

* Note that the Syndie ID does not copy accesses.
2025-12-29 11:39:22 -06:00
Jessica MandJessica M b948841be4 Adds swabs and an Emag inventory to the biogenerator (#39037)
* adds swab and emag inv to biogenerator

* lower swab biomass requirement

* add hostile cubes to emag inventory

---------

Co-authored-by: Jessica M <jessica@maybe.sh>
2025-12-29 11:39:22 -06:00
Hitlinemoss 304e1929c8 Ice (the reagent) now actually does stuff (#40149)
* ice now evaporates and quenches thirst

* Ice uses BaseDrink as parent instead of Water

* Misc ice cleanup

* Ice no longer inherits Extinguish reactiveEffect

* Test fixes

* Deparented Ice from BaseDrink (was causing test fails)

* Whoops, forgot to remove the part actually causing the test fails

* Added code comments
2025-12-29 11:39:22 -06:00
Hitlinemoss 0d724a55c3 Durathread can now be printed by autolathes (#40837)
* Durathread can now be printed by autolathes

* Applied material discount
2025-12-29 11:39:22 -06:00
ArtisticRoomba 0df931fd08 hugbox tag fix (#40833) 2025-12-29 11:39:22 -06:00
ādaandiaada 5558e04168 Don't apply discount to reinforced glass (#40839)
* commit

* arby

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:21 -06:00
ādaandiaada 245753713f Reorganize tile StackPrototypes and add inheritance (#39491)
* atomize from #38412

* fix curtains in G menu

* re-add marble

* commit

* re-add xenoborg tiles

* re-add new faux

* missed tiles

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:21 -06:00
cloudyskiesandslarticodefast 33952336e5 Makes droppers printable by autolathes and medfabs (#40074)
* Made droppers printable by autolathes and medfabs

* added glass to recipe

* Update Resources/Prototypes/Recipes/Lathes/chemistry.yml

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:21 -06:00
Winkarst-cpu 0d006a9455 Fix visual bug with masks appearing to be pulled down after re-equipping (#40332)
Fix
2025-12-29 11:39:21 -06:00
Prole 2aba2e0248 Black Gloves Sprite Tweaks (#40825)
* Tweaked

* Clearer Copyright
2025-12-29 11:39:21 -06:00
ScarKy0 76c15026e2 Prevent mice etc from unwrapping parcels (#40838)
* init

* no wrapping yourself

* Revert "no wrapping yourself"

This reverts commit d66cb17e4c306ff95f33bcedf7fd464aa7b4ff90.
2025-12-29 11:39:21 -06:00
Perry Fraserandslarticodefast b86654302c HOTFIX Fix pickup effects occurring with verb creation (#38705)
* fix: don't run pickup effects on verb creation

* review

* redundant

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:21 -06:00
Centronias b10c6ea8f7 Adds HugBot (#37557)
* - hugbot
  - bdy with two arms because it needs two arms to hug
  - is constructable from:
    - box of hugs
    - proximity sensor
    - two borg arms
  - lots of voice lines
  - kinda like a medibot, it chases you down and then hugs you
    - except if it's emagged, then it punches you :)
    - it has a 2m cooldown per person by default

- MeleeAttackOperator
  - Read the doc, but it's an operator which makes the NPC hit a target exactly once assuming it's in range.
  - Used to make the hugbot attack
- RaiseEventForOwnerOperator
  - Read the doc, but it's an operator which raises an event on the owning NPC.
  - Used to make the hugbot hug extra code, specifically for the cooldown

- Changes to existing code:
  - `ComponentFilter : UtilityQueryFilter` gets `RetainWithComp` added which, as the name implies, retains entities with the specified comps rather than removing them. Basically, it lets you negate the filter.
  - `SpeakOperator : HTNOperator`'s `speech` field can use a `LocalizedDataSet` instead of just a locstring now
    - (I updated all of the existing usages for this)
  -

* two arms

* wait what if we just used mimebot arms so it doesn't look awful

* smort
2025-12-29 11:39:21 -06:00
HTML/Crystal 9e8aa14445 Infectious anom sprites for moths and arachnids (#39508)
* anoms part 1

* frost and tech anoms

* grav, rock, meta file changes

* rock moth

* moth sprites

* YAMLLinter fixes

* okay make them work now
2025-12-29 11:39:21 -06:00
MoraandTrixxedHeart a556723385 Update Xenoarchaeology Guidebook Page (#40621)
* Update xenoarch guidebook page

* Remove artifact reports from science.yml and word change

* Some adjustments

* Remove references to artifact reports

* fix error and typo

* Various changes

* typo

* THATS NOT BROWN????

* Changed trigger window

* Added new section and notes about reagents

* Split into sub pages and various changes

* Change AnalysisConsole to link to the AnalysisConsole guidebook entry

* slight wording change

* Replace reagent explanations with reagent embeds

---------

Co-authored-by: TrixxedHeart <46364955+TrixxedBit@users.noreply.github.com>
2025-12-29 11:39:21 -06:00
Vanessa da81410a08 Minor fixes 2025-12-29 11:39:21 -06:00
qwerltaz 54380b6ddf Hop console grant all and revoke all access buttons (#39375)
* add hop console select and deselect all access buttons

* align the buttons right

* document code
2025-12-29 11:39:21 -06:00
lzkandslarticodefast 0e902e0ba5 make nobody supervisor a locale key and cleanup JobPrototype (#39102)
* make nobody supervisor locale key and cleanup JobPrototype

* Update Content.Shared/Roles/JobPrototype.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:21 -06:00
2c3a59aa22 Added more Syndie ammo types to EMAG lathe (#40822)
* Move Bulldog Drum to Emag

Bulldog drum removed from standard techfab
Moved to emag listing

* Update Resources/Prototypes/Recipes/Lathes/Packs/syndicate.yml

* Adds more Syndie ammo to EMAG lathe inventory

* No more L6

---------

Co-authored-by: Connor Huffine <chuffine@gmail.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:21 -06:00
slarticodefast 0d3e87d51c Fix NetEntity DataField in AnalysisConsoleComponent (#39984)
* fix analysis console

* fix test

* totally not a web edit
2025-12-29 11:39:21 -06:00
Princess CheeseballsandPrincess Cheeseballs d177570bb0 Very small Shared Storage Optimization (#39092)
Mildly cheesed

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:21 -06:00
slarticodefast e8cd4d39dc fix NetEntity datafield in JointVisualsComponent (#39987)
fix netentity datafield
2025-12-29 11:39:21 -06:00
Crude Oil 5cd3ba3a20 Remove holopad projection verb on station AI core (#39937)
Add check for station AI's projector verb on itself
2025-12-29 11:39:20 -06:00
Connor HuffineandArtisticRoomba 2a18bb524e Ninja Bomb Blacklisting (#40726)
* Ninja Bombing moved to blacklist

* Added blocker to "Solars"

Solars is too generic for a named bombing target.

* Change to AllEntityQuery

More clear intent

* Update migration.yml

Add migration to 'null' for removed WarpPointBombing entity

* Update NinjaConditionsSystem.cs

Undo some tidying

* Changed to tag

Ninja blocking component is now a tag instead of a new component

* Update NinjaConditionsSystem.cs

detidying

* Update NinjaConditionsSystem.cs

Change to efficient enumerator

* Move blacklist to component

Moved blacklist to spidercharge component

* Update migration.yml

fixed component reference

* Update migration.yml

Fixes Saltern. Exo is more complicated.

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-12-29 11:39:20 -06:00
Hitlinemoss 62f657f5f5 Replaces D&D5e-based paladin lawset with PF2e-based laws (#40343)
* Replace D&D5e paladin laws with PF2e paladin laws

* Truncated law 2
2025-12-29 11:39:20 -06:00
Davidandslarticodefast bd6d752b29 Refactor Crayons to use shared charges system and autonetworking. Adds auto recharging crayon. (#40575)
* Added special crayon with infinite charges for borg usage.

* Use battery system to manage charges.

* Reverted extra changes

* Set charge on init

* removed init assignment

* Added comments to crayoncomponent

* tweaked comments

* Working with the new charges component, but at what cost?

* Remvoed extra field

* Apply suggestion from @slarticodefast

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Apply suggestion from @slarticodefast

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Apply suggestion from @slarticodefast

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Apply suggestion from @slarticodefast

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Fix renamed variables and descriptions in comments

* Variable naming, comment cleanup and autonetworking.

* Fix for test case, modified on init

* Cleaned up/merged charges logic

* review

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:20 -06:00
Pokandpa.pecherskij 3409152873 Attempt to fix all unlocalized lines (#40284)
* missing-localization

* cmd

* fix: fixed patron page throwing exception due to unexpected patron tier in yaml

* Revert "fix: fixed patron page throwing exception due to unexpected patron tier in yaml"

This reverts commit 28458c78b1f2eed30fda898ec26059b27f1766f1.

* review and update

* no cmd

* fix

* fix 99

---------

Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-12-29 11:39:20 -06:00
MilenVolf d9db30932c Fix glassbox prototypes (#40667)
* Fix glassbox prototypes and its construction ghost exception

* Oops
2025-12-29 11:39:20 -06:00
qwerltaz 05142fef18 fix singulo generator triggering failsafe when field is obstructed (#39593)
fix singulo gen failsafe when field obstructed
2025-12-29 11:39:20 -06:00
slarticodefast bd874ed067 Predict artifact crushers (#40180)
predict artifact crushers
2025-12-29 11:39:20 -06:00
slarticodefastandArtisticRoomba 709ebff010 Predict damage examine (#40168)
* predict damage examine

* .

* required true

* nits

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-12-29 11:39:20 -06:00
Vanessa d62a8a54c7 Disable stun visuals for elementals 2025-12-29 11:39:20 -06:00
Davidandslarticodefast 81bc7960fb Fix Error Logged in Graffana for SharedStaminaSystem (#40764)
* Added Appearance component to MobElementalBase

* Added StunVisuals

* Changed MobElementalBase to inherit from BaseMob and MobCombat

* Fix linted error

* Fix damage type

* Apply suggestions from code review

* Update Resources/Prototypes/Entities/Mobs/NPCs/elemental.yml

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:20 -06:00
YotaXP 4bfbf387dc Decouple power sink from tickrate (#40789)
* Fix typo in `BatterySystem.ChangeCharge`.

* Decouple power sink behavior from tickrate.

* Fix power sink's price per joule
2025-12-29 11:39:20 -06:00
slarticodefastandArtisticRoomba 4354afdf08 Mindrole trigger condition (#40323)
* mind role trigger condition

* fix

* nits

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-12-29 11:39:20 -06:00
slarticodefast 31da074baf add event to dna scrambling (#39862)
add event
2025-12-29 11:39:20 -06:00
lunarcomets 94395edf26 fixed medical cyborgs not getting movement sprites (#39747)
the fix
2025-12-29 11:39:20 -06:00
45c25fb1ca Add variables to CluwneComponent, allowing for admeme customizing. Also localized two strings. (#40466)
* Add variables to cluwne component, update to the new style, add unremovable option to setoutfit.

* not nullable, shorthand

* Add comments, address reviews

* why, was i drunk?

* Apply suggestions from code review

---------

Co-authored-by: Jessica M <jessica@maybe.sh>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:20 -06:00
Connor Huffine 04e63c53bb Fix terminology (#40792)
c20r magazine description changed to "SMG"
2025-12-29 11:39:20 -06:00
FungiFellow a37c5f33a6 Lootpool Tweaks Mail/Maints (#39892)
* Added Claymore to MaintWeaponTable

* SyndieBusinessCard+InsulsTable
2025-12-29 11:39:19 -06:00
24e061bd4e Migrate revenant and PAI shops to use ActionGrant instead of hardcoding them (#40475)
* add intrinsic store, replace revenant store with it.

* migrate PAI and also move to shared where possible

* fix typos and clean up... intrinisic

* oops, hopefully fixes test

* Move to StoreSystem and ActionGrant

* documentation and remove thing

* review

---------

Co-authored-by: Jessica M <jessica@maybe.sh>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:19 -06:00
blobadoodle 3c373dbaf2 Add missing uranium glass locales (#40809) 2025-12-29 11:39:19 -06:00
Winkarst-cpu ddec12679f Fix masks with flash, eye, and damage protection working while being pulled down (#40331)
Fix
2025-12-29 11:39:19 -06:00
Vanessa 2b375b5132 Fixed LungComponent reference 2025-12-29 11:39:19 -06:00
thetuerk 5280db52c4 Predict LungSystem (#40729)
* Initial edits of files
Untested yet. I would like to make sure all is accounted for before moving the files.

* trying my best

* Revert "trying my best"

This reverts commit 9aeece466df0169adec97e3947b061b54fd9b388.

* Revert "Initial edits of files"

This reverts commit 45c6e2343844b5fcafadbf2e5115fb2f241086a1.

* an actual meal

* Added networking to LungComponent.cs

* removed duplicate using

* moving GasRagents to SharedAtmosphereSystem.cs
2025-12-29 11:39:19 -06:00
Connor Huffineandslarticodefast 7c57e97624 Move Bulldog Drum to Emag (#40790)
* Move Bulldog Drum to Emag

Bulldog drum removed from standard techfab
Moved to emag listing

* Update Resources/Prototypes/Recipes/Lathes/Packs/syndicate.yml

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:19 -06:00
Princess CheeseballsandPrincess Cheeseballs 138bd6203a PRevent the forever sleep. (#40366)
* Fix

* Rejuvenate

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:19 -06:00
SlamBamActionman 2deccd0e51 Add slowdown to nocturine, buff duration and minor delay reduction (#40797)
* Yawn

* Remove yawning because it's kind of a nerf tbh

* Remove newline

* Begone, condition
2025-12-29 11:39:19 -06:00
Leon Friedrich 43553cc680 Add generic event listener for integration tests (#40367)
* Add generic event listener for integration tests

* cleanup

* assert that the entity has the component

* comments & new overload
2025-12-29 11:39:19 -06:00
ScarKy0 067ca89c4f Change whitelist logic for parcel wrap (#40800)
* init

* review
2025-12-29 11:39:19 -06:00
slarticodefast 74a5d42791 Fix changeling blindness (#40517)
fix changeling blindness
2025-12-29 11:39:19 -06:00
Hitlinemoss a0478b9ee2 Added folders and clipboards to trinkets tab (#39920)
* Added folders to trinkets tab

* Fixed loadout grouping

* Added plastic clipboards to trinkets

* Whoops, forgot to create BoxFolderPlasticClipboardThreePapers prototype

* Added regular clipboards as trinkets (1 hour of command required)

* Reduced folder bloat
2025-12-29 11:39:19 -06:00
Centronias f454fdc8ba Wrapped Parcels can be labelled with Papers (#40783)
* labels

* oop

* Update Resources/Prototypes/Entities/Objects/Misc/parcel_wrap.yml
2025-12-29 11:39:19 -06:00
SlamBamActionman 65aba07f9c Allow more energy projectiles to hit holo creatures (#40782)
* Allow more energy projectiles to hit holo creatures.

* Disabler SMG
2025-12-29 11:39:19 -06:00
B_Kirill efdd361285 Cleanup warnings: CS0414, CS8524 (#40776)
* Cleanup

* CS8524
2025-12-29 11:39:18 -06:00
K-Dynamic 83eeb63b73 Fix: Allow energy shotgun lethal projectiles to hit holos (#37920)
BulletLaser opaque mask
2025-12-29 11:39:18 -06:00
YoungThugandSlamBamActionman 9acdd2f1a7 Fix the temperature gun not reflecting and going through windows (#37581)
* Fix Temp Gun

* Fix mask, muzzle flash

---------

Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
2025-12-29 11:39:18 -06:00
slarticodefast c6ccf13818 Add disclaimer about AI generated content to Readme.md (#39334)
* Add disclaimer about AI generated content to Readme.md

* Update README.md

* rephrase
2025-12-29 11:39:18 -06:00
ādaandiaada 6035471707 cleanup and reorganize belts.yml (#40773)
commit discipline? Never heard of it

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:18 -06:00
UpAndLeaves c00cae9b7d Slightly re-nerf zombification speed (#37445)
Initial Commit
2025-12-29 11:39:18 -06:00
ādaandiaada 1b798a7ead Clean up bucket.yml (#40772)
SMASH that bucket

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:18 -06:00
Archee 79e57ecf63 Fix- Cobras killing adders (#37424)
* fixed

* adds SimpleHostile to SpaceAdder (the stealth snake)

* whoops i branched this off a branch not master

This reverts commit fe1562581f91a113950cfedd284a1790e51a48e6.
2025-12-29 11:39:18 -06:00
SlamBamActionman 128e4c469e Change Energy Shotgun to fit as a Warden weapon (#40757)
* Initial commit

* Fix toggle mode name and also miscalculated charge times oops
2025-12-29 11:39:18 -06:00
Hitlinemoss a8cca225cb MRE wrappers / cotton nutri-bâtards are no longer twice as nutritious as nutribricks (#40761) 2025-12-29 11:39:18 -06:00
Hitlinemoss 1b961934f4 Added the golden shaker (playtime reward for Bartenders) (#40762)
* Added a golden shaker (playtime reward for Bartenders)

* Removed redundant icon line
2025-12-29 11:39:18 -06:00
David 76f602cb8d (Cleanup) Fix logger obsolete warnings (#40553)
* Switched obsolete logger usages to use Sawmill

Fix the majority of obsolete logger usages outside the engine code.

* Fix injection in ChatManager and revert BuildMech changes

* Removed extra manual injection

* Reduced extra static injection and reverted changes to CommandButton as it needs engine changes.

* Removed two more cases of double injection and an extra using

* Reverted changes for Inventory Display

* Moved sawmill setup outside constructor in Table to resolve test failure
2025-12-29 11:39:18 -06:00
SpankyandSlamBamActionman 519aaee2d8 Head of Security's Energy Magnum (and Warden's Energy Shotgun) (#40615)
* Energy magnum and projectile protos, locker fills, and traitor objective updates.

* Fix objective

* Objective and .rsi tweaks

* Rewrite item description.

* Remove energy shotgun self charging and decrease magnum disabler cost.

* Bring magnum disabler fire cost in line with regular disabler.

* Bunch of sprite improvements including charge status visuals.

* whoops

* Minor sprite edit for clarity

---------

Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
2025-12-29 11:39:18 -06:00
ādaandiaada a23fde4d21 Standardize state names in drinks yml (#40316)
* drinks_base

* drinks_special

* drinks_fun

* drinks_cans - the holy minus diff

* bottles_glass and metamorphic

* mugs

* Solar's Best Hot Drinks

* misc drinks_cups

* slight addition to base

* lint fix

* metamorphic glass

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:18 -06:00
ādaandiaada 22624cf5aa Cleanup material_doors.yml (#40666)
cleanup

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:18 -06:00
dffdff2423andslarticodefast e3ab862e35 Add log statement for missing guidebook proto (#40380)
* Add log statement for missing guidebook proto

Also removed an unused parameter.

* Update Content.Client/Guidebook/DocumentParsingManager.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:18 -06:00
MoraandTrixxedHeart 8ebc7373d5 Added Vox Beak Types, New Markings, and Sprite Layering Fixes (#40569)
* Added more Vox customizations

* Adds Vox Head Markings

* Update meta.json

* stray comma, woe be upon ye

* added tiny pixel to visage left and right

* Added eyeliner ftl

* Removed duplicate FTL

how the fuck did this happen

* Added cheek marking

* Made tip marking look a bit better

* Fix eyeliner ID

* ok whatever shut up build test. mean to me

* changed underbelly to have more flat transparency

* didnt like how it looked so i adjusted it

* Adjusted base eyeliner color

* Fixed inconsistency with nightling head tattoo

* Updated V tattoo

* Delete chest_v.png

* fix yml

ITS EVEN FUNNIER THE SECOND TIME

* minor sprite fix

* Update head.png

* Re added stray pixel, added square cere beak

* Added hooked beak

---------

Co-authored-by: TrixxedHeart <46364955+TrixxedBit@users.noreply.github.com>
2025-12-29 11:39:17 -06:00
pre-commit-ci[bot] d4f8c81452 [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-12-29 11:39:17 -06:00
Vanessa 72b3debe1a Playtime format fixes. Other minor fixes. 2025-12-29 11:39:17 -06:00
Errant e00bd6dc47 Replace all time requirements with bats (#40751)
time requirement format update
2025-12-29 11:39:17 -06:00
Deserty0 97ddf11135 New HTN precondition: has status effect (#39781)
* Create HasStatusEffectPrecondition.cs

* Update HasStatusEffectPrecondition.cs

* ok now it works

* Update HasStatusEffectPrecondition.cs
2025-12-29 11:39:17 -06:00
FungiFellow 73b01bd0d3 Biosuit Suit Slots (#39888)
* Added Gastank Storage to Biosuits, Weapon/Gas to Sec Biosuit

* Fixed Error

* Sec Suit no longer Child to General Biosuit

* Update cargo_security.yml
2025-12-29 11:39:17 -06:00
kosticia 7958627bb8 Unpredict MagnetPickupSystem.cs (#39988)
* unpredict

* predict
2025-12-29 11:39:17 -06:00
Vanessa 1be4577e12 Fixed a few Brain references 2025-12-29 11:39:17 -06:00
Kyle Tyoandslarticodefast 1940cc0527 Move BrainSystem and necessary components to Shared (#40499)
* yowza

* Update Content.Shared/Body/Systems/BrainSystem.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.Shared/Ghost/GhostOnMoveComponent.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update BrainSystem.cs

* Update Content.Shared/Body/Systems/BrainSystem.cs

* Update Content.Shared/Body/Systems/BrainSystem.cs

* Update Content.Shared/Body/Systems/BrainSystem.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:17 -06:00
FungiFellowandslarticodefast 31e762adb6 Cancer Mice Ghostrole Info (#40102)
* Adjusted Cancer Mouse Ghost Info

* Updated Smite Snail

* Added ghostrole info

* Remove snail info

* Update space.yml

* Update Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl

* Update Resources/Locale/en-US/ghost/roles/ghost-role-component.ftl

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:17 -06:00
Leon Friedrich 4a98c6e7d7 Fix post-mapinit NPC exception (#40244)
Ensure `NPCBlackboard.Owner` is set during startup
2025-12-29 11:39:17 -06:00
Vanessa 6a296d0b95 Disable KFV pretty much 2025-12-29 11:39:17 -06:00
IProduceWidgets c222abf897 Vox burn into fried chicken (#40115)
* Sir, this is a KFC.

* the curse of multi-parenting

* 11 herbs and spices of intrigue
2025-12-29 11:39:17 -06:00
Lordbrandon12 b5192e29e9 changes the min and max variables in the TargetTemperature clamp to t… (#40453)
changes the min and max variables in the TargetTemperature clamp to the space heater min and max temperatures
2025-12-29 11:39:17 -06:00
SurrealShibe 9da2103b7f Give mimes their french bread back (#40601)
* add the nutri-batard

* i missed this file smh

* add the proper accenting to "bâtard"
2025-12-29 11:39:17 -06:00
GeneralGaws 443424ae04 Change Discord round restart text (#40584)
* discord-notif

* grammar
2025-12-29 11:39:17 -06:00
Proleandāda 1ff2366978 Golden Plunger General Fixes & Tweaks (#40619)
* Plung Plunges

* C# solution replaced with yaml solution, made sprite in-line with normal plunger, & alt click works now

* Update Resources/Textures/Objects/Specific/Janitorial/janitorial_cart.rsi/meta.json

Co-authored-by: āda <ss.adasts@gmail.com>

* Chameleon Tag Added

* a TODO

---------

Co-authored-by: āda <ss.adasts@gmail.com>
2025-12-29 11:39:17 -06:00
Jessica MandJessica M e2c1c3f853 Let gorillas pull things (#40700)
gorilla pull
gorilla bring
gorilla

Co-authored-by: Jessica M <jessica@maybe.sh>
2025-12-29 11:39:17 -06:00
HuaqasandArtisticRoomba 78ecf37292 Remove the Tanakh and Satanic Bible from the game. (#39698)
* Remove the Tanakh and Satanic Bible from the game.

* Update migration.yml

* Renamed to Space Bible

---------

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-12-29 11:39:17 -06:00
Huaqas b999321bb5 Create more Holy Books based off Spacestation 14 Dieties (#39181)
* Add More Holy Books

* Remove reference of original fork in meta.json

* Removed "rich" reagent description for Blessed Bolognese, and replaced with "holy".

* Updated Holy Liquids to each have their own minor effects.

* Tuned down Nar'sie Blood

* Create playtime requirements, and relocate holy water to it's own category.

All holy waters created through a bible are now located under the "Sacred" section of the guidebook, as to help maintain clutter.

* Replace 'curse' mixing verb with 'bless'.

* Update and fix guidebook to have section for 'Sacred' liquids.

* Add back in Tanakh and Satanic Bibles so they can be removed in other PR.

* Forgot to re-add the prototypes.

* Add back the time requirements I mistakenly removed.

* Remove Italian Bible

* Fix errors.

* Remove Carps & Crypts

* Relocate .ftl designations to their own sacred.ftl

* Forgot to update single_reagent.yml. Updated it now.

* Ended the communist dream. (Removed Communist Manifesto option for Chaplain)

* Give lamp book a little more pizzazz.

* Single line indent applied

* test

* untest

* Update sacred.yml

* Remove Unused Bibles, rename druids, moth bibles.

* Remove custom reagents.

* Error fixes.

* Reorder Bibles to Save my OCD.

* Flip that pentagram.

Bro must of rolled a nat 20 in convincing people this should be flipped. I know its more "accurate", but the layman will probably look at this and say its wrong.
Just a personal thought that escaped my brain and will never be read.

* Rename Druid Tablet, Delete Lantern Path

* Delete icon.png

* Delete inhand-left.png

* Delete inhand-right.png

* Delete meta.json

* Update chaplain.yml

* Update loadout_groups.yml

* Reorder for OCD
2025-12-29 11:39:17 -06:00
79a19e9629 Skeletons are now playable instruments (#40009)
* skeletons are now instruments

* switch to xylophone

* Fixes

---------

Co-authored-by: Jessica M <jessica@maybe.sh>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:16 -06:00
ādaandiaada 78fee46d79 Document tags: C - F (#40711)
* one step forward

* the letter C

* some of D

* the letter D

* the letter E

* the letter F

* stay in scope don't stray

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:16 -06:00
AbsotivelyandQuantum-cross 6a5c0d2bef Fix species default skin tones (#40707)
fix so that all default Urist entities don't spawn with the same default human skin tone (cursed skin tone Urist McSlime)

(cherry picked from commit 8d9564c23856c342bc3a35834c462e659f5ebd5b)

Co-authored-by: Quantum-cross <7065792+Quantum-cross@users.noreply.github.com>
2025-12-29 11:39:16 -06:00
Centronias 1b502687dd Prioritize spoon mixing over drinking (#40704)
* no, I can't use a spoon to drink a drink.

* Update Content.Server/Chemistry/EntitySystems/ReactionMixerSystem.cs
2025-12-29 11:39:16 -06:00
mq d2342015ae fix edge case typing indicator error (#40708)
* cleanup rsi error in typingindicatorvisualizersystem

* sprite fix
2025-12-29 11:39:16 -06:00
SlamBamActionman 99bc57bd47 Add Arrivals sign (#40227)
* Arrivals sign

* Waving!!!

* Attribution
2025-12-29 11:39:16 -06:00
NoreUhhandNoreUhh 8fb43be46d Ian Suit gives accent! (#40694)
Ian suit has been made STRONGERgit add Resources/Prototypes/Entities/Clothing/OuterClothing/suits.ymlgit add Resources/Prototypes/Entities/Clothing/OuterClothing/suits.yml

Co-authored-by: NoreUhh <noreuhh@gmail.com>
2025-12-29 11:39:16 -06:00
Princess CheeseballsandPrincess Cheeseballs 8de17f06e6 Incendiary rounds do pierce (#39204)
* Incendiary rounds do pierce

* Address review

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:16 -06:00
Kowlin e258e9c64e Add high severity logging to stun prods (#40709) 2025-12-29 11:39:16 -06:00
MoomoobeefandEd e439cf805d made evac signs glow (#38545)
Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
2025-12-29 11:39:16 -06:00
Vanessa 19308e6737 Fixed EMPs and Ion damage. Fixes #4989 2025-12-29 11:39:16 -06:00
Vanessa 8f34b7daf2 Moved SiliconEmpSystem to shared. 2025-12-29 11:39:16 -06:00
Vanessa cf05c060b3 EMP systems fixes 2025-12-29 11:39:16 -06:00
slarticodefast d4980c0b9f Predict EMPs (#39802)
* predicted emps

* fixes

* fix

* review
2025-12-29 11:39:16 -06:00
Vanessa faf639faea Fixed VomitSystem refs. 2025-12-29 11:39:16 -06:00
Vanessa 16b0fdb37d Updated DV XenoArch trigger. 2025-12-29 11:39:16 -06:00
Kyle Tyo 1afa833ec6 VomitSystem, Predict! (#39921)
* commit

* Update AdminVerbSystem.Smites.cs

* brrrrr

* reeeee

* skeet

* Update VomitSystem.cs

* didn't know i could do this.

* Update SharedForensicsSystem.cs

* Update SharedForensicsSystem.cs

* Update SharedForensicsSystem.cs

* Update ForensicsSystem.cs

* requested changes.

* Update VomitSystem.cs

* lets try this.
2025-12-29 11:39:16 -06:00
beck-thompson 37028e2b6f Explosives with timers now properly alert admins when detonating (#40471)
* Explosives with timers now properly alert admins when detonating

* add TODO comment

* Check if user is deleted before triggering
2025-12-29 11:39:16 -06:00
slarticodefast bd776148f1 Add integration test for the RCD (#40625)
* rcd test

* fixes

* fix

* space

* review
2025-12-29 11:39:15 -06:00
K-Dynamic 8dd3abb160 Adds smart equip to pocket 1, pocket 2, and suit storage slots (#37975)
* pockets and exosuit smartequip

* add localisation
2025-12-29 11:39:15 -06:00
Nemanja cbe94db2fe Fix xenoarch exceptions + misc. cleanup (#38742) 2025-12-29 11:39:15 -06:00
Tayrtahnandslarticodefast 5dbeb77ffe Add interaction tests for mousetraps (#35502)
* Add interaction tests for mousetraps

* Silly yaml linter

* review

* fix debugging thing

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:15 -06:00
Pieter-Jan Briers 1690c86ede You can now stuff the nuke disk in plushies (#40674)
Because there's no reason you shouldn't be able to.

Fixes #40669
2025-12-29 11:39:15 -06:00
Vanessa 464e19065f Moved DV specfic tag to DV namespace 2025-12-29 11:39:15 -06:00
ādaandiaada e9134034ac Document tags.yml: A and B (#40673)
* fix alphabetization

* the letter A

* the letter B

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:15 -06:00
Crude Oil 17471babbd Fix PDA point lights (#40687)
tweak pda point light
2025-12-29 11:39:15 -06:00
NoreUhhandNoreUhh 044049bcd8 Cyborg Martyr Module Free Hand Fix (#40224)
* Added and attached tags for BorgGrenade, whitelisted borg hand, added Unremoveable to selfdestructseq.

* Added locales, fixed labels.

* Update borg_modules.yml

I fricked up, its fixed

* Update borg_modules.ftl

Removed Self Destruct label

* Update tags.yml

Removed tag: BorgGrenade

* Update borg_modules.yml

Removed hand whitelist because it hates my guts

* Update grenades.yml

Removed the BorgGrenade tag, made the explosive component repeatable and removed delete after explosion

---------

Co-authored-by: NoreUhh <noreuhh@gmail.com>
2025-12-29 11:39:15 -06:00
kosticia 1a38f3627b nerf cheese prices, part 2: electronics (#38246)
should work now
2025-12-29 11:39:15 -06:00
kosticia 7bfff0eef6 nerf cheese prices, part 1: bedsheets (#38230)
* bedsheet

* Revert "bedsheet"

This reverts commit f76aa18be169bf7daf1ce0e1bd937299827016fa.

* price

* mistake
2025-12-29 11:39:15 -06:00
Leon Friedrich 7240ab57dc Suppress SharedMapSystem info logs in tests (#40592)
* Supress informational `SharedMapSystem` logs in tests

* Why is the client like this
2025-12-29 11:39:15 -06:00
KowlinandPrincess Cheeseballs fd98ce3581 Conditional Meat spike logging severity (#40604)
* Reduce meatspike logging level from Extreme to High on non gibbing interactions

* Update butchering with some more conditionals

* Update Content.Shared/Kitchen/SharedKitchenSpikeSystem.cs

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>

* Update Content.Shared/Kitchen/SharedKitchenSpikeSystem.cs

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>

---------

Co-authored-by: Princess Cheeseballs <66055347+Princess-Cheeseballs@users.noreply.github.com>
2025-12-29 11:39:15 -06:00
MilenVolf 2a9cf441f8 Localize space villain arcade (#40641) 2025-12-29 11:39:15 -06:00
Myra 3136a831df Remove x86 targets from Content Packaging (#40664)
They don't compile and even if they did, I doubt they would work.
2025-12-29 11:39:15 -06:00
ādaandiaada 9d09916f6d Smuggler Satchel Heisen (#40665)
* heisenburger

* fix

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:15 -06:00
Zeneganto 533ecf58e3 Fix lockbox ERRORing (#40642)
bruh
2025-12-29 11:39:15 -06:00
Archeeandiaada 9e082e00f2 Material Door rebalancing (#36597)
* refactors in material_doors.yml,
lowers destructible thresholds on most doors,
changes damageable modifiers for doors lowering their resistances,
adds partial material drops to doors being destroyed

* adds poster break sound to paper door breaking

* merge conflicts

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:15 -06:00
lzk 59f6f9948e some entities name fixes (#40663) 2025-12-29 11:39:15 -06:00
Princess CheeseballsandPrincess Cheeseballs e3f8cea8e9 [HOTFIX] Fix Antags failing to roll. (#40658)
Use TryGetCached instead of GetCached

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:15 -06:00
Leon Friedrich ac8873e164 Remove static IoC from client & server EntryPoint (#40562)
* Remove static IoC from client & server EntryPoint

* Fix missing log manager initialization

* file namespace
2025-12-29 11:39:15 -06:00
Schuyler Duryee edaa357387 Add utility knife/box cutter (#39567)
* add sprites for box cutter

* move box cutter to melee, add yaml

* remove unneeded soundHit yaml

* add opening sound effect to box cutter

* modify sprites to look more like actual box cutters

* add BoxCutter tag and add to belts

* rename box cutter to utility knife

* remove accidental backtick

* move utility knife to correct place in tags

* remove SECOND accidental backtick??

* Fix utility knife arbitrage by reducing steel to 50

* Reduce damage to 4

* Reduce knife bounty reward to $2000

* modify utility knife icon to be larger

* Make utility knife extendable/retractable

* move slicing out of ComponentToggler

* change utility knife extend/retract sound

* Use TiniestShark's larger inhand images for utility knife

* utilty knife is now only Slicing when activated
2025-12-29 11:39:15 -06:00
LeahandGeorg Stuewe c354d66f30 moved desoxyephedrine from ambrosia to glasstle (#40638)
Co-authored-by: Georg Stuewe <georg.stuewe@uni-konstanz.de>
2025-12-29 11:39:15 -06:00
Vanessa a04afc05c6 Additional heads locker cleanup. Added totes for CJ. 2025-12-29 11:39:15 -06:00
Vanessa 6daff5d7f4 Gave the shitmed examine icon its own file so it wouldn't crash the client 2025-12-29 11:39:14 -06:00
Mixelz 9f52e5ac5c Organized Head Locker Fills Feat. Circuit Totes. (#39868)
* Initial Commit

Added Circuit Totes, replaced Head Locker fills with Tote fills, also stamp boxes for relevant heads.

* Craftable!

Now craftable: Uses 1 cardboard and 1 cloth (gotta keep the circuits cushioned!)

* Various Fixes

Fixed indenting, added comments, fixed names, tried for 5 hours to get the table fill to work, failed.

* test fail fix

aaaaaaaa

* TEST FAIL WHYYYY

AAAAAAAAAAAAAAAAAAAAA

* test fail fix 3 feat. iaada

*mothscream.oog*

* SURPLUS BOARD USES TOTE NOW

THANK YOU IAADA

* indent fix & storage base fix

Fix for indents and also the storagebase bug

* Master Merge Fix

* Update meta.json

* forgor the important part
2025-12-29 11:39:14 -06:00
K-Dynamic 51709b97d3 Increase puddle spillover volume to 50u (#38044)
* increase puddle spillover volume

* sleepy; 50u volume
2025-12-29 11:39:14 -06:00
YoungThug 4467808e37 Prisoner Eva Suit is now an Emergency Eva Suit (#36696)
* :3

* :3 The Second

* :3 the third
2025-12-29 11:39:14 -06:00
VelcroboyandVelcroboy 99b477739e Adds default "Toggle" to "Status" linking port (#37690)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-29 11:39:14 -06:00
Varen a188e99499 Allow multitool device saving on devices with wireless (#38938)
-Device network list will not override device linking anymore if existing
2025-12-29 11:39:14 -06:00
Fildranceandpa.pecherskij 231d2f6892 fix: scan for ShowAccessReaderSettingsComponent on examiner and not on airlock (#40626)
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-12-29 11:39:14 -06:00
Sender 49377ddc2a Stage Name For Musicians (#40640)
added stage name for musicians
2025-12-29 11:39:14 -06:00
Mixelz 94c24a0db7 Ambrosia/Glasstle Prototype Bugfix (#40639)
* Prototype Parity

Ensured Ambrosia/Glasstle prototypes are in parity with their seeds.

* Comment Fix

Change to Max Volume to match new output.
2025-12-29 11:39:14 -06:00
pre-commit-ci[bot] 14af4e730e [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-12-29 11:39:14 -06:00
Minerva 2fc515a90a Minor typofix for the experiment plushie description (#40635)
Typofix for the experiment plushie description
2025-12-29 11:39:14 -06:00
Minerva 55c4db8f95 Typofixes and rephrases a bunch of job descriptions (#40634)
* Typofixes and rephrases a bunch of job descriptions

* I am not immune to making typos while typofixing
2025-12-29 11:39:14 -06:00
Spanky 8021056eda Hit 'em with the Michaelwave (#40618)
* michaelwave

* Add DamageOnHit to microwaves

* Un-offset the sprite files and add offset component.
2025-12-29 11:39:14 -06:00
Minerva 4caf83f073 Minor change to the Hydra description (#40629) 2025-12-29 11:39:14 -06:00
Minerva 8eed255ad0 Fixes conveyer typos (#40627)
Fixes conveyer typo
2025-12-29 11:39:14 -06:00
Minerva f88047997d Fixes a typo in the leaking SUPERPACMAN description (#40628) 2025-12-29 11:39:14 -06:00
Minerva 4bff799ee0 Rephrases two Whistle descriptions (#40631)
Rephrases the Whistle descriptions
2025-12-29 11:39:14 -06:00
Minerva 7a7736d721 Two bounty typo fixes (#40633)
* Two bounty typo fixes

* Wait I phrased that weirdly
2025-12-29 11:39:14 -06:00
Sir Warock 6a79e627e0 Fix Shotgun ammocount not updating (#40568) 2025-12-29 11:39:14 -06:00
Pieter-Jan Briers 17f418da46 Make file dialog API usages read-only (#37779)
Requires https://github.com/space-wizards/RobustToolbox/commit/4e7de2f272cafc687c775fceb16b88681fcfd7e3

Fixes #37762
2025-12-29 11:39:14 -06:00
Jessica MandJessica M 7952493443 Fix chess dimension smite (#40583)
turns out it works fine if you just keep physicscomponent

Co-authored-by: Jessica M <jessica@maybe.sh>
2025-12-29 11:39:14 -06:00
Kowlin 8c08c53062 Add logging for additional grilles (#40603)
Add logging for missing grille events.
2025-12-29 11:39:14 -06:00
Vanessa d88b18eaa7 Fixed some syndicate PDAs 2025-12-29 11:39:14 -06:00
Stefano PigozziandSteffo99 f8516355ea Replace outdated tip 79 about artifact scanners (#40597)
Co-authored-by: Steffo99 <1540885+Steffo99@users.noreply.github.com>
2025-12-29 11:39:13 -06:00
keronshb 9565c2f54f Removes Taser Bolt Damage & Allows Tasers to be used by Pacifists (#40588)
* Removes damage from the taser bolt

* Allows tasers to be used by pacified players

* Sets the taser damage to 0 or else it'll inherit damage
2025-12-29 11:39:13 -06:00
Vanessa 4b47cf78fa Removed duplicate priority property 2025-12-29 11:39:13 -06:00
Leon Friedrichandslarticodefast ce44c76fc5 Clean up some parts of ExplosionSystem (#40485)
* Clean up some parts of ExplosionSystem

* Update Content.Shared/Damage/DamageSpecifier.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Review

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:13 -06:00
MoraandTrixxedHeart 032596cf90 Added Vox Mime Hardsuit Sprite (#40567)
* Added Vox Mime Hardsuit

* missing pixels fix

* fixed pixel on hardsuit sprite

* updated vox mime helmet sprite

* made tip slightly smaller

* Add Attribution

---------

Co-authored-by: TrixxedHeart <46364955+TrixxedBit@users.noreply.github.com>
2025-12-29 11:39:13 -06:00
Vanessa 24ca1b94e7 Updated the number of max storage windows 2025-12-29 11:39:13 -06:00
Princess CheeseballsandPrincess Cheeseballs b27be42aae Edible Verb Fixes (#39933)
* You cannot drink the cannot drink

* Undo that shit

* Whoops

* Fix test fails

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:13 -06:00
keronshb 04344ff872 Readds Tasers to Security (#39087)
* Readds taser to security

* removes item drop from regular tasers, adds item drop to admeme tasers

* Fixes stun on collide options

* Fixes drop

* Lowers fire rate for taser
2025-12-29 11:39:13 -06:00
Vanessa 1a06e97f31 Fixed a vox emote thing 2025-12-29 11:39:13 -06:00
Sender a6c023a59e Salv Instrument Spawn Rework (#40572)
added salv table + replaced instrument table
2025-12-29 11:39:13 -06:00
Vanessa 09fa4c8899 Fixed a few small issues with upstream merge 2025-12-29 11:39:13 -06:00
Mora be494f3714 More Vox Sounds (#39914)
* Added more vox sounds

WHY IS IT ORGANIZED THIS WAY.

* Fix incorrect license fields

* License fix

* move vox_gasp.ogg to gasps

* Update Attributions

* Update attributions.yml

* file path fix

* Update attributions.yml

* Update attributions.yml

* Update attributions.yml

* Update attributions.yml

* Update attributions.yml

* Update attributions.yml

* Standardize Attributions, fixed sources

* Adjusted Vox DeathGasp and sigh to be more auditorily distinct from one-another

* Made vox gasp slightly faster
2025-12-29 11:39:13 -06:00
785e677ad5 Stunned Status and Knockdown Meth fix. (#39547)
* Init Commit

* Remove unused code, fix stun visuals bug

* Update Content.Shared/Stunnable/SharedStunSystem.cs

* Some initial changes

* first batch of changes

* Commit

* One line cleanup

* KnockdownStatusEffect ain't worth it.

* Fix 2 bugs

* Fixes

* Remove that actually,

* Maybe this?

* Meff fix

* Meff fix

* alert cleanup and API

* I expect update loops to be at the top.

* Fix LOC

* Address review

* Address review x 2

* Merg my PR

* Fix

* Update Content.Shared/Alert/AlertsSystem.cs

webedit

Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>

* FIX THAT TEST FAIL!!!!

* Me when I forget to actually give you alerts

* Push

* Tests are not failing locally why are they dying on github???

* Fix test fails (real)

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>
2025-12-29 11:39:13 -06:00
Princess CheeseballsandPrincess Cheeseballs eb971395de Vulp Plushie (#40303)
* Textures

* Plushie

* Fix sprites and add entity tables

* Copyright info

* Fix food sequence

* I'm dum

* head sprite update

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:13 -06:00
ādaandiaada 4677ec0294 Fix instrument crate heisen test (#40558)
* 1984 daw

* too tired to be doing this

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:13 -06:00
675c78a435 Minor plushie.yml touchup (#40552)
* horrible commit discipline what else is new

* second pass

* conflict

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:13 -06:00
SlamBamActionman aa82894de2 Add a sleep delay to Nocturine (NewStatusEffect version) (#40231)
* Initial commit

* Minor fix

* Why is this uncommented here? Hmmm

* No wait this can't be here, oops

* Do better time

* Also guidebook

* Review changes

* Add rejuvination, fix mispredicts
2025-12-29 11:39:13 -06:00
CraftyRenterandPrincess Cheeseballs fb1ae3a70f Make Closets Less Tanky Than Gun Safes (#35671)
* Reduce ClosetBase's DamageTrigger to 50 from 150.

* Increased LockerBase's DamageTrigger to 75, doubled LockerBaseSecure's DamageTrigger

This and the previous commit aim to improve health scaling of storage closets with their intended level of security. The
damage scale is as follows:

Inheritors of ClosetBase:       50 (old 150)
Inheritors of LockerBase:       75 (old 50)
Inheritors of LockerBaseSecure: 150 (old 75)

I left suit lockers alone because visually they look the tankiest of the lockers, though it may make sense to have them
in between secure lockers and regular lockers.

* COMMIT

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:13 -06:00
Leon Friedrich 5249bb9c88 Update engine to v267.2.0 (#40560) 2025-12-29 11:39:13 -06:00
Princess CheeseballsandPrincess Cheeseballs cb73bce194 [BUGFIX/CLEANUP] Edible Plushies and Clothes (#40276)
* Hongry...

* AAAAAAAAAAAAAAAAA

* Extremely silly test fail

* Fix another dumb test fail

* Fix test fails (Real)

* Fix 2

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:13 -06:00
Hitlinemoss 75bbf99491 Added white towels to autolathe and uniform printer (#40160)
* Added white towels to autolathe and uniform printer

* Towel printing cost is now consistent with reagent quantities in uniforms instead
2025-12-29 11:39:12 -06:00
Hitlinemoss 31a6193711 Xenoborg items are now highly illegal (#39856)
* Added tactical katana + tactical katana shipment (placeholder descriptions)

* Revert "Added tactical katana + tactical katana shipment (placeholder descriptions)"

This reverts commit aa1928be7f4d938df1838943781e63c47a03cc11.

Whoops, committed to master by mistake

* Xenoborg contraband is highly illegal now
2025-12-29 11:39:12 -06:00
SenderandPrincess Cheeseballs 8cfea3f9c0 Random Instrument Collection (#40532)
* added random instrument crate + tables

* added limit to SS + added new SS with no limit

* Push

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:12 -06:00
IProduceWidgets 233d9162e8 Admin smite: Homing rods. (#40246)
* add homing rod support

* oop

* speed betterer

* commentia
2025-12-29 11:39:12 -06:00
IProduceWidgets ecec1e3093 Add explosive cord. (#25875) 2025-12-29 11:39:12 -06:00
Mora fcf455d5a2 fix out of bounds pixels on vox neck displacement map (#40495)
fix out of bounds pixels on vox displacement map
2025-12-29 11:39:12 -06:00
c2589751b3 Rat King Refactor Part 0: Separate Rummaging from RatKingComponent. (#40530)
* separate rummager into its own component/system

* thing

* address review and entitytables

* reviews

* review

* warnings

* Update Content.Shared/RatKing/Systems/RummagerSystem.cs

---------

Co-authored-by: Jessica M <jessica@maybe.sh>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:12 -06:00
Vanessa f1dc884011 Fixed some devil YAML issues 2025-12-29 11:39:12 -06:00
Vanessa fa7b41b788 Fixed identity namespace in Devil code 2025-12-29 11:39:12 -06:00
ādaandiaada c4f651eca7 Move circuit tiles and faux tiles to the cutter machine (#37982)
* super cutter machine

* split the big tile pack

* re-add new faux

* consistent naming

* missing category

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:12 -06:00
NoxandArtisticRoomba 642bfa1c33 Descriptions for .20 Rifle (#36496)
* Initial commit - added Lecter and munitions descriptions, need to make one for the M-90GL...

* Fixed a formatting issue in the Lecter description, should be ready for review!

* Tests gaslighting me

* Third times the charm

* 99% of gamblers quit before the big win

* Update Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>

* Updated with roomba's changes

* Formatted descriptions, ready to go!

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

* Fixed formatting WITHOUT using spaces

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

* Updated weapon names.

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

* Added Roomba's suggestions

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

* Reverted AKMS formatting - outside the scope of this PR.

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

* Updated Estoc's description.

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

* Added AugustSun's suggestions.

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

* Slightly rephrased, im happy with it now.

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

* Fixed projectile names

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

* thats not even a bullpup dumbass

Signed-off-by: Nox38 <nebulousnox38@gmail.com>

---------

Signed-off-by: Nox38 <nebulousnox38@gmail.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-12-29 11:39:12 -06:00
Keer-Sar 3f5a3e3c14 Add "Lizard Visage" Snout Markings to lizards (#35294)
* initial commit

* Update attribution in meta.json

* Fix yaml formating in meta.json
2025-12-29 11:39:12 -06:00
Samuka-C b6841b9de5 Xenoborg jammer now ignores xenoborg associated frequencies (#38005)
* stop jammer from jamming radio of certain frequency

* xenoborg jammer no longer jamms xenoborg radio

* stop jammer from jamming device network signals from certain frequency

* xenoborg jammer no longer jamms xenoborg camera signal

* the old tale of the missing ;

* backwards

* fix issue with readonly

* comments to the frequencies excluded

* triple typo

* clearer summary

* add summary

* fixed 4th hidden typo
2025-12-29 11:39:12 -06:00
RedBookcaseandRedBookcase ac3ee45d83 Recharger tweaks. (#38138)
* Recharger tweaks.

* Remove note.

* Fix Potato blacklist.

---------

Co-authored-by: RedBookcase <Usualmoves@gmail.com>
2025-12-29 11:39:12 -06:00
lzk 4b11954c7b bunch of small cleanups (#40529)
* bunch of cleanups and fixes

* AND REMOVE THIS
2025-12-29 11:39:12 -06:00
Kittygyat 37501f74cb Added diagnostic huds to the engi-vend (#40461)
Added diagnostic huds to the engivend
2025-12-29 11:39:12 -06:00
ādaandiaada 7e556107ed Fix dev crash when alt+clicking portals (#37540)
* Ghost portal dev crash

* ent<T>

* better comments

* refuse to reuse

* touchup comments

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:12 -06:00
hoshizora b16ca09b0d Fire helmets alone no longer prevent you from heating up while on fire (#40481)
* do the thing yeah

* tweaked values on regular fire helmet including cooling

* adjusted values again after further testing also to the atmos fire helmet
2025-12-29 11:39:11 -06:00
ādaandiaada afe5bbda9f Miscellaneous Food/Drink/Edible fixes (#40060)
* bugfixes

* Revert "bugfixes"

This reverts commit 7fe31a866fc4dc299a1667291c0744716092db19.

* Revert "bugfixes"

This reverts commit 7fe31a866fc4dc299a1667291c0744716092db19.

* more reverting

* conflicts

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:11 -06:00
āda 755233ab19 TriggerOnPlayerSpawnComplete and ExplosionOnTrigger (#39820) 2025-12-29 11:39:11 -06:00
ādaandiaada 357c3eb1a8 Predict identity (#40185)
* crossing the pond

* share some station records

* share some criminal records

* single system

* comments

* minor touchups

* I always forget this part

* requested changes

* revert predicted spawn

* requested changes

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:11 -06:00
DrSmugleaf a940dfc763 Fix SpawnAndDeleteEntityCountTest Entities and last assert being incorrect (#40511)
Fix SpawnAndDeleteEntityCountTest last assert being incorrect
2025-12-29 11:39:11 -06:00
beck-thompson e21b2d4298 Agent ID verbs now don't require you to pick it up (#40524)
make consitant
2025-12-29 11:39:11 -06:00
Jessica MandJessica M 06800242e6 Weather On Trigger (#40505)
* Weather On Trigger!

* Clearing the weather

* address review, add duration option

---------

Co-authored-by: Jessica M <jessica@maybe.sh>
2025-12-29 11:39:11 -06:00
Prole 7d7cce25e8 Target Dummies Now Show Damage Numbers from Projectiles to User (#40101)
* Uh, guess this works for now

* Review Change
2025-12-29 11:39:11 -06:00
8ddcbba5ee [HOTFIX] Chameleon projector invisibility (#40509)
* GOGOGO

* Hotfix

* TODO

* Update Resources/Prototypes/Entities/Objects/Devices/chameleon_projector.yml

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:11 -06:00
B_KirillandElectroJr 419aaa59a2 Cleanup warnings: CS0067, CS8509, CS8073 (#39770)
* Cleanup

* Bonus

---------

Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2025-12-29 11:39:11 -06:00
B_Kirill d0b117ec43 Cleanup warnings: Use TransformSystem for anchoring (#39778)
* Cleanup

* Bonus

* I hope this helps

* Revert
2025-12-29 11:39:11 -06:00
LordCarveandElectroJr 00c952a1d5 Cleanup - Use RemoveAllChildren() over DisposeAllChildren() (#39848)
* Content - change the (should-be-obsolete) DisposeAllChildren into the more robust RemoveAllChildren.

* Remove duplicate calls.

---------

Co-authored-by: ElectroJr <leonsfriedrich@gmail.com>
2025-12-29 11:39:11 -06:00
Minerva 0fec40d85d Fixes suprise typo in the guidebook (#40501) 2025-12-29 11:39:11 -06:00
Minerva 512257a394 Fixes all departamental typos (both just in comments) (#40502)
Fixes all departamental typos
2025-12-29 11:39:11 -06:00
beck-thompson 81a270a8d2 Shuttle UI now properly goes into pilot mode only when using the UI (#40491)
Shuttle UI bug fix
2025-12-29 11:39:11 -06:00
Princess CheeseballsandPrincess Cheeseballs 0736809107 Vulpkanin Admin Smite (#40360)
* Cheeborger

* Vulp smite

* validate those ProtoIds

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:11 -06:00
6d48ed086e add silicon smite (#40452)
* add silicon smite

* change string to prototypes

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>

* alphabetitize

* fix stuff scar broke

* clean

* make target have the silicon mindrole

* simple check

* defined a private readonly proto for the silicon mind role

* simple check

---------

Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
Co-authored-by: ScarKy0 <scarky0@onet.eu>
2025-12-29 11:39:11 -06:00
chromiumboy d16c5ea8e3 Health increase for station AI cores (#40487)
* Initial commit

* Increased health further
2025-12-29 11:39:11 -06:00
ādaandiaada f31361f4c8 Average min+max in MaterialArbitrageTest (#39578)
* feels too easy

* I guess this counts

* commit

* could have sworn I ran the test

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:11 -06:00
ToastEnjoyer 4a84eeec46 Removed suspicion antags from antags.ftl (#40493) 2025-12-29 11:39:10 -06:00
Samuka-C 8d6a6ab07d Fool players with status command (#40460) 2025-12-29 11:39:10 -06:00
Nyxilath 58ef870a3a bugfix - correcting poster damage resistances (#40489) 2025-12-29 11:39:10 -06:00
ToastEnjoyer e10a6f11dd Changed corpsman description (#40486) 2025-12-29 11:39:10 -06:00
Kowlin 6c3ce57ed9 Add date formatting to admin-notes-unbanned (#40484) 2025-12-29 11:39:10 -06:00
Charlie Morley 0668879577 prevent repeat TriggerOnCollide triggers (#40428)
* prevent repeat TriggerOnCollide triggers

* review comment: remove TriggerOnCollide when out of triggers
2025-12-29 11:39:10 -06:00
Pieter-Jan Briers 2718a9c390 Fix render target caching in overlays (#40181)
Many newer overlays use IRenderTextures that are sized to the rendered viewport. This was completely broken, because a single viewport can be rendered on multiple viewports in a single frame.

The end result of this was that in the better case, constant render targets were allocated and freed, which is  extremely inefficient. In the worse case, many of these overlays completely failed to Dispose() their render targets, leading to *extremely* swift VRAM OOMs.

This fixes all the overlays to properly cache resources per viewport. This uses new engine functionality, so it requires engine master.

This is still a pretty lousy way to do GPU resource management but, well, anything better needs a render graph, so...
2025-12-29 11:39:10 -06:00
Leon Friedrich 8a6fb6ba1b Move TestPair & PoolManager to engine (#36797)
* Move TestPair & PoolManager to engine

* Add to global usings

* A

* Move ITestContextLike to engine

* Readd cvars partial class

* cleanup diff
2025-12-29 11:39:10 -06:00
Leon Friedrich 05cf42d689 Fix explosion grid alignment for static grids (#40193) 2025-12-29 11:39:10 -06:00
Absotively a9f5404730 Show hand labeler label text on examine (#40334) 2025-12-29 11:39:10 -06:00
Absotively 09ea791c1f Don't overwrite values that are mid-edit in air alarm window (#40338) 2025-12-29 11:39:10 -06:00
Minerva 43b17c04c2 Renames the radar console computer board to "mass scanner computer board" (#40430) 2025-12-29 11:39:10 -06:00
slarticodefast 119d17dd46 Fix RCD errors (#40278) 2025-12-29 11:39:10 -06:00
Lordbrandon12 eff34b481c moves magic number from SharedMoverController to InputMoverComponent (#40411) 2025-12-29 11:39:10 -06:00
deltanedas 470ac08b9c fix disposal pipes deleting contents when welded (#40451) 2025-12-29 11:39:10 -06:00
Tiniest Shark 0b611537c0 Inhand Sprites for Clear Glass (#40427) 2025-12-29 11:39:10 -06:00
slarticodefast c34c22c8f0 fix chasm heisentest (#40456)
fix chasm test
2025-12-29 11:39:10 -06:00
IProduceWidgets 31b865f08b The Experimental Lecter 8 (#40372)
* XL8 files

* slap dat on the ERT lead

* oop mag indicator offset

* fix newline
2025-12-29 11:39:10 -06:00
Minerva 9f1850890b Fixes some refuling welder typos (#40447) 2025-12-29 11:39:10 -06:00
Leon Friedrich 04ab4907e4 Update engine to v267.1.0 (#40445) 2025-12-29 11:39:10 -06:00
Hi-Im-Shot 9ab7fb03bb Added Cutting Slicing and Executing options to the cane blade (#40311)
* Added Cutting Slicing and Executing options to the cane blade

* swaped from BaseItem to BaseSword for cleaner code

* fixed a double gap in code
2025-12-29 11:39:09 -06:00
Hitlinemoss 8c44111c25 Ninja items are now highly illegal (#39855)
* Added tactical katana + tactical katana shipment (placeholder descriptions)

* Revert "Added tactical katana + tactical katana shipment (placeholder descriptions)"

This reverts commit aa1928be7f4d938df1838943781e63c47a03cc11.

Whoops, committed to master by mistake

* Made ninja items highly illegal

* Rerun checks
2025-12-29 11:39:09 -06:00
ādaandiaada dfa4a8f3da Silence mime bags (#40317)
silence!!!

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:09 -06:00
Kittygyat 445083441f Made all tarantulas able to drag entities (#40433)
Sent tarantulas to the gym
2025-12-29 11:39:09 -06:00
SlamBamActionman 6c6b49e8f8 Add contraband levels for several reagents (#40426)
* Initial commit

* Minor changes
2025-12-29 11:39:09 -06:00
rumaks 45fd6e985b Make ichor heal brute, burn, and toxin evenly (#39466)
* Make ichor heal brute, burn, and toxin evenly

* Nerf healing to more reasonable values
2025-12-29 11:39:09 -06:00
Vanessa 25b052442d Fixed implant remover description 2025-12-29 11:39:09 -06:00
Mora 2d15986c38 Rename medifab implanter to implant extractor and made it's description clearer (#40375)
* Renamed regular implanter (the extractor from the medifab) to implant extractor

* wrong way
2025-12-29 11:39:09 -06:00
Kittygyat 42ca29206d Crashed the snakeskin boots stock-market by removing their hidden no-slip properties (#40201)
Crashed the snakeskin boots stockmarket by removing their non-slip properties
2025-12-29 11:39:09 -06:00
Skye 9740f2c70f Add chemical analysis goggles to ChemDrobe (#40236) 2025-12-29 11:39:09 -06:00
Minerva a147f1fbc1 Renames the "Integrated GPS" to "integrated GPS" (#40431)
Renames the Integrated GPS to not use title case
2025-12-29 11:39:09 -06:00
PicklOHandPrincess Cheeseballs 05b8e778d9 Adds Nukie IDs and PDAs, makes Nukie IDs able to copy accesses. (#37304)
* Adds Nukie IDs and PDAs, makes IDs able to copy access.

* Fixed PDA and ID parenting

* Meta.json spacing

* PDA parenting

* retest

* Forgot a comma OOPS

* Spacing

* Minor meff fix

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:09 -06:00
Pixel8-dev 9dffab320d Stun rune Fix (#40432)
Added a single line of code
2025-12-29 11:39:09 -06:00
Kittygyat 10bb3f6b32 Updated the cyborg weapon module's uplink description to be accurate (#40429) 2025-12-29 11:39:09 -06:00
Minemoder5000 fc646fd720 Remove drone lawset from ion storms (#40374) 2025-12-29 11:39:08 -06:00
Vanessa 4664b02f04 Antag roleban fixes 2025-12-29 11:39:08 -06:00
Vanessa 50c48c70ca Small fix to AttemptShoot method that returns a bool now 2025-12-29 11:39:08 -06:00
98c9749e2c Antag Rolebans (#35966)
Co-authored-by: beck-thompson <beck314159@hotmail.com>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
2025-12-29 11:39:08 -06:00
ādaandiaada 9519c1108d Use an alias in job icons yml (#40415)
commit

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:08 -06:00
SurrealShibe 159a1433e8 Turn the Satanic Bible's pentagram around, fix left inhand (#40234)
change sprites, update meta
2025-12-29 11:39:08 -06:00
Winkarst-cpu 36b4b01759 Update `DoorComponent` to use TimeSpans and fix comments (#40420)
Cleanup
2025-12-29 11:39:08 -06:00
Winkarst-cpu 134fc9a83e Change `GetPryTimeModifierEvent.BaseTime` to the TimeSpan (#40419)
* Cleanup

* Update
2025-12-29 11:39:08 -06:00
ScarKy0 889c918849 Localize vulp emotes (#40418)
init
2025-12-29 11:39:08 -06:00
slarticodefast c6019e5fa6 Add chasm integration tests (#40286)
* add chasm integration test

* fix assert

* fix

* more fixes

* review
2025-12-29 11:39:08 -06:00
Kyle Tyo 5fe5037326 Readyall and Toggleready commands to LEC. Fix an issue with ready button desync. (#38706)
* commit

* commit

* change lobby shell string.
2025-12-29 11:39:08 -06:00
chromiumboy 9cf11a8bc1 Bug fix for Station AI damaged accent (#40399)
Initial commit
2025-12-29 11:39:08 -06:00
ScarKy0 4cdb241a9d Intellicards rename to AI stored on them (#40402)
* intellicard name changing

* review
2025-12-29 11:39:08 -06:00
Vanessa 12182ffb4d Fixed some access system stuff in DV namespaces 2025-12-29 11:39:08 -06:00
Winkarst-cpu c697cc37df `NarcolepsySystem` refactor (#40305)
* Refactor

* Update

* Update
2025-12-29 11:39:08 -06:00
ScarKy0 22144ca30c Add intellicards to AI crates (#40401)
init
2025-12-29 11:39:08 -06:00
chromiumboyandScarKy0 be4a555ae3 The station AI can be destroyed (#39588)
* Initial commit

* Fixing merge conflict

* Merge conflict fixed

* Anchorable entities can now be marked as 'unanchorable'

* Revert "Anchorable entities can now be marked as 'unanchorable'"

This reverts commit 6a502e62a703cf06bd36ed3bdefe655fc074cfc5

This functionality will be made into a separate PR

* Error sprite

* Update AI core appearance with sustained damage, spawn scrap on destroyed

* Added intellicard sprite

* AI damage overlays

* Added fixtures

* AI core accent changes when damaged or low on power

* Bug fix and pop up messages for inserting AIs into inoperable cores

* Updated 'dead' sprite

* Destroying the AI core reduces the number of AI job slots available

* AI battery duration set to 10 minutes

* Initial commit

* Allow MMIs used in the construction of AI cores to take them over

* Initial resources commit

* Initial code commit

* Sprite update

* Bug fixes and updates

* Basic console UI

* Code refactor

* Added lock screen

* Added all outstanding UI features

* Added purge sprites

* Better appearance handling

* Fixed issue with purge sprite

* Finalized UI design

* Major components finalized

* Bit of clean up

* Removed some code that was used for testing

* Tweaked some text

* Removed extra space

* Added the circuitboard to the RD's locker

* Addressed reviewer comments plus tweaks

* Addressed reviewer comments plus tweaks

* Removed instances of granular damage

* Various improvements

* Removed testing code

* Fixed issue with disabled buttons

* Finalized code

* Addressed review comments

* Added a spare Station AI core electronics to the research director's locker

* Fixing build failure

* Addressed review comments

* Addressed review comments

* Added reverse path for construction graph

* Removed unneeded reference

* Parts can be purchased through cargo

* Fixing merge conflict

* Merge conflict resolved

* Fixing merge conflict

* Code update

* Code updates

* Increased AI core health and gave it a sell price to fix test fail

* Added screen static sprite

* Added better support for ghosted AI players plus code tweaks

* Various improvements and clean up

* Increased purge duration to 60 seconds

* Fixed needless complication

* Addressed reviewer comments part 1

* Addressed reviewer comments part 2

* Further fixes

* Trying lower battery values to see if it fixes the test fail

* Adjusted power values again

* Addressed review comments

* Addressed review comments

* Fixed test fail

* Fixed bug with endless rebooting. Using rejuvenation on an AI core revives the AI inside.

* Added pop up text

* Bug fix

* Tweaks and fixes

* Fixed restoration console not updating when the AI finishes rebooting

* Update SharedStationAiSystem.Held.cs

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
2025-12-29 11:39:07 -06:00
chromiumboy 5931c3f151 Devices with access restrictions list those restrictions in their examination description (#37712) 2025-12-29 11:39:07 -06:00
SlamBamActionman b8fef9085f Detunes Ninja Stun To Actually Have Some Counterplay (#39707) 2025-12-29 11:39:07 -06:00
Errant 3dff762cad [Hotfix] Remove pull-escape trick (#40368)
* make HandleStopPull byref

* we get signal
2025-12-29 11:39:07 -06:00
5cb862522c Dark/Light Grass & Desert Astrotiles (#37867)
* Added Waterjug, a low-mid pop map with a tropical theme and custom evac shuttle

* Fixed postmapinittest issues (Hopefully)

* Actually fixed the afformentioned issue.

* Added Warden Spawnpoint which I forgot

* Named APCs, Substations, & Cameras, added some more decals

* Decorated some more, notably the bar.

* Minor adjustments, added cans, slightly reworked salv and maints bar

* Fixed some small issues, notably weird closed doors, added a few small things (shutters mostly)

* Added 2 new astrotiles, dark grass and desert sand.

* Removed map. Fixing issue. Please hold.

* Forgot to remove a comma, please god forgive me maptainers. I blame Rider IDE for it's autoaddition of all changes made even on seperate branches.

* Added localization for stacks.

* Actually fixed the loc. issue. Maybe. Please.

* Hopefully fixed the last localization issue.

* Added Light Astro-tiles, and edited the names of the inhand png's for the dark grass astrotiles to be more internally consistant

* Fixed some issues caused by another PR I made, added more maints stuff

* Made some small decorative and practical changes

* Fixed, changed, and added a ton of stuff. I don't think I can list it all, honestly.

* Removed shields to try to fix an issue with the test

* Hopefully fixed issues relating to a failed test.

* Replaced grass/flora decals with randomized ones, readded shields to armory

* Fixed some YML issues, whitelisted files for flora decal spawners

* Added a bridge-beach, added some misc. items and objects.

* Small changes to buttons, fixed wires and flooring

* Fixed AME-Holopad issue.

* Added a Custom Waterjug Parallax, made it so the parallaxes actually work, and made some minor adjustments to the map

* Fixed an accidental adjustment to CoreStation's parallax prototype YML

* Changed some Salvage and Cargo stuff

* Fixed some merge issues, updated Adriatic with a locker and added some little details to Waterjug

* Fixed some stuff, added docking arm near evac

* meta json fix tiles

* fixed again

* fixed once more

* Removed all the waterjug stuff.

* fix spacing

* fix unnecessary formatting

---------

Co-authored-by: SharkSnake98 <sharksnake87@gmail.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2025-12-29 11:39:07 -06:00
SlamBamActionman 275ae3adf3 Add jetpacks to the Nukie Infiltrator (#39887) 2025-12-29 11:39:07 -06:00
MissKay1994 4dd0462b1f Massively reduce how lethal Man-O-War shuttle is (#40339)
no longer nukies in disguise
2025-12-29 11:39:07 -06:00
Princess CheeseballsandPrincess Cheeseballs 21038e13e2 [STAGING/HOTFIX] Butcher entities in containers. (#40299)
* Kitchen spike and sharp system

* Use transform and parent

* A

* Works

* A

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:07 -06:00
Winkarst-cpu 4f995c8dce Fix wizard's recharge spell not adding charges to wands that use LimitedChargesComponent (#40347)
* Fix

* Update
2025-12-29 11:39:07 -06:00
Vanessa ba7be40ee7 Fixed reference to DrinkComponent in DamageOnLand 2025-12-29 11:39:07 -06:00
pathetic meowmeowandPrincess Cheeseballs 3fc97344af De-enumify humanoid species skin colours (#39175)
* De-enumify humanoid species skin colours

* Change index to resolve

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:07 -06:00
Winkarst-cpuandslarticodefast 5244330d58 Fix throwing objects causing pushback on the player who threw them in a not weightless environment (#40335)
* Fix

* Update Content.Shared/Gravity/SharedGravitySystem.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:07 -06:00
slarticodefast e7711b8000 Change listplayers command permissions to require the PII flag (#40324) 2025-12-29 11:39:07 -06:00
FungiFellow 5bb345e6c3 Cockroach Gib when Stepped on (#40103)
* Cockroach Gib

* Prevent Cockroaches From Gibbing Eachother

* Added - type: RandomChanceTriggerCondition

* Update animals.yml

* Named SuccessChance Datafield

* successChance

* Revert Change

* Uncapitalize C

* RECAPITALIZE THE C
2025-12-29 11:39:07 -06:00
ApolloVector b228ae50f4 Clake frag round fix (#40294)
make the frag work
2025-12-29 11:39:07 -06:00
SurrealShibe 4b9b947163 Toilet fixes: Exception when constructing, proper seat layering (#40313)
they call me a plumber the
the way i fix da toiler
2025-12-29 11:39:07 -06:00
Princess CheeseballsandPrincess Cheeseballs a3d19e4068 Chameleon Projector Physics Fix (#37960)
* One commit

* Move files

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:06 -06:00
Vanessa 6361b9090b Cleaned up drink components in DV namespaces. 2025-12-29 11:39:06 -06:00
slarticodefast 10dcb9e451 Delete DrinkComponent, migrate prototypes to EdibleComponent (#40308) 2025-12-29 11:39:06 -06:00
Vanessa 4d0d42e12c Fixed some drink inheritence. 2025-12-29 11:39:06 -06:00
Princess CheeseballsandPrincess Cheeseballs 44ce3d2350 Edible Sound Specifier Override (#40312)
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:06 -06:00
Redandslarticodefast 37d93e2eaa Stop microwaving! (#40132)
* Create KillMicrowaveTest.cs

* Update KillMicrowaveTest.cs

* Update Content.IntegrationTests/Tests/Microwave/KillMicrowaveTest.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.IntegrationTests/Tests/Microwave/KillMicrowaveTest.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* Update Content.IntegrationTests/Tests/Microwave/KillMicrowaveTest.cs

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>

* documentation

* Apply suggestions from code review

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:06 -06:00
InsoPL d511f70e55 Fix for can't stop pulling when cuffed (#40233)
* fix

* fix

* spaces added
2025-12-29 11:39:06 -06:00
SlamBamActionman 4fca79df67 Food Item Size Adjustment (#39203) 2025-12-29 11:39:06 -06:00
SlamBamActionman ab9a97e87d Reorganize and refactor drinks yml (#39221) 2025-12-29 11:39:06 -06:00
Vanessa 3d507e726c Cryox evenheal (#41696 Partial) 2025-12-29 11:39:06 -06:00
Vanessa 43f0c6a33f Fixed shared radio references. Removed custom DV radio implant code for now. Will re-do later. 2025-12-29 11:39:06 -06:00
Preston Smithandslarticodefast 273eff37e2 Syndicate and CentComm Radio Implanters (#33533)
* Add Syndicate Radio Implant

* Fix description grammar

* remove unused var

* Update - Small fixes

* Un mess with imports

* Remove unused tag

* Correction

* Clear lists instead of remove

* Update 0 check

* Add Centcomm implant

* Correct centcom channel

* Correct params

* No more crying

* Update Content.Shared/Implants/Components/RadioImplantComponent.cs

* Update Content.Server/Implants/RadioImplantSystem.cs

* Update Content.Server/Implants/RadioImplantSystem.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:06 -06:00
pre-commit-ci[bot] 15f9bacd3d [pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
2025-12-29 11:39:06 -06:00
Vanessa ff9795f82c Fixed duplicate components in Burgers 2025-12-29 11:39:05 -06:00
Vanessa d1cb9ab958 Moved shitmed stuff to its namespace 2025-12-29 11:39:05 -06:00
slarticodefastandwalksanatora 6b57b9bd6b move all the radio components and system to Shared (#40293)
* move all the radio components and system to Shared.

* duh split impl

* address reviews

* cleanup

---------

Co-authored-by: walksanatora <walkerffo22@gmail.com>
2025-12-29 11:39:05 -06:00
UpAndLeaves 95063b86c0 storage and inventory toolshed commands (#39046)
* First commit

* CommandImplementation on singletons is die, a la moony

* Fix duplicated thingy because yes

* Prototypes, bugfixes, refactoring oh my

* Remember to actually stage your ftl changes next time, leaf
2025-12-29 11:39:05 -06:00
Lillian Industries 59d925efce Added SmartFridge circuitboards (#39879) 2025-12-29 11:39:05 -06:00
Perry Fraserandslarticodefast 7220b41437 Make vending machine restocks predicted (and its sound not spammable) (#38609)
* feat: make vending machine restocks predicted

* refactor: VendingMachineRestockComponent cleanup

* refactor: minor simplification

* revert: refactor: minor simplification; load bearing IsFirstTimePredicted

lol second guessed myself

* chore: unneeded VendingMachineSystem dep

* Update Content.Shared/VendingMachines/VendingMachineComponent.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:05 -06:00
ScarKy0 6f09e1fe61 Remove unused BulletTennis (#40285)
init
2025-12-29 11:39:05 -06:00
IProduceWidgetsandScarKy0 b315cd2ee4 No take; Only throw. (#40143)
* commit atrocities

* hail satan

* Channel Pavlovian horror

* pet kitty cat

* Taint universe forever

* Assault sensibilities

* sully existence

* tarnish morality

* The degunnening

* encratening

* Update toys.yml

* add few pixels to fix vulp inhands

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
2025-12-29 11:39:05 -06:00
SlamBamActionman 7d35f9b10e Fix Linter errors (#40283)
Fix yoml
2025-12-29 11:39:05 -06:00
Charlie Morley 172650c136 Clip the WindowTitle of FancyWindows, so close buttons don't get hidden (#40272)
ClipText of FancyWindow title, so close buttons don't get hidden
2025-12-29 11:39:05 -06:00
slarticodefast 73c5ae5b31 fix chasmsystem resolve error (#40281) 2025-12-29 11:39:05 -06:00
Absotively 76087970cc Fix APC breaker toggle button prediction by setting ToggleMode True (#40273)
* Use ToggleMode for toggle button

* Actually this bit doesn't require changing apparently
2025-12-29 11:39:05 -06:00
GeneralGawsandGeneralGaws 5f553c8b37 Fix darts inhand sprites (#40207)
fix

Co-authored-by: GeneralGaws <limonmessi@mail.ru>
2025-12-29 11:39:05 -06:00
ToastEnjoyer d1b0bfbeed Laser rifle is contraband again (#40253)
* Fixed contraband tag

* practice isnt contraband

* Added base

* Removal
2025-12-29 11:39:05 -06:00
IProduceWidgets 451daa8222 Add admin shuttles (#32139)
* dis da shuttles tho

* power checking

* rerun tests

* purge invalids

* attributions

* Update shuttle save files for new serialization.

* get regexed nerd

* fix shuttle yml guh

* Kill actions
2025-12-29 11:39:05 -06:00
Stefano Pigozzi caae8caa5b Fix RGB staff not working (#40258)
Add missing `TargetAction` to `ActionRgbLight`

This fixes the RGB staff not working.
2025-12-29 11:39:05 -06:00
Deerstop 90574a14c8 Decal spawners spawn on a higher layer (#39956)
changed decal spawn layer
2025-12-29 11:39:04 -06:00
ādaandiaada 59062d1dd8 SpawnEntityTableOnTrigger (#39909)
* commit

* comment

* empty

* better xform

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:04 -06:00
202579939b PopupOnTrigger (#39913)
* commit

* comment

* changes

* Update Content.Shared/Trigger/Systems/PopupOnTriggerSystem.cs

---------

Co-authored-by: iaada <iaada@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:04 -06:00
Princess CheeseballsandPrincess Cheeseballs 7db368a6a0 [HOTFIX] Fix Loadout Validations (#40189)
p0 bugfix

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:04 -06:00
imatsoup d292de3b60 Make Butterflies zombie immune (#40265)
butterfly zombie no longer
2025-12-29 11:39:04 -06:00
Tayrtahn 9930cc8c45 Improve Do Not Map test to whitelist specific prototypes per map and whitelist entire directories (#36117)
* Enable whitelisting specific DNM prototypes per map

* Enable whitelisting directories

* Rename fields

* Use a HashSet instead of an array

* Add check for unused whitelist entries

* Remove whitelisting for meta (warden's rubber stamp was removed)

* Add glob support courtesy of @IProduceWidgets

* Update xmldoc
2025-12-29 11:39:04 -06:00
Vanessa 61e85d5c82 Fixed word replacements not working. 2025-12-29 11:39:04 -06:00
SweetAplleandTayrtahn 17791ea633 "idk" no longer shrugs, instead sanitizing to "I don't know" (#39024)
* idk no longer shrugs

* accidentally had this in here!

* this was accidentally in here too!

* fucked up the removal

* fucked it up again this should HOPEFULLY be the last one

turns out it's hard to revert the edit of a file that's just numbers and spaces who woulda thunk?

* Restore SpaceStation14.sln to master

* Restore development.toml

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
2025-12-29 11:39:04 -06:00
c4llv07eandPrincess Cheeseballs 1f177804dc Allow to run mappingclientsidesetup and showsubfloor with +MAPPING permissions (#34455)
Allow +MAPPING admins to call mappingclientsidesetup and showsubfloor

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:04 -06:00
Pieter-Jan Briers 5ed496a4c5 Ignore non-content commands in AllCommandsHavePermissions (#39336)
Causing a test failure every time a Toolshed command gets added to engine is ridiculous.
2025-12-29 11:39:04 -06:00
InsoPL 14f0b88295 Do after checks for being inside container (#39880)
fix
2025-12-29 11:39:04 -06:00
Winkarst-cpu 89ed29f5f1 Fix emergency evac shuttle console early launch mispredict (#39751)
* Fix

* Yes

* Mess

* Update

* Like that?
2025-12-29 11:39:04 -06:00
SlamBamActionmanandslarticodefast 56e7be5a6c Add support for contraband text to the reagent guidebook (#37113)
* Add contraband text to reagent guidebook

* Add reagent for examining

* Update Content.Client/Guidebook/Controls/GuideReagentEmbed.xaml.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:04 -06:00
Ser11y 87ce22fe8c Make "Confirm" in VerbMenuUIController localizable (#40248) 2025-12-29 11:39:03 -06:00
Fildrance 345caaf69a feat: SimpleRadial menu support for sprite-view and more extensibility (#39223) 2025-12-29 11:39:03 -06:00
Centronias 8ee7f6996a Make Foldable Clothing Hidden Layers "reset" Hidden Layers when un/Folding (#40251)
foldable clothing hidden layers fix
2025-12-29 11:39:03 -06:00
Vanessa 8e8e19e11e Fixed alerts in GrapplerSystem and CorticalBorerSystem 2025-12-29 11:39:03 -06:00
Vanessa 706abdaa06 Fixed Alerts in CosmicCult files. Converted params to upstream conventions. 2025-12-29 11:39:03 -06:00
Ser11y e948958e08 Make location in crew monitoring console localizable (#40247) 2025-12-29 11:39:03 -06:00
Winkarst-cpu d3f0290c5c Cleanup: Remove unnecessary `IEntityManager reference from the EmotesUIController` (#40243)
Cleanup
2025-12-29 11:39:03 -06:00
Pieter-Jan Briersandslarticodefast b7f297f612 Fix usages of TryIndex() (#39124)
* Fix usages of TryIndex()

Most usages of TryIndex() were using it incorrectly. Checking whether prototype IDs specified in prototypes actually existed before using them. This is not appropriate as it's just hiding bugs that should be getting caught by the YAML linter and other tools. (#39115)

This then resulted in TryIndex() getting modified to log errors (https://github.com/space-wizards/RobustToolbox/commit/94f98073b07bd3fa3133ae6799b34d90f46f467e), which is incorrect as it causes false-positive errors in proper uses of the API: external data validation. (#39098)

This commit goes through and checks every call site of TryIndex() to see whether they were correct. Most call sites were replaced with the new Resolve(), which is suitable for these "defensive programming" use cases.

Fixes #39115

Breaking change: while doing this I noticed IdCardComponent and related systems were erroneously using ProtoId<AccessLevelPrototype> for job prototypes. This has been corrected.

* fix tests

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-29 11:39:03 -06:00
Kittygyat 7e8c50246b Reworded the Galoshes description to be more clear about what they actually do. (#40200)
Reworded the Galoshes description to be more clear about what they do
2025-12-29 11:39:03 -06:00
Vanessa 651a00d644 Added Kitsune healthbars to the Derelict Mediborg 2025-12-29 11:39:03 -06:00
Centronias 3d9b6556d3 Derelict Mediborgs can Scan Solutions and see Mob Health (#40206)
Add mediborg unique components to derelict mediborg
2025-12-29 11:39:03 -06:00
SlamBamActionman b9ccca1c27 Lets diona sap trigger artifact blood nodes (#40211) 2025-12-29 11:39:02 -06:00
keronshbandPrincess Cheeseballs 081f4c5cda DoAfter support for Actions (#38253)
* Adds Action DoAfter Events

* Adds DoAfterArgs fields to DoAfterComp

* Adds a base doafter action

* Adds Attempt action doafter logic

* Adds doafter logic to actions

* Changes Action Attempt Doafter and action doafter to take in Performer and the original use delay. Use delay now triggers when a repeated action  is cancelled.

* Readds the TryPerformAction method and readds request perform action into the action doafter events

* Adds a force skip to DoAfter Cancel so we can skip the complete check

* Adds a Delay Reduction field to the comp and to the comp state

* Fixes doafter mispredict, changes doafter comp check to a guard clause, sets delay reduction if it exists.

* Cancels ActionDoAfter if charges is 0

* Serializes Attempt Frequency

* Comment for rework

* Changes todo into a comment

* Moves doafterargs to doafterargscomp

* Adds DoAfterArgs comp to BaseDoAfterAction

* Removes unused trycomp with actionDoAfter

* Replaces DoAfterRepateUseDelay const with timespan.zero

* Removes unused usings

* Makes SharedActionsSystem partial, adds DoAfter partial class to ActionSystem, moves ActionDoAfter logic to the SharedActionsSystem.DoAfter class

* Cleanup and prediction

* Renames OnActionDoAfterAttempt to OnActionDoAfter, moves both to Shared Action DoAfter

* Removes ActionAttemptDoAfterEvent and moves its summaries to ActionDoAfterEvent. Converts OnActionDoAfterAttempt into TryStartActionDoAfter

* Removes Extra check for charges and actiondoafters

* Sloptimization

* Cleanup

* Cleanup

* Adds param descs

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:02 -06:00
a31dfef43e Being grappled with a grapple gun allows you to cross chasms (#39983)
* Being grappled with a grapple gun allows you to cross chasms

Closes #31698

* Update Content.Shared/Weapons/Misc/SharedGrapplingGunSystem.cs

* AAAAAAAAAAAAAAAAA

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:02 -06:00
chromiumboy be3e1cae37 Bug fix for APCPowerReceiverBattery (#40188)
Initial commit
2025-12-29 11:39:02 -06:00
Vanessa 264f4caa12 Reverted DV's fix for 1u syringes since upstream fixed it. 2025-12-29 11:39:02 -06:00
Crude Oil d6a7989071 Restore transfer amounts on regular syringes to 5, 10, 15 (#40197)
add transferamounts to regular syringes
2025-12-29 11:39:02 -06:00
Hannah Giovanna Dawson fede1a93e1 Allow Vulps With Human Hair To Be Shaved Without Clyde Joining The Circus (#40171)
* Revert "Disable vulpkanin human hair (#40144)"

This reverts commit d02aa1a4e2.

* You can once again shave your pet Vulp

* I can see the ass, I'm safe

* Rectified docstring as I am a good person

* I am doing this instead of playing Silksong please help

* Fix forgetting to re-add shader overriding
2025-12-29 11:39:02 -06:00
Vanessa 5485e4ace8 Fixed cosmic cult window inheritance. 2025-12-29 11:39:02 -06:00
ArtisticRoomba 11ce572527 fix: Atmos dP Window Inheritance (#40192) 2025-12-29 11:39:02 -06:00
Vanessa f360d626b8 Added new delta pressure refactor to cosmic cult windows. 2025-12-29 11:39:02 -06:00
ArtisticRoomba 2fa3ec4fad Atmospherics Delta-Pressure YAML refactor (#40174) 2025-12-29 11:39:02 -06:00
ScarKy0 2c3cc9a876 Revert antique laser and appraisal tool sizes (#40158)
* init

* appraisal antique pistol sounds kinda cool tho ngl

* actually fuck items
2025-12-29 11:39:02 -06:00
Princess CheeseballsandPrincess Cheeseballs eed8c3d22c [Hotfix] Wizard Rod doesn't gib the wizard. (#40041)
* Title

* Tired

* That shit did nothing goddamn

* Fix for real

* Use og code

* Hmmm borgaer

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:02 -06:00
Princess CheeseballsandPrincess Cheeseballs 210dc47b7c [HOTFIX] Fix Burgers (#39773)
* Borgar

* Review

* Predicted queuedel

* Predict

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:02 -06:00
ArtisticRoomba db5d2c34f0 Fix resin windows inheriting wrong dP values (#40151)
Fix resin windows inheriting from regular windows
2025-12-29 11:39:01 -06:00
Skye 1bcfc580f7 Fix bad loop in LogStringHandler.AddFormat (#40147) 2025-12-29 11:39:01 -06:00
IProduceWidgets ba3f800d8a Drink outta da toiler (#40133)
* totally unrelated to any other recent additions

* dispare

* enum
2025-12-29 11:39:01 -06:00
SpaceLizard e4f58bf8ad Fixed a error in the "Adventures of Ian and Renault" books (#39932)
Fixed a publication error in the "Adventures of Ian and Renault" book series.

The editor of these books have been taken out back and shot.
2025-12-29 11:39:01 -06:00
Pieter-Jan Briers 7af1ea6f79 Fix admin logs going to admin chat (#40141)
Oops
2025-12-29 11:39:01 -06:00
Myra cc95f6bd8c Add a space in osx-arm64 to fix arm64 osx builds (#40137) 2025-12-29 11:39:01 -06:00
Tayrtahn bf90fcf1b9 Add water cooler interaction test (#39612)
* Add altInteract option to interaction test helper methods

* Add water cooler interaction test

* Oops, that's not a NetEntity

* Is.Not.Empty

* SPlayer

* Assert.Multiple

* Document parameters
2025-12-29 11:39:01 -06:00
Leon FriedrichandPJB3005 d95318bcc4 Rejig LogStringHandler (#30706)
* Rejig LogStringHandler

* Fix session logs

* Fix properly

* comments

* IAsType support

* Fix mind logs

* Fix mind logging AGAIN

---------

Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
2025-12-29 11:39:01 -06:00
Skye d8b9c34c80 fix a typo in the comments for game.ipintel_exempt_playtime (#40129) 2025-12-29 11:39:01 -06:00
d27ba4cd91 Alerts Cleanup and API (#39544)
* alert cleanup and API

* I expect update loops to be at the top.

* Address review

* Address review x 2

* Merg my PR

* Fix

* Update Content.Shared/Alert/AlertsSystem.cs

webedit

Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>

* FIX THAT TEST FAIL!!!!

* Me when I forget to actually give you alerts

* Hammedborgar

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: Perry Fraser <perryprog@users.noreply.github.com>
2025-12-29 11:39:01 -06:00
ArtisticRoomba 0049117f00 Give shutters the DeltaPressure component (#40126) 2025-12-29 11:39:01 -06:00
ArtisticRoomba cb79611061 Fix DeltaPressure damage not capping beyond a certain pressure (#40125) 2025-12-29 11:39:01 -06:00
DDDragoni e90e583c23 Telepad Label Fix (#39975)
Fixed telapad order labels showing wrong account
2025-12-29 11:39:01 -06:00
CawsForConcern 251e58acec Fixes Theobromine missing from Iced Coffee (#40063)
adding ice to coffee no longer removes its theobromine
2025-12-29 11:39:01 -06:00
ādaandiaada 2ab2039cd2 Organize JobIconPrototype yml (#39774)
grouped

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:01 -06:00
Winkarst-cpu 69f9218215 Fix: Ability to open AHelp in the lobby by pressing the hotkey (#39525)
* Fix

* Update
2025-12-29 11:39:00 -06:00
VoidMeticulous a98f6f0d08 Add 2.25 second delay to scurret petting (#40097)
Add 2.25 second delay to scurret petting rate
2025-12-29 11:39:00 -06:00
ādaandiaada 0aa07117c2 Fix xenoborg action icons (#40118)
commit

Co-authored-by: iaada <iaada@users.noreply.github.com>
2025-12-29 11:39:00 -06:00
Pieter-Jan Briers da2a287010 Package win-arm64 and osx-arm64 servers (#40113) 2025-12-29 11:39:00 -06:00
Nemanja cbb72a08a8 Improve Gas Yaml Serialization (#40070)
* Make yaml gas serialization cleaner

* fix exception

* fix validation code

* rudimentary test & permissive loading

* change it a bit

* Test fixes and adjustments
2025-12-29 11:39:00 -06:00
Vanessa 3a208eb97e Removed knuckleduster objective. 2025-12-29 11:39:00 -06:00
jkwookee 6e5648248c Fix QM Golden Knuckledusters not being a objective (#40096)
test
2025-12-29 11:39:00 -06:00
Pieter-Jan Briers ca250ab1f0 Skip MapImages folder in packaging (#38928) 2025-12-29 11:39:00 -06:00
Quantum-cross 20e1de2376 Dynamic anomaly scanner texture (#37585) 2025-12-29 11:39:00 -06:00
Princess CheeseballsandPrincess Cheeseballs c1621e0fe8 Can't crawl over counters (#40099)
Counters and Tables separation

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:00 -06:00
ScarKy0andPrincess Cheeseballs 289b20b9a3 Reuse lathe queue instead of redrawing (#39886)
* init

* init

* PUSH!!!

* //

* Me when the when the me when the

* review

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-12-29 11:39:00 -06:00
Myra 1b7fc3a4fe Stop packaging Resources/ServerInfo and Resources/Changelog on the server (#39897)
* Stop packaging `Resources/ServerInfo`

This is only used by the client, it is unneccery to pack into the server. Plus it keeps getting people to think that just editing the server resources will modify the guidebook even though that needs a custom dev enviroment.

* Add credits too
2025-12-29 11:39:00 -06:00
Samuka-CandErrant e863725cb4 Fool players with decoy presets (#40053)
* added secret gamepresets

* cut down on alias

* remove all secret presets

* change the command to allow for a secret argument

* update test

* moved the secret argument after the number of rounds argument

* added completions

* localization and use of CompletionHelper.Booleans

* command now has a option for a decoy preset

* fixed decoy message in the end

* ops

* clean up

* hint 2

* improve localization

---------

Co-authored-by: Errant <35878406+Errant-4@users.noreply.github.com>
2025-12-29 11:38:59 -06:00
ArtisticRoomba 4c3bd78be5 Give inflatable walls the DeltaPressure component (#40098)
give inflatable walls the deltapressure component
2025-12-29 11:38:59 -06:00
Delta-V bot 1b7a9ca1e0 Automatic changelog update 2025-12-29 17:24:20 +01:00
PureBreadBagel 55c9ab3f9c Nomore taser (fixed) (#5045)
* Update OrganManipulation.xml

* Oops wrong branch pull 💀

* aaa my forgotten s
2025-12-29 17:24:00 +01:00
Delta-V bot 91d0b13132 Automatic changelog update 2025-12-28 19:51:31 +01:00
dc9cc37203 Bagels guidebookagloo fixes V1 (#5004)
* Update OrganManipulation.xml

* Update Command.xml

Renamed commands from Research Director and QuarterMaster to Mystagouge and Logistic Officer.

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Radio.xml

Highlighting examine your radio

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update CharacterCreation.xml

Added some extra traits, and changed unrevivable to include cloning.

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update MedicalDoctor.xml

Added some information regarding cryogenics for rotting bodies, and added information about the unrevivable trait.

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Cloning.xml

Added information regarding the unrevivable trait for cloning.

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Surgery.xml

Added the cleaning of surgery tools.

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Science.xml

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update AnomalousResearch.xml

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update CosmicCultDeconversion.xml

Updated the deconversion to fix the censer from holywater to Mindbreaker toxin

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update CosmicCultDeconversion.xml

bible removal

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update CosmicCultDeconversion.xml

Added mindbreaker toxins recipe.

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update PartManipulation.xml

Added extra information regarding limbs that cannot be biofabbed.

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Create Logistics

Renamed logistics guidebook entry

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update cargo.yml

Renamed from cargo to logistics

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* rename cargo to logistic

rena

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Revise trial and hearing procedures in Justice.xml

Updated trial and hearing procedures, including time limits and roles.

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Enhance Psionics.xml with glimmer tracking details

Added details about the sophic scribe's functionality and glimmer emergency handling.

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Rename guide entry for altars in epistemics.yml

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Altar.xml by removing Golemancy note

Removed note about Golemancy not being implemented.

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Enhance forensic information retrieval process

Updated instructions for recognizing DNA and added references to Medical and Criminal Records Computers.

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Decked out the MedicalDoctor.xml with the new traits and CPR!

* Recoloured Medical doctor and added a better guide for dead bodies.

* Reworded medical doctor alot.

* Added another surgery textlink

* Rechanged medical doctor, too colourful so i toned it down

* Finalised the doctor

* fixed a missing "

* Some grammar and invalid pages fixes.

* Edited the Bartender page to add restocking as well. Along with some rewording.

* Added operating tables to surgery, and fixed a typo, its sutures not satures!

* Fixed some stuff

* Fixed some things regarding a review.

* Rewriting my medical doctor. Part 1

* Rewrite medical doctor.xml part 2

* Some extra changes, added umbroxol and holywater to core medications

* added topicals

* finished rewriting medical doctor

* copied medical doctor to the DV folder for namespacing, while replacing the original one with wizdens

* Edited something about psionics.

* Fixed forensics.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* namespaced medical doctor.

* quick bug fix

* moved umbroxol and holy water to speciality medications

* added extra traits such as unrevivable to medicaldoctor

* Update Resources/ServerInfo/Guidebook/_DV/Justice.xml

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Fixed everything for review

* fixed an entry not showing

* ack invalid comment

* Hotfix for him again

* To apply with the changes

* aaaaa MY YAML

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update guides.ftl

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update MedicalDoctor.xml

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update CharacterCreation.xml

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Fixed a serious blunder

* Moved cloning into _DV and changed the .yml address

* Quick fix to surgery.

* updated surgery again.

* removed the commentz from the main guide

* oops I accidentally deleted

* Update Resources/Locale/en-US/guidebook/guides.ftl

Signed-off-by: Tobias Berger <toby@tobot.dev>

* Update Resources/Locale/en-US/guidebook/guides.ftl

Signed-off-by: Tobias Berger <toby@tobot.dev>

---------

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>
Signed-off-by: Tobias Berger <toby@tobot.dev>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Tobias Berger <toby@tobot.dev>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-28 18:51:12 +00:00
Delta-V bot c87f9d334e Automatic changelog update 2025-12-28 18:51:21 +01:00
Milon 4e62806b45 fix vulp helmet sprites for paramed, CE and engineer (#5038)
fixes!
2025-12-28 17:51:01 +00:00
github-actions[bot]andDeltaV-Bot f2a93c9e3a Update Credits (#5037)
Co-authored-by: DeltaV-Bot <github@deltav.gay>
2025-12-28 04:11:48 +01:00
Delta-V bot 9862306cf8 Automatic changelog update 2025-12-27 14:46:29 +01:00
MD360 77dbecd817 Fix magboots doubling in Warden's locker. (#5006)
* Add screwdriver to ward locker.

* Ward Harduit -> Hardsuit in yml.

* Removed magboots from hardsuit.

* Move from locker to hardsuit locker.

* Screwdriver no more.
2025-12-27 07:46:10 -06:00
Delta-V bot c81d47ee48 Automatic changelog update 2025-12-27 14:45:44 +01:00
pootslapandpre-commit-ci[bot] 0a16d42240 Harpy emote tweaks 2.0 (#5030)
* redo caw + add squawk and quack

* quack and squawk real

* Update speech_emotes.yml

* let women quack!!!

* this time for real

* moo and baa

* BAA AND MOO

* why is it oviniaBaa but the other one is just moo

* i'm gonna flip my lid

* give harpies oviniaEmotes tag

* LET MEN QUACK

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-27 13:45:25 +00:00
Delta-V bot 5e6f0ec4e0 Automatic changelog update 2025-12-27 14:41:21 +01:00
Dorragon fb17196839 Flesh anomalite doesn't get damaged by meat kudzu (#5009)
* Meow

* make floors slippery again :( never forgiving direction for this btw, it is now my life's mission to see delta-v downfall
2025-12-27 07:41:01 -06:00
Delta-V bot 474662bbaa Automatic changelog update 2025-12-27 14:28:25 +01:00
KOTOBandVanessa 2c132089e8 Two new lobby songs by Oliver Buckland (#5018)
* im mrping it

* this will drive me insane if i dont change it

* WHOOPSIES

* Update attributions.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: KOTOB <59124164+kotobdev@users.noreply.github.com>

* Update attributions.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: KOTOB <59124164+kotobdev@users.noreply.github.com>

---------

Signed-off-by: KOTOB <59124164+kotobdev@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-27 07:28:05 -06:00
5c527dc6a2 mail refactor + predicted mail (#5031)
* scope? i don't know her

* more cleanup, Entity<T>

* priority mail timer, shared dependencies

* MailSystem file-scoped namespace

* change FTL text

* TODOs

* mailteleporter file-scoped namespace

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* remove the evil nyano mail

* Update Content.Shared/_DV/Mail/MailTeleporterComponent.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Milon <plmilonpl@gmail.com>

---------

Signed-off-by: Milon <plmilonpl@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-27 07:27:24 -06:00
Delta-V bot 1835d7678f Automatic changelog update 2025-12-27 14:27:11 +01:00
Halo3moth a67f32773b Adjutant Rekitting (#5014)
* THANK GOD THIS IS ALL IN _DV

Adjutant changes

* Forgot to use my full discord user for the metajason

:3c

Signed-off-by: Halo3moth <mdavid.wininger@gmail.com>

* 1.3 to 1.5

---------

Signed-off-by: Halo3moth <mdavid.wininger@gmail.com>
2025-12-27 07:26:51 -06:00
Delta-V bot d5141d4f7c Automatic changelog update 2025-12-26 06:45:12 +01:00
Coryn 13050a58e2 Small to Medium Battery for Handheld Crew Monitor (#5029) 2025-12-25 23:44:52 -06:00
Tobias Berger 93c0ce0e81 change publish time 2025-12-25 22:02:21 +01:00
Milon 325ba79241 random perf improvements: part 1 (#5025)
* a lot

* quadruple enumerator

would you like to talk about our lord and savior arch ecs
2025-12-25 21:52:16 +01:00
Delta-V bot 7e13047664 Automatic changelog update 2025-12-24 12:16:46 +01:00
DisposableCrewmember42andeoineoineoin b5ae2263a6 cherry-pick: Fix missing scrollbars in Admin Player List window (upstream #40525) (#5028)
Fix missing scrollbars in Admin Player List window (#40525)

* Fix missing scrollbars in Admin Player List window

* Revert "Fix missing scrollbars in Admin Player List window"

This reverts commit c5aea1a0550deb1d1d7aae4e2dec964e93d2d8ae.

* Invalidate cached item height when item generation callback changes

Signed-off-by: DisposableCrewmember42 <disposablecrewmember42@proton.me>
Co-authored-by: eoineoineoin <helloworld@eoinrul.es>
2025-12-24 12:16:26 +01:00
VelcroboyandVelcroboy d00e19f4b1 Map Edits: Shoukou Xmas (#5024)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-23 22:03:43 -06:00
VelcroboyandVelcroboy 7862eb9e8c Map Edits: Chibi Xmas (#5023)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-23 22:02:50 -06:00
VelcroboyandVelcroboy 67fd579fb1 Map Edits: Edge Xmas (#5022)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-23 22:00:59 -06:00
Delta-V bot 57739441a5 Automatic changelog update 2025-12-24 05:00:26 +01:00
VelcroboyandVelcroboy 215d42d871 Map Edits: Division XMAS (#5021)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-23 22:00:06 -06:00
Delta-V bot eceed908f8 Automatic changelog update 2025-12-24 04:59:56 +01:00
VelcroboyandVelcroboy 74574a9453 Map Edits: Arena Xmas (#5020)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-23 21:59:36 -06:00
github-actions[bot]andDeltaV-Bot 4fd93df4cd Update Credits (#5010)
Co-authored-by: DeltaV-Bot <github@deltav.gay>
2025-12-22 20:39:38 +01:00
ConstantlyConfused 9f361717b7 Make pride scarvess count as scarvess (#5012)
make pride scarfs count as scarfs
2025-12-22 09:31:14 +10:00
Delta-V bot 3cad564a62 Automatic changelog update 2025-12-21 01:36:12 +01:00
fa77b25204 Epistemics EVA Suit (#4908)
* engi and epi suits

* feroxi helmet updates

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fuck

* remove engi suit, pending work from Astra

Co-Authored-By: Astra <226853568+EmberAstra@users.noreply.github.com>

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update softsuits.yml

* Update eva-helmets.yml

* helmet nerf

* Update Resources/Textures/_DV/Clothing/Head/Helmets/eva_epistemics.rsi/meta.json

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: This_Is_Gray <167829864+IAmNotGray@users.noreply.github.com>

* Update Resources/Textures/_DV/Clothing/OuterClothing/Suits/eva_epistemics.rsi/meta.json

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: This_Is_Gray <167829864+IAmNotGray@users.noreply.github.com>

* Update eva-helmets.yml

* Update science.yml

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Signed-off-by: This_Is_Gray <167829864+IAmNotGray@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Astra <226853568+EmberAstra@users.noreply.github.com>
Co-authored-by: Charlie Morley <cmorley191@gmail.com>
2025-12-20 17:35:52 -07:00
Delta-V bot 29b76a445b Automatic changelog update 2025-12-20 06:13:46 +01:00
SirSmith148andCharlie Morley d431bf3b2f Xenoarch Research Mult Balance (#4995)
* First balance pass to clamp glimmer multiplier at 3x

* Balance pass 2 New formula and removed old variable

* Adjusted formula after reviewing curve

* New Equation

* Update Content.Server/Xenoarchaeology/Equipment/ArtifactAnalyzerSystem.cs

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Content.Server/Xenoarchaeology/Equipment/ArtifactAnalyzerSystem.cs

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Small formatting

---------

Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>
Co-authored-by: Charlie Morley <cmorley191@gmail.com>
2025-12-19 22:13:27 -07:00
Delta-V bot ee114b125f Automatic changelog update 2025-12-20 01:29:47 +01:00
verybigmanandpre-commit-ci[bot] 482fb43fb1 Better SFX for Throwing a Pipe at the Floor (#5003)
* 1

* 2

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* updated attributions

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-19 18:29:28 -06:00
Delta-V bot 19ed9d4b3f Automatic changelog update 2025-12-20 00:13:50 +01:00
2cca8da7dc New(ish) evil borg to uplink (sabotuer) (#4919)
* Saboteur Borg

Adds Saboteur Borg

* Oopsies

fixed a oopsies deleted line

* That should be the final change?

Description clean up and small bugs found

* Direction changes part1

Most the direction changes but I missed something

* Direction changes part 2

:3c

* Updated saboteur borg to use a cloaking module, similar to the xenoborg's cloaking module

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fixed parent

* One more time

---------

Co-authored-by: Vanessa <vanessalouwagie@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-19 17:13:31 -06:00
Tobias Berger 32a5ae94cd Manual changelog update 2025-12-19 11:51:20 +01:00
Vanessa efac8d0287 Sort Accesses and Jukebox UIs (#4998)
* Sorted the ID card computer's buttons.

* Sorted the Jukebox song list

* Sorted the jukebox entries.

* Sorted access config.

* Forgot a comment.

* Changed collection expression

* Also updated Door electronics bound interface.

* Used the existing method now that I can lol
2025-12-19 03:31:12 -07:00
Delta-V bot d187742ea9 Automatic changelog update 2025-12-19 04:04:34 +01:00
verybigman 6d3655aed0 Security borg action icons, Syndicate borg action icons, and Syndicate module sprites (#4920)
* hypo changed

* sprites put into rsi's

* json updated

* actions done

* mane

* fix

* fix

* updated parents

* wow

* escalation edit

* wan last fix
2025-12-18 21:04:15 -06:00
Delta-V bot f150786d93 Automatic changelog update 2025-12-18 20:33:22 +01:00
75fbb95ace Adds Christmas Kobolds: Defenders of The Yule Tree (#4940)
* Adds Christmas Kobolds: Defenders of The Yule Tree

* update comments

* Add candy spear sprite

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* no shoes for now

* Revert "no shoes for now"

This reverts commit 8bece94b57.

* No shoes for now

* maybe

* Ain't

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-18 20:33:03 +01:00
Delta-V bot 1a9a67521f Automatic changelog update 2025-12-17 21:57:47 +01:00
Vanessa 31626399c3 Fixed bloodsuckers getting poisoned from drinking blood (#4963)
Fixed bloodsuckers getting poisoned from drinking blood.
2025-12-17 13:57:27 -07:00
Delta-V bot cff1688df5 Automatic changelog update 2025-12-17 19:41:59 +01:00
Field Commandandpre-commit-ci[bot] 95e475eb19 Pebble event map hotfix (#4999)
* Pebble event map hotfix

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-17 12:41:39 -06:00
Delta-V bot d7e059e3d2 Automatic changelog update 2025-12-17 14:52:09 +01:00
verybigman fe544932a6 Working Musket Bayonet, Musket Tweaks, and Pipe Sounds. (#4852)
* musket complete

* done

* added comment

* tada

* changed!

* fix

* fix

* migration thing

* test

* fixed comments
2025-12-17 07:51:49 -06:00
Vanessa 4dba8fd0c7 Removed direction from Texture directory changes (#4997) 2025-12-17 14:03:30 +01:00
Delta-V bot a95c444488 Automatic changelog update 2025-12-17 13:46:19 +01:00
KOTOBandpre-commit-ci[bot] fe4d0c812c Trait - Arm Amputee (#4988)
* absolute cinema

* cleanup

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* gamer ops

* lgtm

---------

Signed-off-by: KOTOB <59124164+kotobdev@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-17 06:46:00 -06:00
Delta-V bot 6eccdaa0b8 Automatic changelog update 2025-12-16 20:15:28 +01:00
c454503bfb Festive lights now fit around your body (#4972)
* add sprites and YML + JSON changes

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update theater.yml

* Update Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Averi <AveriV1@protonmail.com>

* Update Resources/Prototypes/Catalog/VendingMachines/Inventories/theater.yml

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

* Update cargo_vending.yml

---------

Signed-off-by: Averi <AveriV1@protonmail.com>
Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-16 20:15:09 +01:00
Delta-V bot 640a58b4b5 Automatic changelog update 2025-12-16 18:15:41 +01:00
marigaugeandVanessa ecc5e41c28 Give Ifrit EPI requirement (#4964)
* Update ghost_roles.yml

* Update Resources/Prototypes/_DV/Entities/Markers/Spawners/ghost_roles.yml

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

---------

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-16 17:15:21 +00:00
Delta-V bot 468d3bcec3 Automatic changelog update 2025-12-16 16:24:10 +01:00
Vanessa 96cc961611 Brains no longer edible (#4992) 2025-12-16 15:23:50 +00:00
Delta-V bot 22f8000d52 Automatic changelog update 2025-12-16 16:09:01 +01:00
marigauge 6ab7d60ab0 cybernetic eyes are OFF the menu (#4967)
Update cybernetic.yml
2025-12-16 09:08:41 -06:00
VelcroboyandVelcroboy 47eaddf0ba Add infinite-ish present (#4966)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-16 07:51:22 -06:00
Delta-V bot e3cedf148d Automatic changelog update 2025-12-16 14:41:53 +01:00
marigauge c2b42211f0 IPC fibers (#4968)
Update ipc.yml
2025-12-16 07:41:33 -06:00
VelcroboyandVelcroboy 93f92b7957 Map Hotfix: Arena (#4985)
* Arena Xmas

* Atmos tweaks

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-16 14:27:44 +01:00
Delta-V bot 46fe874f3c Automatic changelog update 2025-12-16 14:25:16 +01:00
Stxcking c588a3152f Declutter corpsman starting gear and add corpsman uniform to secdrobe (#4979)
* yml

* requested changes
2025-12-16 07:24:56 -06:00
Stxcking 259357496e Gibbing (via nymphing, artifact crusher, psionic eruption, and anomaly critting) now drops items (#4980)
* nymph

* acidify: false

* anomaly crit
2025-12-16 07:18:27 -06:00
Delta-V bot 861075b7a4 Automatic changelog update 2025-12-16 14:15:30 +01:00
MD360 d1444f9387 Rev hand no more. (#4987)
Infinite blood crayon fr
2025-12-16 07:15:10 -06:00
Delta-V bot fcd0a54407 Automatic changelog update 2025-12-16 14:07:57 +01:00
Proxy also works :3 9c14eefedf Fixed SoP Employee References (#4947)
* entity culling

* what the fuck is a 'person'

* i transhate the guidebook
2025-12-16 15:07:37 +02:00
Delta-V bot de28f2062a Automatic changelog update 2025-12-16 06:54:29 +01:00
Field Commandandpre-commit-ci[bot] cb678246b6 Pebble Event Map (#4890)
* Pebble Event Map

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-15 23:54:09 -06:00
Delta-V bot 99563e2060 Automatic changelog update 2025-12-16 06:05:01 +01:00
Stxcking 5cda7d5de4 More Glasses loadout tweaks (#4977)
* guh

* force sec sunglasses
2025-12-15 23:04:41 -06:00
Delta-V bot 62790aaed0 Automatic changelog update 2025-12-16 02:34:22 +01:00
KOTOBandpre-commit-ci[bot] 13fa008f31 Trait - Redshirt (#4974)
* uhmmm

* health analyzer gaming

* cleanup

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* yeah

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* text update

* cleanup

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-15 19:34:02 -06:00
Charlie Morley e5cbab1155 xenoarch: fix "node scanner target deleted" console error (#4978)
fixed annoying error if you delete an artifact connected to a handheld node scanner
2025-12-15 17:34:08 -06:00
Charlie Morley 3fcd73eb29 xenoarch: artifacts no longer irradiate themselves (much) (#4976) 2025-12-15 17:10:17 -06:00
Proxy also works :3 ef1653c20a resync .wiki (#4961)
* resync SpaceLaw

* ♥typod

* okay send it
2025-12-15 09:55:47 +01:00
github-actions[bot]andDeltaV-Bot 0af4ecf6d6 Update Credits (#4973)
Co-authored-by: DeltaV-Bot <github@deltav.gay>
2025-12-14 18:46:10 +01:00
Delta-V bot d3065a49a6 Automatic changelog update 2025-12-13 20:19:12 +01:00
VelcroboyandVelcroboy 7c6de97004 Map Edits: Arena (#4965)
* Map Edits: Arena

* Remove fun

* typo

* Additional edits

* fixes

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-13 19:18:52 +00:00
Delta-V bot 279aff0382 Automatic changelog update 2025-12-13 07:43:23 +01:00
Colin-Tel a6e5489793 Division Update 12DEC2025 (#4960)
* Update division.yml

fishy

* added camera
2025-12-13 00:43:03 -06:00
Delta-V bot b9a02068d9 Automatic changelog update 2025-12-13 07:40:09 +01:00
Field Command 990193d448 Festive times at Pebble! (#4955)
Festive times at Pebble
2025-12-13 00:39:49 -06:00
Delta-V bot 96b23f58cb Automatic changelog update 2025-12-13 07:33:25 +01:00
Field Command de38af47e0 Festive times at Byoin! (#4954)
Festive times at Byoin
2025-12-13 00:33:05 -06:00
Delta-V bot 31cce8c457 Automatic changelog update 2025-12-13 07:31:55 +01:00
Vape 3bd56db54c Holidays on Glacier (#4936)
Update glacier.yml
2025-12-13 00:31:35 -06:00
Delta-V bot 0ab997d133 Automatic changelog update 2025-12-13 07:21:44 +01:00
snowywinters 359a7011ff Asterisk winter update (#4925)
Update asterisk.yml
2025-12-13 00:21:24 -06:00
Delta-V bot 1f6f9e5d86 Automatic changelog update 2025-12-12 23:40:53 +01:00
AirlineFood001andAirlineFood b55c92e72b The DREADED Advanced Plate Carrier Buffs (#4942)
APC needs some love dude it's so underutilized

Co-authored-by: AirlineFood <pickeldabfrug@gmail.com>
2025-12-12 16:40:34 -06:00
VelcroboyandVelcroboy 78146cfadf Update landmine spawner (#4958)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-12 16:36:16 -06:00
Velcroboy 29c819ec15 Fix beacon map colors (#4945) 2025-12-12 16:25:20 -06:00
Delta-V bot af050b3636 Automatic changelog update 2025-12-12 23:24:07 +01:00
Spielern 964465efcf Cherrypick Santa/Christmas Anomaly (#4957)
Enable Santa Anoamly

Signed-off-by: Spielern <iesteed2@gmail.com>
2025-12-12 16:23:46 -06:00
Velcroboy 0bfb5cd451 Detective and Library Signs (#4943)
* Update signs with DV color schemes
	new file:   Resources/Textures/_DV/Structures/Wallmounts/signs.rsi/detective.png
	new file:   Resources/Textures/_DV/Structures/Wallmounts/signs.rsi/library.png
	modified:   Resources/Prototypes/Entities/Structures/Wallmounts/Signs/signs.yml
	modified:   Resources/Textures/_DV/Structures/Wallmounts/signs.rsi/meta.json

* other files

* library
2025-12-12 22:24:48 +01:00
Delta-V bot b80b07e0ab Automatic changelog update 2025-12-12 20:22:15 +01:00
Astra 0adba6d9b6 Buff/fix forensic pads (#4932)
* Buff/fix forensic pads

* single line change no longer...

* Fix LOC

* Fix null check

* Pretty up the code (thanks to ShepardToTheStars)
2025-12-12 13:21:56 -06:00
Delta-V bot 59937ab927 Automatic changelog update 2025-12-12 12:05:19 +01:00
IRSMsoso 0c23548d6f Make every wingflap sound effect mono (#4952)
Make wingflapx.ogg mono
2025-12-12 11:04:59 +00:00
Delta-V bot 7feeadac7a Automatic changelog update 2025-12-12 11:54:56 +01:00
Halo3mothandTobias Berger 90eb644f9b minor lawyer kit tweaks (#4879)
* Slop changes

lots of things

* Surely webedit wont break anything

lots of errors fixed a few wordings clarified

Signed-off-by: Halo3moth <mdavid.wininger@gmail.com>

* Update Resources/Prototypes/Roles/Jobs/Civilian/lawyer.yml

maintainer change

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: Halo3moth <mdavid.wininger@gmail.com>

* Update Resources/Prototypes/Entities/Objects/Devices/pda.yml

maintainer change

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: Halo3moth <mdavid.wininger@gmail.com>

* Update Resources/Prototypes/Entities/Objects/Devices/pda.yml

maintainer change

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: Halo3moth <mdavid.wininger@gmail.com>

* Direction wants the changes seperated

Signed-off-by: Halo3moth <mdavid.wininger@gmail.com>

* missed a line

Signed-off-by: Halo3moth <mdavid.wininger@gmail.com>

* oopsies grammer 

Signed-off-by: Halo3moth <mdavid.wininger@gmail.com>

---------

Signed-off-by: Halo3moth <mdavid.wininger@gmail.com>
Co-authored-by: Tobias Berger <toby@tobot.dev>
2025-12-12 11:54:36 +01:00
Delta-V bot f5e0dc5fcd Automatic changelog update 2025-12-11 23:39:42 +01:00
b9843fa450 Purifying salts (#4682)
* healing

* aaaaaaa

* i'm too tired for this

* Update Resources/Prototypes/_DV/Stacks/medical_stacks.yml

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: AeraAulin <133451603+AeraAuling@users.noreply.github.com>

* Update Resources/Prototypes/_DV/Entities/Objects/Specific/Medical/healing.yml

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: AeraAulin <133451603+AeraAuling@users.noreply.github.com>

* thing

* tired feverish webedit

Signed-off-by: AeraAulin <133451603+AeraAuling@users.noreply.github.com>

* comment change to retrigger CI

Signed-off-by: Charlie Morley <cmorley191@gmail.com>

---------

Signed-off-by: AeraAulin <133451603+AeraAuling@users.noreply.github.com>
Signed-off-by: Charlie Morley <cmorley191@gmail.com>
Co-authored-by: Tobias Berger <toby@tobot.dev>
Co-authored-by: Charlie Morley <cmorley191@gmail.com>
2025-12-11 15:39:23 -07:00
Delta-V bot 31c3751a11 Automatic changelog update 2025-12-11 23:05:42 +01:00
Sir Warock 550546300b Added Truncheon to Security Firearm Loadout (#4838)
* Let Secoffs spawn with Truncheon

* Fix

* move defib to belt
2025-12-11 15:05:22 -07:00
Delta-V bot a639e8cd1d Automatic changelog update 2025-12-11 15:59:17 +01:00
ConstantlyConfused 85baec2532 Update the Crime Assist App (again) (#4937)
* update crime descriptions

* make questions not refer to sophonts

* meow
2025-12-11 08:58:57 -06:00
Delta-V bot 4fde260ca4 Automatic changelog update 2025-12-10 22:59:58 +01:00
verybigman fb086d98b0 Circular Saws and Mining Drills revert/fix (#4886)
* tada

* comments fix

* changes plied

* balancing
2025-12-10 14:59:39 -07:00
Delta-V bot 36bc5a387d Automatic changelog update 2025-12-10 16:49:09 +01:00
Field Command fcc48538b1 Pebble Hotfix 2: Small Fixes (#4924)
Small Fixes
2025-12-10 09:48:49 -06:00
Delta-V bot 543ddb718e Automatic changelog update 2025-12-10 16:26:09 +01:00
pootslap 6d352688f7 Harpy emote tweaks. (#4915)
* gendered emotes + bird noises

* yawn fix

* Moved to _DV
2025-12-10 09:25:50 -06:00
Delta-V bot 20f282cd33 Automatic changelog update 2025-12-10 15:59:46 +01:00
verybigman 177a12f8d8 Mowed Astrosnow (#4921)
* idk

* cleanup after

* tada
2025-12-10 08:59:26 -06:00
Delta-V bot 9e9fd50bb9 Automatic changelog update 2025-12-10 15:57:57 +01:00
Sir Warock be03177c2e Made Rollerbeds immune to steptriggers (#4933) 2025-12-10 08:57:37 -06:00
Delta-V bot 7612a7dcf9 Automatic changelog update 2025-12-10 09:13:02 +01:00
Vanessa 0f921dc115 EntropicDegen Fix (#4931)
lol
2025-12-10 08:12:42 +00:00
Delta-V bot 496467c7ba Automatic changelog update 2025-12-10 09:05:52 +01:00
Stxcking f70b80e88a Add more festive holiday clothing to AutoDrobe (#4909)
* sprites galore

* no Santa monkey

* autodrobe

* cost up
2025-12-10 08:05:32 +00:00
Minerva 3526da8a62 Fixes coffe typo (#4930) 2025-12-09 21:00:08 -06:00
Delta-V bot ccde7f3164 Automatic changelog update 2025-12-09 20:44:47 +01:00
Colin-Tel 4b60952386 Chibi update 08DEC2025 (#4914)
* omg chibi so kawaii!~ >w<

* take a wild fucking guess

* cameras, fixrotations, tilewindows
2025-12-09 19:44:27 +00:00
Delta-V bot 0df8d7e238 Automatic changelog update 2025-12-09 19:31:27 +01:00
Stxcking 89cffdf305 Syndicat ghost role description tweak (#4889)
* final tweaks I promise.

* minor desc change requests

* typo buh
2025-12-09 18:31:07 +00:00
Delta-V bot bee774ad98 Automatic changelog update 2025-12-09 18:56:36 +01:00
snowywinters d1ee7499eb AI HUD and Comms Update (#4905)
* test one

* Removed mind shield hud
2025-12-09 11:56:16 -06:00
Delta-V bot 838c3c490d Automatic changelog update 2025-12-09 17:45:06 +01:00
MD360 9ba19a023f 100% Ion resistance on Ninja Suit and Visor NVG. (#4916)
* Add NVG to visor, Ion Immunity and no EMP armor ignore

* Comments..

* .ftl from up to _DV

* Rewrote visor description.

* Remove ftl newline, forgor desc comment.
2025-12-09 10:44:47 -06:00
67c127ecee Vulnerable String Sanitization (Prevent cmdlink) (#4922)
* Fix label markup escapeing (#40600)

fix

* Sanitize NanoChat

* Escape PDA Owner/Job

* Escape ID Examine

* Early merge of https://github.com/space-wizards/space-station-14/pull/41799

---------

Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com>
Co-authored-by: Tobias Berger <toby@tobot.dev>
2025-12-09 15:38:10 +00:00
Delta-V bot da74750c7d Automatic changelog update 2025-12-08 20:34:42 +01:00
verybigman 12f561b292 Reinforced Tinted Windows Bug Fix (#4918)
fix
2025-12-08 19:34:23 +00:00
Delta-V bot 87887e9555 Automatic changelog update 2025-12-08 16:42:26 +01:00
Field Command 7c02535bd1 Byoin TEG burn chamber edits! (#4911)
Update byoin.yml
2025-12-08 09:42:06 -06:00
Delta-V bot f58547b51a Automatic changelog update 2025-12-08 16:34:41 +01:00
a28ae76d34 Feroxi: Blood in the Water (#4902)
* Added shark vision to Feroxi.

* Fixed a bug if someone was holding a container of blood.

* Updated pulse time and useDelay for the pulse.

* Updated guidebook

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Cleanup

* More clean-up

* Removed vision goggles sound from ability

* Got rid of an unused namespace

* last fix I swear

* Apply suggestions from code review

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

* Apply suggestion from @Toby222

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

* Removed SharedLightSystem from SharkVisionOverlay

---------

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Tobias Berger <toby@tobot.dev>
2025-12-08 16:34:21 +01:00
Delta-V bot ebb91609ab Automatic changelog update 2025-12-08 16:33:34 +01:00
Vanessaandpre-commit-ci[bot] 6f288da78f Syndie borg fixes (#4913)
* Moved law boards to their own file, similar to the structure that upstream uses.

* Fixed syndicate medical borg ghost role. Moved DV lawsets.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-08 16:33:14 +01:00
Delta-V bot c51f259c7d Automatic changelog update 2025-12-08 15:49:09 +01:00
c9ea4aeb77 xenoarch: node scanner UI overhaul (#4814)
* xenoarch: node scanner UI overhaul

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.Unlock.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Charlie Morley <cmorley191@gmail.com>

* Update Content.Shared/Xenoarchaeology/Artifact/SharedXenoArtifactSystem.Unlock.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Charlie Morley <cmorley191@gmail.com>

---------

Signed-off-by: Charlie Morley <cmorley191@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-08 08:48:49 -06:00
Delta-V bot e7afcda1a8 Automatic changelog update 2025-12-08 15:47:27 +01:00
Charlie Morley b56ca6e773 xenoarch: remove impossible artifact trigger combinations (#4740)
* xenoarch trigger combination blacklists

* minor review comments

* review comments
2025-12-08 08:47:07 -06:00
Charlie Morleyandpre-commit-ci[bot] 14f6ebbd14 Protect arrivals and evac from meteors (slightly) (#4820)
* Protect arrivals and evac from meteors (slightly)

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* change meteor protection zone to a MarkerBase

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-08 08:41:56 -06:00
Delta-V bot 7ede56f59e Automatic changelog update 2025-12-08 15:37:42 +01:00
087dc9b9c0 Give custom laws to Salv Borg (#4866)
* Give custom laws to Salv Borg

Give a custom lawset to salvage borg

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* updated laws explain it better and look cleaner

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* Update laws.ftl

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

---------

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-08 08:37:23 -06:00
Delta-V bot 26bd34ad1b Automatic changelog update 2025-12-08 15:35:18 +01:00
DorragonandVanessa 4346034b4c Adds nightvision to rat kings and xenos (#4881)
* ISeeDeadPeople

* Apply suggestions from code review

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

---------

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-08 14:34:57 +00:00
Delta-V bot 9c232542fd Automatic changelog update 2025-12-08 14:59:12 +01:00
e945f5869a Harpies Flightless No More! (#4888)
* Initial port of EE Harpy flying (#919)

* Added better friction and acceleration modifiers.

* Moved server's flight system to shared. I don't know why it isn't in the first place.

* Shifting things around.

* Code tweaks to make it better

* Comment fixes

* Fixed footsteps and footstep sounds

* Added a quick conditional if InitialStaminaCost greater than zero

* Removed a pop-up that wasn't showing

* Additional adjustments

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fixed a few more systems to call the Flying system instead of the component

* Comment consistency. DeltaV comments where I made it better. EE comments where they originally had things

* YAML fixes

* Guidebook

* Apply suggestions from code review

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

* Removed DoAfterDashEvent

* Fixed suggestions

* Updated comment

* Added new copyright free wingflaps with proper attribution

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Appeased YAML gods

---------

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Tobias Berger <toby@tobot.dev>
2025-12-08 14:58:52 +01:00
Tobias Berger 1b7d405ecb Manual changelog update 2025-12-08 14:56:44 +01:00
Tobias Berger 12584f2291 Manual changelog update 2025-12-08 12:05:31 +01:00
Delta-V bot 4ab4662ffe Automatic changelog update 2025-12-08 10:01:34 +01:00
verybigmanandTobias Berger d287951f1e Reinforced Tinted Windows (#4875)
* completion

* fix

* moved directories

* fixed

* Apply suggestion from @Toby222

Signed-off-by: Tobias Berger <toby@tobot.dev>

---------

Signed-off-by: Tobias Berger <toby@tobot.dev>
Co-authored-by: Tobias Berger <toby@tobot.dev>
2025-12-08 10:01:15 +01:00
Delta-V bot d3e011e9b0 Automatic changelog update 2025-12-08 07:08:57 +01:00
VelcroboyandVelcroboy 566382e75f It's a Tortuga Xmas! (#4893)
* It's a Tortuga Xmas!

* ...

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-08 07:08:37 +01:00
Delta-V bot 6dbb71c5c7 Automatic changelog update 2025-12-08 07:08:11 +01:00
VelcroboyandVelcroboy 306607e12c Hivemas (#4898)
* Hivemas

* variantize

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-08 07:07:51 +01:00
turtlemutt 4f39809ea9 Winterhouse (#4910)
Update lighthouse.yml
2025-12-07 23:39:42 -06:00
Delta-V bot 88055bb823 Automatic changelog update 2025-12-08 06:30:37 +01:00
This_Is_Gray 0f388ece51 It Snew On Lady Elegance (Christmas PR) (#4903)
* Update elegance.yml

* Update elegance.yml

* those who snow

* nukes the tattered cloak for real

* Update elegance.yml
2025-12-07 23:30:18 -06:00
3720e89c52 Xenoarch tweaks (#4486)
* Initial glimmer change

* Added glimmer multiplier

* Adds scalar of research properly like the old glimmer system

* Left over code

* Glimmer changes for Analysis Console UI

* Accidental Namespace added

* Fixed small Math issue with glimmer values

* Fixed reference to Nyano

* Update Content.Client/Xenoarchaeology/Ui/AnalysisConsoleMenu.xaml

Co-authored-by: KOTOB <59124164+kotobdev@users.noreply.github.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Content.Client/Xenoarchaeology/Ui/AnalysisConsoleMenu.xaml

Co-authored-by: KOTOB <59124164+kotobdev@users.noreply.github.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Content.Shared/Xenoarchaeology/Equipment/Components/ArtifactAnalyzerComponent.cs

Co-authored-by: KOTOB <59124164+kotobdev@users.noreply.github.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Fixed Deltav comment references

Went though various files and added comments to signify where delta v changes are to the upstream code

* More DeltaV Comment fixes

Added a few more comments for DeltaV specific changes, I also removed an unused line of code, and renamed to variables for better clarity

* Commenting and moving one file to _DV

I cant read apparently and  only saw some fixes requested, here are the rest apologies

* Update Content.Shared/Xenoarchaeology/Equipment/Components/ArtifactAnalyzerComponent.cs

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Content.Shared/Xenoarchaeology/Equipment/Components/AnalysisConsoleComponent.cs

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Content.Shared/Content.Shared.csproj

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Content.Server/Xenoarchaeology/Equipment/ArtifactAnalyzerSystem.cs

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Content.Client/Xenoarchaeology/Ui/AnalysisConsoleBoundUserInterface.cs

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Content.Shared/_DV/Xenoarchaeology/BUI/AnalysisConsoleBoundUserInterfaceState.cs

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Resources/Locale/en-US/xenoarchaeology/artifact-analyzer.ftl

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Addressed issues of cleaning up a function to one that already exists, restoring an old comment from upstream, and moving localization data to _DV folder

* Update Content.Client/Xenoarchaeology/Ui/AnalysisConsoleMenu.xaml.cs

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Content.Client/Xenoarchaeology/Ui/AnalysisConsoleMenu.xaml.cs

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Content.Server/Xenoarchaeology/Equipment/ArtifactAnalyzerSystem.cs

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Content.Server/Xenoarchaeology/Equipment/ArtifactAnalyzerSystem.cs

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Update Content.Client/Xenoarchaeology/Ui/AnalysisConsoleMenu.xaml.cs

Co-authored-by: Charlie Morley <cmorley191@gmail.com>
Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>

* Missed one line to bring over to _DV

* Fixed github and IDE complains about null ref

---------

Signed-off-by: SirSmith148 <64059804+SirSmith148@users.noreply.github.com>
Co-authored-by: KOTOB <59124164+kotobdev@users.noreply.github.com>
Co-authored-by: Charlie Morley <cmorley191@gmail.com>
2025-12-07 21:12:01 -07:00
Delta-V bot 3e56f86b00 Automatic changelog update 2025-12-08 01:04:06 +01:00
5060736956 Atmos Ops: dP Guidebook Entry (#4906)
Atmos dP Guidebook Entry (#40194)

* Add Atmos dP guidebook

* Update Resources/ServerInfo/Guidebook/Engineering/DeltaPressure.xml

---------


(cherry picked from commit a93f6b8cdf)

Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-07 18:03:46 -06:00
ConstantlyConfused d86ae4278e Make the cane loadout group include the librarian cane (#4904) 2025-12-07 22:58:03 +01:00
Cepelinas1 a595421915 Demetashield epsilon part 2 (#4481)
* demetashield epsilon part 2

* bug fix

* annoucement.yml fix

* some redundant stuff removed

fix
2025-12-07 13:12:48 -07:00
Delta-V bot bcde66d934 Automatic changelog update 2025-12-07 19:03:11 +01:00
beck-thompson 9b00ed5737 Fix respawn timer (#4895)
* fix
2025-12-07 19:02:52 +01:00
Delta-V bot e253f855e1 Automatic changelog update 2025-12-07 18:54:53 +01:00
Stxckingandpre-commit-ci[bot] 4a9a9f4be5 Add Chemical, Paramedic, and Surgeon wall lockers (#4899)
* woo wall lockers!

* chemical

* clean up

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-07 18:54:34 +01:00
github-actions[bot]andDeltaV-Bot 0975ff525c Update Credits (#4897)
Co-authored-by: DeltaV-Bot <github@deltav.gay>
2025-12-07 18:45:59 +01:00
Delta-V bot 49b60728db Automatic changelog update 2025-12-07 12:46:04 +01:00
Halo3moth 3ea3cc3ff9 Always bigger fi- oh nevermind (Feroxi Emote) (#4877)
* feroxi changes

Wideswing,10 pierce, tail thump, better storage of body emotes for feroxis

* Direction Changes

Removed wideswing dropped feroxi melee back to 7

Signed-off-by: Halo3moth <mdavid.wininger@gmail.com>

---------

Signed-off-by: Halo3moth <mdavid.wininger@gmail.com>
2025-12-07 05:45:45 -06:00
Dorragon fed1c5cfc3 Centcomm roles QOL (#4880)
* first commit yippee

* ERT now gets centcomm implants too. Also fixes ERT not having death rattle implants
2025-12-07 05:34:16 -06:00
Delta-V bot 1209f820ee Automatic changelog update 2025-12-07 10:47:33 +01:00
Proxy also works :3andVanessa 1fb4b9871a kill speedboots (#4883)
* remove speedboots

* no more reverse engineering

* Update Resources/Prototypes/Research/civilianservices.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: Proxy also works :3 <98499019+Proxysseia@users.noreply.github.com>

---------

Signed-off-by: Proxy also works :3 <98499019+Proxysseia@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-07 11:47:14 +02:00
Delta-V bot 420a9266ed Automatic changelog update 2025-12-07 08:09:54 +01:00
29a7d080d4 Make pride clothing be able to chameleon into similar pieces of pride clothing (#4845)
* Expedite gender reassignment (#36894)

* Remove Misgendering (#40425)

fix misgendering

* make pride scarfs and cloaks chameleon

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* add missing comments

* Attempt Toby's suggestion: rename chameleon stuff

* rename the chameleon verb & window

---------

Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-07 00:09:34 -07:00
Delta-V bot f976232d0c Automatic changelog update 2025-12-07 07:40:28 +01:00
Field Command b23d763547 Midpoint Festive Season (#4891)
* Midpoint Festive Season

* Made frosty lights not be powered by festive magic
2025-12-07 06:40:08 +00:00
HTML/Crystal d273cdba9b Give dummy avali and chitnid moth eye sprites (#4884)
1 commit ops
2025-12-06 23:07:19 -07:00
VelcroboyandVelcroboy 51035e28dd Fix mapping section in CONTRIBUTING.md (#4894)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-06 21:27:52 +00:00
Delta-V bot b87ec6b1e4 Automatic changelog update 2025-12-06 06:33:59 +01:00
VelcroboyandVelcroboy 246cf08462 Map Hotfix: Tortuga (#4878)
* Map Hotfix: Tortuga

* invalid

* Circuit imprinter

* increase detective 1->2

* return of the circuit imprinter

* fish power

---------

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-06 05:33:40 +00:00
Delta-V bot 9645a5ca82 Automatic changelog update 2025-12-06 05:40:22 +01:00
VelcroboyandVelcroboy 0e4502b973 Map Edits: The Hive (#4887)
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
2025-12-06 05:40:02 +01:00
biddygelson d4e0857063 Academy 1.3.0 (#4863)
* * make festive for winturrr
* fixed emergency light in viro checkpoint
* fixed always on light outside dispo

* fixed light
2025-12-05 19:27:23 -06:00
Delta-V bot 448a10f27f Automatic changelog update 2025-12-06 02:25:56 +01:00
SirrRequiem 7c91aa2f9d Terra: The Holiday Episode (#4843)
SNOW
2025-12-05 19:25:36 -06:00
Delta-V bot d5bf0abb33 Automatic changelog update 2025-12-06 02:25:14 +01:00
Field Command 3b30bcdbd5 Pebble hotfix 1: Added ore processor (#4874)
* Added ore processor

* Forgot grills
2025-12-05 19:24:55 -06:00
turtlemutt 7eabecb3b6 Update lighthouse.yml (#4849) 2025-12-05 19:23:53 -06:00
Cepelinas1 86e02dbae5 fix errors in SOP and space law in wiki, again (#4753)
* first commit

* fix
2025-12-05 20:10:53 +01:00
Delta-V bot 8c5713d756 Automatic changelog update 2025-12-05 18:56:58 +01:00
fa095884ee Space Law / SoP in guidebook! (#4857)
* Add files via upload

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Add files via upload

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Add files via upload

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Add files via upload

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Add files via upload

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Updated this to fix a no longer existent .xml

* Fixed a stash issue lol

* man im sloppy, fixed a title issue lol

* Made both books have the AlertProcedure guide entry

* added the Alert Procedure

* Normalised line endings to LF

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update Resources/Prototypes/Entities/Objects/Misc/books.yml

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/_DV/Guidebook/CompanyPolicy.yml

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/Prototypes/_DV/Guidebook/CompanyPolicy.yml

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/GeneralRegulations.xml

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/RightsandResponsibilities.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/selfDefence.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/CodeofConduct.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/CodeofConduct.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update Resources/ServerInfo/Guidebook/_DV/SPLAW/CompanyPolicy/PotentialThreats.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Fixed most of my sloppy YAML and guidebook entries as suggested.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Edited alot of entries and YMLs to mirror changes.
Removed alot of unnecessary speechmarks

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Update Resources/ServerInfo/Guidebook/_DV/SpaceLaw/CompanyPolicy/DangersFromOurCompetitors.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Fixed my YAML

* Added the AND to SecurityandJustice

* Fixed my linktexts

* fixed no filepath

* made a commanding officer entry

* Fixing and adding some entries

* more fixes

* bye bye empty.xml!

* ac

* Made entries, marked some in bold and finally updated the medical reference book!

* fixed indentation

* Update CodeofConduct.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update CodeofConduct.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update CodeofConduct.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update CodeofConduct.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update AppearanceStandards.xml

Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

* Update books.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>

---------

Signed-off-by: PureBreadBagel <146181383+PureBreadBagel@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Tobias Berger <toby@tobot.dev>
Co-authored-by: Cepelinas1 <kakelis01@gmail.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-05 17:56:38 +00:00
Charlie Morley c0819086f5 CONTRIBUTING.md - .ftl _DV guideline & reorganized comment section (#4882)
* CONTRIBUTING.md - reorganized, and added ftl separate file guideline

* minor tweak

* helps when your example is actually relevant

* CONTRIBUTING review comment - features to changes

Signed-off-by: Charlie Morley <cmorley191@gmail.com>

* triple yaml example combo

---------

Signed-off-by: Charlie Morley <cmorley191@gmail.com>
2025-12-05 14:14:57 +00:00
Delta-V bot 867c2d1be4 Automatic changelog update 2025-12-05 13:56:29 +01:00
3c0fa71f86 Holofan Rebalance (and Standardizing Holoprojectors) (#4734)
* Holofan re-balance. No longer infinite but recharge.

Original Implementation by MajorMoth. Modified and expanded on by ShepardToTheStars. Holofans Changes (#1394)

<!-- Guidelines:
https://docs.spacestation14.io/en/getting-started/pr-guideline -->
<!-- NOTE: All code submitted to this repository is ALWAYS licensed
under the AGPL-3.0-or-later license.
The REUSE Specification headers or separate .license files indicate a
secondary license (e.g., MPL or MIT) solely to facilitate
integration for projects that do not use the AGPL license. This
secondary license does not replace the fact that AGPL-3.0-or-later
remains the primary and binding license.
Uncomment and modify the following line if you wish to change the
license from the default of AGPL.-->
<!--- LICENSE: AGPL -->
<!-- What did you change? -->
- Holofans are now timed
- Holobarriers are now charge based, and produce a timed barrier

<!-- Discuss how this would affect game balance or explain why it was
changed. Link any relevant discussions or issues. -->
Direction request to avoid them being up all shift and doing atmos
shenanigans.

<!-- Summary of code changes for easier review. -->
New components and systems to handle detailed descriptions on holofan
barriers. Bunch of .yml changes.

Because both holograms can now either be destroyed, or despawn after 5
minutes, a complete rewrite of the way they're produced was necessary.
The projectors still have 6 uses and can recharge 1 use every 2 minutes.
Clicking on a holo barrier/fan with the correct projector will delete
it, and add a charge back to the projector.

<!-- Attach media if the PR makes ingame changes (clothing, items,
features, etc).
Small fixes/refactors are exempt. Media may be used in SS14 progress
reports with credit. -->
N/A

<!-- Confirm the following by placing an X in the brackets [X]: -->
- [X] I have read and am following the [Pull Request and Changelog
Guidelines](https://docs.spacestation14.com/en/general-development/codebase-info/pull-request-guidelines.html).
- [X] I have added media to this PR or it does not require an ingame
showcase.
- [X] I can confirm this PR contains no AI-generated content, and did
not use any AI-generated content.
<!-- You should understand that not following the above may get your PR
closed at maintainer’s discretion -->

<!-- List any breaking changes, including namespaces, public
class/method/field changes, prototype renames; and provide instructions
for fixing them.
This will be posted in #codebase-changes. -->

**Changelog**
<!-- Add a Changelog entry to make players aware of new features or
changes that could affect gameplay.
Make sure to read the guidelines and take this Changelog template out of
the comment block in order for it to show up.
Changelog must have a 🆑 symbol, so the bot recognizes the changes and
adds them to the game's changelog. -->

🆑 Jakumba
- add: Added a warning text when inspecting a Holofan and Holobarrier
with duration before they expire
- tweak: Holobarrier Projectors now work on a charge base system
- tweak: Holofans and Holobarriers now last for five minutes when placed

---------

Co-authored-by: Falcon <falcon@zigtag.dev>
Co-authored by: Vanessa <vanessalouwagie@gmail.com>

* Added a CanPickup variable to the component to disallow picking up holoprojections.

* Hid the empty version of HoloprojectorEngineering

* YAML cleanup

* Holoprojection locale update

* Old logic cleanup

* Fixed holobarrier sprite

* Words

* Fixed hidden projector in DV namespace

* Excluded TimedDespawnDetailed from test that already excluded the TimedDespawn comp

* PR #4734 feedback changes

* oops. Actually put StopTimer in TimedDespawnDetailed

---------

Co-authored-by: Jakumba <16194688+Jakumba@users.noreply.github.com>
Co-authored-by: Falcon <falcon@zigtag.dev>
2025-12-05 12:56:09 +00:00
Delta-V bot 1179c52b26 Automatic changelog update 2025-12-05 05:48:49 +01:00
KOTOB 275413e268 Discourage LRP warops announcements (#4876)
no fun allowed
2025-12-04 22:48:29 -06:00
Delta-V bot 7649c9ecde Automatic changelog update 2025-12-05 03:59:16 +01:00
Stxckingandpre-commit-ci[bot] 4c1ffd2cee Fishing Vendor and Fish Basket (#4862)
* everything rah

* vending.png

* recovered files

* clean up

* .

* final touches?

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-04 20:58:57 -06:00
Delta-V bot 5183d9fcc1 Automatic changelog update 2025-12-05 03:49:51 +01:00
HTML/Crystal 7b5f735051 Give chitnids moth eye sprites (#4835)
1 line ops
2025-12-04 20:49:31 -06:00
Delta-V bot 3e55e8ccc3 Automatic changelog update 2025-12-05 03:40:55 +01:00
Vanessaandpre-commit-ci[bot] 0dad42c119 Silvia can equip medhuds and IDs. Fixed her slipping too. (#4867)
* Silvia can see health bars. Fixed her slipping too.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added inventory slots to Silvia.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* PR Feedback

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-04 20:40:36 -06:00
Delta-V bot a8848872cf Automatic changelog update 2025-12-05 03:37:39 +01:00
verybigman 147188ebca Various melee weapon tweaks and modifications. (#4806)
* part uno

* tada

* aaaaa

* a

* last one i swear

* i lied

* error fixed

* fixed conflict for real this time

* choppas, rickenbacker, and pickaxe reverted

* fixed for real this time

* fixed comments

---------

Signed-off-by: verybigman <171044200+verybigman311@users.noreply.github.com>
2025-12-04 20:37:20 -06:00
Delta-V bot 967108a2d9 Automatic changelog update 2025-12-05 03:14:20 +01:00
Stxcking c12e669b14 Add prescription glasses to loadouts + diagnostic hud (#4871)
* everything buh

* a bunch of loadout changes

* .rsi

* changes request + prisonguard startinggear
2025-12-04 20:14:00 -06:00
Delta-V bot f6e855f4a3 Automatic changelog update 2025-12-05 03:05:12 +01:00
Charlie Morley 2cd12c7b9e fix duplicate spawns from anomaly (undrillable rock bug) (#37833) (#4873)
* prevent anomalies from spawning duplicate entities or tiles on a tile

* deltav comments
2025-12-04 20:04:53 -06:00
Delta-V bot e4ab6d7106 Automatic changelog update 2025-12-05 02:59:05 +01:00
Vanessa 48ee9ed999 Fixed agent visor not able to see silicon and kitsune health bars (#4864)
* Fixed nukie visor not able to see silicon and kitsune health bars

* Fixed syndicate medical borgs too

* Additional commenting
2025-12-05 01:58:46 +00:00
Delta-V bot 98eeeb654a Automatic changelog update 2025-12-05 02:44:55 +01:00
Vanessa 8932a19003 Early merge of bomb planting tweak (#41208) (#4861) 2025-12-04 19:44:35 -06:00
Delta-V bot cbec20b6c7 Automatic changelog update 2025-12-04 23:29:19 +01:00
verybigman f971a9c9b3 Addition of Shrapnel to Frag Grenade Projectiles (#4856)
added functionality
2025-12-04 16:28:59 -06:00
Delta-V bot ef1dffd653 Automatic changelog update 2025-12-04 19:42:40 +01:00
verybigman 0f1a7f69e8 Ultimate Wielded Sprites Update (and other fun things) (#4851)
* lasers done

* fixed drinks

* one done

* enforcer complete

* messed up the sprites

* fixed suitstorage

* edit

* electric boogaloo

* save

* IK done

* guess who forgot to edit the json

* every gun now has wield sprites

* kammerer is BROKEN

* finally free

* changes
2025-12-04 12:42:20 -06:00
Delta-V bot 404956c873 Automatic changelog update 2025-12-04 17:59:28 +01:00
73363b9ff5 More Chat Indicators (#4679)
* emote whisper and OOC bubbles

Signed-off-by: Nesoryo-jpeg <joem365289@gmail.com>

* Update meta.json

added entries for OOC, Emote, and Whisper

Signed-off-by: Nesoryo-jpeg <joem365289@gmail.com>

* Update meta.json

added copyright info for OOC, Emote, and Whispering

Signed-off-by: Nesoryo-jpeg <joem365289@gmail.com>

* Update typing_indicator.yml

Added Whisper, OOC, and Emote indicators

Signed-off-by: Nesoryo-jpeg <joem365289@gmail.com>

* added indicator logic

* added radio sprite state

* initialized logic for chat bubbles

* refresh indicator change

* fixed emote sprite

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* nicer comments

* cleaned up and sorted namespaces

* oh my god

* cleanup...

* cleanup two

* cleanup 3 (my god)

* YESSSS

---------

Signed-off-by: Nesoryo-jpeg <joem365289@gmail.com>
Co-authored-by: Nesoryo-jpeg <joem365289@gmail.com>
Co-authored-by: nkokic <nikola1.kokic@gmail.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-04 10:59:08 -06:00
Delta-V bot ed21b2e04d Automatic changelog update 2025-12-04 14:28:17 +01:00
Dorragonandpre-commit-ci[bot] 36025fe065 There's always bigger fish in the sea (#4826)
* Oh my god there are sharks here

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* I don't even know man

* Fix spaces

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* fixes fixes fixes

* English language was invented to sell more dictionaries

* eveny

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-04 14:27:57 +01:00
Delta-V bot 7ad4ff91a4 Automatic changelog update 2025-12-04 12:18:26 +01:00
e7c2f7a32a Small Borg ID Chips Rework (#4821)
* Removed Basic borg IDs.

* Added ID chips to derelict borgs so they don't have to beg to get into the station.

* Added the ability to unlock derelict syndicate cyborgs to roboticists

* Lathes now create borg ID chips with all Borg AA permissions.

* Added new component for Borg ID chips to prevent them from being copied.

* Fixed words

* Added BorgIdCard to BaseIdChip

* Logic hard

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Added BorgModulesDeltaV to exofabs

* Fixed build error

* Update Content.Shared/_DV/Access/Components/BorgIdCardComponent.cs

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>

* PR #4821 feedback

* Forgot to rename a file.

---------

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Tobias Berger <toby@tobot.dev>
2025-12-04 12:18:07 +01:00
Delta-V bot 1d3bc96e1f Automatic changelog update 2025-12-04 09:27:57 +01:00
WoljifandTobias Berger 8e20fdc54b Buffed the dragon (#4781)
* Buffed the dragon

* Move dragon modifier set to _DV

* Tweaks requested by direction

* Update Resources/Prototypes/Entities/Mobs/Player/dragon.yml

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: Woljif <243318409+Woljif@users.noreply.github.com>

---------

Signed-off-by: Woljif <243318409+Woljif@users.noreply.github.com>
Co-authored-by: Tobias Berger <toby@tobot.dev>
2025-12-04 09:27:37 +01:00
Minerva f6f8a085e3 Cherrypick: Prefixes surgical caps with their color (#41681) (#4868)
Prefixes surgical caps with their color (#41681)
2025-12-04 00:27:05 -06:00
This_Is_Gray fe553d0061 AI Camera + Misc. Elegance "Hot"fix (#4860)
* Update elegance.yml

* Update elegance.yml
2025-12-03 23:52:08 -06:00
Delta-V bot 995d8b51e6 Automatic changelog update 2025-12-04 06:07:06 +01:00
Field Command 6214826354 Pebble is not small station anymore! (#4850)
Pebble is not small station anymore
2025-12-03 23:06:46 -06:00
Delta-V bot cbb2d827a0 Automatic changelog update 2025-12-04 06:06:33 +01:00
Field Command a982f9d6db Update to NTES BC20 evac shuttle for Lighthouse (#4842)
BC20 Update
2025-12-03 23:06:13 -06:00
Delta-V bot 774f203deb Automatic changelog update 2025-12-04 04:26:59 +01:00
verybigman dae3e5fe26 Christmas Lamp Rotation Fix (#4865)
lampfixed
2025-12-03 21:26:40 -06:00
Minerva e8f181cb44 Prefixes DV-specific surgical cap names with their color (#4859) 2025-12-03 23:36:02 +00:00
Delta-V bot 42524f7030 Automatic changelog update 2025-12-03 23:35:18 +01:00
Field Command 076e4b1a5e The shipyard will haunt me for millennia (#4858)
* Appraiser, why you be like this?

* small edit
2025-12-03 16:34:59 -06:00
Delta-V bot 12912a55ec Automatic changelog update 2025-12-03 21:26:12 +01:00
Stxcking baddc5b782 Fix syndicat pointless description (#4854)
Update pointless.yml
2025-12-03 14:25:52 -06:00
Delta-V bot b50015430e Automatic changelog update 2025-12-03 17:08:46 +01:00
Vanessa 10cb0f3cd2 Stasicillin Forced Sleeping Fix (#4823)
* This probably works.

* Updated duration of stasicillian sleep.
2025-12-03 16:08:26 +00:00
Delta-V bot 7836c82461 Automatic changelog update 2025-12-03 08:08:11 +01:00
Proxy also works :3 14b3561bab remove species locks in uplink store (#4759)
* remove racism

* Update uplink_catalog.yml

* larynx instead of syrinx
2025-12-03 01:07:52 -06:00
Delta-V bot 7dd8a86b9d Automatic changelog update 2025-12-03 06:32:20 +01:00
Stxckingandpre-commit-ci[bot] 60928a137b Syndicat Returns (#4731)
* meow

* whoops

* meta,json

* forgot

* i cant spell sobs

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* resolved conflict

* Revert "resolved conflict"

This reverts commit 3fcf22b163.

* Update plastic.yml

* Update plastic.yml

* Update plastic.yml

* Update plastic.yml

* Update plastic.yml

* Update plastic.yml

* changes request

---------

Signed-off-by: Stxcking <tamthaotran5@outlook.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-02 23:32:01 -06:00
Delta-V bot f1b568385f Automatic changelog update 2025-12-03 06:02:06 +01:00
ConstantlyConfused bd7aaf4ea2 Add aroace cloaks to the Pride-o-mat (#4847)
* Make Aroace cloaks accessible through the pride-o-mat

* slightly increase price
2025-12-02 23:01:47 -06:00
Minerva 9f6826ca6b Trait typofixes (#4840)
* Trait typofixes

* This typo slipped past me
2025-12-02 20:13:43 -06:00
Charlie Morley 489eae6a0f add MeteorLargeDeltaV to entity spawn menu (#4822)
* add MeteorLargeDeltaV to entity spawn menu

* meteor suffix
2025-12-02 23:32:56 +00:00
Delta-V bot 7ab87401db Automatic changelog update 2025-12-03 00:30:07 +01:00
Field Commandandpre-commit-ci[bot] 1cbb219722 Lots of edits and naming conventions to grids (#4828)
* lost of fixes

- Standardized all shuttles.
- Standardized shuttle naming convention for shipyard shuttles.
- Standardized shuttle naming convention for cargo shuttles.
- Fixed Midpoint wrongly named holopad in the reporter's office.

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Fixed shipyard pricing

* Margin was apparently not enough

* Not enough margin still

* Hopefully this will solve the margins

* Applied requested changes

* Those darn margins are so hard to predict

* Named the trader

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-12-02 17:29:47 -06:00
Delta-V bot c8c2614445 Automatic changelog update 2025-12-02 23:26:46 +01:00
Vanessa 3570b40a18 Rat lungs don't scale by quantity of miasma (#4836)
Changed scaleByQuantity to false to nerf rat lungs.

Signed-off-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-02 23:26:27 +01:00
Delta-V bot 2a4fb27248 Automatic changelog update 2025-12-02 15:20:57 +01:00
Vape f912e02e85 Updates Patreon Link (#4833) 2025-12-02 15:20:37 +01:00
Delta-V bot cee50ea403 Automatic changelog update 2025-12-02 06:33:22 +01:00
Field Command d15ef11237 Pebble's Reincarnation! (#4807)
* Pebble V2

* Added missing job spawns

* Added in missing intercoms

* Hopefully finals polish

* Fixed so evac can dock properly

* Final polish

* Grammar fixer
2025-12-01 23:33:02 -06:00
Delta-V bot 2d6dad77ce Automatic changelog update 2025-12-02 05:42:39 +01:00
Bonktrauma 489466e2c6 Bring Ovni back (#4602)
* Bring Ovni back

* Update ovni.yml

* Made archivists room bigger, changed AI core a bit

* Update ovni.yml

* Update ovni.yml

* removed invalid

* attributions file

* Made requested changes

* removed invalid..?

* Update ovni.yml

* removed invalid

* Minor fixes

* fix invalid, hopefully for the last time..

* fixes, still need to do signs, its next

blah

* final fixes.. i hope

beh

* attributions fix

* Update deltav_map_attributions.yml
2025-12-01 22:42:19 -06:00
Delta-V bot 90ce1ca21f Automatic changelog update 2025-12-02 01:13:27 +01:00
BungleBossandVanessa 4468b2dcbb Give Cyborgs increased base weightless speed, longer battery life, ability to self-weld. (#4819)
* Increase Weightless speed.

Give Cyborgs a smidge more health (10 HP) and increase their acceleration in space and their acceleration to 1->1.25. Enabled the ability for them to self weld but will require multiple welds to reach full health.

* Update Content.Shared/Movement/Components/MovementSpeedModifierComponent.cs

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* Update Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* Update Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* Update Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* Update Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

* Update Resources/Prototypes/Entities/Mobs/Cyborgs/base_borg_chassis.yml

Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>

---------

Signed-off-by: BungleBoss <100389635+BunglesnortBoss@users.noreply.github.com>
Co-authored-by: Vanessa <908648+ShepardToTheStars@users.noreply.github.com>
2025-12-01 18:13:07 -06:00
Delta-V bot 84f4adef37 Automatic changelog update 2025-12-01 22:20:57 +01:00
Apachito 6f37d1a5d6 Buffed Make Shift fishing rod (#4827) 2025-12-01 15:20:35 -06:00
Delta-V bot 890e1e3700 Automatic changelog update 2025-12-01 14:34:05 +01:00
Cepelinas1 fd761c7aa9 Remove possession charges stacking (#4808)
* first commit

* armaments to contraband
2025-12-01 13:33:46 +00:00
Proxy also works :3 d398c966c7 removes mentions of detainment (#4722)
* removes mentions of detainment

* ?

* ??

* Daughter Babylon, doomed to destruction, happy is the one who repays you according to what you have done to us. Happy is the one who seizes your infants and dashes them against the rocks.

---------

Signed-off-by: Proxy also works :3 <98499019+Proxysseia@users.noreply.github.com>
2025-12-01 13:01:14 +00:00
Vanessa ed38eae313 Fixed a client error with stamped biscuits and corporate slips (#4812)
fixed a client error with stamped biscuits and corporate slips
2025-12-01 08:58:24 +01:00
Delta-V bot 42bcbb3fc0 Automatic changelog update 2025-12-01 08:57:22 +01:00
Vanessaandslarticodefast 7f942fa97a Make crawl speed depend on your free hand count (#41458) (#4772)
* Make crawl speed depend on your free hand count (#41458)

* crawl speed

* I can't spell

* Reduced the penalty by half. Zero hands taken is 50% move speed.

* forgot a few F's lol

* comment fix

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-12-01 08:57:02 +01:00
Delta-V bot a101aabb54 Automatic changelog update 2025-11-30 19:10:35 +01:00
Charlie Morleyandpre-commit-ci[bot] b4782c2b21 xenoarch: hide some node effects until unlocked (#4748)
* xenoarch: hide some node effects until unlocked

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* minor review comments

* added missing deltav comments

* test failures: forgot DataField annotation on XAEDetails.AllowLockedEffectHiding, and LocId SpecificTip field needed default

* AnalysisConsoleMenu.xaml.cs copypasta mistake (that'll teach me to push before testing)

* arti effect hiding increased to 70%

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-11-30 12:10:16 -06:00
Delta-V bot d1ee65c21c Automatic changelog update 2025-11-30 19:00:52 +01:00
William LemonandTobias Berger 0e897d8715 Fractured Form Patches (#4582)
* Fix

* Update Content.Server/_DV/Abilities/Psionics/FracturedFormPowerSystem.cs

Co-authored-by: Tobias Berger <toby@tobot.dev>
Signed-off-by: William Lemon <William.Lemon2@gmail.com>

* Imaguine trusting Github to make a change

* Uhn

---------

Signed-off-by: William Lemon <William.Lemon2@gmail.com>
Co-authored-by: Tobias Berger <toby@tobot.dev>
2025-11-30 12:00:33 -06:00
Delta-V bot a59daf05d7 Automatic changelog update 2025-11-30 18:46:31 +01:00
Corynandpre-commit-ci[bot] eed64813ee Add Minor Mass Mind Swap (#4728)
* Add Minor Mass Mind Swap

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* Move away from Nyanotrasen namespace, Add Default Value for isTemporary

* Raise Glimmer Requirmeents from 500 to 750, Reduce Max pairs from 5 to 3

* Review Changes

* Moving null up

* Changes as Direction requested

* Remove non-fitting comment

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-11-30 11:46:11 -06:00
Delta-V bot 9e261a7065 Automatic changelog update 2025-11-30 18:00:23 +01:00
Charlie Morley eb13a3721d psychokinetic scream LogPowerUsed (#4816) 2025-11-30 11:00:04 -06:00
Delta-V bot 08273e5da1 Automatic changelog update 2025-11-30 17:46:57 +01:00
Sir Warock 5914ff6e44 Make the Adv. Truncheon Advanced (#4736) 2025-11-30 10:46:38 -06:00
Delta-V bot 82ca2142e2 Automatic changelog update 2025-11-30 17:44:43 +01:00
verybigman 4159ed8d7c New Decoration: The nefarious Lava Fountain (#4792)
* work in progress

* bugs all gone!

* cough

* we are finally done or something

* sprite fixed
2025-11-30 10:44:24 -06:00
Delta-V bot d89ff2a824 Automatic changelog update 2025-11-30 17:41:51 +01:00
verybigmanandpre-commit-ci[bot] 4f2f881f35 Various beverage additions, tweaks, and modifications. (#4780)
* minor additions complete

* Added a bunch of fun thingies

* yet another commit

* finally free

* [pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci

* oops

* minor sprite issue fix award or something

* changes complete to comments and credits

* forgot to do this

* last minute sprite fixes

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-11-30 10:41:31 -06:00
Delta-V bot 712135779d Automatic changelog update 2025-11-30 17:37:54 +01:00
Proxy also works :3 0fe298d0e3 Make visitors no longer KoS (#4763) 2025-11-30 10:37:35 -06:00
Delta-V bot 53c8e457c8 Automatic changelog update 2025-11-30 17:32:02 +01:00
pootslap e6f521ea13 Change age appearance (#4783)
* Update SpeciesPrototype.cs

* Update SpeciesPrototype.cs

* Update SpeciesPrototype.cs

* added comments

hope I did it right

Signed-off-by: pootslap <211648338+pootslap@users.noreply.github.com>

---------

Signed-off-by: pootslap <211648338+pootslap@users.noreply.github.com>
2025-11-30 10:31:42 -06:00
Delta-V bot 095b364c40 Automatic changelog update 2025-11-30 17:30:53 +01:00
Charlie MorleyandTheGrimbeeper 969ed2599a xenoarch: early merge radiation trigger fix (#4817) Fix radiation damage being misattributed to radiation receiver (caused artifacts to not be triggered by ambient rads) #41065
Fix radiation damage being misattributed to radiation receiver (caused artifacts to not be triggered by ambient rads) (#41065)

* Xenoartifact: Fixed ambient radiation damage not triggering

Fixed ambient radiation damage not triggering artifact.

* Revert "Xenoartifact: Fixed ambient radiation damage not triggering"

This reverts commit 30e5c7cdb49c15574b49ddd1a1f7b1768abd2614.

* Fix radiation damage misattribution

(cherry picked from commit dd9a1de77f)

Co-authored-by: TheGrimbeeper <thegrimbeeper.11@gmail.com>
2025-11-30 10:30:34 -06:00
github-actions[bot]andDeltaV-Bot 2ae8858a41 Update Credits (#4813)
Co-authored-by: DeltaV-Bot <github@deltav.gay>
2025-11-30 16:29:25 +00:00
Delta-V bot cc95373474 Automatic changelog update 2025-11-30 17:24:45 +01:00
Vanessa 12b750aa91 Added double-tapping stand-up bind to push yourself up. (#4802) 2025-11-30 10:24:25 -06:00
MD360 293239834c Add magnets to remaining lathes. (#4799)
* Add magnet to 11 lathes and ore box unfinished fully.

* Remove ore box part.

* Fix the linter..

* Added magnet turn off on eject.

* Redo magnet to base and fix seperate bug.
2025-11-30 10:11:24 -06:00
5198 changed files with 614067 additions and 146727 deletions
-3
View File
@@ -9,9 +9,6 @@
# Server config files
/Resources/ConfigPresets/ @Toby222
# Sprites - Direction in lack of art director
/Resources/Textures/ @DeltaV-Station/direction
# Lobby art and music - automatically direction issues since its immediately visible to players
/Resources/Audio/Lobby/ @DeltaV-Station/direction
/Resources/Textures/LobbyScreens/ @DeltaV-Station/direction
+2 -2
View File
@@ -7,7 +7,7 @@ concurrency:
on:
workflow_dispatch:
schedule:
- cron: '0 10 * * *'
- cron: '45 16 * * *'
jobs:
build:
@@ -37,7 +37,7 @@ jobs:
run: dotnet build Content.Packaging --configuration Release --no-restore /m
- name: Package server
run: dotnet run --project Content.Packaging server --platform win-x64 --platform linux-x64 --platform osx-x64 --platform linux-arm64
run: dotnet run --project Content.Packaging server --platform win-x64 --platform win-arm64 --platform linux-x64 --platform linux-arm64 --platform osx-x64 --platform osx-arm64
- name: Package client
run: dotnet run --project Content.Packaging client --no-wipe-release
+11 -6
View File
@@ -20,11 +20,16 @@ jobs:
- uses: actions/stale@v9
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
exempt-issue-labels: 'Priority: 1-Urgent,ignore-stale'
days-before-stale: 90
stale-issue-message: 'This issue will close in 2 days due to inactivity'
days-before-close: 2
stale-pr-message: 'This Pull Request will close in 2 days due to inactivity'
stale-issue-label: 'stale'
stale-pr-label: 'stale'
remove-stale-when-updated: true
stale-issue-message: 'This issue has not been triaged for 90 days'
only-issue-labels: 'S: Untriaged'
stale-issue-label: 'Stale'
days-before-issue-close: -1
stale-pr-message: 'This Pull Request has not seen activity in 90 days, and will be closed in 2 days without activity'
exempt-pr-labels: 'Ignore Stale'
stale-pr-label: 'Stale'
days-before-pr-close: 2
+1 -1
View File
@@ -60,7 +60,7 @@ jobs:
run: dotnet build Content.Packaging --configuration Release --no-restore /m
- name: Package server
run: dotnet run --project Content.Packaging server --platform win-x64 --platform linux-x64 --platform osx-x64 --platform linux-arm64
run: dotnet run --project Content.Packaging server --platform win-x64 --platform win-arm64 --platform linux-x64 --platform linux-arm64 --platform osx-x64 --platform osx-arm64
- name: Package client
run: dotnet run --project Content.Packaging client --no-wipe-release
+17 -16
View File
@@ -6,14 +6,15 @@ It is highly recommended to read the '''[[Standard Operating Procedure|Standard
* '''[[Standard Operating Procedure#Controlled Items|Controlled Items]]:''' If a member of station crew requires access to a Controlled Item for use in their job, or for regular function, they must obtain the signed and stamped approval of a relevant member of Station Command or the CO. The latter is able to override the decisions of Station Command in this regard, however.
* '''[[Standard Operating Procedure#Entity Definitions|Entity]]:''' Any thing with distinct, independent existence.
* '''[[Standard Operating Procedure#Entity Definitions|Employee]]:''' An entity who has an employment contract with a Company.
* '''[[Standard Operating Procedure#Entity Definitions|Pet]]:''' Any Entity that is provided to the Company's Space Stations - either through the station's Logistics Department, or brought on board by the crew - for the purposes of emotional support.
* '''[[Standard Operating Procedure#Security Jurisdiction|Security Jurisdiction]]:''' Station law enforcement officers are bound by Space Law; they cannot operate outside of standard accessible areas, or perform searches, unless such action is allowed by either Alert Procedure or a valid warrant.
* '''[[Standard Operating Procedure#Detainment and Arrest|Detainment & Arrest]]:''' Members of law enforcement may detain entities under '''[[Standard Operating Procedure#Probable Cause|Probable Cause]]''' of criminal activity. These detainees must be informed of the crime they are suspected of committing, and may be moved to a secure location and/or restrained while law enforcement determine if a crime was committed. Such detention should last no longer than five minutes. Any entity may be arrested, during which they are restrained, informed of their charges, and taken to the brig for search and processing under '''[[Standard Operating Procedure#Brig Procedure|Brig Procedure]]'''.
* '''[[Standard Operating Procedure#Sentencing|Sentencing]]:''' Any member of law enforcement is allowed to pass sentence on Misdemeanor, Felony, and Grand Felony charges. The Chief Justice, or in their absence, the Head of Security are allowed to pass sentence on all Charges.
* '''[[Standard Operating Procedure#Treatment of Prisoners|Treatment of Prisoners]]:''' Prisoners must be provided with food, water, clothing, free movement within the brig, adequate medical care, access to the Common and Prison radio channels, and moral, spiritual, or legal counseling if requested and available. If the brig becomes uninhabitable, prisoners must be securely and safely relocated to another area until the brig is functional once more. Prisoners sentenced to Extended Confinement have additional rights and firmer restrictions that must be upheld by law enforcement officials.
* '''[[Standard Operating Procedure#Paroles and Pardons|Paroles & Pardons]]:''' Parole may be offered under the discretion of the Warden, Head of Security, or CO. A parole hearing requires only a Judge, as discussed within Trial Procedure. Pardons may be issued by the arresting officer, the Judge of a trial, by the Warden (to those within the permanent brig), or by the CO, when deemed in the best interest of the crew or vessel, or when the circumstances of the crime warrant suspension of sentence.
* '''[[Standard Operating Procedure#Pressing Charges|Pressing Charges]]:''' Any Employee may press charges against any other entity. Individuals may only be charged with a crime if it can be proveny beyond reasonable doubt that they have committed the crime.
* '''[[Standard Operating Procedure#Trial Procedure|Trial Procedure]]:''' A criminal trial’s Judge must be, in sequential order: The Chief Justice, the Court Clerk, an impartial member of Justice or Station Command, or the Warden. The Prosecution should ideally be the Prosecutor, or an available member of Station Command or Station Security in that order. The Defense should ideally be a member of the Justice department assigned to the defendant, though they are allowed to represent themselves if they wish. If insufficient crew are available, the Judge is fully authorized and strongly encouraged to pass a sentence of Extended Confinement until a proper trial can be held.
* '''[[Alert Procedure]]:''' Codes Blue, Red, Gamma, and Delta authorize Security to carry progressively more advanced equipment, and loosen '''[[Standard Operating Procedure#Rules of Engagement|Rules of Engagement]]''' regarding their use. The former two codes disallow openly carrying firearms by non-Security personnel; the latter two suspend many rights to privacy, and grant Security the power to do whatever neccessary to retake or scuttle the station.
* '''[[Standard Operating Procedure#Arrest|Arrest and Sentencing]]:''' Any entity may be arrested, during which they are restrained, informed of their charges, and taken to the brig for search and processing under '''[[Standard Operating Procedure#Brig Procedure|Brig Procedure]]'''.
* '''[[Standard Operating Procedure#Sentencing|Arrest and Sentencing]]:''' Any member of law enforcement is allowed to pass sentence on Misdemeanor, Felony, and Grand Felony charges. The Chief Justice, or in their absence, the Head of Security are allowed to pass sentence on all Charges.
* '''[[Standard Operating Procedure#Treatment of Prisoners|Treatment of Prisoners]]:''' Prisoners must be provided with food, water, clothing, free movement within the brig, adequate medical care, access to the Common and Prison radio channels, and moral, spiritual, or legal counseling if requested and available. If the brig becomes uninhabitable, prisoners must be securely and safely relocated to another area until the brig is functional once more. Prisoners sentenced to Permanent Confinement have additional rights and firmer restrictions that must be upheld by law enforcement officials.
* '''[[Standard Operating Procedure#Paroles and Pardons|Paroles & Pardons]]:''' Parole may be offered under the discretion of the Warden, Head of Security, or CO. Pardons may be issued by the arresting officer, the Judge of a trial, by the Warden (to those within the permanent brig), or by the CO, when deemed in the best interest of the crew or vessel, or when the circumstances of the crime warrant suspension of sentence.
* '''[[Standard Operating Procedure#Pressing Charges|Pressing Charges]]:''' Any Employee may press charges against any other entity. Individuals may only be charged with a crime if it can be proven beyond reasonable doubt that they have committed the crime.
* '''[[Standard Operating Procedure#Hearing Procedure|Hearing Procedure]]:''' A criminal hearing’s Judge must be, in sequential order: The Chief Justice, the Court Clerk, an impartial member of Justice or Station Command, or the Warden. The Prosecution should ideally be the Prosecutor, or an available member of Station Command or Station Security in that order. The Defense should ideally be a member of the Justice department assigned to the defendant, though they are allowed to represent themselves if they wish.
* '''[[Alert Procedure]]:''' Codes Blue, Red, Gamma, and Delta authorize Security to carry progressively more advanced equipment, and loosen '''[[Standard Operating Procedure#Rules of Engagement|Rules of Engagement]]''' regarding their use. The former two codes discourage openly carrying firearms by personnel; the latter two suspend many rights to privacy, and grant Security the power to do whatever neccessary to retake or scuttle the station.
==Procedural Defense==
If a defendant is accused of a crime, they are granted the privilege to challenge the legitimacy of charges of claims brought against them. Any of the following may be invoked:
@@ -164,7 +165,7 @@ Sentencing modifiers are to be applied by the sentencing officer, judge, or arbi
| style="border: 1px solid black;" | [[File:SL_Terrorism.png]]
! style="border: 1px solid black;" | '''Terrorism'''
| style="border: 1px solid black;" | Capital
| style="border: 1px solid black;" | To maliciously commit an act or take hostages with reckless indifference to life in order to provoke a state of terror in, intimidate, or otherwise compel an entity to act or abstain from acting.
| style="border: 1px solid black;" | To maliciously commit an act or take hostages with reckless indifference to life in order to provoke a state of terror in, intimidate, or otherwise compel an Employee to act or abstain from acting.
|-
| style="border: 1px solid black;" | 403
| style="border: 1px solid black;" | [[File:SL_GrandSabotage.png]]
@@ -210,7 +211,7 @@ Sentencing modifiers are to be applied by the sentencing officer, judge, or arbi
|style= "border:1px solid black;"| [[File:SL_Kidnapping.png]]
|style= "border:1px solid black;"| Kidnapping
|style= "border:1px solid black;"| 16 minutes
|style= "border:1px solid black;"| To unlawfully confine or restrict the free movement of an entity against its will.
|style= "border:1px solid black;"| To unlawfully confine or restrict the free movement of an Employee against their will.
|-
| style="border:1px solid black;" | 303
| style="border:1px solid black;" | WIP
@@ -234,13 +235,13 @@ Sentencing modifiers are to be applied by the sentencing officer, judge, or arbi
| style="border:1px solid black;" | [[File:SL_AbuseOfPower.png]]
| style="border:1px solid black;" | Abuse of Power
| style="border:1px solid black;" | 14 minutes
| style="border:1px solid black;" | To intentionally misuse or wrongfully exercise one’s own authority, influence, or control, resulting in harm, unjust treatment, or demonstratable loss to another entity.
| style="border:1px solid black;" | To intentionally misuse or wrongfully exercise one’s own authority, influence, or control, resulting in harm, unjust treatment, or demonstratable loss to another Employee.
|-
| style="border:1px solid black;" | 307
| style="border:1px solid black;" | [[File:SL_GrandTheft.png]]
| style="border:1px solid black;" | Grand Larceny
| style="border:1px solid black;" | 12 minutes
| style="border:1px solid black;" | To deprive an entity of any Controlled Item in their lawful possession.
| style="border:1px solid black;" | To deprive an Employee of any Controlled Item in their lawful possession.
|-
| style="border:1px solid black;" | 308
| style="border:1px solid black;" | [[File:SL_BlackMarketeering.png]]
@@ -310,7 +311,7 @@ Sentencing modifiers are to be applied by the sentencing officer, judge, or arbi
|style= "border:1px solid black;"| WIP
!style= "border:1px solid black;"| Identity Theft
|style= "border:1px solid black;"| 5 minutes
|style= "border:1px solid black;"| To maliciously assume the identity of an entity, such as through writing, attire, and/or speech.
|style= "border:1px solid black;"| To maliciously assume the identity of an Employee, such as through writing, attire, and/or speech.
|}
@@ -329,13 +330,13 @@ Sentencing modifiers are to be applied by the sentencing officer, judge, or arbi
| style="border: 1px solid black;" | [[File:SL_AnimalCruelty.png]]
! style="border: 1px solid black;" | {{anchor|Animal Cruelty}}Animal Cruelty
| style="border: 1px solid black;" | 5 minutes
| style="border: 1px solid black;" | To inflict unnecessary suffering on a sapient being with malicious intent.
| style="border: 1px solid black;" | To inflict unnecessary suffering on a Pet with malicious intent.
|-
|style= "border:1px solid black;"| 102
|style= "border:1px solid black;"| WIP
!style= "border:1px solid black;"| Harassment
|style= "border:1px solid black;"| 5 minutes
|style= "border:1px solid black;"| To verbally demean, humiliate, or harass an entity with malice; or maliciously spread false information amongst a population.
|style= "border:1px solid black;"| To verbally demean, humiliate, or harass an Employee with malice; or maliciously spread false information amongst a population.
|-
|style= "border:1px solid black;"| 103
|style= "border:1px solid black;"| WIP
@@ -347,7 +348,7 @@ Sentencing modifiers are to be applied by the sentencing officer, judge, or arbi
| style="border: 1px solid black;" | [[File:SL_Theft.png]]
! style="border: 1px solid black;" | {{anchor|Theft}}Petty Larceny
| style="border: 1px solid black;" | 4 minutes
| style="border: 1px solid black;" | To deprive an entity of an item in their lawful property without consent.
| style="border: 1px solid black;" | To deprive an Employee of an item in their lawful property without consent.
|-
| style="border: 1px solid black;" | 105
| style="border: 1px solid black;" | [[File:SL_Trespass.png]]
@@ -359,7 +360,7 @@ Sentencing modifiers are to be applied by the sentencing officer, judge, or arbi
| style="border: 1px solid black;" | [[File:SL_Vandalism.png]]
! style="border: 1px solid black;" | {{anchor|Vandalism}}Vandalism
| style="border: 1px solid black;" | 3 minutes
| style="border: 1px solid black;" | To deface or superficially damage public property, or property belonging to another person.
| style="border: 1px solid black;" | To deface or superficially damage public property, or property belonging to another Employee.
|-
| style="border: 1px solid black;" | 107
| style="border: 1px solid black;" | [[File:SL_Hooliganism.png]]
+10 -11
View File
@@ -8,7 +8,6 @@ The terms specified below are defined for further use within the procedures.
:* Command Staff/Station Command: Members of the Command department who lead a department aboard the station.
:* Crew: All Employees employed by Station Command, or by NT to reside on the station and perform an established function therein. This includes any Employee listed on the Crew Manifest or issued a functional NT identification and access card. Individuals imprisoned by NT, along with those imprisoned during the course of a shift for violations of Space Law, are considered Crew.
:* Judge: An individual legally appointed to preside over a hearing, as specified within Hearing Procedure.
:* Detainee: Any Employee whose free movement has been curtailed by law enforcement on suspicion of criminal activity. They have not, however, been officially charged with a crime.
:* Arrestee: Any Employee who has been formally charged with a crime.
:* Prisoner: Any Employee who has been sentenced for the commission of a crime, or awaiting a hearing for a capital offense.
:* Permanent Brig/Permabrig/Brig: A secure location for the long-term confinement of Prisoners. Typically outfitted to sustain the basic survival needs of the Prisoners within.
@@ -20,9 +19,9 @@ All crew operating within their designated job locations are given the right to
The following definitions are provided to clarify the legal protections- and obligations- that Standard Operating Procedures and Space Law provide to any given entity. Unless explicitly covered by a more distinctive term, all Entities are to be treated as such until clarification is provided.
== Entity ==
Any individual with a distinct existence. Entities may also encompass a plurality of identities contained within a single physical form. NanoTrasen does not require Entities be offered the protections of Standard Operating Procedure, Space Law, or Rules of Engagement unless further defined below. Security Officers are encouraged to be reasonable with their use of force regarding circumstances, especially if Entity's termination would leave lawsuits or tarnish reputation for NanoTrasen.
Any individual with a distinct existence. Entities may also encompass a plurality of identities contained within a single physical form. NanoTrasen does not require Entities be offered the protections of Standard Operating Procedure, Space Law, or Rules of Engagement unless further defined below. Security Officers are encouraged to be reasonable with their use of force regarding circumstances, especially if the Entity's termination would leave lawsuits or tarnish reputation for NanoTrasen.
== Pet ==
Any Entity that is provided to NanoTrasen Space Stations- either through the station's Logistics Department, or brought on board by the crew- for the purposes of emotional support. Any harm against such a Pet may render the offender liable to the crime of Animal Cruelty.
Any Entity that is provided to NanoTrasen Space Stations - either through the station's Logistics Department, or brought on board by the crew - for the purposes of emotional support. Any harm against such a Pet may render the offender liable to the crime of Animal Cruelty.
Examples of Pets include, but are not limited to:
:* Renault the Fox
:* Smile the Rainbow Slime
@@ -101,27 +100,27 @@ A list of such Substances follow:
== Controlled Armaments ==
Controlled Armaments are grouped into categories of increasing severity.
Controlled Armaments are grouped into categories of increasing severity. If the offender possesses several categories of contraband, only the highest severity of said items should be charged.
'''Category A:''' ''Illegal possession of Cat. A controlled armaments may incur a sentence of up to 5min brig for each separate and distinct item, confiscation of the offending item(s), and further legal action as the situation demands.''
'''Category A:''' ''Illegal possession of Cat. A controlled armaments may incur a sentence of up to 5min brig and further legal action as the situation demands.''
* Any object or instrument specifically designed, adapted, or used to cause physical harm in close combat
* Any object or equipment specifically designed or adapted to protect against physical harm caused by weapons, projectiles, or other forms of direct assault
* Any object or instrument specifically designed or adapted to incapacitate or disorient by using light or sound without causing permanent injury
* Any object or equipment specifically designed or adapted for explicitly training purposes that would otherwise fall under another category
'''Category B:''' ''Illegal possession of Cat. B controlled armaments may incur a sentence of up to 10min brig for each separate and distinct item, confiscation of the offending item(s), and further legal action as the situation demands.''
'''Category B:''' ''Illegal possession of Cat. B controlled armaments may incur a sentence of up to 10min brig and further legal action as the situation demands.''
* Any object or instrument specifically designed or adapted to cause physical harm in close combat, which employs a powered system to enhance performance
* Any manually-operated ballistic arms that possess an internal magazine or feeding system, or lack an internal magazine or feeding system altogether
'''Category C:''' ''Illegal possession of Cat. C controlled armaments may incur a sentence of up to 15min brig for each separate and distinct item, confiscation of the offending item(s), and further legal action as the situation demands.''
'''Category C:''' ''Illegal possession of Cat. C controlled armaments may incur a sentence of up to 15min brig and further legal action as the situation demands.''
* Any manually-operated ballistic arms that use an external magazine or feeding system
* Any semi-automatic ballistic arms not easily concealable within a pocket or coat
* Any object or instrument specifically designed or adapted for explicitly less-lethal purposes that would otherwise fall under another category
'''Category D:''' ''Illegal possession of Cat. D controlled armaments may incur a sentence of up to 20min brig for each separate and distinct item, confiscation of the offending item(s), and further legal action as the situation demands.''
'''Category D:''' ''Illegal possession of Cat. D controlled armaments may incur a sentence of up to 20min brig and further legal action as the situation demands.''
* Any semi-automatic ballistic arms that are easily concealable
* Any fully-automatic ballistic arms
@@ -129,7 +128,7 @@ Controlled Armaments are grouped into categories of increasing severity.
* Any object or device specifically designed or adapted to cause physical harm through detonation of an explosive charge
* Any object or equipment specifically designed or adapted to protect against both a space environment and physical harm caused by weapons, projectiles, or other forms of direct assault
'''Category E:''' ''Illegal possession of Cat. E controlled armaments may incur a sentence of up to 25min brig for each separate and distinct item, confiscation of the offending item(s), and further legal action as the situation demands.''
'''Category E:''' ''Illegal possession of Cat. E controlled armaments may incur a sentence of up to 25min brig and further legal action as the situation demands.''
* Any crew-served or emplaced weapon
* Any object or instrument specifically designed or adapted to launch large-calibre explosives or projectiles for offensive or defensive purposes
@@ -218,7 +217,7 @@ Should the mutiny be unsuccessful, only the head officer(s) who approved the mut
Should the mutiny be successful, the head officer(s) who approved the mutiny must select a new Commanding Officer per Line of Succession. The new CO will then sentence the previous heads of staff for their crimes per Space Law.
== Foreign Vessels ==
Should civilian and military vessels receive a docking request from another neutral vessel, they may approve or deny such a request. Any vessel may, with consent from the docking entity, be searched by law enforcement upon arrival, and its crew granted free movement accompanied by an escort at the discretion of the CO or law enforcement officials.
Should civilian and military vessels receive a docking request from another neutral vessel, they may approve or deny such a request. Any vessel may, with consent from the docking entity, be searched by law enforcement upon arrival, and its crew granted free movement accompanied by an escort at the discretion of the CO or law enforcement officials. Crew of vessels legally docked on NanoTrasen Stations are considered to be in contract with NanoTrasen and as such are protected by Space Law, Standard operating Procedure and the Rules of Engagement.
Crew of foreign vessels may be refused entry, at any time and for any reason, and must be returned to, or be escorted to, their own vessel where applicable. Failure to comply may constitute trespass. Docking vessels bearing a warrant or commission represent an exception, and may not be denied entry or be forced to submit to a search.
@@ -253,7 +252,7 @@ Martial Law may only be declared by Central Command. Under Martial Law Security
* authorised to take whatever actions deemed necessary to neutralise or repel station threats.
* authorized to summarily execute station threats.
* not bound to the Rules of Engagement.
* not obligated to provide any medical care to prisoners and detainees, including revival.
* not obligated to provide any medical care to prisoners, including revival.
== Armory Procedure ==
The armory and its usage are governed by the Warden. The Warden is responsible for stocking, distributing, and recording the collection of weapons used by the station during the shift. They are also afforded the authority to arm security at their discretion, so long as the weaponry distributed is in appropriate response to [[Alert Procedure]].
+76 -24
View File
@@ -22,39 +22,57 @@ Examples:
# Changes to upstream files
If you make a change to an upstream C# or YAML file **you must add comments on or around the changed lines**.
The comments should clarify what changed, to make conflict resolution simpler when a file is changed upstream.
Follow a few guidelines when modifying non-DeltaV files, to help us manage our project. (files that are not in `_DV` or `Nyano` folders)
For YAML specifically, if you add a new component to a prototype add the comment to the `type: ...` line.
If you just modify some fields of a component, comment the fields instead.
Primarily, **add comments on or around all new or changed lines** in upstream files. Explain what was changed to make resolving merge conflicts easier; we regularly merge new upstream changes into our project.
For C# files, if you are adding a lot of code try to put it in a partial class when it makes sense.
### Changing Upstream YAML .yml files
The exception to this is early merging commits that are going to be cherry picked in the future regardless, there's no harm in leaving them as-is.
**Add comments on or around any changed lines.**
As an aside, fluent (.ftl) files **do not support comments on the same line** as a locale value, so be careful when changing them.
If you add a new component to a prototype, add an explanation to the `type: ...` line. Example:
## Examples of comments in upstream files
A single line comment on a changed yml field:
```yml
- type: entity
parent: BasePDA
id: SciencePDA
name: epistemics PDA # DeltaV - Epistemics Department replacing Science
parent: MobSiliconBase
id: MobSupplyBot
components:
- type: InteractionPopup # DeltaV - Make supplybots pettable
interactSuccessString: petting-success-supplybot
interactFailureString: petting-failure-supplybot
interactSuccessSound:
path: /Audio/Ambience/Objects/periodic_beep.ogg
```
A pair of comments enclosing a list of added items to starting gear:
Whereas if you just modify some fields of a component, comment the fields instead, using inline or block comments. Examples:
```yml
storage:
back:
- EmergencyRollerBedSpawnFolded
- type: entityTable
id: FillLockerWarden
table: !type:AllSelector
children:
- id: ClothingHandsGlovesCombat
- id: ClothingShoesBootsSecurityMagboots # DeltaV - Added security magboots.
- id: ClothingShoesBootsJack
#- id: ClothingOuterCoatWarden # DeltaV - removed for incongruence
#- id: ClothingOuterWinterWarden # DeltaV - removed for incongruence
- id: RubberStampWarden
- id: DoorRemoteArmory
- id: HoloprojectorSecurity
# Begin DeltaV additions
- BodyBagFolded
- Portafib
- id: WeaponEnergyShotgun
- id: BoxPDAPrisoner
- id: LunchboxSecurityFilledRandom
prob: 0.3
# End DeltaV additions
```
### Changing Upstream C# .cs files
If you are adding a lot of C# code, then take advantage of partial classes. Put the new code in its own file in the `_DV` folder, if it makes sense.
Otherwise, **add comments on or around any changed lines.**
A comment on a new imported namespace:
```cs
using Content.Server.Psionics.Glimmer; // DeltaV
@@ -77,6 +95,40 @@ private EntityUid Slice(...)
}
```
### Changing Upstream Localization Fluent .ftl files
**Move all changed locale strings to a new DeltaV file** - use a `.ftl` file in the `_DV` folder. Comment out the old strings in the upstream file, and explain that they were moved.
Example:
Commented out old string in `Resources\Locale\en-US\xenoarchaeology\artifact-analyzer.ftl`
```
# DeltaV - moved to _DV file
#analysis-console-info-effect-value = [font="Monospace" size=11][color=gray]{ $state ->
# [true] {$info}
# *[false] Unlock nodes to gain info
#}[/color][/font]
```
The new version of the string in `Resources\Locale\en-US\_DV\xenoarchaeology\artifact-analyzer.ftl`
```
analysis-console-info-effect-value = [font="Monospace" size=11][color=gray]{ $state ->
[vagueandspecific] {$vagueInfo} ({$specificInfo})
[vagueonly] {$vagueInfo} (unable to detect details)
[simple] {$specificInfo}
[hidden] Unable to detect (unlock to discover)
*[noinfo] Unlock nodes to gain info
}[/color][/font]
```
Also keep in mind that fluent (.ftl) files **do not support comments on the same line** as a locale value, so be careful when commenting.
### Early merges
We mostly merge upstream changes in big chunks (e.g. a month of upstream PRs at a time), but urgent changes can be merged early, separately.
Early merges are an exception to the above rules - if cherry-picking a PR for an early merge, you don't need to add `#DeltaV` comments, since the code is coming directly from upstream without any changes.
# Mapping
If you want to make changes to a map, get in touch with its maintainer to make sure you don't both make changes at the same time.
@@ -92,11 +144,11 @@ Please limit changelogs on map PRs to **significant** map alterations or additio
Format for map PRs looks like:
```
:cl: Yourname
MAPS: Mapname
- add: Added fun!
- remove: Removed fun!
- tweak: Changed fun!
- fix: Fixed fun!
MAPS:
- add: Mapname: Added fun!
- remove: Mapname: Removed fun!
- tweak: Mapname: Changed fun!
- fix: Mapname: Fixed fun!
```
# Before you submit
+160
View File
@@ -0,0 +1,160 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using BenchmarkDotNet.Attributes;
using Content.IntegrationTests;
using Content.IntegrationTests.Pair;
using Content.Server.Destructible;
using Content.Shared.Damage;
using Content.Shared.Damage.Components;
using Content.Shared.Damage.Prototypes;
using Content.Shared.Damage.Systems;
using Content.Shared.FixedPoint;
using Content.Shared.Maps;
using Robust.Shared;
using Robust.Shared.Analyzers;
using Robust.Shared.GameObjects;
using Robust.Shared.Map;
using Robust.Shared.Maths;
using Robust.Shared.Prototypes;
using Robust.Shared.Random;
namespace Content.Benchmarks;
[Virtual]
[GcServer(true)]
[MemoryDiagnoser]
public class DestructibleBenchmark
{
/// <summary>
/// Number of destructible entities per prototype to spawn with a <see cref="DestructibleComponent"/>.
/// </summary>
[Params(1, 10, 100, 1000, 5000)]
public int EntityCount;
/// <summary>
/// Amount of blunt damage we do to each entity.
/// </summary>
[Params(10000)]
public FixedPoint2 DamageAmount;
[Params("Blunt")]
public ProtoId<DamageTypePrototype> DamageType;
private static readonly EntProtoId WindowProtoId = "Window";
private static readonly EntProtoId WallProtoId = "WallReinforced";
private static readonly EntProtoId HumanProtoId = "MobHuman";
private static readonly ProtoId<ContentTileDefinition> TileRef = "Plating";
private readonly EntProtoId[] _prototypes = [WindowProtoId, WallProtoId, HumanProtoId];
private readonly List<Entity<DamageableComponent>> _damageables = new();
private readonly List<Entity<DamageableComponent, DestructibleComponent>> _destructbiles = new();
private DamageSpecifier _damage;
private TestPair _pair = default!;
private IEntityManager _entMan = default!;
private IPrototypeManager _protoMan = default!;
private IRobustRandom _random = default!;
private ITileDefinitionManager _tileDefMan = default!;
private DamageableSystem _damageable = default!;
private DestructibleSystem _destructible = default!;
private SharedMapSystem _map = default!;
[GlobalSetup]
public async Task SetupAsync()
{
ProgramShared.PathOffset = "../../../../";
PoolManager.Startup();
_pair = await PoolManager.GetServerClient();
var server = _pair.Server;
var mapdata = await _pair.CreateTestMap();
_entMan = server.ResolveDependency<IEntityManager>();
_protoMan = server.ResolveDependency<IPrototypeManager>();
_random = server.ResolveDependency<IRobustRandom>();
_tileDefMan = server.ResolveDependency<ITileDefinitionManager>();
_damageable = _entMan.System<DamageableSystem>();
_destructible = _entMan.System<DestructibleSystem>();
_map = _entMan.System<SharedMapSystem>();
if (!_protoMan.Resolve(DamageType, out var type))
return;
_damage = new DamageSpecifier(type, DamageAmount);
_random.SetSeed(69420); // Randomness needs to be deterministic for benchmarking.
var plating = _tileDefMan[TileRef].TileId;
// We make a rectangular grid of destructible entities, and then damage them all simultaneously to stress test the system.
// Needed for managing the performance of destructive effects and damage application.
await server.WaitPost(() =>
{
// Set up a thin line of tiles to place our objects on. They should be anchored for a "realistic" scenario...
for (var x = 0; x < EntityCount; x++)
{
for (var y = 0; y < _prototypes.Length; y++)
{
_map.SetTile(mapdata.Grid, mapdata.Grid, new Vector2i(x, y), new Tile(plating));
}
}
for (var x = 0; x < EntityCount; x++)
{
var y = 0;
foreach (var protoId in _prototypes)
{
var coords = new EntityCoordinates(mapdata.Grid, x + 0.5f, y + 0.5f);
_entMan.SpawnEntity(protoId, coords);
y++;
}
}
var query = _entMan.EntityQueryEnumerator<DamageableComponent, DestructibleComponent>();
while (query.MoveNext(out var uid, out var damageable, out var destructible))
{
_damageables.Add((uid, damageable));
_destructbiles.Add((uid, damageable, destructible));
}
});
}
[Benchmark]
public async Task PerformDealDamage()
{
await _pair.Server.WaitPost(() =>
{
_damageable.ApplyDamageToAllEntities(_damageables, _damage);
});
}
[Benchmark]
public async Task PerformTestTriggers()
{
await _pair.Server.WaitPost(() =>
{
_destructible.TestAllTriggers(_destructbiles);
});
}
[Benchmark]
public async Task PerformTestBehaviors()
{
await _pair.Server.WaitPost(() =>
{
_destructible.TestAllBehaviors(_destructbiles);
});
}
[GlobalCleanup]
public async Task CleanupAsync()
{
await _pair.DisposeAsync();
PoolManager.Shutdown();
}
}
+253
View File
@@ -0,0 +1,253 @@
using System.Threading.Tasks;
using BenchmarkDotNet.Attributes;
using Content.IntegrationTests;
using Content.IntegrationTests.Pair;
using Content.Server.Atmos;
using Content.Server.Atmos.EntitySystems;
using Content.Server.Atmos.Reactions;
using Content.Shared.Atmos;
using Robust.Shared;
using Robust.Shared.Analyzers;
using Robust.Shared.GameObjects;
using Robust.Shared.Maths;
namespace Content.Benchmarks;
/// <summary>
/// Benchmarks the performance of different gas reactions.
/// Tests each reaction type with realistic gas mixtures to measure computational cost.
/// </summary>
[Virtual]
[GcServer(true)]
[MemoryDiagnoser]
public class GasReactionBenchmark
{
private const int Iterations = 1000;
private TestPair _pair = default!;
private AtmosphereSystem _atmosphereSystem = default!;
// Grid and tile for reactions that need a holder
private EntityUid _testGrid = default!;
private TileAtmosphere _testTile = default!;
// Reaction instances
private PlasmaFireReaction _plasmaFireReaction = default!;
private TritiumFireReaction _tritiumFireReaction = default!;
private FrezonProductionReaction _frezonProductionReaction = default!;
private FrezonCoolantReaction _frezonCoolantReaction = default!;
private AmmoniaOxygenReaction _ammoniaOxygenReaction = default!;
private N2ODecompositionReaction _n2oDecompositionReaction = default!;
private WaterVaporReaction _waterVaporReaction = default!;
// Gas mixtures for each reaction type
private GasMixture _plasmaFireMixture = default!;
private GasMixture _tritiumFireMixture = default!;
private GasMixture _frezonProductionMixture = default!;
private GasMixture _frezonCoolantMixture = default!;
private GasMixture _ammoniaOxygenMixture = default!;
private GasMixture _n2oDecompositionMixture = default!;
private GasMixture _waterVaporMixture = default!;
[GlobalSetup]
public async Task SetupAsync()
{
ProgramShared.PathOffset = "../../../../";
PoolManager.Startup();
_pair = await PoolManager.GetServerClient();
var server = _pair.Server;
// Create test map and grid
var mapData = await _pair.CreateTestMap();
_testGrid = mapData.Grid;
await server.WaitPost(() =>
{
var entMan = server.ResolveDependency<IEntityManager>();
_atmosphereSystem = entMan.System<AtmosphereSystem>();
_plasmaFireReaction = new PlasmaFireReaction();
_tritiumFireReaction = new TritiumFireReaction();
_frezonProductionReaction = new FrezonProductionReaction();
_frezonCoolantReaction = new FrezonCoolantReaction();
_ammoniaOxygenReaction = new AmmoniaOxygenReaction();
_n2oDecompositionReaction = new N2ODecompositionReaction();
_waterVaporReaction = new WaterVaporReaction();
SetupGasMixtures();
SetupTile();
});
}
private void SetupGasMixtures()
{
// Plasma Fire: Plasma + Oxygen at high temperature
// Temperature must be > PlasmaMinimumBurnTemperature for reaction to occur
_plasmaFireMixture = new GasMixture(Atmospherics.CellVolume)
{
Temperature = Atmospherics.PlasmaMinimumBurnTemperature + 100f // ~673K
};
_plasmaFireMixture.AdjustMoles(Gas.Plasma, 20f);
_plasmaFireMixture.AdjustMoles(Gas.Oxygen, 100f);
// Tritium Fire: Tritium + Oxygen at high temperature
// Temperature must be > FireMinimumTemperatureToExist for reaction to occur
_tritiumFireMixture = new GasMixture(Atmospherics.CellVolume)
{
Temperature = Atmospherics.FireMinimumTemperatureToExist + 100f // ~473K
};
_tritiumFireMixture.AdjustMoles(Gas.Tritium, 20f);
_tritiumFireMixture.AdjustMoles(Gas.Oxygen, 100f);
// Frezon Production: Oxygen + Tritium + Nitrogen catalyst
// Optimal temperature for efficiency (80% of max efficiency temp)
_frezonProductionMixture = new GasMixture(Atmospherics.CellVolume)
{
Temperature = Atmospherics.FrezonProductionMaxEfficiencyTemperature * 0.8f // ~48K
};
_frezonProductionMixture.AdjustMoles(Gas.Oxygen, 50f);
_frezonProductionMixture.AdjustMoles(Gas.Tritium, 50f);
_frezonProductionMixture.AdjustMoles(Gas.Nitrogen, 10f);
// Frezon Coolant: Frezon + Nitrogen
// Temperature must be > FrezonCoolLowerTemperature (23.15K) for reaction to occur
_frezonCoolantMixture = new GasMixture(Atmospherics.CellVolume)
{
Temperature = Atmospherics.T20C + 50f // ~343K
};
_frezonCoolantMixture.AdjustMoles(Gas.Frezon, 30f);
_frezonCoolantMixture.AdjustMoles(Gas.Nitrogen, 100f);
// Ammonia + Oxygen reaction (concentration-dependent, no temp requirement)
_ammoniaOxygenMixture = new GasMixture(Atmospherics.CellVolume)
{
Temperature = Atmospherics.T20C + 100f // ~393K
};
_ammoniaOxygenMixture.AdjustMoles(Gas.Ammonia, 40f);
_ammoniaOxygenMixture.AdjustMoles(Gas.Oxygen, 40f);
// N2O Decomposition (no temperature requirement, just needs N2O moles)
_n2oDecompositionMixture = new GasMixture(Atmospherics.CellVolume)
{
Temperature = Atmospherics.T20C + 100f // ~393K
};
_n2oDecompositionMixture.AdjustMoles(Gas.NitrousOxide, 100f);
// Water Vapor - needs water vapor to condense
_waterVaporMixture = new GasMixture(Atmospherics.CellVolume)
{
Temperature = Atmospherics.T20C
};
_waterVaporMixture.AdjustMoles(Gas.WaterVapor, 50f);
}
private void SetupTile()
{
// Create a tile atmosphere to use as holder for all reactions
var testIndices = new Vector2i(0, 0);
_testTile = new TileAtmosphere(_testGrid, testIndices, new GasMixture(Atmospherics.CellVolume)
{
Temperature = Atmospherics.T20C
});
}
private static GasMixture CloneMixture(GasMixture original)
{
return new GasMixture(original);
}
[Benchmark]
public async Task PlasmaFireReaction()
{
await _pair.Server.WaitPost(() =>
{
for (var i = 0; i < Iterations; i++)
{
var mixture = CloneMixture(_plasmaFireMixture);
_plasmaFireReaction.React(mixture, _testTile, _atmosphereSystem, 1f);
}
});
}
[Benchmark]
public async Task TritiumFireReaction()
{
await _pair.Server.WaitPost(() =>
{
for (var i = 0; i < Iterations; i++)
{
var mixture = CloneMixture(_tritiumFireMixture);
_tritiumFireReaction.React(mixture, _testTile, _atmosphereSystem, 1f);
}
});
}
[Benchmark]
public async Task FrezonProductionReaction()
{
await _pair.Server.WaitPost(() =>
{
for (var i = 0; i < Iterations; i++)
{
var mixture = CloneMixture(_frezonProductionMixture);
_frezonProductionReaction.React(mixture, _testTile, _atmosphereSystem, 1f);
}
});
}
[Benchmark]
public async Task FrezonCoolantReaction()
{
await _pair.Server.WaitPost(() =>
{
for (var i = 0; i < Iterations; i++)
{
var mixture = CloneMixture(_frezonCoolantMixture);
_frezonCoolantReaction.React(mixture, _testTile, _atmosphereSystem, 1f);
}
});
}
[Benchmark]
public async Task AmmoniaOxygenReaction()
{
await _pair.Server.WaitPost(() =>
{
for (var i = 0; i < Iterations; i++)
{
var mixture = CloneMixture(_ammoniaOxygenMixture);
_ammoniaOxygenReaction.React(mixture, _testTile, _atmosphereSystem, 1f);
}
});
}
[Benchmark]
public async Task N2ODecompositionReaction()
{
await _pair.Server.WaitPost(() =>
{
for (var i = 0; i < Iterations; i++)
{
var mixture = CloneMixture(_n2oDecompositionMixture);
_n2oDecompositionReaction.React(mixture, _testTile, _atmosphereSystem, 1f);
}
});
}
[Benchmark]
public async Task WaterVaporReaction()
{
await _pair.Server.WaitPost(() =>
{
for (var i = 0; i < Iterations; i++)
{
var mixture = CloneMixture(_waterVaporMixture);
_waterVaporReaction.React(mixture, _testTile, _atmosphereSystem, 1f);
}
});
}
[GlobalCleanup]
public async Task CleanupAsync()
{
await _pair.DisposeAsync();
PoolManager.Shutdown();
}
}
+3
View File
@@ -0,0 +1,3 @@
// Global usings for Content.Benchmarks
global using Robust.UnitTesting.Pool;
@@ -1,3 +1,4 @@
using System.Linq; // DeltaV
using Content.Shared.Access;
using Content.Shared.Access.Components;
using Content.Shared.Access.Systems;
@@ -50,8 +51,8 @@ namespace Content.Client.Access.UI
if (EntMan.TryGetComponent<AccessOverriderComponent>(Owner, out var accessOverrider))
{
accessLevels = accessOverrider.AccessLevels;
accessLevels.Sort();
// DeltaV - Sort Better
accessLevels = accessOverrider.AccessLevels.OrderBy(x => _prototypeManager.TryIndex<AccessLevelPrototype>(x.Id, out var access) ? access.GetAccessLevelName() : x.Id).ToList();
}
else
{
@@ -25,11 +25,11 @@ namespace Content.Client.Access.UI
public void SetAccessLevels(IPrototypeManager protoManager, List<ProtoId<AccessLevelPrototype>> accessLevels)
{
_accessButtons.Clear();
AccessLevelGrid.DisposeAllChildren();
AccessLevelGrid.RemoveAllChildren();
foreach (var access in accessLevels)
{
if (!protoManager.TryIndex(access, out var accessLevel))
if (!protoManager.Resolve(access, out var accessLevel))
{
continue;
}
@@ -76,7 +76,7 @@ namespace Content.Client.Access.UI
public void SetAllowedIcons(string currentJobIconId)
{
IconGrid.DisposeAllChildren();
IconGrid.RemoveAllChildren();
var jobIconButtonGroup = new ButtonGroup();
var i = 0;
@@ -84,12 +84,12 @@ namespace Content.Client.Access.UI
icons.Sort((x, y) => string.Compare(x.LocalizedJobName, y.LocalizedJobName, StringComparison.CurrentCulture));
foreach (var jobIcon in icons)
{
String styleBase = StyleBase.ButtonOpenBoth;
String styleBase = StyleClass.ButtonOpenBoth;
var modulo = i % JobIconColumnCount;
if (modulo == 0)
styleBase = StyleBase.ButtonOpenRight;
styleBase = StyleClass.ButtonOpenRight;
else if (modulo == JobIconColumnCount - 1)
styleBase = StyleBase.ButtonOpenLeft;
styleBase = StyleClass.ButtonOpenLeft;
// Generate buttons
var jobIconButton = new Button
@@ -57,7 +57,7 @@ public sealed partial class GroupedAccessLevelChecklist : BoxContainer
foreach (var accessGroup in _accessGroups)
{
if (!_protoManager.TryIndex(accessGroup, out var accessGroupProto))
if (!_protoManager.Resolve(accessGroup, out var accessGroupProto))
continue;
_groupedAccessLevels.Add(accessGroupProto, new());
@@ -65,13 +65,13 @@ public sealed partial class GroupedAccessLevelChecklist : BoxContainer
// Ensure that the 'general' access group is added to handle
// misc. access levels that aren't associated with any group
if (_protoManager.TryIndex(GeneralAccessGroup, out var generalAccessProto))
if (_protoManager.Resolve(GeneralAccessGroup, out var generalAccessProto))
_groupedAccessLevels.TryAdd(generalAccessProto, new());
// Assign known access levels with their associated groups
foreach (var accessLevel in _accessLevels)
{
if (!_protoManager.TryIndex(accessLevel, out var accessLevelProto))
if (!_protoManager.Resolve(accessLevel, out var accessLevelProto))
continue;
var assigned = false;
@@ -99,8 +99,8 @@ public sealed partial class GroupedAccessLevelChecklist : BoxContainer
private bool TryRebuildAccessGroupControls()
{
AccessGroupList.DisposeAllChildren();
AccessLevelChecklist.DisposeAllChildren();
AccessGroupList.RemoveAllChildren();
AccessLevelChecklist.RemoveAllChildren();
// No access level prototypes were assigned to any of the access level groups.
// Either the turret controller has no assigned access levels or their names were invalid.
@@ -119,11 +119,11 @@ public sealed partial class GroupedAccessLevelChecklist : BoxContainer
if (_groupedAccessLevels.Count > 1)
{
if (AccessGroupList.ChildCount == 0)
accessGroupButton.AddStyleClass(StyleBase.ButtonOpenLeft);
accessGroupButton.AddStyleClass(StyleClass.ButtonOpenLeft);
else if (_groupedAccessLevels.Count > 1 && AccessGroupList.ChildCount == (_groupedAccessLevels.Count - 1))
accessGroupButton.AddStyleClass(StyleBase.ButtonOpenRight);
accessGroupButton.AddStyleClass(StyleClass.ButtonOpenRight);
else
accessGroupButton.AddStyleClass(StyleBase.ButtonOpenBoth);
accessGroupButton.AddStyleClass(StyleClass.ButtonOpenBoth);
}
accessGroupButton.Pressed = _accessGroupTabIndex == orderedAccessGroups.IndexOf(accessGroup);
@@ -165,7 +165,7 @@ public sealed partial class GroupedAccessLevelChecklist : BoxContainer
/// </summary>
public void RebuildAccessLevelsControls()
{
AccessLevelChecklist.DisposeAllChildren();
AccessLevelChecklist.RemoveAllChildren();
_accessLevelEntries.Clear();
// No access level prototypes were assigned to any of the access level groups
@@ -1,9 +1,11 @@
using System.Linq; // DeltaV
using Content.Shared.Access;
using Content.Shared.Access.Components;
using Content.Shared.Access.Systems;
using Content.Shared.CCVar;
using Content.Shared.Containers.ItemSlots;
using Content.Shared.CrewManifest;
using Content.Shared.Roles;
using Robust.Shared.Configuration;
using Robust.Shared.Prototypes;
using static Content.Shared.Access.Components.IdCardConsoleComponent;
@@ -37,7 +39,8 @@ namespace Content.Client.Access.UI
if (EntMan.TryGetComponent<IdCardConsoleComponent>(Owner, out var idCard))
{
accessLevels = idCard.AccessLevels;
// DeltaV - Sort the access list
accessLevels = idCard.AccessLevels.OrderBy(x => _prototypeManager.TryIndex<AccessLevelPrototype>(x.Id, out var access) ? access.GetAccessLevelName() : x.Id).ToList();
}
else
{
@@ -53,7 +56,6 @@ namespace Content.Client.Access.UI
_window.CrewManifestButton.OnPressed += _ => SendMessage(new CrewManifestOpenUiMessage());
_window.PrivilegedIdButton.OnPressed += _ => SendMessage(new ItemSlotButtonPressedEvent(PrivilegedIdCardSlotId));
_window.TargetIdButton.OnPressed += _ => SendMessage(new ItemSlotButtonPressedEvent(TargetIdCardSlotId));
_window.OnToggleAccess += id => SendMessage(new IdCardConsoleToggleMessage(id)); // DeltaV
_window.OnClose += Close;
_window.OpenCentered();
@@ -75,7 +77,7 @@ namespace Content.Client.Access.UI
_window?.UpdateState(castState);
}
public void SubmitData(string newFullName, string newJobTitle, List<ProtoId<AccessLevelPrototype>> newAccessList, string newJobPrototype)
public void SubmitData(string newFullName, string newJobTitle, List<ProtoId<AccessLevelPrototype>> newAccessList, ProtoId<JobPrototype> newJobPrototype)
{
if (newFullName.Length > _maxNameLength)
newFullName = newFullName[.._maxNameLength];
@@ -1,6 +1,7 @@
<DefaultWindow xmlns="https://spacestation14.io"
MinSize="650 290">
<BoxContainer Orientation="Vertical">
<!-- Privileged and target IDs, crew manifest button. -->
<GridContainer Columns="2">
<GridContainer Columns="3" HorizontalExpand="True">
<Label Text="{Loc 'id-card-console-window-privileged-id'}" />
@@ -16,6 +17,7 @@
</BoxContainer>
</GridContainer>
<Control MinSize="0 8" />
<!-- Full name and job title editing. -->
<GridContainer Columns="3" HSeparationOverride="4">
<Label Name="FullNameLabel" Text="{Loc 'id-card-console-window-full-name-label'}" />
<LineEdit Name="FullNameLineEdit" HorizontalExpand="True" />
@@ -26,10 +28,19 @@
<Button Name="JobTitleSaveButton" Text="{Loc 'id-card-console-window-save-button'}" Disabled="True" />
</GridContainer>
<Control MinSize="0 8" />
<GridContainer Columns="2">
<Label Text="{Loc 'id-card-console-window-job-selection-label'}" />
<OptionButton Name="JobPresetOptionButton" />
</GridContainer>
<!-- Job preset selection, grant/revoke all access buttons. -->
<BoxContainer Margin="0 8 0 4">
<BoxContainer>
<Label Text="{Loc 'id-card-console-window-job-selection-label'}" />
<OptionButton Name="JobPresetOptionButton" />
</BoxContainer>
<Control HorizontalExpand="True"/>
<BoxContainer>
<Button Name="SelectAllButton" Text="{Loc 'id-card-console-window-select-all-button'}" />
<Button Name="DeselectAllButton" Text="{Loc 'id-card-console-window-deselect-all-button'}" />
</BoxContainer>
</BoxContainer>
<!-- Individual access buttons -->
<Control Name="AccessLevelControlContainer" />
</BoxContainer>
</DefaultWindow>
@@ -37,8 +37,6 @@ namespace Content.Client.Access.UI
// The job that will be picked if the ID doesn't have a job on the station.
private static ProtoId<JobPrototype> _defaultJob = "Passenger";
public event Action<ProtoId<AccessLevelPrototype>>? OnToggleAccess; // DeltaV
public IdCardConsoleWindow(IdCardConsoleBoundUserInterface owner, IPrototypeManager prototypeManager,
List<ProtoId<AccessLevelPrototype>> accessLevels)
{
@@ -81,19 +79,37 @@ namespace Content.Client.Access.UI
JobPresetOptionButton.AddItem(Loc.GetString(job.Name), _jobPrototypeIds.Count - 1);
}
SelectAllButton.OnPressed += _ =>
{
SetAllAccess(true);
SubmitData();
};
DeselectAllButton.OnPressed += _ =>
{
SetAllAccess(false);
SubmitData();
};
JobPresetOptionButton.OnItemSelected += SelectJobPreset;
_accessButtons.Populate(accessLevels, prototypeManager);
AccessLevelControlContainer.AddChild(_accessButtons);
foreach (var (id, button) in _accessButtons.ButtonsList)
{
var copied = id; // DeltaV
button.OnPressed += _ => OnToggleAccess?.Invoke(id);
button.OnPressed += _ => SubmitData();
}
}
// DeltaV - removed as part of job preset access fix
// private void ClearAllAccess()
/// <param name="enabled">If true, every individual access button will be pressed. If false, each will be depressed.</param>
private void SetAllAccess(bool enabled)
{
foreach (var button in _accessButtons.ButtonsList.Values)
{
if (!button.Disabled && button.Pressed != enabled)
button.Pressed = enabled;
}
}
private void SelectJobPreset(OptionButton.ItemSelectedEventArgs args)
{
@@ -105,28 +121,34 @@ namespace Content.Client.Access.UI
JobTitleLineEdit.Text = Loc.GetString(job.Name);
args.Button.SelectId(args.Id);
// DeltaV - start of job preset access fix
SubmitData();
SetAllAccess(false);
// this is a sussy way to do this
foreach (var access in job.Access)
{
if (_accessButtons.ButtonsList.TryGetValue(access, out var button) && !button.Disabled)
{
button.Pressed = true;
}
}
var targetAccesses = job.Access.ToHashSet();
foreach (var group in job.AccessGroups)
{
if (!_prototypeManager.TryIndex(group, out AccessGroupPrototype? groupPrototype))
if (!_prototypeManager.Resolve(group, out AccessGroupPrototype? groupPrototype))
{
continue;
}
targetAccesses.UnionWith(groupPrototype.Tags);
}
// this is a sussy way to do this
foreach (var (id, button) in _accessButtons.ButtonsList)
{
if (!button.Disabled && button.Pressed != targetAccesses.Contains(id))
foreach (var access in groupPrototype.Tags)
{
OnToggleAccess?.Invoke(id);
if (_accessButtons.ButtonsList.TryGetValue(access, out var button) && !button.Disabled)
{
button.Pressed = true;
}
}
}
// DeltaV - end of job preset access fix
SubmitData();
}
public void UpdateState(IdCardConsoleBoundUserInterfaceState state)
@@ -200,7 +222,7 @@ namespace Content.Client.Access.UI
FullNameLineEdit.Text,
JobTitleLineEdit.Text,
// Iterate over the buttons dictionary, filter by `Pressed`, only get key from the key/value pair
[], // DeltaV - don't send list of accesses
_accessButtons.ButtonsList.Where(x => x.Value.Pressed).Select(x => x.Key).ToList(),
jobProtoDirty ? _jobPrototypeIds[JobPresetOptionButton.SelectedId] : string.Empty);
}
}
+23 -3
View File
@@ -33,6 +33,7 @@ namespace Content.Client.Actions
[Dependency] private readonly IPrototypeManager _proto = default!;
[Dependency] private readonly IResourceManager _resources = default!;
[Dependency] private readonly MetaDataSystem _metaData = default!;
[Dependency] private readonly ISerializationManager _serialization = default!;
public event Action<EntityUid>? OnActionAdded;
public event Action<EntityUid>? OnActionRemoved;
@@ -287,8 +288,27 @@ namespace Content.Client.Actions
continue;
}
if (assignmentNode is SequenceDataNode sequenceAssignments)
{
try
{
var nodeAssignments = _serialization.Read<List<(byte Hotbar, byte Slot)>>(sequenceAssignments, notNullableOverride: true);
foreach (var index in nodeAssignments)
{
assignments.Add(new SlotAssignment(index.Hotbar, index.Slot, actionId));
}
}
catch (Exception ex)
{
Log.Error($"Failed to parse action assignments: {ex}");
}
}
AddActionDirect((user, actions), actionId);
}
AssignSlot?.Invoke(assignments);
}
// DeltaV - begin changes
@@ -401,10 +421,10 @@ namespace Content.Client.Actions
// this is the actual entity-world targeting magic
EntityUid? targetEnt = null;
if (TryComp<EntityTargetActionComponent>(ent, out var entity) &&
args.Input.EntityUid != null &&
ValidateEntityTarget(user, args.Input.EntityUid, (uid, entity)))
args.Input.EntityUid is { Valid: true } entityUid &&
ValidateEntityTarget(user, entityUid, (uid, entity)))
{
targetEnt = args.Input.EntityUid;
targetEnt = entityUid;
}
if (action.ClientExclusive)
@@ -23,9 +23,10 @@ namespace Content.Client.Actions.UI
public ActionAlertTooltip(FormattedMessage name, FormattedMessage? desc, string? requires = null)
{
Stylesheet = IoCManager.Resolve<IStylesheetManager>().SheetSystem;
_gameTiming = IoCManager.Resolve<IGameTiming>();
SetOnlyStyleClass(StyleNano.StyleClassTooltipPanel);
SetOnlyStyleClass(StyleClass.TooltipPanel);
BoxContainer vbox;
AddChild(vbox = new BoxContainer
@@ -36,7 +37,7 @@ namespace Content.Client.Actions.UI
var nameLabel = new RichTextLabel
{
MaxWidth = TooltipTextMaxWidth,
StyleClasses = {StyleNano.StyleClassTooltipActionTitle}
StyleClasses = { StyleClass.TooltipTitle }
};
nameLabel.SetMessage(name);
vbox.AddChild(nameLabel);
@@ -46,7 +47,7 @@ namespace Content.Client.Actions.UI
var description = new RichTextLabel
{
MaxWidth = TooltipTextMaxWidth,
StyleClasses = {StyleNano.StyleClassTooltipActionDescription}
StyleClasses = { StyleClass.TooltipDesc }
};
description.SetMessage(desc);
vbox.AddChild(description);
@@ -55,7 +56,7 @@ namespace Content.Client.Actions.UI
vbox.AddChild(_cooldownLabel = new RichTextLabel
{
MaxWidth = TooltipTextMaxWidth,
StyleClasses = {StyleNano.StyleClassTooltipActionCooldown},
StyleClasses = { StyleClass.TooltipDesc },
Visible = false
});
@@ -64,7 +65,7 @@ namespace Content.Client.Actions.UI
var requiresLabel = new RichTextLabel
{
MaxWidth = TooltipTextMaxWidth,
StyleClasses = {StyleNano.StyleClassTooltipActionRequirements}
StyleClasses = { StyleClass.TooltipDesc }
};
if (!FormattedMessage.TryFromMarkup("[color=#635c5c]" + requires + "[/color]", out var markup))
@@ -1,6 +1,5 @@
<DefaultWindow xmlns="https://spacestation14.io"
Title="{Loc admin-camera-window-title-placeholder}"
SetSize="425 550"
MinSize="200 225"
Name="Window">
MinSize="200 225">
</DefaultWindow>
@@ -7,7 +7,7 @@
</PanelContainer.PanelOverride>
<Control HorizontalAlignment="Center" VerticalAlignment="Center" MaxWidth="600">
<PanelContainer StyleClasses="AngleRect" />
<PanelContainer StyleClasses="BackgroundPanel" />
<BoxContainer Orientation="Vertical" Margin="4">
<RichTextLabel Name="Description" />
@@ -12,17 +12,19 @@ namespace Content.Client.Administration.UI.AdminRemarks;
[GenerateTypedNameReferences]
public sealed partial class AdminMessagePopupWindow : Control
{
[Dependency] private readonly IStylesheetManager _styleMan = default!;
private float _timer = float.MaxValue;
public event Action? OnDismissPressed;
public event Action? OnAcceptPressed;
public AdminMessagePopupWindow()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
Stylesheet = IoCManager.Resolve<IStylesheetManager>().SheetSpace;
Stylesheet = _styleMan.SheetSystem;
AcceptButton.OnPressed += OnAcceptButtonPressed;
DismissButton.OnPressed += OnDismissButtonPressed;
@@ -49,7 +51,8 @@ public sealed partial class AdminMessagePopupWindow : Control
MessageContainer.AddChild(new AdminMessagePopupMessage(message));
}
Description.SetMessage(FormattedMessage.FromMarkupOrThrow(Loc.GetString("admin-notes-message-desc", ("count", state.Messages.Length))));
Description.SetMessage(
FormattedMessage.FromMarkup(Loc.GetString("admin-notes-message-desc", ("count", state.Messages.Length))));
}
private void OnDismissButtonPressed(BaseButton.ButtonEventArgs obj)
@@ -24,7 +24,7 @@ namespace Content.Client.Administration.UI.BanPanel;
[GenerateTypedNameReferences]
public sealed partial class BanPanel : DefaultWindow
{
public event Action<string?, (IPAddress, int)?, bool, ImmutableTypedHwid?, bool, uint, string, NoteSeverity, string[]?, bool>? BanSubmitted;
public event Action<Ban>? BanSubmitted;
public event Action<string>? PlayerChanged;
private string? PlayerUsername { get; set; }
private (IPAddress, int)? IpAddress { get; set; }
@@ -37,8 +37,8 @@ public sealed partial class BanPanel : DefaultWindow
// This is less efficient than just holding a reference to the root control and enumerating children, but you
// have to know how the controls are nested, which makes the code more complicated.
// Role group name -> the role buttons themselves.
private readonly Dictionary<string, List<Button>> _roleCheckboxes = new();
private readonly ISawmill _banpanelSawmill;
private readonly Dictionary<string, List<(Button, IPrototype)>> _roleCheckboxes = new();
private readonly ISawmill _banPanelSawmill;
[Dependency] private readonly IGameTiming _gameTiming = default!;
[Dependency] private readonly IConfigurationManager _cfg = default!;
@@ -79,7 +79,7 @@ public sealed partial class BanPanel : DefaultWindow
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
_banpanelSawmill = _logManager.GetSawmill("admin.banpanel");
_banPanelSawmill = _logManager.GetSawmill("admin.banpanel");
PlayerList.OnSelectionChanged += OnPlayerSelectionChanged;
PlayerNameLine.OnFocusExit += _ => OnPlayerNameChanged();
PlayerCheckbox.OnPressed += _ =>
@@ -110,7 +110,7 @@ public sealed partial class BanPanel : DefaultWindow
TypeOption.SelectId(args.Id);
OnTypeChanged();
};
LastConnCheckbox.OnPressed += args =>
LastConnCheckbox.OnPressed += _ =>
{
IpLine.ModulateSelfOverride = null;
HwidLine.ModulateSelfOverride = null;
@@ -164,7 +164,7 @@ public sealed partial class BanPanel : DefaultWindow
var antagRoles = _protoMan.EnumeratePrototypes<AntagPrototype>()
.OrderBy(x => x.ID);
CreateRoleGroup("Antagonist", Color.Red, antagRoles);
CreateRoleGroup(AntagPrototype.GroupName, AntagPrototype.GroupColor, antagRoles);
}
/// <summary>
@@ -226,7 +226,7 @@ public sealed partial class BanPanel : DefaultWindow
var roleGroupCheckbox = new Button
{
Name = $"{groupName}GroupCheckbox",
Text = "Ban all",
Text = Loc.GetString("role-bans-ban-group"),
Margin = new Thickness(0, 0, 5, 0),
ToggleMode = true,
};
@@ -236,14 +236,14 @@ public sealed partial class BanPanel : DefaultWindow
{
foreach (var role in _roleCheckboxes[groupName])
{
role.Pressed = args.Pressed;
role.Item1.Pressed = args.Pressed;
}
if (args.Pressed)
{
if (!Enum.TryParse(_cfg.GetCVar(CCVars.DepartmentBanDefaultSeverity), true, out NoteSeverity newSeverity))
{
_banpanelSawmill
_banPanelSawmill
.Warning("Departmental role ban severity could not be parsed from config!");
return;
}
@@ -255,14 +255,14 @@ public sealed partial class BanPanel : DefaultWindow
{
foreach (var button in roleButtons)
{
if (button.Pressed)
if (button.Item1.Pressed)
return;
}
}
if (!Enum.TryParse(_cfg.GetCVar(CCVars.RoleBanDefaultSeverity), true, out NoteSeverity newSeverity))
{
_banpanelSawmill
_banPanelSawmill
.Warning("Role ban severity could not be parsed from config!");
return;
}
@@ -294,30 +294,44 @@ public sealed partial class BanPanel : DefaultWindow
}
/// <summary>
/// Adds a checkbutton specifically for one "role" in a "group"
/// Adds a toggle button specifically for one "role" in a "group"
/// E.g. it would add the Chief Medical Officer "role" into the "Medical" group.
/// </summary>
private void AddRoleCheckbox(string group, string role, GridContainer roleGroupInnerContainer, Button roleGroupCheckbox)
{
var roleCheckboxContainer = new BoxContainer();
var roleCheckButton = new Button
var roleToggleButton = new Button
{
Name = $"{role}RoleCheckbox",
Name = role,
Text = role,
ToggleMode = true,
};
roleCheckButton.OnToggled += args =>
roleToggleButton.OnToggled += args =>
{
// Checks the role group checkbox if all the children are pressed
if (args.Pressed && _roleCheckboxes[group].All(e => e.Pressed))
if (args.Pressed && _roleCheckboxes[group].All(e => e.Item1.Pressed))
roleGroupCheckbox.Pressed = args.Pressed;
else
roleGroupCheckbox.Pressed = false;
};
IPrototype rolePrototype;
if (_protoMan.TryIndex<JobPrototype>(role, out var jobPrototype))
rolePrototype = jobPrototype;
else if (_protoMan.TryIndex<AntagPrototype>(role, out var antagPrototype))
rolePrototype = antagPrototype;
else
{
_banPanelSawmill.Error($"Adding a role checkbox for role {role}: role is not a JobPrototype or AntagPrototype.");
return;
}
// This is adding the icon before the role name
// Yeah, this is sus, but having to split the functions up and stuff is worse imo.
if (_protoMan.TryIndex<JobPrototype>(role, out var jobPrototype) && _protoMan.TryIndex(jobPrototype.Icon, out var iconProto))
// TODO: This should not be using raw strings for prototypes as it means it won't be validated at all.
// // I know the ban manager is doing the same thing, but that should not leak into UI code.
if (jobPrototype is not null && _protoMan.TryIndex(jobPrototype.Icon, out var iconProto))
{
var jobIconTexture = new TextureRect
{
@@ -329,12 +343,12 @@ public sealed partial class BanPanel : DefaultWindow
roleCheckboxContainer.AddChild(jobIconTexture);
}
roleCheckboxContainer.AddChild(roleCheckButton);
roleCheckboxContainer.AddChild(roleToggleButton);
roleGroupInnerContainer.AddChild(roleCheckboxContainer);
_roleCheckboxes.TryAdd(group, []);
_roleCheckboxes[group].Add(roleCheckButton);
_roleCheckboxes[group].Add((roleToggleButton, rolePrototype));
}
public void UpdateBanFlag(bool newFlag)
@@ -377,7 +391,7 @@ public sealed partial class BanPanel : DefaultWindow
TimeLine.Text = args.Text;
if (!double.TryParse(args.Text, out var result))
{
ExpiresLabel.Text = "err";
ExpiresLabel.Text = Loc.GetString("ban-panel-expiry-error");
ErrorLevel |= ErrorLevelEnum.Minutes;
TimeLine.ModulateSelfOverride = Color.Red;
UpdateSubmitEnabled();
@@ -487,7 +501,7 @@ public sealed partial class BanPanel : DefaultWindow
newSeverity = serverSeverity;
else
{
_banpanelSawmill
_banPanelSawmill
.Warning("Server ban severity could not be parsed from config!");
}
@@ -500,7 +514,7 @@ public sealed partial class BanPanel : DefaultWindow
}
else
{
_banpanelSawmill
_banPanelSawmill
.Warning("Role ban severity could not be parsed from config!");
}
break;
@@ -545,34 +559,51 @@ public sealed partial class BanPanel : DefaultWindow
private void SubmitButtonOnOnPressed(BaseButton.ButtonEventArgs obj)
{
string[]? roles = null;
ProtoId<JobPrototype>[]? jobs = null;
ProtoId<AntagPrototype>[]? antags = null;
if (TypeOption.SelectedId == (int) Types.Role)
{
var rolesList = new List<string>();
var jobList = new List<ProtoId<JobPrototype>>();
var antagList = new List<ProtoId<AntagPrototype>>();
if (_roleCheckboxes.Count == 0)
throw new DebugAssertException("RoleCheckboxes was empty");
foreach (var button in _roleCheckboxes.Values.SelectMany(departmentButtons => departmentButtons))
{
if (button is { Pressed: true, Text: not null })
if (button.Item1 is { Pressed: true, Name: not null })
{
rolesList.Add(button.Text);
switch (button.Item2)
{
case JobPrototype:
jobList.Add(button.Item2.ID);
break;
case AntagPrototype:
antagList.Add(button.Item2.ID);
break;
}
}
}
if (rolesList.Count == 0)
if (jobList.Count + antagList.Count == 0)
{
Tabs.CurrentTab = (int) TabNumbers.Roles;
return;
}
roles = rolesList.ToArray();
jobs = jobList.ToArray();
antags = antagList.ToArray();
}
if (TypeOption.SelectedId == (int) Types.None)
{
TypeOption.ModulateSelfOverride = Color.Red;
Tabs.CurrentTab = (int) TabNumbers.BasicInfo;
return;
}
@@ -584,6 +615,7 @@ public sealed partial class BanPanel : DefaultWindow
ReasonTextEdit.GrabKeyboardFocus();
ReasonTextEdit.ModulateSelfOverride = Color.Red;
ReasonTextEdit.OnKeyBindDown += ResetTextEditor;
return;
}
@@ -592,6 +624,7 @@ public sealed partial class BanPanel : DefaultWindow
ButtonResetOn = _gameTiming.CurTime.Add(TimeSpan.FromSeconds(3));
SubmitButton.ModulateSelfOverride = Color.Red;
SubmitButton.Text = Loc.GetString("ban-panel-confirm");
return;
}
@@ -600,7 +633,22 @@ public sealed partial class BanPanel : DefaultWindow
var useLastHwid = HwidCheckbox.Pressed && LastConnCheckbox.Pressed && Hwid is null;
var severity = (NoteSeverity) SeverityOption.SelectedId;
var erase = EraseCheckbox.Pressed;
BanSubmitted?.Invoke(player, IpAddress, useLastIp, Hwid, useLastHwid, (uint) (TimeEntered * Multiplier), reason, severity, roles, erase);
var ban = new Ban(
player,
IpAddress,
useLastIp,
Hwid,
useLastHwid,
(uint)(TimeEntered * Multiplier),
reason,
severity,
jobs,
antags,
erase
);
BanSubmitted?.Invoke(ban);
}
protected override void FrameUpdate(FrameEventArgs args)
@@ -14,8 +14,7 @@ public sealed class BanPanelEui : BaseEui
{
BanPanel = new BanPanel();
BanPanel.OnClose += () => SendMessage(new CloseEuiMessage());
BanPanel.BanSubmitted += (player, ip, useLastIp, hwid, useLastHwid, minutes, reason, severity, roles, erase)
=> SendMessage(new BanPanelEuiStateMsg.CreateBanRequest(player, ip, useLastIp, hwid, useLastHwid, minutes, reason, severity, roles, erase));
BanPanel.BanSubmitted += ban => SendMessage(new BanPanelEuiStateMsg.CreateBanRequest(ban));
BanPanel.PlayerChanged += player => SendMessage(new BanPanelEuiStateMsg.GetPlayerInfoRequest(player));
}
@@ -18,7 +18,7 @@
<Button Visible="True" Name="PopOut" Access="Public" Text="{Loc 'admin-logs-pop-out'}" StyleClasses="OpenBoth" HorizontalAlignment="Left" />
<Control HorizontalExpand="True" />
<Button Visible="False" Name="Bans" Text="{Loc 'admin-player-actions-bans'}" StyleClasses="OpenRight" />
<Button Visible="False" Name="Notes" Text="{Loc 'admin-player-actions-notes'}" StyleClasses="OpenBoth" />
<Button Visible="False" Access="Public" Name="Notes" Text="{Loc 'admin-player-actions-notes'}" StyleClasses="OpenBoth" />
<controls:ConfirmButton Visible="False" Name="Kick" Text="{Loc 'admin-player-actions-kick'}" ConfirmationText="{Loc 'admin-player-actions-confirm'}" StyleClasses="OpenBoth" />
<Button Visible="False" Name="Ban" Text="{Loc 'admin-player-actions-ban'}" StyleClasses="OpenBoth" />
<controls:ConfirmButton Visible="False" Name="Respawn" Text="{Loc 'admin-player-actions-respawn'}" ConfirmationText="{Loc 'admin-player-actions-confirm'}" StyleClasses="OpenBoth" />
@@ -3,12 +3,16 @@ using Content.Shared.Administration;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Utility;
namespace Content.Client.Administration.UI.CustomControls;
[GenerateTypedNameReferences]
public sealed partial class PlayerListEntry : BoxContainer
{
private readonly ResPath _pinnedResPath = new("/Textures/Interface/Bwoink/pinned.png");
private readonly ResPath _unPinnedResPath = new("/Textures/Interface/Bwoink/un_pinned.png");
public PlayerListEntry()
{
RobustXamlLoader.Load(this);
@@ -42,15 +46,6 @@ public sealed partial class PlayerListEntry : BoxContainer
private void UpdatePinButtonTexture(bool isPinned)
{
if (isPinned)
{
PlayerEntryPinButton?.RemoveStyleClass(StyleNano.StyleClassPinButtonUnpinned);
PlayerEntryPinButton?.AddStyleClass(StyleNano.StyleClassPinButtonPinned);
}
else
{
PlayerEntryPinButton?.RemoveStyleClass(StyleNano.StyleClassPinButtonPinned);
PlayerEntryPinButton?.AddStyleClass(StyleNano.StyleClassPinButtonUnpinned);
}
PlayerEntryPinButton.TexturePath = isPinned ? _pinnedResPath.CanonPath : _unPinnedResPath.CanonPath;
}
}
@@ -88,7 +88,7 @@ public sealed class AdminLogsEui : BaseEui
ClydeWindow = _clyde.CreateWindow(new WindowCreateParameters
{
Maximized = false,
Title = "Admin Logs",
Title = Loc.GetString("admin-logs-title"),
Monitor = monitor,
Width = 1100,
Height = 400
@@ -67,7 +67,7 @@ namespace Content.Client.Administration.UI.ManageSolutions
/// </summary>
public void UpdateReagents()
{
ReagentList.DisposeAllChildren();
ReagentList.RemoveAllChildren();
if (_selectedSolution == null || _solutions == null)
return;
@@ -92,7 +92,7 @@ namespace Content.Client.Administration.UI.ManageSolutions
/// <param name="solution">The selected solution.</param>
private void UpdateVolumeBox(Solution solution)
{
VolumeBox.DisposeAllChildren();
VolumeBox.RemoveAllChildren();
var volumeLabel = new Label();
volumeLabel.HorizontalExpand = true;
@@ -131,7 +131,7 @@ namespace Content.Client.Administration.UI.ManageSolutions
/// <param name="solution">The selected solution.</param>
private void UpdateThermalBox(Solution solution)
{
ThermalBox.DisposeAllChildren();
ThermalBox.RemoveAllChildren();
var heatCap = solution.GetHeatCapacity(null);
var specificHeatLabel = new Label();
specificHeatLabel.HorizontalExpand = true;
@@ -5,7 +5,7 @@
<BoxContainer Orientation="Vertical" Name="Notes" Access="Public" VerticalExpand="True"/>
</ScrollContainer>
<Button Name="ShowMoreButton" Text="{Loc admin-notes-show-more}" Visible="False" HorizontalAlignment="Center" />
<Button Name="NewNoteButton" Text="{Loc admin-notes-new-note}" Disabled="True" />
<Button Name="NewNoteButton" Access="Public" Text="{Loc admin-notes-new-note}" Disabled="True" />
</BoxContainer>
</PanelContainer>
</Control>
@@ -82,7 +82,11 @@ public sealed partial class AdminNotesLine : BoxContainer
if (Note.UnbannedTime is not null)
{
ExtraLabel.Text = Loc.GetString("admin-notes-unbanned", ("admin", Note.UnbannedByName ?? "[error]"), ("date", Note.UnbannedTime));
ExtraLabel.Text = Loc.GetString(
"admin-notes-unbanned",
("admin", Note.UnbannedByName ?? "[error]"),
("date", Note.UnbannedTime.Value.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss"))
);
ExtraLabel.Visible = true;
}
else if (Note.ExpiryTime is not null)
@@ -139,7 +143,7 @@ public sealed partial class AdminNotesLine : BoxContainer
private string FormatRoleBanMessage()
{
var banMessage = new StringBuilder($"{Loc.GetString("admin-notes-banned-from")} {string.Join(", ", Note.BannedRoles ?? new []{"unknown"})} ");
var banMessage = new StringBuilder($"{Loc.GetString("admin-notes-banned-from")} {string.Join(", ", Note.BannedRoles ?? new[] { "unknown" })} ");
return FormatBanMessageCommon(banMessage);
}
@@ -3,7 +3,7 @@
Title="Loading..."
MinSize="400 200">
<BoxContainer Orientation="Vertical" Margin="4">
<TextEdit Name="NoteTextEdit" HorizontalExpand="True" VerticalExpand="True" />
<TextEdit Name="NoteTextEdit" Access="Public" HorizontalExpand="True" VerticalExpand="True" />
<BoxContainer Orientation="Horizontal" HorizontalExpand="True">
<Label Name="ExpiryLabel" Text="{Loc admin-note-editor-expiry-label}" Visible="False" />
<HistoryLineEdit Name="ExpiryLineEdit" PlaceHolder="{Loc admin-note-editor-expiry-placeholder}"
@@ -17,7 +17,7 @@
ToolTip="{Loc admin-note-editor-secret-tooltip}" />
<CheckBox Name="PermanentCheckBox" Pressed="True" Text="{Loc admin-note-editor-expiry-checkbox}"
ToolTip="{Loc admin-note-editor-expiry-checkbox-tooltip}" />
<Button Name="SubmitButton" Text="{Loc admin-note-editor-submit}" HorizontalAlignment="Right" />
<Button Name="SubmitButton" Access="Public" Text="{Loc admin-note-editor-submit}" HorizontalAlignment="Right" />
</BoxContainer>
</BoxContainer>
</controls:FancyWindow>
@@ -133,7 +133,7 @@ public sealed partial class NoteEdit : FancyWindow
private bool IsSecret { get; set; }
private NoteType NoteType { get; set; }
private NoteSeverity? NoteSeverity
public NoteSeverity? NoteSeverity
{
get => _noteSeverity;
set
@@ -27,7 +27,7 @@ namespace Content.Client.Administration.UI
[Dependency] private readonly IClientAdminManager _adminManager = default!;
private readonly Menu _menu;
private readonly List<DefaultWindow> _subWindows = new();
private readonly List<BaseWindow> _subWindows = new();
private Dictionary<int, PermissionsEuiState.AdminRankData> _ranks =
new();
@@ -216,7 +216,7 @@ namespace Content.Client.Administration.UI
var titleControl = new Label { Text = admin.Title ?? Loc.GetString("permissions-eui-edit-admin-title-control-text").ToLowerInvariant() };
if (admin.Title == null) // none
{
titleControl.StyleClasses.Add(StyleBase.StyleClassItalic);
titleControl.StyleClasses.Add(StyleClass.Italic);
}
al.AddChild(titleControl);
@@ -240,7 +240,7 @@ namespace Content.Client.Administration.UI
var rankControl = new Label { Text = rank };
if (italic)
{
rankControl.StyleClasses.Add(StyleBase.StyleClassItalic);
rankControl.StyleClasses.Add(StyleClass.Italic);
}
al.AddChild(rankControl);
@@ -340,10 +340,9 @@ namespace Content.Client.Administration.UI
tab.AddChild(adminVBox);
tab.AddChild(rankVBox);
Contents.AddChild(tab);
ContentsContainer.AddChild(tab);
ContentsContainer.MinSize = new(600, 400);
}
protected override Vector2 ContentsMinimumSize => new Vector2(600, 400);
}
private sealed class EditAdminWindow : DefaultWindow
@@ -419,21 +418,21 @@ namespace Content.Client.Administration.UI
var inherit = new Button
{
Text = "I",
StyleClasses = { StyleBase.ButtonOpenRight },
StyleClasses = { StyleClass.ButtonOpenRight },
Disabled = disable,
Group = group,
};
var sub = new Button
{
Text = "-",
StyleClasses = { StyleBase.ButtonOpenBoth },
StyleClasses = { StyleClass.ButtonOpenBoth },
Disabled = disable,
Group = group
};
var plus = new Button
{
Text = "+",
StyleClasses = { StyleBase.ButtonOpenLeft },
StyleClasses = { StyleClass.ButtonOpenLeft },
Disabled = disable,
Group = group
};
@@ -479,7 +478,7 @@ namespace Content.Client.Administration.UI
bottomButtons.AddChild(SaveButton);
Contents.AddChild(new BoxContainer
ContentsContainer.AddChild(new BoxContainer
{
Orientation = LayoutOrientation.Vertical,
Children =
@@ -605,7 +604,7 @@ namespace Content.Client.Administration.UI
bottomButtons.AddChild(SaveButton);
Contents.AddChild(new BoxContainer
ContentsContainer.AddChild(new BoxContainer
{
Orientation = LayoutOrientation.Vertical,
Children =
@@ -8,10 +8,8 @@
MinSize="50 50">
<BoxContainer Orientation="Vertical">
<GridContainer Columns="3">
<cc:UICommandButton Command="kick" Text="{Loc admin-player-actions-window-title}" WindowType="{x:Type at:PlayerActionsWindow}" />
<cc:CommandButton Command="banpanel" Text="{Loc admin-player-actions-window-ban}" />
<cc:CommandButton Command="aghost" Text="{Loc admin-player-actions-window-admin-ghost}" />
<cc:UICommandButton Command="tpto" Text="{Loc admin-player-actions-window-teleport}" WindowType="{x:Type at:TeleportWindow}" />
<cc:CommandButton Command="permissions" Text="{Loc admin-player-actions-window-permissions}" />
<cc:CommandButton Command="announceui" Text="{Loc admin-player-actions-window-announce}"/>
<cc:UICommandButton Command="callshuttle" Text="{Loc admin-player-actions-window-shuttle}" WindowType="{x:Type at:AdminShuttleWindow}"/>
@@ -1,19 +0,0 @@
<DefaultWindow
xmlns="https://spacestation14.io"
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
xmlns:controls="clr-namespace:Content.Client.UserInterface.Controls"
Title="{Loc admin-player-actions-window-title}" MinSize="425 272">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc admin-player-actions-reason}" MinWidth="100" />
<Control MinWidth="50" />
<LineEdit Name="ReasonLine" MinWidth="100" HorizontalExpand="True" />
</BoxContainer>
<cc:PlayerListControl Name="PlayerList" VerticalExpand="True" />
<BoxContainer Orientation="Horizontal">
<controls:ConfirmButton Name="SubmitKickButton" Text="{Loc admin-player-actions-kick}" ConfirmationText="{Loc 'admin-player-actions-confirm'}" Disabled="True"/>
<Button Name="SubmitAHelpButton" Text="{Loc admin-player-actions-ahelp}" Disabled="True"/>
<controls:ConfirmButton Name="SubmitRespawnButton" Text="{Loc admin-player-actions-respawn}" ConfirmationText="{Loc 'admin-player-actions-confirm'}" Disabled="True"/>
</BoxContainer>
</BoxContainer>
</DefaultWindow>
@@ -1,64 +0,0 @@
using Content.Shared.Administration;
using JetBrains.Annotations;
using Robust.Client.AutoGenerated;
using Robust.Client.Console;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Utility;
namespace Content.Client.Administration.UI.Tabs.AdminTab
{
[GenerateTypedNameReferences]
[UsedImplicitly]
public sealed partial class PlayerActionsWindow : DefaultWindow
{
private PlayerInfo? _selectedPlayer;
public PlayerActionsWindow()
{
RobustXamlLoader.Load(this);
SubmitKickButton.OnPressed += SubmitKickButtonOnPressed;
SubmitAHelpButton.OnPressed += SubmitAhelpButtonOnPressed;
SubmitRespawnButton.OnPressed += SubmitRespawnButtonOnPressed;
PlayerList.OnSelectionChanged += OnListOnOnSelectionChanged;
}
private void OnListOnOnSelectionChanged(PlayerInfo? obj)
{
_selectedPlayer = obj;
var disableButtons = _selectedPlayer == null;
SubmitKickButton.Disabled = disableButtons;
SubmitAHelpButton.Disabled = disableButtons;
SubmitRespawnButton.Disabled = disableButtons;
}
private void SubmitKickButtonOnPressed(BaseButton.ButtonEventArgs obj)
{
if (_selectedPlayer == null)
return;
IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand(
$"kick \"{_selectedPlayer.Username}\" \"{CommandParsing.Escape(ReasonLine.Text)}\"");
}
private void SubmitAhelpButtonOnPressed(BaseButton.ButtonEventArgs obj)
{
if (_selectedPlayer == null)
return;
IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand(
$"openahelp \"{_selectedPlayer.SessionId}\"");
}
private void SubmitRespawnButtonOnPressed(BaseButton.ButtonEventArgs obj)
{
if (_selectedPlayer == null)
return;
IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand(
$"respawn \"{_selectedPlayer.Username}\"");
}
}
}
@@ -1,9 +0,0 @@
<DefaultWindow
xmlns="https://spacestation14.io"
xmlns:cc="clr-namespace:Content.Client.Administration.UI.CustomControls"
Title="{Loc admin-ui-teleport}" MinSize="425 230">
<BoxContainer Orientation="Vertical">
<cc:PlayerListControl Name="PlayerList" />
<Button Name="SubmitButton" Text="{Loc admin-ui-teleport}" />
</BoxContainer>
</DefaultWindow>
@@ -1,38 +0,0 @@
using Content.Shared.Administration;
using JetBrains.Annotations;
using Robust.Client.AutoGenerated;
using Robust.Client.Console;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.CustomControls;
using Robust.Shared.IoC;
namespace Content.Client.Administration.UI.Tabs.AdminTab
{
[GenerateTypedNameReferences]
[UsedImplicitly]
public sealed partial class TeleportWindow : DefaultWindow
{
private PlayerInfo? _selectedPlayer;
protected override void EnteredTree()
{
SubmitButton.OnPressed += SubmitButtonOnOnPressed;
PlayerList.OnSelectionChanged += OnListOnOnSelectionChanged;
}
private void OnListOnOnSelectionChanged(PlayerInfo? obj)
{
_selectedPlayer = obj;
SubmitButton.Disabled = _selectedPlayer == null;
}
private void SubmitButtonOnOnPressed(BaseButton.ButtonEventArgs obj)
{
if (_selectedPlayer == null)
return;
// Execute command
IoCManager.Resolve<IClientConsoleHost>().ExecuteCommand(
$"tpto \"{_selectedPlayer.Username}\"");
}
}
}
@@ -0,0 +1,40 @@
using Robust.Client.Graphics;
using SixLabors.ImageSharp.PixelFormats;
namespace Content.Client.Anomaly;
/// <summary>
/// This component creates and handles the drawing of a ScreenTexture to be used on the Anomaly Scanner
/// for an indicator of Anomaly Severity.
/// </summary>
/// <remarks>
/// In the future I would like to make this a more generic "DynamicTextureComponent" that can contain a dictionary
/// of texture components like "Bar(offset, size, minimumValue, maximumValue, AppearanceKey, LayerMapKey)" that can
/// just draw a bar or other basic drawn element that will show up on a texture layer.
/// </remarks>
[RegisterComponent]
[Access(typeof(AnomalyScannerSystem))]
public sealed partial class AnomalyScannerScreenComponent : Component
{
/// <summary>
/// This is the texture drawn as a layer on the Anomaly Scanner device.
/// </summary>
public OwnedTexture? ScreenTexture;
/// <summary>
/// A small buffer that we can reuse to draw the severity bar.
/// </summary>
public Rgba32[]? BarBuf;
/// <summary>
/// The position of the top-left of the severity bar in pixels.
/// </summary>
[DataField(readOnly: true)]
public Vector2i Offset = new Vector2i(12, 17);
/// <summary>
/// The width and height of the severity bar in pixels.
/// </summary>
[DataField(readOnly: true)]
public Vector2i Size = new Vector2i(10, 3);
}
@@ -0,0 +1,110 @@
using System.Numerics;
using Content.Shared.Anomaly;
using Robust.Client.GameObjects;
using Robust.Client.Graphics;
using Robust.Shared.Utility;
using SixLabors.ImageSharp.PixelFormats;
namespace Content.Client.Anomaly;
/// <inheritdoc cref="SharedAnomalyScannerSystem"/>
public sealed class AnomalyScannerSystem : SharedAnomalyScannerSystem
{
[Dependency] private readonly IClyde _clyde = default!;
[Dependency] private readonly SpriteSystem _sprite = default!;
private const float MaxHueDegrees = 360f;
private const float GreenHueDegrees = 110f;
private const float RedHueDegrees = 0f;
private const float GreenHue = GreenHueDegrees / MaxHueDegrees;
private const float RedHue = RedHueDegrees / MaxHueDegrees;
// Just an array to initialize the pixels of a new OwnedTexture
private static readonly Rgba32[] EmptyTexture = new Rgba32[32*32];
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<AnomalyScannerScreenComponent, ComponentInit>(OnComponentInit);
SubscribeLocalEvent<AnomalyScannerScreenComponent, ComponentStartup>(OnComponentStartup);
SubscribeLocalEvent<AnomalyScannerScreenComponent, AppearanceChangeEvent>(OnScannerAppearanceChanged);
}
private void OnComponentInit(Entity<AnomalyScannerScreenComponent> ent, ref ComponentInit args)
{
if(!_sprite.TryGetLayer(ent.Owner, AnomalyScannerVisualLayers.Base, out var layer, true))
return;
// Allocate the OwnedTexture
ent.Comp.ScreenTexture = _clyde.CreateBlankTexture<Rgba32>(layer.PixelSize);
if (layer.PixelSize.X < ent.Comp.Offset.X + ent.Comp.Size.X ||
layer.PixelSize.Y < ent.Comp.Offset.Y + ent.Comp.Size.Y)
{
// If the bar doesn't fit, just bail here, ScreenTexture and BarBuf will remain null, and appearance updates
// will do nothing.
DebugTools.Assert(false, "AnomalyScannerScreenComponent: Bar does not fit within sprite");
return;
}
// Initialize the texture
ent.Comp.ScreenTexture.SetSubImage((0, 0), layer.PixelSize, new ReadOnlySpan<Rgba32>(EmptyTexture));
// Initialize bar drawing buffer
ent.Comp.BarBuf = new Rgba32[ent.Comp.Size.X * ent.Comp.Size.Y];
}
private void OnComponentStartup(Entity<AnomalyScannerScreenComponent> ent, ref ComponentStartup args)
{
if (!TryComp<SpriteComponent>(ent, out var sprite))
return;
_sprite.LayerSetTexture((ent, sprite), AnomalyScannerVisualLayers.Screen, ent.Comp.ScreenTexture);
}
private void OnScannerAppearanceChanged(Entity<AnomalyScannerScreenComponent> ent, ref AppearanceChangeEvent args)
{
if (args.Sprite is null || ent.Comp.ScreenTexture is null || ent.Comp.BarBuf is null)
return;
args.AppearanceData.TryGetValue(AnomalyScannerVisuals.AnomalySeverity, out var severityObj);
if (severityObj is not float severity)
severity = 0;
// Get the bar length
var barLength = (int)(severity * ent.Comp.Size.X);
// Calculate the bar color
// Hue "angle" of two colors to interpolate between depending on severity
// Just a lerp from Green hue at severity = 0.5 to Red hue at 1.0
var hue = Math.Clamp(2*GreenHue * (1 - severity), RedHue, GreenHue);
var color = new Rgba32(Color.FromHsv(new Vector4(hue, 1f, 1f, 1f)).RGBA);
var transparent = new Rgba32(0, 0, 0, 255);
for(var y = 0; y < ent.Comp.Size.Y; y++)
{
for (var x = 0; x < ent.Comp.Size.X; x++)
{
ent.Comp.BarBuf[y*ent.Comp.Size.X + x] = x < barLength ? color : transparent;
}
}
// Copy the buffer to the texture
try
{
ent.Comp.ScreenTexture.SetSubImage(
ent.Comp.Offset,
ent.Comp.Size,
new ReadOnlySpan<Rgba32>(ent.Comp.BarBuf)
);
}
catch (IndexOutOfRangeException)
{
Log.Warning($"Bar dimensions out of bounds with the texture on entity {ent.Owner}");
}
}
}
+2 -1
View File
@@ -7,7 +7,7 @@ using Robust.Shared.Timing;
namespace Content.Client.Anomaly;
public sealed class AnomalySystem : SharedAnomalySystem
public sealed partial class AnomalySystem : SharedAnomalySystem
{
[Dependency] private readonly IGameTiming _timing = default!;
[Dependency] private readonly FloatingVisualizerSystem _floating = default!;
@@ -24,6 +24,7 @@ public sealed class AnomalySystem : SharedAnomalySystem
SubscribeLocalEvent<AnomalySupercriticalComponent, ComponentShutdown>(OnShutdown);
}
private void OnStartup(EntityUid uid, AnomalyComponent component, ComponentStartup args)
{
_floating.FloatAnimation(uid, component.FloatingOffset, component.AnimationKey, component.AnimationTime);
@@ -14,7 +14,7 @@
VerticalExpand="True"
Margin="0 0 0 0"
VerticalAlignment="Center">
<Label Text="{Loc 'anomaly-generator-fuel-display'}" StyleClasses="StatusFieldTitle" />
<Label Text="{Loc 'anomaly-generator-fuel-display'}" StyleClasses="highlight" />
<ProgressBar Name="FuelBar"
HorizontalExpand="True"
MaxValue="1"
@@ -27,8 +27,8 @@
Text="0 %" />
</ProgressBar>
</BoxContainer>
<RichTextLabel Name="CooldownLabel" StyleClasses="StatusFieldTitle" />
<RichTextLabel Name="ReadyLabel" StyleClasses="StatusFieldTitle" />
<RichTextLabel Name="CooldownLabel" StyleClasses="highlight" />
<RichTextLabel Name="ReadyLabel" StyleClasses="highlight" />
</BoxContainer>
<!--Sprite View-->
<PanelContainer Margin="12 0 0 0"
+1 -1
View File
@@ -338,7 +338,7 @@ namespace Content.Client.Arcade
menuInnerPanel.AddChild(menuContainer);
#endregion
Contents.AddChild(_mainPanel);
ContentsContainer.AddChild(_mainPanel);
CanKeyboardFocus = true;
}
@@ -86,7 +86,7 @@ namespace Content.Client.Arcade
newGame.OnPressed += _ => OnPlayerAction?.Invoke(SharedSpaceVillainArcadeComponent.PlayerAction.NewGame);
grid.AddChild(newGame);
Contents.AddChild(grid);
ContentsContainer.AddChild(grid);
}
private void UpdateMetadata(SharedSpaceVillainArcadeComponent.SpaceVillainArcadeMetaDataUpdateMessage message)
+1
View File
@@ -1,3 +1,4 @@
using System.Runtime.CompilerServices;
[assembly: InternalsVisibleTo("Content.Tests")]
[assembly: InternalsVisibleTo("Content.IntegrationTests")]
+1 -1
View File
@@ -134,7 +134,7 @@ public sealed class AlignAtmosPipeLayers : SnapgridCenter
var newProtoId = altPrototypes[(int)layer];
if (!_protoManager.TryIndex(newProtoId, out var newProto))
if (!_protoManager.Resolve(newProtoId, out var newProto))
return;
if (newProto.Type != ConstructionType.Structure)
@@ -0,0 +1,5 @@
using Content.Shared.Atmos.EntitySystems;
namespace Content.Client.Atmos.EntitySystems;
public sealed class DeltaPressureSystem : SharedDeltaPressureSystem;
@@ -1,6 +1,6 @@
using Content.Client.Atmos.Monitor.UI.Widgets;
using Content.Client.Message;
using Content.Client.Stylesheets;
using Content.Client.Stylesheets.Palette;
using Content.Client.UserInterface.Controls;
using Content.Shared.Atmos;
using Content.Shared.Atmos.Monitor;
@@ -17,7 +17,7 @@ namespace Content.Client.Atmos.Monitor.UI;
public sealed partial class AirAlarmWindow : FancyWindow
{
public event Action<string, IAtmosDeviceData>? AtmosDeviceDataChanged;
public event Action<IAtmosDeviceData>? AtmosDeviceDataCopied;
public event Action<IAtmosDeviceData>? AtmosDeviceDataCopied;
public event Action<string, AtmosMonitorThresholdType, AtmosAlarmThreshold, Gas?>? AtmosAlarmThresholdChanged;
public event Action<AirAlarmMode>? AirAlarmModeChanged;
public event Action<bool>? AutoModeChanged;
@@ -131,7 +131,7 @@ public sealed partial class AirAlarmWindow : FancyWindow
case GasVentPumpData pump:
if (!_pumps.TryGetValue(addr, out var pumpControl))
{
var control= new PumpControl(pump, addr);
var control = new PumpControl(pump, addr);
control.PumpDataChanged += AtmosDeviceDataChanged;
control.PumpDataCopied += AtmosDeviceDataCopied;
_pumps.Add(addr, control);
@@ -186,11 +186,9 @@ public sealed partial class AirAlarmWindow : FancyWindow
{
return curAlarm switch
{
AtmosAlarmType.Danger => StyleNano.DangerousRedFore,
AtmosAlarmType.Warning => StyleNano.ConcerningOrangeFore,
_ => StyleNano.GoodGreenFore,
AtmosAlarmType.Danger => Palettes.Status.Critical,
AtmosAlarmType.Warning => Palettes.Status.Warning,
_ => Palettes.Status.Good,
};
}
}
@@ -1,3 +1,4 @@
using Content.Client.Stylesheets;
using Content.Shared.Atmos.Monitor;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
@@ -30,7 +31,10 @@ public sealed partial class ThresholdBoundControl : BoxContainer
public void SetValue(float value)
{
_value = value;
CSpinner.Value = ScaledValue;
if (!CSpinner.HasKeyboardFocus())
{
CSpinner.Value = ScaledValue;
}
}
public void SetEnabled(bool enabled)
@@ -39,11 +43,11 @@ public sealed partial class ThresholdBoundControl : BoxContainer
if (enabled)
{
CBoundLabel.RemoveStyleClass("Disabled");
CBoundLabel.RemoveStyleClass(StyleClass.LabelWeak);
}
else
{
CBoundLabel.SetOnlyStyleClass("Disabled");
CBoundLabel.SetOnlyStyleClass(StyleClass.LabelWeak);
}
}
@@ -4,7 +4,7 @@
MinSize="480 400" Title="Canister">
<BoxContainer Orientation="Vertical" Margin="5 5 5 5" SeparationOverride="10">
<BoxContainer Orientation="Vertical" VerticalExpand="True">
<Label Text="{Loc comp-gas-canister-ui-canister-status}" FontColorOverride="{x:Static s:StyleNano.NanoGold}" StyleClasses="LabelBig"/>
<Label Text="{Loc comp-gas-canister-ui-canister-status}" StyleClasses="LabelHeading"/>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc comp-gas-canister-ui-canister-pressure}"/>
<Label Name="CanisterPressureLabel" Align="Center" HorizontalExpand="True"/>
@@ -16,7 +16,7 @@
</BoxContainer>
<BoxContainer Orientation="Vertical" VerticalExpand="True">
<Label Text="{Loc comp-gas-canister-ui-holding-tank-status}" FontColorOverride="{x:Static s:StyleNano.NanoGold}" StyleClasses="LabelBig"/>
<Label Text="{Loc comp-gas-canister-ui-holding-tank-status}" StyleClasses="LabelHeading"/>
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc comp-gas-canister-ui-holding-tank-label}"/>
<Label Name="TankLabelLabel" Text="{Loc comp-gas-canister-ui-holding-tank-label-empty}" Align="Center" HorizontalExpand="True"/>
@@ -29,7 +29,7 @@
</BoxContainer>
<BoxContainer Orientation="Vertical" VerticalExpand="True">
<Label Text="{Loc comp-gas-canister-ui-release-valve-status}" FontColorOverride="{x:Static s:StyleNano.NanoGold}" StyleClasses="LabelBig"/>
<Label Text="{Loc comp-gas-canister-ui-release-valve-status}" StyleClasses="LabelHeading"/>
<BoxContainer Orientation="Horizontal">
<BoxContainer Orientation="Vertical">
<Label Text="{Loc comp-gas-canister-ui-release-pressure}"/>
@@ -58,7 +58,7 @@ public sealed class JukeboxBoundUserInterface : BoundUserInterface
_menu.SetAudioStream(jukebox.AudioStream);
if (_protoManager.TryIndex(jukebox.SelectedSongId, out var songProto))
if (_protoManager.Resolve(jukebox.SelectedSongId, out var songProto))
{
var length = EntMan.System<AudioSystem>().GetAudioLength(songProto.Path.Path.ToString());
_menu.SetSelectedSong(songProto.Name, (float) length.TotalSeconds);
@@ -1,3 +1,4 @@
using System.Linq; // DeltaV
using Content.Shared.Audio.Jukebox;
using Robust.Client.Audio;
using Robust.Client.AutoGenerated;
@@ -88,7 +89,7 @@ public sealed partial class JukeboxMenu : FancyWindow
{
MusicList.Clear();
foreach (var entry in jukeboxProtos)
foreach (var entry in jukeboxProtos.OrderBy(x => x.Name)) // DeltaV - Sort the jukebox list
{
MusicList.AddItem(entry.Name, metadata: entry.ID);
}
+1 -1
View File
@@ -39,7 +39,7 @@ public sealed class BarSignSystem : VisualizerSystem<BarSignComponent>
if (powered
&& sign.Current != null
&& _prototypeManager.TryIndex(sign.Current, out var proto))
&& _prototypeManager.Resolve(sign.Current, out var proto))
{
SpriteSystem.LayerSetSprite((id, sprite), 0, proto.Icon);
sprite.LayerSetShader(0, "unshaded");
@@ -35,7 +35,7 @@ public sealed class BarSignBoundUserInterface(EntityUid owner, Enum uiKey) : Bou
public void Update(ProtoId<BarSignPrototype>? sign)
{
if (_prototype.TryIndex(sign, out var signPrototype))
if (_prototype.Resolve(sign, out var signPrototype))
_menu?.UpdateState(signPrototype);
}
@@ -7,10 +7,7 @@
Orientation="Vertical"
HorizontalExpand="True"
Margin="0 0 0 5">
<PanelContainer>
<PanelContainer.PanelOverride>
<graphics:StyleBoxFlat BackgroundColor="{xNamespace:Static style:StyleNano.ButtonColorDisabled}" />
</PanelContainer.PanelOverride>
<PanelContainer StyleClasses="PanelDark">
<Collapsible Name="Collapsible">
<CollapsibleHeading Name="Heading" MinHeight="35"/>
<CollapsibleBody Name="Body">
@@ -14,10 +14,8 @@
<PanelContainer
VerticalExpand="True"
HorizontalExpand="True"
Margin="15">
<PanelContainer.PanelOverride>
<graphics:StyleBoxFlat BackgroundColor="{xNamespace:Static style:StyleNano.PanelDark}" />
</PanelContainer.PanelOverride>
Margin="15"
StyleClasses="PanelDark">
<ScrollContainer VerticalExpand="True" HorizontalExpand="True">
<Control>
<Label Text="{Loc 'cryostorage-ui-label-no-bodies'}" Name="EmptyLabel" HorizontalAlignment="Center" VerticalAlignment="Center"/>
@@ -1,7 +1,7 @@
<DefaultWindow
xmlns="https://spacestation14.io"
Title="{Loc 'ui-bql-results-title'}">
<BoxContainer Orientation="Vertical">
<BoxContainer Orientation="Vertical" MinSize="500 700">
<Label Name="StatusLabel" />
<ScrollContainer VerticalExpand="True">
<BoxContainer Orientation="Vertical" Name="ItemList" VerticalExpand="True" />
@@ -21,8 +21,6 @@ internal sealed partial class ToolshedVisualizeWindow : DefaultWindow
RobustXamlLoader.Load(this);
}
protected override Vector2 ContentsMinimumSize => new(500, 700);
public void Update((string name, NetEntity entity)[] entities)
{
StatusLabel.Text = _loc.GetString("ui-bql-results-status", ("count", entities.Length));
+1 -1
View File
@@ -3,7 +3,7 @@
Margin="10 10 10 0"
HorizontalExpand="True"
Visible="True">
<PanelContainer StyleClasses="AngleRect" HorizontalExpand="True">
<PanelContainer StyleClasses="BackgroundPanel" HorizontalExpand="True">
<BoxContainer Orientation="Vertical"
HorizontalExpand="True">
<BoxContainer Orientation="Horizontal">
+1 -1
View File
@@ -29,7 +29,7 @@ public sealed partial class BountyEntry : BoxContainer
UntilNextSkip = untilNextSkip;
if (!_prototype.TryIndex<CargoBountyPrototype>(bounty.Bounty, out var bountyPrototype))
if (!_prototype.Resolve<CargoBountyPrototype>(bounty.Bounty, out var bountyPrototype))
return;
var items = new List<string>();
@@ -19,7 +19,7 @@ public sealed partial class BountyHistoryEntry : BoxContainer
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
if (!_prototype.TryIndex(bounty.Bounty, out var bountyPrototype))
if (!_prototype.Resolve(bounty.Bounty, out var bountyPrototype))
return;
var items = new List<string>();
@@ -206,7 +206,7 @@ namespace Content.Client.Cargo.UI
if (!_orderConsoleQuery.TryComp(_owner, out var orderConsole))
return;
Requests.DisposeAllChildren();
Requests.RemoveAllChildren();
foreach (var order in orders)
{
@@ -30,7 +30,7 @@ namespace Content.Client.Cargo.UI
public void SetOrders(SpriteSystem sprites, IPrototypeManager protoManager, List<CargoOrderData> orders)
{
Orders.DisposeAllChildren();
Orders.RemoveAllChildren();
foreach (var order in orders)
{
@@ -1,4 +1,4 @@
using Content.Client.CrewManifest.UI;
using Content.Client.CrewManifest.UI;
using Content.Shared.CrewManifest;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
@@ -21,7 +21,6 @@ public sealed partial class CrewManifestUiFragment : BoxContainer
public void UpdateState(string stationName, CrewManifestEntries? entries)
{
CrewManifestListing.DisposeAllChildren();
CrewManifestListing.RemoveAllChildren();
StationNameContainer.Visible = entries != null;
@@ -1,8 +1,11 @@
using Content.Client.Message;
using Content.Client.UserInterface.RichText; // DeltaV - Sanitize markup; see https://github.com/space-wizards/space-station-14/pull/41799
using Content.Shared.MassMedia.Systems;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.RichText; // DeltaV - Sanitize markup; see https://github.com/space-wizards/space-station-14/pull/41799
using Robust.Client.UserInterface.XAML;
using Robust.Shared.Utility; // DeltaV - Sanitize markup; see https://github.com/space-wizards/space-station-14/pull/41799
namespace Content.Client.CartridgeLoader.Cartridges;
@@ -14,6 +17,18 @@ public sealed partial class NewsReaderUiFragment : BoxContainer
public event Action? OnNotificationSwithPressed;
// DeltaV - Sanitize markup; see https://github.com/space-wizards/space-station-14/pull/41799
private static readonly Type[] AllowedTags =
[
typeof(BoldItalicTag),
typeof(BoldTag),
typeof(BulletTag),
typeof(ColorTag),
typeof(HeadingTag),
typeof(ItalicTag),
typeof(MonoTag),
];
public NewsReaderUiFragment()
{
RobustXamlLoader.Load(this);
@@ -31,16 +46,17 @@ public sealed partial class NewsReaderUiFragment : BoxContainer
Author.Visible = true;
PageName.Text = article.Title;
PageText.SetMarkupPermissive(article.Content);
PageText.SetMessage(FormattedMessage.FromMarkupPermissive(article.Content), AllowedTags); // DeltaV - Sanitize markup; see https://github.com/space-wizards/space-station-14/pull/41799
PageNum.Text = $"{targetNum}/{totalNum}";
NotificationSwitch.Text = Loc.GetString(notificationOn ? "news-read-ui-notification-on" : "news-read-ui-notification-off");
string shareTime = article.ShareTime.ToString(@"hh\:mm\:ss");
var shareTime = article.ShareTime.ToString(@"hh\:mm\:ss");
ShareTime.SetMarkup(Loc.GetString("news-read-ui-time-prefix-text") + " " + shareTime);
Author.SetMarkup(Loc.GetString("news-read-ui-author-prefix") + " " + (article.Author != null ? article.Author : Loc.GetString("news-read-ui-no-author")));
var author = Loc.GetString("news-read-ui-author-prefix") + " " + (article.Author ?? Loc.GetString("news-read-ui-no-author")); // DeltaV - Sanitize markup; see https://github.com/space-wizards/space-station-14/pull/41799
Author.SetMessage(FormattedMessage.FromMarkupPermissive(author), AllowedTags); // DeltaV - Sanitize markup; see https://github.com/space-wizards/space-station-14/pull/41799
Prev.Disabled = targetNum <= 1;
Next.Disabled = targetNum >= totalNum;
@@ -1,4 +1,7 @@
using Content.Shared.Changeling.Systems;
using Content.Client.Stylesheets.Palette;
using Content.Client.UserInterface.Controls;
using Content.Shared.Changeling.Components;
using Content.Shared.Changeling.Systems;
using JetBrains.Annotations;
using Robust.Client.UserInterface;
@@ -7,28 +10,58 @@ namespace Content.Client.Changeling.UI;
[UsedImplicitly]
public sealed partial class ChangelingTransformBoundUserInterface(EntityUid owner, Enum uiKey) : BoundUserInterface(owner, uiKey)
{
private ChangelingTransformMenu? _window;
private SimpleRadialMenu? _menu;
private static readonly Color SelectedOptionBackground = Palettes.Green.Element.WithAlpha(128);
private static readonly Color SelectedOptionHoverBackground = Palettes.Green.HoveredElement.WithAlpha(128);
protected override void Open()
{
base.Open();
_window = this.CreateWindow<ChangelingTransformMenu>();
_window.OnIdentitySelect += SendIdentitySelect;
_window.Update(Owner);
_menu = this.CreateWindow<SimpleRadialMenu>();
Update();
_menu.OpenOverMouseScreenPosition();
}
public override void Update()
{
if (_window == null)
if (_menu == null)
return;
_window.Update(Owner);
if (!EntMan.TryGetComponent<ChangelingIdentityComponent>(Owner, out var lingIdentity))
return;
var models = ConvertToButtons(lingIdentity.ConsumedIdentities, lingIdentity?.CurrentIdentity);
_menu.SetButtons(models);
}
public void SendIdentitySelect(NetEntity identityId)
private IEnumerable<RadialMenuOptionBase> ConvertToButtons(
IEnumerable<EntityUid> identities,
EntityUid? currentIdentity
)
{
var buttons = new List<RadialMenuOptionBase>();
foreach (var identity in identities)
{
if (!EntMan.TryGetComponent<MetaDataComponent>(identity, out var metadata))
continue;
var option = new RadialMenuActionOption<NetEntity>(SendIdentitySelect, EntMan.GetNetEntity(identity))
{
IconSpecifier = RadialMenuIconSpecifier.With(identity),
ToolTip = metadata.EntityName,
BackgroundColor = (currentIdentity == identity) ? SelectedOptionBackground : null,
HoverBackgroundColor = (currentIdentity == identity) ? SelectedOptionHoverBackground : null
};
buttons.Add(option);
}
return buttons;
}
private void SendIdentitySelect(NetEntity identityId)
{
SendPredictedMessage(new ChangelingTransformIdentitySelectMessage(identityId));
}
@@ -1,8 +0,0 @@
<ui:RadialMenu
xmlns:ui="clr-namespace:Content.Client.UserInterface.Controls"
CloseButtonStyleClass="RadialMenuCloseButton"
VerticalExpand="True"
HorizontalExpand="True">
<ui:RadialContainer Name="Main">
</ui:RadialContainer>
</ui:RadialMenu>
@@ -1,62 +0,0 @@
using System.Numerics;
using Content.Client.UserInterface.Controls;
using Content.Shared.Changeling.Components;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.Changeling.UI;
[GenerateTypedNameReferences]
public sealed partial class ChangelingTransformMenu : RadialMenu
{
[Dependency] private readonly IEntityManager _entity = default!;
public event Action<NetEntity>? OnIdentitySelect;
public ChangelingTransformMenu()
{
RobustXamlLoader.Load(this);
IoCManager.InjectDependencies(this);
}
public void Update(EntityUid uid)
{
Main.DisposeAllChildren();
if (!_entity.TryGetComponent<ChangelingIdentityComponent>(uid, out var identityComp))
return;
foreach (var identityUid in identityComp.ConsumedIdentities)
{
if (!_entity.TryGetComponent<MetaDataComponent>(identityUid, out var metadata))
continue;
var identityName = metadata.EntityName;
var button = new ChangelingTransformMenuButton()
{
StyleClasses = { "RadialMenuButton" },
SetSize = new Vector2(64, 64),
ToolTip = identityName,
};
var entView = new SpriteView()
{
SetSize = new Vector2(48, 48),
VerticalAlignment = VAlignment.Center,
HorizontalAlignment = HAlignment.Center,
Stretch = SpriteView.StretchMode.Fill,
};
entView.SetEntity(identityUid);
button.OnButtonUp += _ =>
{
OnIdentitySelect?.Invoke(_entity.GetNetEntity(identityUid));
Close();
};
button.AddChild(entView);
Main.AddChild(button);
}
}
}
public sealed class ChangelingTransformMenuButton : RadialMenuTextureButtonWithSector;
+2 -2
View File
@@ -36,12 +36,12 @@ namespace Content.Client.Changelog
if (_changelogManager.NewChangelogEntries)
{
Text = Loc.GetString("changelog-button-new-entries");
StyleClasses.Add(StyleBase.ButtonCaution);
StyleClasses.Add(StyleClass.Negative);
}
else
{
Text = Loc.GetString("changelog-button");
StyleClasses.Remove(StyleBase.ButtonCaution);
StyleClasses.Remove(StyleClass.Negative);
}
}
}
@@ -52,6 +52,7 @@ namespace Content.Client.Changelog
// Open changelog purely to compare to the last viewed date.
var changelogs = await LoadChangelog();
UpdateChangelogs(changelogs);
_configManager.OnValueChanged(CCVars.ServerId, OnServerIdCVarChanged);
}
private void UpdateChangelogs(List<Changelog> changelogs)
@@ -81,6 +82,11 @@ namespace Content.Client.Changelog
MaxId = changelog.Entries.Max(c => c.Id);
CheckLastSeenEntry();
}
private void CheckLastSeenEntry()
{
var path = new ResPath($"/changelog_last_seen_{_configManager.GetCVar(CCVars.ServerId)}");
if (_resource.UserData.TryReadAllText(path, out var lastReadIdText))
{
@@ -92,6 +98,11 @@ namespace Content.Client.Changelog
NewChangelogEntriesChanged?.Invoke();
}
private void OnServerIdCVarChanged(string newValue)
{
CheckLastSeenEntry();
}
public Task<List<Changelog>> LoadChangelog()
{
return Task.Run(() =>
@@ -58,7 +58,7 @@ public sealed partial class ChangelogTab : Control
ChangelogBody.AddChild(new Label
{
Text = dayNice,
StyleClasses = { StyleBase.StyleClassLabelHeading },
StyleClasses = { StyleClass.LabelHeading },
Margin = new Thickness(4, 6, 0, 0)
});
@@ -117,7 +117,7 @@ public sealed partial class ChangelogTab : Control
};
readDivider.AddChild(hBox);
readDivider.AddChild(new PanelContainer { StyleClasses = { StyleBase.ClassLowDivider } });
readDivider.AddChild(new PanelContainer { StyleClasses = { StyleClass.LowDivider } });
ChangelogBody.AddChild(readDivider);
if (first)
@@ -2,8 +2,9 @@
xmlns:ui="clr-namespace:Content.Client.Changelog"
Title="{Loc 'changelog-window-title'}"
MinSize="500 400"
SetSize="500 400">
<PanelContainer StyleClasses="AngleRect" />
SetSize="500 400"
Stylesheet="Interface">
<PanelContainer StyleClasses="BackgroundPanel" />
<BoxContainer Orientation="Vertical">
<TabContainer Name="Tabs" Access="Public" HorizontalExpand="True" VerticalExpand="True" />
<PanelContainer StyleClasses="LowDivider" />
@@ -21,8 +21,7 @@ namespace Content.Client.Changelog
public ChangelogWindow()
{
RobustXamlLoader.Load(this);
WindowTitle.AddStyleClass(StyleBase.StyleClassLabelHeading);
Stylesheet = IoCManager.Resolve<IStylesheetManager>().SheetSpace;
WindowTitle.AddStyleClass(StyleClass.LabelHeading);
}
protected override void Opened()
@@ -55,7 +54,7 @@ namespace Content.Client.Changelog
// Changelog is not kept in memory so load it again.
var changelogs = await _changelog.LoadChangelog();
Tabs.DisposeAllChildren();
Tabs.RemoveAllChildren();
var i = 0;
foreach (var changelog in changelogs)
@@ -32,6 +32,11 @@ internal sealed class ChatManager : IChatManager
// See server-side manager. This just exists for shared code.
}
public void SendAdminAlertNoFormatOrEscape(string message)
{
// See server-side manager. This just exists for shared code.
}
public void SendMessage(string text, ChatSelectChannel channel)
{
var str = text.ToString();
@@ -35,7 +35,7 @@ public sealed class TypingIndicatorVisualizerSystem : VisualizerSystem<TypingInd
}
// End DeltaV Additions
if (!_prototypeManager.TryIndex(currentTypingIndicator, out var proto))
if (!_prototypeManager.Resolve(currentTypingIndicator, out var proto))
{
Log.Error($"Unknown typing indicator id: {component.TypingIndicatorPrototype}");
return;
@@ -45,7 +45,7 @@ public sealed class TypingIndicatorVisualizerSystem : VisualizerSystem<TypingInd
if (!layerExists)
layer = SpriteSystem.LayerMapReserve((uid, args.Sprite), TypingIndicatorLayers.Base);
SpriteSystem.LayerSetRsi((uid, args.Sprite), layer, proto.SpritePath, proto.TypingState); // DeltaV - Combine path and state calls to avoid missing state error on alternate indicators
SpriteSystem.LayerSetRsi((uid, args.Sprite), layer, proto.SpritePath, proto.TypingState);
args.Sprite.LayerSetShader(layer, proto.Shader);
SpriteSystem.LayerSetOffset((uid, args.Sprite), layer, proto.Offset);
@@ -1,16 +0,0 @@
using Content.Client.Chemistry.UI;
using Content.Client.Items;
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.EntitySystems;
namespace Content.Client.Chemistry.EntitySystems;
public sealed class HyposprayStatusControlSystem : EntitySystem
{
[Dependency] private readonly SharedSolutionContainerSystem _solutionContainers = default!;
public override void Initialize()
{
base.Initialize();
Subs.ItemStatus<HyposprayComponent>(ent => new HyposprayStatusControl(ent, _solutionContainers));
}
}
@@ -0,0 +1,20 @@
using Content.Client.Chemistry.UI;
using Content.Client.Items;
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.EntitySystems;
using Robust.Shared.Prototypes;
namespace Content.Client.Chemistry.EntitySystems;
public sealed class InjectorStatusControlSystem : EntitySystem
{
[Dependency] private readonly SharedSolutionContainerSystem _solutionContainers = default!;
[Dependency] private readonly IPrototypeManager _prototypeManager = default!;
public override void Initialize()
{
base.Initialize();
Subs.ItemStatus<InjectorComponent>(injector => new InjectorStatusControl(injector, _solutionContainers, _prototypeManager));
}
}
@@ -1,16 +0,0 @@
using Content.Client.Chemistry.UI;
using Content.Client.Items;
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.EntitySystems;
namespace Content.Client.Chemistry.EntitySystems;
public sealed class InjectorSystem : SharedInjectorSystem
{
public override void Initialize()
{
base.Initialize();
Subs.ItemStatus<InjectorComponent>(ent => new InjectorStatusControl(ent, SolutionContainer));
}
}
@@ -33,10 +33,10 @@
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc 'chem-master-window-buffer-text'}" />
<Control HorizontalExpand="True" />
<Button MinSize="80 0" Margin="0 0 10 0" Name="BufferSortButton" Access="Public" Text="{Loc 'chem-master-window-sort-type-none'}" />
<!-- DeltaV - Removed discarding
<Button MinSize="80 0" Name="BufferTransferButton" Access="Public" Text="{Loc 'chem-master-window-transfer-button'}" ToggleMode="True" StyleClasses="OpenRight" />
-->
<Button MinSize="80 0" Name="BufferSortButton" Access="Public" Text="{Loc 'chem-master-window-sort-type-none'}" StyleClasses="OpenBoth" />
<!-- DeltaV - Removed discarding
<Button MinSize="80 0" Name="BufferDiscardButton" Access="Public" Text="{Loc 'chem-master-window-discard-button'}" ToggleMode="True" StyleClasses="OpenLeft" />
-->
@@ -86,7 +86,7 @@
<Label Text="{Loc 'chem-master-window-packaging-text'}" />
<Control HorizontalExpand="True"/>
<Label Text="{Loc 'chem-master-window-container-label'}" /> <!-- DeltaV-->
<Label Name="BufferCurrentVolume" StyleClasses="LabelSecondaryColor" />
<Label Name="BufferCurrentVolume" StyleClasses="LabelWeak" />
</BoxContainer>
<!-- Wrap the packaging info-->
@@ -116,9 +116,9 @@
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc 'chem-master-window-pills-label'}" />
<Control HorizontalExpand="True" MinSize="50 0" />
<Label Text="{Loc 'chem-master-window-pills-number-label'}" Margin="5 0 0 0" StyleClasses="LabelSecondaryColor" />
<Label Text="{Loc 'chem-master-window-pills-number-label'}" Margin="5 0 0 0" StyleClasses="LabelWeak" />
<SpinBox MinSize="100 0" Name="PillNumber" Access="Public" Value="0" />
<Label Text="{Loc 'chem-master-window-dose-label'}" Margin="5 0 0 0" StyleClasses="LabelSecondaryColor" />
<Label Text="{Loc 'chem-master-window-dose-label'}" Margin="5 0 0 0" StyleClasses="LabelWeak" />
<SpinBox MinSize="100 0" Name="PillDosage" Access="Public" Value="1" />
<Button MinSize="80 0" Name="CreatePillButton" Access="Public" Text="{Loc 'chem-master-window-create-button'}" />
</BoxContainer>
@@ -126,7 +126,7 @@
<BoxContainer Orientation="Horizontal">
<Label Text="{Loc 'chem-master-window-bottles-label'}" />
<Control HorizontalExpand="True" MinSize="50 0" />
<Label Text="{Loc 'chem-master-window-dose-label'}" Margin="5 0 0 0" StyleClasses="LabelSecondaryColor" />
<Label Text="{Loc 'chem-master-window-dose-label'}" Margin="5 0 0 0" StyleClasses="LabelWeak" />
<SpinBox MinSize="100 0" Name="BottleDosage" Access="Public" Value="0" />
<Button MinSize="80 0" Name="CreateBottleButton" Access="Public" Text="{Loc 'chem-master-window-create-button'}" />
</BoxContainer>
@@ -53,14 +53,14 @@ namespace Content.Client.Chemistry.UI
{
// For every button decide which stylebase to have
// Every row has 10 buttons
String styleBase = StyleBase.ButtonOpenBoth;
String styleBase = StyleClass.ButtonOpenBoth;
uint modulo = i % 10;
if (i > 0 && modulo == 0)
styleBase = StyleBase.ButtonOpenRight;
styleBase = StyleClass.ButtonOpenRight;
else if (i > 0 && modulo == 9)
styleBase = StyleBase.ButtonOpenLeft;
styleBase = StyleClass.ButtonOpenLeft;
else if (i == 0)
styleBase = StyleBase.ButtonOpenRight;
styleBase = StyleClass.ButtonOpenRight;
// Generate buttons
PillTypeButtons[i] = new Button
@@ -113,13 +113,16 @@ namespace Content.Client.Chemistry.UI
var buttonConfigs = new (string text, ChemMasterReagentAmount amount, string styleClass)[]
{
("1", ChemMasterReagentAmount.U1, StyleBase.ButtonOpenBoth),
("5", ChemMasterReagentAmount.U5, StyleBase.ButtonOpenBoth),
("10", ChemMasterReagentAmount.U10, StyleBase.ButtonOpenBoth),
("25", ChemMasterReagentAmount.U25, StyleBase.ButtonOpenBoth),
("50", ChemMasterReagentAmount.U50, StyleBase.ButtonOpenBoth),
("100", ChemMasterReagentAmount.U100, StyleBase.ButtonOpenBoth),
(Loc.GetString("chem-master-window-buffer-all-amount"), ChemMasterReagentAmount.All, StyleBase.ButtonOpenLeft),
("1", ChemMasterReagentAmount.U1, StyleClass.ButtonOpenBoth),
("5", ChemMasterReagentAmount.U5, StyleClass.ButtonOpenBoth),
("10", ChemMasterReagentAmount.U10, StyleClass.ButtonOpenBoth),
("15", ChemMasterReagentAmount.U15, StyleClass.ButtonOpenBoth),
("20", ChemMasterReagentAmount.U20, StyleClass.ButtonOpenBoth),
("25", ChemMasterReagentAmount.U25, StyleClass.ButtonOpenBoth),
("30", ChemMasterReagentAmount.U30, StyleClass.ButtonOpenBoth),
("50", ChemMasterReagentAmount.U50, StyleClass.ButtonOpenBoth),
("100", ChemMasterReagentAmount.U100, StyleClass.ButtonOpenBoth),
(Loc.GetString("chem-master-window-buffer-all-amount"), ChemMasterReagentAmount.All, StyleClass.ButtonOpenLeft),
};
var buttons = new List<ReagentButton>();
@@ -246,7 +249,7 @@ namespace Content.Client.Chemistry.UI
var bufferVol = new Label
{
Text = $"{state.BufferCurrentVolume}u",
StyleClasses = { StyleNano.StyleClassLabelSecondaryColor }
StyleClasses = { StyleClass.LabelWeak }
};
bufferHBox.AddChild(bufferVol);
@@ -315,7 +318,7 @@ namespace Content.Client.Chemistry.UI
new Label
{
Text = $"{info.CurrentVolume}/{info.MaxVolume}",
StyleClasses = { StyleNano.StyleClassLabelSecondaryColor }
StyleClasses = { StyleClass.LabelWeak }
}
}
});
@@ -370,7 +373,7 @@ namespace Content.Client.Chemistry.UI
new Label
{
Text = $"{quantity}u",
StyleClasses = { StyleNano.StyleClassLabelSecondaryColor }
StyleClasses = { StyleClass.LabelWeak }
},
// Padding
@@ -1,58 +0,0 @@
using Content.Client.Message;
using Content.Client.Stylesheets;
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.EntitySystems;
using Content.Shared.FixedPoint;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.Timing;
namespace Content.Client.Chemistry.UI;
public sealed class HyposprayStatusControl : Control
{
private readonly Entity<HyposprayComponent> _parent;
private readonly RichTextLabel _label;
private readonly SharedSolutionContainerSystem _solutionContainers;
private FixedPoint2 PrevVolume;
private FixedPoint2 PrevMaxVolume;
private bool PrevOnlyAffectsMobs;
public HyposprayStatusControl(Entity<HyposprayComponent> parent, SharedSolutionContainerSystem solutionContainers)
{
_parent = parent;
_solutionContainers = solutionContainers;
_label = new RichTextLabel { StyleClasses = { StyleNano.StyleClassItemStatus } };
AddChild(_label);
}
protected override void FrameUpdate(FrameEventArgs args)
{
base.FrameUpdate(args);
if (!_solutionContainers.TryGetSolution(_parent.Owner, _parent.Comp.SolutionName, out _, out var solution))
return;
// only updates the UI if any of the details are different than they previously were
if (PrevVolume == solution.Volume
&& PrevMaxVolume == solution.MaxVolume
&& PrevOnlyAffectsMobs == _parent.Comp.OnlyAffectsMobs)
return;
PrevVolume = solution.Volume;
PrevMaxVolume = solution.MaxVolume;
PrevOnlyAffectsMobs = _parent.Comp.OnlyAffectsMobs;
var modeStringLocalized = Loc.GetString((_parent.Comp.OnlyAffectsMobs && _parent.Comp.CanContainerDraw) switch
{
false => "hypospray-all-mode-text",
true => "hypospray-mobs-only-mode-text",
});
_label.SetMarkup(Loc.GetString("hypospray-volume-label",
("currentVolume", solution.Volume),
("totalVolume", solution.MaxVolume),
("modeString", modeStringLocalized)));
}
}
@@ -2,29 +2,35 @@ using Content.Client.Message;
using Content.Client.Stylesheets;
using Content.Shared.Chemistry.Components;
using Content.Shared.Chemistry.EntitySystems;
using Content.Shared.Chemistry.Prototypes;
using Content.Shared.FixedPoint;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.Prototypes;
using Robust.Shared.Timing;
namespace Content.Client.Chemistry.UI;
public sealed class InjectorStatusControl : Control
{
private readonly IPrototypeManager _prototypeManager;
private readonly Entity<InjectorComponent> _parent;
private readonly SharedSolutionContainerSystem _solutionContainers;
private readonly RichTextLabel _label;
private FixedPoint2 PrevVolume;
private FixedPoint2 PrevMaxVolume;
private FixedPoint2 PrevTransferAmount;
private InjectorToggleMode PrevToggleState;
private FixedPoint2 _prevVolume;
private FixedPoint2 _prevMaxVolume;
private FixedPoint2? _prevTransferAmount;
private InjectorBehavior _prevBehavior;
public InjectorStatusControl(Entity<InjectorComponent> parent, SharedSolutionContainerSystem solutionContainers)
public InjectorStatusControl(Entity<InjectorComponent> parent, SharedSolutionContainerSystem solutionContainers, IPrototypeManager prototypeManager)
{
_prototypeManager = prototypeManager;
_parent = parent;
_solutionContainers = solutionContainers;
_label = new RichTextLabel { StyleClasses = { StyleNano.StyleClassItemStatus } };
_label = new RichTextLabel { StyleClasses = { StyleClass.ItemStatus } };
AddChild(_label);
}
@@ -32,33 +38,38 @@ public sealed class InjectorStatusControl : Control
{
base.FrameUpdate(args);
if (!_solutionContainers.TryGetSolution(_parent.Owner, _parent.Comp.SolutionName, out _, out var solution))
if (!_solutionContainers.TryGetSolution(_parent.Owner, _parent.Comp.SolutionName, out _, out var solution)
|| !_prototypeManager.Resolve(_parent.Comp.ActiveModeProtoId, out var activeMode))
return;
// only updates the UI if any of the details are different than they previously were
if (PrevVolume == solution.Volume
&& PrevMaxVolume == solution.MaxVolume
&& PrevTransferAmount == _parent.Comp.CurrentTransferAmount
&& PrevToggleState == _parent.Comp.ToggleState)
if (_prevVolume == solution.Volume
&& _prevMaxVolume == solution.MaxVolume
&& _prevTransferAmount == _parent.Comp.CurrentTransferAmount
&& _prevBehavior == activeMode.Behavior)
return;
PrevVolume = solution.Volume;
PrevMaxVolume = solution.MaxVolume;
PrevTransferAmount = _parent.Comp.CurrentTransferAmount;
PrevToggleState = _parent.Comp.ToggleState;
_prevVolume = solution.Volume;
_prevMaxVolume = solution.MaxVolume;
_prevTransferAmount = _parent.Comp.CurrentTransferAmount;
_prevBehavior = activeMode.Behavior;
// Update current volume and injector state
var modeStringLocalized = Loc.GetString(_parent.Comp.ToggleState switch
// Seeing transfer volume is only important for injectors that can change it.
if (activeMode.TransferAmounts.Count > 1 && _parent.Comp.CurrentTransferAmount.HasValue)
{
InjectorToggleMode.Draw => "injector-draw-text",
InjectorToggleMode.Inject => "injector-inject-text",
_ => "injector-invalid-injector-toggle-mode"
});
_label.SetMarkup(Loc.GetString("injector-volume-label",
("currentVolume", solution.Volume),
("totalVolume", solution.MaxVolume),
("modeString", modeStringLocalized),
("transferVolume", _parent.Comp.CurrentTransferAmount)));
_label.SetMarkup(Loc.GetString("injector-volume-transfer-label",
("currentVolume", solution.Volume),
("totalVolume", solution.MaxVolume),
("modeString", Loc.GetString(activeMode.Name)),
("transferVolume", _parent.Comp.CurrentTransferAmount.Value)));
}
else
{
_label.SetMarkup(Loc.GetString("injector-volume-label",
("currentVolume", solution.Volume),
("totalVolume", solution.MaxVolume),
("modeString", Loc.GetString(activeMode.Name))));
}
}
}
@@ -107,7 +107,7 @@ namespace Content.Client.Chemistry.UI
var quantityLabel = new Label
{
Text = Loc.GetString("reagent-dispenser-window-quantity-label-text", ("quantity", quantity)),
StyleClasses = { StyleNano.StyleClassLabelSecondaryColor },
StyleClasses = { StyleClass.LabelWeak },
};
ContainerInfo.Children.Add(new BoxContainer
@@ -29,7 +29,7 @@ public sealed class SolutionStatusControl : PollingItemStatusControl<SolutionSta
_parent = parent;
_entityManager = entityManager;
_solutionContainers = solutionContainers;
_label = new RichTextLabel { StyleClasses = { StyleNano.StyleClassItemStatus } };
_label = new RichTextLabel { StyleClasses = { StyleClass.ItemStatus } };
AddChild(_label);
}
@@ -17,7 +17,7 @@ namespace Content.Client.Cloning.UI
Title = Loc.GetString("accept-cloning-window-title");
Contents.AddChild(new BoxContainer
ContentsContainer.AddChild(new BoxContainer
{
Orientation = LayoutOrientation.Vertical,
Children =
@@ -45,7 +45,7 @@ public sealed class ChameleonBoundUserInterface : BoundUserInterface
var newTargets = new List<EntProtoId>();
foreach (var target in targets)
{
if (string.IsNullOrEmpty(target) || !_proto.TryIndex(target, out EntityPrototype? proto))
if (string.IsNullOrEmpty(target) || !_proto.Resolve(target, out EntityPrototype? proto))
continue;
if (!proto.TryGetComponent(out TagComponent? tag, EntMan.ComponentFactory) || !_tag.HasTag(tag, st.RequiredTag))
@@ -58,6 +58,13 @@ public sealed class ChameleonBoundUserInterface : BoundUserInterface
{
_menu?.UpdateState(targets, st.SelectedId);
}
// Begin Delta-V: Override for the name of the chameleon stuff, so you can have items use the chameleon system without being illegal.
if (_menu is { } menu && EntMan.TryGetComponent<ChameleonClothingComponent>(Owner, out var chameleon) && chameleon.WindowTitleOverride is { } titleOverride)
{
_menu.Title = Loc.GetString(titleOverride);
}
// End Delta-V
}
private void OnIdSelected(string selectedId)
@@ -54,7 +54,7 @@ public sealed partial class ChameleonMenu : DefaultWindow
foreach (var id in _possibleIds)
{
if (!_prototypeManager.TryIndex(id, out EntityPrototype? proto))
if (!_prototypeManager.Resolve(id, out EntityPrototype? proto))
continue;
var lowId = id.Id.ToLowerInvariant();
@@ -67,7 +67,7 @@ public sealed partial class ChameleonMenu : DefaultWindow
MinSize = new Vector2(48, 48),
HorizontalExpand = true,
Group = group,
StyleClasses = {StyleBase.ButtonSquare},
StyleClasses = {StyleClass.ButtonSquare},
ToggleMode = true,
Pressed = _selectedId == id,
ToolTip = proto.Name
@@ -68,7 +68,7 @@ namespace Content.Client.Configurable.UI
outerColumn.AddChild(Column);
baseContainer.AddChild(outerColumn);
baseContainer.AddChild(confirmButton);
Contents.AddChild(baseContainer);
ContentsContainer.AddChild(baseContainer);
}
private void OnConfirm(ButtonEventArgs args)
@@ -80,7 +80,7 @@ namespace Content.Client.Construction
{
foreach (var constructionProto in PrototypeManager.EnumeratePrototypes<ConstructionPrototype>())
{
if (!PrototypeManager.TryIndex(constructionProto.Graph, out var graphProto))
if (!PrototypeManager.Resolve(constructionProto.Graph, out var graphProto))
continue;
if (constructionProto.TargetNode is not { } targetNodeId)
@@ -121,17 +121,14 @@ namespace Content.Client.Construction
// If we got the id of the prototype, we exit the “recursion” by clearing the stack.
stack.Clear();
if (!PrototypeManager.TryIndex(constructionProto.ID, out ConstructionPrototype? recipe))
if (!PrototypeManager.Resolve(entityId, out var proto))
continue;
if (!PrototypeManager.TryIndex(entityId, out var proto))
continue;
var name = constructionProto.SetName.HasValue ? Loc.GetString(constructionProto.SetName) : proto.Name;
var desc = constructionProto.SetDescription.HasValue ? Loc.GetString(constructionProto.SetDescription) : proto.Description;
var name = recipe.SetName.HasValue ? Loc.GetString(recipe.SetName) : proto.Name;
var desc = recipe.SetDescription.HasValue ? Loc.GetString(recipe.SetDescription) : proto.Description;
recipe.Name = name;
recipe.Description = desc;
constructionProto.Name = name;
constructionProto.Description = desc;
_recipesMetadataCache.Add(constructionProto.ID, entityId);
} while (stack.Count > 0);
@@ -172,7 +169,7 @@ namespace Content.Client.Construction
"construction-ghost-examine-message",
("name", component.Prototype.Name)));
if (!PrototypeManager.TryIndex(component.Prototype.Graph, out var graph))
if (!PrototypeManager.Resolve(component.Prototype.Graph, out var graph))
return;
var startNode = graph.Nodes[component.Prototype.StartNode];
@@ -510,7 +510,7 @@ namespace Content.Client.Construction.UI
foreach (var id in favorites)
{
if (_prototypeManager.TryIndex(id, out ConstructionPrototype? recipe, logError: false))
if (_prototypeManager.TryIndex(id, out ConstructionPrototype? recipe))
_favoritedRecipes.Add(recipe);
}
@@ -13,7 +13,8 @@
Name="IconLabel"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
StyleClasses="contextMenuIconLabel"
StyleClasses="LabelSubText"
Align="Right"
Visible="false"/>
</SpriteView>
<RichTextLabel
@@ -16,7 +16,6 @@ namespace Content.Client.ContextMenu.UI
{
public const string StyleClassContextMenuButton = "contextMenuButton";
public const string StyleClassContextMenuExpansionTexture = "contextMenuExpansionTexture";
public const string StyleClassEntityMenuIconLabel = "contextMenuIconLabel";
public const float ElementMargin = 2;
public const float ElementHeight = 32;
@@ -95,7 +95,7 @@ namespace Content.Client.ContextMenu.UI
/// </summary>
public void Close()
{
RootMenu.MenuBody.DisposeAllChildren();
RootMenu.MenuBody.RemoveAllChildren();
CancelOpen?.Cancel();
CancelClose?.Cancel();
OnContextClosed?.Invoke();
@@ -293,7 +293,7 @@ namespace Content.Client.ContextMenu.UI
var element = new EntityMenuElement(entity);
element.SubMenu = new ContextMenuPopup(_context, element);
element.SubMenu.OnPopupOpen += () => _verb.OpenVerbMenu(entity, popup: element.SubMenu);
element.SubMenu.OnPopupHide += element.SubMenu.MenuBody.DisposeAllChildren;
element.SubMenu.OnPopupHide += element.SubMenu.MenuBody.RemoveAllChildren;
_context.AddElement(menu, element);
Elements.TryAdd(entity, element);
}
-14
View File
@@ -1,14 +0,0 @@
using Content.Shared.Crayon;
using Robust.Shared.GameObjects;
using Robust.Shared.ViewVariables;
namespace Content.Client.Crayon
{
[RegisterComponent]
public sealed partial class CrayonComponent : SharedCrayonComponent
{
[ViewVariables(VVAccess.ReadWrite)] public bool UIUpdateNeeded;
[ViewVariables] public int Charges { get; set; }
[ViewVariables] public int Capacity { get; set; }
}
}
+21 -37
View File
@@ -1,78 +1,62 @@
using Content.Client.Items;
using Content.Client.Message;
using Content.Client.Stylesheets;
using Content.Shared.Charges.Components;
using Content.Shared.Charges.Systems;
using Content.Shared.Crayon;
using Robust.Client.UserInterface;
using Robust.Client.UserInterface.Controls;
using Robust.Shared.GameObjects;
using Robust.Shared.GameStates;
using Robust.Shared.Localization;
using Robust.Shared.Timing;
namespace Content.Client.Crayon;
public sealed class CrayonSystem : SharedCrayonSystem
{
// Didn't do in shared because I don't think most of the server stuff can be predicted.
[Dependency] private readonly SharedChargesSystem _charges = default!;
[Dependency] private readonly EntityManager _entityManager = default!;
public override void Initialize()
{
base.Initialize();
SubscribeLocalEvent<CrayonComponent, ComponentHandleState>(OnCrayonHandleState);
Subs.ItemStatus<CrayonComponent>(ent => new StatusControl(ent));
}
private static void OnCrayonHandleState(EntityUid uid, CrayonComponent component, ref ComponentHandleState args)
{
if (args.Current is not CrayonComponentState state) return;
component.Color = state.Color;
component.SelectedState = state.State;
component.Charges = state.Charges;
component.Capacity = state.Capacity;
component.UIUpdateNeeded = true;
Subs.ItemStatus<CrayonComponent>(ent => new StatusControl(ent, _charges, _entityManager));
}
private sealed class StatusControl : Control
{
private readonly CrayonComponent _parent;
private readonly Entity<CrayonComponent> _crayon;
private readonly SharedChargesSystem _charges;
private readonly RichTextLabel _label;
private readonly int _capacity;
public StatusControl(CrayonComponent parent)
public StatusControl(Entity<CrayonComponent> crayon, SharedChargesSystem charges, EntityManager entityManage)
{
_parent = parent;
_label = new RichTextLabel { StyleClasses = { StyleNano.StyleClassItemStatus } };
_crayon = crayon;
_charges = charges;
_capacity = entityManage.GetComponent<LimitedChargesComponent>(_crayon.Owner).MaxCharges;
_label = new RichTextLabel { StyleClasses = { StyleClass.ItemStatus } };
AddChild(_label);
parent.UIUpdateNeeded = true;
}
protected override void FrameUpdate(FrameEventArgs args)
{
base.FrameUpdate(args);
if (!_parent.UIUpdateNeeded)
{
return;
}
_parent.UIUpdateNeeded = false;
// Frontier: unlimited crayon, Delta V Port
if (_parent.Capacity == int.MaxValue)
if (_charges.GetCurrentCharges(_crayon.Owner) == int.MaxValue)
{
_label.SetMarkup(Robust.Shared.Localization.Loc.GetString("crayon-drawing-label-unlimited",
("color", _parent.Color),
("state", _parent.SelectedState)));
("color", _crayon.Comp.Color),
("state", _crayon.Comp.SelectedState)));
return;
}
// End Frontier, Delta V Port
_label.SetMarkup(Robust.Shared.Localization.Loc.GetString("crayon-drawing-label",
("color",_parent.Color),
("state",_parent.SelectedState),
("charges", _parent.Charges),
("capacity",_parent.Capacity)));
("color",_crayon.Comp.Color),
("state",_crayon.Comp.SelectedState),
("charges", _charges.GetCurrentCharges(_crayon.Owner)),
("capacity", _capacity)));
}
}
}
@@ -53,7 +53,7 @@ namespace Content.Client.Crayon.UI
private void RefreshList()
{
// Clear
Grids.DisposeAllChildren();
Grids.RemoveAllChildren();
if (_decals == null || _allDecals == null)
return;
@@ -137,7 +137,8 @@ namespace Content.Client.Crayon.UI
private void ButtonOnPressed(ButtonEventArgs obj)
{
if (obj.Button.Name == null) return;
if (obj.Button.Name == null)
return;
_selected = obj.Button.Name;
_autoSelected = null;
+5 -5
View File
@@ -103,11 +103,11 @@ public sealed partial class CreditsWindow : DefaultWindow
var container = new BoxContainer { Orientation = LayoutOrientation.Horizontal };
var previousPageButton = new Button { Text = "Previous Page" };
var previousPageButton = new Button { Text = Loc.GetString("credits-window-previous-page-button") };
previousPageButton.OnPressed +=
_ => PopulateAttributions(attributionsContainer, count - AttributionsSourcesPerPage);
var nextPageButton = new Button { Text = "Next Page" };
var nextPageButton = new Button { Text = Loc.GetString("credits-window-next-page-button") };
nextPageButton.OnPressed +=
_ => PopulateAttributions(attributionsContainer, count + AttributionsSourcesPerPage);
@@ -261,7 +261,7 @@ public sealed partial class CreditsWindow : DefaultWindow
foreach (var entry in CreditsManager.GetLicenses(_resourceManager).OrderBy(p => p.Name))
{
licensesContainer.AddChild(new Label
{ StyleClasses = { StyleBase.StyleClassLabelHeading }, Text = entry.Name });
{ StyleClasses = { StyleClass.LabelHeading }, Text = entry.Name });
// We split these line by line because otherwise
// the LGPL causes Clyde to go out of bounds in the rendering code.
@@ -302,7 +302,7 @@ public sealed partial class CreditsWindow : DefaultWindow
first = false;
patronsContainer.AddChild(new Label
{ StyleClasses = { StyleBase.StyleClassLabelHeading }, Text = $"{tier.Key}" });
{ StyleClasses = { StyleClass.LabelHeading }, Text = $"{tier.Key}" });
var msg = string.Join(", ", tier.OrderBy(p => p.Name).Select(p => p.Name));
@@ -350,7 +350,7 @@ public sealed partial class CreditsWindow : DefaultWindow
first = false;
ss14ContributorsContainer.AddChild(new Label
{ StyleClasses = { StyleBase.StyleClassLabelHeading }, Text = title });
{ StyleClasses = { StyleClass.LabelHeading }, Text = title });
var label = new RichTextLabel();
var text = _resourceManager.ContentFileReadAllText($"/Credits/{path}");
@@ -18,7 +18,6 @@ public sealed partial class CrewManifestUi : DefaultWindow
public void Populate(string name, CrewManifestEntries? entries)
{
CrewManifestListing.DisposeAllChildren();
CrewManifestListing.RemoveAllChildren();
StationNameContainer.Visible = entries != null;
@@ -58,7 +58,7 @@
StyleClasses="LabelBig" />
<BoxContainer Orientation="Horizontal"
Margin="0 0 0 5">
<Label Text="{Loc 'crew-monitoring-user-interface-job'}"
<Label Text="{Loc 'crew-monitoring-ui-job-label'}"
FontColorOverride="DarkGray" />
<TextureRect Name="PersonJobIcon"
TextureScale="2 2"

Some files were not shown because too many files have changed in this diff Show More