abstract class SetArguments extends AIbehaviortaskScript
{
	editable var m_argumentVar : CName;

	public override function GetDescription( context : ScriptExecutionContext ) : String
	{
		return GetEditorSubCaption();
	}

	public virtual function GetEditorSubCaption() : String
	{
		return "Set " + ( ( String )( m_argumentVar ) );
	}

}

class SetArgumentBoolean extends SetArguments
{
	editable var m_customVar : Bool;

	protected export override function Activate( context : ScriptExecutionContext )
	{
		ScriptExecutionContext.SetArgumentBool( context, m_argumentVar, m_customVar );
	}

	public override function GetEditorSubCaption() : String
	{
		return ( ( "Set " + ( ( String )( m_argumentVar ) ) ) + " To " ) + ( ( m_customVar ) ? ( "TRUE" ) : ( "FALSE" ) );
	}

}

class SetArgumentInt extends SetArguments
{
	editable var m_customVar : Int32;

	protected override function Activate( context : ScriptExecutionContext )
	{
		ScriptExecutionContext.SetArgumentInt( context, m_argumentVar, m_customVar );
	}

	public override function GetEditorSubCaption() : String
	{
		return ( ( "Set " + ( ( String )( m_argumentVar ) ) ) + " To " ) + ( ( String )( m_customVar ) );
	}

}

class SetTimeStampToArgumentFloat extends SetArguments
{

	protected override function Activate( context : ScriptExecutionContext )
	{
		ScriptExecutionContext.SetArgumentFloat( context, m_argumentVar, EngineTime.ToFloat( ScriptExecutionContext.GetAITime( context ) ) );
	}

	public override function GetEditorSubCaption() : String
	{
		return ( ( "Set " + ( ( String )( m_argumentVar ) ) ) + " To " ) + "AI Time";
	}

}

class SetArgumentFloat extends SetArguments
{
	editable var m_customVar : Float;

	protected override function Activate( context : ScriptExecutionContext )
	{
		ScriptExecutionContext.SetArgumentFloat( context, m_argumentVar, m_customVar );
	}

	public override function GetEditorSubCaption() : String
	{
		return ( ( "Set " + ( ( String )( m_argumentVar ) ) ) + " To " ) + ( ( String )( m_customVar ) );
	}

}

class SetArgumentName extends SetArguments
{
	editable var m_customVar : CName;

	protected override function Activate( context : ScriptExecutionContext )
	{
		ScriptExecutionContext.SetArgumentName( context, m_argumentVar, m_customVar );
	}

	public override function GetEditorSubCaption() : String
	{
		return ( ( "Set " + ( ( String )( m_argumentVar ) ) ) + " To " ) + ( ( String )( m_customVar ) );
	}

}

class SetArgumentVector extends SetArguments
{
	editable inlined var m_newValue : AIArgumentMapping;

	protected override function Activate( context : ScriptExecutionContext )
	{
		var newValue : Vector4;
		newValue = ( ( Vector4 )( ScriptExecutionContext.GetMappingValue( context, m_newValue ) ) );
		ScriptExecutionContext.SetArgumentVector( context, m_argumentVar, newValue );
	}

}

class ClearArgumentObject extends SetArguments
{

	protected export override function Activate( context : ScriptExecutionContext )
	{
		ScriptExecutionContext.SetArgumentObject( context, m_argumentVar, NULL );
	}

	public override function GetEditorSubCaption() : String
	{
		return "Clear " + ( ( String )( m_argumentVar ) );
	}

}

