import class BluelinePart extends IScriptable
{
	import var passed : Bool;
	import var captionIconRecordId : TweakDBID;
}

class LifePathBluelinePart extends BluelinePart
{
	var m_record : LifePath_Record;
}

class BuildBluelinePart extends BluelinePart
{
	var m_record : PlayerBuild_Record;
	var m_lhsValue : Int32;
	var m_rhsValue : Int32;
	var m_comparisonOperator : ECompareOp;
}

class PaymentBluelinePart extends BluelinePart
{
	var m_playerMoney : Int32;
	var m_paymentMoney : Int32;
}

import final class BluelineDescription extends IScriptable
{
	import var parts : array< BluelinePart >;
	var m_logicOperator : ELogicOperator;
}

import final class BluelineObject extends IScriptable
{

	private function ProcessScriptCondition( description : BluelineDescription, scriptCondition : IScriptable, playerObject : GameObject )
	{
		var bluelineCondition : BluelineConditionTypeBase;
		bluelineCondition = ( ( BluelineConditionTypeBase )( scriptCondition ) );
		if( bluelineCondition )
		{
			description.parts.PushBack( bluelineCondition.GetBluelinePart( playerObject ) );
		}
	}

	private function AsConjunction( description : BluelineDescription )
	{
		description.m_logicOperator = ELogicOperator.AND;
	}

	private function AsDisjunction( description : BluelineDescription )
	{
		description.m_logicOperator = ELogicOperator.OR;
	}

}

