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

Replace the teleportation logic on the SCRAM implant! #26429

Merged
merged 6 commits into from
Apr 1, 2024

Conversation

nikthechampiongr
Copy link
Contributor

@nikthechampiongr nikthechampiongr commented Mar 25, 2024

Addresses points 1 & 2 of #25031

About the PR

This pr addresses some issues raised with the way teleporting with the SCRAM! implant functions. Now instead of tries20, it will attempt to go through every valid tile within range until one is found. If none is found then a charge is not used the user is not teleported.

From my testing, it will also no longer randomly drop you in the middle of nowhere in space 70% of the time. At least this happened on the test map where it would drop you an extreme distance away from the test station the majority of the time it was used.

Why / Balance

See #25031. This also introduces saner defaults for failing to find a suitable tile, and no longer dumps you far into outer space the majority of the time which makes the SCRAM! implant more usable.

Technical details

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 don't get teleported and no charge is spent.

I am a little worried that this will be performance heavy however I have not at this time thought of a better way to do this.

Media

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

Changelog

no cl no fun.

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.
@github-actions github-actions bot added the Status: Needs Review This PR requires new reviews before it can be merged. label Mar 25, 2024
@Ilya246
Copy link
Contributor

Ilya246 commented Mar 26, 2024

the implant teleporting you into space was intentional, and it happened 70% of the time for you only because dev is small
it's a little pointless to teleport into a random tile of a shuttle or a small grid (you're likely to be teleported into the exact same spot or somewhere very close by), so it's likely the implant user might want to be teleported into space instead

besides, wouldn't this logic teleport you into cargo shuttle half of the time?

@nikthechampiongr
Copy link
Contributor Author

the implant teleporting you into space was intentional, and it happened 70% of the time for you only because dev is small it's a little pointless to teleport into a random tile of a shuttle or a small grid (you're likely to be teleported into the exact same spot or somewhere very close by), so it's likely the implant user might want to be teleported into space instead besides, wouldn't this logic teleport you into cargo shuttle half of the time?

The behavior I observed on the dev map was extreme. It would teleport you very far away from the test map. The test map is larger than every shuttle we have. Either way this should also work just fine, you can still teleport into space.

@nikthechampiongr
Copy link
Contributor Author

To emphasize how far it would constantly teleport you, you would need to aghost and zoom all the way out to actually see it.

@Ilya246
Copy link
Contributor

Ilya246 commented Mar 26, 2024

To emphasize how far it would constantly teleport you, you would need to aghost and zoom all the way out to actually see it.

okay, i would agree on making it no longer teleport you into open space due to that, but when picking grids this should use a weighted random based on grid size so that it doesn't constantly teleport you into shuttles or other small grids

@nikthechampiongr
Copy link
Contributor Author

To emphasize how far it would constantly teleport you, you would need to aghost and zoom all the way out to actually see it.

okay, i would agree on making it no longer teleport you into open space due to that, but when picking grids this should use a weighted random based on grid size so that it doesn't constantly teleport you into shuttles or other small grids

I'll see if that's possible.

@nikthechampiongr
Copy link
Contributor Author

I'm unsure if it's even possible to get the size of grids unless I am missing a method or something. Closest I can get to it is getting all the tiles and counting them which would be unnecessarily expensive. I could give a lot of weight to the grid the user is currently on.

