Commit Graph

1184 Commits

Author SHA1 Message Date
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
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
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
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
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
Centronias ffdb552d1f Add CVar for disabling loadout item role timers (#36775) 2025-11-23 15:22:34 -06:00
Tayrtahn 648d4539a5 Add test of disposal unit throw-insert behavior (#39479)
* Add test of disposal unit throw-insert behavior

* Remove initially-empty check
2025-11-23 15:22:32 -06:00
FungiFellow f9ac85552e Inflatable Module (#35100)
Co-authored-by: ArtisticRoomba <145879011+ArtisticRoomba@users.noreply.github.com>
Co-authored-by: PJB3005 <pieterjan.briers+git@gmail.com>
2025-11-23 15:22:30 -06:00
Nemanja 66c0bdc8fa Remove BodyComponent check from MobPrice test (#39786) 2025-11-23 15:22:29 -06:00
Princess Cheeseballs 94e398b071 EVENT BASED WEIGHTLESSNESS (#37971)
* Init Commit

* Typos

* Commit 2

* Save Interaction Test Mob from failing

* ssss

* Confident I've gotten all the correct prototypes

* Whoops forgot to edit those

* aaaaa

* Better solution

* Test fail fixes

* Yaml fix

* THE FINAL TEST FIX

* Final fix(?)

* whoops

* Added a WeightlessnessChangedEvent

* Check out this diff

* Wait I'm dumb

* Final optimization and don't duplicate code

* Death to IsWeightless

* File scoped namespaces

* REVIEW

* Fix test fails

* FIX TEST FAILS REAL

* A

* Commit of doom

* borgar

* We don't need to specify on map init apparently

* Fuck it

* LOAD BEARING COMMENT

---------

Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
2025-11-23 15:22:27 -06:00
Winkarst-cpu 6cf8f805ca Add integration test for MobPriceComponent (#39524)
Test
2025-11-23 15:22:25 -06:00
slarticodefast 6a699b7bc5 Move mind role components to shared (#39606) 2025-11-23 15:22:24 -06:00
Tayrtahn f4b216db8d Add test of `StaminaComponent` crit vs animation thresholds (#39249)
Add test of StaminaComponent crit vs animation thresholds
2025-11-23 15:22:22 -06:00
Princess Cheeseballs 60cee5b245 Stunnable New Status and Cleanup (#38618)
Co-authored-by: Princess Cheeseballs <66055347+Pronana@users.noreply.github.com>
Co-authored-by: pa.pecherskij <pa.pecherskij@interfax.ru>
2025-11-23 15:22:21 -06:00
Nemanja 6a02c97cff Move some Station methods into shared (#38976) 2025-11-23 15:22:20 -06:00
Nemanja a6df796690 Miscellaneous Body Decoupling (#38958) 2025-11-23 15:22:18 -06:00
slarticodefast 2d14cd4cc0 Trigger Refactor (#39034) 2025-11-23 15:22:15 -06:00
Pieter-Jan Briers aeea786127 Fix StoreTests EventBus usage (#38489)
Fix split off from #37349 to avoid needing to sync the content/engine PRs.
2025-11-23 15:22:14 -06:00
Sir Warock 63eb235e94
Fix SOME test fails (#4588)
* Increase SpawnAndDeleteAllEntitiesOnDifferentMaps test simulation time (#38901)

wait longer

* Reduce LevelOfParallelism to 2 for integration tests (#39566)

less paralelliism

* Fix Assumption of Nullable to have value (#41220)

* Fix Potential Test Fail

* Please the maintainer gods

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
2025-11-13 12:21:38 +00:00
Vanessa 1bd83bada7
Fixed emotes not working after upstream merge. (#4611)
* Fixed emotes not working after upstream merge.

* Added retry attribute to a test that fails intermittently
2025-11-07 11:03:36 +11:00