unitStatus/UnitStatusStun.cs

A UnitStatus subclass that represents a stun effect on a unit. It sets the unit's stunned state when initialized, clears it when removed, and removes itself after its lifetime expires.

using System;
using Sandbox;

public class UnitStatusStun : UnitStatus
{
	public Player PlayerSource { get; set; }
	public Enemy EnemySource { get; set; }

	public UnitStatusStun()
	{
		
	}

	public override void Init( Unit unit )
	{
		base.Init( unit );

		Unit.SetStateStunned( true );
	}

	public override void Update( float dt )
	{
		base.Update( dt );

		if ( !Unit.IsValid() )
			return;

		if ( ElapsedTime > Lifetime )
			Unit.RemoveUnitStatus( this );
	}

	public override void Die( Player player )
	{
		base.Die( player );

	}

	public override void OnRemove( bool playEffects = true )
	{
		Unit.SetStateStunned( false );
	}

	public override void Refresh()
	{
		base.Refresh();

	}
}