Commit graph

6342 commits

Author SHA1 Message Date
B_Kirill
2977d89f3e
Cleanup warnings: CS0168, CS0414, CS8321 (#42623) 2026-01-24 20:35:41 +00:00
Princess Cheeseballs
76801bd8b2
Tweak Traitor Uplink - The Rest of the Uplink (#42582)
* jaws of death

* I hate YAML

* open the gate

* I forgot about this one

* I forgor

* Fix croissant

* this didn't work actually rip

* made lights look better and undo on the boxing gloves

* small change

* Update Resources/Prototypes/Entities/Clothing/Hands/gloves.yml

Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>

* baguette contraband, eat your evidence.

* suffix

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
2026-01-24 00:11:19 +00:00
Pieter-Jan Briers
29b7fc4463
Stable to master (#42599)
Ban database refactor (#42495)

* Ban DB refactor seems to work at a basic level for PostgreSQL

* New ban creation API

Supports all the new functionality (multiple players/addresses/hwids/roles/rounds per ban).

* Make the migration irreversible

* Re-implement ban notifications

The server ID check is no longer done as admins may want to place bans spanning multiple rounds irrelevant of the source server.

* Fix some split query warnings

* Implement migration on SQLite

* More comments

* Remove required from ban reason

SS14.Admin changes would like this

* More missing AsSplitQuery() calls

* Fix missing ban type filter

* Fix old CreateServerBan API with permanent time

* Fix department and role ban commands with permanent time

* Re-add banhits navigation property

Dropped this on accident, SS14.Admin needs it.

* More ban API fixes.

* Don't fetch ban exemption info for role bans

Not relevant, reduces query performance

* Regenerate migrations

* Fix adminnotes command for players that never connected

Would blow up handling null player records. Not a new bug introduced by the refactor, but I ran into it.

* Great shame... I accidentally committed submodule update...

* Update GDPR scripts

* Fix sandbox violation

* Fix bans with duplicate info causing DB exceptions

Most notably happened with role bans, as multiple departments may include the same role.
2026-01-23 15:34:23 +01:00
pathetic meowmeow
ff1af35afb
Replace metabolism groups with metabolism stages (#42172)
* Replace metabolism groups with metabolism stages

* return to return

* killed

* yaml linted

* yaml linted again

* margarine

* bugfixes and balancing tweaks
2026-01-23 01:50:33 +00:00
deathride58
f3db27da10
Fixes grappling hook audio infinitely looping (#42588)
Fixes a regression with grappling hook sounds by reverting a last-minute commit
2026-01-23 01:30:02 +00:00
Julian Giebel
bcd3612730
Add feedback popups (#41352)
* Commit

* add the form post

* dv

* fixes

* Change wording

* Address review

* wording change

* Added some stuff

* New format

* bruh

* thanks perry!

* yes

* More fixes!

* typo

* Add a command to show the list, improve the UI slightly, split up command names

* Fix UI controller

* Add better comment

* Get rid of weird recursive thing

* Cleanup

* Work on moving feedback popups out of simulation

* Move round end screen subscription to feedback ui controller

* Finish moving feedback popups out of simulation

* Fix _ as parameter

* Clean up FeedbackPopupUIController

* Clean up commands

* Fix prototype yaml

* Fix openfeedbackpopup command description

* Update Resources/Locale/en-US/feedbackpopup/feedbackpopup.ftl

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

* Apply suggestions from code review

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

* Address reviews

* Address reviews

* Fix FeedbackPopupPrototype.cs using empty string instead of string.empty

* Address some more of the reviews, style nano is still trolling sadly

* Fix feedback popup styling

* Fix PopupPrototype ID field not having a setter

* Address reviews

* Add label when no feedback entries are present

Change link button to not show when no link is set

---------

Co-authored-by: beck-thompson <beck314159@hotmail.com>
Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
2026-01-22 22:19:54 +00:00
deathride58
5d2988d5ff
Grappling rework - Grappling hooks are now physics-driven (#42409)
* Grappling rework - Grappling hooks are now physics-based

* still have no idea wtf is going on with portals but fixed a few bugs + cleanup

* bonus fixes + prep for optional-but-recommended engine PR

* dropkicking a stray comment outta here

* makes the impulses actually take into account the fucking relays, makes reeling cancel if the rope's already too short, and tweaks values

* reviews + cleanup + makes ungrapple behavior a bit more consistent
joint removal was removed from ungrapple because it mispredicts either way, and breaks grappling hooks attached to the grappling gun (always good to leave possibilities like that open)

* adds a hack to work around grids not caring about waking cross-grid joints

* makes use of dirtyfield(), defenestrates magic number

* y'know it'd probably be better if we were like actually awake before we made commits

* null-coalesce instead of if statement

* two changes

* dont datafield and fix up for sound overrides

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-22 22:15:01 +00:00
pathetic meowmeow
6f8242c1fc
Simplify hands UI code (#42534)
* Simplify hands UI code

* i remembered about SortedHands in the component

* minor cleanup

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-22 21:31:45 +00:00
SabreML
e9be97dee0
Colour picker, palettes, & other spraypainter stuff (#41943)
* The stuff

* Valid check

* Spraypaintable decals don't actually seem to use `ZIndex`

* Don't need this

* datafield fix and button swap

---------

Co-authored-by: Janet Blackquill <uhhadd@gmail.com>
2026-01-22 17:33:21 +00:00
ScarKy0
1a0b108bdd
Force-prying crit borgs opens borg panel (#42460)
yeah
2026-01-22 09:44:31 +00:00
ArtisticRoomba
1b1cb64d24
Power Consumers Rebalance: Simple Dynamic Power Loading (#41961)
* initial commit

* misc additions and fixes

* final tests and additions

* cleanup 1

* fix tests and add a test

* fix tests AGAIN

* abject horror and misery

* cleanup

* cleanup 2

* address some issues
2026-01-21 04:05:44 +00:00
pathetic meowmeow
0ec9975e4f
Fix hideable humanoid layers (#42553)
* Fix hideable humanoid layers

* test maintenance coin

* clean return

* voxes can no longer have human beards

* voxes fixes

* voxing out

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-20 22:24:09 +00:00
Velken
fb82cadc9f
"Fix RCD light spam, bypass of indestructible tiles and some plating fixes" - Tile Stacking got merged, time to bring back the RCD fix (#42556)
* No more light spam, and some plating fixes

* fixed test
2026-01-20 21:48:30 +00:00
ScarKy0
cf19062414
Fix handheld grinder and reaction mixer audio stacking (#42498)
* yeah

* AAAAAAAAAAAAAAAAAAAAAAA

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-20 21:11:40 +00:00
pathetic meowmeow
4216e29fdb
Fix sexed organs (#42554) 2026-01-20 20:58:44 +00:00
osjarw
892209db01
Medibot doAfter and some other improvements (#32932)
* Medibot doAfter and some other improvements

* Clean-up

* Review fixes

* the army of medibots chasing someone is really funny

* misc cleanup

---------

Co-authored-by: SlamBamActionman <slambamactionman@gmail.com>
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
2026-01-20 20:37:51 +00:00
Velken
59e10d2854
Tile Stacking - attempt 2 (#42543)
* WORK IN PROGRESS 1

* ITS ALIVE, ALIVE!!!!

* clean up

* WIP 1

* fix small oversight

* big diff of doom

* added CVAR to tile history stack size

* component time

* filescoped namespaces + remove redundant nametag

* fix silly little mistakes

* typo

* TileStacksTest

* bweeeeeeh :P

* nuke cvar

* :3

* WIP2025

* Fix submodule

* It's beginning to look a lot like Christmas

* It's the Most Wonderful Time of the Year

* tiny fix

* fixed extra spacing on yaml

* slightly improve tilestacking test

* Part 1 out of 2 (part 2 tomorrow)

* Part 2

* add a simple tile construction test for tilestacking

* guh

* address reviews (no documentation yet)

* documentation be upon ye

* remove extra spaces

* prediction fix

* dirt

* oops :p

* attempt to make this suck less

* am never doing a PR that touches explosion system ever again

* small fix

* maybe a bit better now?

* more cleanup

* one last cleanup for me

---------

Co-authored-by: Killerqu00 <killerqueen1777@gmail.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: ScarKy0 <scarky0@onet.eu>
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-20 20:35:47 +00:00
pathetic meowmeow
efb6c68ac8
Fix humanoid profile voice being broken (#42550)
Fix humanoid appearance voice being broken
2026-01-20 19:13:51 +00:00
InsoPL
b86b6e0ff0
Examination verb for insuls (#42444)
* feat

* only clothing

* fix

* Revert "fix"

This reverts commit 858c3f882718cd003391e0fde6b2711b31e6ab54.

* fix

* reversal

* removed double namespace
2026-01-20 15:46:49 +00:00
B_Kirill
7f7f3b6ef1
Fix MagicMirror UI (#42544) 2026-01-20 11:59:58 +00:00
pathetic meowmeow
8cf744ec55
Visual nubody (humanoid appearance refactor) (#42476)
* initial visual nubody

* oops overlay

* im so pheeming rn

* conversion...

* tests

* comeback of the underwear

* oops eyes

* blabbl

* zeds

* yaml linted

* search and visible count constraints

* reordering

* preserve previously selected markings colors

* fix test

* some ui niceties

* ordering

* make DB changes backwards-compatible/downgrade-friendly

* fix things again

* fix migration

* vulpkanin markings limit increase

* wrapping

* code cleanup and more code cleanup and more code cleanup and more code cleanup and

* fix slop ports

* better sampling API

* make filter work + use the method i made for its intended purpose

* fix test fails real quick

* magic mirror cleanup, remove TODO

* don't 0-init the organ profile data

* remove deltastates

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-20 07:07:53 +00:00
Princess Cheeseballs
fa9173c0ec
Traitor Chemicals Rebalance (#42484)
very small list of changes overall

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-19 22:17:10 +00:00
ArtisticRoomba
966f244048
Adjust various traitor explosives (#42477)
* adj explosions

* yuuup

* next release

* cleanup and EMP changes

* minibomb revert, wait until gib experiment

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-19 21:54:12 +00:00
DDDragoni
76c09a6b1a
Thieving beacons automatically set coordinates when unfolded. (#42520)
Thieving beacons set coordinates when unfolded
2026-01-19 09:02:22 +00:00
Vasilis The Pikachu
ff9798a0ca
Merge remote-tracking branch 'upstream/stable' into stable-merge-2026-01-17-2 2026-01-18 22:37:45 +01:00
pathetic meowmeow
f068cd885b
Fix inventory contents not being dropped on gibbing (#42504) 2026-01-18 21:08:15 +00:00
Vasilis The Pikachu
ca07d6be49
Revert "Allow station tiles to be placed on solid ground and other platings. (#38898)"
This reverts commit 418b2b70b0.

Maintainer vote decided to vote this out due to code quality issues. The original contributor is aware and will get help from a maintainer to reintroduce it
2026-01-18 21:53:21 +01:00
Vasilis The Pikachu
e247ea5850
Revert "Fix RCD light spam, bypass of indestructible tiles and some plating fixes (#42432)"
This reverts commit 7d58e42ade.

Required to revert 418b2b70b0 via maintainer vote due to code quality issues.
2026-01-18 21:53:21 +01:00
pathetic meowmeow
d0c2734dad
Nubody (#42419)
* Nubody

* fix test fails

* gibbing

* lung test returns

* doc comment

* hand organ test

* giblet test

* yaml formatting

* returning

* relocate

* trimming

* re-smite

* oops thusd tweak

* arachnids have slower metabolism i guess

* never mind the old behaviour is bad actually

* rider whyyy

* style changes and allat

* fix collision

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-17 00:39:35 +00:00
Velken
8a59ead61e
Admin Anomaly Scanner (#42443)
* admin anom scanner

* improvement

* green

* sprite
2026-01-16 22:08:52 +00:00
Nemanja
d2ac15c76f
Fix flatpacker exploit ignoring board costs (#42445)
Fix flatpacks ignoring costs and board requirements
2026-01-16 00:22:24 +00:00
ScarKy0
897a2d40bc
Add Mortar and Handheld Juicer (#42019)
* init

* API

* testing

* review

* return

* good enough, fix later

TODO:
Proper prototype
DoAfter
Sounds

* "proper" prototype

TODO
DoAfter
Sprite

* proper protos, mortar sprite

* juicer sprites

TODO:
Juicer sounds
Makeshift crafting recipes
Add regular to vendors

* sprite tweak

* juicing sound, cleanup, construction

* vendors

* line end

* attribution newline

* small balance tweak

* Let it be known id never webedit

* meta

* item size

* review

* handhelds

* partial review

* cache solution, looping

* graph

* review

* popup

---------

Co-authored-by: Janet Blackquill <uhhadd@gmail.com>
2026-01-16 00:19:42 +00:00
B_Kirill
b14964398b
Camera map (#39684)
* Camera map

* I hope this helps

* Review 1

* Review 2

* Review 3

* Review 4

* Review 5

* Colorblind mode support

* Review 6

* Change design

* Map wire

* Logic fix

* Fix a terrible mistake

* Fix

* Fix 2

* Small rename

* More fix

* Better removal

* And another fix

* Will it work?

* It is literally pointless

* some small things
2026-01-15 21:21:55 +00:00
Velken
7d58e42ade
Fix RCD light spam, bypass of indestructible tiles and some plating fixes (#42432)
* No more light spam, and some plating fixes

* fixed test
2026-01-15 20:22:54 +00:00
ScarKy0
c7e8bbbf87
Add Paper Centrifuge (#42040)
* init

* sound

* sprite, half functional construction

* proper recipe

* oops

* loop sound

* inhands

* review

* review squared
2026-01-15 19:45:20 +00:00
Fruitsalad
4f997f2069
Cryo pod UI (#41850)
* Add CryoPodWindow (placeholder)

* Change HealthAnalyzerWindow: split off reusable HealthAnalyzerControl for cryo pod UI

* Improve CryoPodWindow: add health analyzer

* Improve CryoPodWindow: add eject button

This wasn't requested in the issue but I implemented it as practice with the UI system.

* Rewrote GasAnalyzerWindow, split off reusable gas mix viewer for cryo pod

* Change GasAnalyzerWindow: change back to three columns

With two rows you get a layouting bug when there's a lot of different gases, which looks somewhat bad. I didn't feel like fixing the layouting bug (it's an engine issue) so we're going back to three columns. That way you don't ever get two rows in practice.

* Change GasAnalyzerWindow: simplify by disabling Resizable

I added a lot of complexity to make resizable work nicely with a derived max & min size, but it's not necessary.

* Change GasAnalyzerWindow: file-wide namespace

* Change GasAnalyzerSystem: add GenerateGasMixEntry

* Split HealthAnalyzerUiState from HealthAnalyzerScannedUserMessage

* Rewrote CryoPodWindow, add atmos info

* Improve CryoPodWindow: add loading placeholder

* Improve CryoPodWindow: add internationalization support

* Fix GasAnalyzerControl: add missing translation

* Improve CryoPodWindow: add beaker info, high temperature warning

* Improve CryoPodWindow/System: inject button in window + necessary system changes

* Fix CryoPodWindow: Entering cryopod now closes window

This way you can't heal yourself with a cryopod.

* Change CryoPodWindow: add & update comments

* Change HealthAnalyzerComponent: remove `uiKey` property (no longer necessary)

* Tiny fixes

* Improve CryoPodUiMessage: replace string with enum

* Change GasAnalyzerWindow: simplify Measure code

* Change CryoPodComponent: rename Injecting to InjectionBuffer

* Change CryoPodBUI: tiny code simplification

* Fix HealthAnalyzerComponent: Removed stray import

* Improve CryoPodWindow: Prettier, concise atmos

* Improve CryoPodWindow: Chemicals bar chart

* Improve CryoPodWindow: Add Ruler to reagents

* Change CryoPodWindow: More horizontal layout

* Improve CryoPodWindow: Reduce height jiggling

The health analyzer's height changes a lot, which can be annoying with the buttons (for example when the oxygen damage label is popping in and out)

* Improve CryoPodWindow: Add setup checklist

This is mostly here to fill vertical space in the new horizontal layout.

* Improve CryoPodWindow: Eject beaker button

* Improve CryoPodWindow: Localization

* Improve CryoPodWindow: Add BeakerBarChart

An animated version of the chemicals chart

* Fix CryoPodSystem: Ejecting beaker no longer clears injection buffer

* Improve BeakerBarChart: Not animated on first frame

* Fix CryoPodWindow: Fix broken translation

* Improve CryoPodWindow: Reorder sections

* Fix BeakerBarChart: Tooltips now show up

* Change BeakerBarChart: Reorder functions

* Change CryoPodWindow: Reorder sections, change margins

* Change CryoPodWindow: Edit flavor text

* Revert changes to GasAnalyzerWindow

Since GasAnalyzerControl is no longer used in CryoPodWindow, these changes are no longer relevant to this PR.

* Tidy CryoPodWindow: Remove old workarounds

These are old layouting bug workarounds from the older version of CryoPodWindow that had a ScrollContainer in it. They're no longer necessary. Less ScrollContainers less problems.

* Tidy up: Remove unused imports

* Remove LabelledSplitBar

It was replaced by BeakerBarChart, which is a lot fancier.

* Tidy up: Tiny code style fix

* Change CryoPodSystem: Move code from server to shared

This is still without adding UI prediction

* move a ton of stuff to shared.

* one last thing

* Improve BeakerBarChart: Keep visual entry width when swapping beakers

* Improve BeakerBarChart: Respect beaker order of reagents

* Improve CryoPodWindow: Ensure space for injection buffer

 We need to keep space on the chart for the injection buffer after swapping to a full beaker.

* Improve CryoPodWindow: Prettier ejection error

* Improve CryoPodWindow: Add "Cooling patient" status

* BeakerBarChart: Fix UI scale bug

* BeakerBarChart: Fix bluespace beaker ugliness

* BeakerBarChart: Add more pod status strings

* HealthAnalyzerControl: Filewide namespace, sort imports

* Style fix: Replace `bool x = y` with `var x = y`

* CryoPodUiMessage: Split off separate class for inject

* SharedCryoPodSystem: Move message-related code into Subs.BuiEvents

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-15 17:52:03 +00:00
slarticodefast
5cda60f2f9
Predict defibrillators and add an integration test for them (#41572)
* cleanup

* fix fixtures

* prediction

* fix test

* review

* fix svalinn visuals

* fix chargers

* fix portable recharger and its unlit visuals

* fix borgs

* oomba review

* fix examination prediction

* predict

* readd zapping interacting mobs
2026-01-15 17:43:32 +00:00
slarticodefast
499e9f9a0f
Predict TransferAmountBoundUserInterface (#42358)
prediction!!!
2026-01-15 17:17:00 +00:00
B_Kirill
07076a5a32
Cleanup warnings: CS0414 (#42429)
cleanup
2026-01-15 13:37:11 +00:00
ArtisticRoomba
f702dc8f2d
Atmos GasSpecificHeats in shared (#42136) 2026-01-14 15:21:04 -08:00
pathetic meowmeow
fb133494cc
Decouple gibbing from the body system (#42405)
* Decouple gibbing from the body system

* allow gibs that don't drop giblets

* pass through user

* prediction gon

* comment

* destructible

* playpvs

* very very very very very very very minor cleanup

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2026-01-14 05:57:08 +00:00
ScarKy0
2399b61ca7
EmpResistance cleanup (#42402)
* init

* yeah

* Update SharedEmpSystem.cs
2026-01-14 00:59:19 +00:00
ArtisticRoomba
b5f0dd81fc
Increase trit-to-frezon ratio from 1:8 to 1:50 (#42400)
roll back to old trit -> frez ratio
2026-01-13 23:28:51 +00:00
Sarah C
c7e4f20f02
Fix tritium fires breaking conservation of mass (#41870)
* i can't believe this went unnoticed for so long

* i may be stupid
2026-01-13 22:16:09 +00:00
Sir Warock
7540c8f152
Pry open critical Borgs (#42319)
* One commit ops

* Please the maintainer gods

* More requested changes

* review

* actually this is probably a good idea

---------

Co-authored-by: ScarKy0 <scarky0@onet.eu>
2026-01-13 22:08:45 +00:00
ScarKy0
a18fc33724
Fix scram allowing you to bring someone along (#42393)
1 line bugfix
2026-01-13 16:56:05 +00:00
Velken
418b2b70b0
Allow station tiles to be placed on solid ground and other platings. (#38898)
* WORK IN PROGRESS 1

* ITS ALIVE, ALIVE!!!!

* clean up

* WIP 1

* fix small oversight

* big diff of doom

* added CVAR to tile history stack size

* component time

* filescoped namespaces + remove redundant nametag

* fix silly little mistakes

* typo

* TileStacksTest

* bweeeeeeh :P

* nuke cvar

* :3

* WIP2025

* Fix submodule

* It's beginning to look a lot like Christmas

* It's the Most Wonderful Time of the Year

* tiny fix

* fixed extra spacing on yaml

* slightly improve tilestacking test

* Part 1 out of 2 (part 2 tomorrow)

* Part 2

* add a simple tile construction test for tilestacking

* guh

* address reviews (no documentation yet)

* documentation be upon ye

* remove extra spaces

* prediction fix

* dirt

* oops :p

---------

Co-authored-by: Killerqu00 <killerqueen1777@gmail.com>
Co-authored-by: Killerqu00 <47712032+Killerqu00@users.noreply.github.com>
Co-authored-by: ScarKy0 <scarky0@onet.eu>
2026-01-13 13:51:40 +00:00
alexalexmax
738f55c456
Adds EMP Resistance component, gives it to ninja suit and headset (#42334)
* add comp and apply to ninja gear

* cleanup

* requested changes

---------

Co-authored-by: seanpimble <149889301+seanpimble@users.noreply.github.com>
2026-01-13 13:30:53 +00:00
Errant
04bda3ad59
Role time tracking support for admins (#31776)
role time tracking support for admined players

Co-authored-by: Milon <milonpl.git@proton.me>
Co-authored-by: ScarKy0 <106310278+ScarKy0@users.noreply.github.com>
2026-01-13 10:22:04 +00:00
chaisftw
360bfd6e1c
Spray bottles with visible reagent contents (#42155)
* Spray bottles with visible reagent contents

* Fixed cargo catalog to correctly reference the new spray bottle rsi

* Fixed indentation on rsi meta files

* Updated copyright in spray_bottle.rsi meta

* Update Resources/Prototypes/Entities/Objects/Specific/Janitorial/spray.yml

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

* Updated to follow yml convention, modified to inherit from DrinkBase and renamed fill textures

* Fixed solution names

* Updated solution name in BorgMegaSprayBottle

* de-hardcode solution name

* less breaking

---------

Co-authored-by: āda <ss.adasts@gmail.com>
Co-authored-by: iaada <iaada@users.noreply.github.com>
2026-01-12 22:01:35 +00:00