Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clown shoes make you waddle, as God intended #26338

Merged
merged 6 commits into from
Apr 14, 2024
Merged

Clown shoes make you waddle, as God intended #26338

merged 6 commits into from
Apr 14, 2024

Conversation

FairlySadPanda
Copy link
Contributor

@FairlySadPanda FairlySadPanda commented Mar 22, 2024

About the PR

Clowns now waddle.

Why / Balance

Why the fuck did nobody code this already

Technical details

Animations stink at the moment, why can't you define them in YAML

Media

  • I have added screenshots/videos to this PR showcasing its changes ingame, or this PR does not require an ingame showcase

OLD BEFORE SLAM BAN ACTION MAN SAID IT LOOKED TOO INTENSE
https://github.com/space-wizards/space-station-14/assets/732532/93d18bdf-9fa9-4d81-89c1-4e77481d89bf

THE CLOWN IS NOW NOT ON METH

2024-03-22.16-10-06-1.mp4

Breaking changes

Changelog
🆑

  • add: Clown shoes make you waddle, as God intended.

@SlamBamActionman
Copy link
Member

Don't get me wrong, love the effect, but with how exaggerated it was I thought this was going to the aprils-fools branch.

Maybe tone it down for the clown shoes and go this hard for the cluwne shoes?

@FairlySadPanda
Copy link
Contributor Author

Don't get me wrong, love the effect, but with how exaggerated it was I thought this was going to the aprils-fools branch.

Maybe tone it down for the clown shoes and go this hard for the cluwne shoes?

Getting the animation tuned is tricky so I've just focussed on getting the code done atm

@FairlySadPanda
Copy link
Contributor Author

toned down

2024-03-22.16-10-06-1.mp4

@github-actions github-actions bot added the Status: Needs Review This PR requires new reviews before it can be merged. label Mar 22, 2024
@Dragonjspider
Copy link

Dragonjspider commented Mar 22, 2024

Just a thought more than anything, there's also those flippers you can find in maints sometimes, might be a nice detail for them to make you waddle too, but that might be for a future PR since they're rarely used anyway

@FairlySadPanda
Copy link
Contributor Author

Just a thought more than anything, there's also those flippers you can find in maints sometimes, might be a nice detail for them to make you waddle too, but that might be for a future PR since they're rarely used anyway

It just needs the type adding to any clothing item that wants the animation playing, so super-duper easy

@lzk228 lzk228 mentioned this pull request Mar 22, 2024
1 task
@Hmeister-fake
Copy link
Contributor

i am so happy right now

@UbaserB
Copy link
Member

UbaserB commented Mar 23, 2024

Maybe tone it down for the clown shoes and go this hard for the cluwne shoes?

Just wanted to point out that i agree with this. It should be reduced to half or a third strength imo.

@potato1234x
Copy link
Contributor

make it slightly faster and sway about half as much and its perfect

@FairlySadPanda
Copy link
Contributor Author

I am not an animator and animation code is jank atm. :/ This is about the best I can do

@potato1234x
Copy link
Contributor

potato1234x commented Mar 24, 2024

just set AnimationLength to 0.4 and tumble/hop intensity to 7/0.125 and its good

@EmoGarbage404
Copy link
Member

would need a comparison. i think the current one looks fine.

@FairlySadPanda
Copy link
Contributor Author

2024-03-24_19-19-09.mp4

After discovering I could change timings in VV I was able to tune it to a good result. Thanks to @PJB3005 for catching the prediction problem that was causing stutter and lag on starting walking :>

@FairlySadPanda
Copy link
Contributor Author

FairlySadPanda commented Mar 24, 2024

Oh and as a nice bonus you can tune the exact waddling effect (speed/hop intensity/waddle intensity) in YAML so cluwne shoes can be made to vibrate more than clown shoes etc, but the default is pretty alright for now.

This exposes a pretty major needed rework of movement, of course, because movement has hardcoded footstep sfx handling and I can't like, overwrite how footsteps are handled when I add a bespoke movement animation for something. I'd probably have to add manual animation coding to issue funny squeaky sfx and rip out the current YAML that determines how clown shoes sound, either replacing them with empty sfx or not as needed... and I just wanted to make the clown move funny so you know what, no

@Mangohydra
Copy link
Contributor

please god let this be merged
i want to see this ingame

Copy link
Member

@Tayrtahn Tayrtahn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a much-requested feature! Sorry this PR wasn't reviewed sooner, but you know how it is.

Content.Shared/Clown/WaddleAnimationComponent.cs Outdated Show resolved Hide resolved
Content.Client/Clown/WaddleAnimationSystem.cs Outdated Show resolved Hide resolved
Content.Shared/Clothing/Components/Clown/Waddle.cs Outdated Show resolved Hide resolved
Content.Shared/Clown/WaddleAnimationComponent.cs Outdated Show resolved Hide resolved
Content.Shared/Clothing/Components/Clown/Waddle.cs Outdated Show resolved Hide resolved
Comment on lines 11 to 28
///<summary>
/// How high should they hop during the waddle? Higher hop = more energy.
/// </summary>
[DataField]
public Vector2 HopIntensity = new(0, 0.25f);

/// <summary>
/// How far should they rock backward and forward during the waddle?
/// Each step will alternate between this being a positive and negative rotation. More rock = more scary.
/// </summary>
[DataField]
public float TumbleIntensity = 20.0f;

/// <summary>
/// How long should a complete step take? Less time = more chaos.
/// </summary>
[DataField]
public float AnimationLength = 0.75f;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unless I'm missing something, these values are never actually copied over to the animation component, so it will always use the default values.

I might be getting carried away a bit here, but instead of duplicating three fields manually (and making sure to update the copying logic if more fields are added in the future) it might be cleaner to define a WaddlePrototype that has all the needed fields and just copy the ProtoId over to the animation component.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would need me walked through it by someone, potentially one of the contrib voice chatters. Does it block an approval itself or is there something simpler I could do to get this over the line?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd be fine with just copying each field over instead of doing the whole prototype thing.

