Mail visual update (#37049)

This commit is contained in:
ScarKy0
2025-04-30 00:55:47 +02:00
committed by GitHub
parent f69a856da0
commit a00b7b753c
5 changed files with 41 additions and 22 deletions

View File

@@ -25,6 +25,7 @@ public sealed partial class DeliveryModifierSystem : EntitySystem
SubscribeLocalEvent<DeliveryRandomMultiplierComponent, GetDeliveryMultiplierEvent>(OnGetRandomMultiplier);
SubscribeLocalEvent<DeliveryPriorityComponent, MapInitEvent>(OnPriorityMapInit);
SubscribeLocalEvent<DeliveryPriorityComponent, DeliveryUnlockedEvent>(OnPriorityDelivered);
SubscribeLocalEvent<DeliveryPriorityComponent, ExaminedEvent>(OnPriorityExamine);
SubscribeLocalEvent<DeliveryPriorityComponent, GetDeliveryMultiplierEvent>(OnGetPriorityMultiplier);
@@ -55,12 +56,23 @@ public sealed partial class DeliveryModifierSystem : EntitySystem
Dirty(ent);
}
private void OnPriorityDelivered(Entity<DeliveryPriorityComponent> ent, ref DeliveryUnlockedEvent args)
{
if (ent.Comp.Expired)
return;
ent.Comp.Delivered = true;
Dirty(ent);
}
private void OnPriorityExamine(Entity<DeliveryPriorityComponent> ent, ref ExaminedEvent args)
{
var trueName = _nameModifier.GetBaseName(ent.Owner);
var timeLeft = ent.Comp.DeliverUntilTime - _timing.CurTime;
if (_timing.CurTime < ent.Comp.DeliverUntilTime)
if (ent.Comp.Delivered)
args.PushMarkup(Loc.GetString("delivery-priority-delivered-examine", ("type", trueName)));
else if (_timing.CurTime < ent.Comp.DeliverUntilTime)
args.PushMarkup(Loc.GetString("delivery-priority-examine", ("type", trueName), ("time", timeLeft.ToString("mm\\:ss"))));
else
args.PushMarkup(Loc.GetString("delivery-priority-expired-examine", ("type", trueName)));
@@ -122,7 +134,7 @@ public sealed partial class DeliveryModifierSystem : EntitySystem
while (priorityQuery.MoveNext(out var uid, out var priorityData))
{
if (priorityData.Expired)
if (priorityData.Expired || priorityData.Delivered)
continue;
if (priorityData.DeliverUntilTime < curTime)

View File

@@ -23,6 +23,12 @@ public sealed partial class DeliveryPriorityComponent : Component
[DataField]
public float ExpiredMultiplierOffset = -0.1f;
/// <summary>
/// Whether this delivery was delivered on time.
/// </summary>
[DataField, AutoNetworkedField]
public bool Delivered;
/// <summary>
/// Whether this priority delivery has already ran out of time or not.
/// </summary>

View File

@@ -237,9 +237,9 @@ public abstract class SharedDeliverySystem : EntitySystem
{
_appearance.SetData(uid, DeliveryVisuals.IsLocked, isLocked);
// If we're trying to unlock, always remove the priority tape
if (!isLocked)
_appearance.SetData(uid, DeliveryVisuals.PriorityState, DeliveryPriorityState.Off);
// If we're trying to unlock, mark priority as inactive
if (HasComp<DeliveryPriorityComponent>(uid))
_appearance.SetData(uid, DeliveryVisuals.PriorityState, DeliveryPriorityState.Inactive);
}
public void UpdatePriorityVisuals(Entity<DeliveryPriorityComponent> ent)

View File

@@ -24,7 +24,8 @@ delivery-teleporter-empty-verb = Take mail
# modifiers
delivery-priority-examine = This is a [color=orange]priority {$type}[/color]. You have [color=orange]{$time}[/color] left to deliver it to get a bonus.
delivery-priority-expired-examine = This is a [color=orange]priority {$type}[/color]. It seems you ran out of time.
delivery-priority-delivered-examine = This is a [color=orange]priority {$type}[/color]. It got delivered on time.
delivery-priority-expired-examine = This is a [color=orange]priority {$type}[/color]. It ran out of time.
delivery-fragile-examine = This is a [color=red]fragile {$type}[/color]. Deliver it intact for a bonus.
delivery-fragile-broken-examine = This is a [color=red]fragile {$type}[/color]. It looks badly damaged.

View File

@@ -59,18 +59,18 @@
- state: trash
map: [ "enum.DeliveryVisualLayers.Trash" ]
visible: false
- state: postmark
- map: [ "enum.DeliveryVisualLayers.JobStamp" ]
offset: -0.21875, -0.25
- state: fragile
map: [ "enum.DeliveryVisualLayers.FragileStamp" ]
visible: false
- state: locked
map: [ "enum.DeliveryVisualLayers.Lock" ]
- state: priority
map: [ "enum.DeliveryVisualLayers.PriorityTape" ]
visible: false
shader: unshaded
- state: fragile
map: [ "enum.DeliveryVisualLayers.FragileStamp" ]
visible: false
- state: postmark
- map: [ "enum.DeliveryVisualLayers.JobStamp" ]
offset: -0.21875, -0.25
- state: locked
map: [ "enum.DeliveryVisualLayers.Lock" ]
- state: broken
map: [ "enum.DeliveryVisualLayers.Breakage" ]
visible: false
@@ -102,18 +102,18 @@
- state: trash
map: [ "enum.DeliveryVisualLayers.Trash" ]
visible: false
- state: postmark
- map: [ "enum.DeliveryVisualLayers.JobStamp" ]
offset: -0.125, -0.0625
- state: fragile
map: [ "enum.DeliveryVisualLayers.FragileStamp" ]
visible: false
- state: locked
map: [ "enum.DeliveryVisualLayers.Lock" ]
- state: priority
map: [ "enum.DeliveryVisualLayers.PriorityTape" ]
visible: false
shader: unshaded
- state: fragile
map: [ "enum.DeliveryVisualLayers.FragileStamp" ]
visible: false
- state: postmark
- map: [ "enum.DeliveryVisualLayers.JobStamp" ]
offset: -0.125, -0.0625
- state: locked
map: [ "enum.DeliveryVisualLayers.Lock" ]
- state: broken
map: [ "enum.DeliveryVisualLayers.Breakage" ]
visible: false