* Added new anomaly particle * Add basic anomaly behaviour * +2 parametres * add functional to new particle * add components to behaviours * big content * add shuffle, moved thing to server * clean up * fixes * random pick redo * bonjour behavioUr * fix AJCM * fix * add some new behaviours * power modifier behaviour * rmeove timer * new event for update ui fix * refactor! * fixes * enum * Fix mapinit * Minor touches --------- Co-authored-by: metalgearsloth <comedian_vs_clown@hotmail.com>
42 lines
1.4 KiB
C#
42 lines
1.4 KiB
C#
using Content.Server.Anomaly.Components;
|
|
using Content.Shared.Anomaly.Components;
|
|
using Robust.Shared.Physics.Events;
|
|
using Robust.Shared.Random;
|
|
|
|
namespace Content.Server.Anomaly.Effects;
|
|
public sealed class ShuffleParticlesAnomalySystem : EntitySystem
|
|
{
|
|
[Dependency] private readonly AnomalySystem _anomaly = default!;
|
|
[Dependency] private readonly IRobustRandom _random = default!;
|
|
|
|
public override void Initialize()
|
|
{
|
|
SubscribeLocalEvent<ShuffleParticlesAnomalyComponent, AnomalyPulseEvent>(OnPulse);
|
|
SubscribeLocalEvent<ShuffleParticlesAnomalyComponent, StartCollideEvent>(OnStartCollide);
|
|
}
|
|
|
|
private void OnStartCollide(EntityUid uid, ShuffleParticlesAnomalyComponent shuffle, StartCollideEvent args)
|
|
{
|
|
if (!TryComp<AnomalyComponent>(uid, out var anomaly))
|
|
return;
|
|
|
|
if (shuffle.ShuffleOnParticleHit && _random.Prob(shuffle.Prob))
|
|
_anomaly.ShuffleParticlesEffect(anomaly);
|
|
|
|
if (!TryComp<AnomalousParticleComponent>(args.OtherEntity, out var particle))
|
|
return;
|
|
}
|
|
|
|
private void OnPulse(EntityUid uid, ShuffleParticlesAnomalyComponent shuffle, AnomalyPulseEvent args)
|
|
{
|
|
if (!TryComp<AnomalyComponent>(uid, out var anomaly))
|
|
return;
|
|
|
|
if (shuffle.ShuffleOnPulse && _random.Prob(shuffle.Prob))
|
|
{
|
|
_anomaly.ShuffleParticlesEffect(anomaly);
|
|
}
|
|
}
|
|
}
|
|
|