Merge remote-tracking branch 'upstream/master' into ed-06-11-2024-upstream
This commit is contained in:
@@ -47,8 +47,7 @@
|
||||
|
||||
<PanelContainer Name="AlertsDivider" Visible="False" StyleClasses="LowDivider" />
|
||||
|
||||
<BoxContainer Name="AlertsContainer" Visible="False" Margin="0 5" Orientation="Horizontal"
|
||||
HorizontalExpand="True" HorizontalAlignment="Center">
|
||||
<BoxContainer Name="AlertsContainer" Visible="False" Margin="0 5" Orientation="Vertical" HorizontalAlignment="Center">
|
||||
|
||||
</BoxContainer>
|
||||
|
||||
|
||||
@@ -110,18 +110,29 @@ namespace Content.Client.HealthAnalyzer.UI
|
||||
|
||||
// Alerts
|
||||
|
||||
AlertsDivider.Visible = msg.Bleeding == true;
|
||||
AlertsContainer.Visible = msg.Bleeding == true;
|
||||
var showAlerts = msg.Unrevivable == true || msg.Bleeding == true;
|
||||
|
||||
AlertsDivider.Visible = showAlerts;
|
||||
AlertsContainer.Visible = showAlerts;
|
||||
|
||||
if (showAlerts)
|
||||
AlertsContainer.DisposeAllChildren();
|
||||
|
||||
if (msg.Unrevivable == true)
|
||||
AlertsContainer.AddChild(new RichTextLabel
|
||||
{
|
||||
Text = Loc.GetString("health-analyzer-window-entity-unrevivable-text"),
|
||||
Margin = new Thickness(0, 4),
|
||||
MaxWidth = 300
|
||||
});
|
||||
|
||||
if (msg.Bleeding == true)
|
||||
{
|
||||
AlertsContainer.DisposeAllChildren();
|
||||
AlertsContainer.AddChild(new Label
|
||||
AlertsContainer.AddChild(new RichTextLabel
|
||||
{
|
||||
Text = Loc.GetString("health-analyzer-window-entity-bleeding-text"),
|
||||
FontColorOverride = Color.Red,
|
||||
Margin = new Thickness(0, 4),
|
||||
MaxWidth = 300
|
||||
});
|
||||
}
|
||||
|
||||
// Damage Groups
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
VerticalExpand="False"
|
||||
VerticalAlignment="Bottom"
|
||||
HorizontalAlignment="Center">
|
||||
<controls:RecordedSplitContainer Name="ScreenContainer" HorizontalExpand="True"
|
||||
<SplitContainer Name="ScreenContainer" HorizontalExpand="True"
|
||||
VerticalExpand="True" SplitWidth="0"
|
||||
StretchDirection="TopLeft">
|
||||
<BoxContainer Orientation="Vertical" VerticalExpand="True" Name="SpawnContainer" MinWidth="200" SetWidth="600">
|
||||
@@ -82,5 +82,5 @@
|
||||
</BoxContainer>
|
||||
</PanelContainer>
|
||||
</LayoutContainer>
|
||||
</controls:RecordedSplitContainer>
|
||||
</SplitContainer>
|
||||
</mapping:MappingScreen>
|
||||
|
||||
@@ -197,7 +197,6 @@ public sealed partial class MappingScreen : InGameScreen
|
||||
|
||||
public override void SetChatSize(Vector2 size)
|
||||
{
|
||||
ScreenContainer.DesiredSplitCenter = size.X;
|
||||
ScreenContainer.ResizeMode = SplitContainer.SplitResizeMode.RespectChildrenMinSize;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,29 +0,0 @@
|
||||
using System.Numerics;
|
||||
using Robust.Client.UserInterface.Controls;
|
||||
|
||||
namespace Content.Client.UserInterface.Controls;
|
||||
|
||||
/// <summary>
|
||||
/// A split container that performs an action when the split resizing is finished.
|
||||
/// </summary>
|
||||
public sealed class RecordedSplitContainer : SplitContainer
|
||||
{
|
||||
public double? DesiredSplitCenter;
|
||||
|
||||
protected override Vector2 ArrangeOverride(Vector2 finalSize)
|
||||
{
|
||||
if (ResizeMode == SplitResizeMode.RespectChildrenMinSize
|
||||
&& DesiredSplitCenter != null
|
||||
&& !finalSize.Equals(Vector2.Zero))
|
||||
{
|
||||
SplitFraction = (float) DesiredSplitCenter.Value;
|
||||
|
||||
if (!Size.Equals(Vector2.Zero))
|
||||
{
|
||||
DesiredSplitCenter = null;
|
||||
}
|
||||
}
|
||||
|
||||
return base.ArrangeOverride(finalSize);
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@
|
||||
VerticalExpand="False"
|
||||
VerticalAlignment="Bottom"
|
||||
HorizontalAlignment="Center">
|
||||
<controls:RecordedSplitContainer Name="ScreenContainer" HorizontalExpand="True" VerticalExpand="True" SplitWidth="0" StretchDirection="TopLeft">
|
||||
<SplitContainer Name="ScreenContainer" HorizontalExpand="True" VerticalExpand="True" SplitWidth="0" StretchDirection="TopLeft">
|
||||
<LayoutContainer Name="ViewportContainer" HorizontalExpand="True" VerticalExpand="True">
|
||||
<controls:MainViewport Name="MainViewport"/>
|
||||
<widgets:GhostGui Name="Ghost" Access="Protected" />
|
||||
@@ -26,7 +26,7 @@
|
||||
</BoxContainer>
|
||||
<alerts:AlertsUI Name="Alerts" Access="Protected" />
|
||||
</LayoutContainer>
|
||||
<PanelContainer HorizontalExpand="True" MinWidth="300">
|
||||
<PanelContainer Name="SeparatedChatPanel" MinWidth="300">
|
||||
<PanelContainer.PanelOverride>
|
||||
<graphics:StyleBoxFlat BackgroundColor="#2B2C3B" />
|
||||
</PanelContainer.PanelOverride>
|
||||
@@ -36,5 +36,5 @@
|
||||
<chat:ChatBox VerticalExpand="True" HorizontalExpand="True" Name="Chat" Access="Protected" MinSize="0 0"/>
|
||||
</BoxContainer>
|
||||
</PanelContainer>
|
||||
</controls:RecordedSplitContainer>
|
||||
</SplitContainer>
|
||||
</screens:SeparatedChatGameScreen>
|
||||
|
||||
@@ -40,7 +40,6 @@ public sealed partial class SeparatedChatGameScreen : InGameScreen
|
||||
|
||||
public override void SetChatSize(Vector2 size)
|
||||
{
|
||||
ScreenContainer.DesiredSplitCenter = size.X;
|
||||
ScreenContainer.ResizeMode = SplitContainer.SplitResizeMode.RespectChildrenMinSize;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -168,7 +168,7 @@ public sealed class SuicideCommandTests
|
||||
await pair.CleanReturnAsync();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// <summary>
|
||||
/// Run the suicide command in the console
|
||||
/// Should only ghost the player but not kill them
|
||||
/// </summary>
|
||||
@@ -241,6 +241,7 @@ public sealed class SuicideCommandTests
|
||||
var mindSystem = entManager.System<SharedMindSystem>();
|
||||
var mobStateSystem = entManager.System<MobStateSystem>();
|
||||
var transformSystem = entManager.System<TransformSystem>();
|
||||
var damageableSystem = entManager.System<DamageableSystem>();
|
||||
|
||||
// We need to know the player and whether they can be hurt, killed, and whether they have a mind
|
||||
var player = playerMan.Sessions.First().AttachedEntity!.Value;
|
||||
@@ -276,6 +277,8 @@ public sealed class SuicideCommandTests
|
||||
// and that all the damage is concentrated in the Slash category
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
// Heal all damage first (possible low pressure damage taken)
|
||||
damageableSystem.SetAllDamage(player, damageableComp, 0);
|
||||
consoleHost.GetSessionShell(playerMan.Sessions.First()).ExecuteCommand("suicide");
|
||||
var lethalDamageThreshold = mobThresholdsComp.Thresholds.Keys.Last();
|
||||
|
||||
@@ -313,6 +316,7 @@ public sealed class SuicideCommandTests
|
||||
var mindSystem = entManager.System<SharedMindSystem>();
|
||||
var mobStateSystem = entManager.System<MobStateSystem>();
|
||||
var transformSystem = entManager.System<TransformSystem>();
|
||||
var damageableSystem = entManager.System<DamageableSystem>();
|
||||
|
||||
// We need to know the player and whether they can be hurt, killed, and whether they have a mind
|
||||
var player = playerMan.Sessions.First().AttachedEntity!.Value;
|
||||
@@ -348,6 +352,8 @@ public sealed class SuicideCommandTests
|
||||
// and that slash damage is split in half
|
||||
await server.WaitAssertion(() =>
|
||||
{
|
||||
// Heal all damage first (possible low pressure damage taken)
|
||||
damageableSystem.SetAllDamage(player, damageableComp, 0);
|
||||
consoleHost.GetSessionShell(playerMan.Sessions.First()).ExecuteCommand("suicide");
|
||||
var lethalDamageThreshold = mobThresholdsComp.Thresholds.Keys.Last();
|
||||
|
||||
|
||||
@@ -651,7 +651,7 @@ public sealed partial class AdminVerbSystem
|
||||
{
|
||||
Text = "admin-smite-become-mouse-name",
|
||||
Category = VerbCategory.Smite,
|
||||
Icon = new SpriteSpecifier.Rsi(new ("/Textures/Objects/Fun/Instruments/h_synthesizer.rsi"), "icon"),
|
||||
Icon = new SpriteSpecifier.Rsi(new ("/Textures/Objects/Fun/Instruments/h_synthesizer.rsi"), "supersynth"),
|
||||
Act = () =>
|
||||
{
|
||||
_polymorphSystem.PolymorphEntity(args.Target, "AdminInstrumentSmite");
|
||||
|
||||
82
Content.Server/EntityEffects/Effects/FlashReactionEffect.cs
Normal file
82
Content.Server/EntityEffects/Effects/FlashReactionEffect.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using Content.Shared.EntityEffects;
|
||||
using Content.Server.Flash;
|
||||
using Robust.Server.GameObjects;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.Prototypes;
|
||||
|
||||
namespace Content.Server.EntityEffects.Effects;
|
||||
|
||||
[DataDefinition]
|
||||
public sealed partial class FlashReactionEffect : EntityEffect
|
||||
{
|
||||
/// <summary>
|
||||
/// Flash range per unit of reagent.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float RangePerUnit = 0.2f;
|
||||
|
||||
/// <summary>
|
||||
/// Maximum flash range.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float MaxRange = 10f;
|
||||
|
||||
/// <summary>
|
||||
/// How much to entities are slowed down.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float SlowTo = 0.5f;
|
||||
|
||||
/// <summary>
|
||||
/// The time entities will be flashed in seconds.
|
||||
/// The default is chosen to be better than the hand flash so it is worth using it for grenades etc.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public float Duration = 4f;
|
||||
|
||||
/// <summary>
|
||||
/// The prototype ID used for the visual effect.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public EntProtoId? FlashEffectPrototype = "ReactionFlash";
|
||||
|
||||
/// <summary>
|
||||
/// The sound the flash creates.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public SoundSpecifier? Sound = new SoundPathSpecifier("/Audio/Weapons/flash.ogg");
|
||||
|
||||
protected override string? ReagentEffectGuidebookText(IPrototypeManager prototype, IEntitySystemManager entSys)
|
||||
=> Loc.GetString("reagent-effect-guidebook-flash-reaction-effect", ("chance", Probability));
|
||||
|
||||
public override void Effect(EntityEffectBaseArgs args)
|
||||
{
|
||||
var transform = args.EntityManager.GetComponent<TransformComponent>(args.TargetEntity);
|
||||
var transformSystem = args.EntityManager.System<SharedTransformSystem>();
|
||||
|
||||
var range = 1f;
|
||||
|
||||
if (args is EntityEffectReagentArgs reagentArgs)
|
||||
range = MathF.Min((float)(reagentArgs.Quantity * RangePerUnit), MaxRange);
|
||||
|
||||
args.EntityManager.System<FlashSystem>().FlashArea(
|
||||
args.TargetEntity,
|
||||
null,
|
||||
range,
|
||||
Duration * 1000,
|
||||
slowTo: SlowTo,
|
||||
sound: Sound);
|
||||
|
||||
if (FlashEffectPrototype == null)
|
||||
return;
|
||||
|
||||
var uid = args.EntityManager.SpawnEntity(FlashEffectPrototype, transformSystem.GetMapCoordinates(transform));
|
||||
transformSystem.AttachToGridOrMap(uid);
|
||||
|
||||
if (!args.EntityManager.TryGetComponent<PointLightComponent>(uid, out var pointLightComp))
|
||||
return;
|
||||
var pointLightSystem = args.EntityManager.System<SharedPointLightSystem>();
|
||||
// PointLights with a radius lower than 1.1 are too small to be visible, so this is hardcoded
|
||||
pointLightSystem.SetRadius(uid, MathF.Max(1.1f, range), pointLightComp);
|
||||
}
|
||||
}
|
||||
@@ -213,14 +213,7 @@ namespace Content.Server.Ghost
|
||||
|
||||
private void OnMapInit(EntityUid uid, GhostComponent component, MapInitEvent args)
|
||||
{
|
||||
if (_actions.AddAction(uid, ref component.BooActionEntity, out var act, component.BooAction)
|
||||
&& act.UseDelay != null)
|
||||
{
|
||||
var start = _gameTiming.CurTime;
|
||||
var end = start + act.UseDelay.Value;
|
||||
_actions.SetCooldown(component.BooActionEntity.Value, start, end);
|
||||
}
|
||||
|
||||
_actions.AddAction(uid, ref component.BooActionEntity, component.BooAction);
|
||||
_actions.AddAction(uid, ref component.ToggleGhostHearingActionEntity, component.ToggleGhostHearingAction);
|
||||
_actions.AddAction(uid, ref component.ToggleLightingActionEntity, component.ToggleLightingAction);
|
||||
_actions.AddAction(uid, ref component.ToggleFoVActionEntity, component.ToggleFoVAction);
|
||||
|
||||
@@ -201,6 +201,7 @@ public sealed partial class CryoPodSystem : SharedCryoPodSystem
|
||||
? bloodSolution.FillFraction
|
||||
: 0,
|
||||
null,
|
||||
null,
|
||||
null
|
||||
));
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ using Content.Server.Body.Components;
|
||||
using Content.Server.Medical.Components;
|
||||
using Content.Server.PowerCell;
|
||||
using Content.Server.Temperature.Components;
|
||||
using Content.Server.Traits.Assorted;
|
||||
using Content.Shared.Chemistry.EntitySystems;
|
||||
using Content.Shared.Damage;
|
||||
using Content.Shared.DoAfter;
|
||||
@@ -196,6 +197,7 @@ public sealed class HealthAnalyzerSystem : EntitySystem
|
||||
|
||||
var bloodAmount = float.NaN;
|
||||
var bleeding = false;
|
||||
var unrevivable = false;
|
||||
|
||||
if (TryComp<BloodstreamComponent>(target, out var bloodstream) &&
|
||||
_solutionContainerSystem.ResolveSolution(target, bloodstream.BloodSolutionName,
|
||||
@@ -205,12 +207,16 @@ public sealed class HealthAnalyzerSystem : EntitySystem
|
||||
bleeding = bloodstream.BleedAmount > 0;
|
||||
}
|
||||
|
||||
if (HasComp<UnrevivableComponent>(target))
|
||||
unrevivable = true;
|
||||
|
||||
_uiSystem.ServerSendUiMessage(healthAnalyzer, HealthAnalyzerUiKey.Key, new HealthAnalyzerScannedUserMessage(
|
||||
GetNetEntity(target),
|
||||
bodyTemperature,
|
||||
bloodAmount,
|
||||
scanMode,
|
||||
bleeding
|
||||
bleeding,
|
||||
unrevivable
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,7 +41,9 @@ namespace Content.Server.Nutrition.EntitySystems
|
||||
|
||||
protected override void SplattedCreamPie(EntityUid uid, CreamPieComponent creamPie)
|
||||
{
|
||||
_audio.PlayPvs(_audio.GetSound(creamPie.Sound), uid, AudioParams.Default.WithVariation(0.125f));
|
||||
// The entity is deleted, so play the sound at its position rather than parenting
|
||||
var coordinates = Transform(uid).Coordinates;
|
||||
_audio.PlayPvs(_audio.GetSound(creamPie.Sound), coordinates, AudioParams.Default.WithVariation(0.125f));
|
||||
|
||||
if (EntityManager.TryGetComponent(uid, out FoodComponent? foodComp))
|
||||
{
|
||||
|
||||
@@ -76,6 +76,11 @@ public abstract partial class BaseActionComponent : Component
|
||||
// TODO serialization
|
||||
public (TimeSpan Start, TimeSpan End)? Cooldown;
|
||||
|
||||
/// <summary>
|
||||
/// If true, the action will have an initial cooldown applied upon addition.
|
||||
/// </summary>
|
||||
[DataField] public bool StartDelay = false;
|
||||
|
||||
/// <summary>
|
||||
/// Time interval between action uses.
|
||||
/// </summary>
|
||||
|
||||
@@ -813,6 +813,9 @@ public abstract class SharedActionsSystem : EntitySystem
|
||||
if (action.AttachedEntity != null)
|
||||
RemoveAction(action.AttachedEntity.Value, actionId, action: action);
|
||||
|
||||
if (action.StartDelay && action.UseDelay != null)
|
||||
SetCooldown(actionId, action.UseDelay.Value);
|
||||
|
||||
DebugTools.AssertOwner(performer, comp);
|
||||
comp ??= EnsureComp<ActionsComponent>(performer);
|
||||
action.AttachedEntity = performer;
|
||||
|
||||
@@ -130,9 +130,6 @@ public sealed partial class SleepingSystem : EntitySystem
|
||||
RaiseLocalEvent(ent, ref ev);
|
||||
_blindableSystem.UpdateIsBlind(ent.Owner);
|
||||
_actionsSystem.AddAction(ent, ref ent.Comp.WakeAction, WakeActionId, ent);
|
||||
|
||||
// TODO remove hardcoded time.
|
||||
_actionsSystem.SetCooldown(ent.Comp.WakeAction, _gameTiming.CurTime, _gameTiming.CurTime + TimeSpan.FromSeconds(2f));
|
||||
}
|
||||
|
||||
private void OnSpeakAttempt(Entity<SleepingComponent> ent, ref SpeakAttemptEvent args)
|
||||
|
||||
@@ -13,14 +13,16 @@ public sealed class HealthAnalyzerScannedUserMessage : BoundUserInterfaceMessage
|
||||
public float BloodLevel;
|
||||
public bool? ScanMode;
|
||||
public bool? Bleeding;
|
||||
public bool? Unrevivable;
|
||||
|
||||
public HealthAnalyzerScannedUserMessage(NetEntity? targetEntity, float temperature, float bloodLevel, bool? scanMode, bool? bleeding)
|
||||
public HealthAnalyzerScannedUserMessage(NetEntity? targetEntity, float temperature, float bloodLevel, bool? scanMode, bool? bleeding, bool? unrevivable)
|
||||
{
|
||||
TargetEntity = targetEntity;
|
||||
Temperature = temperature;
|
||||
BloodLevel = bloodLevel;
|
||||
ScanMode = scanMode;
|
||||
Bleeding = bleeding;
|
||||
Unrevivable = unrevivable;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,74 +1,4 @@
|
||||
Entries:
|
||||
- author: Errant
|
||||
changes:
|
||||
- message: Medical Mask sprite now works on vox.
|
||||
type: Fix
|
||||
id: 7052
|
||||
time: '2024-08-07T03:41:40.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/30702
|
||||
- author: Lyroth001
|
||||
changes:
|
||||
- message: Dragons are immune to flashes
|
||||
type: Tweak
|
||||
id: 7053
|
||||
time: '2024-08-07T07:42:00.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/30658
|
||||
- author: ShadowCommander
|
||||
changes:
|
||||
- message: Rollerbeds can now be dragged to the player to fold and pick them up.
|
||||
type: Add
|
||||
id: 7054
|
||||
time: '2024-08-07T09:19:10.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/30002
|
||||
- author: Errant
|
||||
changes:
|
||||
- message: Survivors arriving via the Unknown Shuttle event, ERT and CBURN agents,
|
||||
and Death Squad members are now equipped with the appropriate species-specific
|
||||
survival gear.
|
||||
type: Fix
|
||||
- message: Unknown Shuttle event can once again spawn vox characters.
|
||||
type: Tweak
|
||||
id: 7055
|
||||
time: '2024-08-07T09:26:40.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/29746
|
||||
- author: IProduceWidgets
|
||||
changes:
|
||||
- message: butter is slippery
|
||||
type: Tweak
|
||||
id: 7056
|
||||
time: '2024-08-07T21:47:03.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/29772
|
||||
- author: Mervill
|
||||
changes:
|
||||
- message: Gas Miners now have detailed examine text
|
||||
type: Tweak
|
||||
id: 7057
|
||||
time: '2024-08-08T02:14:31.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/30480
|
||||
- author: BackeTako
|
||||
changes:
|
||||
- message: "!, \u203D and multiple punctuations now work for Spanish."
|
||||
type: Tweak
|
||||
id: 7058
|
||||
time: '2024-08-08T03:08:28.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/30551
|
||||
- author: strO0pwafel
|
||||
changes:
|
||||
- message: Fixed inconsistent naming of CentComm.
|
||||
type: Fix
|
||||
id: 7059
|
||||
time: '2024-08-08T10:04:20.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/29217
|
||||
- author: Plykiya
|
||||
changes:
|
||||
- message: Buffed the range of EMP implants from a radius of 1.75 tiles to 2.75
|
||||
tiles.
|
||||
type: Tweak
|
||||
- message: Buffed the range of EMP grenades from a radius of 4 tiles to 5.5 tiles.
|
||||
type: Tweak
|
||||
id: 7060
|
||||
time: '2024-08-08T10:04:50.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/30660
|
||||
- author: Plykiya
|
||||
changes:
|
||||
- message: You can drop food or drinks from your hands to interrupt eating it, again.
|
||||
@@ -3959,3 +3889,69 @@
|
||||
id: 7551
|
||||
time: '2024-10-24T03:41:03.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/32965
|
||||
- author: slarticodefast
|
||||
changes:
|
||||
- message: Mix 1u aluminium, 1u potassium and 1u sulfur for a flash reaction effect.
|
||||
The radius scales with the reagent amount.
|
||||
type: Add
|
||||
id: 7552
|
||||
time: '2024-10-25T22:47:12.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/32377
|
||||
- author: BramvanZijp
|
||||
changes:
|
||||
- message: Fixed the Lone Nuclear Operative mid-round antagonist being extremely
|
||||
rare.
|
||||
type: Fix
|
||||
id: 7553
|
||||
time: '2024-10-26T02:16:45.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/32942
|
||||
- author: Moomoobeef
|
||||
changes:
|
||||
- message: Bowls no longer make an eating sound when drinking from them.
|
||||
type: Fix
|
||||
id: 7554
|
||||
time: '2024-10-26T04:00:49.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/32819
|
||||
- author: SaphireLattice
|
||||
changes:
|
||||
- message: Added a warning about unrevivability in the health analyzer UI.
|
||||
type: Add
|
||||
id: 7555
|
||||
time: '2024-10-26T17:22:09.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/32636
|
||||
- author: slarticodefast
|
||||
changes:
|
||||
- message: Fixed pie throwing sound not playing.
|
||||
type: Fix
|
||||
id: 7556
|
||||
time: '2024-10-27T04:25:55.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/33017
|
||||
- author: stalengd
|
||||
changes:
|
||||
- message: Fixed playtime labels not being able to correctly display time greater
|
||||
than 24 hours
|
||||
type: Fix
|
||||
id: 7557
|
||||
time: '2024-10-28T18:00:00.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/32974
|
||||
- author: august-sun
|
||||
changes:
|
||||
- message: Extended the minimum round time for meteor swarm events.
|
||||
type: Tweak
|
||||
id: 7558
|
||||
time: '2024-10-28T21:25:34.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/32876
|
||||
- author: deltanedas
|
||||
changes:
|
||||
- message: Fixed lava planet expeditions not working.
|
||||
type: Fix
|
||||
id: 7559
|
||||
time: '2024-10-29T05:00:29.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/33042
|
||||
- author: metalgearsloth
|
||||
changes:
|
||||
- message: Fix separated game screen bumping slightly.
|
||||
type: Fix
|
||||
id: 7560
|
||||
time: '2024-10-29T05:07:57.0000000+00:00'
|
||||
url: https://github.com/space-wizards/space-station-14/pull/33046
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -37,6 +37,12 @@ reagent-effect-guidebook-emp-reaction-effect =
|
||||
*[other] cause
|
||||
} an electromagnetic pulse
|
||||
|
||||
reagent-effect-guidebook-flash-reaction-effect =
|
||||
{ $chance ->
|
||||
[1] Causes
|
||||
*[other] cause
|
||||
} a blinding flash
|
||||
|
||||
reagent-effect-guidebook-foam-area-reaction-effect =
|
||||
{ $chance ->
|
||||
[1] Creates
|
||||
|
||||
@@ -15,7 +15,8 @@ health-analyzer-window-entity-damage-total-text = Total Damage:
|
||||
health-analyzer-window-damage-group-text = {$damageGroup}: {$amount}
|
||||
health-analyzer-window-damage-type-text = {$damageType}: {$amount}
|
||||
|
||||
health-analyzer-window-entity-bleeding-text = Patient is bleeding!
|
||||
health-analyzer-window-entity-unrevivable-text = [color=red]Unique body composition detected! Patient can not be resuscitated by normal means![/color]
|
||||
health-analyzer-window-entity-bleeding-text = [color=red]Patient is bleeding![/color]
|
||||
|
||||
health-analyzer-window-scan-mode-text = Scan Mode:
|
||||
health-analyzer-window-scan-mode-active = Active
|
||||
|
||||
@@ -73,3 +73,4 @@ station-beacon-tools = Tools
|
||||
station-beacon-disposals = Disposals
|
||||
station-beacon-cryosleep = Cryosleep
|
||||
station-beacon-escape-pod = Escape Pod
|
||||
station-beacon-vox = Vox Break Room
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -62944,11 +62944,6 @@ entities:
|
||||
- type: Transform
|
||||
pos: 35.5,16.5
|
||||
parent: 60
|
||||
- uid: 24676
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 11.5,-11.5
|
||||
parent: 60
|
||||
- proto: DefaultStationBeaconAICore
|
||||
entities:
|
||||
- uid: 18703
|
||||
@@ -63342,6 +63337,13 @@ entities:
|
||||
- type: Transform
|
||||
pos: 3.5,-6.5
|
||||
parent: 60
|
||||
- proto: DefaultStationBeaconVox
|
||||
entities:
|
||||
- uid: 23890
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 11.5,-11.5
|
||||
parent: 60
|
||||
- proto: DefaultStationBeaconWardensOffice
|
||||
entities:
|
||||
- uid: 24426
|
||||
|
||||
@@ -11584,7 +11584,7 @@ entities:
|
||||
pos: 24.5,16.5
|
||||
parent: 8364
|
||||
- type: Door
|
||||
secondsUntilStateChange: -18243.016
|
||||
secondsUntilStateChange: -18318.04
|
||||
state: Opening
|
||||
- type: DeviceLinkSource
|
||||
lastSignals:
|
||||
@@ -72442,6 +72442,13 @@ entities:
|
||||
- type: Transform
|
||||
pos: -31.5,4.5
|
||||
parent: 8364
|
||||
- proto: DefaultStationBeaconVox
|
||||
entities:
|
||||
- uid: 27921
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -42.5,-11.5
|
||||
parent: 8364
|
||||
- proto: DefaultStationBeaconWardensOffice
|
||||
entities:
|
||||
- uid: 27736
|
||||
@@ -84431,7 +84438,7 @@ entities:
|
||||
pos: -34.5,-14.5
|
||||
parent: 8364
|
||||
- type: Door
|
||||
secondsUntilStateChange: -12431.553
|
||||
secondsUntilStateChange: -12506.576
|
||||
state: Closing
|
||||
- uid: 15010
|
||||
components:
|
||||
@@ -84924,7 +84931,7 @@ entities:
|
||||
pos: -4.5,-71.5
|
||||
parent: 8364
|
||||
- type: Door
|
||||
secondsUntilStateChange: -4179.284
|
||||
secondsUntilStateChange: -4254.308
|
||||
state: Closing
|
||||
- proto: Fireplace
|
||||
entities:
|
||||
|
||||
@@ -16747,7 +16747,7 @@ entities:
|
||||
pos: -44.5,68.5
|
||||
parent: 12
|
||||
- type: Door
|
||||
secondsUntilStateChange: -5764.909
|
||||
secondsUntilStateChange: -5937.642
|
||||
state: Opening
|
||||
- type: DeviceLinkSource
|
||||
lastSignals:
|
||||
@@ -84185,6 +84185,13 @@ entities:
|
||||
- type: Transform
|
||||
pos: -30.5,9.5
|
||||
parent: 12
|
||||
- proto: DefaultStationBeaconVox
|
||||
entities:
|
||||
- uid: 30179
|
||||
components:
|
||||
- type: Transform
|
||||
pos: 4.5,69.5
|
||||
parent: 12
|
||||
- proto: DefaultStationBeaconWardensOffice
|
||||
entities:
|
||||
- uid: 20823
|
||||
|
||||
@@ -63749,6 +63749,13 @@ entities:
|
||||
- type: Transform
|
||||
pos: 54.5,-33.5
|
||||
parent: 2
|
||||
- proto: DefaultStationBeaconVox
|
||||
entities:
|
||||
- uid: 16173
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -31.5,-2.5
|
||||
parent: 2
|
||||
- proto: DefaultStationBeaconWardensOffice
|
||||
entities:
|
||||
- uid: 20871
|
||||
@@ -106044,11 +106051,11 @@ entities:
|
||||
After several simulations where Superconducting Magnetic Energy Storage units were drained from the main system from [italic]a variety[/italic] of user errors and other shenanigans, it has been determined that the Singularity should be put on its own power loop, disconnected from the main station. The upsides of this include but are not limited to:
|
||||
|
||||
|
||||
[bold]1.[/bold] Limited external forces from the containments power.
|
||||
[bold]1.[/bold] Limited external forces from the containments power.
|
||||
|
||||
[bold]2.[/bold] An "early warning" system, if you see JUST the PA room run out of power, you know there is an issue.
|
||||
[bold]2.[/bold] An "early warning" system, if you see JUST the PA room run out of power, you know there is an issue.
|
||||
|
||||
[bold]3.[/bold] Due to being on its own small loop, its much easier to spot faults in the system.
|
||||
[bold]3.[/bold] Due to being on its own small loop, its much easier to spot faults in the system.
|
||||
|
||||
|
||||
[italic]While we have listed the upsides we also acknowledge the downside,[/italic] for it being on its own loop you will need an external force if the system "runs out of juice". Our recommendation for this is simply attaching a generator to said SMES and letting it get to full charge before continuing operations but as said from another of our technicians... "just attach it to the main grid for like, a hot moment, and kickstart the thing!"
|
||||
|
||||
@@ -14470,7 +14470,7 @@ entities:
|
||||
lastSignals:
|
||||
DoorStatus: True
|
||||
- type: Door
|
||||
secondsUntilStateChange: -76151.9
|
||||
secondsUntilStateChange: -76213.97
|
||||
state: Opening
|
||||
- uid: 6934
|
||||
components:
|
||||
@@ -14482,7 +14482,7 @@ entities:
|
||||
lastSignals:
|
||||
DoorStatus: True
|
||||
- type: Door
|
||||
secondsUntilStateChange: -76154.53
|
||||
secondsUntilStateChange: -76216.6
|
||||
state: Opening
|
||||
- uid: 6935
|
||||
components:
|
||||
@@ -14494,7 +14494,7 @@ entities:
|
||||
lastSignals:
|
||||
DoorStatus: True
|
||||
- type: Door
|
||||
secondsUntilStateChange: -76153.38
|
||||
secondsUntilStateChange: -76215.45
|
||||
state: Opening
|
||||
- uid: 6936
|
||||
components:
|
||||
@@ -14505,7 +14505,7 @@ entities:
|
||||
lastSignals:
|
||||
DoorStatus: True
|
||||
- type: Door
|
||||
secondsUntilStateChange: -76152.6
|
||||
secondsUntilStateChange: -76214.67
|
||||
state: Opening
|
||||
- proto: AirlockTheatreLocked
|
||||
entities:
|
||||
@@ -81255,6 +81255,13 @@ entities:
|
||||
- type: Transform
|
||||
pos: -54.5,-11.5
|
||||
parent: 2
|
||||
- proto: DefaultStationBeaconVox
|
||||
entities:
|
||||
- uid: 29615
|
||||
components:
|
||||
- type: Transform
|
||||
pos: -14.5,17.5
|
||||
parent: 2
|
||||
- proto: DefaultStationBeaconWardensOffice
|
||||
entities:
|
||||
- uid: 11912
|
||||
@@ -94258,7 +94265,7 @@ entities:
|
||||
pos: -13.5,-1.5
|
||||
parent: 2
|
||||
- type: Door
|
||||
secondsUntilStateChange: -67475.88
|
||||
secondsUntilStateChange: -67537.95
|
||||
- type: DeviceNetwork
|
||||
deviceLists:
|
||||
- 18275
|
||||
@@ -138807,7 +138814,7 @@ entities:
|
||||
pos: 36.5,-35.5
|
||||
parent: 2
|
||||
- type: Door
|
||||
secondsUntilStateChange: -104307.73
|
||||
secondsUntilStateChange: -104369.8
|
||||
state: Opening
|
||||
- uid: 5211
|
||||
components:
|
||||
@@ -190162,7 +190169,7 @@ entities:
|
||||
pos: 24.5,2.5
|
||||
parent: 21002
|
||||
- type: Door
|
||||
secondsUntilStateChange: -449512.38
|
||||
secondsUntilStateChange: -449574.44
|
||||
state: Opening
|
||||
- uid: 28863
|
||||
components:
|
||||
|
||||
@@ -280,6 +280,8 @@
|
||||
checkCanInteract: false
|
||||
checkConsciousness: false
|
||||
event: !type:WakeActionEvent
|
||||
startDelay: true
|
||||
useDelay: 2
|
||||
|
||||
- type: entity
|
||||
id: ActionActivateHonkImplant
|
||||
|
||||
@@ -219,7 +219,6 @@
|
||||
- Howe
|
||||
- Huey
|
||||
- Hughes
|
||||
- Hujsak
|
||||
- Hunt
|
||||
- Hunter
|
||||
- Hussain
|
||||
|
||||
@@ -222,3 +222,16 @@
|
||||
state: metal_foam-north
|
||||
- map: [ "enum.EdgeLayer.West" ]
|
||||
state: metal_foam-west
|
||||
|
||||
- type: entity
|
||||
id: ReactionFlash
|
||||
categories: [ HideSpawnMenu ]
|
||||
components:
|
||||
- type: PointLight
|
||||
enabled: true
|
||||
radius: 2
|
||||
energy: 8
|
||||
- type: LightFade
|
||||
duration: 0.5
|
||||
- type: TimedDespawn
|
||||
lifetime: 0.5
|
||||
|
||||
@@ -79,6 +79,7 @@
|
||||
icon: Interface/Actions/scream.png
|
||||
checkCanInteract: false
|
||||
event: !type:BooActionEvent
|
||||
startDelay: true
|
||||
useDelay: 120
|
||||
|
||||
- type: entity
|
||||
|
||||
@@ -70,6 +70,8 @@
|
||||
canShuttle: false
|
||||
title: comms-console-announcement-title-station-ai
|
||||
color: "#2ed2fd"
|
||||
- type: Speech
|
||||
speechVerb: Robotic
|
||||
|
||||
- type: entity
|
||||
id: AiHeldIntellicard
|
||||
|
||||
@@ -21,6 +21,10 @@
|
||||
visible: false
|
||||
- type: MixableSolution
|
||||
solution: food
|
||||
- type: Drink
|
||||
solution: food
|
||||
useSound:
|
||||
path: /Audio/Items/drink.ogg
|
||||
- type: DamageOnLand
|
||||
damage:
|
||||
types:
|
||||
|
||||
@@ -639,3 +639,11 @@
|
||||
components:
|
||||
- type: NavMapBeacon
|
||||
defaultText: station-beacon-escape-pod
|
||||
|
||||
- type: entity
|
||||
parent: DefaultStationBeacon
|
||||
id: DefaultStationBeaconVox
|
||||
suffix: Vox
|
||||
components:
|
||||
- type: NavMapBeacon
|
||||
defaultText: station-beacon-vox
|
||||
|
||||
@@ -113,6 +113,14 @@
|
||||
- type: GasMiner
|
||||
spawnGas: Tritium
|
||||
|
||||
- type: entity
|
||||
name: frezon gas miner
|
||||
parent: GasMinerBase
|
||||
id: GasMinerFrezon
|
||||
components:
|
||||
- type: GasMiner
|
||||
spawnGas: Frezon
|
||||
|
||||
- type: entity
|
||||
name: water vapor gas miner
|
||||
parent: GasMinerBase
|
||||
|
||||
@@ -57,7 +57,7 @@
|
||||
components:
|
||||
- type: GameRule
|
||||
- type: BasicStationEventScheduler
|
||||
minimumTimeUntilFirstEvent: 300 # 5 min
|
||||
minimumTimeUntilFirstEvent: 600 # 10 min
|
||||
minMaxEventTiming:
|
||||
min: 750 # 12.5 min
|
||||
max: 930 # 17.5 min
|
||||
@@ -70,7 +70,7 @@
|
||||
components:
|
||||
- type: GameRule
|
||||
- type: BasicStationEventScheduler
|
||||
minimumTimeUntilFirstEvent: 300 # 5 min
|
||||
minimumTimeUntilFirstEvent: 600 # 10 min
|
||||
minMaxEventTiming:
|
||||
min: 750 # 12.5 min
|
||||
max: 930 # 17.5 min
|
||||
|
||||
@@ -127,6 +127,8 @@
|
||||
Junction: BaseAirlock
|
||||
WallMounts: ScienceLabsWalls
|
||||
Window: BaseWindow
|
||||
tiles:
|
||||
FallbackTile: FloorDark
|
||||
whitelists:
|
||||
Rooms:
|
||||
tags:
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
amount: 1
|
||||
Sulfur:
|
||||
amount: 1
|
||||
Oxygen:
|
||||
Oxygen:
|
||||
amount: 2
|
||||
products:
|
||||
SulfuricAcid: 3
|
||||
@@ -205,6 +205,20 @@
|
||||
energyConsumption: 12500
|
||||
duration: 15
|
||||
|
||||
- type: reaction
|
||||
id: Flash
|
||||
impact: High
|
||||
priority: 20
|
||||
reactants:
|
||||
Aluminium:
|
||||
amount: 1
|
||||
Potassium:
|
||||
amount: 1
|
||||
Sulfur:
|
||||
amount: 1
|
||||
effects:
|
||||
- !type:FlashReactionEffect
|
||||
|
||||
- type: reaction
|
||||
id: TableSalt
|
||||
minTemp: 370
|
||||
@@ -501,3 +515,4 @@
|
||||
amount: 1
|
||||
products:
|
||||
Tazinide: 1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user