Update CP14ClientMagicVisionSystem.cs (#1842)

This commit is contained in:
Red
2025-11-01 16:56:03 +03:00
committed by GitHub
parent ade45ee8e3
commit 33a02ffcef

View File

@@ -10,7 +10,6 @@ using Robust.Shared.Audio;
using Robust.Shared.Audio.Systems; using Robust.Shared.Audio.Systems;
using Robust.Shared.Map; using Robust.Shared.Map;
using Robust.Shared.Player; using Robust.Shared.Player;
using Robust.Shared.Prototypes;
using Robust.Shared.Utility; using Robust.Shared.Utility;
namespace Content.Client._CP14.MagicVision; namespace Content.Client._CP14.MagicVision;
@@ -31,8 +30,8 @@ public sealed class CP14ClientMagicVisionSystem : CP14SharedMagicVisionSystem
private TimeSpan _nextUpdate = TimeSpan.Zero; private TimeSpan _nextUpdate = TimeSpan.Zero;
private SoundSpecifier _startSound = new SoundPathSpecifier(new ResPath("/Audio/Effects/eye_open.ogg")); private readonly SoundSpecifier _startSound = new SoundPathSpecifier(new ResPath("/Audio/Effects/eye_open.ogg"));
private SoundSpecifier _endSound = new SoundPathSpecifier(new ResPath("/Audio/Effects/eye_close.ogg")); private readonly SoundSpecifier _endSound = new SoundPathSpecifier(new ResPath("/Audio/Effects/eye_close.ogg"));
public override void Initialize() public override void Initialize()
{ {
@@ -50,12 +49,19 @@ public sealed class CP14ClientMagicVisionSystem : CP14SharedMagicVisionSystem
private void OnPlayerAttached(Entity<CP14MagicVisionStatusEffectComponent> ent, ref StatusEffectRelayedEvent<LocalPlayerAttachedEvent> args) private void OnPlayerAttached(Entity<CP14MagicVisionStatusEffectComponent> ent, ref StatusEffectRelayedEvent<LocalPlayerAttachedEvent> args)
{ {
if (args.Args.Entity != _player.LocalEntity)
return;
ApplyOverlay(ent); ApplyOverlay(ent);
} }
private void OnStatusEffectApplied(Entity<CP14MagicVisionStatusEffectComponent> ent, ref StatusEffectAppliedEvent args) private void OnStatusEffectApplied(Entity<CP14MagicVisionStatusEffectComponent> ent, ref StatusEffectAppliedEvent args)
{ {
//Prevents it from beeing applied twice if (args.Target != _player.LocalEntity)
if (_timing.IsFirstTimePredicted == true) return;
//Prevents it from being applied twice
if (_timing.IsFirstTimePredicted)
return; return;
ApplyOverlay(ent); ApplyOverlay(ent);
@@ -63,13 +69,19 @@ public sealed class CP14ClientMagicVisionSystem : CP14SharedMagicVisionSystem
private void OnPlayerDetached(Entity<CP14MagicVisionStatusEffectComponent> ent, ref StatusEffectRelayedEvent<LocalPlayerDetachedEvent> args) private void OnPlayerDetached(Entity<CP14MagicVisionStatusEffectComponent> ent, ref StatusEffectRelayedEvent<LocalPlayerDetachedEvent> args)
{ {
if (args.Args.Entity != _player.LocalEntity)
return;
RemoveOverlay(ent); RemoveOverlay(ent);
} }
private void OnStatusEffectRemoved(Entity<CP14MagicVisionStatusEffectComponent> ent, ref StatusEffectRemovedEvent args) private void OnStatusEffectRemoved(Entity<CP14MagicVisionStatusEffectComponent> ent, ref StatusEffectRemovedEvent args)
{ {
if (args.Target != _player.LocalEntity)
return;
//Prevents it from beeing removed twice //Prevents it from beeing removed twice
if (_timing.IsFirstTimePredicted == true) if (_timing.IsFirstTimePredicted)
return; return;
RemoveOverlay(ent); RemoveOverlay(ent);
@@ -126,7 +138,7 @@ public sealed class CP14ClientMagicVisionSystem : CP14SharedMagicVisionSystem
{ {
var progress = Math.Clamp((_timing.CurTime.TotalSeconds - ent.Comp.SpawnTime.TotalSeconds) / (ent.Comp.EndTime.TotalSeconds - ent.Comp.SpawnTime.TotalSeconds), 0, 1); var progress = Math.Clamp((_timing.CurTime.TotalSeconds - ent.Comp.SpawnTime.TotalSeconds) / (ent.Comp.EndTime.TotalSeconds - ent.Comp.SpawnTime.TotalSeconds), 0, 1);
var alpha = 1 - progress; var alpha = 1 - progress;
_sprite.SetColor(ent.Owner, Color.White.WithAlpha((float)alpha)); _sprite.SetColor((ent.Owner, sprite), Color.White.WithAlpha((float)alpha));
} }
private void ApplyOverlay(Entity<CP14MagicVisionStatusEffectComponent> ent) private void ApplyOverlay(Entity<CP14MagicVisionStatusEffectComponent> ent)