Commit Graph

1097 Commits

Author SHA1 Message Date
Partmedia 6dcf6b07d5 Trip APCs when they exceed a power limit (#41377)
* Implement APC overloading

* Add power test

* Review

* Some more reviews

* Show map coordinates for test failures

* Widen column 2

* Reduce singularity beacon power consumption

* Try to get grid coordinates
2026-01-26 19:22:40 +01:00
Milon d16a306326
marked as protected trait (#5274)
* protected trait

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

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

* right

* direction

* REFLECTION

* whoopsie

* [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-25 10:30:18 -06:00
Milon 884cf115c6
more traits improvements (#5285)
* wowie

* whoopsie

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

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

* WHY DID I DO THAT

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2026-01-25 09:12:38 -06:00
Milon 4364eaa388
real traits system (#5208)
* holy shit?

* final touches

* this is dumb

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

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

* whatever go my integration tests

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

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

* whoopsie forgot blacklists

* load bearing loc

* minor stuff

* whoopsie

* cool

* I LOVE REFLECTION

* got a call from the stink department

* i love fluent yes

* direction changes

* waiter more migrations please

* typo ops

---------

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-20 12:49:59 +01:00
Vanessa 58e500d254
CentComm Shipyard (#5172)
* Added CentComm shipyard console. Brought some things in Shipyard console up to modern standards.

* More shipyard stuff

* [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>
2026-01-16 19:37:33 +01:00
Field Command c2654a68fb
DV default evac shuttle! (#4970)
DV default evac shuttle
2026-01-15 01:14:03 -06:00
Milon 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
Princess 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
slarticodefast 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
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
Leon Friedrich ac2c936f6d Improve CreateDeleteCreateTest failure messages (#40996)
* Improve CreateDeleteCreateTest failure messages

* nameof
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 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
slarticodefast 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
āda 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
Hannah Giovanna Dawson 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
ArtisticRoomba 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
āda 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
JesterX666 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
Kyle Tyo 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
slarticodefast 36222ada7a Add EntityEffectOnTrigger and RejuvenateOnTrigger (#40967)
commit
2025-12-29 11:39:28 -06:00
Vanessa 6319c2e6aa Removed test that we didn't need 2025-12-29 11:39:26 -06:00
Leon Friedrich 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
slarticodefast 6253cb8fda Predict DestructibleSystem, Part 1: IThresholdTrigger (#40876)
part 1
2025-12-29 11:39:24 -06:00
āda 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
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
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
slarticodefast d4980c0b9f Predict EMPs (#39802)
* predicted emps

* fixes

* fix

* review
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
Tayrtahn 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
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
āda 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
slarticodefast c34c22c8f0 fix chasm heisentest (#40456)
fix chasm test
2025-12-29 11:39:10 -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
chromiumboy 5931c3f151 Devices with access restrictions list those restrictions in their examination description (#37712) 2025-12-29 11:39:07 -06:00
Red 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
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
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
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
Pieter-Jan Briers 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 (94f98073b0), 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
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
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
Field Command 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
Vanessa 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
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
ArtisticRoomba a3caa2b6f9 Fix Atmospherics dP not trolling partially airtight entities (#40435)
* Fix dP not trolling partially airtight entities

* Assumptions in atmospherics are the root of all evil
2025-11-23 15:22:35 -06:00
ArtisticRoomba 2bc7d10eec Atmos Delta-Pressure Window Shattering (#39238)
This PR adds delta-pressure damage. In short, airtight structures can now take damage proportional to the difference in pressures between the sides of the structure.
2025-11-23 15:22:34 -06:00
pathetic meowmeow 32f018e804 Don't enqueue construction events without validation (#39869) 2025-11-23 15:22:34 -06:00