Mail visual update (#37049)
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user