Commit Graph

7480 Commits

Author SHA1 Message Date
Simon 87a56b25c3
Make aghost command work on other players using optional argument (#26546)
* Translations

* Make aghost command work on other players using optional argument

* Reviews
2024-03-31 13:05:44 +11:00
Wrexbe (Josh) 175f8205c0
Make advertise system survive no map inits (#26553)
* Make advertise system survive no map inits

* Add comment to try prevent future bugs
2024-03-31 12:34:31 +11:00
keronshb b8363cd82a
Give stores the ability to check for owner only (#26573)
adds a check if the store belongs to the user
2024-03-30 19:25:36 -04:00
Plykiya 7638252df3
Fix GasMixers/Filters not working (#26568)
* Fix GasMixers/Filters not working

* OKAY GAS FILTERS TOO

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
2024-03-30 14:11:44 -04:00
Leon Friedrich 888a3bda51
Atmos device performance improvements (#26493)
* Atmos device performance improvements

* AtmosDirection perf improvements

* Fix errors

* Add GasTileOverlayComponent arguments

* Make excite no longer invalidate a tile
2024-03-30 15:17:53 +11:00
Plykiya f192d7901f
Hyposprays Draw from Jugs (#25544)
* Hyposprays Draw from Jugs

* Fix last onlyMobs usage in yml

* Some Suggested Changes

* Remove unnecessary datafield name declarations

* Remove unnecessary dirtying of component

* Same line parentheses

* Added client-side HypospraySystem

* Cache UI values and only updates if values change

* empty line

* Update label

* Label change

* Reimplement ReactionMixerSystem

* Remove DataField from Hypospray Toggle Mode

* Change ToggleMode from enum to Bool OnlyAffectsMobs

* Add DataField required back since it's required for replays...?

* update EligibleEntity and uses of it

* Add user argument back

* Adds newline

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>

* Guard for dirty entity

* Adds summary tag

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-03-30 14:59:16 +11:00
Leon Friedrich bb5ca720fc
Split GasTileOverlaySystem update over two ticks (#26542)
Split GasTileOverlaySystem update over ticks
2024-03-30 13:34:55 +11:00
metalgearsloth d215419f9a
Revert "Fix scram implant's teleportation out of containers" (#25030)
* Revert "Fix scram implant's teleportation out of containers (#24827)"

This reverts commit d4434dbb5e.

* Remove EntityQuery<T> pass-ins
2024-03-30 13:28:42 +11:00
Pieter-Jan Briers 3b791459c7
Refactor FTL time tracking code to fix a UI bug (#26538)
The FTL UI on the shuttle console would reset the FTL progress bar every time you open it. This is because the server only sends "time until completion", not a start/end time. The FTL code now uses a separate start/end time so the exact same progress bar can be preserved.

For convenience, I made a StartEndTime record struct that stores the actual tuple. This is now used by the code and has some helpers.
2024-03-30 12:40:55 +11:00
Alice "Arimah" Heurlin 2e9c8f691c
Fix guardian damage transfer (#26541) 2024-03-29 21:25:42 -04:00
Leon Friedrich 985c4b4016
Fix empty atmos deserialization (#26540)
Fix atmos deserialization
2024-03-30 10:58:12 +11:00
deltanedas 355d00a0f2
combine same-tile explosions in the same tick (#25664)
* combine same-tile explosions in the same tick

* !

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-03-30 10:46:05 +11:00
Tayrtahn 4cd2fbd076
Add prediction to Spill Container verb, add dummy TrySpill methods to shared (#25813)
* Moved abstract spill methods to shared; added prediction to spill container verb.

* Rerun tests

* Requested changes

* Note Client behavior in Spill method docs
2024-03-29 02:00:09 -07:00
keronshb 06b14f30cd
Change Polymorph Actions to use Polymorph Proto Id (#26419)
* polymorph changes

Adds poly proto ids to polymorph action event and checks for proto id when performing

* nullable proto id

* Replaces instances of Polymorph prototype with a proto id and tryindex

* birdup

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-03-29 17:41:09 +11:00
Crotalus a606909d30
Add auto modes to reagent grinder (#26290)
* Add auto-mode to reagent grinder

* Remove redundant stuff with DataField

* Use margin instead of dummy control

* Resolve grinder component
2024-03-29 17:30:50 +11:00
metalgearsloth cdfee5aa0c
Transform cleanups (#25963)
* Transform cleanups

* Fix build

* ascension
2024-03-29 17:26:30 +11:00
Jake Huxell 59e46aab93
Reduced Warning Count By 130 For Full Rebuilds (#26518)
* remove deprecated entity coordinate extension functions. Reduces warning count by approximately 50

* final toCoords Removed

* Remove all unused variables and dead code paths

* remove always true variable, should be a cvar or something instead

* remove superfluous variables from tests
2024-03-29 16:28:16 +11:00
lzk 69a15ada7f
Send what seleted for secret to admin chat (#26500)
* Send what seleted for secret to admin chat

* add line

* Add localization support
2024-03-29 16:03:34 +11:00
Nemanja aba16198f6
Go back to constant electrocution damage based on voltage (#26455)
Makes electrocution damage based on the voltage of the wire and bring down the damage to a sane level. It's no longer primarily based on the power being received.

LV Cable -> 10 damage
MV Cable -> 20 damage
HV Cable -> 30 damage

Having a primarily power-based damage system causes there to be massive fluctuations in damage based on things outside of a regular player's control, like the station power output. This removes a lot of player agency and turns grilles into a risky gamble where they can either do no damage or instantly fry the player due to simply being hooked up to the engine.

While this may be a more accurate simulation in some regards, the reality of the gameplay is that it's often just frustrating, resulting in constant death traps as players brushing against electrified grilles and punching wires take absurd amounts of damage. By making them flat rates, it's possible to actually balance the damage output.
2024-03-28 12:44:44 -08:00
nikthechampiongr df631ff8a0
Fix Incorrect stealth messages appearing on readmin. (#26511)
Fix major skill issue/Incorrect stealth messages appearing on readmin.
2024-03-28 20:19:53 +01:00
Tayrtahn 7759d404c6
Fix arcade goodbye message implementation (#26514) 2024-03-28 12:56:49 -04:00
metalgearsloth bbe08c0bfb
Fix master (#26501)
* Fix master

* this

* messages

* Fix missing verb name parrot

* Fix messagePack for blockgame and spacevillain

---------

Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
2024-03-28 04:12:36 -07:00
Tayrtahn 794a447bb7
Separate "thank you" messages from general ads (#25867)
* Separated "thank you" messages from general ads

* Moved MessagePackPrototype to shared, cleaned up AdvertiseComponent, and actually killed AdvertisementsPackPrototype.
+More suggests changes.

* Rename PackPrototypeID to Pack in both components.
2024-03-28 17:46:26 +11:00
deltanedas d13da2837d
voicemask can select speech verb (#25768)
* add Name field to SpeechVerbPrototype

* extra locale for voice mask ui

* SpeechVerb ui and handling

* raaaaaaaaa

* reeeeeeeeal

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* fix sort

* did you hear john syndicate died of ligma

* Update Content.Client/VoiceMask/VoiceMaskNameChangeWindow.xaml

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-03-28 17:36:43 +11:00
Nemanja d576f5cbbb
dynamic alert sprites (#25452)
* dynamic alert sprite

* fix fat cooldowns
2024-03-28 17:32:56 +11:00
Tayrtahn b1ba6b5bb6
Arcade machine improvements (#24200)
* Give 'em something to talk about

* Wire panel visuals

* Wire graphics tweak

* More ads and thanks

* More ads for a noisy arcade

* New screen for space villain machines

* Implement EmitSoundIntervalComponent and a bunch of arcade noises

* Require power for sounds

* Allow earlier startup intervals

* Orange glow

* Audio attributions

* Include the PR link

* Replace EmitSoundInterval with expanded SpamEmitSound

* Remove pacman-themed arcade sounds

* Documentation good.

* Updated methods to use Entity<T>

* Refactored SpamEmitSound to get rid of accumulator and chance.

* Fixed prewarm logic

* Moved stuff to Shared

* Fix outdated YAML

* Better prediction, auto pause handling

* Make enable/disable reset the timer instead of trying to save it.
2024-03-28 17:28:45 +11:00
Nemanja 766192f4b5
Use nav beacon locations for announcements (#26437)
* use nav beacon locations for announcements

* :thumbs_up:
2024-03-28 16:53:18 +11:00
superjj18 578f7e4f2c
Remove broadcast cooldown (#26492)
* Removed inconsistent broadcast cooldown whenever the "Announce" button is pressed on the communications terminal.

* Revert "Removed inconsistent broadcast cooldown whenever the "Announce" button is pressed on the communications terminal."

This reverts commit c730d6499b6908f6ae7c52e21d5338fa3b7eb80e.

* Reapply "Removed inconsistent broadcast cooldown whenever the "Announce" button is pressed on the communications terminal."

This reverts commit 3c2d66af865a11ca55eb0e98db58a955c0d70c00.

* -Removed cooldown entirely
2024-03-28 16:41:20 +11:00
blueDev2 4d9a79d96b
Allow cargo bounties to be sold off-station (#26469)
* Ported over code for delta-v to fix bounties

* Added requested changes

* Removed the station arg from "IsBountyComplete". It is unneeded and all calls just use a null value for it anyways
2024-03-28 15:06:00 +11:00
Leon Friedrich 8a6879bb1b
Misc ItemToggleSystem changes (#26489)
* Minor ItemToggleSystem tweaks

* Update visuals on startup

* Remove SetIgnited

* Misc toggle fixes

* Update ItemToggleHotComponent.cs
2024-03-28 15:05:04 +11:00
Leon Friedrich 77e029d4ca
Remove atmos method events (#26402)
* Remove HasAtmosphereMethodEvent

* Remove GetTileMixturesMethodEvent

* Remove GetTileMixtureMethodEvent

* Remove GetAdjacentTilesMethodEvent

* Add TileMixtureEnumerator

* Remove GetAdjacentTileMixturesMethodEvent

* Remove IsTileSpaceMethodEvent

* Remove HotspotExposeMethodEvent

* Remove pipe net method events

* Remove device method events

* Use Entity<T>

* Misc fixes

* A

* Theres probably a few more of these

* Fix other resolve errors
2024-03-28 13:22:19 +11:00
0x6273 37b8d78dac
Body code cleanup (#24946)
* Fix test

* Kill float accumulators

* Use entity proxy methods

* DataField auto name generation where possible

* Kill comp properties

* Clean up server comps

* Make events record structs

* Clean up shared body code

* Clean up server body code

* Rename organ events to be same names as in med refactor
2024-03-27 17:48:37 -07:00
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
LordCarve 7d275a4b5e
Obsolete `Logger` cleanup for `EntitySystem`s part 2 (#26159)
* Kill the static InRangeUnOccluded

* Adjusted 4 more EntitySystems that were missed.
2024-03-17 18:31:09 +11:00
Ed c35ff87e14
SlowContactsSystem to SpeedModifierContactsSystem mini rework (#26110)
* rework

* update logic
2024-03-17 13:27:22 +11:00
metalgearsloth 677fd3c6db
Fix presetidcard extended access throwing (#26195) 2024-03-16 21:10:59 -04:00
metalgearsloth f8d023f286
Fix store refunds (#26173) 2024-03-17 01:06:17 +11:00
Krunklehorn 8ecb78ee5a
Fix StrippableSystem blunders (#26166)
* Fixes target hand check when no hands were needed.

* Adds missing CanStripX checks.

* Whitespace.

* Fixed bad math causing instant strips.
2024-03-16 14:50:53 +11:00
Nikolai Korolev 3425444c53
Small performance optimization. Don't do String.Trim() second time (#26161)
Don't do Trim 2 times
2024-03-15 17:49:09 -04:00
lzk 456b2a7b56
Fix light replacer popup (#26136) 2024-03-15 18:23:58 +03:00
Tayrtahn f0dfe3f6fb
Fix tranq rounds injecting when reflected (#26141)
* Fix tranq rounds injecting when reflected

* Cleanup using directives

* Remove FixtureId from component
2024-03-16 00:57:15 +11:00
Tayrtahn cf0da11eb7
Code cleanup: puddles and spreaders (#26102)
* Removed obsolete MapManager calls

* More code cleanup

* EnsureComp

* Rerun tests
2024-03-15 14:41:08 +11:00
Krunklehorn 41ca8f3dfc
StrippableSystem doafter overhaul (#25994)
* Initial commit

* Fixed short circuiting

* Use DebugTools

* Use Entity<TComp> more, and make them nullable

* Bring these two together
2024-03-15 13:57:52 +11:00
nikthechampiongr dce24dfd03
Make radio jammer block suit sensors (#26046)
* Make radio jammer block suit sensors

* Fix stupid

Use CancellableEventArgs instead of doing what the hell I was doing before.

* Address Reviews.

Change the event from a CancellableEntityEventArgs to a ByRefEvent.
2024-03-14 11:55:14 -04:00
Crotalus d674be697e
Sort agents by success rate in end game summary (#26058)
* Sort agents by completed objectives

* Use StringBuilder
2024-03-14 11:52:45 -04:00
Pieter-Jan Briers 0ecc5e8c96
Throttle people trying to connect to a full server. (#20972)
* Throttle people trying to connect to a full server.

To reduce spam/load on the server and connection logs table.

Players are forced to wait 30 seconds after getting denied for "server full", before they can try connecting again.

This code is an absolute nightmare mess. I tried to re-use the existing code for the redial timer but god everything here sucks so much.

Requires https://github.com/space-wizards/RobustToolbox/pull/4487

* Use new NetDisconnectMessage API instead.

* Add admin.bypass_max_players CVar.

Just something to help with debugging the player cap on dev, I don't expect this to ever be disabled on real servers.
2024-03-14 19:00:47 +11:00
Mr. 27 3cb1c585c5
Pipebombs and IED rework (#25705)
* inital

* 2-9

* add crafting function, rename ied to fire bomb

* add firebomb ignition

* fikss

* change damage values

* add note

* fix tests i think

* ok

* good

* Review

* warning

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-03-14 15:27:08 +11:00
maylokana 2f2cd4aab7
Drink from closed container fix (#26103) 2024-03-14 15:10:14 +11:00
wafehling c0bbbc33c1
Trading Outpost now has half buy-only and half sell-only pallets (#25955)
* Added new Buy & Sell specific cargo pallets

* Remapped trading outpost with new pallets, tweaked texture

* Removed debug message

* Fixed/Compacted conditional checking to let old pallets still work for backwards compatability

* Update Content.Server/Cargo/Components/CargoPalletComponent.cs

Alright, updating all the references to it.

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>

* Changed textures, changed to enum instead of string for pallet type check

* Few minor code tweaks/formatting fixes

* Missed the prototype change

* Update Content.Server/Cargo/Components/CargoPalletComponent.cs

* Update Content.Server/Cargo/Systems/CargoSystem.Shuttle.cs

---------

Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-03-14 10:26:25 +11:00
nikthechampiongr 85e0a5328a
Add log when a player starts observing. (#26091) 2024-03-14 09:46:41 +11:00
Krunklehorn 674b42b3a0
Fix Butcherable handling, ItemSlots for clown shoes (#25661)
* Fix butcherable handling

* ItemSlots for clown shoes

* Return if handled

* Handle if popup

* Whitespace, spoons are metal

* Zero damage plastic utensils, blacklist by metal+melee

* Hmmm truthy

* Plastic knives are knives too, just use that

* Delete unused tag

* Always true if doAfter

* Raw rat meat should be sliceable too
2024-03-13 21:03:14 +11:00