Content.Shared/Clothing/Components/Clown/Waddle.cs Outdated Show resolved Hide resolved
Content.Client/Clown/WaddleAnimationSystem.cs Outdated Show resolved Hide resolved
@Tayrtahn Tayrtahn merged commit ef42fb3 into space-wizards:master Apr 14, 2024
12 checks passed
TheShuEd referenced this pull request in crystallpunk-14/crystall-punk-14 Apr 14, 2024
* Fix for the salvage ice labs map. (#26928)

* done

* more work

* Automatic changelog update

* Update Credits (#26938)

Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>

* Fix cryostorage identifying unknown characters as captain (#26927)

Fixed cryostorage getting captain's record for unknown jobs.
Also localized Unknown job string.

* Automatic changelog update

* Fixed Honkbot/jonkbot honking like crazy, gave honkbot/jonkbot standard idle ai. (#26939)

* Fixed Honkbot/jonkbot honking like crazy, gave honkbot/jonkbot standard idle ai.

* Update Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml

---------

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

* Automatic changelog update

* Bug fix: Force cancellation of RCD constructions if the construction type is changed (#26935)

Force cancellation of RCD constructions if the construction type is changed

* Fix standart -> standard and dressfilled test fail (#26942)

Fix standart -> standard

* Add Ability to stop sound when MobState is Dead (#26905)

* Add stopsWhenEntityDead to sound components

* Convert component

* Review

* Fix dupe sub

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Automatic changelog update

* Fix rockets and lasers looking like they have nothing loaded (#26933)

* Automatic changelog update

* You can now see paper on crates (with color!) (#26834)

* Implement changes on not-cooked branch

* Made it work

* Fix update appearance calls

* Fix extra indents, clean-up code, fix tests hopefully

* Fix hammy cagecrate

* Fix messing up the yml, add artifact crate specific labels back in

* Visual Studio hates yml, sad

* Seperate the colors for cargonia

* sorry json

* make label move with artifact door

* Apply suggestion changes

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

* Fix remaining crate offsets, add a few for livestock and graves (why are you labeling graves) and coffin label sprites (why are you labeling coffins??)

---------

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

* Make UtensilSystem and SharpSystem not run AfterInteract if it has already been handled (#25826)

* Make UtensilSystem and SharpSystem not run AfterInteract if it has already been handled

* merge conflicts

---------

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

* Automatic changelog update

* Add two-message overload to PopupPredicted (#26907)

Added two-message overload to PopupPredicted

* Update submodule to 218.0.0 (#26945)

* Autism pins! (#25597)

* hee hee he ha ha

* added gold varients, forgive me for my spritework

* maints loot, copying from past PRs

* Trying to fix RSI

* speedran these sprites in break time, pictures will be later

* Fixed/Tweaked glows

* consensus

* gregregation

* dam copiryte

* oops i forgot to delete 2 fields hope this works

* Automatic changelog update

* Fix database round start date issues (#26838)

How can ONE DATABASE COLUMN have so many cursed issues I don't know, but it certainly pissed off the devil in its previous life.

The start_date column on round entities in the database was added by space-wizards/space-station-14#21153. For some reason, this PR gave the column a nonsensical default value instead of making it nullable. This default value causes the code from #25280 to break. It actually trips an assert though that's not what the original issue report ran into.

This didn't get noticed on wizden servers because we at some point backfilled the start_date column based on the stored admin logs.

So I change the database model to make this column nullable, updated the C# code to match, and made the existing migration set the invalid values to be NULL instead. Cool.

Wait how's SQLite handle in this scenario anyways? Well actually turns out the column was *completely broken* in the first place!

The code for inserting into the round table was copy pasted between SQLite and PostgreSQL, with the only difference being that the SQLite key manually assigned the primary key instead of letting SQLite AUTOINCREMENT it. And then the code to give a start_date value was only added to the PostgreSQL version (which is actually in the base class already). So for SQLite that column's been filled up with the same invalid default the whole time.

Why was the code manually assigning a PK? I checked the SQLite docs for AUTOINCREMENT[1], and the behavior seems appropriate.

I removed the SQLite-specific code path and it just seems to work regardless. The migration just sets the old values to NULL too.

BUT WAIT, THERE'S MORE!

Turns out just doing the migration on SQLite is a pain in the ass! EF Core has to create a new table to apply the nullability change, because SQLite doesn't support proper ALTER COLUMN. This causes the generated SQL commands to be weird and the UPDATE for the migration goes BEFORE the nullability change... I ended up having to make TWO migrations for SQLite. Yay.

Fixes #26800

[1]: https://www.sqlite.org/autoinc.html

* Fix options menu crashing in replays (#26911)

Not having the nullable set properly is annoying but fixing that would probably be a significant amount of work.

* Greyscale color clothing (#26943)

* greyscales color gloves, color jumpsuits, and shoes

* remove popbob

* fix test fails

* Automatic changelog update

* WT550 Buffs + Burst Mode for WT550 & C-20R (#26886)

* Slightly increased WT550 Firerate, drastically reduced recoil, and given it the option to fire in 5 round bursts.

* Given the C-20 a 5 round burst aswell

* Automatic changelog update

* make holoparasites actually holographic (#26862)

it's over

* Automatic changelog update

* Add character sheets to board game crate (#26926)

add character sheets to board game crate

* Automatic changelog update

* Game server admin API (#26880)

* Reapply "Game server api" (#26871)

This reverts commit 3aee197.

* Rewrite 75% of the code it's good now

* Wield recoil components (#26915)

* WieldRecoilComponents

* WieldRecoilComponents

* Update Content.Shared/Weapons/Ranged/Components/GunWieldBonusComponent.cs

Co-authored-by: Whisper <121047731+QuietlyWhisper@users.noreply.github.com>

* Update Content.Shared/Weapons/Ranged/Components/GunWieldBonusComponent.cs

---------

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

* Clown shoes make you waddle, as God intended (#26338)

* Clown shoes make you waddle, as God intended

* OOPS

* Toned down, client system name fix

* Tidy namespacing for @deltanedas

* Refactor to handle prediction better, etc.

* Resolve PR comments.

* Automatic changelog update

* Use round time instead of server time for criminal history (#26949)

make criminal records computer use round time for history instead of the server time

* Rotate and Offset station CCVar nuke (#26175)

* no content

* add noRot to Europa

* bruh. and this

* yay

* fix

* Update debug.yml

---------

Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: superjj18 <gagnonjake@gmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: GreaseMonk <1354802+GreaseMonk@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: DrSmugleaf <10968691+DrSmugleaf@users.noreply.github.com>
Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: Terraspark4941 <terraspark4941@gmail.com>
Co-authored-by: Pieter-Jan Briers <pieterjan.briers+git@gmail.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: BramvanZijp <56019239+BramvanZijp@users.noreply.github.com>
Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>
Co-authored-by: Tyzemol <85772526+Tyzemol@users.noreply.github.com>
Co-authored-by: Froffy025 <78222136+Froffy025@users.noreply.github.com>
Co-authored-by: Whisper <121047731+QuietlyWhisper@users.noreply.github.com>
Co-authored-by: Hannah Giovanna Dawson <karakkaraz@gmail.com>
Co-authored-by: ilya.mikheev.coder <imc-ext+github@ilyamikcoder.com>
SlamBamActionman pushed a commit to SlamBamActionman/space-station-14 that referenced this pull request May 8, 2024
@Golinth Golinth mentioned this pull request Oct 5, 2024
2 tasks
rbertoche pushed a commit to rbertoche/space-station-14 that referenced this pull request Oct 11, 2024
* Fix: Prevent single-use hyposprays from getting the toggle draw verb (#26595)

Prevent single-use hyposprays from getting the toggle draw verb

Co-authored-by: Plykiya <plykiya@protonmail.com>

* MeleeHitSoundSystem (#25005)

* Began work to unscrew melee noises

* finished

* cleanup

* cleanup

* Update Content.Server/Weapons/Melee/MeleeWeaponSystem.cs

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>

* _Style

* Fix merge

---------

Co-authored-by: Ed <96445749+TheShuEd@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Remove physics comp from VendingMachineWallmount (#25632)

* Remove physics comp from VendingMachineWallmount

* Fixtures removal

---------

Co-authored-by: Jeff <velcroboy333@hotmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Remake hairflowers (#25475)

* Add more lily usage (orange hairflower and flowercrown)

* comit 2

* ee

* more fixes

* w

* im stupid

* bring poppy in authodrobe

* weh

---------

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

* Injector UI shows TransferAmount change, Spilling liquid changes Injector mode (#26596)

* Injector UI shows TransferAmount change, spill changes mode

* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs

* Update Content.Shared/Fluids/SharedPuddleSystem.Spillable.cs

---------

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

* disallow unanchoring or opening panels on locked emitters/APEs (#26600)

* disallow unanchoring or opening panels on locked emitters/APEs

* no locking open panels

* oops

* needback feedback

* Update Content.Shared/Lock/LockSystem.cs

* Update Content.Shared/Lock/LockSystem.cs

* Update Content.Shared/Lock/LockSystem.cs

* sanity

---------

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

* Fix grave digging sound indefinitely playing if dug by aghost. (#26420)

Admins bypass doafters. As such, the code that runs on doafter
completion is ran before the sound is actually created. This then leads
to the sound never being stopped, and as such it would infinitely play.

This commit gets around the issue by manually stopping the sound should
the doafter fail to start. If we could be sure that the doafter would
never fail, then we could just move the call to StartDigging above
starting the doafter but this is currently not possible.

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Make the buttons on the map ui not squished (#26604)

Make the map ui work

Co-authored-by: wrexbe <wrexbe@protonmail.com>

* Combine flower crown and wreath (#26605)

* Combine flower crown and wreath

* huh

* huuh :trollface:

* Add AP damage to throwing knives (#26380)

* add

* ap

* no more stam dmg

* cancelable brig timers (#26557)

brig timers now cancelable. also some screensystem yakshave

* Fix orientation of roller skate sprites (#26627)

Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>

* Fix GastTileOverlay sending redundant data (#26623)

Fix GastTileOverlay not updating properly

* Auto DeAdmin sooner (#26551)

Co-authored-by: wrexbe <wrexbe@protonmail.com>

* Add briefcase to curadrobe and lawdrobe, and some briefcases cleanup (#26527)

* Add briefcase to curadrobe and some briefcases cleanup

* also add to lawdrobe

* Fix some text overflow bugs in HUD (#26615)

* Don't clip text in item status

* Fix overflow in examine tooltip

---------

Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>

* Adds two milk cartons to the BoozeOMat (#26635)

* made the hover text less vague (sorry) (#26630)

* blacklisted throwing knifes from pneumatic cannon (#26628)

* Fix radio jammer not blocking suit sensors. (#26632)

As it turns out, they are not in fact on their own netid. They are
actually just on wireless. The way I had tested my previous pr led to
this mistake being made. I originally had the radio jammer block
wireless as well, but decided to take out under the flase assumption
that it suit sensors were actually on their own netid and did not
require the ability to block all wireless packets at the last moment.

* Replace drill_hit.ogg and drill_use.ogg with better sounds (#26622)

* Replace drill_hit.ogg and drill_use.ogg with better sounds

* Fix attribution source for drill_hit.ogg

* Update Resources/Audio/Items/attributions.yml

Co-authored-by: Kara <lunarautomaton6@gmail.com>

* Update Resources/Audio/Items/attributions.yml

Co-authored-by: Kara <lunarautomaton6@gmail.com>

---------

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

* Gave Blast door access permissions (#26606)

Added access reader to all blast doors. Added pre configured blast doors for engineering and science.

* Gives all wheeled objects low friction (#26601)

* gives all wheeled objects friction

* adjustments to sum stuff

* Combine solution injection systems; Fix embeddable injectors (#26268)

* Combine injection systems

* Update Content.Server/Chemistry/EntitySystems/SolutionInjectOnEventSystem.cs

---------

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

* Add ValueList import (#26640)

* Change assault borg modules texture (#26502)

* Update borg_modules.yml

* Fix borg_modules.yml?

* Uh

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Add Cyborg Emote Sounds (#26594)

* Hal 9000's first emote

* Add Chime emote & Change variation to 0.05

* Modify Buzz emote

* Add Buzz-two emote

* modified Horn

* add ping emote

* add slowclap emote

* Convert slowclap.ogg to mono, reflect change in attribution.yml

* fix capitalization for all chatMessages && change all catagory to category

* remove all traces of slowclap.ogg

* forgor one file smh

* collating copywrite

* spelling mistakes will be the death of me

* more spelling mistakes

* change yml string to list

* Coordinates Disks & Shuttle FTL Travel (#23240)

* Adds the CentComm Disk and configures it to work with direct-use shuttles

* Added functionality for drone shuttles (i.e. cargo shuttle)

* Adds support for pods, and a disk console object for disks to be inserted into. Also sprites.

* Added the disk to HoP's locker

* Removed leftover logs & comments

* Fix for integration test

* Apply suggestions from code review (formatting & proper DataField)

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

* Fix integration test & changes based on code review

* Includes Disk Cases to contain Coordinate Disks, which are now CDs instead of Floppy Disks

* Check pods & non-evac shuttles for CentCom travel, even in FTL

* Import

* Remove CentCom travel restrictions & pod disk consoles

* Major changes that changes the coordinates disk system to work with salvage expeditions

* Missed CC diskcase removal

* Fix build

* Review suggestions and changes

* Major additional changes after merge

* Minor tag miss

* Integration test fix

* review

---------

Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Add door electronics access configuration menu (#17778)

* Add door electronics configuration menu

* Use file-scoped namespaces

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Open door electronics configuration menu only with network configurator

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Doors will now try to move their AccessReaderComponent to their door electronics when the map is initialized

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Make the access list in the id card computer a separate control

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Fix merge conflict

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Remove DoorElectronics tag

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Integrate doors with #17927

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Move door electornics ui stuff to the right place

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Some review fixes

Signed-off-by: c4llv07e <kseandi@gmail.com>

* More fixes

Signed-off-by: c4llv07e <kseandi@gmail.com>

* review fix

Signed-off-by: c4llv07e <kseandi@gmail.com>

* move all accesses from airlock prototypes to door electronics

Signed-off-by: c4llv07e <kseandi@gmail.com>

* rework door electronics config access list

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Remove Linq from the door electronics user interface

* [WIP] Add EntityWhitelist to the activatable ui component

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Better interaction system

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Refactor

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Fix some door electronics not working without AccessReaderComponent

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Move AccessReaderComponent update code to the AccessReaderSystem

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Remove unnecesary newlines in the door access prototypes

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Remove unused variables in access level control

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Remove unnecessary method from the door electronics configuration menu

Signed-off-by: c4llv07e <kseandi@gmail.com>

* [WIP] change access type from string to ProtoId<AccessLevelPrototype>

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Remove unused methods

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Newline fix

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Restored to a functional state

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Fix access configurator not working with door electronics AccessReaderComponent

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Replace all string access fields with ProtoId

Signed-off-by: c4llv07e <kseandi@gmail.com>

* move access level control initialization into Populate method

Signed-off-by: c4llv07e <kseandi@gmail.com>

* Review

---------

Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* scoopable ash and foam, solution transfer prediction (#25832)

* move SolutionTransfer to shared and predict as much as possible

* fully move OpenableSystem to shared now that SolutionTransfer is

* fix imports for everything

* doc for solution transfer system

* trolling

* add scoopable system

* make ash and foam scoopable

* untroll

* untroll real

* make clickable it work

* troll

* the scooping room

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Replace the teleportation logic on the SCRAM implant! (#26429)

* Replace the teleportation logic on the SCRAM implant!

Now instead of just trying to pick a random tile in range 20 times, the
scram teleportation logic now:

- Gets a list of grids in range
- Until a suitable tile is picked it picks a random grid
- From that grid it picks a random tile.
- If the tile is suitable, then it is set as the target and the user
  will be teleported there.
- Grids and tiles are randomly picked as outlined above until a valid
  tile is found, or all valid grids and tiles are exhausted.
- Should no suitable tile be found then they get teleported to the same
  position they are at. Effectively not teleporting them.

* Actually make the defaults sane which I forgor in the last commit

* Extract tile section to its own function. Bias selection for current grid. Use proper coords for box.

* Address reviews as much as possible

* Address reviews

* Refactored AdvertiseComponent (#26598)

* Made it better

* ok

* alright

---------

Co-authored-by: wrexbe <wrexbe@protonmail.com>

* Bartender "Essentials" (#25367)

* drinks round 1

saving my progress before my hard drive explodes

* test 2

please work

* name fixes

whoops

* Update drinks.yml

* various fixes

am dumb

* add sol dry to vends

more fixes and changes, yippee!

* more fixes & ingame testing

shrimple tests

* last fixes :trollface:

should be ready for pr now

* Update soda.yml

sate thirst

* Add ERT Chaplain (#25956)

* ERT Chaplain

* Make BibleUser

* It was not intended

* reword my poor words

* 1984 a comment that I decided was unnecessary.

* Update Resources/Prototypes/Entities/Clothing/OuterClothing/hardsuits.yml

---------

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

* Changes in chemicals page in guidebook (#25831)

* Added pages to chemical categories

The chemical categories have their own page now. Added the "Chemical Tabs" in /ServerInfo/Guidebook. Moved the Chemicals code from shiftsandjobs.yml to its own .yml file which is "chemicals.yml".

* Update guides.ftl

* Update chemicals.yml

Changed the guide entry's ID for the medical tab from Medicine to Medicinal.
Hope this works...

* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Biological.xml

Co-authored-by: exincore <me@exin.xyz>

* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Foods.xml

Co-authored-by: exincore <me@exin.xyz>

* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Elements.xml

Co-authored-by: exincore <me@exin.xyz>

* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Narcotics.xml

Co-authored-by: exincore <me@exin.xyz>

* Update Resources/ServerInfo/Guidebook/Chemical Tabs/Toxins.xml

Co-authored-by: exincore <me@exin.xyz>

* Fixed a few errors and stuff!

A few typos have been fixed thanks to exincore. Added dedicated .xml files to be used for the dedicated category pages (Medicinal and Botanical pages). Made it so it doesn't use any duplicated IDs anymore.
If there's more problems, please do tell so I can fix it!

* Update settings.json

* Fix?

---------

Co-authored-by: exincore <me@exin.xyz>

* Anomalies behaviours (#24683)

* Added new anomaly particle

* Add basic anomaly behaviour

* +2 parametres

* add functional to new particle

* add components to behaviours

* big content

* add shuffle, moved thing to server

* clean up

* fixes

* random pick redo

* bonjour behavioUr

* fix AJCM

* fix

* add some new behaviours

* power modifier behaviour

* rmeove timer

* new event for update ui fix

* refactor!

* fixes

* enum

* Fix mapinit

* Minor touches

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Fix clipping/overlap in lathe machine UIs (#26646)

* Add scrollbars to lathe material list when necessary

* Fix bug where shrinking window would cause elements to overlap

---------

Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>

* Added chat window transparency slider to options (#24990)

* Adds a new slider to the misc tab in options that lets the player set chat window transparency

* Tweaked variable names

* Fixed order to match UI

* Renamed set chat window transparency function

* Changed and refactored to opacity instead of transparency

* Remove unnecessary int to float conversions

Slider used to be 0-100 while the CCVar was 0.0-1.0f. This is confusing and was only used for rounding to 2 decimal points.

* Round the value to two decimal points

* Remove rounding for now

* Rename

* Unhardcode chat color by moving to stylesheet

* Fix indent

* Make opacity slider only change opacity

---------

Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>

* Infinity books (#25840)

* setup text data

* roundstart reshuffling keywords with gibberish words

* saved data categorized

* add book with hints

* start redrawing books

* +4 book design

* +books +random visual upgrade

* finish first file

* finish lore file

* finish with books.rsi now authorbooks.rsi...

* aurora! and some fix

* nuke author books

* speelbuke update

* finish respriting work

* fix scientist guide visual

* setup datasets

* setup stupid funny random story

* restore author books, upgrade hint generation

* add variety to story generator

* add learning system

* minor textgen edit

* file restruct, hint count variation

* more restruct

* more renaming
add basis learning system logic. Spears locked for special book for test.

* nuke all systems, for splitting PR gods

* typo fix

* update migration with deleted books

* add random story books to maint

* Update construction-system.ftl

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>

* typo fix

* interchangeably

* final

* Update Resources/Prototypes/Datasets/Names/books.yml

Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>

* "."

* Update Content.Server/Paper/PaperRandomStorySystem.cs

Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>

* Ubazer fix

* inadequate

* localized

* Update meta.json

* fuck merge conflicts

* fix jani book

---------

Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>

* Resprite ambuzol plus pills (#26651)

* Fixed air injector visuals (#26654)

* Make cyborgs hands explosion proof. (#26515)

* Make the advanced treatment modules beakers explosion-proof.

* undo changes

* Epic rename fail

* Explosion recursion data field

* Logic for data field

* Make typing indicator shaded (#26678)

* Validate wire layout prototypes and remove invalid WiresComponents (#26682)

Validate wire layout prototypes; delete invalid wirescomponents.

* Increase time inbetween anomaly pulses (#26677)

nerf anomaly pulse delays

* Fix for items dropped being rotated to world north (#26662)

* Fix rotation of dropped items

* combined world position rotation function for dumpable

* scuffed implementation?

* less scuffed?

* even less scuffed... I guess

* capital D

---------

Co-authored-by: Plykiya <plykiya@protonmail.com>

* fix double interaction popup (#26684)

change popentity to popupclient

* disable foam scooping (#26686)

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Little disk printer sprite tweaks (#26711)

* Little disk printer sprite tweaks

* ill change this aswell

* New lobby art: TerminalStation (#26505)

woop woop

* Unidentified corpses respect gender pronouns (#26715)

fix: LGBT erasure /j

* Things that can't go in disposals now don't "Miss" (#26716)

* Moved is canInsert check to before miss check

* Update Content.Server/Disposal/Unit/EntitySystems/DisposalUnitSystem.cs

---------

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

* Clean up YAML issues in animals.yml (#26696)

* Cleaned up YAML issues in animals.yml

* Cleaned up TimedSpawnerComponent

* fix health analyzer crash (#26700)

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Make the station start with random broken wiring (#26695)

Random wire cutting on round start

* Fix turned off thrusters consume power (#26690)

* Mail Unit Fix (whitelist) (#26688)

Fix Mail Unit

* OOC Patron Color Toggle (#26653)

* Adds the option for you to toggle your OOC Patron color visibility to yourself and others.

* Makes the button magically disappear if you arent a patron

* Fix random clothing slots being able to hide character's nose and hair (#26708)

Fix bug and formatting

* Make Zombie, Initial Infected fix (#26665)

Make zombie fix

* Suit Sensors No Longer Use a Hardcoded 'Total Health' (#26658)

* Suit sensors now know the 'total health' of an entity

* Missed the constructor :pensive:

* Stop mop buckets from spilling when you push them (#26706)

* Robotists technology icon fix (#26723)

fix

Co-authored-by: GeneralGaws <limonmessi@mail.ru>

* Make ducks more viable as an alternative to chickens. (#26729)

Quick tweak to make ducks on par with chickens at cargo

* Make the nutribrick one bite smaller (#26719)

Update snacks.yml

* Task/fix nightvision huds (#26726)

* StatusIcon: add field to set if icon should be rendered with shading

* set/unset shader based on icon field

* set new field to true for hud icons

* re-shade health bars

* Rework Identifier Overrides to prevent showing Law Priority (#26680)

Does-The-Fix

Co-authored-by: Mephisto72 <Mephisto.Respectator@proton.me>

* Make practice projectiles consistent in damage (#26731)

* Make practice weapon damage consistent to 1

* Add book reference to description

* fix mopbucket water level (#26740)

* Damage popup type can now be changed with a left click if allowed via component boolean. (#26734)

* Update DamagePopupSystem.cs

* Update DamagePopupSystem.cs

* Add ability to allow or deny type change via component bool

* CCVars.cs: Minor inconsistency fixes. (#26744)

Update CCVars.cs

* Fixes one file format inconsistency.
* Adds missing </summary> closing tag.

* Make baseball bat crafting require a slicing tool (#26742)

Make baseball bat crafting harder

* make fulton recipe faster and require cloth (#26747)

Co-authored-by: deltanedas <@deltanedas:kde.org>

* -fixed Broadcast button never enabling (#26750)

* Let Mindshields be effected by statusIcon shading (#26754)

Phone Webedit Ops

Original PR author forgot about mindshields for making status icons shaded. 

This can be done with other antag icons as well, I remember people mentioning revs being able to see each other in the dark was lame.

* Dionae now bleed sap, and this can be used to make syrup. (#25748)

* SapAndSyrup

* centrifug

* morewatervapor

* whyisitnotpushing

* nymphs

* lessrealmorefun

* Alerts crash fix (#26602)

- If the client tries to call ShowAlert while applying gamestates (e.g. initialising an entity) then this will cause problems. I need to double-check the initial PR before I'd be comfortable with this being merged.

* made thin firelocks constructable/deconstructable (#26745)

* Fire sprite change for mice (#26758)

* Add new fire sprite for mice that fits them better

* Add the sprite change to rats as well

* Moffroach and hamsters now also have more fitting fire sprites

* made the meta.json easier to read

* Change speed threshold for barefeet walking on glass shards and D4 (#26763)

Allow walking over glass shards and D4

Co-authored-by: Plykiya <plykiya@protonmail.com>

* temporarily remove broken anom behavior (#26775)

Removed `Moving` anom behavior

* Fix Water cooler visuals (#26784)

Fix watercooler visuals

* Sanitizes "tbf" into "to be fair" (#26811)

add

* prevent placing dead bodies in cryostorage (#26810)

* fixed cigarette sprites (#26801)

* Show missing materials in lathes tooltip (#26795)

* Lathes: Show missing materials amount in tooltip

* Use AppendLine and remove the last newline at the end

* Bug fixes for RCD (#26792)

Various fixes

* Fixes elite operative figurine description (#26814)

desc

* Fix lathe materials list bug (#26826)

Fix lathe material list bug

* fix bodybag id case (#26823)

* Fix body bag id

* migration

* Make bombsuits similar (#26806)

* Make clothing cheaper and split clothing restock (#26805)

* Make clothing cheaper

* bueah

* proper price

* :trollface:

* Fix tray scanner not updating it's range. (#26789)

Fix tray scanner not updating it's range on change.

Add range value to the tray scanner state.to synchronize it between
client and server.

* predict humanoid identity examine (#26769)

* predict humanoid identity examine

* actually server doesnt need proto anymore

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Spears equippable to suit storage (#26724)

* meat and potatoes

hahaha

* DAMAGE

yes

* come on

* Check again

* Guhhhhh

guh

* Ion Storm Laws Review (#26703)

* Ion Storm Laws Review

Have reviewed the Ion Storm law dictionary
and tidied it up.

Specifically I've tried to keep the same number
of entries in each section, or slightly
increased them, where I've removed or
altered a string.

Of note, specific colours and "rainbow" have been
removed from adjectives and replaced with words
like "Cheese-Eating", as colours are kinda boring
themselves and they've been a cause of a few
accidentally-racist laws.

* Resolve some feedback.

* Remove the pull request joke, noooooo

* Re-add big bite burgers as they are actually a thing

* Append some more suggestions

* add ratvar to ion storm laws (#26833)

Praise Ratvar

* Server-only component YAML cleanup (#26836)

* First pass cleaning up server-only YAML errors.

* Second pass

* Gauze Markings 3 - Revenge of the Wrap (#25481)

* Insectoid Gauze, Added racial marks to variants

* removed excess r from gauze_moth_lowerleg_r

* Update gauze.ftl

* moved all markings to Overlay Category

* fixed localization error

* a

* dirty after calling SetAccesses (#26849)

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Add new "grant_connect_bypass" admin command (#26771)

This command allows you to grant a player temporary privilege to join regardless of player cap, whitelist, etc. It does not bypass bans.

The API for this is IConnectionManager.AddTemporaryConnectBypass().

I shuffled around the logic inside ConnectionManager. Bans are now checked before panic bunker.

* Improve access overlay (#26667)

* Improve access overlay

* review changes

---------

Co-authored-by: wrexbe <wrexbe@protonmail.com>

* Skipping bounties (#26537)

* add button to menu

* networking and component work

* try to add access stuff

* main functionality done

* add access lock? I think?

* remove extra line

* fix access system

* move SkipTime to StationCargoBountyDatabaseComponent

* Disable/Enable skip button based on cooldown

* remove debugging

* add access denied sound

* remove DataField tags

* dynamic timer

* Flippolighter_fix (#26846)

Flippolighter has realy loud sound, no UseDelay and server errors

* Game server api (#24015)

* Revert "Revert "Game server api (#23129)""

* Review pt.1

* Reviews pt.2

* Reviews pt. 3

* Reviews pt. 4

* Revert "Game server api" (#26871)

Revert "Game server api (#24015)"

This reverts commit 297853929b7b3859760dcdda95e21888672ce8e1.

* Give botanists droppers (#26839)

Start botanists with droppers so that they can better dose robust harvest or mutagen.

* Clipping a harvestable plant yields undamaged seeds (#25541)

Clipping a plant in any condition currently causes it and its clippings to be damaged.

Make clipping harvestable (already eligible for seed extractor) plants yield seeds at full health.

* fix lots of door access (#26858)

* dirty after calling SetAccesses

* fix door access

* D

* pro ops

* nukeop

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Add emergency nitrogen lockers (#26752)

* Update ashtray to allow all cigarettes / cigars (#26864)

* Update ashtray to allow all cigarettes / cigars

This also includes joints (as they are technically cigarettes)

* ?

* Fix door electronics configurator usage (#26888)

* allow usage of network configurator for door electronics

* add checks for "allowed" items

* Fix TEG assert (#26881)

It's possible to trigger this by stacking it weirdly with the spawn panel. Just make it bail instead.

* Bug fix for deconstructing tiles and lattice with RCDs (#26863)

* Fixed mixed deconstruction times for tiles and lattice

* Lattice and power cables can be deconstructed instantly

* Immovable Rod changes (#26757)

* Cryogenic storage tweaks (#26813)

* make cryo remove crewmember's station record when going to cryo

* Revert "make cryo remove crewmember's station record when going to cryo"

This reverts commit 9ac9707289b5e553e3015c8c3ef88a78439977c6.

* make cryo remove crewmember from station records when the mind is removed from the body

* add stationwide announcement for people cryoing (remember to change pr title and desc)

* minor changes

* announcement actually shows job now

* requested changes

* get outta here derivative

* Fix potted plant popup/sfx spam (#26901)

Fixed potted plant hide popup/sfx spam.

* Allow advertisement timers to prewarm (#26900)

Allow advertisement timers to prewarm.

* Fix shaker sprites (#26899)

* Change basefoodshaker to parent from basefoodcondiment instead

* Make them still refillable

* Update .editorconfig to correspond Code Conventions (#26824)

Update editorconfig to Code Style

End of line is: CRLF (suggestion)
Namespace declarations are: file scoped (suggestion). Instead of block scoped

* Remove reagent slimes from ghost role pool (#26840)

reagentslimeghostrole

* NoticeBoard is craftable now (#26847)

* NoticeBoard is craftable now

* Fix notice board to proper name capitalization

* Fix notice board proper name in description

* Update Resources/Prototypes/Recipes/Construction/furniture.yml

---------

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

* Add drink container suffixes (#26835)

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>

* uplink and store freshening (#26444)

* uplink and store freshening

* more

* im gonna POOOOOOGGGGGGG

* we love it

* Sterile swab dispenser instead of box (#24986)

* sterile swab dispenser

* trust

---------

Co-authored-by: deltanedas <@deltanedas:kde.org>

* Strobes added (#26083)

* Done

* Adds new

* empty

* attributions

* empty

* strobe admin deleted

* Health analyzer UI unit correction (#26903)

Correct Kelvin displayed on health analyzer UI, use T0C constant.

* Fix the stripping menu being openable without StrippingComponent (#26908)

* Fixed magboot activation distance (#26912)

* Uncooked animal proteins is safe for animal stomachs only (#26906)

Uncooked animal proteins is safe for animal stomachs

* Fix incorrect "Cycled" and "Bolted" popups when (un)wielding a gun (#26924)

* Fix guns that spawn without a magazine looking like they have one (#26922)

* Fixes polymorph cooldowns (#26914)

fixes polymorph cooldowns

* Removed Salv Borg Crusher Dagger (#26865)

* Fix pulling a new entity when already pulling an entity (#26499)

Fix pulling when already pulling

The TryStopPull were failing due to wrong arguments provided.
Replacing the virtual item in hand with a different pull was failing due to the hand not being cleared.

Fix stop pulling checks that had the wrong variables provided.

VirtualItems are already queue deleted at the end of HandleEntityRemoved.

* Replace SetDamage call with TryChangeDamage in ImmovableRodSystem.cs (#26902)

* Fix for the salvage ice labs map. (#26928)

* done

* more work

* Fix cryostorage identifying unknown characters as captain (#26927)

Fixed cryostorage getting captain's record for unknown jobs.
Also localized Unknown job string.

* Fixed Honkbot/jonkbot honking like crazy, gave honkbot/jonkbot standard idle ai. (#26939)

* Fixed Honkbot/jonkbot honking like crazy, gave honkbot/jonkbot standard idle ai.

* Update Resources/Prototypes/Entities/Mobs/NPCs/silicon.yml

---------

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

* Bug fix: Force cancellation of RCD constructions if the construction type is changed (#26935)

Force cancellation of RCD constructions if the construction type is changed

* Fix standart -> standard and dressfilled test fail (#26942)

Fix standart -> standard

* Add Ability to stop sound when MobState is Dead (#26905)

* Add stopsWhenEntityDead to sound components

* Convert component

* Review

* Fix dupe sub

---------

Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>

* Fix rockets and lasers looking like they have nothing loaded (#26933)

* You can now see paper on crates (with color!) (#26834)

* Implement changes on not-cooked branch

* Made it work

* Fix update appearance calls

* Fix extra indents, clean-up code, fix tests hopefully

* Fix hammy cagecrate

* Fix messing up the yml, add artifact crate specific labels back in

* Visual Studio hates yml, sad

* Seperate the colors for cargonia

* sorry json

* make label move with artifact door

* Apply suggestion changes

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

* Fix remaining crate offsets, add a few for livestock and graves (why are you labeling graves) and coffin label sprites (why are you labeling coffins??)

---------

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

* Make UtensilSystem and SharpSystem not run AfterInteract if it has already been handled (#25826)

* Make UtensilSystem and SharpSystem not run AfterInteract if it has already been handled

* merge conflicts

---------

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

* Add two-message overload to PopupPredicted (#26907)

Added two-message overload to PopupPredicted

* Autism pins! (#25597)

* hee hee he ha ha

* added gold varients, forgive me for my spritework

* maints loot, copying from past PRs

* Trying to fix RSI

* speedran these sprites in break time, pictures will be later

* Fixed/Tweaked glows

* consensus

* gregregation

* dam copiryte

* oops i forgot to delete 2 fields hope this works

* Fix database round start date issues (#26838)

How can ONE DATABASE COLUMN have so many cursed issues I don't know, but it certainly pissed off the devil in its previous life.

The start_date column on round entities in the database was added by https://github.com/space-wizards/space-station-14/pull/21153. For some reason, this PR gave the column a nonsensical default value instead of making it nullable. This default value causes the code from #25280 to break. It actually trips an assert though that's not what the original issue report ran into.

This didn't get noticed on wizden servers because we at some point backfilled the start_date column based on the stored admin logs.

So I change the database model to make this column nullable, updated the C# code to match, and made the existing migration set the invalid values to be NULL instead. Cool.

Wait how's SQLite handle in this scenario anyways? Well actually turns out the column was *completely broken* in the first place!

The code for inserting into the round table was copy pasted between SQLite and PostgreSQL, with the only difference being that the SQLite key manually assigned the primary key instead of letting SQLite AUTOINCREMENT it. And then the code to give a start_date value was only added to the PostgreSQL version (which is actually in the base class already). So for SQLite that column's been filled up with the same invalid default the whole time.

Why was the code manually assigning a PK? I checked the SQLite docs for AUTOINCREMENT[1], and the behavior seems appropriate.

I removed the SQLite-specific code path and it just seems to work regardless. The migration just sets the old values to NULL too.

BUT WAIT, THERE'S MORE!

Turns out just doing the migration on SQLite is a pain in the ass! EF Core has to create a new table to apply the nullability change, because SQLite doesn't support proper ALTER COLUMN. This causes the generated SQL commands to be weird and the UPDATE for the migration goes BEFORE the nullability change... I ended up having to make TWO migrations for SQLite. Yay.

Fixes #26800

[1]: https://www.sqlite.org/autoinc.html

* Fix options menu crashing in replays (#26911)

Not having the nullable set properly is annoying but fixing that would probably be a significant amount of work.

* Greyscale color clothing (#26943)

* greyscales color gloves, color jumpsuits, and shoes

* remove popbob

* fix test fails

* WT550 Buffs + Burst Mode for WT550 & C-20R (#26886)

* Slightly increased WT550 Firerate, drastically reduced recoil, and given it the option to fire in 5 round bursts.

* Given the C-20 a 5 round burst aswell

* make holoparasites actually holographic (#26862)

it's over

* Add character sheets to board game crate (#26926)

add character sheets to board game crate

* Game server admin API (#26880)

* Reapply "Game server api" (#26871)

This reverts commit 3aee19792391cbfb06edb65d6f16f77da0f36f13.

* Rewrite 75% of the code it's good now

* Wield recoil components (#26915)

* WieldRecoilComponents

* WieldRecoilComponents

* Update Content.Shared/Weapons/Ranged/Components/GunWieldBonusComponent.cs

Co-authored-by: Whisper <121047731+QuietlyWhisper@users.noreply.github.com>

* Update Content.Shared/Weapons/Ranged/Components/GunWieldBonusComponent.cs

---------

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

* Clown shoes make you waddle, as God intended (#26338)

* Clown shoes make you waddle, as God intended

* OOPS

* Toned down, client system name fix

* Tidy namespacing for @deltanedas

* Refactor to handle prediction better, etc.

* Resolve PR comments.

* Use round time instead of server time for criminal history (#26949)

make criminal records computer use round time for history instead of the server time

* Rotate and Offset station CCVar nuke (#26175)

* no content

* add noRot to Europa

* bruh. and this

* yay

* fix

* Fixed cybersun pen attacking noise (#26951)

* Uupdated the cyberpen

* Updated noise

* Removed flashlight

* Fix rubber hammer being unshaded (#26956)

* Make lockers can be deconstructed only when unlocked now (#26961)

* Fix lockers are not deconstrucable now

Lockers are was deconstructable event when they closed and you didn't have access to them. In short - get stuff by 5 seconds, 5 sec it's time to screw down any locker, except LockerBaseSecure one

* Revert un-destructable lockers fix

Make lockers destructable again

* Fix lockers that deconstructable only when unlocked now

* nerf incendiary grenade (#26959)

Co-authored-by: deltanedas <@deltanedas:kde.org>

* meatWall incorrect node fixed (#26966)

changed node in construction meatWall

* Fix StepTrigger blacklist not working (#26968)

* SS14-26950 Fix Waddling During Improper States (#26965)

* SS14-26950 Fix Waddling During Improper States

Fix some states when a clown can waddle when no clown should be able to waddle, no-matter their clowning powers.

1. You cannot waddle whilst weightless
2. You cannot waddle whilst stunned
3. You cannot waddle whilst slowed down due to stam damage
4. You cannot waddle whilst you're knocked down
5. You cannot waddle whilst you're buckled
6. You cannot waddle whilst crit
7. You cannot waddle whilst dead

There's some argument for being able to waddle whilst on the floor
and doing some bizarre floor-humping exercise but I'm not coding an animation layer system just to handle clowns doing the worm.

* Use a nicer "can move" check

* Mobs burn to ashes on excessive heat damage (#26971)

* mobs burn to ashes on excessive heat damage

* remove comment, remove random lines I didn't mean to add

* combine code into behavior

* clean unused

* fix namespace

* drop next to

* fix spawn entities behavior spawning entities outside container

* Fix dragon slowdown on damage (#26975)

Fix dragon slow on damage

* Fix some airlocks with multiple access types (#26980)

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>

* Fix some TryGetMind overrides relying on player data (#26992)

* Fix some TryGetMind overrides relying on player data

* A

* Rider has bamboozled me

* Update `data.Mind` before attaching to entity.

* Give names to solution & identity entities (#26993)

* Add QM maintenance airlock (#26982)

Co-authored-by: Velcroboy <velcroboy333@hotmail.com>

* Loadouts redux (#25715)

* Loadouts redux

* Loadout window mockup

* More workout

* rent

* validation

* Developments

* bcs

* More cleanup

* Rebuild working

* Fix model and loading

* obsession

* efcore

* We got a stew goin

* Cleanup

* Optional + SeniorEngineering fix

* Fixes

* Update science.yml

* add

add

* Automatic naming

* Update nukeops

* Coming together

* Right now

* stargate

* rejig the UI

* weh

* Loadouts tweaks

* Merge conflicts + ordering fix

* yerba mate

* chocolat

* More updates

* Add multi-selection support

* test

h

* fikss

* a

* add tech assistant and hazard suit

* huh

* Latest changes

* add medical loadouts

* and science

* finish security loadouts

* cargo

* service done

* added wildcards

* add command

* Move restrictions

* Finalising

* Fix existing work

* Localise next batch

* clothing fix

* Fix storage names

* review

* the scooping room

* Test fixes

* Xamlify

* Xamlify this too

* Update Resources/Prototypes/Loadouts/Jobs/Medical/paramedic.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/loadout_groups.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/Jobs/Civilian/clown.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/Jobs/Civilian/clown.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/loadout_groups.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/Jobs/Security/detective.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* Update Resources/Prototypes/Loadouts/loadout_groups.yml

Co-authored-by: Mr. 27 <45323883+Dutch-VanDerLinde@users.noreply.github.com>

* ben

* Margins

---------

* Foreigner Minor Fixes (#542)

# Description

#525 Added foreigner traits, now during testing I revealed a few bugs.
This PR fixes them:
- The light version now correctly allows you to understand common (it
would not because I forgot to add [DataField])
- The translator now correctly starts with a high-capacity power cell
- Equipping the translator in a pocket slot no longer takes time

<details><summary><h1>Media</h1></summary><p>


![image](https://github.com/user-attachments/assets/4d2cabc7-2ce2-498b-822b-8ff9b82eea7d)

</p></details>

# Changelog
:cl:
- fix: Foreigner traits now work correctly.

* Automatic Changelog Update (#542)

* Fix Arachne Plushie CL (#541)

Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Heavyweight Drunk Trait + Drunk Traits Rework (#512)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description
<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Adds the inverse of lightweight drunk, which makes you less susceptible
to the effects of ethanol.
(more specifically, it halves the damage of alcohol and you need to
drink twice as much to feel the effects in the first place)

To make the change happen, `LightweightDrunk` component was reworked to:
- A) no longer change any drunk effects (including non-alcohol related
drunkness like bloodloss)
- B) instead multiply the effects of ethanol in your bloodstream

I chose this route in particular, because the other option of
multiplying the amount of ethanol gained from alcohols is nonsense.

---

# TODO

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [X] Add a `TryMetabolizeReagent` event to `MetabolizerSystem.cs` so a
`LightweightDrunkSystem.cs` can listen to the event and multiply the
effects of "Ethanol" specifically.
- [X] Add the Heavyweight Drunk trait
- ~~Fix a minor spelling mistake that caused the trait condition to not
show up~~
- [ ] Would we be able to name trait files after categories? I don't
want to put every positive trait in a file named 'skills.yml'

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>

![Example Media Embed](https://example.com/thisimageisntreal.png)

</p>
</details>

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- add: Added the Heavyweight Drunk trait, which doubles your alcoholism
potential.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#512)

* Random Announcer System (#415)

# Description

Replaces every instance of station announcements with an announcer
system meant to handle audio and messages for various announcers defined
in prototypes instead of each server replacing the scattered files
inconsistently with whatever singular thing they want to hear announce
messages.

# TODO

- [x] Systems
- [x] CVars
- [x] Sounds
- [x] Client volume slider
- [x] Collections
- [x] Prototypes
- [x] Events
- [x] Commands
- [x] PR media
- [x] Deglobalize
- [x] Passthrough localization parameters to overrides
- [x] Make every announcer follow the template
- [x] Move sounds into subdirectories
- [x] Make announcement IDs camelCased
- [x] Test announcement localizations
- [x] Weighted announcer lists

---

<details><summary><h1>Media</h1></summary>
<p>


https://github.com/Simple-Station/Parkstation-Friendly-Chainsaw/assets/77995199/caf5805d-acb0-4140-b344-875a8f79e5ee

</p>
</details>

---

# Changelog

:cl:
- add: Added 4 new announcers that will randomly be selected every shift

* Automatic Changelog Update (#415)

* Mass Contests Remake (#480)

# Description

Part of Issue #467 

This is a complete re imagining of the Nyanotrasen Mass Contest
System(Long since removed from the game). This system adds a highly
flexible function that outputs a ratio of a given entity's mass, that is
optionally relative to another entity. I've primarily written this
system to be used in conjunction with PR #458 , as it adds several new
implementations of variable player mass to the game.

How this differs from the original Mass Contest system is that it is
configured via hotloaded CVars, and is inherently clamped so that
character mass only modifies functions by a finite amount rather than
providing infinite scaling. This essentially means that while an Oni is
25% better at shoving a Felinid to the floor thanks to their different
masses, a 2000kg Lamia is also only 25% better at shoving a Felinid to
the floor, rather than 50000% better. The inverse is also true, a small
player character can only be 25% better or worse at a given
implementation. These implementations are not handled directly by the
ContestSystem, and are instead handled directly by other systems that
call upon it.

This percentage limit can be modified by a new CVar at any time.
Additionally, the entire MassContest system can be optionally toggled
off completely at any time via CVar, without needing to modify any code
that calls upon it.

At this time, I have included three different implementations to serve
as suitable examples for how MassContest can be used.

1. Weapon recoil is now modified by an entity's mass relative to the
human average baseline. Smaller characters experience more recoil,
larger characters experience less recoil
2. Disarm/Shove is now modified by Mass Contests. Entities that are
sized differently from their target have their shove/disarm chance
modified based on the ratio of performer and target mass.
3. Certain types of handcuffs(such as Cablecuffs and zipties) are now
faster to slip out of if you are smaller than the average.

# Changelog

:cl:
- add: Mass Contests have returned in a new reworked form. 
- add: Weapon Recoil is now resisted by character mass. More massive
characters take less recoil, less massive characters take more recoil.
- add: Disarm and Shove actions are now modified by relative character
mass. It is easier to shove people around if you're bigger than them.
- add: Cablecuffs and Zipties are now easier to escape out of if you're
smaller.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: Danger Revolution! <142105406+DangerRevolution@users.noreply.github.com>

* Automatic Changelog Update (#480)

* Update Credits (#548)

This is an automated Pull Request. This PR updates the GitHub
contributors in the credits section.

Co-authored-by: SimpleStation Changelogs <SimpleStation14@users.noreply.github.com>

* IdCard Resprite (#537)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->

Resprite the IDCards with newers looking sprites, making them also
modular so easy to edit/create new cards without the need to make
compleatly new sprites.

---

# TODO

<!--
A list of everything you have to do before this PR is "complete"
You probably won't have to complete everything before merging but it's
good to leave future references
-->

- [x] ID Cards
- [x] Cleanup

---

<!--
This is default collapsed, readers click to expand it and see all your
media
The PR media section can get very large at times, so this is a good way
to keep it clean
The title is written using HTML tags
The title must be within the <summary> tags or you won't see it
-->

<details><summary><h1>Media</h1></summary>
<p>


![image](https://github.com/Simple-Station/Einstein-Engines/assets/45297731/10b50980-b7d4-470d-b6d7-baf5a18b5710)

</p>
</details>

---

# Changelog

<!--
You can add an author after the `:cl:` to change the name that appears
in the changelog (ex: `:cl: Death`)
Leaving it blank will default to your GitHub display name
This includes all available types for the changelog
-->

:cl:
- tweak: We got new ID Cards the old ones were soo tiny that they were
lost.

* Automatic Changelog Update (#537)

* Shock Collar Tweak (#546)

# Description
Shock collars were a useful thing in nyano for a long time, but security
could never put them to use because they could be removed instantly, so
they were forgotten about.

Now that we have enquip delays, shock collars can be useful for
controlling unruly prisoners (or unruly secoffs who like to harm baton
passengers). Only two problems is there's no way to manufacture them,
and they can be quite deadly when used repeatedly. This PR solves both
of these issues, and also fixes a little bug:
- Shock collars can be manufactured at the secfab.
- Shock collars deal 1 shock damage instead of 5.
- The shock ignores insulation.

<details><summary><h1>Media</h1></summary><p>


![image](https://github.com/user-attachments/assets/16d8efdf-c3de-46de-9a48-401d99c92b29)

</p></details>

---

# Changelog
:cl:
- tweak: Shock collars can now be manufactured in the security techfab.
They also deal less damage and ignore insulated gloves.

* Automatic Changelog Update (#546)

* Fix the Thieving Trait Not Working (#552)

<!--
This is a semi-strict format, you can add/remove sections as needed but
the order/format should be kept the same
Remove these comments before submitting
-->

# Description

<!--
Explain this PR in as much detail as applicable

Some example prompts to consider:
How might this affect the game? The codebase?
What might be some alternatives to this?
How/Who does this benefit/hurt [the game/codebase]?
-->
Fixes #529 
A crash course that I need to check when a component is networked. Now
actually replicates pocket vision to the client.

# Changelog

:cl:
- fix: Fixed thieving trait not granting pocket vision

* Automatic Changelog Update (#552)

* Port Parkstation Audio Library (#457)

# Description

By request from @DEATHB4DEFEAT , this ports
https://github.com/Simple-Station/Parkstation/pull/55

:cl: VMSolidus
- add: Many new sound effects have been implemented for items.

---------

Signed-off-by: VMSolidus <evilexecutive@gmail.com>

* Automatic Changelog Update (#457)

* Fixed Typos in Offer Prompt + Added New Icon (#551)

# Description

Minor spelling mistake ops, also new icon by me.

---

<details><summary><h1>Media</h1></summary>
<p>

Offering an item

![Offer](https://github.com/user-attachments/assets/bd11b9bd-1b21-422b-8007-44f48dbf8c55)

Cancelling the offer

![Cancel](https://github.com/user-attachments/assets/e51a5309-815f-4407-bb58-e37e80b3dbb6)

Accepting the offer

![Accept](https://github.com/user-attachments/assets/37f07ed7-69cc-486e-a5c9-5cfab7683142)

Closeup of the new icon

![image](https://github.com/user-attachments/assets/08948ad5-a538-4166-a3af-88f23ab15cad)

</p>
</details>

---

# Changelog

:cl:
- add: Added a new icon to the offer item interaction.
- fix: Fixed typos in the offer item prompts.

* Automatic Changelog Update (#551)

* More Zoom Levels (#547)

# Description
Adds more zoom levels and CVars to configure them.

The defaults make it so that the new minimum zoom is roughly equal to
what ss14 had before (29.6%).

# Why
Playing as a tiny character made me love having the screen zoomed in,
but having only 3 zoom levels didn't quite allow to set the zoom level
to what I wanted. This PR fixes that.

<details><summary><h1>Media</h1></summary><p>



https://github.com/user-attachments/assets/61e56913-1c9d-4590-95ac-686018b5caa9



</p></details>

# Changelog
:cl:
- add: You can now configure your zoom more precisely.

* Automatic Changelog Update (#547)

* Harpy Wings (#545)

# Description

Adds a new food item that utilizes the legs of harpies. Yes, I know the
wings aren't where the legs are. Just don't question it too much.

---

<details><summary><h1>Media</h1></summary>
<p>

![Example Media
Embed](https://cdn.discordapp.com/attachments/348325925047238656/1261427352102244403/2024-07-12_13-59-08.mp4)

</p>
</details>

---

# Changelog

:cl:
- add: Added Harpy Wings as a delicious dish.

---------

Signed-off-by: dootythefrooty <137359445+dootythefrooty@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#545)

* Display an Alert when the User Is Walking or Running. (#528)

# Description

First PR. Adds an alert on the user UI whenever they toggle between
walking or running. No more second guessing whether you will slip or not
when walking over that puddle of water, or if your usage of Shift on
chat toggled your movement speed.

The alert is displayed for entities with the component
'CanWalkComponent', which is added to the following prototypes:
- All genetic ancestors (MobBaseAncestor)
- Human controlled mechs (BaseMech, wont display on VIMs or HAMTRs
because rats or hamsters can't walk, and the edge case is not worth the
trouble)
- All human/player species (BaseMobSpeciesOrganic)
- All slimes/geras (BaseMobAdultSlimes)
- Reagent Slimes (ReagentSlime)
- Rat Kings (MobRatKing - yes they can fucking walk lmao)
- Borgs (BaseBorgChassis)
---
<details><summary><h1>Media</h1></summary>
<p>


https://github.com/Simple-Station/Einstein-Engines/assets/159397573/1a60711b-d048-444d-bd08-6a9eadeccc8a


</p>
</details>

---

# Future Stuff

I also wanted to make it toggle the user's speed on click like it would
in ss13, but sadly the majority of the input management/prediction seems
to be done exclusively client-side, making it a hassle to work around
the alert. **Will revisit if there's improvements or refactors to the
movement code.**

---

# Changelog

:cl:
- add: Added an alert on the UI for when the user is walking or running.

---------

Signed-off-by: gluesniffler <159397573+gluesniffler@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Automatic Changelog Update (#528)

* Finally Put the meta.json Shema to Use (#489)

# Description

This file has been chilling unused (excluding that one workflow) for so
long, and it's so useful.
Forks might want to edit the URL to theirs, but it's unlikely they'll
ever want to change it.

* Cherry-Pick PR26540: "Fix Empty Atmos Deserialization" (#558)

# Description

Cherry-Picks Wizden PR 26540, fixing an issue where our downstreams
cannot save maps under certain conditions.

https://github.com/space-wizards/space-station-14/pull/26540

Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>

* Lay Down via Keybind (#530)

# Description
Adds a way to lay down/crawl using a keybind (R by default) similarly to
ss13. It has the same effects as falling down after slipping or buckling
to a bed, except you don't drop items while doing so and can (very
slowly) move around. This opens new gameplay and roleplay possibilities.

You can only toggle standing/laying once in 2.5 seconds (this cooldown
is to prevent pro gamers from spamming it). It shows a small popup to
everyone. If the attempt fails for whatever reason - being buckled,
sleeping, stunned, or anything else - another popup is shown that's only
visible to you.

It's been tested and made sure that the system works correctly with
buckling, sleeping, being stunned, and shocked.

<details><summary><h1>Media</h1></summary>
<p>

18 mb recording won't fit on github:


https://cdn.discordapp.com/attachments/1255902264309321851/1260354667578261504/weeee-2024-07-10_00.57.23.mp4?ex=668f0441&is=668db2c1&hm=d338a3499bf47780a66b7ba96d5e8830d8cb4167064423b8983b2d0144b7aa88&

</p>
</details>

---

# Changelog

:cl:
- add: You can now lie down and stand up at will! The default keybind
for it is "R", but it can be changed in settings.

---------

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>

* Add Species Restrictions to Loadout Items (#554)

# Description

This is kind of a small PR here, all I'm really doing is adding
species(read: Harpy) restrictions to all items that are invalid for a
Harpy to wear, and then reparenting items that have a skirt but aren't
tagged as such, so that Harpies can wear them. This now makes widespread
actual usage of species restrictions in Loadouts. And also this stops
people complaining that Harpies can buy items that they cannot wear.


![image](https://github.com/user-attachments/assets/d90a3fdc-8b2c-4fa9-938b-bedcfac0dc7b)

Harpies coincidentally now have a blank Shoes tab.


![image](https://github.com/user-attachments/assets/f3585a90-3518-4288-b305-14c1a675c88d)


# Changelog

:cl:
- fix: Harpies can no longer buy Loadout items that are impossible for
them to wear due to having digitigrade legs.

* Automatic Changelog Update (#530)

* Automatic Changelog Update (#554)

* fix harpy conflicts

* "fix" hyperlink books

* fix cmo labcoat

* fix editor updating and make it not super laggy

* Add changelog for loadouts (#27020)

* Re-add IAdminRemarksCommon to DB model for SS14.Admin (#27028)

This was removed in #25280 as the relevant DB entities didn't go outside the DB layer anymore. SS14.Admin however still uses them directly (as it only supports Postgres), so the interface is still useful there.

* Revert "Add changelog for loadouts (#27020)"

This reverts commit 49b9bbd311fe127b69628fdca28ab3d6953b1b38.

* Fix Foreigner Translators AGAIN (#559)

# Description
Previous fix made it so that foreigner translators use no power (due to
being parented off of the wrong proto).

So I took some time to rearrange translators.yml because the file was
shitfucked and that's what caused the mistake in the first place.

This time it was made sure that:
- All (powered) translators can hold a power cell and do use power
- Foreigner's translator starts with a high-cap power cell and
unspawnable Translator spawns with a medium
- All children of the base powered translator spawn without a power cell
and cannot work as such until a power cell is inserted.

---

# Changelog
:cl:
- fix: Foreigner translator should now consume power, as intended.

Signed-off-by: Mnemotechnican <69920617+Mnemotechnician@users.noreply.github.com>

* Automatic Changelog Update (#559)

* Physics Based Air Throws (#342)

# Description

I've made it so that when a room is explosively depressurized(or when a
body of high pressure air flows into one of lower pressure air), that
entities inside are launched by the air pressure with effects according
to their mass. An entity's mass is now used as an innate resistance to
forced movement by airflow, and more massive entities are both less
likely to be launched, and will launch less far than others. While
lighter entities are launched far more easily, and will shoot off into
space quite quickly! Spacing departments has never been so exciting!
This can be made extraordinarily fun if more objects are given the
ability to injure people when colliding with them at high speeds.

As a note, Humans are very unlikely to be sucked into space at a typical
force generated from a 101kpa room venting into 0kpa, unless they
happened to be standing right next to the opening to space when it was
created. The sa…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: Needs Review This PR requires new reviews before it can be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants