From ae077c3971acfdb03cc9137857f1319ea2b0a2e7 Mon Sep 17 00:00:00 2001 From: Red <96445749+TheShuEd@users.noreply.github.com> Date: Tue, 8 Jul 2025 11:59:51 +0300 Subject: [PATCH] Revert "Upstream sync (#1509)" (#1510) This reverts commit a35c71873444b12b084f9142b8a0f8df60c1f066. --- .github/workflows/build-docfx.yml | 2 +- .github/workflows/build-map-renderer.yml | 2 +- .github/workflows/build-test-debug.yml | 2 +- .github/workflows/labeler-needsreview.yml | 2 +- .github/workflows/publish.yml | 4 - CODE_OF_CONDUCT.md | 2 +- Content.Client/Actions/ActionsSystem.cs | 2 +- .../Administration/AdminNameOverlay.cs | 45 +- .../Systems/AdminSystem.Overlay.cs | 5 +- .../Administration/UI/BanPanel/BanPanel.xaml | 2 +- .../UI/BanPanel/BanPanel.xaml.cs | 191 +- .../UI/Logs/AdminLogsControl.xaml | 1 - .../Administration/UI/Logs/AdminLogsEui.cs | 82 +- .../UI/Tabs/ObjectsTab/ObjectsTab.xaml.cs | 2 +- .../UI/Tabs/PlayerTab/PlayerTab.xaml.cs | 1 - .../UI/Tabs/PlayerTab/PlayerTabEntry.xaml.cs | 15 +- .../Alerts/GenericCounterAlertSystem.cs | 90 - .../Alerts/UpdateAlertSpriteEvent.cs | 5 +- .../GasPressureRegulatorSystem.cs | 31 - .../GasPressureRegulatorBoundUserInterface.cs | 58 - .../Atmos/UI/GasPressureRegulatorWindow.xaml | 96 - .../UI/GasPressureRegulatorWindow.xaml.cs | 129 - Content.Client/Audio/AmbientSoundSystem.cs | 2 +- .../Body/Systems/BloodStreamSystem.cs | 5 - .../Commands/HideMechanismsCommand.cs | 19 +- .../Commands/ShowHealthBarsCommand.cs | 33 +- .../Commands/ShowMechanismsCommand.cs | 15 +- .../Construction/ConstructionSystem.cs | 20 +- Content.Client/Content.Client.csproj | 2 +- .../Drowsiness/DrowsinessOverlay.cs | 18 +- Content.Client/Drowsiness/DrowsinessSystem.cs | 47 +- Content.Client/Drugs/DrugOverlaySystem.cs | 47 +- Content.Client/Drugs/RainbowOverlay.cs | 17 +- Content.Client/Examine/ExamineSystem.cs | 4 +- .../Explosion/TriggerSystem.Proximity.cs | 2 +- Content.Client/Flash/FlashSystem.cs | 1 + .../Guidebook/Richtext/KeyBindTag.cs | 2 +- .../Guidebook/Richtext/ProtodataTag.cs | 2 +- .../Guidebook/Richtext/TextLinkTag.cs | 15 +- Content.Client/Hands/Systems/HandsSystem.cs | 236 +- Content.Client/Holopad/HolopadSystem.cs | 2 +- Content.Client/Humanoid/EyeColorPicker.cs | 1 - .../Humanoid/HumanoidAppearanceSystem.cs | 2 +- Content.Client/Humanoid/MarkingPicker.xaml.cs | 1 - .../Humanoid/SingleMarkingPicker.xaml.cs | 3 +- .../Instruments/MidiParser/MidiParser.cs | 2 - .../Inventory/ClientInventorySystem.cs | 8 +- .../Inventory/StrippableBoundUserInterface.cs | 24 +- Content.Client/Lathe/UI/LatheMenu.xaml.cs | 13 +- .../Light/AmbientOcclusionOverlay.cs | 144 - .../EntitySystems/LightBehaviorSystem.cs | 12 +- .../Light/EntitySystems/PlanetLightSystem.cs | 34 - Content.Client/Light/RoofOverlay.cs | 8 +- .../Lobby/UI/HumanoidProfileEditor.xaml.cs | 1 - .../UI/Loadouts/LoadoutGroupContainer.xaml.cs | 19 +- Content.Client/Mapping/MappingState.cs | 2 +- Content.Client/Markers/MarkerSystem.cs | 2 +- .../NetworkConfiguratorLinkMenu.xaml.cs | 10 +- .../Options/UI/Tabs/GraphicsTab.xaml | 1 - .../Options/UI/Tabs/GraphicsTab.xaml.cs | 1 - Content.Client/Orbit/OrbitVisualsSystem.cs | 2 +- Content.Client/PowerCell/PowerCellSystem.cs | 15 +- Content.Client/RCD/AlignRCDConstruction.cs | 7 +- .../RCD/RCDConstructionGhostSystem.cs | 20 +- Content.Client/Revenant/RevenantSystem.cs | 16 +- Content.Client/Sandbox/SandboxSystem.cs | 2 +- .../SensorMonitoringWindow.xaml.cs | 48 +- .../ClientStatusEffectsSystem.cs | 50 - Content.Client/SubFloor/TrayScannerSystem.cs | 6 +- Content.Client/Tabletop/TabletopSystem.cs | 4 +- .../Systems/Alerts/AlertsUIController.cs | 3 +- .../Systems/Alerts/Controls/AlertControl.cs | 7 +- .../Systems/Atmos/GasTank/GasTankWindow.cs | 4 +- .../Systems/Hands/HandsUIController.cs | 55 +- .../Inventory/InventoryUIController.cs | 15 +- Content.Client/Verbs/VerbSystem.cs | 2 +- .../Weapons/Ranged/Systems/GunSystem.cs | 6 +- .../ExternalTestContext.cs | 12 - Content.IntegrationTests/ITestContextLike.cs | 13 - .../NUnitTestContextWrap.cs | 12 - .../Pair/TestPair.Recycle.cs | 4 +- Content.IntegrationTests/PoolManager.cs | 19 +- .../Actions/RetractableItemActionTest.cs | 65 - .../Tests/Buckle/BuckleTest.cs | 8 +- .../Tests/Chemistry/DispenserTest.cs | 13 +- .../Cloning/CloningSettingsPrototypeTest.cs | 46 - .../Tests/Commands/ObjectiveCommandsTest.cs | 72 - .../Tests/Commands/SuicideCommandTests.cs | 4 +- .../Interaction/WallConstruction.cs | 4 +- .../Tests/Disposal/DisposalUnitTest.cs | 2 +- .../Tests/Hands/HandTests.cs | 16 +- .../Interaction/InteractionTest.Helpers.cs | 26 +- .../Tests/Interaction/InteractionTest.cs | 24 +- .../Networking/SimplePredictReconcileTest.cs | 2 +- .../Tests/Tiles/TileConstructionTests.cs | 8 +- Content.MapRenderer/CommandLineArguments.cs | 14 +- Content.MapRenderer/MapViewerData.cs | 22 +- Content.MapRenderer/Painters/MapPainter.cs | 237 +- Content.MapRenderer/ParallaxOutput.cs | 41 - Content.MapRenderer/Program.cs | 132 +- Content.MapRenderer/RenderMap.cs | 55 - Content.Replay/Content.Replay.csproj | 2 +- .../Abilities/Mime/MimePowersSystem.cs | 2 +- .../Access/Systems/AccessOverriderSystem.cs | 4 +- .../Access/Systems/IdCardConsoleSystem.cs | 6 +- Content.Server/Access/Systems/IdCardSystem.cs | 4 +- .../Commands/AddBodyPartCommand.cs | 69 +- .../Administration/Commands/BanListCommand.cs | 6 +- .../Administration/Commands/DSay.cs | 57 +- .../Administration/Commands/DirtyCommand.cs | 22 +- .../Administration/Commands/FollowCommand.cs | 17 +- .../Commands/OpenAdminNotesCommand.cs | 8 +- .../Commands/PanicBunkerCommand.cs | 16 +- .../Commands/StealthminCommand.cs | 34 +- .../Commands/StripAllCommand.cs | 7 +- .../Commands/VariantizeCommand.cs | 4 +- .../Administration/Logs/AdminLogManager.cs | 6 +- .../Administration/Systems/AdminSystem.cs | 12 +- .../Systems/AdminVerbSystem.Smites.cs | 9 +- .../Systems/AdminVerbSystem.Tools.cs | 4 +- .../Administration/Systems/AdminVerbSystem.cs | 14 +- .../Commands/SetAlertLevelCommand.cs | 18 +- .../Ame/EntitySystems/AmeControllerSystem.cs | 4 +- .../Arcade/BlockGame/BlockGameArcadeSystem.cs | 2 +- .../SpaceVillainArcadeSystem.cs | 2 +- .../Consoles/AtmosMonitoringConsoleSystem.cs | 4 +- .../Atmos/EntitySystems/AirtightSystem.cs | 2 +- .../EntitySystems/AtmosphereSystem.Gases.cs | 122 - .../AtmosphereSystem.Processing.cs | 8 +- .../Atmos/EntitySystems/FlammableSystem.cs | 2 +- .../Monitor/Systems/AtmosAlarmableSystem.cs | 2 +- .../GasPressureRegulatorSystem.cs | 202 - .../Binary/EntitySystems/GasRecyclerSystem.cs | 2 +- .../EntitySystems/AtmosPipeColorSystem.cs | 6 +- .../AtmosUnsafeUnanchorSystem.cs | 4 +- .../Trinary/EntitySystems/GasFilterSystem.cs | 4 +- .../Trinary/EntitySystems/GasMixerSystem.cs | 6 +- .../Unary/EntitySystems/GasPortableSystem.cs | 4 +- .../Unary/EntitySystems/GasVentPumpSystem.cs | 2 +- .../EntitySystems/GasVentScrubberSystem.cs | 2 +- Content.Server/Atmos/Rotting/RottingSystem.cs | 2 +- Content.Server/Audio/ContentAudioSystem.cs | 38 +- .../Bed/Cryostorage/CryostorageSystem.cs | 7 +- Content.Server/Bible/BibleSystem.cs | 4 +- .../Body/Components}/BeingGibbedEvent.cs | 2 +- .../Body/Components/BloodstreamComponent.cs | 186 + .../Body/Components/MetabolizerComponent.cs | 1 - .../Body/Components/RespiratorComponent.cs | 24 - .../Body/Systems/BloodstreamSystem.cs | 485 +- Content.Server/Body/Systems/BodySystem.cs | 1 + .../Body/Systems/InternalsSystem.cs | 3 +- Content.Server/Body/Systems/LungSystem.cs | 3 - .../Body/Systems/RespiratorSystem.cs | 182 +- .../Botany/Systems/PlantHolderSystem.cs | 8 +- .../Cargo/Systems/CargoSystem.Orders.cs | 2 +- .../Cartridges/NanoTaskCartridgeSystem.cs | 4 +- Content.Server/Chat/SuicideSystem.cs | 12 +- Content.Server/Chat/Systems/ChatSystem.cs | 2 +- .../Commands/DumpReagentGuideText.cs | 20 +- .../DeleteOnSolutionEmptySystem.cs | 2 +- .../Chemistry/EntitySystems/InjectorSystem.cs | 13 +- .../SolutionInjectOnEventSystem.cs | 4 +- .../Chemistry/EntitySystems/VaporSystem.cs | 8 +- .../TileReactions/CreateEntityTileReaction.cs | 44 +- Content.Server/Cloning/CloningPodSystem.cs | 12 +- Content.Server/Cloning/CloningSystem.cs | 2 +- Content.Server/Codewords/CodewordSystem.cs | 2 +- .../Conditions/ComponentInTile.cs | 4 +- .../ConstructionSystem.Computer.cs | 2 +- .../Construction/ConstructionSystem.Graph.cs | 4 +- .../ConstructionSystem.Initial.cs | 8 +- .../Construction/ConstructionSystem.cs | 8 +- Content.Server/Content.Server.csproj | 2 +- Content.Server/Crayon/CrayonSystem.cs | 4 +- .../CrewManifest/CrewManifestSystem.cs | 63 +- .../Systems/DamageOnToolInteractSystem.cs | 2 +- .../Decals/Commands/AddDecalCommand.cs | 3 +- Content.Server/Decals/DecalSystem.cs | 6 +- .../Systems/SignalSwitchSystem.cs | 5 - .../DeviceNetwork/Systems/ApcNetworkSystem.cs | 4 +- .../Systems/Devices/ApcNetSwitchSystem.cs | 4 +- .../Systems/NetworkConfiguratorSystem.cs | 6 +- Content.Server/Devour/DevourSystem.cs | 2 +- .../Disposal/Tube/DisposalTubeSystem.cs | 2 +- .../Disposal/Unit/DisposableSystem.cs | 6 +- Content.Server/Dragon/DragonSystem.cs | 4 +- Content.Server/Drowsiness/DrowsinessSystem.cs | 33 +- .../Electrocution/ElectrocuteCommand.cs | 84 +- .../Electrocution/ElectrocutionSystem.cs | 3 +- .../EntitySystems/SpawnAfterInteractSystem.cs | 4 +- .../EntityEffects/EntityEffectSystem.cs | 41 +- Content.Server/Examine/ExamineSystem.cs | 2 +- .../EntitySystems/ExplosionSystem.Airtight.cs | 8 +- .../EntitySystems/ExplosionSystem.GridMap.cs | 2 +- .../ExplosionSystem.Processing.cs | 4 +- .../EntitySystems/ExplosionSystem.cs | 5 +- .../EntitySystems/SmokeOnTriggerSystem.cs | 3 +- .../EntitySystems/TriggerSystem.Proximity.cs | 4 +- .../Explosion/EntitySystems/TriggerSystem.cs | 9 +- .../EntitySystems/TwoStageTriggerSystem.cs | 2 +- Content.Server/Fax/FaxSystem.cs | 2 +- .../Components/DamagedByFlashingComponent.cs | 14 + .../Components/FlashImmunityComponent.cs | 13 + .../Flash/DamagedByFlashingSystem.cs | 12 +- Content.Server/Flash/FlashSystem.cs | 256 +- .../Fluids/EntitySystems/DrainSystem.cs | 2 +- .../PuddleDebugDebugOverlaySystem.cs | 2 +- .../EntitySystems/PuddleSystem.Evaporation.cs | 3 +- .../EntitySystems/PuddleSystem.Spillable.cs | 3 +- .../Fluids/EntitySystems/PuddleSystem.cs | 6 +- .../Fluids/EntitySystems/SmokeSystem.cs | 4 +- .../Systems/ForensicScannerSystem.cs | 4 +- .../Forensics/Systems/ForensicsSystem.cs | 2 +- .../GameTicking/GameTicker.Spawning.cs | 4 +- .../Rules/RevolutionaryRuleSystem.cs | 5 +- .../GameTicking/Rules/TraitorRuleSystem.cs | 6 +- Content.Server/Ghost/GhostSystem.cs | 6 +- Content.Server/Ghost/Roles/GhostRoleSystem.cs | 4 +- Content.Server/Hands/Systems/HandsSystem.cs | 39 +- Content.Server/Holosign/HolosignSystem.cs | 2 +- Content.Server/HotPotato/HotPotatoSystem.cs | 2 +- .../Humanoid/Systems/RandomHumanoidSystem.cs | 4 +- .../ImmovableRod/ImmovableRodSystem.cs | 4 +- Content.Server/Implants/ImplantedSystem.cs | 2 +- .../Instruments/InstrumentSystem.cs | 25 +- .../Kitchen/EntitySystems/MicrowaveSystem.cs | 4 +- .../Kitchen/EntitySystems/SharpSystem.cs | 6 +- Content.Server/Lathe/LatheSystem.cs | 17 +- .../EntitySystems/ExpendableLightSystem.cs | 2 +- .../Light/EntitySystems/PoweredLightSystem.cs | 12 +- .../MassMedia/Systems/NewsSystem.cs | 81 +- .../Mech/Systems/MechAssemblySystem.cs | 2 +- .../BiomassReclaimerSystem.cs | 3 +- .../Medical/Components/HealingComponent.cs | 66 + Content.Server/Medical/CryoPodSystem.cs | 4 +- .../Medical}/HealingSystem.cs | 138 +- .../Medical/HealthAnalyzerSystem.cs | 4 +- .../Medical/SuitSensors/SuitSensorSystem.cs | 4 +- Content.Server/Medical/VomitSystem.cs | 1 + .../Mind/TransferMindOnGibSystem.cs | 2 +- Content.Server/Morgue/CrematoriumSystem.cs | 4 +- .../ActiveHandComponentPrecondition.cs | 10 +- .../ActiveHandEntityPrecondition.cs | 7 +- .../Operators/Interactions/DropOperator.cs | 2 +- Content.Server/NPC/NPCBlackboard.cs | 26 +- .../NPC/Systems/NPCSteeringSystem.cs | 2 +- .../NPC/Systems/NPCUtilitySystem.cs | 7 +- .../NameIdentifier/NameIdentifierSystem.cs | 49 +- .../Nuke/Commands/SendNukeCodesCommand.cs | 75 +- Content.Server/Nuke/NukeComponent.cs | 2 +- Content.Server/Nuke/NukeSystem.cs | 29 +- .../Nutrition/EntitySystems/CreamPieSystem.cs | 6 +- .../EntitySystems/SmokingSystem.Cigar.cs | 6 +- .../SmokingSystem.SmokingPipe.cs | 6 +- .../EntitySystems/SmokingSystem.Vape.cs | 6 +- .../Nutrition/EntitySystems/SmokingSystem.cs | 6 +- .../TrashOnSolutionEmptySystem.cs | 2 +- .../Payload/EntitySystems/PayloadSystem.cs | 4 +- .../Physics/Controllers/ConveyorController.cs | 3 +- .../Controllers/RandomWalkController.cs | 6 +- Content.Server/Pinpointer/NavMapSystem.cs | 4 +- Content.Server/Pinpointer/PinpointerSystem.cs | 2 +- .../Pointing/EntitySystems/PointingSystem.cs | 4 +- .../EntitySystems/RoguePointingSystem.cs | 4 +- .../Power/Commands/PowerStatCommand.cs | 33 +- .../Power/EntitySystems/CableSystem.Placer.cs | 2 +- .../EntitySystems/ExtensionCableSystem.cs | 2 +- .../PowerMonitoringConsoleSystem.cs | 30 +- .../PowerCell/PowerCellSystem.Draw.cs | 2 +- Content.Server/PowerSink/PowerSinkSystem.cs | 2 +- Content.Server/Prayer/PrayerSystem.cs | 4 +- .../DungeonJob/DungeonJob.Exterior.cs | 2 +- .../Procedural/DungeonJob/DungeonJob.cs | 3 - .../Procedural/DungeonSystem.Commands.cs | 2 +- Content.Server/Procedural/DungeonSystem.cs | 3 - .../Projectiles/ProjectileSystem.cs | 2 +- .../Systems/RadiationSystem.GridCast.cs | 2 +- Content.Server/Remotes/DoorRemoteSystem.cs | 16 +- Content.Server/Repairable/RepairableSystem.cs | 2 +- .../Research/Disk/ResearchDiskSystem.cs | 2 +- .../Respawn/SpecialRespawnSystem.cs | 5 +- .../Revenant/EntitySystems/RevenantSystem.cs | 3 +- Content.Server/Rootable/RootableSystem.cs | 7 +- Content.Server/Rotatable/RotatableSystem.cs | 24 +- .../Sandbox/Commands/ColorNetworkCommand.cs | 2 + .../Commands/DelayShuttleRoundEndCommand.cs | 19 +- .../Shuttles/Commands/DockCommand.cs | 55 +- .../Commands/DockEmergencyShuttleCommand.cs | 14 +- .../Shuttles/Commands/FTLDiskCommand.cs | 4 +- .../Commands/LaunchEmergencyShuttleCommand.cs | 14 +- .../Shuttles/Systems/DockingSystem.cs | 22 +- .../Shuttles/Systems/ShuttleConsoleSystem.cs | 8 +- .../Systems/ShuttleSystem.FasterThanLight.cs | 19 +- .../Shuttles/Systems/ShuttleSystem.Impact.cs | 4 +- .../Shuttles/Systems/ShuttleSystem.cs | 13 +- .../Shuttles/Systems/ThrusterSystem.cs | 24 +- .../Silicons/Borgs/BorgSystem.Modules.cs | 8 +- Content.Server/Silicons/Borgs/BorgSystem.cs | 3 +- .../Silicons/Laws/SiliconLawSystem.cs | 2 +- .../Silicons/StationAi/StationAiSystem.cs | 2 +- .../EntitySystems/EventHorizonSystem.cs | 6 +- .../EntitySystems/RadiationCollectorSystem.cs | 2 +- .../SingularityGeneratorSystem.cs | 8 +- .../EntitySystems/SingularitySystem.cs | 4 +- .../Solar/EntitySystems/PowerSolarSystem.cs | 2 +- .../EntitySystems/ConditionalSpawnerSystem.cs | 6 +- Content.Server/Species/Systems/NymphSystem.cs | 2 +- .../Speech/Components/SlowAccentComponent.cs | 7 - .../EntitySystems/AddAccentClothingSystem.cs | 2 +- .../EntitySystems/MumbleAccentSystem.cs | 10 +- .../Speech/EntitySystems/SlowAccentSystem.cs | 41 - .../Speech/EntitySystems/VocalSystem.cs | 16 +- Content.Server/Spider/SpiderSystem.cs | 11 +- Content.Server/Spreader/KudzuSystem.cs | 4 +- Content.Server/Spreader/SpreaderSystem.cs | 3 +- .../Station/Systems/StationSpawningSystem.cs | 2 +- .../StationEvents/Events/VentClogRule.cs | 2 +- .../StatusEffectNew/StatusEffectsSystem.cs | 23 - .../EntitySystems/BluespaceLockerSystem.cs | 4 +- .../EntitySystems/ItemCounterSystem.cs | 2 +- .../EntitySystems/SpawnItemsOnUseSystem.cs | 4 +- .../Store/Systems/StoreSystem.Ui.cs | 2 +- .../Stunnable/Systems/StunOnCollideSystem.cs | 2 +- .../SurveillanceCameraMonitorSystem.cs | 4 +- Content.Server/Tabletop/TabletopSystem.Map.cs | 2 +- .../Tabletop/TabletopSystem.Session.cs | 16 +- Content.Server/Tabletop/TabletopSystem.cs | 21 +- Content.Server/Telephone/TelephoneSystem.cs | 2 +- .../Tools/Innate/InnateToolSystem.cs | 4 +- .../Uplink/Commands/AddUplinkCommand.cs | 140 +- .../Traits/Assorted/NarcolepsySystem.cs | 8 +- Content.Server/Traits/TraitSystem.cs | 2 +- Content.Server/Verbs/VerbSystem.cs | 8 +- .../VoiceTrigger/StorageVoiceControlSystem.cs | 27 +- Content.Server/Voting/VoteCommands.cs | 4 +- Content.Server/Whitelist/WhitelistCommands.cs | 46 +- Content.Server/Wires/WiresSystem.cs | 16 +- .../Debris/SimpleFloorPlanPopulatorSystem.cs | 3 +- .../Zombies/ZombieSystem.Transform.cs | 1 - .../_CP14/Demiplane/CP14DemiplaneSystem.cs | 2 +- .../Rules/CP14VampireRuleSystem.cs | 2 +- .../_CP14/Temperature/CP14FireSpreadSystem.cs | 9 +- .../Goliath/GoliathTentacleSystem.cs | 2 +- .../Access/Systems/IdExaminableSystem.cs | 4 +- .../Access/Systems/SharedIdCardSystem.cs | 6 +- Content.Shared/Actions/ActionUpgradeSystem.cs | 4 +- Content.Shared/Actions/SharedActionsSystem.cs | 6 +- Content.Shared/Administration/PlayerInfo.cs | 3 +- Content.Shared/Alert/AlertsSystem.cs | 14 +- .../GenericCounterAlertComponent.cs | 63 - Content.Shared/Animals/UdderSystem.cs | 4 +- Content.Shared/Animals/WoolySystem.cs | 2 +- .../Atmos/Components/GasTankComponent.cs | 2 +- .../SharedGasPressureRegulatorSystem.cs | 70 - .../EntitySystems/SharedGasTankSystem.cs | 1 - .../GasPressureRegulatorComponent.cs | 88 - .../SharedGasPressureRegulatorComponent.cs | 25 - .../Atmos/Piping/EnabledAtmosDeviceVisuals.cs | 6 - .../Cryostorage/SharedCryostorageSystem.cs | 2 +- .../Bed/Sleep/ForcedSleepingComponent.cs | 11 + .../ForcedSleepingStatusEffectComponent.cs | 10 - Content.Shared/Bed/Sleep/SleepingSystem.cs | 17 +- Content.Shared/Blocking/BlockingSystem.cs | 7 +- .../Body/Components/BloodstreamComponent.cs | 200 - .../Events/ApplyMetabolicMultiplierEvent.cs | 2 +- .../Body/Systems/SharedBloodstreamSystem.cs | 519 -- Content.Shared/Body/Systems/StomachSystem.cs | 1 - Content.Shared/CCVar/CCVars.Audio.cs | 10 +- Content.Shared/CCVar/CCVars.Lighting.cs | 21 - Content.Shared/Camera/GetEyeOffsetEvent.cs | 7 - Content.Shared/Camera/GetEyePvsScaleEvent.cs | 7 - .../Cargo/Prototypes/CargoBountyPrototype.cs | 2 +- .../Chat/Prototypes/EmoteSoundsPrototype.cs | 2 +- .../Chemistry/Components/Solution.cs | 3 +- .../EntitySystems/HypospraySystem.cs | 6 +- .../SharedSolutionContainerSystem.cs | 13 +- .../MetabolismMovespeedModifierSystem.cs | 2 +- .../Clothing/Components/ClothingComponent.cs | 41 +- .../Clothing/EntitySystems/ClothingSystem.cs | 17 +- .../Clothing/EntitySystems/MaskSystem.cs | 6 +- .../Conditions/EmptyOrWindowValidInTile.cs | 2 +- .../Construction/Conditions/TileNotBlocked.cs | 12 +- .../Construction/Conditions/TileType.cs | 9 +- .../EntitySystems/AnchorableSystem.cs | 4 +- .../Containers/ContainerFillSystem.cs | 4 +- .../Containers/ItemSlot/ItemSlotsSystem.cs | 26 +- Content.Shared/Content.Shared.csproj | 2 +- Content.Shared/Cuffs/SharedCuffableSystem.cs | 43 +- Content.Shared/Damage/DamageSpecifier.cs | 6 - .../Prototypes/DamageContainerPrototype.cs | 1 + .../Damage/Prototypes/DamageGroupPrototype.cs | 1 + .../Systems/DamageOnHighSpeedImpactSystem.cs | 2 +- .../Damage/Systems/DamageableSystem.cs | 2 +- .../Damage/Systems/SharedGodmodeSystem.cs | 2 +- .../Damage/Systems/SlowOnDamageSystem.cs | 2 +- .../DeviceLinking/DevicePortPrototype.cs | 3 + .../DeviceLinking/SharedDeviceLinkSystem.cs | 11 - .../DeviceNetwork/DeviceFrequencyPrototype.cs | 1 + .../NetworkConfiguratorUserInterfaceState.cs | 8 +- .../DisplacementMap/DisplacementData.cs | 2 +- .../Mailing/SharedMailingUnitSystem.cs | 2 +- .../Disposal/Unit/SharedDisposalUnitSystem.cs | 2 +- .../DoAfter/SharedDoAfterSystem.Update.cs | 2 +- Content.Shared/DoAfter/SharedDoAfterSystem.cs | 4 +- ...ectComponent.cs => DrowsinessComponent.cs} | 14 +- Content.Shared/Drowsiness/DrowsinessSystem.cs | 4 + .../Drugs/SeeingRainbowsComponent.cs | 5 +- .../Effects/FlashReactionEffect.cs | 4 +- .../StatusEffects/GenericStatusEffect.cs | 1 - .../StatusEffects/ModifyStatusEffect.cs | 70 - Content.Shared/Examine/ExamineSystemShared.cs | 2 +- .../Eye/Blinding/Systems/BlindableSystem.cs | 15 - .../Flash/Components/ActiveFlashComponent.cs | 24 - .../Components/DamagedByFlashingComponent.cs | 18 - .../Flash/Components/FlashComponent.cs | 120 +- .../Components/FlashImmunityComponent.cs | 18 - .../Components/FlashOnTriggerComponent.cs | 11 +- .../Flash/Components/FlashedComponent.cs | 4 +- Content.Shared/Flash/FlashEvents.cs | 21 - Content.Shared/Flash/FlashVisuals.cs | 17 - Content.Shared/Flash/SharedFlashSystem.cs | 252 +- .../Fluids/Components/SpillableComponent.cs | 8 - .../Foldable/DeployFoldableSystem.cs | 6 +- Content.Shared/Gravity/SharedGravitySystem.cs | 2 +- .../Hands/Components/HandHelpers.cs | 44 + .../Hands/Components/HandsComponent.cs | 79 +- .../EntitySystems/SharedHandsSystem.AI.cs | 13 +- .../EntitySystems/SharedHandsSystem.Drop.cs | 106 +- .../SharedHandsSystem.Interactions.cs | 64 +- .../EntitySystems/SharedHandsSystem.Pickup.cs | 100 +- .../EntitySystems/SharedHandsSystem.Relay.cs | 4 +- .../Hands/EntitySystems/SharedHandsSystem.cs | 322 +- .../Implants/SharedImplanterSystem.cs | 2 +- .../Instruments/SharedInstrumentComponent.cs | 26 - .../Interaction/SharedInteractionSystem.cs | 17 +- .../Interaction/SmartEquipSystem.cs | 10 +- .../Inventory/InventorySystem.Equip.cs | 4 +- .../Inventory/InventorySystem.Helpers.cs | 11 +- .../Inventory/InventorySystem.Relay.cs | 2 - .../VirtualItem/SharedVirtualItemSystem.cs | 16 +- Content.Shared/Item/MultiHandedItemSystem.cs | 3 +- Content.Shared/Item/SharedItemSystem.cs | 2 +- .../Jittering/SharedJitteringSystem.cs | 4 +- Content.Shared/Lathe/LatheComponent.cs | 4 +- Content.Shared/Lathe/LatheMessages.cs | 7 +- .../Light/SharedHandheldLightSystem.cs | 5 +- Content.Shared/Magic/SharedMagicSystem.cs | 9 +- Content.Shared/Maps/TurfHelpers.cs | 144 + Content.Shared/Maps/TurfSystem.cs | 136 +- .../Medical/Healing/HealingComponent.cs | 65 - Content.Shared/Mind/MindComponent.cs | 3 - Content.Shared/Mind/RoleTypePrototype.cs | 12 +- .../Movement/Pulling/Systems/PullingSystem.cs | 14 +- .../Systems/FrictionContactsSystem.cs | 2 +- .../Systems/SharedContentEyeSystem.cs | 18 - .../Systems/SpeedModifierContactsSystem.cs | 2 +- .../NameIdentifier/NameIdentifierComponent.cs | 10 +- .../Ninja/Systems/SharedNinjaGlovesSystem.cs | 5 +- .../Nutrition/EntitySystems/FoodSystem.cs | 8 +- .../EntitySystems/SharedCreamPieSystem.cs | 4 +- .../Nutrition/EntitySystems/UtensilSystem.cs | 4 +- Content.Shared/Paper/PaperSystem.cs | 2 +- .../PowerCell/PowerCellDrawComponent.cs | 15 +- Content.Shared/RCD/Systems/RCDSystem.cs | 22 +- .../Remotes/Components/DoorRemoteComponent.cs | 7 - .../Prototypes/LatheRecipePrototype.cs | 3 +- .../RetractableItemActionSystem.cs | 54 +- Content.Shared/Revenant/SharedRevenant.cs | 8 + Content.Shared/Roles/AntagPrototype.cs | 1 + .../RoleCodeword/RoleCodewordComponent.cs | 3 + .../RoleCodeword/SharedRoleCodewordSystem.cs | 44 +- .../SSDIndicator/SSDIndicatorComponent.cs | 7 + .../SSDIndicator/SSDIndicatorSystem.cs | 22 +- .../Sericulture/SericultureComponent.cs | 4 +- .../Sericulture/SericultureSystem.cs | 16 - .../Silicons/Laws/SiliconLawPrototype.cs | 1 + .../Silicons/Laws/SiliconLawsetPrototype.cs | 2 +- .../EntitySystems/SharedEventHorizonSystem.cs | 2 +- .../EntitySystems/SharedSingularitySystem.cs | 78 +- Content.Shared/Sound/SharedEmitSoundSystem.cs | 4 +- .../Speech/Components/VocalComponent.cs | 6 +- Content.Shared/Stacks/SharedStackSystem.cs | 2 +- .../Station/SharedStationSpawningSystem.cs | 6 +- .../StatusEffect/StatusEffectsSystem.cs | 27 +- .../Components/StatusEffectComponent.cs | 47 - .../StatusEffectContainerComponent.cs | 23 - .../SharedStatusEffectsSystem.cs | 240 - .../StatusEffectNew/StatusEffectSystem.API.cs | 361 -- .../StatusEffectSystem.Relay.cs | 51 - .../Storage/EntitySystems/BinSystem.cs | 10 +- .../EntitySystems/SharedItemCounterSystem.cs | 4 +- .../EntitySystems/SharedItemMapperSystem.cs | 4 +- .../EntitySystems/SharedStorageSystem.cs | 14 +- Content.Shared/Store/CurrencyPrototype.cs | 2 +- Content.Shared/Store/ListingPrototype.cs | 3 +- .../Store/StoreCategoryPrototype.cs | 1 + .../Prototypes/StoryTemplatePrototype.cs | 2 +- .../Strip/SharedStrippableSystem.cs | 93 +- .../SubFloor/SharedSubFloorHideSystem.cs | 4 +- .../Tabletop/SharedTabletopSystem.cs | 2 +- Content.Shared/Throwing/ThrownItemSystem.cs | 6 +- Content.Shared/Tiles/FloorTileSystem.cs | 14 +- .../Systems/SharedToolSystem.MultipleTool.cs | 2 +- .../UserInterface/ActivatableUISystem.cs | 8 +- .../VendingMachineInventoryPrototype.cs | 2 +- .../Weapons/Melee/SharedMeleeWeaponSystem.cs | 13 +- .../Weapons/Misc/SharedGrapplingGunSystem.cs | 13 +- .../Weapons/Misc/SharedTetherGunSystem.cs | 8 +- .../Systems/SharedGunSystem.Revolver.cs | 2 +- .../Weapons/Ranged/Systems/SharedGunSystem.cs | 16 +- .../Wieldable/SharedWieldableSystem.cs | 8 +- .../Artifact/XAE/XAEApplyComponentsSystem.cs | 6 +- .../CP14SharedFarmingSystem.Interactions.cs | 8 +- .../CP14SharedMagicSystem.Checks.cs | 11 +- .../CP14SharedMagicWeaknessSystem.cs | 23 +- .../Components/CP14MeleeParriableComponent.cs | 25 + .../Components/CP14MeleeParryComponent.cs | 14 + .../EntitySystems/CP14MeleeParrySystem.cs | 63 + .../TileEditTool/CP14EditTileToolSystem.cs | 8 +- Content.Tests/Shared/DamageTest.cs | 35 +- .../Audio/Ambience/Antag/attributions.yml | 4 - .../Audio/Ambience/Antag/traitor_wawa.ogg | Bin 217702 -> 0 bytes Resources/Audio/Animals/attributions.yml | 45 +- Resources/Audio/Animals/wawa_achoo.ogg | Bin 20250 -> 0 bytes Resources/Audio/Animals/wawa_chatter.ogg | Bin 32829 -> 0 bytes Resources/Audio/Animals/wawa_chillin.ogg | Bin 29014 -> 0 bytes Resources/Audio/Animals/wawa_depression.ogg | Bin 21462 -> 0 bytes Resources/Audio/Animals/wawa_despair.ogg | Bin 36237 -> 0 bytes Resources/Audio/Animals/wawa_exclaim.ogg | Bin 20644 -> 0 bytes Resources/Audio/Animals/wawa_mock.ogg | Bin 30534 -> 0 bytes Resources/Audio/Animals/wawa_protest.ogg | Bin 37543 -> 0 bytes Resources/Audio/Animals/wawa_question.ogg | Bin 14119 -> 0 bytes Resources/Audio/Animals/wawa_statement.ogg | Bin 18971 -> 0 bytes Resources/Audio/Animals/wawa_the_end.ogg | Bin 20165 -> 0 bytes Resources/Audio/Animals/wawa_yawn.ogg | Bin 26050 -> 0 bytes Resources/Audio/Effects/attributions.yml | 5 - Resources/Audio/Effects/soft_thump.ogg | Bin 16851 -> 0 bytes Resources/Audio/Items/attributions.yml | 20 +- Resources/Audio/Items/bottle_clunk.ogg | Bin 14663 -> 17076 bytes Resources/Audio/Items/bottle_clunk_2.ogg | Bin 5152 -> 25857 bytes Resources/Audio/Items/flask_close1.ogg | Bin 20371 -> 0 bytes Resources/Audio/Items/flask_open1.ogg | Bin 34411 -> 0 bytes Resources/Changelog/Admin.yml | 61 - Resources/Changelog/Changelog.yml | 605 ++- Resources/Changelog/Maps.yml | 18 - Resources/Credits/GitHub.txt | 2 +- Resources/Credits/Patrons.yml | 1549 +----- .../en-US/actions/actions/polymorph.ftl | 2 +- .../commands/add-uplink-command.ftl | 4 +- .../administration/commands/dsay-command.ftl | 2 + .../commands/follow-command.ftl | 2 + .../commands/stealthmin-command.ftl | 1 + .../en-US/administration/ui/admin-logs.ftl | 1 - .../en-US/administration/ui/role-bans.ftl | 3 - .../atmos/gas-pressure-regulator-system.ftl | 7 - Resources/Locale/en-US/chat/emotes.ftl | 1 - .../en-US/chat/managers/chat-manager.ftl | 6 - .../en-US/commands/add-body-part-command.ftl | 2 - .../en-US/commands/admin-who-command.ftl | 2 +- .../en-US/commands/crew-manifest-command.ftl | 2 - .../Locale/en-US/commands/dirty-command.ftl | 2 - .../Locale/en-US/commands/dsay-command.ftl | 2 - .../dump-reagent-guide-text-command.ftl | 4 - .../Locale/en-US/commands/follow-command.ftl | 2 - .../commands/hide-mechanisms-command.ftl | 4 +- .../en-US/commands/nukecodes-command.ftl | 2 - .../en-US/commands/powerstat-command.ftl | 6 - .../commands/show-health-bars-command.ftl | 6 +- .../commands/show-mechanisms-command.ftl | 2 +- .../gas-pressure-regulator-component.ftl | 19 - .../en-US/datasets/names/scurret_first.ftl | 67 - .../en-US/datasets/names/scurret_last.ftl | 68 - .../electrocution/electrocute-command.ftl | 5 +- Resources/Locale/en-US/entity-categories.ftl | 1 - .../en-US/escape-menu/ui/options-menu.ftl | 1 - .../ghost/roles/ghost-role-component.ftl | 3 - Resources/Locale/en-US/guidebook/guides.ftl | 1 - .../medical/components/healing-component.ftl | 8 +- .../en-US/navmap-beacons/station-beacons.ftl | 18 +- .../Locale/en-US/preferences/loadouts.ftl | 5 - Resources/Locale/en-US/scurret/role.ftl | 25 - Resources/Locale/en-US/shuttles/docking.ftl | 3 + Resources/Locale/en-US/shuttles/emergency.ftl | 11 +- .../Locale/en-US/store/uplink-catalog.ftl | 2 +- Resources/Locale/en-US/thief/backpack.ftl | 16 +- Resources/Locale/en-US/tiles/tiles.ftl | 1 - Resources/Locale/en-US/traits/traits.ftl | 4 +- .../Maps/Ruins/displaced_telescience.yml | 40 +- Resources/Maps/Shuttles/emergency_exo.yml | 38 +- Resources/Maps/centcomm.yml | 3956 +++++--------- Resources/Maps/exo.yml | 2756 ++++------ Resources/Maps/oasis.yml | 4727 +++++------------ .../Prototypes/Accents/full_replacements.yml | 24 - Resources/Prototypes/Actions/polymorph.yml | 2 - Resources/Prototypes/Actions/types.yml | 3 +- Resources/Prototypes/Alerts/revenant.yml | 11 +- .../Prototypes/Body/Prototypes/a_ghost.yml | 22 + .../Prototypes/Catalog/Cargo/cargo_fun.yml | 10 - .../Prototypes/Catalog/Fills/Crates/fun.yml | 19 - .../Catalog/Fills/Lockers/heads.yml | 2 +- .../VendingMachines/Inventories/pride.yml | 2 +- .../Prototypes/Catalog/thief_toolbox_sets.yml | 14 +- .../Prototypes/Datasets/Names/scurret.yml | 11 - .../Entities/Clothing/Head/hats.yml | 86 +- .../Entities/Clothing/Head/soft.yml | 30 +- .../Entities/Clothing/Multiple/misc.yml | 40 - .../Entities/Clothing/Neck/misc.yml | 33 + .../Entities/Clothing/OuterClothing/armor.yml | 4 +- .../Clothing/OuterClothing/hardsuits.yml | 16 +- .../Clothing/OuterClothing/softsuits.yml | 1 - .../Markers/Spawners/Random/maintenance.yml | 2 +- .../Markers/Spawners/Random/posters.yml | 1 - .../Prototypes/Entities/Mobs/NPCs/animals.yml | 1 - .../Entities/Mobs/NPCs/asteroid.yml | 5 +- .../Prototypes/Entities/Mobs/NPCs/carp.yml | 6 +- .../Prototypes/Entities/Mobs/NPCs/scurret.yml | 212 - .../Entities/Mobs/NPCs/simplemob.yml | 4 + .../Prototypes/Entities/Mobs/NPCs/space.yml | 10 +- .../Entities/Mobs/NPCs/spacetick.yml | 2 +- .../Prototypes/Entities/Mobs/NPCs/xeno.yml | 4 +- .../Entities/Mobs/Player/admin_ghost.yml | 10 +- .../Prototypes/Entities/Mobs/Player/clone.yml | 2 +- .../Entities/Mobs/Player/dragon.yml | 2 + .../Entities/Mobs/Species/arachnid.yml | 1 + .../Prototypes/Entities/Mobs/Species/base.yml | 3 + .../Consumable/Drinks/drinks_flasks.yml | 78 +- .../Consumable/Drinks/drinks_special.yml | 30 - .../Entities/Objects/Devices/door_remote.yml | 20 - .../Entities/Objects/Devices/pda.yml | 18 - .../Objects/Devices/station_beacon.yml | 128 - .../Entities/Objects/Fun/mech_figurines.yml | 218 +- .../Entities/Objects/Fun/plushies.yml | 105 +- .../Prototypes/Entities/Objects/Fun/toys.yml | 61 +- .../Entities/Objects/Misc/fluff_lights.yml | 12 +- .../Entities/Objects/Misc/implanters.yml | 4 +- .../Entities/Objects/Misc/tiles.yml | 2 +- .../Objects/Specific/Janitorial/janitor.yml | 2 - .../Objects/Specific/Medical/healing.yml | 2 +- .../Specific/Robotics/borg_modules.yml | 1 - .../Entities/Objects/Tools/lantern.yml | 52 +- .../Objects/Weapons/Guns/Basic/staves.yml | 1 - .../Weapons/Guns/Projectiles/projectiles.yml | 21 +- .../Entities/Objects/Weapons/Melee/knife.yml | 4 +- .../Entities/Objects/Weapons/Melee/mining.yml | 36 +- .../Entities/Objects/Weapons/security.yml | 10 +- .../Entities/StatusEffects/misc.yml | 52 - .../Structures/Doors/Airlocks/airlocks.yml | 6 + .../Doors/Airlocks/base_structureairlocks.yml | 3 + .../Structures/Doors/Airlocks/highsec.yml | 3 + .../Doors/MaterialDoors/material_doors.yml | 3 + .../Structures/Doors/Shutter/shutters.yml | 3 + .../Structures/Furniture/Tables/tables.yml | 3 - .../Entities/Structures/Furniture/dresser.yml | 2 +- .../Structures/Machines/Medical/cryo_pod.yml | 9 +- .../Structures/Piping/Atmospherics/binary.yml | 56 - .../Structures/Wallmounts/Signs/posters.yml | 9 - .../Structures/Wallmounts/air_alarm.yml | 7 + .../Structures/Wallmounts/fire_alarm.yml | 14 + .../Entities/Structures/plastic_flaps.yml | 3 + Resources/Prototypes/Entities/categories.yml | 5 - .../Prototypes/Guidebook/engineering.yml | 6 - .../scurret_inventory_template.yml | 71 - .../Loadouts/Miscellaneous/trinkets.yml | 2 +- Resources/Prototypes/Maps/exo.yml | 8 +- Resources/Prototypes/Palettes/critters.yml | 15 - .../Reagents/Consumable/Drink/alcohol.yml | 41 +- .../Reagents/Consumable/Drink/drinks.yml | 30 +- .../Reagents/Consumable/Drink/soda.yml | 14 +- Resources/Prototypes/Reagents/cleaning.yml | 7 +- Resources/Prototypes/Reagents/gases.yml | 15 +- Resources/Prototypes/Reagents/medicine.yml | 31 +- Resources/Prototypes/Reagents/narcotics.yml | 52 +- Resources/Prototypes/Reagents/toxins.yml | 10 +- .../Construction/Graphs/furniture/tables.yml | 12 - .../Graphs/utilities/atmos_binary.yml | 22 - .../Recipes/Construction/utilities.yml | 11 - Resources/Prototypes/Recipes/Lathes/tiles.yml | 2 +- .../Roles/Jobs/Civilian/musician.yml | 2 +- .../Roles/Jobs/Fun/misc_startinggear.yml | 7 - Resources/Prototypes/Shaders/Stencils.yml | 11 - Resources/Prototypes/Shaders/displacement.yml | 7 - .../SoundCollections/drink_close_sounds.yml | 5 - .../SoundCollections/drink_open_sounds.yml | 5 - .../Prototypes/SoundCollections/scurret.yml | 34 - Resources/Prototypes/Tiles/planet.yml | 2 +- Resources/Prototypes/Traits/disabilities.yml | 6 +- .../Prototypes/Voice/speech_emote_sounds.yml | 48 - Resources/Prototypes/Voice/speech_emotes.yml | 6 - Resources/Prototypes/Voice/speech_sounds.yml | 9 - Resources/Prototypes/Voice/speech_verbs.yml | 9 - .../Actions/Spells/Water/ice_dagger.yml | 1 + .../Entities/Objects/ModularTools/grips.yml | 1 + .../Entities/Objects/Weapons/Melee/base.yml | 1 + .../Entities/Objects/Weapons/Melee/shield.yml | 1 + Resources/Prototypes/status_effects.yml | 12 +- Resources/Prototypes/tags.yml | 5 +- .../Guidebook/Antagonist/MinorAntagonists.xml | 2 +- .../Guidebook/Antagonist/Thieves.xml | 25 +- Resources/ServerInfo/Guidebook/Command.xml | 2 +- .../Guidebook/Engineering/GasManipulation.xml | 1 - .../Engineering/PressureRegulator.xml | 23 - .../Guidebook/Engineering/Valves.xml | 1 - Resources/ServerInfo/Guidebook/Glossary.xml | 2 +- .../NewPlayer/YourFirstCharacter.xml | 2 +- .../ServerRules/SpaceLaw/SLCrimeList.xml | 33 +- .../ServerInfo/Guidebook/SpaceStation14.xml | 4 +- Resources/ServerInfo/Guidebook/Survival.xml | 46 +- .../Multiple/headphones.rsi/icon-on.png | Bin 1088 -> 0 bytes .../Clothing/Multiple/headphones.rsi/icon.png | Bin 487 -> 0 bytes .../Multiple/headphones.rsi/inhand-left.png | Bin 499 -> 0 bytes .../Multiple/headphones.rsi/inhand-right.png | Bin 508 -> 0 bytes .../Multiple/headphones.rsi/meta.json | 175 - .../headphones.rsi/off-equipped-HELMET.png | Bin 273 -> 0 bytes .../headphones.rsi/off-equipped-NECK.png | Bin 374 -> 0 bytes .../headphones.rsi/on-equipped-HELMET.png | Bin 1425 -> 0 bytes .../headphones.rsi/on-equipped-NECK.png | Bin 1449 -> 0 bytes .../Neck/Misc/headphones.rsi/icon-on.png | Bin 0 -> 176 bytes .../Neck/Misc/headphones.rsi/icon.png | Bin 0 -> 176 bytes .../Neck/Misc/headphones.rsi/inhand-left.png | Bin 0 -> 329 bytes .../Neck/Misc/headphones.rsi/inhand-right.png | Bin 0 -> 329 bytes .../Neck/Misc/headphones.rsi/meta.json | 71 + .../headphones.rsi/off-equipped-NECK.png} | Bin .../Misc/headphones.rsi/on-equipped-NECK.png} | Bin .../equipped-OUTERCLOTHING-scurret.png | Bin 1619 -> 0 bytes .../Hardsuits/syndicate.rsi/meta.json | 6 +- .../equipped-OUTERCLOTHING-scurret.png | Bin 1402 -> 0 bytes .../Suits/eva_emergency.rsi/meta.json | 6 +- .../Alerts/generic_counter.rsi/0.png | Bin 131 -> 0 bytes .../Alerts/generic_counter.rsi/1.png | Bin 120 -> 0 bytes .../Alerts/generic_counter.rsi/2.png | Bin 142 -> 0 bytes .../Alerts/generic_counter.rsi/3.png | Bin 139 -> 0 bytes .../Alerts/generic_counter.rsi/4.png | Bin 135 -> 0 bytes .../Alerts/generic_counter.rsi/5.png | Bin 141 -> 0 bytes .../Alerts/generic_counter.rsi/6.png | Bin 142 -> 0 bytes .../Alerts/generic_counter.rsi/7.png | Bin 137 -> 0 bytes .../Alerts/generic_counter.rsi/8.png | Bin 134 -> 0 bytes .../Alerts/generic_counter.rsi/9.png | Bin 144 -> 0 bytes .../Alerts/generic_counter.rsi/base.png | Bin 265 -> 0 bytes .../Alerts/generic_counter.rsi/meta.json | 44 - .../Animals/scurret/displacement.rsi/back.png | Bin 279 -> 0 bytes .../Animals/scurret/displacement.rsi/ears.png | Bin 262 -> 0 bytes .../Animals/scurret/displacement.rsi/eyes.png | Bin 238 -> 0 bytes .../scurret/displacement.rsi/gloves.png | Bin 432 -> 0 bytes .../Animals/scurret/displacement.rsi/hand.png | Bin 382 -> 0 bytes .../Animals/scurret/displacement.rsi/head.png | Bin 291 -> 0 bytes .../Animals/scurret/displacement.rsi/id.png | Bin 271 -> 0 bytes .../scurret/displacement.rsi/jumpsuit.png | Bin 510 -> 0 bytes .../Animals/scurret/displacement.rsi/mask.png | Bin 264 -> 0 bytes .../scurret/displacement.rsi/meta.json | 54 - .../Animals/scurret/displacement.rsi/neck.png | Bin 530 -> 0 bytes .../Animals/scurret/scurret.rsi/meta.json | 21 - .../Animals/scurret/scurret.rsi/scurret.png | Bin 1995 -> 0 bytes .../scurret/scurret.rsi/scurret_oof.png | Bin 532 -> 0 bytes .../scurret/scurret.rsi/scurret_rip.png | Bin 562 -> 0 bytes .../Ghosts/ghost_human.rsi/inhand-left.png | Bin 518 -> 0 bytes .../Ghosts/ghost_human.rsi/inhand-right.png | Bin 523 -> 0 bytes .../Mobs/Ghosts/ghost_human.rsi/meta.json | 24 +- .../Mobs/Ghosts/revenant.rsi/inhand-left.png | Bin 923 -> 0 bytes .../Mobs/Ghosts/revenant.rsi/inhand-right.png | Bin 923 -> 0 bytes .../Mobs/Ghosts/revenant.rsi/meta.json | 10 +- .../Drinks/barflask.rsi/icon_open.png | Bin 517 -> 0 bytes .../Consumable/Drinks/barflask.rsi/meta.json | 5 +- .../Drinks/detflask.rsi/icon_open.png | Bin 540 -> 0 bytes .../Drinks/detflask.rsi/inhand-left.png | Bin 502 -> 0 bytes .../Drinks/detflask.rsi/inhand-right.png | Bin 471 -> 0 bytes .../Consumable/Drinks/detflask.rsi/meta.json | 26 +- .../Consumable/Drinks/flask.rsi/icon_open.png | Bin 873 -> 0 bytes .../Drinks/flask.rsi/inhand-left.png | Bin 488 -> 0 bytes .../Drinks/flask.rsi/inhand-right.png | Bin 484 -> 0 bytes .../Consumable/Drinks/flask.rsi/meta.json | 26 +- .../Drinks/flask_old.rsi/inhand-left.png | Bin 544 -> 0 bytes .../Drinks/flask_old.rsi/inhand-right.png | Bin 534 -> 0 bytes .../Consumable/Drinks/flask_old.rsi/meta.json | 23 +- .../Consumable/Drinks/hosflask.rsi/icon.png | Bin 612 -> 573 bytes .../Drinks/hosflask.rsi/icon_open.png | Bin 594 -> 0 bytes .../Drinks/hosflask.rsi/inhand-left.png | Bin 469 -> 0 bytes .../Drinks/hosflask.rsi/inhand-right.png | Bin 459 -> 0 bytes .../Consumable/Drinks/hosflask.rsi/meta.json | 15 +- .../Drinks/lithiumflask.rsi/icon_open.png | Bin 677 -> 0 bytes .../Drinks/lithiumflask.rsi/inhand-left.png | Bin 571 -> 0 bytes .../Drinks/lithiumflask.rsi/inhand-right.png | Bin 557 -> 0 bytes .../Drinks/lithiumflask.rsi/meta.json | 26 +- .../Drinks/mreflask.rsi/icon_open.png | Bin 530 -> 0 bytes .../Consumable/Drinks/mreflask.rsi/meta.json | 5 +- .../Drinks/shinyflask.rsi/icon_open.png | Bin 803 -> 0 bytes .../Drinks/shinyflask.rsi/inhand-left.png | Bin 563 -> 0 bytes .../Drinks/shinyflask.rsi/inhand-right.png | Bin 558 -> 0 bytes .../Drinks/shinyflask.rsi/meta.json | 26 +- .../Drinks/vacuumflask.rsi/icon_open.png | Bin 387 -> 0 bytes .../Drinks/vacuumflask.rsi/meta.json | 5 +- .../Objects/Fun/AI.rsi/equipped-HELMET.png | Bin 417 -> 0 bytes .../Objects/Fun/AI.rsi/inhand-left.png | Bin 489 -> 0 bytes .../Objects/Fun/AI.rsi/inhand-right.png | Bin 490 -> 0 bytes .../Textures/Objects/Fun/AI.rsi/meta.json | 14 +- .../Plushies/arachnid.rsi/equipped-HELMET.png | Bin 874 -> 0 bytes .../Fun/Plushies/arachnid.rsi/inhand-left.png | Bin 680 -> 0 bytes .../Plushies/arachnid.rsi/inhand-right.png | Bin 673 -> 0 bytes .../Fun/Plushies/arachnid.rsi/meta.json | 14 +- .../Plushies/atmosian.rsi/equipped-HELMET.png | Bin 857 -> 0 bytes .../Fun/Plushies/atmosian.rsi/inhand-left.png | Bin 764 -> 0 bytes .../Plushies/atmosian.rsi/inhand-right.png | Bin 775 -> 0 bytes .../Fun/Plushies/atmosian.rsi/meta.json | 14 +- .../Plushies/diona.rsi/equipped-HELMET.png | Bin 1272 -> 0 bytes .../Fun/Plushies/diona.rsi/inhand-left.png | Bin 1190 -> 0 bytes .../Fun/Plushies/diona.rsi/inhand-right.png | Bin 1226 -> 0 bytes .../Objects/Fun/Plushies/diona.rsi/meta.json | 14 +- .../Plushies/hampter.rsi/equipped-HELMET.png | Bin 777 -> 0 bytes .../Fun/Plushies/hampter.rsi/inhand-left.png | Bin 699 -> 0 bytes .../Fun/Plushies/hampter.rsi/inhand-right.png | Bin 691 -> 0 bytes .../Fun/Plushies/hampter.rsi/meta.json | 14 +- .../Plushies/human.rsi/equipped-HELMET.png | Bin 752 -> 0 bytes .../Fun/Plushies/human.rsi/inhand-left.png | Bin 619 -> 0 bytes .../Fun/Plushies/human.rsi/inhand-right.png | Bin 634 -> 0 bytes .../Objects/Fun/Plushies/human.rsi/meta.json | 14 +- .../Fun/Plushies/lamp.rsi/inhand-left.png | Bin 586 -> 0 bytes .../Fun/Plushies/lamp.rsi/inhand-right.png | Bin 589 -> 0 bytes .../Objects/Fun/Plushies/lamp.rsi/meta.json | 10 +- .../Fun/Plushies/moth.rsi/equipped-HELMET.png | Bin 1004 -> 0 bytes .../Fun/Plushies/moth.rsi/inhand-left.png | Bin 971 -> 0 bytes .../Fun/Plushies/moth.rsi/inhand-right.png | Bin 948 -> 0 bytes .../Objects/Fun/Plushies/moth.rsi/meta.json | 14 +- .../Fun/Plushies/narsie.rsi/equipped-NECK.png | Bin 1604 -> 0 bytes .../Fun/Plushies/narsie.rsi/inhand-left.png | Bin 2001 -> 0 bytes .../Fun/Plushies/narsie.rsi/inhand-right.png | Bin 2001 -> 0 bytes .../Objects/Fun/Plushies/narsie.rsi/meta.json | 14 +- .../Plushies/nukie.rsi/equipped-HELMET.png | Bin 868 -> 0 bytes .../Fun/Plushies/nukie.rsi/inhand-left.png | Bin 864 -> 0 bytes .../Fun/Plushies/nukie.rsi/inhand-right.png | Bin 870 -> 0 bytes .../Objects/Fun/Plushies/nukie.rsi/meta.json | 14 +- .../Plushies/penguin.rsi/equipped-HELMET.png | Bin 494 -> 0 bytes .../Fun/Plushies/penguin.rsi/inhand-left.png | Bin 578 -> 0 bytes .../Fun/Plushies/penguin.rsi/inhand-right.png | Bin 579 -> 0 bytes .../Fun/Plushies/penguin.rsi/meta.json | 14 +- .../Fun/Plushies/ratvar.rsi/equipped-NECK.png | Bin 2224 -> 0 bytes .../Fun/Plushies/ratvar.rsi/inhand-left.png | Bin 2081 -> 0 bytes .../Fun/Plushies/ratvar.rsi/inhand-right.png | Bin 2081 -> 0 bytes .../Objects/Fun/Plushies/ratvar.rsi/meta.json | 14 +- .../Plushies/rouny.rsi/equipped-HELMET.png | Bin 983 -> 0 bytes .../Fun/Plushies/rouny.rsi/inhand-left.png | Bin 1136 -> 0 bytes .../Fun/Plushies/rouny.rsi/inhand-right.png | Bin 1136 -> 0 bytes .../Objects/Fun/Plushies/rouny.rsi/meta.json | 14 +- .../Plushies/slime.rsi/equipped-HELMET.png | Bin 654 -> 0 bytes .../Fun/Plushies/slime.rsi/inhand-left.png | Bin 539 -> 0 bytes .../Fun/Plushies/slime.rsi/inhand-right.png | Bin 516 -> 0 bytes .../Objects/Fun/Plushies/slime.rsi/meta.json | 14 +- .../Plushies/snake.rsi/equipped-NECK-vox.png | Bin 609 -> 0 bytes .../Objects/Fun/Plushies/snake.rsi/meta.json | 4 - .../Plushies/vox.rsi/equipped-HELMET-vox.png | Bin 976 -> 0 bytes .../Fun/Plushies/vox.rsi/equipped-HELMET.png | Bin 963 -> 0 bytes .../Fun/Plushies/vox.rsi/inhand-left.png | Bin 886 -> 0 bytes .../Fun/Plushies/vox.rsi/inhand-right.png | Bin 896 -> 0 bytes .../Objects/Fun/Plushies/vox.rsi/meta.json | 18 +- .../Fun/Plushies/xeno.rsi/equipped-HELMET.png | Bin 862 -> 0 bytes .../Fun/Plushies/xeno.rsi/inhand-left.png | Bin 873 -> 0 bytes .../Fun/Plushies/xeno.rsi/inhand-right.png | Bin 882 -> 0 bytes .../Objects/Fun/Plushies/xeno.rsi/meta.json | 14 +- .../Fun/clownrecorder.rsi/inhand-left.png | Bin 351 -> 0 bytes .../Fun/clownrecorder.rsi/inhand-right.png | Bin 399 -> 0 bytes .../Objects/Fun/clownrecorder.rsi/meta.json | 16 +- .../mech_figurines.rsi/inhand-left-base.png | Bin 189 -> 0 bytes .../mech_figurines.rsi/inhand-left-body.png | Bin 272 -> 0 bytes .../mech_figurines.rsi/inhand-left-trim.png | Bin 241 -> 0 bytes .../mech_figurines.rsi/inhand-left-visor.png | Bin 125 -> 0 bytes .../mech_figurines.rsi/inhand-right-base.png | Bin 179 -> 0 bytes .../mech_figurines.rsi/inhand-right-body.png | Bin 263 -> 0 bytes .../mech_figurines.rsi/inhand-right-trim.png | Bin 228 -> 0 bytes .../mech_figurines.rsi/inhand-right-visor.png | Bin 124 -> 0 bytes .../Objects/Fun/mech_figurines.rsi/meta.json | 106 +- .../Fun/newton_cradle.rsi/inhand-left.png | Bin 509 -> 0 bytes .../Fun/newton_cradle.rsi/inhand-right.png | Bin 510 -> 0 bytes .../Objects/Fun/newton_cradle.rsi/meta.json | 88 +- .../Fun/pequeno.rsi/equipped-HELMET-body.png | Bin 446 -> 0 bytes .../Fun/pequeno.rsi/equipped-HELMET-vis.png | Bin 239 -> 0 bytes .../Fun/pequeno.rsi/inhand-left-body.png | Bin 405 -> 0 bytes .../Fun/pequeno.rsi/inhand-left-vis.png | Bin 228 -> 0 bytes .../Fun/pequeno.rsi/inhand-right-body.png | Bin 413 -> 0 bytes .../Fun/pequeno.rsi/inhand-right-vis.png | Bin 226 -> 0 bytes .../Objects/Fun/pequeno.rsi/meta.json | 26 +- .../Fun/rubber_chicken.rsi/inhand-left.png | Bin 732 -> 0 bytes .../Fun/rubber_chicken.rsi/inhand-right.png | Bin 744 -> 0 bytes .../Objects/Fun/rubber_chicken.rsi/meta.json | 10 +- .../Fun/toy_ian.rsi/equipped-HELMET.png | Bin 413 -> 0 bytes .../Objects/Fun/toy_ian.rsi/inhand-left.png | Bin 370 -> 0 bytes .../Objects/Fun/toy_ian.rsi/inhand-right.png | Bin 378 -> 0 bytes .../Objects/Fun/toy_ian.rsi/meta.json | 12 - .../Objects/Fun/toy_mouse.rsi/inhand-left.png | Bin 424 -> 0 bytes .../Fun/toy_mouse.rsi/inhand-right.png | Bin 411 -> 0 bytes .../Objects/Fun/toy_mouse.rsi/meta.json | 10 +- .../Fun/toy_nuke.rsi/equipped-HELMET.png | Bin 766 -> 0 bytes .../Objects/Fun/toy_nuke.rsi/inhand-left.png | Bin 770 -> 0 bytes .../Objects/Fun/toy_nuke.rsi/inhand-right.png | Bin 727 -> 0 bytes .../Objects/Fun/toy_nuke.rsi/meta.json | 14 +- .../Objects/Fun/toy_singularity.rsi/icon.png | Bin 11050 -> 11271 bytes .../Objects/Fun/toy_singularity.rsi/meta.json | 71 +- .../toy_singularity.rsi/singu-inhand-left.png | Bin 2886 -> 0 bytes .../singu-inhand-right.png | Bin 2959 -> 0 bytes .../Misc/Lights/lampgreen.rsi/meta.json | 2 +- .../Lights/lampgreen.rsi/off-inhand-left.png | Bin 636 -> 544 bytes .../Lights/lampgreen.rsi/off-inhand-right.png | Bin 639 -> 525 bytes .../Lights/lampgreen.rsi/on-inhand-left.png | Bin 586 -> 403 bytes .../Lights/lampgreen.rsi/on-inhand-right.png | Bin 589 -> 403 bytes .../Guns/Battery/laser_retro.rsi/base.png | Bin 518 -> 2204 bytes .../Guns/Battery/laser_retro.rsi/icon.png | Bin 912 -> 2316 bytes .../laser_retro.rsi/mag-unshaded-0.png | Bin 142 -> 2201 bytes .../laser_retro.rsi/mag-unshaded-1.png | Bin 168 -> 2246 bytes .../laser_retro.rsi/mag-unshaded-2.png | Bin 171 -> 2277 bytes .../laser_retro.rsi/mag-unshaded-3.png | Bin 171 -> 2280 bytes .../laser_retro.rsi/mag-unshaded-4.png | Bin 182 -> 2323 bytes .../Textures/Parallaxes/attributions.yml | 5 - Resources/Textures/Parallaxes/layer2.png | Bin 49049 -> 0 bytes Resources/Textures/Parallaxes/layer2.png.yml | 1 - Resources/Textures/Parallaxes/layer3.png | Bin 1580 -> 0 bytes Resources/Textures/Parallaxes/layer3.png.yml | 1 - Resources/Textures/Parallaxes/meta.json | 14 + .../Piping/Atmospherics/pump.rsi/meta.json | 223 +- .../Atmospherics/pump.rsi/pumpPressure.png | Bin 1338 -> 5258 bytes .../pump.rsi/pumpPressureRegulator.png | Bin 743 -> 0 bytes .../pump.rsi/pumpPressureRegulatorOn.png | Bin 742 -> 0 bytes .../Atmospherics/pump_alt1.rsi/meta.json | 28 +- .../pump_alt1.rsi/pumpPressure.png | Bin 1344 -> 1350 bytes .../pump_alt1.rsi/pumpPressureRegulator.png | Bin 618 -> 0 bytes .../pump_alt1.rsi/pumpPressureRegulatorOn.png | Bin 618 -> 0 bytes .../Atmospherics/pump_alt2.rsi/meta.json | 28 +- .../pump_alt2.rsi/pumpPressure.png | Bin 1341 -> 1347 bytes .../pump_alt2.rsi/pumpPressureRegulator.png | Bin 618 -> 0 bytes .../pump_alt2.rsi/pumpPressureRegulatorOn.png | Bin 618 -> 0 bytes .../Tesla/energy_miniball.rsi/meta.json | 66 +- .../energy_miniball.rsi/tesla-inhand-left.png | Bin 1472 -> 0 bytes .../tesla-inhand-right.png | Bin 1425 -> 0 bytes .../Wallmounts/posters.rsi/meta.json | 5 +- .../Wallmounts/posters.rsi/poster55_legit.png | Bin 1634 -> 0 bytes Resources/clientCommandPerms.yml | 2 - Resources/migration.yml | 3 - RobustToolbox | 2 +- Tools/actions_changelogs_since_last_run.py | 3 +- 935 files changed, 9384 insertions(+), 19938 deletions(-) delete mode 100644 Content.Client/Alerts/GenericCounterAlertSystem.cs delete mode 100644 Content.Client/Atmos/EntitySystems/GasPressureRegulatorSystem.cs delete mode 100644 Content.Client/Atmos/UI/GasPressureRegulatorBoundUserInterface.cs delete mode 100644 Content.Client/Atmos/UI/GasPressureRegulatorWindow.xaml delete mode 100644 Content.Client/Atmos/UI/GasPressureRegulatorWindow.xaml.cs delete mode 100644 Content.Client/Body/Systems/BloodStreamSystem.cs delete mode 100644 Content.Client/Light/AmbientOcclusionOverlay.cs delete mode 100644 Content.Client/StatusEffectNew/ClientStatusEffectsSystem.cs delete mode 100644 Content.IntegrationTests/ExternalTestContext.cs delete mode 100644 Content.IntegrationTests/ITestContextLike.cs delete mode 100644 Content.IntegrationTests/NUnitTestContextWrap.cs delete mode 100644 Content.IntegrationTests/Tests/Actions/RetractableItemActionTest.cs delete mode 100644 Content.IntegrationTests/Tests/Cloning/CloningSettingsPrototypeTest.cs delete mode 100644 Content.IntegrationTests/Tests/Commands/ObjectiveCommandsTest.cs delete mode 100644 Content.MapRenderer/ParallaxOutput.cs delete mode 100644 Content.MapRenderer/RenderMap.cs delete mode 100644 Content.Server/Atmos/Piping/Binary/EntitySystems/GasPressureRegulatorSystem.cs rename {Content.Shared/Body/Events => Content.Server/Body/Components}/BeingGibbedEvent.cs (81%) create mode 100644 Content.Server/Body/Components/BloodstreamComponent.cs create mode 100644 Content.Server/Flash/Components/DamagedByFlashingComponent.cs create mode 100644 Content.Server/Flash/Components/FlashImmunityComponent.cs rename {Content.Shared => Content.Server}/Flash/DamagedByFlashingSystem.cs (53%) create mode 100644 Content.Server/Medical/Components/HealingComponent.cs rename {Content.Shared/Medical/Healing => Content.Server/Medical}/HealingSystem.cs (53%) delete mode 100644 Content.Server/Speech/Components/SlowAccentComponent.cs delete mode 100644 Content.Server/Speech/EntitySystems/SlowAccentSystem.cs delete mode 100644 Content.Server/StatusEffectNew/StatusEffectsSystem.cs delete mode 100644 Content.Shared/Alert/Components/GenericCounterAlertComponent.cs delete mode 100644 Content.Shared/Atmos/EntitySystems/SharedGasPressureRegulatorSystem.cs delete mode 100644 Content.Shared/Atmos/Piping/Binary/Components/GasPressureRegulatorComponent.cs delete mode 100644 Content.Shared/Atmos/Piping/Binary/Components/SharedGasPressureRegulatorComponent.cs create mode 100644 Content.Shared/Bed/Sleep/ForcedSleepingComponent.cs delete mode 100644 Content.Shared/Bed/Sleep/ForcedSleepingStatusEffectComponent.cs delete mode 100644 Content.Shared/Body/Components/BloodstreamComponent.cs delete mode 100644 Content.Shared/Body/Systems/SharedBloodstreamSystem.cs delete mode 100644 Content.Shared/CCVar/CCVars.Lighting.cs rename Content.Shared/Drowsiness/{DrowsinessStatusEffectComponent.cs => DrowsinessComponent.cs} (56%) delete mode 100644 Content.Shared/EntityEffects/Effects/StatusEffects/ModifyStatusEffect.cs delete mode 100644 Content.Shared/Flash/Components/ActiveFlashComponent.cs delete mode 100644 Content.Shared/Flash/Components/DamagedByFlashingComponent.cs delete mode 100644 Content.Shared/Flash/Components/FlashImmunityComponent.cs delete mode 100644 Content.Shared/Flash/FlashEvents.cs delete mode 100644 Content.Shared/Flash/FlashVisuals.cs create mode 100644 Content.Shared/Hands/Components/HandHelpers.cs create mode 100644 Content.Shared/Maps/TurfHelpers.cs delete mode 100644 Content.Shared/Medical/Healing/HealingComponent.cs delete mode 100644 Content.Shared/StatusEffectNew/Components/StatusEffectComponent.cs delete mode 100644 Content.Shared/StatusEffectNew/Components/StatusEffectContainerComponent.cs delete mode 100644 Content.Shared/StatusEffectNew/SharedStatusEffectsSystem.cs delete mode 100644 Content.Shared/StatusEffectNew/StatusEffectSystem.API.cs delete mode 100644 Content.Shared/StatusEffectNew/StatusEffectSystem.Relay.cs create mode 100644 Content.Shared/_CP14/MeleeWeapon/Components/CP14MeleeParriableComponent.cs create mode 100644 Content.Shared/_CP14/MeleeWeapon/Components/CP14MeleeParryComponent.cs create mode 100644 Content.Shared/_CP14/MeleeWeapon/EntitySystems/CP14MeleeParrySystem.cs delete mode 100644 Resources/Audio/Ambience/Antag/traitor_wawa.ogg delete mode 100644 Resources/Audio/Animals/wawa_achoo.ogg delete mode 100644 Resources/Audio/Animals/wawa_chatter.ogg delete mode 100644 Resources/Audio/Animals/wawa_chillin.ogg delete mode 100644 Resources/Audio/Animals/wawa_depression.ogg delete mode 100644 Resources/Audio/Animals/wawa_despair.ogg delete mode 100644 Resources/Audio/Animals/wawa_exclaim.ogg delete mode 100644 Resources/Audio/Animals/wawa_mock.ogg delete mode 100644 Resources/Audio/Animals/wawa_protest.ogg delete mode 100644 Resources/Audio/Animals/wawa_question.ogg delete mode 100644 Resources/Audio/Animals/wawa_statement.ogg delete mode 100644 Resources/Audio/Animals/wawa_the_end.ogg delete mode 100644 Resources/Audio/Animals/wawa_yawn.ogg delete mode 100644 Resources/Audio/Effects/soft_thump.ogg delete mode 100644 Resources/Audio/Items/flask_close1.ogg delete mode 100644 Resources/Audio/Items/flask_open1.ogg create mode 100644 Resources/Locale/en-US/administration/commands/dsay-command.ftl create mode 100644 Resources/Locale/en-US/administration/commands/follow-command.ftl delete mode 100644 Resources/Locale/en-US/administration/ui/role-bans.ftl delete mode 100644 Resources/Locale/en-US/atmos/gas-pressure-regulator-system.ftl delete mode 100644 Resources/Locale/en-US/commands/add-body-part-command.ftl delete mode 100644 Resources/Locale/en-US/commands/crew-manifest-command.ftl delete mode 100644 Resources/Locale/en-US/commands/dirty-command.ftl delete mode 100644 Resources/Locale/en-US/commands/dsay-command.ftl delete mode 100644 Resources/Locale/en-US/commands/dump-reagent-guide-text-command.ftl delete mode 100644 Resources/Locale/en-US/commands/follow-command.ftl delete mode 100644 Resources/Locale/en-US/commands/nukecodes-command.ftl delete mode 100644 Resources/Locale/en-US/commands/powerstat-command.ftl delete mode 100644 Resources/Locale/en-US/components/gas-pressure-regulator-component.ftl delete mode 100644 Resources/Locale/en-US/datasets/names/scurret_first.ftl delete mode 100644 Resources/Locale/en-US/datasets/names/scurret_last.ftl delete mode 100644 Resources/Locale/en-US/scurret/role.ftl create mode 100644 Resources/Prototypes/Body/Prototypes/a_ghost.yml delete mode 100644 Resources/Prototypes/Datasets/Names/scurret.yml delete mode 100644 Resources/Prototypes/Entities/Clothing/Multiple/misc.yml delete mode 100644 Resources/Prototypes/Entities/Mobs/NPCs/scurret.yml delete mode 100644 Resources/Prototypes/Entities/StatusEffects/misc.yml delete mode 100644 Resources/Prototypes/InventoryTemplates/scurret_inventory_template.yml delete mode 100644 Resources/Prototypes/SoundCollections/scurret.yml delete mode 100644 Resources/ServerInfo/Guidebook/Engineering/PressureRegulator.xml delete mode 100644 Resources/Textures/Clothing/Multiple/headphones.rsi/icon-on.png delete mode 100644 Resources/Textures/Clothing/Multiple/headphones.rsi/icon.png delete mode 100644 Resources/Textures/Clothing/Multiple/headphones.rsi/inhand-left.png delete mode 100644 Resources/Textures/Clothing/Multiple/headphones.rsi/inhand-right.png delete mode 100644 Resources/Textures/Clothing/Multiple/headphones.rsi/meta.json delete mode 100644 Resources/Textures/Clothing/Multiple/headphones.rsi/off-equipped-HELMET.png delete mode 100644 Resources/Textures/Clothing/Multiple/headphones.rsi/off-equipped-NECK.png delete mode 100644 Resources/Textures/Clothing/Multiple/headphones.rsi/on-equipped-HELMET.png delete mode 100644 Resources/Textures/Clothing/Multiple/headphones.rsi/on-equipped-NECK.png create mode 100644 Resources/Textures/Clothing/Neck/Misc/headphones.rsi/icon-on.png create mode 100644 Resources/Textures/Clothing/Neck/Misc/headphones.rsi/icon.png create mode 100644 Resources/Textures/Clothing/Neck/Misc/headphones.rsi/inhand-left.png create mode 100644 Resources/Textures/Clothing/Neck/Misc/headphones.rsi/inhand-right.png create mode 100644 Resources/Textures/Clothing/Neck/Misc/headphones.rsi/meta.json rename Resources/Textures/Clothing/{Multiple/headphones.rsi/off-equipped-EARS.png => Neck/Misc/headphones.rsi/off-equipped-NECK.png} (100%) rename Resources/Textures/Clothing/{Multiple/headphones.rsi/on-equipped-EARS.png => Neck/Misc/headphones.rsi/on-equipped-NECK.png} (100%) delete mode 100644 Resources/Textures/Clothing/OuterClothing/Hardsuits/syndicate.rsi/equipped-OUTERCLOTHING-scurret.png delete mode 100644 Resources/Textures/Clothing/OuterClothing/Suits/eva_emergency.rsi/equipped-OUTERCLOTHING-scurret.png delete mode 100644 Resources/Textures/Interface/Alerts/generic_counter.rsi/0.png delete mode 100644 Resources/Textures/Interface/Alerts/generic_counter.rsi/1.png delete mode 100644 Resources/Textures/Interface/Alerts/generic_counter.rsi/2.png delete mode 100644 Resources/Textures/Interface/Alerts/generic_counter.rsi/3.png delete mode 100644 Resources/Textures/Interface/Alerts/generic_counter.rsi/4.png delete mode 100644 Resources/Textures/Interface/Alerts/generic_counter.rsi/5.png delete mode 100644 Resources/Textures/Interface/Alerts/generic_counter.rsi/6.png delete mode 100644 Resources/Textures/Interface/Alerts/generic_counter.rsi/7.png delete mode 100644 Resources/Textures/Interface/Alerts/generic_counter.rsi/8.png delete mode 100644 Resources/Textures/Interface/Alerts/generic_counter.rsi/9.png delete mode 100644 Resources/Textures/Interface/Alerts/generic_counter.rsi/base.png delete mode 100644 Resources/Textures/Interface/Alerts/generic_counter.rsi/meta.json delete mode 100644 Resources/Textures/Mobs/Animals/scurret/displacement.rsi/back.png delete mode 100644 Resources/Textures/Mobs/Animals/scurret/displacement.rsi/ears.png delete mode 100644 Resources/Textures/Mobs/Animals/scurret/displacement.rsi/eyes.png delete mode 100644 Resources/Textures/Mobs/Animals/scurret/displacement.rsi/gloves.png delete mode 100644 Resources/Textures/Mobs/Animals/scurret/displacement.rsi/hand.png delete mode 100644 Resources/Textures/Mobs/Animals/scurret/displacement.rsi/head.png delete mode 100644 Resources/Textures/Mobs/Animals/scurret/displacement.rsi/id.png delete mode 100644 Resources/Textures/Mobs/Animals/scurret/displacement.rsi/jumpsuit.png delete mode 100644 Resources/Textures/Mobs/Animals/scurret/displacement.rsi/mask.png delete mode 100644 Resources/Textures/Mobs/Animals/scurret/displacement.rsi/meta.json delete mode 100644 Resources/Textures/Mobs/Animals/scurret/displacement.rsi/neck.png delete mode 100644 Resources/Textures/Mobs/Animals/scurret/scurret.rsi/meta.json delete mode 100644 Resources/Textures/Mobs/Animals/scurret/scurret.rsi/scurret.png delete mode 100644 Resources/Textures/Mobs/Animals/scurret/scurret.rsi/scurret_oof.png delete mode 100644 Resources/Textures/Mobs/Animals/scurret/scurret.rsi/scurret_rip.png delete mode 100644 Resources/Textures/Mobs/Ghosts/ghost_human.rsi/inhand-left.png delete mode 100644 Resources/Textures/Mobs/Ghosts/ghost_human.rsi/inhand-right.png delete mode 100644 Resources/Textures/Mobs/Ghosts/revenant.rsi/inhand-left.png delete mode 100644 Resources/Textures/Mobs/Ghosts/revenant.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/barflask.rsi/icon_open.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/detflask.rsi/icon_open.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/detflask.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/detflask.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/flask.rsi/icon_open.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/flask.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/flask.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/flask_old.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/flask_old.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/hosflask.rsi/icon_open.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/hosflask.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/hosflask.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/lithiumflask.rsi/icon_open.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/lithiumflask.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/lithiumflask.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/mreflask.rsi/icon_open.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/shinyflask.rsi/icon_open.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/shinyflask.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/shinyflask.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Consumable/Drinks/vacuumflask.rsi/icon_open.png delete mode 100644 Resources/Textures/Objects/Fun/AI.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/AI.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/AI.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/arachnid.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/arachnid.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/arachnid.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/atmosian.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/atmosian.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/atmosian.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/diona.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/diona.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/diona.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/hampter.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/hampter.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/hampter.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/human.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/human.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/human.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/lamp.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/lamp.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/moth.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/moth.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/moth.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/narsie.rsi/equipped-NECK.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/narsie.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/narsie.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/nukie.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/nukie.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/nukie.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/penguin.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/penguin.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/penguin.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/ratvar.rsi/equipped-NECK.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/ratvar.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/ratvar.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/rouny.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/rouny.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/rouny.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/slime.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/slime.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/slime.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/snake.rsi/equipped-NECK-vox.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/vox.rsi/equipped-HELMET-vox.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/vox.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/vox.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/vox.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/xeno.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/xeno.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/Plushies/xeno.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/clownrecorder.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/clownrecorder.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/mech_figurines.rsi/inhand-left-base.png delete mode 100644 Resources/Textures/Objects/Fun/mech_figurines.rsi/inhand-left-body.png delete mode 100644 Resources/Textures/Objects/Fun/mech_figurines.rsi/inhand-left-trim.png delete mode 100644 Resources/Textures/Objects/Fun/mech_figurines.rsi/inhand-left-visor.png delete mode 100644 Resources/Textures/Objects/Fun/mech_figurines.rsi/inhand-right-base.png delete mode 100644 Resources/Textures/Objects/Fun/mech_figurines.rsi/inhand-right-body.png delete mode 100644 Resources/Textures/Objects/Fun/mech_figurines.rsi/inhand-right-trim.png delete mode 100644 Resources/Textures/Objects/Fun/mech_figurines.rsi/inhand-right-visor.png delete mode 100644 Resources/Textures/Objects/Fun/newton_cradle.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/newton_cradle.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/pequeno.rsi/equipped-HELMET-body.png delete mode 100644 Resources/Textures/Objects/Fun/pequeno.rsi/equipped-HELMET-vis.png delete mode 100644 Resources/Textures/Objects/Fun/pequeno.rsi/inhand-left-body.png delete mode 100644 Resources/Textures/Objects/Fun/pequeno.rsi/inhand-left-vis.png delete mode 100644 Resources/Textures/Objects/Fun/pequeno.rsi/inhand-right-body.png delete mode 100644 Resources/Textures/Objects/Fun/pequeno.rsi/inhand-right-vis.png delete mode 100644 Resources/Textures/Objects/Fun/rubber_chicken.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/rubber_chicken.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/toy_ian.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/toy_ian.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/toy_ian.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/toy_mouse.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/toy_mouse.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/toy_nuke.rsi/equipped-HELMET.png delete mode 100644 Resources/Textures/Objects/Fun/toy_nuke.rsi/inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/toy_nuke.rsi/inhand-right.png delete mode 100644 Resources/Textures/Objects/Fun/toy_singularity.rsi/singu-inhand-left.png delete mode 100644 Resources/Textures/Objects/Fun/toy_singularity.rsi/singu-inhand-right.png delete mode 100644 Resources/Textures/Parallaxes/layer2.png delete mode 100644 Resources/Textures/Parallaxes/layer2.png.yml delete mode 100644 Resources/Textures/Parallaxes/layer3.png delete mode 100644 Resources/Textures/Parallaxes/layer3.png.yml create mode 100644 Resources/Textures/Parallaxes/meta.json delete mode 100644 Resources/Textures/Structures/Piping/Atmospherics/pump.rsi/pumpPressureRegulator.png delete mode 100644 Resources/Textures/Structures/Piping/Atmospherics/pump.rsi/pumpPressureRegulatorOn.png delete mode 100644 Resources/Textures/Structures/Piping/Atmospherics/pump_alt1.rsi/pumpPressureRegulator.png delete mode 100644 Resources/Textures/Structures/Piping/Atmospherics/pump_alt1.rsi/pumpPressureRegulatorOn.png delete mode 100644 Resources/Textures/Structures/Piping/Atmospherics/pump_alt2.rsi/pumpPressureRegulator.png delete mode 100644 Resources/Textures/Structures/Piping/Atmospherics/pump_alt2.rsi/pumpPressureRegulatorOn.png delete mode 100644 Resources/Textures/Structures/Power/Generation/Tesla/energy_miniball.rsi/tesla-inhand-left.png delete mode 100644 Resources/Textures/Structures/Power/Generation/Tesla/energy_miniball.rsi/tesla-inhand-right.png delete mode 100644 Resources/Textures/Structures/Wallmounts/posters.rsi/poster55_legit.png diff --git a/.github/workflows/build-docfx.yml b/.github/workflows/build-docfx.yml index 1f010b7291..3ef0497496 100644 --- a/.github/workflows/build-docfx.yml +++ b/.github/workflows/build-docfx.yml @@ -27,7 +27,7 @@ jobs: run: dotnet restore - name: Build Project - run: dotnet build --no-restore + run: dotnet build --no-restore /p:WarningsAsErrors=nullable - name: Build DocFX uses: nikeee/docfx-action@v1.0.0 diff --git a/.github/workflows/build-map-renderer.yml b/.github/workflows/build-map-renderer.yml index f93f4b25ae..3d01618348 100644 --- a/.github/workflows/build-map-renderer.yml +++ b/.github/workflows/build-map-renderer.yml @@ -42,7 +42,7 @@ jobs: run: dotnet restore - name: Build Project - run: dotnet build Content.MapRenderer --configuration Release --no-restore /m + run: dotnet build Content.MapRenderer --configuration Release --no-restore /p:WarningsAsErrors=nullable /m - name: Run Map Renderer run: dotnet run --project Content.MapRenderer Dev diff --git a/.github/workflows/build-test-debug.yml b/.github/workflows/build-test-debug.yml index 4e391b2aef..369239aecf 100644 --- a/.github/workflows/build-test-debug.yml +++ b/.github/workflows/build-test-debug.yml @@ -42,7 +42,7 @@ jobs: run: dotnet restore - name: Build Project - run: dotnet build --configuration DebugOpt --no-restore /m + run: dotnet build --configuration DebugOpt --no-restore /p:WarningsAsErrors=nullable /m - name: Run Content.Tests run: dotnet test --no-build --configuration DebugOpt Content.Tests/Content.Tests.csproj -- NUnit.ConsoleOut=0 diff --git a/.github/workflows/labeler-needsreview.yml b/.github/workflows/labeler-needsreview.yml index d3373ce91d..819b34b7bb 100644 --- a/.github/workflows/labeler-needsreview.yml +++ b/.github/workflows/labeler-needsreview.yml @@ -2,7 +2,7 @@ on: pull_request_target: - types: [review_requested, opened] + types: [review_requested] jobs: add_label: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 3ce5901841..0294395632 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -14,10 +14,6 @@ jobs: runs-on: ubuntu-latest steps: - - name: Fail if we are attempting to run on the master branch - if: ${{GITHUB.REF_NAME == 'master' && github.repository == 'space-wizards/space-station-14'}} - run: exit 1 - - name: Install dependencies run: sudo apt-get install -y python3-paramiko python3-lxml diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index b2aeb6197a..8554c97ee8 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -27,7 +27,7 @@ If you believe someone is violating the code of conduct, we ask that you report Original text courtesy of the [Speak Up! project](http://web.archive.org/web/20141109123859/http://speakup.io/coc.html). -## On Community Moderation +## On Comunity Moderation Deviating from the Code of Conduct on the Github repository may result in moderative actions taken by project Maintainers. This can involve your content being edited or deleted, and may result in a temporary or permanent block from the repository. diff --git a/Content.Client/Actions/ActionsSystem.cs b/Content.Client/Actions/ActionsSystem.cs index 83f3a35e72..1466614b25 100644 --- a/Content.Client/Actions/ActionsSystem.cs +++ b/Content.Client/Actions/ActionsSystem.cs @@ -211,7 +211,7 @@ namespace Content.Client.Actions else { var request = new RequestPerformActionEvent(GetNetEntity(action)); - RaisePredictiveEvent(request); + EntityManager.RaisePredictiveEvent(request); } } diff --git a/Content.Client/Administration/AdminNameOverlay.cs b/Content.Client/Administration/AdminNameOverlay.cs index abeed65732..0d424cbff0 100644 --- a/Content.Client/Administration/AdminNameOverlay.cs +++ b/Content.Client/Administration/AdminNameOverlay.cs @@ -1,4 +1,3 @@ -using System.Collections.Frozen; using System.Linq; using System.Numerics; using Content.Client.Administration.Systems; @@ -25,7 +24,6 @@ internal sealed class AdminNameOverlay : Overlay private readonly EntityLookupSystem _entityLookup; private readonly IUserInterfaceManager _userInterfaceManager; private readonly SharedRoleSystem _roles; - private readonly IPrototypeManager _prototypeManager; private readonly Font _font; private readonly Font _fontBold; private AdminOverlayAntagFormat _overlayFormat; @@ -38,9 +36,8 @@ internal sealed class AdminNameOverlay : Overlay private float _overlayMergeDistance; //TODO make this adjustable via GUI? - private static readonly FrozenSet> Filter = - new ProtoId[] {"SoloAntagonist", "TeamAntagonist", "SiliconAntagonist", "FreeAgent"} - .ToFrozenSet(); + private readonly ProtoId[] _filter = + ["SoloAntagonist", "TeamAntagonist", "SiliconAntagonist", "FreeAgent"]; private readonly string _antagLabelClassic = Loc.GetString("admin-overlay-antag-classic"); @@ -52,8 +49,7 @@ internal sealed class AdminNameOverlay : Overlay EntityLookupSystem entityLookup, IUserInterfaceManager userInterfaceManager, IConfigurationManager config, - SharedRoleSystem roles, - IPrototypeManager prototypeManager) + SharedRoleSystem roles) { _system = system; _entityManager = entityManager; @@ -61,7 +57,6 @@ internal sealed class AdminNameOverlay : Overlay _entityLookup = entityLookup; _userInterfaceManager = userInterfaceManager; _roles = roles; - _prototypeManager = prototypeManager; ZIndex = 200; // Setting these to a specific ttf would break the antag symbols _font = resourceCache.NotoStack(); @@ -130,14 +125,6 @@ internal sealed class AdminNameOverlay : Overlay foreach (var info in sortable.OrderBy(s => s.Item4.Y).ToList()) { var playerInfo = info.Item1; - var rolePrototype = playerInfo.RoleProto == null - ? null - : _prototypeManager.Index(playerInfo.RoleProto.Value); - - var roleName = Loc.GetString(rolePrototype?.Name ?? RoleTypePrototype.FallbackName); - var roleColor = rolePrototype?.Color ?? RoleTypePrototype.FallbackColor; - var roleSymbol = rolePrototype?.Symbol ?? RoleTypePrototype.FallbackSymbol; - var aabb = info.Item2; var entity = info.Item3; var screenCoordinatesCenter = info.Item4; @@ -222,7 +209,7 @@ internal sealed class AdminNameOverlay : Overlay switch (_overlaySymbolStyle) { case AdminOverlayAntagSymbolStyle.Specific: - symbol = roleSymbol; + symbol = playerInfo.RoleProto.Symbol; break; case AdminOverlayAntagSymbolStyle.Basic: symbol = Loc.GetString("player-tab-antag-prefix"); @@ -238,17 +225,17 @@ internal sealed class AdminNameOverlay : Overlay switch (_overlayFormat) { case AdminOverlayAntagFormat.Roletype: - color = roleColor; - symbol = IsFiltered(playerInfo.RoleProto) ? symbol : string.Empty; - text = IsFiltered(playerInfo.RoleProto) - ? roleName.ToUpper() + color = playerInfo.RoleProto.Color; + symbol = _filter.Contains(playerInfo.RoleProto) ? symbol : string.Empty; + text = _filter.Contains(playerInfo.RoleProto) + ? Loc.GetString(playerInfo.RoleProto.Name).ToUpper() : string.Empty; break; case AdminOverlayAntagFormat.Subtype: - color = roleColor; - symbol = IsFiltered(playerInfo.RoleProto) ? symbol : string.Empty; - text = IsFiltered(playerInfo.RoleProto) - ? _roles.GetRoleSubtypeLabel(roleName, playerInfo.Subtype).ToUpper() + color = playerInfo.RoleProto.Color; + symbol = _filter.Contains(playerInfo.RoleProto) ? symbol : string.Empty; + text = _filter.Contains(playerInfo.RoleProto) + ? _roles.GetRoleSubtypeLabel(playerInfo.RoleProto.Name, playerInfo.Subtype).ToUpper() : string.Empty; break; default: @@ -271,12 +258,4 @@ internal sealed class AdminNameOverlay : Overlay drawnOverlays.Add((screenCoordinatesCenter, currentOffset)); } } - - private static bool IsFiltered(ProtoId? roleProtoId) - { - if (roleProtoId == null) - return false; - - return Filter.Contains(roleProtoId.Value); - } } diff --git a/Content.Client/Administration/Systems/AdminSystem.Overlay.cs b/Content.Client/Administration/Systems/AdminSystem.Overlay.cs index e000bdc0ba..a630df4521 100644 --- a/Content.Client/Administration/Systems/AdminSystem.Overlay.cs +++ b/Content.Client/Administration/Systems/AdminSystem.Overlay.cs @@ -4,7 +4,6 @@ using Robust.Client.Graphics; using Robust.Client.ResourceManagement; using Robust.Client.UserInterface; using Robust.Shared.Configuration; -using Robust.Shared.Prototypes; namespace Content.Client.Administration.Systems { @@ -18,7 +17,6 @@ namespace Content.Client.Administration.Systems [Dependency] private readonly IUserInterfaceManager _userInterfaceManager = default!; [Dependency] private readonly IConfigurationManager _configurationManager = default!; [Dependency] private readonly SharedRoleSystem _roles = default!; - [Dependency] private readonly IPrototypeManager _proto = default!; private AdminNameOverlay _adminNameOverlay = default!; @@ -35,8 +33,7 @@ namespace Content.Client.Administration.Systems _entityLookup, _userInterfaceManager, _configurationManager, - _roles, - _proto); + _roles); _adminManager.AdminStatusUpdated += OnAdminStatusUpdated; } diff --git a/Content.Client/Administration/UI/BanPanel/BanPanel.xaml b/Content.Client/Administration/UI/BanPanel/BanPanel.xaml index ede0ad3ee5..333184f1c0 100644 --- a/Content.Client/Administration/UI/BanPanel/BanPanel.xaml +++ b/Content.Client/Administration/UI/BanPanel/BanPanel.xaml @@ -1,7 +1,7 @@ + Title="{Loc ban-panel-title}" MinSize="350 500"> diff --git a/Content.Client/Administration/UI/BanPanel/BanPanel.xaml.cs b/Content.Client/Administration/UI/BanPanel/BanPanel.xaml.cs index 46090a6f3d..3c7322d473 100644 --- a/Content.Client/Administration/UI/BanPanel/BanPanel.xaml.cs +++ b/Content.Client/Administration/UI/BanPanel/BanPanel.xaml.cs @@ -1,14 +1,12 @@ using System.Linq; using System.Net; using System.Net.Sockets; -using System.Numerics; using Content.Client.Administration.UI.CustomControls; using Content.Shared.Administration; using Content.Shared.CCVar; using Content.Shared.Database; using Content.Shared.Roles; using Robust.Client.AutoGenerated; -using Robust.Client.GameObjects; using Robust.Client.Graphics; using Robust.Client.UserInterface; using Robust.Client.UserInterface.Controls; @@ -33,21 +31,14 @@ public sealed partial class BanPanel : DefaultWindow private uint Multiplier { get; set; } private bool HasBanFlag { get; set; } private TimeSpan? ButtonResetOn { get; set; } - // This is less efficient than just holding a reference to the root control and enumerating children, but you // have to know how the controls are nested, which makes the code more complicated. - // Role group name -> the role buttons themselves. - private readonly Dictionary> _roleCheckboxes = new(); + private readonly List _roleCheckboxes = new(); private readonly ISawmill _banpanelSawmill; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly IConfigurationManager _cfg = default!; [Dependency] private readonly ILogManager _logManager = default!; - [Dependency] private readonly IEntityManager _entMan = default!; - [Dependency] private readonly IPrototypeManager _protoMan = default!; - - private const string ExpandedArrow = "▼"; - private const string ContractedArrow = "▶"; private enum TabNumbers { @@ -153,90 +144,47 @@ public sealed partial class BanPanel : DefaultWindow ReasonTextEdit.Placeholder = new Rope.Leaf(Loc.GetString("ban-panel-reason")); - var departmentJobs = _protoMan.EnumeratePrototypes() - .OrderBy(x => x.Weight); - foreach (var proto in departmentJobs) + var prototypeManager = IoCManager.Resolve(); + foreach (var proto in prototypeManager.EnumeratePrototypes()) { - var roles = proto.Roles.Select(x => _protoMan.Index(x)) - .OrderBy(x => x.ID); - CreateRoleGroup(proto.ID, proto.Color, roles); + CreateRoleGroup(proto.ID, proto.Roles.Select(p => p.Id), proto.Color); } - var antagRoles = _protoMan.EnumeratePrototypes() - .OrderBy(x => x.ID); - CreateRoleGroup("Antagonist", Color.Red, antagRoles); + CreateRoleGroup("Antagonist", prototypeManager.EnumeratePrototypes().Select(p => p.ID), Color.Red); } - /// - /// Creates a "Role group" which stores information and logic for one "group" of roll bans. - /// For example, all antags are one group, logi is a group, medical is a group, etc... - /// - private void CreateRoleGroup(string groupName, Color color, IEnumerable roles) where T : class, IPrototype + private void CreateRoleGroup(string roleName, IEnumerable roleList, Color color) { var outerContainer = new BoxContainer { - Name = $"{groupName}GroupOuterBox", + Name = $"{roleName}GroupOuterBox", HorizontalExpand = true, VerticalExpand = true, Orientation = BoxContainer.LayoutOrientation.Vertical, - Margin = new Thickness(4), + Margin = new Thickness(4) }; - - // Stores stuff like ban all and expand buttons. - var roleGroupHeader = new BoxContainer + var departmentCheckbox = new CheckBox { - Orientation = BoxContainer.LayoutOrientation.Horizontal, + Name = $"{roleName}GroupCheckbox", + Text = roleName, + Modulate = color, + HorizontalAlignment = HAlignment.Left }; - - // Stores the role checkboxes themselves. - var innerContainer = new GridContainer + outerContainer.AddChild(departmentCheckbox); + var innerContainer = new BoxContainer { - Name = $"{groupName}GroupInnerBox", + Name = $"{roleName}GroupInnerBox", HorizontalExpand = true, - Columns = 2, - Visible = false, - Margin = new Thickness(15, 5, 0, 5), + Orientation = BoxContainer.LayoutOrientation.Horizontal }; - - var roleGroupCheckbox = CreateRoleGroupHeader(groupName, roleGroupHeader, color, innerContainer); - - outerContainer.AddChild(roleGroupHeader); - - // Add the roles themselves - foreach (var role in roles) + departmentCheckbox.OnToggled += args => { - AddRoleCheckbox(groupName, role.ID, innerContainer, roleGroupCheckbox); - } - - outerContainer.AddChild(innerContainer); - - RolesContainer.AddChild(new PanelContainer - { - PanelOverride = new StyleBoxFlat + foreach (var child in innerContainer.Children) { - BackgroundColor = color - } - }); - RolesContainer.AddChild(outerContainer); - RolesContainer.AddChild(new HSeparator()); - } - - private Button CreateRoleGroupHeader(string groupName, BoxContainer header, Color color, GridContainer innerContainer) - { - var roleGroupCheckbox = new Button - { - Name = $"{groupName}GroupCheckbox", - Text = "Ban all", - Margin = new Thickness(0, 0, 5, 0), - ToggleMode = true, - }; - - // When this is toggled, toggle all buttons in this group so they match. - roleGroupCheckbox.OnToggled += args => - { - foreach (var role in _roleCheckboxes[groupName]) - { - role.Pressed = args.Pressed; + if (child is CheckBox c) + { + c.Pressed = args.Pressed; + } } if (args.Pressed) @@ -251,12 +199,15 @@ public sealed partial class BanPanel : DefaultWindow } else { - foreach (var roleButtons in _roleCheckboxes.Values) + foreach (var childContainer in RolesContainer.Children) { - foreach (var button in roleButtons) + if (childContainer is Container) { - if (button.Pressed) - return; + foreach (var child in childContainer.Children) + { + if (child is CheckBox { Pressed: true }) + return; + } } } @@ -269,72 +220,38 @@ public sealed partial class BanPanel : DefaultWindow SeverityOption.SelectId((int) newSeverity); } }; - - var hideButton = new Button + outerContainer.AddChild(innerContainer); + foreach (var role in roleList) { - Text = Loc.GetString("role-bans-expand-roles") + " " + ContractedArrow, - ToggleMode = true, - }; - hideButton.OnPressed += args => + AddRoleCheckbox(role, innerContainer, departmentCheckbox); + } + RolesContainer.AddChild(new PanelContainer { - innerContainer.Visible = args.Button.Pressed; - ((Button)args.Button).Text = args.Button.Pressed - ? Loc.GetString("role-bans-contract-roles") + " " + ExpandedArrow - : Loc.GetString("role-bans-expand-roles") + " " + ContractedArrow; - }; - header.AddChild(new Label - { - Text = groupName, - Modulate = color, - Margin = new Thickness(0, 0, 5, 0), + PanelOverride = new StyleBoxFlat + { + BackgroundColor = color + } }); - header.AddChild(roleGroupCheckbox); - header.AddChild(hideButton); - return roleGroupCheckbox; + RolesContainer.AddChild(outerContainer); + RolesContainer.AddChild(new HSeparator()); } - /// - /// Adds a checkbutton specifically for one "role" in a "group" - /// E.g. it would add the Chief Medical Officer "role" into the "Medical" group. - /// - private void AddRoleCheckbox(string group, string role, GridContainer roleGroupInnerContainer, Button roleGroupCheckbox) + private void AddRoleCheckbox(string role, Control container, CheckBox header) { - var roleCheckboxContainer = new BoxContainer(); - var roleCheckButton = new Button + var roleCheckbox = new CheckBox { Name = $"{role}RoleCheckbox", - Text = role, - ToggleMode = true, + Text = role }; - roleCheckButton.OnToggled += args => + roleCheckbox.OnToggled += args => { - // Checks the role group checkbox if all the children are pressed - if (args.Pressed && _roleCheckboxes[group].All(e => e.Pressed)) - roleGroupCheckbox.Pressed = args.Pressed; + if (args is { Pressed: true, Button.Parent: { } } && args.Button.Parent.Children.Where(e => e is CheckBox).All(e => ((CheckBox) e).Pressed)) + header.Pressed = args.Pressed; else - roleGroupCheckbox.Pressed = false; + header.Pressed = false; }; - - // This is adding the icon before the role name - // Yeah, this is sus, but having to split the functions up and stuff is worse imo. - if (_protoMan.TryIndex(role, out var jobPrototype) && _protoMan.TryIndex(jobPrototype.Icon, out var iconProto)) - { - var jobIconTexture = new TextureRect - { - Texture = _entMan.System().Frame0(iconProto.Icon), - TextureScale = new Vector2(2.5f, 2.5f), - Stretch = TextureRect.StretchMode.KeepCentered, - Margin = new Thickness(5, 0, 0, 0), - }; - roleCheckboxContainer.AddChild(jobIconTexture); - } - - roleCheckboxContainer.AddChild(roleCheckButton); - - roleGroupInnerContainer.AddChild(roleCheckboxContainer); - - _roleCheckboxes.TryAdd(group, []); - _roleCheckboxes[group].Add(roleCheckButton); + container.AddChild(roleCheckbox); + _roleCheckboxes.Add(roleCheckbox); } public void UpdateBanFlag(bool newFlag) @@ -552,13 +469,7 @@ public sealed partial class BanPanel : DefaultWindow if (_roleCheckboxes.Count == 0) throw new DebugAssertException("RoleCheckboxes was empty"); - foreach (var button in _roleCheckboxes.Values.SelectMany(departmentButtons => departmentButtons)) - { - if (button is { Pressed: true, Text: not null }) - { - rolesList.Add(button.Text); - } - } + rolesList.AddRange(_roleCheckboxes.Where(c => c is { Pressed: true, Text: { } }).Select(c => c.Text!)); if (rolesList.Count == 0) { diff --git a/Content.Client/Administration/UI/Logs/AdminLogsControl.xaml b/Content.Client/Administration/UI/Logs/AdminLogsControl.xaml index cd93ffeb0a..fc4d3ee3ac 100644 --- a/Content.Client/Administration/UI/Logs/AdminLogsControl.xaml +++ b/Content.Client/Administration/UI/Logs/AdminLogsControl.xaml @@ -49,7 +49,6 @@