Component that controls a radiation-style particle effect. It exposes ParticleEffect, ParticleSpriteRenderer, and ParticleSphereEmitter properties and provides RPC methods to toggle visibility, set radius, adjust lifetime and emission rate, and change tint for a healing effect.
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 );
}
}