class PachinkoMachineController extends ArcadeMachineController
{

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

}

class PachinkoMachineControllerPS extends ArcadeMachineControllerPS
{
	default m_deviceName = "LocKey#172";
	default m_tweakDBRecord = T"Devices.PachinkoMachine";
	default m_tweakDBDescriptionRecord = T"device_descriptions.PachinkoMachine";

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

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

}

