Commit Graph

5255 Commits

Author SHA1 Message Date
metalgearsloth
a440ccfc7c Fix cuffs popup prediction (#25553) 2024-02-26 00:10:02 +11:00
Krunklehorn
902198d7e0 Fix candy bowls (#25514)
* Before SharedItemSystem

* Fixes mispredict, removed unused

* Fix physics
2024-02-26 00:08:14 +11:00
metalgearsloth
bb0776c496 Revert "Cleanup ExecutionSystem (#24382)" (#25555)
* Revert "Cleanup ExecutionSystem (#24382)"

This reverts commit bcbe2ec1af.

* Revert "Executions (#24150)"

This reverts commit 2e83f5a0ec.

# Conflicts:
#	Content.Shared/Weapons/Melee/SharedMeleeWeaponSystem.cs
2024-02-25 22:36:17 +11:00
nikthechampiongr
bcbe2ec1af Cleanup ExecutionSystem (#24382)
* Creat Execution Component and add to sharp items

* Kill Server ExecutionSystem. Create ExecutionSystem in shared. Create ActiveExecution Component.
Transferred the Execution system into shared. Heavily re-wrote the system in order to reduce duplication,
and remove gun code from the system.
The melee weapon modifier which was dependant on swing rate was removed.

The ActiveExecutionComponent was created in order to apply the damage modifier to the shot from a gun execution.
It is added just before the gun fires and removed after an attempt is made.

* Fix bugs

The execution completed text will now only show up if the gun fires.

The client also no longer crashes because I forgot to network the component.

* Remove clumsy text

* Make BaseSword abstract

* Add ExecutionComponent to every weapon

* Fix bug

* Remove execution comp from battery weapons

Currently the gun system does not have a way to alter hitscan damage like it does with projectiles.

* Cleanup

* Revert "Remove clumsy text"

This reverts commit a46da6448d5d179a4e936f9213d5622bedb58a16.

* Actually fix the ExecutionSystem

Everything about the shot goes through the gun system now.
The Damage multiplier is only applied when a projectile impacts the target so people that get in the way don't get hit
with 9 times damage for no reason.

In order to make suicides work I needed to create fake EntityCoordinates because the gun system and the projectile
system do not play well with a projectile that has the same start and end position.

* Make launchers able to execute

* Fix prediction bug

The OnAmmoShotEvent is only raised on the server.

* Readd ability for clowns to accidentally shoot themselves while executing

* Cleanup

* Reset melee cooldown to initial value

* Address reviews fix bug

Addressed reviews on overriding messages.
Now I actually mark doafters as handled.
Return normal cooldown to some meleeweapons I forgot on the previous commit.

* Address Reviews

Remove duplication

* Exorcise codebase

Remove evil null coercion that I was sure I removed a while ago

* Address reviews again

* Remove melee weapon attack logic and rely on the system. Remove gun and
melee checks.

* Make system functional again and cleanup

* Remove code I forgot to remove

* Cleanup

* stalled

* Selectively revert gun penetration

The collision layer check doesn't work and I don't have time to fix it.

* Fixes

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
2024-02-25 22:07:10 +11:00
metalgearsloth
ec5edc3626 Selectively revert gun penetration (#25551)
The collision layer check doesn't work and I don't have time to fix it.
2024-02-25 21:58:08 +11:00
Debug
e1cce9d842 Prevent clients from setting their species to whatever they want (#25535)
Prevent epic hack
2024-02-24 22:00:28 -05:00
metalgearsloth
d8e5f5c24b Optimise DecalOverlay (#25266)
ChunkSize is still 32 so doesn't cut down on heaps of decals atm though we avoid passing many decals to drawing with the coordinates bounds check now.
2024-02-23 18:12:23 +11:00
Pieter-Jan Briers
715794dd41 Make department / job list sorting consistent. (#25486)
* Make department / job list sorting consistent.

This makes late join, crew manifest and character profile all apply consistent sorting for jobs and departments.

We use the already-defined weights for departments (so command, then sec, then station specific, then just sort by prototype ID). Jobs also use weight (so heads are always at the top) then prototype ID, then character name (for manifest).

Removed the crewmanifest.ordering CVar as doing it via prototype weight is just easier, and that CVar was already a mess anyways.

* Fix jittery job icons in lists.

They were set to KeepCentered in TextureRect. This has issues because the allocated space is actually an odd number of pixels, so it tries to position the draw at a half pixel offset.

Now, yes, fixing this in TextureRect would make much more sense, but get off my back. (Ok seriously we need better helper functions for doing that in the engine. Don't wanna deal with that right now and I already have this patch made.)

Instead I'm just gonna fix the issue by using VerticalAlignment in all these places instead which ends up doing exactly the same thing YIPPEE.

Also gave a margin next to the icon on the crew manifest. Margins people!
2024-02-23 15:04:44 +11:00
Pieter-Jan Briers
b1de6dd601 Switch project files to C# 12. (#25487)
Just unlocks new language features like primary constructors.
2024-02-23 15:02:59 +11:00
Tayrtahn
381bb9020a Add prediction to Openable (#25477)
* Fix formatting problem with FullOpened

* Moved to Shared and networked

* Revert "Fix formatting problem with FullOpened"

This reverts commit f8353403da830a4402bdd457bcf24a2432a5f566.
2024-02-23 12:09:43 +11:00
Nemanja
ce0a51fc29 Predict doors and airlocks (#25419)
* predict doors and airlocks

* prying, too

* ack

* eek
2024-02-23 10:01:31 +11:00
J. Brown
b26e9a9a32 Fix #22933 - Job-specific Uplink items leaking to non-job minds (#23179)
Fix for 22933 - SharedMindSystem now checks for VisitingMindComponent too.
2024-02-22 22:03:44 +11:00
keronshb
046c874dae Moves muted to shared (#25374)
* moves muted to shared

* fixes usings

* Update MutedComponent.cs

funny webedit

* Update MutedComponent.cs

oops using statement webedit
2024-02-21 15:53:46 -05:00
dffdff2423
a3c93b0bd7 Add option for admins to disable bwoink (#25008)
* Add option for admins to disable bwoink

In a vain attempt to get people to ahelp more, provide the possibility
for admins to not play the bwoink sound if they don't want to scare the
player.

* Add silent indicator to discord relay

* Use string interpolation
2024-02-20 23:52:03 -07:00
Debug
8c6a8c3c5c Remove drones, fix InnateToolSystem (#25372)
* Fix drones

* They dont need a full bloodstream

* Incorrect indentation

* Nuke drones

* Fix ClothingHeadHatCatEars

* Remove last mention of drones

* Implement requested changes
2024-02-20 23:23:04 -07:00
Callmore
5a2c744998 Tiny shove fix. (#25353)
* Remove second shove check.

* Change when popups and sounds are created.
Reduces phantom shoves that feel bad.

* why didn't i think of this i saw it earlier...

* Replaced Is fields with prefix

* remove some dependencies to fix tests???
2024-02-21 15:01:45 +11:00
Pieter-Jan Briers
74a31ac5f3 PlayerListControl fixes. (#25248)
* PlayerListControl fixes.

Fix a button being selected by default always, which then can't be selected properly for real. This affected multiple admin UIs.

This broke due to upstream RT changes but ButtonGroup was always kinda busted so whatever. Uses the new IsNoneSetAllowed to implement everything properly.

Also make sure the selected player STAYS selected when filtering the list and stuff.

Also this PlayerInfo record has been changed to only do equality on the User ID because otherwise it'd need to compare each field individually which would be weird.

* Revert changes to ListContainer

This change was made default in the engine, no longer necessary here.
2024-02-20 10:13:48 +01:00
Pieter-Jan Briers
2e6eaa45c5 Fix admin notes and database time nonsense. (#25280)
God bloody christ. There's like three layers of shit here.

So firstly, apparently we were still using Npgsql.EnableLegacyTimestampBehavior. This means that time values (which are stored UTC in the database) were converted to local time when read out. This meant they were passed around as kind Local to clients (instead of UTC in the case of SQLite). That's easy enough to fix just turn off the flag and fix the couple spots we're passing a local DateTime ez.

Oh but it turns out there's a DIFFERENT problem with SQLite: See SQLite we definitely store the DateTimes as UTC, but when Microsoft.Data.Sqlite reads them it reads them as Kind Unspecified instead of Utc.

Why are these so bad? Because the admin notes system passes DateTime instances from EF Core straight to the rest of the game code. And that means it's a PAIN IN THE ASS to run the necessary conversions to fix the DateTime instances. GOD DAMNIT now I have to make a whole new set of "Record" entities so we avoid leaking the EF Core model entities. WAAAAAAA.

Fixes #19897
2024-02-20 10:13:31 +01:00
Leon Friedrich
bd4597c5ca Fix action state handling bug (#25395)
* Rejig action state handling

* Fix entity arg

* Fix deserialization
2024-02-20 13:08:41 +11:00
Mr. 27
1e95c700eb randomized sexless species now have epicene gender by default (#25282)
Fikss
2024-02-19 15:38:06 -07:00
Tayrtahn
c4c98a2f59 Make metamorphic glasses use last solution's empty sprite (#25322)
Make metamorphic glasses use empty sprite for the last solution they contained.
2024-02-19 15:32:34 -07:00
Tayrtahn
e74f3019f7 Add support for metamorphic fill levels (#25022)
* Added support for fill levels to metamorphic glasses

* Fix warnings and cleanup

* Don't break non-metamorphic fills!
2024-02-19 14:29:42 -07:00
Pieter-Jan Briers
1ce2155315 Add new "OptionsVisualizer" (#25128)
This is a visualizer somewhat similar to the Generic. It allows configuring appearance info based on specific CVars the user has set. This allows YAML to easily configure alternatives for accessibility CVars like reduced motion.
2024-02-17 15:52:11 -05:00
Geekyhobo
dbf2c64cfd Adds a massban flag to the admin flags (#25327)
Adds a massban flag to the admin flags used on ss14 to ban large amounts of players rom a .tsv file

Co-authored-by: Geekyhobo <66805063+Ahlytlex@users.noreply.github.com>
2024-02-17 21:32:21 +01:00
Vasilis
cb999d23f4 Save round information into replay_final.yml (#23013)
* Save round information into the replay

* Add round end text too

* This is way better

* Get actual job

* oop

* OK THERE

* Fake line endings to make life easier

* I was told this yaml is legal

* I just realised this will make my life easier

* REVIEWS BABY IM A PROGRAMMER MOMMY

* Live pjb reaction

* Live pjb reaction 2

* Reviews 2

* Dont need this

* Please no more have mercy on my soul

* Oh frick
2024-02-17 21:30:54 +01:00
Arendian
9969bd2584 Fix nymphs being deleted immediatly after spawning (#25344)
* nymphs now don't get deleted together with the body of the diona

* moved nymph system to server
2024-02-17 09:38:21 -07:00
LankLTE
407d4aed58 Diona Nymphs & Splitting (#24630)
* Porting & implementation

* Fix two stupid errors

* Human not humans

* fix audio path

* Fix test fails & update cooldown

* Work on reviews & test fail

* Rework nymph organ system.

* Make the nymph organs nospawn.

* IsDeadIC
2024-02-16 18:54:44 -08:00
Pieter-Jan Briers
33611b7094 Solution precision fixes (#25199)
* Add test for two chemistry issues

1. rounding issue with reaction processing when making chloral hydrate
2. reliable assert trip due to the ValidateSolution() heat capacity issue.

* Fix FixedPoint2 arithmetic

Fix internal floating point arithmetic in places where it could be avoided.

Fix incorrect rounding mode used in other places (it should always floor, like regular int arithmetic).

I had to add an explicit epsilon value for float -> FixedPoint2 because something like 1.05 is actually like 1.04999 and that'd cause it to be rounded down to 1.04.

This fixes reaction reagent processing in cases where the reagent inputs can't cleanly divide. Previously, when making 30u chloral hydrate by adding the chlorine in 10u increments you'd end up with 0.04 chlorine left over. This was caused by division in the reaction code rounding up in some cases. Changing division here to always round down fixes it.

* Attempt to fix heat capacity precision assert issues.

Fixes #22126

First, we just increase the tolerance of the assert. It was way too low.

Second, actually put a cap on float drift from one-off _heatCapacity changes.

* Fix float -> FixedPoint2 epsilon for negative number, fix tests.

* Fix DamageableTest

* Oh yeah I need to call CleanReturnAsync
2024-02-16 16:54:27 -07:00
MilenVolf
c7870882f6 LockVisualizer (#25224)
* LockVisualizer

* Fix state

* Clean some code

* Make it component, fix tests fail

* Fix for StateUnlocked

Now it is possible to manually set the unlocked state and it will work!

* Optimize LockVisualizer, add check for unlocked state

* No todo I guess
2024-02-16 16:52:31 -07:00
Krunklehorn
1de3f24f16 Add sfx for writing on paper (#25257)
* Initial commit

* Moved params to sound

* Removed type tag

* Removed null check

* Forced default
2024-02-16 16:48:18 -07:00
themias
d7eb3b1c5c Allow t-ray to penetrate carpets and puddles (#25276)
* Allow t-ray to penetrate carpets and puddles

* handle edge cases
2024-02-16 16:37:56 -07:00
Golinth
bced73f676 Kill Seperated Mindshield Icons (#25303)
* Unghettoify mindshield icons

Adds support for layers in status icons, through the StatusIconLayer enum and the new "layer" datafield. Defaults to the Base layer where functionally remains unchanged.

* TG icon for shield

probably better than the shitty one I made in paint

* forgor meta.json

I forgor

* Emo review

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>

---------

Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
2024-02-16 10:58:28 -05:00
Pieter-Jan Briers
3a45d519dc Nuke fancification (#25297)
Actually use more icon states for deployed/armed/about to explode

Also unlit layer.

Also examine text
2024-02-15 16:26:45 -08:00
Vasilis
7e44c50d19 Made ghost.role_time a server modifiable only cvar (#25292)
Fix
2024-02-16 00:30:55 +01:00
Jezithyr
be29a054de Death acidifier fix (#25251) 2024-02-14 17:37:56 -08:00
Pieter-Jan Briers
6d8be538c9 Predict Injector (syringes), cleanup (#25235)
At least the mode/transfer amount logic. Actual transfer logic needs Bloodstream which I didn't wanna move into shared.
2024-02-14 16:05:01 -07:00
Errant
5a9ab3b315 Vox names, species prototype cleanup, some cosmetic changes (#24994)
* voxnames

* New generator parameters, names are more readable

* bunch of missing vox stuff

* more names

* sad
2024-02-14 14:08:45 +11:00
Guilherme Ornel
ff92025026 Fax machines can print from text file (#23262)
* added

* checks tweaking

* fixed what sloth wanted

* fixed?

* dialog diposing fix

* checks tweaking

* more changes

* dispose streamreader

* Update Content.Client/Fax/UI/FaxBoundUi.cs

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

* Update Content.Server/Fax/FaxSystem.cs

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

* fix minor typo

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-02-14 12:14:51 +11:00
James Simonson
25f73f6406 Microwave UX enhancements (#24547)
* Facelift Microwave UI

Includes new background light in UI, Uses predictive input, UI now properly disables buttons when microwave is active

* Microwave now shows Elapsed time

* Fixed bad formatting

* Added new term for "BottomMargin"

* Change yellow color

* Update StyleNano.cs

just spacing fixed

* Cook time countdown now detached from server


Instead of the server constantly sending out messages for the cook countdown, it is now predicted client side using TimeSpan

* Update MicrowaveMenu.xaml

forgot to re-add item space
2024-02-13 17:16:00 -05:00
Ed
ae321151ca Shadow anomaly returns (#24629)
* content

* add cat

* ambient

* I FORGOT HEARTS!

* fix ambient

* some fixes

* canCollide: false

* connect to damageable

* pi

* remove fx

* some fixes

* *sad bruh*

* hazed

* Update base_shadow.yml
2024-02-13 17:12:32 -05:00
Tayrtahn
75e47fff9e Add verbs to Open/Close Openable containers, and add optional seals (#24780)
* Implement closing; add open/close verbs

* Add breakable seals

* Allow custom verb names; make condiment bottles closeable

* Remove pointless VV annotations and false defaults

* Split Sealable off into a new component

* Should have a Closed event too

* Oh hey, there are icons I could use

* Ternary operator

* Add support for seal visualizers

* Moved Sealable to Shared, added networking

* Replaced bottle_close1.ogg
2024-02-13 17:08:07 -05:00
Pieter-Jan Briers
68ce53ae17 Random spontaneous cleanup PR (#25131)
* Use new Subs.CVar helper

Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.

This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.

* Fix a bunch of warnings

* More warning fixes

* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.

* Get rid of some more ISerializationHooks for enums

* And a little more

* Apply suggestions from code review

Co-authored-by: 0x6273 <0x40@keemail.me>

---------

Co-authored-by: 0x6273 <0x40@keemail.me>
2024-02-13 16:48:39 -05:00
Vasilis
c50aee2f9f Allow inspecting ID's and Health of people behind glass (#25163)
Hops will love me
2024-02-13 17:41:56 +11:00
deltanedas
f41ece37c3 make linking logic gates 1000% better (#25041)
* make door status use SendSignal

* LastSignals and logic, add ClearSignal api too

* make everything outputting a logic signal default to false

* refactor ops

* :trollface:

* :trollface:

* protoid for LastSignals

* oop

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
2024-02-11 23:45:51 -07:00
SlamBamActionman
247be5b5c7 Add option for character name colors in chat & move coloration to clientside (#24625)
* Adds option to disable character names in chat/speechbubbles

* Moved the coloring of names to clientside

* Move string functions to SharedChatSystem to avoid duplicate code in SpeechBubble.cs

* Changed to be put under Accessibility section

* Cache CVar
2024-02-10 22:38:55 -08:00
Jajsha
402051c670 Fix borgs being able to emag themselves (#24748)
* Fix self emagging borgs

* Add popup on self emag failure.
2024-02-10 22:23:32 -08:00
metalgearsloth
05a2ddff1c Predict two-way levers (#25043)
* Predict two-way levers

Annoys me the rare occasions I touch cargo. Doesn't predict the signal but at least the lever responds immediately.

* space

* a
2024-02-11 14:19:45 +11:00
Jezithyr
8e59b4f505 Gibbing contents hotfix (#25114)
Fixing gibbing contents not respecting Include/Exclude container lists. This is currently unused
2024-02-10 16:37:32 -08:00
Jezithyr
541d8f8715 Gibbing refactor (Per-part gibbing and giblet throwing!) (#24989)
* Moving Gibbing rework out from medrefactor into it's own PR

* Re-enabled warning for missing gibbable on TryGibEntity

* Implemented better logic for gibbing failover and better logging

* Allowing audio params and drop scattering customization per component. Created UnGibbable organ base types and made brains ungibbable.
Removed delete brain from gibBody function. Artifact crusher does not destroy brains anymore. It only destroyed brains before not other organs which was wierd.

* Update Content.Shared/Body/Systems/SharedBodySystem.Body.cs

Fixing space for multiplication

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

* Added event raised when attempting to gib contained entities to allow modification of allowed and excluded container ids

* removing audioParams var from component (sound specifier includes it)

* Fixing signature

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
2024-02-10 15:37:06 -08:00
themias
f7a3ea6dcf Flipped caps real (#24961)
* Flipped caps real

* oops

* whoops

* flip not fold

* fix formatting

* cargosoft formatting
2024-02-10 00:44:19 -08:00