RadiationParticleEffect.cs

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.

Networking
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 );
	}
}