class GameplayLightController extends ElectricLightController
{

	public const override function GetPS() : GameplayLightControllerPS
	{
		return ( ( GameplayLightControllerPS )( GetBasePS() ) );
	}

}

class GameplayLightControllerPS extends ElectricLightControllerPS
{

	protected event OnInstantiated()
	{
		super.OnInstantiated();
	}

	protected override function Initialize()
	{
		super.Initialize();
	}

	protected override function GameAttached()
	{
		super.GameAttached();
	}

	protected const override function CanCreateAnyQuickHackActions() : Bool
	{
		return true;
	}

	protected override function GetQuickHackActions( out actions : array< DeviceAction >, const context : ref< GetActionsContext > )
	{
		var currentAction : ScriptableDeviceAction;
		currentAction = ActionQuickHackToggleON();
		currentAction.SetObjectActionID( T"DeviceAction.ToggleStateClassHack" );
		currentAction.SetInactiveWithReason( ToggleON.IsDefaultConditionMet( this, context ), "LocKey#7003" );
		actions.PushBack( currentAction );
		currentAction = ActionQuickHackDistraction();
		currentAction.SetObjectActionID( T"DeviceAction.MalfunctionClassHack" );
		currentAction.SetDurationValue( GetDistractionDuration( currentAction ) );
		if( !( QuickHackDistraction.IsDefaultConditionMet( this, context ) ) )
		{
			currentAction.SetInactiveWithReason( false, "LocKey#7003" );
		}
		actions.PushBack( currentAction );
		FinalizeGetQuickHackActions( actions, context );
	}

}

