From 8c3e72c8c8a089706a224a8089626ba8412bb724 Mon Sep 17 00:00:00 2001 From: Tayrtahn Date: Sun, 7 Jul 2024 23:33:17 -0400 Subject: [PATCH 01/73] Silence ringtones on admin PDAs (#29801) * Silence ringtones on invisible PDAs * Revert "Silence ringtones on invisible PDAs" This reverts commit afc1041f31eebe82e83630a856a8856b877a9826. * Literally just this * Add an admin announcement for news article publishing --- Content.Server/MassMedia/Systems/NewsSystem.cs | 8 ++++++++ Resources/Locale/en-US/mass-media/news-ui.ftl | 1 + Resources/Prototypes/Entities/Objects/Devices/pda.yml | 1 + 3 files changed, 10 insertions(+) diff --git a/Content.Server/MassMedia/Systems/NewsSystem.cs b/Content.Server/MassMedia/Systems/NewsSystem.cs index 0fb5d42394..9f917d6dbf 100644 --- a/Content.Server/MassMedia/Systems/NewsSystem.cs +++ b/Content.Server/MassMedia/Systems/NewsSystem.cs @@ -20,6 +20,7 @@ using Content.Shared.Popups; using Content.Shared.StationRecords; using Robust.Shared.Audio.Systems; +using Content.Server.Chat.Managers; namespace Content.Server.MassMedia.Systems; @@ -35,6 +36,7 @@ public sealed class NewsSystem : SharedNewsSystem [Dependency] private readonly GameTicker _ticker = default!; [Dependency] private readonly AccessReaderSystem _accessReader = default!; [Dependency] private readonly IdCardSystem _idCardSystem = default!; + [Dependency] private readonly IChatManager _chatManager = default!; public override void Initialize() { @@ -161,6 +163,12 @@ private void OnWriteUiPublishMessage(Entity ent, ref NewsWr $"{ToPrettyString(msg.Actor):actor} created news article {article.Title} by {article.Author}: {article.Content}" ); + _chatManager.SendAdminAnnouncement(Loc.GetString("news-publish-admin-announcement", + ("actor", msg.Actor), + ("title", article.Title), + ("author", article.Author ?? Loc.GetString("news-read-ui-no-author")) + )); + articles.Add(article); var args = new NewsArticlePublishedEvent(article); diff --git a/Resources/Locale/en-US/mass-media/news-ui.ftl b/Resources/Locale/en-US/mass-media/news-ui.ftl index 9f62fe75c0..1553a24b4a 100644 --- a/Resources/Locale/en-US/mass-media/news-ui.ftl +++ b/Resources/Locale/en-US/mass-media/news-ui.ftl @@ -34,3 +34,4 @@ news-write-ui-richtext-tooltip = News articles support rich text {"[bullet/]bullet[/color]"} news-pda-notification-header = New news article +news-publish-admin-announcement = {$actor} published news article {$title} by {$author}" diff --git a/Resources/Prototypes/Entities/Objects/Devices/pda.yml b/Resources/Prototypes/Entities/Objects/Devices/pda.yml index b1a6ab0b8f..84f0f4ae94 100644 --- a/Resources/Prototypes/Entities/Objects/Devices/pda.yml +++ b/Resources/Prototypes/Entities/Objects/Devices/pda.yml @@ -667,6 +667,7 @@ scanDelay: 0 - type: CartridgeLoader uiKey: enum.PdaUiKey.Key + notificationsEnabled: false preinstalled: - CrewManifestCartridge - NotekeeperCartridge From f6d093ef5c1f5052bbfc9c3b144ca5d46f7b0358 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 8 Jul 2024 03:34:24 +0000 Subject: [PATCH 02/73] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index c1f6f5632a..335776e58f 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: superjj18 - changes: - - message: Emergency lighting now changes based on station alert level! - type: Tweak - id: 6384 - time: '2024-04-18T10:50:08.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/26932 - author: Dutch-VanDerLinde changes: - message: Chemists now start with chemical analysis goggles. @@ -3828,3 +3821,10 @@ id: 6883 time: '2024-07-07T14:28:13.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/29712 +- author: Tayrtahn + changes: + - message: Fixed admin ghosts briefly becoming visible when a news article is published. + type: Fix + id: 6884 + time: '2024-07-08T03:33:17.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/29801 From c8a87ceaab1b011565799230f17999ce47ff8f23 Mon Sep 17 00:00:00 2001 From: JIPDawg <51352440+JIPDawg@users.noreply.github.com> Date: Mon, 8 Jul 2024 03:30:41 -0500 Subject: [PATCH 03/73] Fixed the guide book entry for Diona's blood type (#29805) Fixed the entry for Diona's blood type Co-authored-by: JIP --- Resources/ServerInfo/Guidebook/Mobs/Diona.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/ServerInfo/Guidebook/Mobs/Diona.xml b/Resources/ServerInfo/Guidebook/Mobs/Diona.xml index 575fae561a..eedf23b14f 100644 --- a/Resources/ServerInfo/Guidebook/Mobs/Diona.xml +++ b/Resources/ServerInfo/Guidebook/Mobs/Diona.xml @@ -7,7 +7,7 @@ They can't wear shoes, but are not slowed by Kudzu. They get hungry and thirsty slower. - Their "blood" is normal water and can't be metabolised from Iron. + Their "blood" is tree sap and can't be metabolised from Iron. Being plants, Weed Killer poisons them, while Robust Harvest heals them (but not without risk when overused!) They take [color=#1e90ff]30% less Blunt damage and 20% less Slash damage[/color]; From 92e29805344dd2100d0c00cd4af35dce148b6d26 Mon Sep 17 00:00:00 2001 From: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Date: Mon, 8 Jul 2024 11:03:53 +0200 Subject: [PATCH 04/73] Improve throwing precision (#29726) * improve throwing precision * remove debugging logs * minor fixes * f * Update Content.Shared/Throwing/LandAtCursorComponent.cs --------- Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> --- .../Throwing/ThrownItemVisualizerSystem.cs | 1 - Content.Server/Hands/Systems/HandsSystem.cs | 8 +- Content.Server/Lube/LubedSystem.cs | 2 +- .../EntitySystems/ContainmentFieldSystem.cs | 2 +- .../Hands/Components/HandsComponent.cs | 6 +- Content.Shared/Throwing/BeforeThrowEvent.cs | 6 +- .../Throwing/LandAtCursorComponent.cs | 12 +++ Content.Shared/Throwing/ThrowingSystem.cs | 80 +++++++++++++------ Content.Shared/Throwing/ThrownItemSystem.cs | 2 +- .../Prototypes/Entities/Objects/Fun/darts.yml | 1 + .../Prototypes/Entities/Objects/Misc/pen.yml | 1 + .../Objects/Specific/Janitorial/janitor.yml | 1 + .../Guns/Ammunition/Projectiles/toy.yml | 1 + .../Entities/Objects/Weapons/Melee/knife.yml | 3 + .../Entities/Objects/Weapons/Melee/spear.yml | 1 + .../Objects/Weapons/Throwable/bola.yml | 2 +- .../Objects/Weapons/Throwable/clusterbang.yml | 2 + .../Weapons/Throwable/throwing_stars.yml | 1 + 18 files changed, 93 insertions(+), 39 deletions(-) create mode 100644 Content.Shared/Throwing/LandAtCursorComponent.cs diff --git a/Content.Client/Throwing/ThrownItemVisualizerSystem.cs b/Content.Client/Throwing/ThrownItemVisualizerSystem.cs index b25b4fbb7d..28a07ae94a 100644 --- a/Content.Client/Throwing/ThrownItemVisualizerSystem.cs +++ b/Content.Client/Throwing/ThrownItemVisualizerSystem.cs @@ -59,7 +59,6 @@ private void OnShutdown(EntityUid uid, ThrownItemComponent component, ComponentS if (length <= TimeSpan.Zero) return null; - length += TimeSpan.FromSeconds(ThrowingSystem.FlyTime); var scale = ent.Comp2.Scale; var lenFloat = (float) length.TotalSeconds; diff --git a/Content.Server/Hands/Systems/HandsSystem.cs b/Content.Server/Hands/Systems/HandsSystem.cs index feae130ce8..e2bb991318 100644 --- a/Content.Server/Hands/Systems/HandsSystem.cs +++ b/Content.Server/Hands/Systems/HandsSystem.cs @@ -207,13 +207,13 @@ hands.ActiveHandEntity is not { } throwEnt || var length = direction.Length(); var distance = Math.Clamp(length, minDistance, hands.ThrowRange); - direction *= distance/length; + direction *= distance / length; - var throwStrength = hands.ThrowForceMultiplier; + var throwSpeed = hands.BaseThrowspeed; // Let other systems change the thrown entity (useful for virtual items) // or the throw strength. - var ev = new BeforeThrowEvent(throwEnt, direction, throwStrength, player); + var ev = new BeforeThrowEvent(throwEnt, direction, throwSpeed, player); RaiseLocalEvent(player, ref ev); if (ev.Cancelled) @@ -223,7 +223,7 @@ hands.ActiveHandEntity is not { } throwEnt || if (IsHolding(player, throwEnt, out _, hands) && !TryDrop(player, throwEnt, handsComp: hands)) return false; - _throwingSystem.TryThrow(ev.ItemUid, ev.Direction, ev.ThrowStrength, ev.PlayerUid); + _throwingSystem.TryThrow(ev.ItemUid, ev.Direction, ev.ThrowSpeed, ev.PlayerUid, compensateFriction: !HasComp(ev.ItemUid)); return true; } diff --git a/Content.Server/Lube/LubedSystem.cs b/Content.Server/Lube/LubedSystem.cs index c2d15c8a28..3c536dcceb 100644 --- a/Content.Server/Lube/LubedSystem.cs +++ b/Content.Server/Lube/LubedSystem.cs @@ -43,7 +43,7 @@ private void OnHandPickUp(EntityUid uid, LubedComponent component, ContainerGett var user = args.Container.Owner; _transform.SetCoordinates(uid, Transform(user).Coordinates); _transform.AttachToGridOrMap(uid); - _throwing.TryThrow(uid, _random.NextVector2(), strength: component.SlipStrength); + _throwing.TryThrow(uid, _random.NextVector2(), baseThrowSpeed: component.SlipStrength); _popup.PopupEntity(Loc.GetString("lube-slip", ("target", Identity.Entity(uid, EntityManager))), user, user, PopupType.MediumCaution); } diff --git a/Content.Server/Singularity/EntitySystems/ContainmentFieldSystem.cs b/Content.Server/Singularity/EntitySystems/ContainmentFieldSystem.cs index 3944e94c20..0af4954519 100644 --- a/Content.Server/Singularity/EntitySystems/ContainmentFieldSystem.cs +++ b/Content.Server/Singularity/EntitySystems/ContainmentFieldSystem.cs @@ -37,7 +37,7 @@ private void HandleFieldCollide(EntityUid uid, ContainmentFieldComponent compone var fieldDir = Transform(uid).WorldPosition; var playerDir = Transform(otherBody).WorldPosition; - _throwing.TryThrow(otherBody, playerDir-fieldDir, strength: component.ThrowForce); + _throwing.TryThrow(otherBody, playerDir-fieldDir, baseThrowSpeed: component.ThrowForce); } } diff --git a/Content.Shared/Hands/Components/HandsComponent.cs b/Content.Shared/Hands/Components/HandsComponent.cs index 919d55f294..84a389a39c 100644 --- a/Content.Shared/Hands/Components/HandsComponent.cs +++ b/Content.Shared/Hands/Components/HandsComponent.cs @@ -38,11 +38,11 @@ public sealed partial class HandsComponent : Component public bool DisableExplosionRecursion = false; /// - /// The amount of throw impulse per distance the player is from the throw target. + /// Modifies the speed at which items are thrown. /// - [DataField("throwForceMultiplier")] + [DataField] [ViewVariables(VVAccess.ReadWrite)] - public float ThrowForceMultiplier { get; set; } = 10f; //should be tuned so that a thrown item lands about under the player's cursor + public float BaseThrowspeed { get; set; } = 10f; /// /// Distance after which longer throw targets stop increasing throw impulse. diff --git a/Content.Shared/Throwing/BeforeThrowEvent.cs b/Content.Shared/Throwing/BeforeThrowEvent.cs index 36e7dd758b..d2bf2f38b8 100644 --- a/Content.Shared/Throwing/BeforeThrowEvent.cs +++ b/Content.Shared/Throwing/BeforeThrowEvent.cs @@ -5,17 +5,17 @@ namespace Content.Shared.Throwing; [ByRefEvent] public struct BeforeThrowEvent { - public BeforeThrowEvent(EntityUid itemUid, Vector2 direction, float throwStrength, EntityUid playerUid) + public BeforeThrowEvent(EntityUid itemUid, Vector2 direction, float throwSpeed, EntityUid playerUid) { ItemUid = itemUid; Direction = direction; - ThrowStrength = throwStrength; + ThrowSpeed = throwSpeed; PlayerUid = playerUid; } public EntityUid ItemUid { get; set; } public Vector2 Direction { get; } - public float ThrowStrength { get; set;} + public float ThrowSpeed { get; set;} public EntityUid PlayerUid { get; } public bool Cancelled = false; diff --git a/Content.Shared/Throwing/LandAtCursorComponent.cs b/Content.Shared/Throwing/LandAtCursorComponent.cs new file mode 100644 index 0000000000..f8e99e2fc8 --- /dev/null +++ b/Content.Shared/Throwing/LandAtCursorComponent.cs @@ -0,0 +1,12 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.Throwing +{ + /// + /// Makes an item land at the cursor when thrown and slide a little further. + /// Without it the item lands slightly in front and stops moving at the cursor. + /// Use this for throwing weapons that should pierce the opponent, for example spears. + /// + [RegisterComponent, NetworkedComponent] + public sealed partial class LandAtCursorComponent : Component { } +} diff --git a/Content.Shared/Throwing/ThrowingSystem.cs b/Content.Shared/Throwing/ThrowingSystem.cs index 7d94ada924..56bbf4c2bf 100644 --- a/Content.Shared/Throwing/ThrowingSystem.cs +++ b/Content.Shared/Throwing/ThrowingSystem.cs @@ -1,13 +1,12 @@ using System.Numerics; using Content.Shared.Administration.Logs; using Content.Shared.Camera; +using Content.Shared.CCVar; using Content.Shared.Database; +using Content.Shared.Friction; using Content.Shared.Gravity; -using Content.Shared.Hands.Components; -using Content.Shared.Hands.EntitySystems; -using Content.Shared.Interaction; using Content.Shared.Projectiles; -using Content.Shared.Tag; +using Robust.Shared.Configuration; using Robust.Shared.Map; using Robust.Shared.Physics; using Robust.Shared.Physics.Components; @@ -31,7 +30,10 @@ public sealed class ThrowingSystem : EntitySystem /// The minimum amount of time an entity needs to be thrown before the timer can be run. /// Anything below this threshold never enters the air. /// - public const float FlyTime = 0.15f; + public const float MinFlyTime = 0.15f; + public const float FlyTimePercentage = 0.8f; + + private float _frictionModifier; [Dependency] private readonly IGameTiming _gameTiming = default!; [Dependency] private readonly SharedGravitySystem _gravity = default!; @@ -40,13 +42,23 @@ public sealed class ThrowingSystem : EntitySystem [Dependency] private readonly ThrownItemSystem _thrownSystem = default!; [Dependency] private readonly SharedCameraRecoilSystem _recoil = default!; [Dependency] private readonly ISharedAdminLogManager _adminLogger = default!; + [Dependency] private readonly IConfigurationManager _configManager = default!; + + public override void Initialize() + { + base.Initialize(); + + Subs.CVar(_configManager, CCVars.TileFrictionModifier, value => _frictionModifier = value, true); + } public void TryThrow( EntityUid uid, EntityCoordinates coordinates, - float strength = 1.0f, + float baseThrowSpeed = 10.0f, EntityUid? user = null, float pushbackRatio = PushbackDefault, + float? friction = null, + bool compensateFriction = false, bool recoil = true, bool animated = true, bool playSound = true, @@ -58,7 +70,7 @@ public void TryThrow( if (mapPos.MapId != thrownPos.MapId) return; - TryThrow(uid, mapPos.Position - thrownPos.Position, strength, user, pushbackRatio, recoil: recoil, animated: animated, playSound: playSound, doSpin: doSpin); + TryThrow(uid, mapPos.Position - thrownPos.Position, baseThrowSpeed, user, pushbackRatio, friction, compensateFriction: compensateFriction, recoil: recoil, animated: animated, playSound: playSound, doSpin: doSpin); } /// @@ -66,14 +78,18 @@ public void TryThrow( /// /// The entity being thrown. /// A vector pointing from the entity to its destination. - /// How much the direction vector should be multiplied for velocity. + /// Throw velocity. Gets modified if compensateFriction is true. /// The ratio of impulse applied to the thrower - defaults to 10 because otherwise it's not enough to properly recover from getting spaced + /// friction value used for the distance calculation. If set to null this defaults to the standard tile values + /// True will adjust the throw so the item stops at the target coordinates. False means it will land at the target and keep sliding. /// Whether spin will be applied to the thrown entity. public void TryThrow(EntityUid uid, Vector2 direction, - float strength = 1.0f, + float baseThrowSpeed = 10.0f, EntityUid? user = null, float pushbackRatio = PushbackDefault, + float? friction = null, + bool compensateFriction = false, bool recoil = true, bool animated = true, bool playSound = true, @@ -91,9 +107,10 @@ public void TryThrow(EntityUid uid, physics, Transform(uid), projectileQuery, - strength, + baseThrowSpeed, user, - pushbackRatio, recoil: recoil, animated: animated, playSound: playSound, doSpin: doSpin); + pushbackRatio, + friction, compensateFriction: compensateFriction, recoil: recoil, animated: animated, playSound: playSound, doSpin: doSpin); } /// @@ -101,23 +118,27 @@ public void TryThrow(EntityUid uid, /// /// The entity being thrown. /// A vector pointing from the entity to its destination. - /// How much the direction vector should be multiplied for velocity. + /// Throw velocity. Gets modified if compensateFriction is true. /// The ratio of impulse applied to the thrower - defaults to 10 because otherwise it's not enough to properly recover from getting spaced + /// friction value used for the distance calculation. If set to null this defaults to the standard tile values + /// True will adjust the throw so the item stops at the target coordinates. False means it will land at the target and keep sliding. /// Whether spin will be applied to the thrown entity. public void TryThrow(EntityUid uid, Vector2 direction, PhysicsComponent physics, TransformComponent transform, EntityQuery projectileQuery, - float strength = 1.0f, + float baseThrowSpeed = 10.0f, EntityUid? user = null, float pushbackRatio = PushbackDefault, + float? friction = null, + bool compensateFriction = false, bool recoil = true, bool animated = true, bool playSound = true, bool doSpin = true) { - if (strength <= 0 || direction == Vector2Helpers.Infinity || direction == Vector2Helpers.NaN || direction == Vector2.Zero) + if (baseThrowSpeed <= 0 || direction == Vector2Helpers.Infinity || direction == Vector2Helpers.NaN || direction == Vector2.Zero || friction < 0) return; if ((physics.BodyType & (BodyType.Dynamic | BodyType.KinematicController)) == 0x0) @@ -136,16 +157,22 @@ public void TryThrow(EntityUid uid, Animate = animated, }; - // Estimate time to arrival so we can apply OnGround status and slow it much faster. - var time = direction.Length() / strength; + // if not given, get the default friction value for distance calculation + var tileFriction = friction ?? _frictionModifier * TileFrictionController.DefaultFriction; + + if (tileFriction == 0f) + compensateFriction = false; // cannot calculate this if there is no friction + + // Set the time the item is supposed to be in the air so we can apply OnGround status. + // This is a free parameter, but we should set it to something reasonable. + var flyTime = direction.Length() / baseThrowSpeed; + if (compensateFriction) + flyTime *= FlyTimePercentage; + + if (flyTime < MinFlyTime) + flyTime = 0f; comp.ThrownTime = _gameTiming.CurTime; - // TODO: This is a bandaid, don't do this. - // if you want to force landtime have the caller handle it or add a new method. - // did we launch this with something stronger than our hands? - if (TryComp(comp.Thrower, out var hands) && strength > hands.ThrowForceMultiplier) - comp.LandTime = comp.ThrownTime + TimeSpan.FromSeconds(time); - else - comp.LandTime = time < FlyTime ? default : comp.ThrownTime + TimeSpan.FromSeconds(time - FlyTime); + comp.LandTime = comp.ThrownTime + TimeSpan.FromSeconds(flyTime); comp.PlayLandSound = playSound; AddComp(uid, comp, true); @@ -173,7 +200,12 @@ public void TryThrow(EntityUid uid, if (user != null) _adminLogger.Add(LogType.Throw, LogImpact.Low, $"{ToPrettyString(user.Value):user} threw {ToPrettyString(uid):entity}"); - var impulseVector = direction.Normalized() * strength * physics.Mass; + // if compensateFriction==true compensate for the distance the item will slide over the floor after landing by reducing the throw speed accordingly. + // else let the item land on the cursor and from where it slides a little further. + // This is an exact formula we get from exponentially decaying velocity after landing. + // If someone changes how tile friction works at some point, this will have to be adjusted. + var throwSpeed = compensateFriction ? direction.Length() / (flyTime + 1 / tileFriction) : baseThrowSpeed; + var impulseVector = direction.Normalized() * throwSpeed * physics.Mass; _physics.ApplyLinearImpulse(uid, impulseVector, body: physics); if (comp.LandTime == null || comp.LandTime <= TimeSpan.Zero) diff --git a/Content.Shared/Throwing/ThrownItemSystem.cs b/Content.Shared/Throwing/ThrownItemSystem.cs index 770273fa03..54dc5c3490 100644 --- a/Content.Shared/Throwing/ThrownItemSystem.cs +++ b/Content.Shared/Throwing/ThrownItemSystem.cs @@ -153,7 +153,7 @@ public override void Update(float frameTime) LandComponent(uid, thrown, physics, thrown.PlayLandSound); } - var stopThrowTime = (thrown.LandTime ?? thrown.ThrownTime) + TimeSpan.FromSeconds(ThrowingSystem.FlyTime); + var stopThrowTime = thrown.LandTime ?? thrown.ThrownTime; if (stopThrowTime <= _gameTiming.CurTime) { StopThrow(uid, thrown); diff --git a/Resources/Prototypes/Entities/Objects/Fun/darts.yml b/Resources/Prototypes/Entities/Objects/Fun/darts.yml index c0b5eb3399..dd25d503ce 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/darts.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/darts.yml @@ -10,6 +10,7 @@ offset: 0.0,0.0 - type: ThrowingAngle angle: 315 + - type: LandAtCursor - type: Fixtures fixtures: fix1: diff --git a/Resources/Prototypes/Entities/Objects/Misc/pen.yml b/Resources/Prototypes/Entities/Objects/Misc/pen.yml index 635df230a4..187672ec4d 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/pen.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/pen.yml @@ -29,6 +29,7 @@ removalTime: 0.0 - type: ThrowingAngle angle: 315 + - type: LandAtCursor - type: DamageOtherOnHit damage: types: diff --git a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml index f4cc09430a..2a6f314904 100644 --- a/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml +++ b/Resources/Prototypes/Entities/Objects/Specific/Janitorial/janitor.yml @@ -238,6 +238,7 @@ embedOnThrow: True - type: ThrowingAngle angle: 0 + - type: LandAtCursor - type: Ammo muzzleFlash: null - type: Projectile diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/toy.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/toy.yml index 9b6c288e37..14595bd34a 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/toy.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Ammunition/Projectiles/toy.yml @@ -31,3 +31,4 @@ removalTime: .2 - type: ThrowingAngle angle: 180 + - type: LandAtCursor diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml index afe4644517..f862a0f10a 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/knife.yml @@ -92,6 +92,7 @@ Slash: 12 - type: EmbeddableProjectile sound: /Audio/Weapons/star_hit.ogg + - type: LandAtCursor - type: DamageOtherOnHit damage: types: @@ -150,6 +151,7 @@ damage: types: Slash: 10 + - type: LandAtCursor - type: Sprite sprite: Clothing/Head/Hats/greyflatcap.rsi - type: Clothing @@ -274,6 +276,7 @@ Slash: 5 - type: EmbeddableProjectile sound: /Audio/Weapons/star_hit.ogg + - type: LandAtCursor - type: DamageOtherOnHit ignoreResistances: true damage: diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml index 0def916ddc..ea2e73ac15 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/spear.yml @@ -8,6 +8,7 @@ offset: 0.15,0.15 - type: ThrowingAngle angle: 225 + - type: LandAtCursor - type: Tag tags: - Spear diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/bola.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/bola.yml index ca3edf68c0..fea9a8d5ea 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/bola.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/bola.yml @@ -47,4 +47,4 @@ staminaDamage: 55 # Sudden weight increase sapping stamina canThrowTrigger: true canMoveBreakout: true - + - type: LandAtCursor diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml index 35174ba34d..cc55aab237 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/clusterbang.yml @@ -96,6 +96,7 @@ damage: types: Blunt: 10 + - type: LandAtCursor - type: Damageable damageContainer: Inorganic - type: EmitSoundOnTrigger @@ -224,6 +225,7 @@ damage: types: Blunt: 10 + - type: LandAtCursor - type: EmitSoundOnTrigger sound: path: "/Audio/Effects/flash_bang.ogg" diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/throwing_stars.yml b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/throwing_stars.yml index c68feff0b5..0dfc9a0312 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Throwable/throwing_stars.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Throwable/throwing_stars.yml @@ -31,6 +31,7 @@ friction: 0.2 - type: EmbeddableProjectile sound: /Audio/Weapons/star_hit.ogg + - type: LandAtCursor - type: DamageOtherOnHit damage: types: From d6c4ebdd3769edb9bc15bfab967cb603352b8455 Mon Sep 17 00:00:00 2001 From: PJBot Date: Mon, 8 Jul 2024 09:04:59 +0000 Subject: [PATCH 05/73] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 335776e58f..d9c904f790 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Dutch-VanDerLinde - changes: - - message: Chemists now start with chemical analysis goggles. - type: Tweak - id: 6385 - time: '2024-04-18T10:52:33.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/27047 - author: TheShuEd changes: - message: botanist can now mutate blood tomatoes into killer tomatoes! they will @@ -3828,3 +3821,12 @@ id: 6884 time: '2024-07-08T03:33:17.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/29801 +- author: slarticodefast + changes: + - message: Improved throwing calculations. Thrown items now stop moving exactly + below your cursor. Throwing weapons will land at your cursor and then slide + until stopped by friction. + type: Tweak + id: 6885 + time: '2024-07-08T09:03:53.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/29726 From 40f735acb1d8b36c345b6221d6141c2a6c34d2e9 Mon Sep 17 00:00:00 2001 From: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com> Date: Tue, 9 Jul 2024 04:05:01 +1000 Subject: [PATCH 06/73] Don't treat vgroid as station grid (#29811) Forgot I added this toggle. --- .../Prototypes/Entities/Stations/base.yml | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Resources/Prototypes/Entities/Stations/base.yml b/Resources/Prototypes/Entities/Stations/base.yml index 7b58091588..c7b54f4571 100644 --- a/Resources/Prototypes/Entities/Stations/base.yml +++ b/Resources/Prototypes/Entities/Stations/base.yml @@ -46,15 +46,6 @@ path: /Maps/Shuttles/cargo.yml - type: GridSpawn groups: - vgroid: !type:DungeonSpawnGroup - minimumDistance: 1000 - nameDataset: names_borer - addComponents: - - type: Gravity - enabled: true - inherent: true - protos: - - VGRoid trade: !type:GridSpawnGroup addComponents: - type: ProtectedGrid @@ -81,6 +72,16 @@ - /Maps/Ruins/syndicate_dropship.yml - /Maps/Ruins/whiteship_ancient.yml - /Maps/Ruins/whiteship_bluespacejumper.yml + vgroid: !type:DungeonSpawnGroup + minimumDistance: 1000 + nameDataset: names_borer + stationGrid: false + addComponents: + - type: Gravity + enabled: true + inherent: true + protos: + - VGRoid - type: entity id: BaseStationCentcomm From 149b6a89ca52db5577f1f9d27f68220b6b9b4f52 Mon Sep 17 00:00:00 2001 From: Errant <35878406+Errant-4@users.noreply.github.com> Date: Tue, 9 Jul 2024 02:28:33 +0200 Subject: [PATCH 07/73] Vox guidebook entry (#29713) * vox guidebook entry * skreee * Removed incorrect diet reference --- Resources/Prototypes/Guidebook/species.yml | 6 ++++++ Resources/ServerInfo/Guidebook/Mobs/Species.xml | 1 + Resources/ServerInfo/Guidebook/Mobs/Vox.xml | 16 ++++++++++++++++ 3 files changed, 23 insertions(+) create mode 100644 Resources/ServerInfo/Guidebook/Mobs/Vox.xml diff --git a/Resources/Prototypes/Guidebook/species.yml b/Resources/Prototypes/Guidebook/species.yml index 5b9efd0366..78111d0fd1 100644 --- a/Resources/Prototypes/Guidebook/species.yml +++ b/Resources/Prototypes/Guidebook/species.yml @@ -10,6 +10,7 @@ - Moth - Reptilian - SlimePerson + - Vox - type: guideEntry id: Arachnid @@ -45,3 +46,8 @@ id: SlimePerson name: species-name-slime text: "/ServerInfo/Guidebook/Mobs/SlimePerson.xml" + +- type: guideEntry + id: Vox + name: species-name-vox + text: "/ServerInfo/Guidebook/Mobs/Vox.xml" diff --git a/Resources/ServerInfo/Guidebook/Mobs/Species.xml b/Resources/ServerInfo/Guidebook/Mobs/Species.xml index 5fb4ca741e..f1b36f9d73 100644 --- a/Resources/ServerInfo/Guidebook/Mobs/Species.xml +++ b/Resources/ServerInfo/Guidebook/Mobs/Species.xml @@ -13,6 +13,7 @@ + diff --git a/Resources/ServerInfo/Guidebook/Mobs/Vox.xml b/Resources/ServerInfo/Guidebook/Mobs/Vox.xml new file mode 100644 index 0000000000..173ba89b41 --- /dev/null +++ b/Resources/ServerInfo/Guidebook/Mobs/Vox.xml @@ -0,0 +1,16 @@ + + # Vox + + + + + + [color=#ffa500]Caution! This species has a severely limiting game mechanic and is not recommended for new players. [/color] + + They breathe nitrogen, and [color=#ffa500] oxygen is very toxic to them.[/color] + They need to be on internals at all times to avoid being poisoned by the station's oxygen. + Eating or drinking will require you to remove your breath mask, although injecting liquid food is an option. + + Their unarmed claw attacks deal Slash damage instead of Blunt. + + From f12b395f2a8ed977a34518a2ca10b6a0b839a82c Mon Sep 17 00:00:00 2001 From: PJBot Date: Tue, 9 Jul 2024 00:29:39 +0000 Subject: [PATCH 08/73] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index d9c904f790..4f27c925c4 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: TheShuEd - changes: - - message: botanist can now mutate blood tomatoes into killer tomatoes! they will - be personal pets, aggressively defending the owner from any social interactions. - type: Add - id: 6386 - time: '2024-04-18T11:21:56.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/26053 - author: TheShuEd changes: - message: Now winter around Europa is different every round @@ -3830,3 +3822,10 @@ id: 6885 time: '2024-07-08T09:03:53.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/29726 +- author: Errant + changes: + - message: Vox now have their entry in the guidebook. + type: Fix + id: 6886 + time: '2024-07-09T00:28:33.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/29713 From c7f752dc96882dd1707ef32aa230bca9f70eb3e0 Mon Sep 17 00:00:00 2001 From: Chief-Engineer <119664036+Chief-Engineer@users.noreply.github.com> Date: Mon, 8 Jul 2024 23:14:18 -0500 Subject: [PATCH 09/73] Restore a panic bunker cvar in wizardsDen.toml (#29832) Update wizardsDen.toml --- Resources/ConfigPresets/WizardsDen/wizardsDen.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/ConfigPresets/WizardsDen/wizardsDen.toml b/Resources/ConfigPresets/WizardsDen/wizardsDen.toml index 807b21b469..4f1b616fb2 100644 --- a/Resources/ConfigPresets/WizardsDen/wizardsDen.toml +++ b/Resources/ConfigPresets/WizardsDen/wizardsDen.toml @@ -5,6 +5,7 @@ desc = "Official English Space Station 14 servers. Vanilla, roleplay ruleset." lobbyenabled = true soft_max_players = 80 +panic_bunker.enabled = true panic_bunker.disable_with_admins = true panic_bunker.enable_without_admins = true panic_bunker.show_reason = true From 8dde49db9547dabfb2231739393d3dfcf2cc41d4 Mon Sep 17 00:00:00 2001 From: Whisper <121047731+QuietlyWhisper@users.noreply.github.com> Date: Tue, 9 Jul 2024 00:14:51 -0400 Subject: [PATCH 10/73] all toggle light actions have a 1 second use delay (#29833) --- Resources/Prototypes/Actions/types.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/Resources/Prototypes/Actions/types.yml b/Resources/Prototypes/Actions/types.yml index 4b3d75bf92..07d1a622ad 100644 --- a/Resources/Prototypes/Actions/types.yml +++ b/Resources/Prototypes/Actions/types.yml @@ -37,6 +37,7 @@ description: Turn the light on and off. components: - type: InstantAction + useDelay: 1 icon: { sprite: Objects/Tools/flashlight.rsi, state: flashlight } iconOn: { sprite: Objects/Tools/flashlight.rsi, state: flashlight-on } event: !type:ToggleActionEvent From 8bd8787819010e6d55c3d027efb8d07165bca634 Mon Sep 17 00:00:00 2001 From: PJBot Date: Tue, 9 Jul 2024 04:15:58 +0000 Subject: [PATCH 11/73] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 4f27c925c4..ecf5fe5846 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: TheShuEd - changes: - - message: Now winter around Europa is different every round - type: Tweak - id: 6387 - time: '2024-04-18T11:27:54.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/26510 - author: Flareguy changes: - message: The Research Director's hardsuit is now 5x5 in the inventory instead @@ -3829,3 +3822,10 @@ id: 6886 time: '2024-07-09T00:28:33.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/29713 +- author: Whisper + changes: + - message: Light toggle actions now have a 1 second cooldown between uses. + type: Tweak + id: 6887 + time: '2024-07-09T04:14:51.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/29833 From 08b12f34b3a57508ccca1d1f250b612fba3a8494 Mon Sep 17 00:00:00 2001 From: Cojoke <83733158+Cojoke-dot@users.noreply.github.com> Date: Mon, 8 Jul 2024 23:23:08 -0500 Subject: [PATCH 12/73] Fix Shotgun Spam Loading (#29827) --- .../Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs index 9123661c8e..503459cefd 100644 --- a/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs +++ b/Content.Shared/Weapons/Ranged/Systems/SharedGunSystem.Ballistic.cs @@ -86,6 +86,9 @@ private void OnBallisticAfterInteract(EntityUid uid, BallisticAmmoProviderCompon private void OnBallisticAmmoFillDoAfter(EntityUid uid, BallisticAmmoProviderComponent component, AmmoFillDoAfterEvent args) { + if (args.Handled || args.Cancelled) + return; + if (Deleted(args.Target) || !TryComp(args.Target, out var target) || target.Whitelist == null) From 9bf3c33cca9634783b0d0a727c2472863a62a75d Mon Sep 17 00:00:00 2001 From: PJBot Date: Tue, 9 Jul 2024 04:24:14 +0000 Subject: [PATCH 13/73] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index ecf5fe5846..9709740f45 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: Flareguy - changes: - - message: The Research Director's hardsuit is now 5x5 in the inventory instead - of 2x2. You'll need a duffelbag to store it now. - type: Tweak - id: 6388 - time: '2024-04-18T18:05:45.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/27094 - author: Dutch-VanDerLinde changes: - message: Roboticist gear in now available in the scientist loadout. @@ -3829,3 +3821,10 @@ id: 6887 time: '2024-07-09T04:14:51.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/29833 +- author: Cojoke-dot + changes: + - message: Shotgun loading doafter now does something + type: Fix + id: 6888 + time: '2024-07-09T04:23:08.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/29827 From 74d9ac7241486b6da96d5ea5ca11239fea4b601f Mon Sep 17 00:00:00 2001 From: lzk <124214523+lzk228@users.noreply.github.com> Date: Tue, 9 Jul 2024 10:41:47 +0200 Subject: [PATCH 14/73] Add popup for healing target (#29804) * Add popup for healing target * hop * huh * fix one * fix showing popup to all --- Content.Server/Medical/HealingSystem.cs | 8 ++++++++ .../Locale/en-US/medical/components/healing-component.ftl | 1 + 2 files changed, 9 insertions(+) diff --git a/Content.Server/Medical/HealingSystem.cs b/Content.Server/Medical/HealingSystem.cs index ed33e60dac..52d6a3fafa 100644 --- a/Content.Server/Medical/HealingSystem.cs +++ b/Content.Server/Medical/HealingSystem.cs @@ -10,12 +10,14 @@ using Content.Shared.Database; using Content.Shared.DoAfter; using Content.Shared.FixedPoint; +using Content.Shared.IdentityManagement; using Content.Shared.Interaction; using Content.Shared.Interaction.Events; using Content.Shared.Medical; using Content.Shared.Mobs; using Content.Shared.Mobs.Components; using Content.Shared.Mobs.Systems; +using Content.Shared.Popups; using Content.Shared.Stacks; using Robust.Shared.Audio.Systems; using Robust.Shared.Random; @@ -188,6 +190,12 @@ targetDamage.DamageContainerID is not null && var isNotSelf = user != target; + if (isNotSelf) + { + var msg = Loc.GetString("medical-item-popup-target", ("user", Identity.Entity(user, EntityManager)), ("item", uid)); + _popupSystem.PopupEntity(msg, target, target, PopupType.Medium); + } + var delay = isNotSelf ? component.Delay : component.Delay * GetScaledHealingPenalty(user, component); diff --git a/Resources/Locale/en-US/medical/components/healing-component.ftl b/Resources/Locale/en-US/medical/components/healing-component.ftl index 5c2aaaabd9..1deb39db09 100644 --- a/Resources/Locale/en-US/medical/components/healing-component.ftl +++ b/Resources/Locale/en-US/medical/components/healing-component.ftl @@ -1,3 +1,4 @@ medical-item-finished-using = You have finished healing with the {$item} medical-item-cant-use = There is no damage you can heal with the {$item} medical-item-stop-bleeding = They have stopped bleeding +medical-item-popup-target = {CAPITALIZE(THE($user))} is trying to heal you with the {$item}! From 061ec432ffa9d89231b52dbe39573843e6bb995c Mon Sep 17 00:00:00 2001 From: lzk <124214523+lzk228@users.noreply.github.com> Date: Tue, 9 Jul 2024 10:42:35 +0200 Subject: [PATCH 15/73] Add popup for health analyzer target (#29803) * Add popup for health analyzer target * addition * fix showing popup to all --- Content.Server/Medical/HealthAnalyzerSystem.cs | 6 ++++++ .../en-US/medical/components/health-analyzer-component.ftl | 2 ++ 2 files changed, 8 insertions(+) diff --git a/Content.Server/Medical/HealthAnalyzerSystem.cs b/Content.Server/Medical/HealthAnalyzerSystem.cs index 7282ea197c..c72cd2ddf6 100644 --- a/Content.Server/Medical/HealthAnalyzerSystem.cs +++ b/Content.Server/Medical/HealthAnalyzerSystem.cs @@ -5,10 +5,12 @@ using Content.Server.Temperature.Components; using Content.Shared.Damage; using Content.Shared.DoAfter; +using Content.Shared.IdentityManagement; using Content.Shared.Interaction; using Content.Shared.Interaction.Events; using Content.Shared.MedicalScanner; using Content.Shared.Mobs.Components; +using Content.Shared.Popups; using Content.Shared.PowerCell; using Robust.Server.GameObjects; using Robust.Shared.Audio.Systems; @@ -27,6 +29,7 @@ public sealed class HealthAnalyzerSystem : EntitySystem [Dependency] private readonly SolutionContainerSystem _solutionContainerSystem = default!; [Dependency] private readonly UserInterfaceSystem _uiSystem = default!; [Dependency] private readonly TransformSystem _transformSystem = default!; + [Dependency] private readonly SharedPopupSystem _popupSystem = default!; public override void Initialize() { @@ -85,6 +88,9 @@ private void OnAfterInteract(Entity uid, ref AfterInter NeedHand = true, BreakOnMove = true }); + + var msg = Loc.GetString("health-analyzer-popup-scan-target", ("user", Identity.Entity(args.User, EntityManager))); + _popupSystem.PopupEntity(msg, args.Target.Value, args.Target.Value, PopupType.Medium); } private void OnDoAfter(Entity uid, ref HealthAnalyzerDoAfterEvent args) diff --git a/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl b/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl index 8460bcc27b..121e50b923 100644 --- a/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl +++ b/Resources/Locale/en-US/medical/components/health-analyzer-component.ftl @@ -14,3 +14,5 @@ health-analyzer-window-scan-mode-active = ACTIVE health-analyzer-window-scan-mode-inactive = INACTIVE health-analyzer-window-malnutrition = Severely malnourished + +health-analyzer-popup-scan-target = {CAPITALIZE(THE($user))} is trying to scan you! From f3342c51554933c2d2aa2425267eff765faebecb Mon Sep 17 00:00:00 2001 From: chavonadelal <156101927+chavonadelal@users.noreply.github.com> Date: Tue, 9 Jul 2024 16:36:33 +0300 Subject: [PATCH 16/73] localization and change of appearance of the phrase about the remaining time (#29844) --- .../Communications/UI/CommunicationsConsoleMenu.xaml.cs | 4 +++- .../en-US/communications/communications-console-component.ftl | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs b/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs index 4d8dd86a4d..bbca06f519 100644 --- a/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs +++ b/Content.Client/Communications/UI/CommunicationsConsoleMenu.xaml.cs @@ -113,7 +113,9 @@ public void UpdateCountdown() } EmergencyShuttleButton.Text = Loc.GetString("comms-console-menu-recall-shuttle"); - CountdownLabel.SetMessage($"Time remaining\n{Owner.Countdown.ToString()}s"); + var infoText = Loc.GetString($"comms-console-menu-time-remaining", + ("time", Owner.Countdown.ToString())); + CountdownLabel.SetMessage(infoText); } public override void Close() diff --git a/Resources/Locale/en-US/communications/communications-console-component.ftl b/Resources/Locale/en-US/communications/communications-console-component.ftl index bead43df28..d3200914b3 100644 --- a/Resources/Locale/en-US/communications/communications-console-component.ftl +++ b/Resources/Locale/en-US/communications/communications-console-component.ftl @@ -5,6 +5,7 @@ comms-console-menu-announcement-button = Announce comms-console-menu-broadcast-button = Broadcast comms-console-menu-call-shuttle = Call emergency shuttle comms-console-menu-recall-shuttle = Recall emergency shuttle +comms-console-menu-time-remaining = Time remaining: {$time} # Popup comms-console-permission-denied = Permission denied From 04cb2657bf87219b21fae440bbbbeb25e5141c07 Mon Sep 17 00:00:00 2001 From: chavonadelal <156101927+chavonadelal@users.noreply.github.com> Date: Tue, 9 Jul 2024 16:37:00 +0300 Subject: [PATCH 17/73] Action menu localization (#29839) --- .../UserInterface/Systems/Actions/Windows/ActionsWindow.xaml | 2 +- .../Systems/Actions/Windows/ActionsWindow.xaml.cs | 2 +- Resources/Locale/en-US/actions/ui/actionmenu.ftl | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/Content.Client/UserInterface/Systems/Actions/Windows/ActionsWindow.xaml b/Content.Client/UserInterface/Systems/Actions/Windows/ActionsWindow.xaml index 52346adba2..443b79242e 100644 --- a/Content.Client/UserInterface/Systems/Actions/Windows/ActionsWindow.xaml +++ b/Content.Client/UserInterface/Systems/Actions/Windows/ActionsWindow.xaml @@ -3,7 +3,7 @@ xmlns:windows="clr-namespace:Content.Client.UserInterface.Systems.Actions.Windows" Name="ActionsList" HorizontalExpand="True" - Title="Actions" + Title="{Loc ui-actionmenu-title}" VerticalExpand="True" Resizable="True" MinHeight="300" diff --git a/Content.Client/UserInterface/Systems/Actions/Windows/ActionsWindow.xaml.cs b/Content.Client/UserInterface/Systems/Actions/Windows/ActionsWindow.xaml.cs index fbe1e71535..f972a96eb7 100644 --- a/Content.Client/UserInterface/Systems/Actions/Windows/ActionsWindow.xaml.cs +++ b/Content.Client/UserInterface/Systems/Actions/Windows/ActionsWindow.xaml.cs @@ -26,7 +26,7 @@ public ActionsWindow() foreach (var filter in Enum.GetValues()) { - FilterButton.AddItem(filter.ToString(), filter); + FilterButton.AddItem(Loc.GetString($"ui-actionmenu-{filter.ToString().ToLower()}"), filter); } } diff --git a/Resources/Locale/en-US/actions/ui/actionmenu.ftl b/Resources/Locale/en-US/actions/ui/actionmenu.ftl index a6f0dee534..47fdb43f69 100644 --- a/Resources/Locale/en-US/actions/ui/actionmenu.ftl +++ b/Resources/Locale/en-US/actions/ui/actionmenu.ftl @@ -9,3 +9,8 @@ ui-actionmenu-clear-button = Clear ui-actionsui-function-lock-action-slots = (Un)lock dragging and clearing action slots ui-actionsui-function-open-abilities-menu = Open action menu +ui-actionmenu-enabled = Enabled +ui-actionmenu-item = Item +ui-actionmenu-innate = Innate +ui-actionmenu-instant = Instant +ui-actionmenu-targeted = Targeted From 7e087a6eb8bb6e05cb959969925a4f359003c75d Mon Sep 17 00:00:00 2001 From: slarticodefast <161409025+slarticodefast@users.noreply.github.com> Date: Tue, 9 Jul 2024 15:39:47 +0200 Subject: [PATCH 18/73] fix passive vent sprite in construction menu (#29820) --- Resources/Prototypes/Recipes/Construction/utilities.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Resources/Prototypes/Recipes/Construction/utilities.yml b/Resources/Prototypes/Recipes/Construction/utilities.yml index 82c16de7b6..930768b3ea 100644 --- a/Resources/Prototypes/Recipes/Construction/utilities.yml +++ b/Resources/Prototypes/Recipes/Construction/utilities.yml @@ -489,12 +489,12 @@ canBuildInImpassable: false icon: sprite: Structures/Piping/Atmospherics/vent.rsi - state: vent_off + state: vent_passive layers: - sprite: Structures/Piping/Atmospherics/pipe.rsi state: pipeHalf - sprite: Structures/Piping/Atmospherics/vent.rsi - state: vent_off + state: vent_passive conditions: - !type:NoUnstackableInTile From 7bf77beb9e3c8dba951fc60effd60e8b94681206 Mon Sep 17 00:00:00 2001 From: PJBot Date: Tue, 9 Jul 2024 13:40:53 +0000 Subject: [PATCH 19/73] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 9709740f45..d84d8423bf 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: Dutch-VanDerLinde - changes: - - message: Roboticist gear in now available in the scientist loadout. - type: Tweak - id: 6389 - time: '2024-04-18T23:38:17.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/27045 - author: Whisper changes: - message: Raised the difficulty class of RD hardsuit objective, it will be less @@ -3828,3 +3821,11 @@ id: 6888 time: '2024-07-09T04:23:08.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/29827 +- author: slarticodefast + changes: + - message: The construction menu and building preview now show the correct passive + vent sprite. + type: Fix + id: 6889 + time: '2024-07-09T13:39:47.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/29820 From 62d8665484e03ae97bb3c36b3e61a74a1f9fe5e4 Mon Sep 17 00:00:00 2001 From: Cojoke <83733158+Cojoke-dot@users.noreply.github.com> Date: Tue, 9 Jul 2024 08:46:21 -0500 Subject: [PATCH 20/73] Let Pacifists Use Certain Guns(Foam Weapons) (#29835) Let Pacifists Use Certain Guns(foam) --- .../CombatMode/Pacification/PacificationSystem.cs | 3 +++ .../Pacification/PacifismAllowedGunComponent.cs | 11 +++++++++++ Resources/Prototypes/Entities/Objects/Fun/toys.yml | 1 + .../Entities/Objects/Weapons/Guns/Rifles/rifles.yml | 3 ++- 4 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 Content.Shared/CombatMode/Pacification/PacifismAllowedGunComponent.cs diff --git a/Content.Shared/CombatMode/Pacification/PacificationSystem.cs b/Content.Shared/CombatMode/Pacification/PacificationSystem.cs index 14507ce1f5..6bc32c5b96 100644 --- a/Content.Shared/CombatMode/Pacification/PacificationSystem.cs +++ b/Content.Shared/CombatMode/Pacification/PacificationSystem.cs @@ -62,6 +62,9 @@ private void ShowPopup(Entity user, EntityUid target, string private void OnShootAttempt(Entity ent, ref ShotAttemptedEvent args) { + if (HasComp(args.Used)) + return; + // Disallow firing guns in all cases. ShowPopup(ent, args.Used, "pacified-cannot-fire-gun"); args.Cancel(); diff --git a/Content.Shared/CombatMode/Pacification/PacifismAllowedGunComponent.cs b/Content.Shared/CombatMode/Pacification/PacifismAllowedGunComponent.cs new file mode 100644 index 0000000000..7decbeb3bc --- /dev/null +++ b/Content.Shared/CombatMode/Pacification/PacifismAllowedGunComponent.cs @@ -0,0 +1,11 @@ +using Robust.Shared.GameStates; + +namespace Content.Shared.CombatMode.Pacification; + +/// +/// Guns with this component can be fired by pacifists +/// +[RegisterComponent, NetworkedComponent] +public sealed partial class PacifismAllowedGunComponent : Component +{ +} diff --git a/Resources/Prototypes/Entities/Objects/Fun/toys.yml b/Resources/Prototypes/Entities/Objects/Fun/toys.yml index 1ac622db86..310f92e60c 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/toys.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/toys.yml @@ -869,6 +869,7 @@ - type: Sprite - type: Item size: Normal + - type: PacifismAllowedGun - type: entity parent: FoamWeaponBase diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml index 9300367cde..fef793487c 100644 --- a/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml +++ b/Resources/Prototypes/Entities/Objects/Weapons/Guns/Rifles/rifles.yml @@ -199,7 +199,7 @@ sprite: Objects/Weapons/Guns/Rifles/foam_rifle.rsi - type: Item sprite: Objects/Weapons/Guns/Rifles/foam_rifle_inhand_64x.rsi - - type: BallisticAmmoProvider + - type: BallisticAmmoProvider whitelist: tags: - BulletFoam @@ -216,3 +216,4 @@ soundEmpty: path: /Audio/Weapons/Guns/Empty/empty.ogg clumsyProof: true + - type: PacifismAllowedGun From 8c598799b43b184e70523a57c144e23f01f202f3 Mon Sep 17 00:00:00 2001 From: PJBot Date: Tue, 9 Jul 2024 13:47:27 +0000 Subject: [PATCH 21/73] Automatic changelog update --- Resources/Changelog/Changelog.yml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index d84d8423bf..abd590c471 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,12 +1,4 @@ Entries: -- author: Whisper - changes: - - message: Raised the difficulty class of RD hardsuit objective, it will be less - likely to get it with other hard objectives. - type: Tweak - id: 6390 - time: '2024-04-18T23:41:12.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/27103 - author: iztokbajcar changes: - message: Glass textures are now less transparent. @@ -3829,3 +3821,10 @@ id: 6889 time: '2024-07-09T13:39:47.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/29820 +- author: Cojoke-dot + changes: + - message: Pacifists can now use foam weaponry + type: Tweak + id: 6890 + time: '2024-07-09T13:46:21.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/29835 From 245c99cc78076433412608daa313a45e933a0153 Mon Sep 17 00:00:00 2001 From: lzk <124214523+lzk228@users.noreply.github.com> Date: Tue, 9 Jul 2024 15:51:03 +0200 Subject: [PATCH 22/73] Fix lobby time typo (#29841) --- Resources/Locale/en-US/lobby/lobby-state.ftl | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Resources/Locale/en-US/lobby/lobby-state.ftl b/Resources/Locale/en-US/lobby/lobby-state.ftl index 2e60b66bde..0c4c401daa 100644 --- a/Resources/Locale/en-US/lobby/lobby-state.ftl +++ b/Resources/Locale/en-US/lobby/lobby-state.ftl @@ -9,7 +9,14 @@ lobby-state-player-status-not-ready = Not Ready lobby-state-player-status-ready = Ready lobby-state-player-status-observer = Observer lobby-state-player-status-round-not-started = The round hasn't started yet -lobby-state-player-status-round-time = The round time is: {$hours} hours and {$minutes} minutes +lobby-state-player-status-round-time = + The round time is: {$hours} {$hours -> + [1]hour + *[other]hours + } and {$minutes} {$minutes -> + [1]minute + *[other]minutes + } lobby-state-song-text = Playing: [color=white]{$songTitle}[/color] by [color=white]{$songArtist}[/color] lobby-state-song-no-song-text = No lobby song playing. lobby-state-song-unknown-title = [color=dimgray]Unknown title[/color] From c9be1ef96b59830b9daf005269a6fbbcd1b849c4 Mon Sep 17 00:00:00 2001 From: chavonadelal <156101927+chavonadelal@users.noreply.github.com> Date: Tue, 9 Jul 2024 17:57:36 +0300 Subject: [PATCH 23/73] Localization of the threat level in an emergency lamp (#29847) --- Content.Server/Light/EntitySystems/EmergencyLightSystem.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content.Server/Light/EntitySystems/EmergencyLightSystem.cs b/Content.Server/Light/EntitySystems/EmergencyLightSystem.cs index f2c4c7dcc5..156088ea07 100644 --- a/Content.Server/Light/EntitySystems/EmergencyLightSystem.cs +++ b/Content.Server/Light/EntitySystems/EmergencyLightSystem.cs @@ -70,7 +70,7 @@ private void OnEmergencyExamine(EntityUid uid, EmergencyLightComponent component args.PushMarkup( Loc.GetString("emergency-light-component-on-examine-alert", ("color", color.ToHex()), - ("level", name))); + ("level", Loc.GetString($"alert-level-{name.ToString().ToLower()}")))); } } @@ -234,6 +234,6 @@ private void TurnOn(Entity entity, Color color) _pointLight.SetColor(entity.Owner, color); _appearance.SetData(entity.Owner, EmergencyLightVisuals.Color, color); _appearance.SetData(entity.Owner, EmergencyLightVisuals.On, true); - _ambient.SetAmbience(entity.Owner, true); + _ambient.SetAmbience(entity.Owner, true); } } From b511d8e18033a0f2a4ce1c83e8cd866901a353fc Mon Sep 17 00:00:00 2001 From: chavonadelal <156101927+chavonadelal@users.noreply.github.com> Date: Tue, 9 Jul 2024 19:11:07 +0300 Subject: [PATCH 24/73] Nozzle Direction Localization (#29849) --- Content.Server/Shuttles/Systems/ThrusterSystem.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Content.Server/Shuttles/Systems/ThrusterSystem.cs b/Content.Server/Shuttles/Systems/ThrusterSystem.cs index e82235e44f..fd14963081 100644 --- a/Content.Server/Shuttles/Systems/ThrusterSystem.cs +++ b/Content.Server/Shuttles/Systems/ThrusterSystem.cs @@ -18,6 +18,7 @@ using Robust.Shared.Physics.Systems; using Robust.Shared.Timing; using Robust.Shared.Utility; +using Content.Shared.Localizations; namespace Content.Server.Shuttles.Systems; @@ -67,8 +68,9 @@ private void OnThrusterExamine(EntityUid uid, ThrusterComponent component, Exami EntityManager.TryGetComponent(uid, out TransformComponent? xform) && xform.Anchored) { + var nozzleLocalization = ContentLocalizationManager.FormatDirection(xform.LocalRotation.Opposite().ToWorldVec().GetDir()).ToLower(); var nozzleDir = Loc.GetString("thruster-comp-nozzle-direction", - ("direction", xform.LocalRotation.Opposite().ToWorldVec().GetDir().ToString().ToLowerInvariant())); + ("direction", nozzleLocalization)); args.PushMarkup(nozzleDir); From 49128ba9d3492e41f64a3ad12f40226015a22387 Mon Sep 17 00:00:00 2001 From: Errant <35878406+Errant-4@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:55:47 +0200 Subject: [PATCH 25/73] Aghosts can now /ghost (#29360) I will not be subjected to criminal abuse --- Content.Server/GameTicking/GameTicker.GamePreset.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/GameTicking/GameTicker.GamePreset.cs b/Content.Server/GameTicking/GameTicker.GamePreset.cs index 6e29778952..5a2b375dd6 100644 --- a/Content.Server/GameTicking/GameTicker.GamePreset.cs +++ b/Content.Server/GameTicking/GameTicker.GamePreset.cs @@ -226,7 +226,7 @@ public bool OnGhostAttempt(EntityUid mindId, bool canReturnGlobal, bool viaComma return false; } - if (HasComp(playerEntity)) + if (TryComp(playerEntity, out var comp) && !comp.CanGhostInteract) return false; if (mind.VisitingEntity != default) From bb82b4cd6faa28ecb5b29b6d88e84bc73aa601ed Mon Sep 17 00:00:00 2001 From: lzk <124214523+lzk228@users.noreply.github.com> Date: Tue, 9 Jul 2024 23:14:25 +0200 Subject: [PATCH 26/73] Change Cluster evac (#29828) --- Resources/Prototypes/Maps/cluster.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/Prototypes/Maps/cluster.yml b/Resources/Prototypes/Maps/cluster.yml index 0841a12b1d..ef9d7586bd 100644 --- a/Resources/Prototypes/Maps/cluster.yml +++ b/Resources/Prototypes/Maps/cluster.yml @@ -9,7 +9,7 @@ stationProto: StandardNanotrasenStation components: - type: StationEmergencyShuttle - emergencyShuttlePath: /Maps/Shuttles/emergency_transit.yml + emergencyShuttlePath: /Maps/Shuttles/emergency_omega.yml - type: StationNameSetup mapNameTemplate: '{0} Cluster Station {1}' nameGenerator: From 742290c6066f52ee4e1bac96970a61d79f52f9a1 Mon Sep 17 00:00:00 2001 From: lzk <124214523+lzk228@users.noreply.github.com> Date: Tue, 9 Jul 2024 23:35:31 +0200 Subject: [PATCH 27/73] Update map changes labeler (#29858) Update labeler.yml --- .github/labeler.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/labeler.yml b/.github/labeler.yml index 886ce89708..9d9fe3a08d 100644 --- a/.github/labeler.yml +++ b/.github/labeler.yml @@ -5,8 +5,8 @@ "Changes: Map": - changed-files: - any-glob-to-any-file: - - 'Resources/Maps/*.yml' - - 'Resources/Prototypes/Maps/*.yml' + - 'Resources/Maps/**/*.yml' + - 'Resources/Prototypes/Maps/**/*.yml' "Changes: UI": - changed-files: From 2349fb485e1ebabb99a01dce511e5c33c868ba2b Mon Sep 17 00:00:00 2001 From: Plykiya <58439124+Plykiya@users.noreply.github.com> Date: Tue, 9 Jul 2024 16:12:40 -0700 Subject: [PATCH 28/73] Stop eating food if you drop it (#29854) * Stop eating food if you drop it * woops, unused param * comments --------- Co-authored-by: plykiya --- Content.Server/Nutrition/EntitySystems/DrinkSystem.cs | 11 ++++++++--- Content.Server/Nutrition/EntitySystems/FoodSystem.cs | 9 ++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs b/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs index b8e334fb0d..d9122ff278 100644 --- a/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/DrinkSystem.cs @@ -17,6 +17,7 @@ using Content.Shared.DoAfter; using Content.Shared.EntityEffects; using Content.Shared.FixedPoint; +using Content.Shared.Hands.EntitySystems; using Content.Shared.IdentityManagement; using Content.Shared.Interaction; using Content.Shared.Interaction.Events; @@ -48,6 +49,7 @@ public sealed class DrinkSystem : SharedDrinkSystem [Dependency] private readonly SharedAppearanceSystem _appearance = default!; [Dependency] private readonly SharedAudioSystem _audio = default!; [Dependency] private readonly SharedDoAfterSystem _doAfter = default!; + [Dependency] private readonly SharedHandsSystem _hands = default!; [Dependency] private readonly SharedInteractionSystem _interaction = default!; [Dependency] private readonly SolutionContainerSystem _solutionContainer = default!; [Dependency] private readonly StomachSystem _stomach = default!; @@ -156,6 +158,9 @@ public void UpdateAppearance(EntityUid uid, DrinkComponent component) _appearance.SetData(uid, FoodVisuals.Visual, drainAvailable.Float(), appearance); } + /// + /// Tries to feed the drink item to the target entity + /// private bool TryDrink(EntityUid user, EntityUid target, DrinkComponent drink, EntityUid item) { if (!HasComp(target)) @@ -210,9 +215,9 @@ private bool TryDrink(EntityUid user, EntityUid target, DrinkComponent drink, En BreakOnDamage = true, MovementThreshold = 0.01f, DistanceThreshold = 1.0f, - // Mice and the like can eat without hands. - // TODO maybe set this based on some CanEatWithoutHands event or component? - NeedHand = forceDrink, + // do-after will stop if item is dropped when trying to feed someone else + // or if the item started out in the user's own hands + NeedHand = forceDrink || _hands.IsHolding(user, item), }; _doAfter.TryStartDoAfter(doAfterEventArgs); diff --git a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs index 1862b4e19f..fc9d228b05 100644 --- a/Content.Server/Nutrition/EntitySystems/FoodSystem.cs +++ b/Content.Server/Nutrition/EntitySystems/FoodSystem.cs @@ -99,6 +99,9 @@ private void OnFeedFood(Entity entity, ref AfterInteractEvent arg args.Handled = result.Handled; } + /// + /// Tries to feed the food item to the target entity + /// public (bool Success, bool Handled) TryFeed(EntityUid user, EntityUid target, EntityUid food, FoodComponent foodComp) { //Suppresses eating yourself and alive mobs @@ -189,9 +192,9 @@ private void OnFeedFood(Entity entity, ref AfterInteractEvent arg BreakOnDamage = true, MovementThreshold = 0.01f, DistanceThreshold = MaxFeedDistance, - // Mice and the like can eat without hands. - // TODO maybe set this based on some CanEatWithoutHands event or component? - NeedHand = forceFeed, + // do-after will stop if item is dropped when trying to feed someone else + // or if the item started out in the user's own hands + NeedHand = forceFeed || _hands.IsHolding(user, food), }; _doAfter.TryStartDoAfter(doAfterArgs); From edf8c6cb4ae244c90ea98d22da3ee5e82785cf79 Mon Sep 17 00:00:00 2001 From: PJBot Date: Tue, 9 Jul 2024 23:13:46 +0000 Subject: [PATCH 29/73] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index abd590c471..7cc4cbdef1 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: iztokbajcar - changes: - - message: Glass textures are now less transparent. - type: Tweak - id: 6391 - time: '2024-04-18T23:43:01.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/26948 - author: SlamBamActionman changes: - message: Snouts and noses no longer disappear with toggled masks. @@ -3828,3 +3821,10 @@ id: 6890 time: '2024-07-09T13:46:21.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/29835 +- author: Plykiya + changes: + - message: You can now drop food and drinks to stop consuming it. + type: Fix + id: 6891 + time: '2024-07-09T23:12:40.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/29854 From 93197b6cce69bf380e9807f449c2b1a28d982281 Mon Sep 17 00:00:00 2001 From: lzk <124214523+lzk228@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:24:38 +0200 Subject: [PATCH 30/73] Fix colornetwork desc and help (#29856) * Fix colornetwork description * suggested changes * forgor * done * ok now it IS done --- Content.Server/Sandbox/Commands/ColorNetworkCommand.cs | 10 ++++------ .../Locale/en-US/commands/colornetwork-command.ftl | 3 +++ 2 files changed, 7 insertions(+), 6 deletions(-) create mode 100644 Resources/Locale/en-US/commands/colornetwork-command.ftl diff --git a/Content.Server/Sandbox/Commands/ColorNetworkCommand.cs b/Content.Server/Sandbox/Commands/ColorNetworkCommand.cs index d5dca64eaa..1fc207058d 100644 --- a/Content.Server/Sandbox/Commands/ColorNetworkCommand.cs +++ b/Content.Server/Sandbox/Commands/ColorNetworkCommand.cs @@ -9,21 +9,19 @@ namespace Content.Server.Sandbox.Commands { [AnyCommand] - public sealed class ColorNetworkCommand : IConsoleCommand + public sealed class ColorNetworkCommand : LocalizedCommands { [Dependency] private readonly IEntityManager _entManager = default!; - public string Command => "colornetwork"; - public string Description => Loc.GetString("color-network-command-description"); - public string Help => Loc.GetString("color-network-command-help-text", ("command",Command)); + public override string Command => "colornetwork"; - public void Execute(IConsoleShell shell, string argStr, string[] args) + public override void Execute(IConsoleShell shell, string argStr, string[] args) { var sandboxManager = _entManager.System(); var adminManager = IoCManager.Resolve(); if (shell.IsClient && (!sandboxManager.IsSandboxEnabled && !adminManager.HasAdminFlag(shell.Player!, AdminFlags.Mapping))) { - shell.WriteError("You are not currently able to use mapping commands."); + shell.WriteError(Loc.GetString("cmd-colornetwork-no-access")); } if (args.Length != 3) diff --git a/Resources/Locale/en-US/commands/colornetwork-command.ftl b/Resources/Locale/en-US/commands/colornetwork-command.ftl new file mode 100644 index 0000000000..3fd60bcb89 --- /dev/null +++ b/Resources/Locale/en-US/commands/colornetwork-command.ftl @@ -0,0 +1,3 @@ +cmd-colornetwork-desc = Paints the atmos devices in the specified color +cmd-colornetwork-help = colornetwork Pipe +cmd-colornetwork-no-access = You are not currently able to use mapping commands. From d3495fc51c811d6fbd8dbaa1a20bb1da77c8dbcd Mon Sep 17 00:00:00 2001 From: Boaz1111 <149967078+Boaz1111@users.noreply.github.com> Date: Wed, 10 Jul 2024 01:28:10 +0200 Subject: [PATCH 31/73] made the guitars be able to be worn on suitstorage (#29048) * made the guitars be able to be worn on suitstorage * minor fix --- .../Fun/Instruments/instruments_string.yml | 4 ++++ .../bassguitar.rsi/equipped-SUITSTORAGE.png | Bin 0 -> 862 bytes .../Fun/Instruments/bassguitar.rsi/meta.json | 4 ++++ .../eguitar.rsi/equipped-SUITSTORAGE.png | Bin 0 -> 845 bytes .../Fun/Instruments/eguitar.rsi/meta.json | 4 ++++ .../guitar.rsi/equipped-SUITSTORAGE.png | Bin 0 -> 1515 bytes .../Objects/Fun/Instruments/guitar.rsi/meta.json | 4 ++++ .../rockguitar.rsi/equipped-SUITSTORAGE.png | Bin 0 -> 803 bytes .../Fun/Instruments/rockguitar.rsi/meta.json | 4 ++++ 9 files changed, 20 insertions(+) create mode 100644 Resources/Textures/Objects/Fun/Instruments/bassguitar.rsi/equipped-SUITSTORAGE.png create mode 100644 Resources/Textures/Objects/Fun/Instruments/eguitar.rsi/equipped-SUITSTORAGE.png create mode 100644 Resources/Textures/Objects/Fun/Instruments/guitar.rsi/equipped-SUITSTORAGE.png create mode 100644 Resources/Textures/Objects/Fun/Instruments/rockguitar.rsi/equipped-SUITSTORAGE.png diff --git a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_string.yml b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_string.yml index 7224efa9e0..6ceb5e23ed 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_string.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/Instruments/instruments_string.yml @@ -21,6 +21,7 @@ quickEquip: false slots: - back + - suitStorage sprite: Objects/Fun/Instruments/eguitar.rsi - type: Tag tags: @@ -50,6 +51,7 @@ quickEquip: false slots: - back + - suitStorage sprite: Objects/Fun/Instruments/bassguitar.rsi - type: Tag tags: @@ -78,6 +80,7 @@ quickEquip: false slots: - back + - suitStorage sprite: Objects/Fun/Instruments/rockguitar.rsi - type: Tag tags: @@ -120,6 +123,7 @@ quickEquip: false slots: - back + - suitStorage sprite: Objects/Fun/Instruments/guitar.rsi - type: Wieldable - type: Damageable # Smash it! Does 20 damage a hit, but breaks after 1 hit. diff --git a/Resources/Textures/Objects/Fun/Instruments/bassguitar.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Objects/Fun/Instruments/bassguitar.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000000000000000000000000000000000..72146d40e5a27251471ab50183fd21a0f611e125 GIT binary patch literal 862 zcmV-k1EKthP)R?X_mg)Z_$Q*M$%QQ6~(AfpF|hA}ua9NUMEvJe9Ev(uq%Yo*QPf$8ig zofqJLve8=iEGHD)qFEfTn8oo*)9!1n!yKlRGD@kYvmck+a<-EyrA)P24f|8FiH25b z`Uh5ObJpY95DjtK^@IINI2VQb{OmLUgpus~e#^C3FH}lt;s%S$x{l+d<^VFjG1MQw zzY~6c^xz&kF`P(sr@8^1b%Kn4{%j0O%c~t5PQ=~~4s<$}78hqvC~ zmsVgLXBu!!7UnF ziS9ySq*|@!gb<4;43QIT7G*PDn#9d{_tjtP=dGo& z#`2h}PCJo!Z3-mX;oIv|>%M*IfP?)C#BGVU+hZ3-ZQnVd-2#nkbFOVz7%iKi?pyCZ o&}R`4)csyBfngYiVXhPZ02e#ZDRbKY*8l(j07*qoM6N<$f=Fek;gOdstXE#BFB3PVsDh_5V z4X;B}$k3q(g27@Tf%Xj@I+fc&&TA51UY_wL(QrNpyyTwTd(XM&ocDO=01U%048t%C z0|3b7i>A?-<2Vh+x{c#FCTxFUdif}&j8e)32|JEsq?Gs8001DR3^YP6Uo@m!{a7De zD5Z=L0zwF67iQYM*N&21m_aI)f)E1rM(7LrLy#bGpS&QQj2rqil2J;To&6(JDwV)- z-vB%NNANrkp63C$X$04GV~IopK=+M6N^eY!VqdI(C!j<)KQ!R~_Wa!kyc&B_BWL^W(-L7%Wp|x7 zos64YzG!m!V$&zUsN5+Bq?2*eX{%SeJHs#x!!QiPFbu;m3}c%}HT7PF>T2~ypqgN} z3#7IPe4nSaHlF7pl}h34?CeI-p}sCyDwR6+UQkMDY_1pBAF#E(2LLrS_39IMT{lMM z@TSzptcgNwQ1CPLUgiy#`apFu0)|QI5>!Mxg1)5v+bH;IF4g%gMQ}ST!!QiPFoFC7 X?$d`GV%U4o00000NkvXXu0mjfG|h-o literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Fun/Instruments/eguitar.rsi/meta.json b/Resources/Textures/Objects/Fun/Instruments/eguitar.rsi/meta.json index 0891477f1b..8723daef06 100644 --- a/Resources/Textures/Objects/Fun/Instruments/eguitar.rsi/meta.json +++ b/Resources/Textures/Objects/Fun/Instruments/eguitar.rsi/meta.json @@ -14,6 +14,10 @@ "name": "equipped-BACKPACK", "directions": 4 }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 diff --git a/Resources/Textures/Objects/Fun/Instruments/guitar.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Objects/Fun/Instruments/guitar.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000000000000000000000000000000000..71667f4e21cef619cd105ef332058d670f6adebd GIT binary patch literal 1515 zcmV~osik1& z3tj^F3E@v`mN65L$M|=B-r-X9c2xEH|K6XgXH~Z}aCHe!YKB=6mT8EsR}975!hKpk zy()Yt95!V@;VY$Q9DY`ubNF4cnM}-rTlEa)esJaoYk9LMJR%$_7OGln9`z+Yy|ged zbwKtY773z62$G@78U-qhN-ardfBVLozB$U`(d2DV!xTr3ym-T+R;8;hH7mLPIo>uoJ`0KJ=VcG=c4 zyKue*{SQXkOgANuYLLgPBfId*E(^kfqN^w>EHCn+3oDG07F$-! zoYU#%w$pi5Co(_w?3{N;7w-c@(D(eG|MPpF_dWBx2aq8NNCJ{T1_;!aLdk%vaLHWZ zimD(L?#V0XaoI?t38 zWo2a^jzl&Ns~eP3Un zu637=+ehbW6>B7lYmYym@mMpQy*ClF<{5xyg7;rSxPGM>0nZ*pVhIGsM-3NG0_;722Ai?dPuCrx;SgH3xe;|ZaQ6IZ zv^Q2FcToLrOAWm0A+BfEBQbi@Bin-OnFYXBoNeU;LOs*zYqlZadS*Qnr1f;E-h-wW3B==ZSk&kA z6v1F{&K{L(6GG<{4)t+4h32ijDi_TUd&Rw|@$|6g&w2d6ouKzzUPMRDl$(yz$g_wX zNsa9uhtjd5bVfn#s7zQwhR|#|$t!tg$bhv8Hk3I~l=rLcrwckJGZO;kn(b(gypm^5 zu#U#u?&ZI=`Z=0&KBi>lQj{cJc*S^Gv&5!6J5`mkrOfC8P7d-)p2bwJs*qrP#ln<= zW^9O@9ORWVVFZY^2L#sa!_ke-lt9fmJ?7*fujH8%tUVy{par8b_4SM_iP7N*id4^> zU;()CdXS?vZ^m@?1=(I$0Q~AnY&J!<`OPM_(yJsO2}lBxfFvLZNCN*4fuCb0go|%H R58(g+002ovPDHLkV1g2w*Hi!i literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Fun/Instruments/guitar.rsi/meta.json b/Resources/Textures/Objects/Fun/Instruments/guitar.rsi/meta.json index 6813282372..bcd517578f 100644 --- a/Resources/Textures/Objects/Fun/Instruments/guitar.rsi/meta.json +++ b/Resources/Textures/Objects/Fun/Instruments/guitar.rsi/meta.json @@ -29,6 +29,10 @@ { "name": "equipped-BACKPACK", "directions": 4 + }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 } ] } diff --git a/Resources/Textures/Objects/Fun/Instruments/rockguitar.rsi/equipped-SUITSTORAGE.png b/Resources/Textures/Objects/Fun/Instruments/rockguitar.rsi/equipped-SUITSTORAGE.png new file mode 100644 index 0000000000000000000000000000000000000000..36cb11d801bfcf45f16274f89a34c7ed8b56d6ee GIT binary patch literal 803 zcmV+;1Kj+HP)Z-fv`&7ES&b;^C_uk070SJO12!bF8B9%s?5ggivI2w&c zu!((!`lZYH(g3%fx43WHb|8d+r(DY$ob!M&2G?~LHYWK50HyFCEz3g7vUX?X0k{|p zP&LiSdn*FGOs9C6P64c{2h3H@+Q41V>Ib%M2LK?10DxT71T|7ymW7Jr z;Lr6no+c9jt9h@YZTyeZ)8O0l^HNa+{s|%ZS}sF*$gM85-N^^*Io}lFE0V;IWF0G_--SBtU;_)!k34K zm1jny5ng*e0Kl)eHvsE74@9g2c_i%oXfy%<)M_-k&|Eyfb=bIbU zYBd0J5#;B`P6tnuNj?PFG~{*04T}H(-_OqhZ1(nnf~0_o>im7X4PbNUfdUF3xo@{I z_WiBL(Ow4gfSAqj*y%vbX0iY5)+N_PFpOLp<(tn!fWoCfmd+CdK@bE%5ClOG1aX{1 zZYuQa^&oEJL2ZoYp)a^Ci913q%UbEpd7fu5#=sZ@=RDYVr#S2R5(SXw1i}-$u4~A4 zxfCKxqxMOp0R7?6keiQH(_9=q38MedD5g21=hT7mN>Y1EfqY9pd5Q!-u zMQ92Ud&Wkx&nQSsKY2W+U$3Xyle#UgMuLt}`$A2>F!E)MeIIEeX!Ql82s%dTjF%-* zbKZT_E*-QRBmLp9Fl+ugkyxnSpe{`zFvdI;iuB@$EYPX^Duru~CZT(zPUXK6;OJR5 h`~ivpf*^?F<{gKAM`X|(z<2-v002ovPDHLkV1j}ba;g9T literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Fun/Instruments/rockguitar.rsi/meta.json b/Resources/Textures/Objects/Fun/Instruments/rockguitar.rsi/meta.json index 7fb73d450d..96bd8a37e5 100644 --- a/Resources/Textures/Objects/Fun/Instruments/rockguitar.rsi/meta.json +++ b/Resources/Textures/Objects/Fun/Instruments/rockguitar.rsi/meta.json @@ -14,6 +14,10 @@ "name": "equipped-BACKPACK", "directions": 4 }, + { + "name": "equipped-SUITSTORAGE", + "directions": 4 + }, { "name": "inhand-left", "directions": 4 From 7a66da31c7de5f8adb26434135eb0e5f3cdd5ae1 Mon Sep 17 00:00:00 2001 From: PJBot Date: Tue, 9 Jul 2024 23:29:16 +0000 Subject: [PATCH 32/73] Automatic changelog update --- Resources/Changelog/Changelog.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 7cc4cbdef1..f404d68589 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,11 +1,4 @@ Entries: -- author: SlamBamActionman - changes: - - message: Snouts and noses no longer disappear with toggled masks. - type: Fix - id: 6392 - time: '2024-04-19T05:39:47.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/25716 - author: shampunj changes: - message: 'Now for crafting stunprod you need: igniter, cable cuffs, small power @@ -3828,3 +3821,10 @@ id: 6891 time: '2024-07-09T23:12:40.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/29854 +- author: Boaz1111 + changes: + - message: Guitars can now be worn in the suit storage slot + type: Add + id: 6892 + time: '2024-07-09T23:28:10.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/29048 From c57009b646e63fb158dd2af9ff1a7586720a2202 Mon Sep 17 00:00:00 2001 From: Winkarst-cpu <74284083+Winkarst-cpu@users.noreply.github.com> Date: Wed, 10 Jul 2024 02:48:56 +0300 Subject: [PATCH 33/73] Fix borg's popup spam (#29861) Fix borg popup spam Co-authored-by: Winkarst-cpu --- Content.Shared/Lock/LockSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Shared/Lock/LockSystem.cs b/Content.Shared/Lock/LockSystem.cs index bf4af1cb9a..22a90aa0a6 100644 --- a/Content.Shared/Lock/LockSystem.cs +++ b/Content.Shared/Lock/LockSystem.cs @@ -365,7 +365,7 @@ private void OnUIOpenAttempt(EntityUid uid, ActivatableUIRequiresLockComponent c { args.Cancel(); if (lockComp.Locked) - _sharedPopupSystem.PopupEntity(Loc.GetString("entity-storage-component-locked-message"), uid, args.User); + _sharedPopupSystem.PopupClient(Loc.GetString("entity-storage-component-locked-message"), uid, args.User); } } From d3642c7383bcd76b4ded7d951c4ba05817d3daf3 Mon Sep 17 00:00:00 2001 From: PJBot Date: Tue, 9 Jul 2024 23:50:02 +0000 Subject: [PATCH 34/73] Automatic changelog update --- Resources/Changelog/Changelog.yml | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index f404d68589..4f38a9f753 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,15 +1,4 @@ Entries: -- author: shampunj - changes: - - message: 'Now for crafting stunprod you need: igniter, cable cuffs, small power - cell, metal rod.' - type: Tweak - - message: Stunprod deals 35 stamina damage per hit and 5 shock damage. The battery - charge is enough for 3 hits. - type: Tweak - id: 6393 - time: '2024-04-19T05:50:10.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/25922 - author: EmoGarbage404 changes: - message: Halved passive fuel consumption of welding tools. @@ -3828,3 +3817,10 @@ id: 6892 time: '2024-07-09T23:28:10.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/29048 +- author: Winkarst-cpu + changes: + - message: Fixed popup spam when trying to open borg's UI while the borg is locked. + type: Fix + id: 6893 + time: '2024-07-09T23:48:56.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/29861 From eef6f920120cc49a4bdf773a3eb776d34c41ce7e Mon Sep 17 00:00:00 2001 From: Ed <96445749+TheShuEd@users.noreply.github.com> Date: Wed, 10 Jul 2024 08:24:25 +0300 Subject: [PATCH 35/73] Steal Objective Condition now support stacks (#29843) * Update StealConditionSystem.cs * Update StealConditionSystem.cs --- .../Objectives/Systems/StealConditionSystem.cs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/Content.Server/Objectives/Systems/StealConditionSystem.cs b/Content.Server/Objectives/Systems/StealConditionSystem.cs index 0fe6f0947c..42a296ab92 100644 --- a/Content.Server/Objectives/Systems/StealConditionSystem.cs +++ b/Content.Server/Objectives/Systems/StealConditionSystem.cs @@ -10,6 +10,7 @@ using Content.Shared.Mobs.Systems; using Content.Shared.Mobs.Components; using Content.Shared.Movement.Pulling.Components; +using Content.Shared.Stacks; namespace Content.Server.Objectives.Systems; @@ -105,7 +106,7 @@ private float GetProgress(MindComponent mind, StealConditionComponent condition) if (pulledEntity != null) { // check if this is the item - if (CheckStealTarget(pulledEntity.Value, condition)) count++; + count += CheckStealTarget(pulledEntity.Value, condition); //we don't check the inventories of sentient entity if (!HasComp(pulledEntity)) @@ -126,7 +127,7 @@ private float GetProgress(MindComponent mind, StealConditionComponent condition) foreach (var entity in container.ContainedEntities) { // check if this is the item - if (CheckStealTarget(entity, condition)) count++; //To Do: add support for stackable items + count += CheckStealTarget(entity, condition); // if it is a container check its contents if (_containerQuery.TryGetComponent(entity, out var containerManager)) @@ -140,14 +141,14 @@ private float GetProgress(MindComponent mind, StealConditionComponent condition) return result; } - private bool CheckStealTarget(EntityUid entity, StealConditionComponent condition) + private int CheckStealTarget(EntityUid entity, StealConditionComponent condition) { // check if this is the target if (!TryComp(entity, out var target)) - return false; + return 0; if (target.StealGroup != condition.StealGroup) - return false; + return 0; // check if needed target alive if (condition.CheckAlive) @@ -155,9 +156,10 @@ private bool CheckStealTarget(EntityUid entity, StealConditionComponent conditio if (TryComp(entity, out var state)) { if (!_mobState.IsAlive(entity, state)) - return false; + return 0; } } - return true; + + return TryComp(entity, out var stack) ? stack.Count : 1; } } From 3f2793c17987f6f792d0633a2346e11122ed2935 Mon Sep 17 00:00:00 2001 From: Moomoobeef <62638182+Moomoobeef@users.noreply.github.com> Date: Wed, 10 Jul 2024 00:25:24 -0500 Subject: [PATCH 36/73] fixed missing characters in OwO accent (#29047) replaced two characters with ones that actually show up ingame --- Content.Server/Speech/EntitySystems/OwOAccentSystem.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Content.Server/Speech/EntitySystems/OwOAccentSystem.cs b/Content.Server/Speech/EntitySystems/OwOAccentSystem.cs index cac3debe81..2b3d5aa3d4 100644 --- a/Content.Server/Speech/EntitySystems/OwOAccentSystem.cs +++ b/Content.Server/Speech/EntitySystems/OwOAccentSystem.cs @@ -8,7 +8,7 @@ public sealed class OwOAccentSystem : EntitySystem [Dependency] private readonly IRobustRandom _random = default!; private static readonly IReadOnlyList Faces = new List{ - " (・`ω´・)", " ;;w;;", " owo", " UwU", " >w<", " ^w^" + " (•`ω´•)", " ;;w;;", " owo", " UwU", " >w<", " ^w^" }.AsReadOnly(); private static readonly IReadOnlyDictionary SpecialWords = new Dictionary() From a0165773a456d85877e422cdfa083cfa4c58307e Mon Sep 17 00:00:00 2001 From: Ivan <69372103+lokachop@users.noreply.github.com> Date: Wed, 10 Jul 2024 07:26:33 +0200 Subject: [PATCH 37/73] Add scarf to warm clothing bounty (#29779) * Add scarf to warm clothing bounty * Added ClothingScarfBase prototype and assigned to all of the scarves --- .../Prototypes/Catalog/Bounties/bounties.yml | 4 +++- .../Clothing/Neck/base_clothingneck.yml | 9 +++++++ .../Entities/Clothing/Neck/scarfs.yml | 24 +++++++++---------- Resources/Prototypes/tags.yml | 3 +++ 4 files changed, 27 insertions(+), 13 deletions(-) diff --git a/Resources/Prototypes/Catalog/Bounties/bounties.yml b/Resources/Prototypes/Catalog/Bounties/bounties.yml index 08bb2a1422..f656eb1962 100644 --- a/Resources/Prototypes/Catalog/Bounties/bounties.yml +++ b/Resources/Prototypes/Catalog/Bounties/bounties.yml @@ -1,4 +1,4 @@ -- type: cargoBounty +- type: cargoBounty id: BountyArtifact reward: 2500 description: bounty-description-artifact @@ -500,6 +500,8 @@ whitelist: components: - TemperatureProtection + tags: + - Scarf - type: cargoBounty id: BountyBattery diff --git a/Resources/Prototypes/Entities/Clothing/Neck/base_clothingneck.yml b/Resources/Prototypes/Entities/Clothing/Neck/base_clothingneck.yml index 1bccb4c92a..d2fffb8153 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/base_clothingneck.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/base_clothingneck.yml @@ -29,3 +29,12 @@ tags: - ClothMade - WhitelistChameleon + +- type: entity + abstract: true + parent: ClothingNeckBase + id: ClothingScarfBase + components: + - type: Tag + tags: + - Scarf diff --git a/Resources/Prototypes/Entities/Clothing/Neck/scarfs.yml b/Resources/Prototypes/Entities/Clothing/Neck/scarfs.yml index 33f582d30d..1f9d6b8b2c 100644 --- a/Resources/Prototypes/Entities/Clothing/Neck/scarfs.yml +++ b/Resources/Prototypes/Entities/Clothing/Neck/scarfs.yml @@ -1,5 +1,5 @@ - type: entity - parent: ClothingNeckBase + parent: ClothingScarfBase id: ClothingNeckScarfStripedRed name: striped red scarf description: A stylish striped red scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks. @@ -10,7 +10,7 @@ sprite: Clothing/Neck/Scarfs/red.rsi - type: entity - parent: ClothingNeckBase + parent: ClothingScarfBase id: ClothingNeckScarfStripedBlue name: striped blue scarf description: A stylish striped blue scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks. @@ -21,7 +21,7 @@ sprite: Clothing/Neck/Scarfs/blue.rsi - type: entity - parent: ClothingNeckBase + parent: ClothingScarfBase id: ClothingNeckScarfStripedGreen name: striped green scarf description: A stylish striped green scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks. @@ -32,7 +32,7 @@ sprite: Clothing/Neck/Scarfs/green.rsi - type: entity - parent: ClothingNeckBase + parent: ClothingScarfBase id: ClothingNeckScarfStripedBlack name: striped black scarf description: A stylish striped black scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks. @@ -43,7 +43,7 @@ sprite: Clothing/Neck/Scarfs/black.rsi - type: entity - parent: ClothingNeckBase + parent: ClothingScarfBase id: ClothingNeckScarfStripedBrown name: striped brown scarf description: A stylish striped brown scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks. @@ -54,7 +54,7 @@ sprite: Clothing/Neck/Scarfs/brown.rsi - type: entity - parent: ClothingNeckBase + parent: ClothingScarfBase id: ClothingNeckScarfStripedLightBlue name: striped light blue scarf description: A stylish striped light blue scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks. @@ -65,7 +65,7 @@ sprite: Clothing/Neck/Scarfs/lightblue.rsi - type: entity - parent: ClothingNeckBase + parent: ClothingScarfBase id: ClothingNeckScarfStripedOrange name: striped orange scarf description: A stylish striped orange scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks. @@ -76,7 +76,7 @@ sprite: Clothing/Neck/Scarfs/orange.rsi - type: entity - parent: ClothingNeckBase + parent: ClothingScarfBase id: ClothingNeckScarfStripedPurple name: striped purple scarf description: A stylish striped purple scarf. The perfect winter accessory for those with a keen fashion sense, and those who just can't handle a cold breeze on their necks. @@ -87,7 +87,7 @@ sprite: Clothing/Neck/Scarfs/purple.rsi - type: entity - parent: ClothingNeckBase + parent: ClothingScarfBase id: ClothingNeckScarfStripedSyndieGreen name: striped syndicate green scarf description: A stylish striped syndicate green scarf. The perfect winter accessory for those with a keen fashion sense, and those who are in the mood to steal something. @@ -98,7 +98,7 @@ sprite: Clothing/Neck/Scarfs/syndiegreen.rsi - type: entity - parent: ClothingNeckBase + parent: ClothingScarfBase id: ClothingNeckScarfStripedSyndieRed name: striped syndicate red scarf description: A stylish striped syndicate red scarf. The perfect winter accessory for those with a keen fashion sense, and those who are in the mood to steal something. @@ -109,7 +109,7 @@ sprite: Clothing/Neck/Scarfs/syndiered.rsi - type: entity - parent: ClothingNeckBase + parent: ClothingScarfBase id: ClothingNeckScarfStripedCentcom name: striped CentCom scarf description: A stylish striped centcom colored scarf. The perfect winter accessory for those with a keen fashion sense, and those who need to do paperwork in the cold. @@ -120,7 +120,7 @@ sprite: Clothing/Neck/Scarfs/centcom.rsi - type: entity - parent: ClothingNeckBase + parent: ClothingScarfBase id: ClothingNeckScarfStripedZebra name: zebra scarf description: A striped scarf, a mandatory accessory for artists. diff --git a/Resources/Prototypes/tags.yml b/Resources/Prototypes/tags.yml index bc12ea0af2..d7a7f089b1 100644 --- a/Resources/Prototypes/tags.yml +++ b/Resources/Prototypes/tags.yml @@ -1105,6 +1105,9 @@ - type: Tag id: SalvageExperiment +- type: Tag + id: Scarf + - type: Tag id: Screwdriver From 8d48096c577b6ee58e81125a3fb8c0952f27965f Mon Sep 17 00:00:00 2001 From: PJBot Date: Wed, 10 Jul 2024 05:27:40 +0000 Subject: [PATCH 38/73] Automatic changelog update --- Resources/Changelog/Changelog.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/Resources/Changelog/Changelog.yml b/Resources/Changelog/Changelog.yml index 4f38a9f753..4b10c79f6b 100644 --- a/Resources/Changelog/Changelog.yml +++ b/Resources/Changelog/Changelog.yml @@ -1,13 +1,4 @@ Entries: -- author: EmoGarbage404 - changes: - - message: Halved passive fuel consumption of welding tools. - type: Tweak - - message: Completing an action with a welding tool now directly drains the fuel. - type: Tweak - id: 6394 - time: '2024-04-19T23:20:30.0000000+00:00' - url: https://github.com/space-wizards/space-station-14/pull/27030 - author: superjj18 changes: - message: Pneumatic cannon inventory reduced in size to 2x2, item blacklist removed @@ -3824,3 +3815,10 @@ id: 6893 time: '2024-07-09T23:48:56.0000000+00:00' url: https://github.com/space-wizards/space-station-14/pull/29861 +- author: Lokachop + changes: + - message: Scarves now count as warm clothing for the warm clothing cargo bounty. + type: Tweak + id: 6894 + time: '2024-07-10T05:26:33.0000000+00:00' + url: https://github.com/space-wizards/space-station-14/pull/29779 From e8b3042a3874b839f0c3898864f64ecb547ef8ba Mon Sep 17 00:00:00 2001 From: dffdff2423 Date: Wed, 10 Jul 2024 00:28:36 -0500 Subject: [PATCH 39/73] Add an option to the admin fax menu to lock papers such that they can't be edited by cybersun pens (#28972) * Add option to adminfax for locking papers. * Replace dummy control with margin --- Content.Client/Fax/AdminUI/AdminFaxEui.cs | 2 +- Content.Client/Fax/AdminUI/AdminFaxWindow.xaml | 4 ++-- Content.Client/Fax/AdminUI/AdminFaxWindow.xaml.cs | 5 +++-- Content.Server/Fax/AdminUI/AdminFaxEui.cs | 4 +++- Content.Server/Fax/FaxConstants.cs | 1 + Content.Server/Fax/FaxSystem.cs | 9 +++++++-- Content.Server/Paper/PaperComponent.cs | 4 +++- Content.Server/Paper/PaperSystem.cs | 8 ++++++++ Content.Shared/Fax/AdminFaxEui.cs | 4 +++- Content.Shared/Fax/Components/FaxMachineComponent.cs | 6 +++++- Resources/Locale/en-US/fax/fax-admin.ftl | 2 ++ Resources/Locale/en-US/paper/paper-component.ftl | 2 ++ 12 files changed, 40 insertions(+), 11 deletions(-) diff --git a/Content.Client/Fax/AdminUI/AdminFaxEui.cs b/Content.Client/Fax/AdminUI/AdminFaxEui.cs index ace3f3eb7b..452c54eb79 100644 --- a/Content.Client/Fax/AdminUI/AdminFaxEui.cs +++ b/Content.Client/Fax/AdminUI/AdminFaxEui.cs @@ -16,7 +16,7 @@ public AdminFaxEui() _window.OnClose += () => SendMessage(new AdminFaxEuiMsg.Close()); _window.OnFollowFax += entity => SendMessage(new AdminFaxEuiMsg.Follow(entity)); _window.OnMessageSend += args => SendMessage(new AdminFaxEuiMsg.Send(args.entity, args.title, - args.stampedBy, args.message, args.stampSprite, args.stampColor)); + args.stampedBy, args.message, args.stampSprite, args.stampColor, args.locked)); } public override void Opened() diff --git a/Content.Client/Fax/AdminUI/AdminFaxWindow.xaml b/Content.Client/Fax/AdminUI/AdminFaxWindow.xaml index d469a0e9d3..dc4092a3b5 100644 --- a/Content.Client/Fax/AdminUI/AdminFaxWindow.xaml +++ b/Content.Client/Fax/AdminUI/AdminFaxWindow.xaml @@ -23,7 +23,7 @@