Commit Graph

7398 Commits

Author SHA1 Message Date
Verm 2e9deaee1e
Artifact node IDs are now only 3 digits long (#26482)
* 2-digit nodes

* 3-digits instead

* Fix exclusive bounds
2024-03-27 19:26:26 -04:00
Leon Friedrich cb8f145975
Fix GhostRoleComponent performing randomization on ComponentInit (#26466)
* Fix ghostrole ComponentInit

* A

* a
2024-03-27 00:31:26 -04:00
Jake Huxell ebddef7675
Objects such as lighters/welders are now able to be dropped in disposal units. (#26463)
Don't always mark after interact event as handled for welder tools. Done with a view towards allowing disposal interaction post tool system handling.

Co-authored-by: MQuatermain <misterquatermain@pm.me>
2024-03-26 19:13:58 -04:00
Leon Friedrich fdb4a61487
Fix atmos NaN error (#26441)
* Fix atmos NAN error

* Remove redundant yaml entries
2024-03-26 15:44:56 +11:00
Nemanja 3b9c5d43ec
Nerf ninja research stealing (#26421)
* nerf ninja steal objective

* fubar
2024-03-26 11:52:27 +11:00
Simon 771390bb67
Make all implants unable to be implanted more than once (#26250)
* Make mind shield implants unable to be implanted more than once

* Default AllowMultipleImplants to false and update implanters.yml

* Use TryComp instead of TryGetComponent

* Deny multiple implants for fun implants too.

* Make comment more precise
2024-03-26 01:16:19 +01:00
Tayrtahn 964c6d54ca
Code cleanup: Purge obsoleted SharedPhysicsSystem methods (#26287)
Updated calls to SharedPhysicsSystem methods
2024-03-25 17:37:25 +11:00
nikthechampiongr 266cc85f57
Create DeviceNetworkJammerComponent & System as a general way for entities to act as jammers (#26342)
* Add DeviceNetworkJammerComponent & System

Allows for entities to "jam" DeviceNetwork packets.

Whenever a device attempts to send a packet, the
DeviceNetworkJammerSystem listens for the BeforePacketSentEvent.
From there if any entity with the jammer component is within range of
either the sender or receiver of the packet the event will be cancelled.
Additionally jammers can only block packets in certain networks. If a
packet is not being transmitted in one of the networks it can block then
even if the jammer is in range the event will not be cancelled.

The range is stored in the jammer component along with the networks it
can jam.

Jammable network ids are stored as strings which seems to be how custom
networks are stored (E.g. network ids for suit sensors).

To allow for all of this, the BeforePacketSentEvent was modified to
provide the NetworkId.

* Make JammerSystem for the radio jammer use the DeviceNetworkJammer. Remove redundant event.

* Replace calls to TryDistance with InRange
2024-03-24 21:59:16 -04:00
Tayrtahn cd4eda44b8
Make parrots talk like parrots (#26340) 2024-03-24 18:26:41 -07:00
Leon Friedrich 31d70db547
Use entity queries in ambient sound & power receiver systems (#26410) 2024-03-24 17:52:05 -07:00
IProduceWidgets 451890b85b
Fix admin verb to set unspawned ballisic ammo count (#26411)
Don't crash if an invalid value is given.
2024-03-24 17:45:01 -07:00
SlamBamActionman 8f652eaa75
Immovable Rod visual variations (#25932)
* Adds variations to immovable rod

* slash oopsie

* Changed prototypes from being hardcoded to being defined in the rules component

* Changed from 10% chance to 5%

* Changes based on feedback

* Fix nullable error

* Moved randomized logic to .yaml. Probabilities of alternate rods add up to 5%.
2024-03-24 23:45:52 +01:00
Pieter-Jan Briers 89db4409a4
Remove CRLF, enforce with workflow (#26401)
* Check for CRLF in actions workflow

Make emisse weep

* Copy paste bottom text

* I would like to thank StackOverflow for this spite PR.

* Mention file name in message because the workflow tab doesn't display it.

* dos2unix everything
2024-03-24 22:06:17 +01:00
keronshb 4dced51f0d
Fixes store purchase events and adds support to raise a directed event (#26389)
* fixes store event check

* raise directed product event
2024-03-24 19:07:05 +01:00
Leon Friedrich ec761114ea
Run `fixgridatmos` for cargo & emergency shuttle (#26382)
Fix cargo & emergency shuttle
2024-03-25 03:17:56 +11:00
nikthechampiongr dca0c6694b
Add stealthmins (#26263)
* Add stealthmin command.

* Update Content.Server/Administration/Commands/AdminWhoCommand.cs

As suggested by CE.

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>

* Add admin notifications for admins toggling stealthmin.

* Localize stealthmin command

---------

Co-authored-by: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com>
2024-03-24 10:39:53 -05:00
KISS 54dd273f66
Landmine stepoff (#22962)
* make landmine work on stepping off

* update methods naming

* made both step modes possible

* updated stepoff event raise to not interfere with game physics internals

* added comments

* figuring out how audiosystem works

* added beep sound effect, updated how stepoff trigger works to make it more consistent

* updated source in attributions.yml

* made stepoff working every time

* introduced suggested changes

* updated janitor's WetSignMine to have audio

* made cleaner events and bashing my head at OnEndCollide event raise

* inverted conditional where applicable

* review

---------

Co-authored-by: Yurii Kis <yurii.kis@smartteksas.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-03-24 16:33:45 +11:00
Pieter-Jan Briers a1817a12db
Add Prometheus stats for admin count (#26284)
* Add Prometheus stats for admin count

Fixes #20828

Reports time series for admin count. Counts are separated by state (active, AFK, or deadminned) and admin rank.

* Use static constructor instead of static readonly for the metric

Docs recommend this due to inconsistent execution of C# static constructors.

* Remove static usage, use IoC IMeterFactory.

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-03-24 14:48:04 +11:00
Emisse 952b7f4c4e
Haunted dungeon template (#23768)
* haunted dungeon

* Initial work

Still needs prefab gen work to make it interesting.

* ime a worm

* weh

* Work

* Slight tweaks

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-03-24 14:37:18 +11:00
metalgearsloth 65960facf5
Fix playglobalsound autocompletion (#26167) 2024-03-24 14:15:26 +11:00
DEATHB4DEFEAT b9db06ebb1
Admin New Player Notification Sound (#24327)
play a sound to active admins when a new player joins
2024-03-24 13:46:45 +11:00
nikthechampiongr 93e3aed26e
Restrict door remotes to only being able to manipulate doors relevant to their type (#26371)
Restrict door remotes to only being able to manipulate doors relevant to
their type.
2024-03-24 01:48:16 +01:00
Leon Friedrich 18a35e7e83
Partial atmos refactor (#22521)
* Reduce atmos component queries

* Remove method events

* Cache airtight data

* Make MolesArchived nullable

* Fix airtight cache

* only get tile def once

* Immutable mixtures

* firelock queries

* misc

* misc cleanup

* Trim disconnected tiles

* Fix merge issues and bugs

* Why does the PR keep increasing in scope

* debug overlay

* Fix bugs

* Fix test, remove unused events

* Add setmapatmos command

* Fix overlays

* Add map check

* A

* Resolve conflicts with #26102

* Remove some obsolete methods
2024-03-24 03:34:56 +11:00
metalgearsloth 64b648ff3c
NPC steering tweaks (#26351)
- Fix the free node check considering the whole tile and not the poly.
- Clear maps on direction resets.
- More robust arrival checks for pathfinding nodes.
2024-03-23 12:42:51 +11:00
Tayrtahn 763d2bca9c
Fix cross-grid spreader behavior (#26346) 2024-03-22 16:29:14 -04:00
SlamBamActionman 70c718f61c
Added verb action to Glue/Lube system (#26002)
* Added verb action to Glue/Lube system

* Changes based on feedback

* Fix TryGlue/Lube to use Entity<> rather than EntityUid, Component
2024-03-22 10:37:46 +01:00
Tayrtahn ae3d745430
Code Cleanup: Purge obsolete MapManager methods (#26279)
* GetGrid

* GridExists

* TryGetGrid
2024-03-22 18:08:40 +11:00
lzk 3b3b874dd9
Snore is a trait now (#26322) 2024-03-22 18:00:57 +11:00
Plykiya e627a0d24b
Door Remote now shows Mode in UI (#26162)
* Prep for DoorRemote Status

* Door Remote Mode Messages

* plural opens and closes

* never trust webedits

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-03-21 20:19:52 -04:00
nikthechampiongr eb80d9752e
Fix scram! implant keeping you pulled to someone when teleporting you (#26309)
* Fix scram! implant keeping you pulled to someone when teleporting you

* Exorcise sleep deprivation speak
2024-03-21 18:42:32 +01:00
Pieter-Jan Briers d776c4b392
Improve admin message seen/dismiss state. (#26223)
Fixes #26211

Admin messages now have separate "seen" and "dismissed" fields. The idea is that an admin should be able to tell whether a user pressed the "dismiss for now" button. Instead of using "seen" as "show this message to players when they join", "dismissed" is now used for this.

Existing notes in the database will automatically be marked as dismissed on migration. A note cannot be dismissed without being seen (enforced via constraint in the database too, aren't I fancy).

As part of this, it has become impossible for a player to play without dismissing the message in some form. Instead of a shitty popup window, the popup is now a fullscreen overlay that blocks clicks behind it, making the game unplayable. Also, if a user somehow has multiple messages they will be combined into one popup.

Also I had enough respect for the codebase to make it look better and clean up the code somewhat. Yippee.
2024-03-21 16:15:46 +01:00
Tayrtahn f4cb02fb0c
Code cleanup: Purge calls to obsolete EntityCoordinates methods (#26292)
* Purge calls to obsolete EntityCoordinates methods

* Pizza defruited; rerun those tests!
2024-03-21 12:59:56 +11:00
Pieter-Jan Briers a4692004de
Fix wire layout inheritance. (#26289)
Wire layouts manually navigate the inheritance hierarchy, but the data fields on the prototypes were also automatically inherited already. This meant that inheriting a wire layout prototype and changing nothing would cause the wires to be duplicated unless they were manually modified on top.

Fix is easy: just disable inheritance on the data fields.

Also, integration test for it.
2024-03-20 16:22:47 +01:00
Tayrtahn 4a83c36585
Code cleanup: Dirty(Comp) (#26238)
* Replaced uses of Dirty(Component) with Dirty(Uid, Component)
Modified some systems (notably pulling-related) to use uids.

* Missed a few

* Revert changes to pulling

* No
2024-03-19 23:27:02 -04:00
keronshb 85f4b43db1
Adds logging for refunds (#26274)
LGTM
2024-03-19 19:46:03 -07:00
metalgearsloth 6de5fbfafb
Fix build (#26258)
* Fix build

- Fixes a couple paint things that were broken.

* wat
2024-03-19 23:34:00 +11:00
nikthechampiongr 362d56981f
Simplify DoAfterArgs behavior for movement and distance checks (#25226)
* Merge BreakOnWeightlessMove and BreakOnMove. Provide different theshold for weightless movement.

* Adjust WeightlessMovementThresholds. Put a thing I forgot to put in the doafterargs.

* Make DoAfterArgs only use OnMove to determine whether to check for
movement and MoveThreshold to determine the threshold regardless of
weightlessness. Gave DistanceThreshold a default value which will always
be checked now.

* Fix issue introduced by merge.

* Use interaction system for determining whether a distance is within range

* Fix incorrect doafter args introduced by previous merge.
Forgor to commit these.

* Exorcise ghost.

The execution system should have been deleted when I merged previously.
For a reason I cannot comprehend it came back, but only the execution
system.

* Exorcise ghost Pt. 2

* Allow for movement check to be overriden in zero g and adjust doafter args where needed.

You can now override checking for movement in zero g with the BreakOnWeightlessMove bool. By default it will check.
The following doafters were made to ignore the movement check in zero g:
- Healing yourself with healing items,
- Removing embedded projectiles,
- Using tools like welders and crowbars

* Adjust distance for cuffing/uncuffing to work. Make injections not break on weightless movement.

* Fix evil incorrect and uneeded comments
2024-03-19 21:09:00 +11:00
keronshb 9b8f7c06fa
Store Refund Fix (#26251)
Removes else that accidentally enables refunds
2024-03-18 23:48:52 -04:00
metalgearsloth c584f6444a
Pulling rework v2 (#24936)
* Pulling rework

Fixing up the FOUR systems managing pulling, all the shitcode, and also making it nicer ingame.

* More pulling cleanup

* stats

* More cleanup

* First draft

* More pulling

* weh

* Fix puller

* Pulling working

* Fix merge

* Dunked

* Self-merge time

* Fix hotkey

* Fix container changes

* oop

* Fix multi-pulling

* Move alerts cleanup.

* pulling fixes
2024-03-19 14:30:56 +11:00
nikthechampiongr 22e9d6562f
Fix SCRAM implant not working while cuffed. Incidentally fix freedom implant working while dead/crit (#25978)
* Fix SCRAM implant not being usable while in cuffs. Also fix freedom implant from working while dead/crit as a side effect

* Move check up to apply to all actions and do thing I forgor to do before

* Change check into an ActionBlocker check that also checks whether the user is sleeping.

* Make checking for Consciousness the default for actions

Went through and chose what I believe to be sensible defaults for actions that had CheckCanInteract.

* Fix typos my beloved

I had an unbelievable skill issue

* Fix major skill issue
2024-03-18 23:35:46 +01:00
Pieter-Jan Briers f55c98ce6d
Include bans in adminremarks command (#26240)
Fixes #20645
2024-03-18 15:31:34 -06:00
brainfood1183 e4d5e7f1ae
Spray Paint (Review Ready) (#23003)
* Spray Paint (Draft)

* paint colors, paints in maints loot, cargo crate of paints.

* fix

* remove paint (sort of)

* moved paintcleaner into own system

* Moved paint to server (had to unfortunately)

* doafter now breaks when moving away.

* cant paint mobstatecomp

* loads of fixes

* fixes

* fixes

* nopaintshadercomp

* fixes

* fix

* use locale for paint remove string

* remove nopaintshadercomponent and use blacklist

* remove enabled.true from visualizer

* paint doafter event.

* add verbs for paint and remove paint and icon for paint verb.

* fixes

* no longer replaces shader when shader exists.

* replace forloop with foreach, check shader before adding and removing.

* paint doafter now separate so no copy paste code

* Entities in sprayed targets item slots are also now correctly sprayed.

* fix

* fix

* fix airlock psray painter now removes painted before painting door.

* spray paints now use openablecomponent.

* fix

* fix damn accesstypes.

* fix

* fix
2024-03-18 15:29:48 -06:00
Pieter-Jan Briers db81438d30
Fix barotrauma pressure protection (#26236)
Oops

In #26217 I re-organized the logic for the calculation. Part of that was moving the logic for GetFeltLowPressure and GetFeltHighPressure to be done before we actually check the hazard thresholds. What I didn't realize is that, with how our pressure protection is set up, these functions can return values so extreme they rebound into the other category.

For example, according to the math, when you're wearing a hardsuit in a low-pressure environment you have "felt" pressure of 1000 kPa. Yeah that's not right.

Now these functions clamp their result to OneAtmosphere, in the appropriate direction (101.3 kPa).

Fixes #26234
2024-03-18 17:46:31 +01:00
Tayrtahn 29887636e5
Fix borg charger error (#26230)
Fix borg chargers not working
2024-03-19 00:37:49 +11:00
deltanedas 7561bef6a7
Move faction exception and everything it needs to shared (#25154)
* move faction prototype to shared

* move faction exception and member stuff to shared

* fix breaking changes for random stuff

* move pettable friend stuff to shared

* mostly fix

* final fixy

* dragonops

* final fixy II

* use querys and fix warpspeed fish (probably)

* fixer

* Rrrr!

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-03-18 18:23:25 +11:00
Mr. 27 87386ca0ba
make romerol work on the dead (#26222)
* a

* review

* g
2024-03-18 17:25:36 +11:00
Kevin Zheng 153d2815fc
Fix pressure damage calculations (#26217) 2024-03-17 21:16:31 -08:00
Pieter-Jan Briers b5138b245e Fix barotrauma calculations
The math for our pressure damage (barotrauma) system is directly taken from TG. The constants are the same and the math is almost the same. However there are two errors.

1. Pressure damage started being applied within the WARNING bounds, rather than the HAZARD bounds. This means you started taking low pressure damage at 50 kPa instead of the intended 20 kPa, and also the HUD icon didn't show "danger" like it should even if you were already taking damage.

2. The calculations for high pressure damage were wrong. These are supposed to be linearly scaled, but the function was wrong so the scaling didn't actually work properly (especially when considering the fixed bounds above). This appears to be the case because the function was taken from an incorrect comment in the original source, rather than the real math.

Both of these issues are now fixed to match the TG behavior. Note that this somewhat nerfs pressure damage in non-extreme circumstances. e.g. a room at 40 kPa now gives NO pressure damage, whereas previously it would do full space damage.

The description of the pressure alerts is wrong for "low" severity, but I can't be arsed to fix that right now. Alerts don't have a way to change the description depending on severity...
2024-03-17 22:37:28 +01:00
LordCarve eeaea6c25b
Unify `Content`'s `EntitySystem` logging (#26216)
Use Log with generated sawmill name rather than explicitly named one for all non rule-based Content EntitySystems.
2024-03-18 07:30:27 +11:00
wafehling 4357b9ef08
Added 18 new bounties to cargo (#26160)
* Added 18 new bounties + tags, couple of balance tweaks

* Oops, 2 corn tags.

* Fixed another duplicate from merge conflict

* Fixed all arbitrage issues

* Removed metamorphic glass/manly dorf bounty

* Removed manly dorf bounty

* Removed manly dorf bounty

* Removed manly dorf bounty

* Changed hiviz tag, removed commented out bounty

* Removed extra line

* Change HiViz tag

* Removed unused tag

* Removed LaceupShoes, changed HiViz

* Changed flavor text for fruit bounty

* Removed live mouse bounty
2024-03-17 13:06:16 -04:00