Electrocution noises (#8061)
* Adds spark noises when an entity gets electrocuted by something * oops * double oops * Update Content.Server/Electrocution/Components/ElectrifiedComponent.cs Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
This commit is contained in:
@@ -1,3 +1,4 @@
|
|||||||
|
using Content.Shared.Sound;
|
||||||
using Robust.Shared.GameObjects;
|
using Robust.Shared.GameObjects;
|
||||||
using Robust.Shared.Serialization.Manager.Attributes;
|
using Robust.Shared.Serialization.Manager.Attributes;
|
||||||
|
|
||||||
@@ -65,5 +66,14 @@ namespace Content.Server.Electrocution
|
|||||||
|
|
||||||
[DataField("siemensCoefficient")]
|
[DataField("siemensCoefficient")]
|
||||||
public float SiemensCoefficient { get; } = 1f;
|
public float SiemensCoefficient { get; } = 1f;
|
||||||
|
|
||||||
|
[DataField("shockNoises")]
|
||||||
|
public SoundSpecifier ShockNoises { get; } = new SoundCollectionSpecifier("sparks");
|
||||||
|
|
||||||
|
[DataField("playSoundOnShock")]
|
||||||
|
public bool PlaySoundOnShock { get; } = true;
|
||||||
|
|
||||||
|
[DataField("shockVolume")]
|
||||||
|
public float ShockVolume { get; } = 20;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ using Content.Shared.StatusEffect;
|
|||||||
using Content.Shared.Stunnable;
|
using Content.Shared.Stunnable;
|
||||||
using Content.Shared.Tag;
|
using Content.Shared.Tag;
|
||||||
using Content.Shared.Weapons.Melee;
|
using Content.Shared.Weapons.Melee;
|
||||||
|
using Robust.Shared.Audio;
|
||||||
using Robust.Shared.GameObjects;
|
using Robust.Shared.GameObjects;
|
||||||
using Robust.Shared.IoC;
|
using Robust.Shared.IoC;
|
||||||
using Robust.Shared.Localization;
|
using Robust.Shared.Localization;
|
||||||
@@ -388,6 +389,7 @@ namespace Content.Server.Electrocution
|
|||||||
{
|
{
|
||||||
_popupSystem.PopupEntity(Loc.GetString("electrocuted-component-mob-shocked-by-source-popup-others",
|
_popupSystem.PopupEntity(Loc.GetString("electrocuted-component-mob-shocked-by-source-popup-others",
|
||||||
("mob", uid), ("source", (sourceUid.Value))), uid, filter);
|
("mob", uid), ("source", (sourceUid.Value))), uid, filter);
|
||||||
|
PlayElectrocutionSound(uid, sourceUid.Value);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -440,5 +442,15 @@ namespace Content.Server.Electrocution
|
|||||||
|
|
||||||
SetInsulatedSiemensCoefficient(uid, _random.Pick(randomInsulation.List), insulated);
|
SetInsulatedSiemensCoefficient(uid, _random.Pick(randomInsulation.List), insulated);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void PlayElectrocutionSound(EntityUid targetUid, EntityUid sourceUid, ElectrifiedComponent? electrified = null)
|
||||||
|
{
|
||||||
|
if (!Resolve(sourceUid, ref electrified) || !electrified.PlaySoundOnShock)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
SoundSystem.Play(Filter.Pvs(targetUid), electrified.ShockNoises.GetSound(), targetUid, AudioParams.Default.WithVolume(electrified.ShockVolume));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user