Content.Server/Implants/SubdermalImplantSystem.cs Outdated Show resolved Hide resolved
Content.Server/Implants/SubdermalImplantSystem.cs Outdated Show resolved Hide resolved
Content.Server/Implants/SubdermalImplantSystem.cs Outdated Show resolved Hide resolved
Content.Server/Implants/SubdermalImplantSystem.cs Outdated Show resolved Hide resolved
Content.Server/Implants/SubdermalImplantSystem.cs Outdated Show resolved Hide resolved
@metalgearsloth metalgearsloth added Status: Awaiting Changes This PR needs its reviews addressed or changes to be made in order to be merged. and removed Status: Needs Review This PR requires new reviews before it can be merged. labels Mar 28, 2024
@github-actions github-actions bot added Status: Needs Review This PR requires new reviews before it can be merged. and removed Status: Awaiting Changes This PR needs its reviews addressed or changes to be made in order to be merged. labels Mar 28, 2024
Copy link
Contributor

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions github-actions bot added the Merge Conflict This PR currently has conflicts that need to be addressed. label Mar 30, 2024
@metalgearsloth metalgearsloth added Status: Awaiting Changes This PR needs its reviews addressed or changes to be made in order to be merged. and removed Status: Needs Review This PR requires new reviews before it can be merged. labels Mar 30, 2024
@github-actions github-actions bot removed the Merge Conflict This PR currently has conflicts that need to be addressed. label Mar 30, 2024
@nikthechampiongr nikthechampiongr added Status: Needs Review This PR requires new reviews before it can be merged. and removed Status: Awaiting Changes This PR needs its reviews addressed or changes to be made in order to be merged. labels Mar 30, 2024
Comment on lines +189 to +196
}
}
if (valid)

if (valid || _targetGrids.Count == 0) // if we don't do the check here then PickAndTake will blow up on an empty set.
break;
}
_xform.SetWorldPosition(ent, targetCoords.Position);
_audio.PlayPvs(implant.TeleportSound, ent);

args.Handled = true;
targetGrid = _random.GetRandom().PickAndTake(_targetGrids);
} while (true);
Copy link
Contributor

Choose a reason for hiding this comment

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

Can't you just do while _targetGrids.Count > 0, or just do a regular while loop instead?

Copy link
Contributor Author

@nikthechampiongr nikthechampiongr Apr 1, 2024

Choose a reason for hiding this comment

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

Maybe if I rearranged some stuff in the function. At the time I made it I probably thought about it a bit weird. Do you want me to make a new PR with that?

