Defib fixes (#16031)

This commit is contained in:
metalgearsloth
2023-05-03 11:32:06 +10:00
committed by GitHub
parent b9b74eaff9
commit c7c083e9c8
5 changed files with 24 additions and 33 deletions

View File

@@ -56,7 +56,10 @@ public sealed class DefibrillatorSystem : EntitySystem
private void OnUnpaused(EntityUid uid, DefibrillatorComponent component, ref EntityUnpausedEvent args)
{
component.NextZapTime += args.PausedTime;
if (component.NextZapTime == null)
return;
component.NextZapTime = component.NextZapTime.Value + args.PausedTime;
}
private void OnUseInHand(EntityUid uid, DefibrillatorComponent component, UseInHandEvent args)
@@ -115,7 +118,7 @@ public sealed class DefibrillatorSystem : EntitySystem
if (component.Enabled)
return false;
if (_powerCell.HasActivatableCharge(uid))
if (!_powerCell.HasActivatableCharge(uid))
return false;
component.Enabled = true;
@@ -248,10 +251,12 @@ public sealed class DefibrillatorSystem : EntitySystem
var query = EntityQueryEnumerator<DefibrillatorComponent>();
while (query.MoveNext(out var uid, out var defib))
{
if (_timing.CurTime < defib.NextZapTime)
if (defib.NextZapTime == null || _timing.CurTime < defib.NextZapTime)
continue;
_audio.PlayPvs(defib.ReadySound, uid);
_appearance.SetData(uid, DefibrillatorVisuals.Ready, true);
defib.NextZapTime = null;
}
}
}

View File

@@ -24,7 +24,7 @@ public sealed class DefibrillatorComponent : Component
/// The time at which the zap cooldown will be completed
/// </summary>
[DataField("nextZapTime", customTypeSerializer: typeof(TimeOffsetSerializer)), ViewVariables(VVAccess.ReadWrite)]
public TimeSpan NextZapTime = TimeSpan.Zero;
public TimeSpan? NextZapTime;
/// <summary>
/// The minimum time between zaps
@@ -62,29 +62,29 @@ public sealed class DefibrillatorComponent : Component
/// <summary>
/// The sound when someone is zapped.
/// </summary>
[DataField("zapSound")]
public SoundSpecifier? ZapSound;
[ViewVariables(VVAccess.ReadWrite), DataField("zapSound")]
public SoundSpecifier? ZapSound = new SoundPathSpecifier("/Audio/Items/Defib/defib_zap.ogg");
/// <summary>
/// The sound when the defib is powered on.
/// </summary>
[DataField("powerOnSound")]
public SoundSpecifier? PowerOnSound;
[ViewVariables(VVAccess.ReadWrite), DataField("powerOnSound")]
public SoundSpecifier? PowerOnSound = new SoundPathSpecifier("/Audio/Items/Defib/defib_safety_on.ogg");
[DataField("powerOffSound")]
public SoundSpecifier? PowerOffSound;
[ViewVariables(VVAccess.ReadWrite), DataField("powerOffSound")]
public SoundSpecifier? PowerOffSound = new SoundPathSpecifier("/Audio/Items/Defib/defib_safety_off.ogg");
[DataField("chargeSound")]
public SoundSpecifier? ChargeSound;
[ViewVariables(VVAccess.ReadWrite), DataField("chargeSound")]
public SoundSpecifier? ChargeSound = new SoundPathSpecifier("/Audio/Items/Defib/defib_charge.ogg");
[DataField("failureSound")]
public SoundSpecifier? FailureSound;
[ViewVariables(VVAccess.ReadWrite), DataField("failureSound")]
public SoundSpecifier? FailureSound = new SoundPathSpecifier("/Audio/Items/Defib/defib_failed.ogg");
[DataField("successSound")]
public SoundSpecifier? SuccessSound;
[ViewVariables(VVAccess.ReadWrite), DataField("successSound")]
public SoundSpecifier? SuccessSound = new SoundPathSpecifier("/Audio/Items/Defib/defib_success.ogg");
[DataField("readySound")]
public SoundSpecifier? ReadySound;
[ViewVariables(VVAccess.ReadWrite), DataField("readySound")]
public SoundSpecifier? ReadySound = new SoundPathSpecifier("/Audio/Items/Defib/defib_ready.ogg");
}
[Serializable, NetSerializable]

View File

@@ -34,20 +34,6 @@
zapHeal:
types:
Asphyxiation: -40
zapSound:
path: /Audio/Items/Defib/defib_zap.ogg
powerOnSound:
path: /Audio/Items/Defib/defib_SaftyOn.ogg
powerOffSound:
path: /Audio/Items/Defib/defib_saftyOff.ogg
chargeSound:
path: /Audio/Items/Defib/defib_charge.ogg
failureSound:
path: /Audio/Items/Defib/defib_failed.ogg
successSound:
path: /Audio/Items/Defib/defib_success.ogg
readySound:
path: /Audio/Items/Defib/defib_ready.ogg
- type: PowerCellDraw
useRate: 100
- type: Appearance