* 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>
* 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>
* 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>
* Integration tests for hunger and thirst
* Adjustements after the code review comments
* cleanup
---------
Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* 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
* 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
* 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>
* 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
* Make yaml gas serialization cleaner
* fix exception
* fix validation code
* rudimentary test & permissive loading
* change it a bit
* Test fixes and adjustments
* 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>
* 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>
* 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
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.
* 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>
* 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>