@metalgearsloth metalgearsloth enabled auto-merge (squash) April 1, 2024 06:31
@metalgearsloth metalgearsloth merged commit 2ffd616 into space-wizards:master Apr 1, 2024
11 checks passed
@nikthechampiongr nikthechampiongr deleted the proper-scram branch April 1, 2024 07:28
TheShuEd referenced this pull request in crystallpunk-14/crystall-punk-14 Apr 3, 2024
* Make BaseMedicalPDA abstract (#26567)

* Fix GasMixers/Filters not working (#26568)

* Fix GasMixers/Filters not working

* OKAY GAS FILTERS TOO

---------

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

* Industrial Reagent Grinder Hotfix (#26571)

fixed

* Give stores the ability to check for owner only (#26573)

adds a check if the store belongs to the user

* Fix round start crash (causing instant restart) (#26579)

* Fix round start crash

* Make `TryCreateObjective` more error tolerant

* Update engine to v217.1.0 (#26588)

* Fix initial infected icon hiding (#26585)

* Fix Meta evac shuttle name (#26587)

* Make timer ignore client predict setting (#26554)

* Make timer ignore client predict setting

* making tests run

---------

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

* Make advertise system survive no map inits (#26553)

* Make advertise system survive no map inits

* Add comment to try prevent future bugs

* Update Credits (#26589)

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

* Fix fox spawn on reach (#26584)

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

* Removes SCAF armor (#26566)

* removes scaf armor

* replace maint loot spawner spot with basic helmet

* Update Patrons.yml (#26578)

* Automatic changelog update

* Make aghost command work on other players using optional argument (#26546)

* Translations

* Make aghost command work on other players using optional argument

* Reviews

* Automatic changelog update

* Add new component to Make sound on interact (#26523)

* Adds new Component: EmitSoundOnInteractUsing

* Missed an import

* File-scoping

* Replace ID check with Prototype check

* Moved component and system to shared. Set prediction to true.

* Removed impoper imports and changed namespace of component to reflect changed folder.

* Following function naming theme

* All this code is basically deltanedas's, but it was a learning experience for me

* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs

* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs

---------

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

* Increase syndi duffelbag storage (#26565)

* Increase syndi duffelbag storage

* weh

* Automatic changelog update

* Adds construction/decon graphs for plastic flaps (#26341)

* Adds construction/decon graphs for plastic flaps

* Dang arbitrage

* undo conflict

---------

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

* Automatic changelog update

* Makes secglasses roundstart (#26487)

* makes secglasses roundstart

* fix epic fail

* fix tests questionmark?

* Update Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml

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

---------

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

* Automatic changelog update

* Toilet Upgrade (needs review) (#22133)

* Toilet Draft

* fixes

* toilets now have secret stash to place items in cistern.

* fixes

* plungers now unblock toilets.

* fix sprite

* new sprites and fix

* fixes

* improve seat sprites.

* fix

* removed visualisersystem changed to genericvisualizers

* flush sound for toilets and copyright for toilet sprites.

* fix atrributions

* fixes

* fix datafield flushtime

* sprite improvements

* fixes

* multiple changes

* fix

* fix

* fixes remove vv

* moved stash related functions to secret stash system from toilet.

* fix

* fix

* changes for recent review.

* fix

* fix

* Automatic changelog update

* Uplink store interface searchable with a searchbar. (#24287)

* Can now search the uplink store interface with a searchbar.

* Search text updates no longer send server messages. Persists listings locally.

* Formatting fixes and tidying.

* Added helper method to get localised name and description (or otherwise, entity name and description) of store listing items.

* Update Content.Client/Store/Ui/StoreMenu.xaml

* Review change; moved localisation helper functions to their own class.

* Prevent thread-unsafe behaviour as-per review.

* Remove dummy boxcontainer

---------

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

* Automatic changelog update

* Improved RCDs (#22799)

* Initial radial menu prototyping for the RCD

* Radial UI buttons can send messages to the server

* Beginning to update RCDSystem

* RCD building system in progress

* Further updates

* Added extra effects, RCDSystem now reads RCD prototype data

* Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken

* Added extra functionality to RadialContainers plus documentation

* Fixed localization of RCD UI strings

* Menu opens near cursor, added basic RCD

* Avoiding merge conflict

* Implemented atomized construction / deconstruction rules

* Increased RCD ammo base charges

* Moved input context definition to content

* Removed obsoleted code

* Updates to system

* Switch machine and computer frames for electrical cabling

* Added construction ghosts

* Fixed issue with keybind detection code

* Fixed RCD construction ghost mispredications

* Code clean up

* Updated deconstruction effects

* RCDs effects don't rotate

* Code clean up

* Balancing for ammo counts

* Code clean up

* Added missing localized strings

* More clean up

* Made directional window handling more robust

* Added documentation to radial menus and made them no longer dependent on Content

* Made radial containers more robust

* Further robustness to the radial menu

* The RCD submenu buttons are only shown when the destination layer has at least one children

* Expanded upon deconstructing plus construction balance

* Fixed line endings

* Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag

* Bug fixes

* Revert unnecessary change

* Updated RCD strings

* Fixed bug

* More fixes

* Deconstructed tiles/subflooring convert to lattice instead

* Fixed failed tests (Linux doesn't like invalid spritespecifer paths)

* Fixing merge conflict

* Updated airlock assembly

* Fixing merge conflict

* Fixing merge conflict

* More fixing...

* Removed erroneous project file change

* Fixed string handling issue

* Trying to fix merge conflict

* Still fixing merge conflicts

* Balancing

* Hidden RCD construction ghosts when in 'build' mode

* Fixing merge conflict

* Implemented requested changes (Part 1)

* Added more requested changes

* Fix for failed test. Removed sussy null suppression

* Made requested changes - custom construction ghost system was replaced

* Fixing merge conflict

* Fixed merge conflict

* Fixed bug in RCD construction ghost validation

* Fixing merge conflict

* Merge conflict fixed

* Made required update

* Removed lingering RCD deconstruct tag

* Fixing merge conflict

* Merge conflict fixed

* Made requested changes

* Bug fixes and balancing

* Made string names more consistent

* Can no longer stack catwalks

* Automatic changelog update

* Update submodule to 217.2.0 (#26592)

* Southern accent (#26543)

* created the AccentComponent and the AccentSystem

* word replacement schtuhff

* made it a trait fr ongg!!1

* Update Content.Server/Speech/EntitySystems/SouthernAccentSystem.cs

---------

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

* Prevent storing liquids in equipped buckets (#24412)

* Block access to solutions in equipped spillables.

* Stop Drink verb appearing if the solution can't be accessed.

* Automatic changelog update

* Fix 'Hypopen shouldn't display solution examine text' (#26453)

* stealthy hypo

* ExaminableSolution hand check when in covert implement.

ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand.

* cleaning code

* more cleaning

* Hidden datafield renamed to HeldOnly

* review

---------

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

* Automatic changelog update

* Revert Paint (#26593)

* Revert "Fix build (#26258)"

This reverts commit 6de5fbf.

* Revert "Spray Paint (Review Ready) (#23003)"

This reverts commit e4d5e7f.

# Conflicts:
#	Resources/Prototypes/Entities/Structures/Holographic/projections.yml

* 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>

* Automatic changelog update

* 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>

* Update submodule to 217.2.1 (#26599)

* 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>

* Automatic changelog update

* 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:

* Automatic changelog update

* Add AP damage to throwing knives (#26380)

* add

* ap

* no more stam dmg

* Automatic changelog update

* 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>

* Automatic changelog update

* 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

* Automatic changelog update

* 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)

* Automatic changelog update

* 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.

* Fix dirt decals in reach not being cleanable (#26636)

made all dirt decals cleanable

Co-authored-by: hamurlik <renoDeath@protonmail.com>

* Automatic changelog update

* 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

* Automatic changelog update

* 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>

* Automatic changelog update

* 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>

* Automatic changelog update

* 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

* Automatic changelog update

* 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>

* Automatic changelog update

* 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>

* Automatic changelog update

* 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

* Automatic changelog update

* 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>

* Automatic changelog update

* 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>

* Automatic changelog update

* 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>

* Automatic changelog update

* 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>

* Automatic changelog update

* Resprite ambuzol plus pills (#26651)

* Automatic changelog update

* 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

* Automatic changelog update

* Automatic changelog update

* Make typing indicator shaded (#26678)

* Automatic changelog update

* 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

* Automatic changelog update

* 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>

* Automatic changelog update

* fix typo

---------

Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
Co-authored-by: Wrexbe (Josh) <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: wrexbe <wrexbe@protonmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
Co-authored-by: J. Brown <DrMelon@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: drteaspoon420 <87363733+drteaspoon420@users.noreply.github.com>
Co-authored-by: Bixkitts <72874643+Bixkitts@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: avery <51971268+graevy@users.noreply.github.com>
Co-authored-by: eoineoineoin <github@eoinrul.es>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
Co-authored-by: Zealith-Gamer <61980908+Zealith-Gamer@users.noreply.github.com>
Co-authored-by: hamurlik <75280571+hamurlik@users.noreply.github.com>
Co-authored-by: hamurlik <renoDeath@protonmail.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: SoulFN <164462467+SoulFN@users.noreply.github.com>
Co-authored-by: Keer-Sar <144283718+Keer-Sar@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: c4llv07e <38111072+c4llv07e@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: f0x-n3rd <150924715+f0x-n3rd@users.noreply.github.com>
Co-authored-by: exincore <me@exin.xyz>
Co-authored-by: Sk1tch <ben.peter.smith@gmail.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com>
TheShuEd referenced this pull request in crystallpunk-14/crystall-punk-14 Apr 6, 2024
* Make BaseMedicalPDA abstract (#26567)

* Fix GasMixers/Filters not working (#26568)

* Fix GasMixers/Filters not working

* OKAY GAS FILTERS TOO

---------

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

* Industrial Reagent Grinder Hotfix (#26571)

fixed

* Give stores the ability to check for owner only (#26573)

adds a check if the store belongs to the user

* Fix round start crash (causing instant restart) (#26579)

* Fix round start crash

* Make `TryCreateObjective` more error tolerant

* Update engine to v217.1.0 (#26588)

* Fix initial infected icon hiding (#26585)

* Fix Meta evac shuttle name (#26587)

* Make timer ignore client predict setting (#26554)

* Make timer ignore client predict setting

* making tests run

---------

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

* Make advertise system survive no map inits (#26553)

* Make advertise system survive no map inits

* Add comment to try prevent future bugs

* Update Credits (#26589)

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

* Fix fox spawn on reach (#26584)

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

* Removes SCAF armor (#26566)

* removes scaf armor

* replace maint loot spawner spot with basic helmet

* Update Patrons.yml (#26578)

* Automatic changelog update

* Make aghost command work on other players using optional argument (#26546)

* Translations

* Make aghost command work on other players using optional argument

* Reviews

* Automatic changelog update

* Add new component to Make sound on interact (#26523)

* Adds new Component: EmitSoundOnInteractUsing

* Missed an import

* File-scoping

* Replace ID check with Prototype check

* Moved component and system to shared. Set prediction to true.

* Removed impoper imports and changed namespace of component to reflect changed folder.

* Following function naming theme

* All this code is basically deltanedas's, but it was a learning experience for me

* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs

* Update Content.Shared/Sound/Components/EmitSoundOnInteractUsingComponent.cs

---------

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

* Increase syndi duffelbag storage (#26565)

* Increase syndi duffelbag storage

* weh

* Automatic changelog update

* Adds construction/decon graphs for plastic flaps (#26341)

* Adds construction/decon graphs for plastic flaps

* Dang arbitrage

* undo conflict

---------

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

* Automatic changelog update

* Makes secglasses roundstart (#26487)

* makes secglasses roundstart

* fix epic fail

* fix tests questionmark?

* Update Resources/Prototypes/Entities/Clothing/Eyes/glasses.yml

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

---------

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

* Automatic changelog update

* Toilet Upgrade (needs review) (#22133)

* Toilet Draft

* fixes

* toilets now have secret stash to place items in cistern.

* fixes

* plungers now unblock toilets.

* fix sprite

* new sprites and fix

* fixes

* improve seat sprites.

* fix

* removed visualisersystem changed to genericvisualizers

* flush sound for toilets and copyright for toilet sprites.

* fix atrributions

* fixes

* fix datafield flushtime

* sprite improvements

* fixes

* multiple changes

* fix

* fix

* fixes remove vv

* moved stash related functions to secret stash system from toilet.

* fix

* fix

* changes for recent review.

* fix

* fix

* Automatic changelog update

* Uplink store interface searchable with a searchbar. (#24287)

* Can now search the uplink store interface with a searchbar.

* Search text updates no longer send server messages. Persists listings locally.

* Formatting fixes and tidying.

* Added helper method to get localised name and description (or otherwise, entity name and description) of store listing items.

* Update Content.Client/Store/Ui/StoreMenu.xaml

* Review change; moved localisation helper functions to their own class.

* Prevent thread-unsafe behaviour as-per review.

* Remove dummy boxcontainer

---------

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

* Automatic changelog update

* Improved RCDs (#22799)

* Initial radial menu prototyping for the RCD

* Radial UI buttons can send messages to the server

* Beginning to update RCDSystem

* RCD building system in progress

* Further updates

* Added extra effects, RCDSystem now reads RCD prototype data

* Replacing tiles is instant, multiple constructions are allowed, deconstruction is broken

* Added extra functionality to RadialContainers plus documentation

* Fixed localization of RCD UI strings

* Menu opens near cursor, added basic RCD

* Avoiding merge conflict

* Implemented atomized construction / deconstruction rules

* Increased RCD ammo base charges

* Moved input context definition to content

* Removed obsoleted code

* Updates to system

* Switch machine and computer frames for electrical cabling

* Added construction ghosts

* Fixed issue with keybind detection code

* Fixed RCD construction ghost mispredications

* Code clean up

* Updated deconstruction effects

* RCDs effects don't rotate

* Code clean up

* Balancing for ammo counts

* Code clean up

* Added missing localized strings

* More clean up

* Made directional window handling more robust

* Added documentation to radial menus and made them no longer dependent on Content

* Made radial containers more robust

* Further robustness to the radial menu

* The RCD submenu buttons are only shown when the destination layer has at least one children

* Expanded upon deconstructing plus construction balance

* Fixed line endings

* Updated list of RCD deconstructable entities. Now needs a component to deconstruct instead of a tag

* Bug fixes

* Revert unnecessary change

* Updated RCD strings

* Fixed bug

* More fixes

* Deconstructed tiles/subflooring convert to lattice instead

* Fixed failed tests (Linux doesn't like invalid spritespecifer paths)

* Fixing merge conflict

* Updated airlock assembly

* Fixing merge conflict

* Fixing merge conflict

* More fixing...

* Removed erroneous project file change

* Fixed string handling issue

* Trying to fix merge conflict

* Still fixing merge conflicts

* Balancing

* Hidden RCD construction ghosts when in 'build' mode

* Fixing merge conflict

* Implemented requested changes (Part 1)

* Added more requested changes

* Fix for failed test. Removed sussy null suppression

* Made requested changes - custom construction ghost system was replaced

* Fixing merge conflict

* Fixed merge conflict

* Fixed bug in RCD construction ghost validation

* Fixing merge conflict

* Merge conflict fixed

* Made required update

* Removed lingering RCD deconstruct tag

* Fixing merge conflict

* Merge conflict fixed

* Made requested changes

* Bug fixes and balancing

* Made string names more consistent

* Can no longer stack catwalks

* Automatic changelog update

* Update submodule to 217.2.0 (#26592)

* Southern accent (#26543)

* created the AccentComponent and the AccentSystem

* word replacement schtuhff

* made it a trait fr ongg!!1

* Update Content.Server/Speech/EntitySystems/SouthernAccentSystem.cs

---------

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

* Prevent storing liquids in equipped buckets (#24412)

* Block access to solutions in equipped spillables.

* Stop Drink verb appearing if the solution can't be accessed.

* Automatic changelog update

* Fix 'Hypopen shouldn't display solution examine text' (#26453)

* stealthy hypo

* ExaminableSolution hand check when in covert implement.

ExaminableSolution now has 'hidden' datafield to enable chemical inspection only in hand.

* cleaning code

* more cleaning

* Hidden datafield renamed to HeldOnly

* review

---------

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

* Automatic changelog update

* Revert Paint (#26593)

* Revert "Fix build (#26258)"

This reverts commit 6de5fbf.

* Revert "Spray Paint (Review Ready) (#23003)"

This reverts commit e4d5e7f.

# Conflicts:
#	Resources/Prototypes/Entities/Structures/Holographic/projections.yml

* 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>

* Automatic changelog update

* 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>

* Update submodule to 217.2.1 (#26599)

* 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>

* Automatic changelog update

* 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:

* Automatic changelog update

* Add AP damage to throwing knives (#26380)

* add

* ap

* no more stam dmg

* Automatic changelog update

* 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>

* Automatic changelog update

* 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

* Automatic changelog update

* 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)

* Automatic changelog update

* 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.

* Fix dirt decals in reach not being cleanable (#26636)

made all dirt decals cleanable

Co-authored-by: hamurlik <renoDeath@protonmail.com>

* Automatic changelog update

* 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

* Automatic changelog update

* 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>

* Automatic changelog update

* 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>

* Automatic changelog update

* 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

* Automatic changelog update

* 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>

* Automatic changelog update

* 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>

* Automatic changelog update

* 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

* Automatic changelog update

* 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>

* Automatic changelog update

* 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>

* Automatic changelog update

* 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>

* Automatic changelog update

* 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>

* Automatic changelog update

* Resprite ambuzol plus pills (#26651)

* Automatic changelog update

* 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

* Automatic changelog update

* Automatic changelog update

* Make typing indicator shaded (#26678)

* Automatic changelog update

* 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

* Automatic changelog update

* 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>

* Automatic changelog update

* fix double interaction popup (#26684)

change popentity to popupclient

* disable foam scooping (#26686)

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

* Automatic changelog update

* Little disk printer sprite tweaks (#26711)

* Little disk printer sprite tweaks

* ill change this aswell

* fixed white_box.png (#26714)

* Delete Resources/Textures/Decals/bricktile.rsi/white_box.png

* Readded fixed version

one pixel change

* New lobby art: TerminalStation (#26505)

woop woop

* Automatic changelog update

* 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>

* Automatic changelog update

* 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

* Automatic changelog update

* 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

* Automatic changelog update

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

Fix bug and formatting

* Automatic changelog update

* 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 😔

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

* Automatic changelog update

* 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

* Automatic changelog update

* 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

* Automatic changelog update

* 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

* Automatic changelog update

* 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

* Automatic changelog update

* 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>

* Automatic changelog update

* -fixed Broadcast button never enabling (#26750)

* Automatic changelog update

* 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.

* Automatic changelog update

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

* SapAndSyrup

* centrifug

* morewatervapor

* whyisitnotpushing

* nymphs

* lessrealmorefun

* Automatic changelog update

* 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)

* Automatic changelog update

* 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

* Automatic changelog update

* 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>

* Automatic changelog update

---------

Signed-off-by: c4llv07e <kseandi@gmail.com>
Co-authored-by: lzk <124214523+lzk228@users.noreply.github.com>
Co-authored-by: Plykiya <58439124+Plykiya@users.noreply.github.com>
Co-authored-by: Plykiya <plykiya@protonmail.com>
Co-authored-by: Boaz1111 <149967078+Boaz1111@users.noreply.github.com>
Co-authored-by: keronshb <54602815+keronshb@users.noreply.github.com>
Co-authored-by: Wrexbe (Josh) <81056464+wrexbe@users.noreply.github.com>
Co-authored-by: Leon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Co-authored-by: wrexbe <wrexbe@protonmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: PJBot <pieterjan.briers+bot@gmail.com>
Co-authored-by: Flareguy <78941145+Flareguy@users.noreply.github.com>
Co-authored-by: DrSmugleaf <DrSmugleaf@users.noreply.github.com>
Co-authored-by: Simon <63975668+Simyon264@users.noreply.github.com>
Co-authored-by: blueDev2 <89804215+blueDev2@users.noreply.github.com>
Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Co-authored-by: Velcroboy <107660393+IamVelcroboy@users.noreply.github.com>
Co-authored-by: Velcroboy <velcroboy333@hotmail.com>
Co-authored-by: Nemanja <98561806+EmoGarbage404@users.noreply.github.com>
Co-authored-by: brainfood1183 <113240905+brainfood1183@users.noreply.github.com>
Co-authored-by: J. Brown <DrMelon@users.noreply.github.com>
Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
Co-authored-by: chromiumboy <50505512+chromiumboy@users.noreply.github.com>
Co-authored-by: UBlueberry <161545003+UBlueberry@users.noreply.github.com>
Co-authored-by: Tayrtahn <tayrtahn@gmail.com>
Co-authored-by: drteaspoon420 <87363733+drteaspoon420@users.noreply.github.com>
Co-authored-by: Bixkitts <72874643+Bixkitts@users.noreply.github.com>
Co-authored-by: nikthechampiongr <32041239+nikthechampiongr@users.noreply.github.com>
Co-authored-by: Ubaser <134914314+UbaserB@users.noreply.github.com>
Co-authored-by: avery <51971268+graevy@users.noreply.github.com>
Co-authored-by: eoineoineoin <github@eoinrul.es>
Co-authored-by: Eoin Mcloughlin <helloworld@eoinrul.es>
Co-authored-by: RiceMar1244 <138547931+RiceMar1244@users.noreply.github.com>
Co-authored-by: Zealith-Gamer <61980908+Zealith-Gamer@users.noreply.github.com>
Co-authored-by: hamurlik <75280571+hamurlik@users.noreply.github.com>
Co-authored-by: hamurlik <renoDeath@protonmail.com>
Co-authored-by: no <165581243+pissdemon@users.noreply.github.com>
Co-authored-by: Kara <lunarautomaton6@gmail.com>
Co-authored-by: SoulFN <164462467+SoulFN@users.noreply.github.com>
Co-authored-by: Keer-Sar <144283718+Keer-Sar@users.noreply.github.com>
Co-authored-by: SlamBamActionman <83650252+SlamBamActionman@users.noreply.github.com>
Co-authored-by: 0x6273 <0x40@keemail.me>
Co-authored-by: c4llv07e <38111072+c4llv07e@users.noreply.github.com>
Co-authored-by: deltanedas <39013340+deltanedas@users.noreply.github.com>
Co-authored-by: Firewatch <54725557+musicmanvr@users.noreply.github.com>
Co-authored-by: IProduceWidgets <107586145+IProduceWidgets@users.noreply.github.com>
Co-authored-by: f0x-n3rd <150924715+f0x-n3rd@users.noreply.github.com>
Co-authored-by: exincore <me@exin.xyz>
Co-authored-by: Sk1tch <ben.peter.smith@gmail.com>
Co-authored-by: Your Name <you@example.com>
Co-authored-by: ShadowCommander <10494922+ShadowCommander@users.noreply.github.com>
Co-authored-by: Hrosts <35345601+Hrosts@users.noreply.github.com>
Co-authored-by: osjarw <62134478+osjarw@users.noreply.github.com>
Co-authored-by: lunarcomets <140772713+lunarcomets@users.noreply.github.com>
Co-authored-by: ThatOneGoblin25 <145570657+ThatOneGoblin25@users.noreply.github.com>
Co-authored-by: Terraspark4941 <terraspark4941@gmail.com>
Co-authored-by: Brandon Hu <103440971+Brandon-Huu@users.noreply.github.com>
Co-authored-by: beck-thompson <107373427+beck-thompson@users.noreply.github.com>
Co-authored-by: Aexxie <codyfox.077@gmail.com>
Co-authored-by: DinoWattz <116862698+DinoWattz@users.noreply.github.com>
Co-authored-by: Pspritechologist <81725545+Pspritechologist@users.noreply.github.com>
Co-authored-by: Vasilis <vasilis@pikachu.systems>
Co-authored-by: GeneralGaws <122978178+GeneralGaws@users.noreply.github.com>
Co-authored-by: GeneralGaws <limonmessi@mail.ru>
Co-authored-by: Dae <60460608+ZeroDayDaemon@users.noreply.github.com>
Co-authored-by: potato1234_x <79580518+potato1234x@users.noreply.github.com>
Co-authored-by: PrPleGoo <PrPleGoo@users.noreply.github.com>
Co-authored-by: Mephisto72 <66994453+Mephisto72@users.noreply.github.com>
Co-authored-by: Mephisto72 <Mephisto.Respectator@proton.me>
Co-authored-by: TsjipTsjip <19798667+TsjipTsjip@users.noreply.github.com>
Co-authored-by: Verm <32827189+Vermidia@users.noreply.github.com>
Co-authored-by: superjj18 <gagnonjake@gmail.com>
Co-authored-by: Golinth <amh2023@gmail.com>
Co-authored-by: Alzore <140123969+Blackern5000@users.noreply.github.com>
Co-authored-by: BITTERLYNX <166083655+PaigeMaeForrest@users.noreply.github.com>
Ilya246 added a commit to Ilya246/space-station-14 that referenced this pull request Aug 26, 2024
@Ilya246 Ilya246 mentioned this pull request Aug 26, 2024
2 tasks
Ilya246 added a commit to Ilya246/space-station-14 that referenced this pull request Sep 10, 2024
Ilya246 added a commit to Ilya246/space-station-14 that referenced this pull request Sep 22, 2024
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.

3 participants