A component that controls a particle effect representing radiation. It exposes properties for the ParticleEffect, a sprite renderer and a sphere emitter, and RPC methods to toggle visibility, set radius, set lifetime and emission rate, and change tint for a healing variant.
using System;
using Sandbox;
public class RadiationParticleEffect : Component
{
[Property] public ParticleEffect ParticleEffect { get; set; }
[Property] public ParticleSpriteRenderer ParticleRenderer { get; set; }
[Property] public ParticleSphereEmitter SphereEmitter { get; set; }
protected override void OnStart()
{
base.OnStart();
}
[Rpc.Broadcast]
public void SetVisible( bool visible )
{
ParticleRenderer.Enabled = visible;
}
[Rpc.Broadcast]
public void SetRadius( float radius )
{
ParticleRenderer.Scale = radius;
}
[Rpc.Broadcast]
public void SetTiming( float lifetime, float rate )
{
ParticleEffect.Lifetime = lifetime;
SphereEmitter.Rate = rate;
}
[Rpc.Broadcast]
public void ShowHealing()
{
ParticleEffect.Tint = new Color( 0f, 0.07f, 0f );
}
}