Version = 1.8.2.25321;
CParticleEffect	$LOCAL$/Resource
{
	OnSpawn = "$LOCAL$/Spawner";
	LayerGroups = 
	{
		"$LOCAL$/Smoke",
	};
	CustomAttributes = "$LOCAL$/_GlobalAttributes";
	SpatialLayers = "$LOCAL$/CParticleSpatialLayerList_45B77F40";
	Autostart = true;
}
CActionFactoryParticleSpawnerBase	$LOCAL$/FlameThrower_Ribbon
{
	EditorInfosPosition = int2(-494, -166);
	Descriptor = "$LOCAL$/CParticleDescriptor_AE135B2A";
	Infinite = true;
	DurationInSeconds = 2.0000000e+000;
	SpawnCount = 1.0000000e+002;
	FluxFactorExpression = "Flux";
}
CParticleDescriptor	$LOCAL$/CParticleDescriptor_AE135B2A
{
	EditorInfosPosition = int2(-610, -189);
	Renderer = "$LOCAL$/CParticleRenderer_List_89462461";
	CustomFields = 
	{
		"$LOCAL$/CParticleFieldDeclaration_2C73B50C",
		"$LOCAL$/CParticleFieldDeclaration_F90C3867",
		"$LOCAL$/CParticleFieldDeclaration_29ECD16B",
		"$LOCAL$/CParticleFieldDeclaration_33C92B6F",
		"$LOCAL$/CParticleFieldDeclaration_ED59999F",
	};
	CustomEvents = 
	{
		"$LOCAL$/CParticleEventDeclaration_7F5E9EB3",
	};
	Samplers = 
	{
		"$LOCAL$/CParticleSamplerCurve_DB087A38",
		"$LOCAL$/CParticleSamplerCurve_708AA483",
	};
	SpawnEvaluator = "$LOCAL$/CCompilerSyntaxNodeExpression_5566F5E7";
	States = 
	{
		"$LOCAL$/CParticleState_3AF8190E",
	};
}
CActionFactoryWithChilds	$LOCAL$/Spawner
{
	EditorInfosPosition = int2(-390, -188);
	ChildList = 
	{
		"$LOCAL$/FlameThrower_Ribbon",
	};
}
CParticleRenderer_List	$LOCAL$/CParticleRenderer_List_89462461
{
	Renderers = 
	{
		"$LOCAL$/CParticleRenderer_Ribbon_8CF37097",
		"$LOCAL$/CParticleRenderer_Billboard_051AFFA6",
	};
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_5566F5E7
{
	EditorInfosPosition = int2(-864, 537);
	Expression = "function void	Eval()
{
	// There is 2 renderers:
	// The Renderer_Billboard to render the flames
	// The Renderer_Ribbon to get a continuous background without holes
	
	// Set the length by the life
	Life = Power;
	
	Rotation = rand(-pi, pi);
	ScalarRotationSpeed = rand(-4, 4);
	
	Velocity = float3(-20, 0, 0) * Power;
	
	StartTextureID = ninja * 48;
	X = rand(0.25, 1);
	
	// Heat will be inserted in the global Spatial Layer \"Flame\"
	// It\'s used in the CoallBurn_SpatialLayers.pkfx
	Heat = rand(0.5, 1.2);
}
";
}
CParticleState	$LOCAL$/CParticleState_3AF8190E
{
	EditorInfosPosition = int2(-866, 685);
	StateName = "State_0";
	Evolvers = 
	{
		"$LOCAL$/CParticleEvolver_Physics_36D6D4BD",
		"$LOCAL$/CParticleEvolver_Rotation_7831645E",
		"$LOCAL$/CParticleEvolver_Script_4C7E77C4",
		"$LOCAL$/Evolver_1",
	};
}
CParticleEvolver_Physics	$LOCAL$/CParticleEvolver_Physics_36D6D4BD
{
	EditorInfosPosition = int2(-954, 692);
	ConstantAcceleration = float3(0.0000000e+000, 4.0000000e+000, 0.0000000e+000);
	Mass = 2.0000000e+000;
	Drag = 1.0000000e+000;
	WorldInteractionMode = OneWay;
	BounceRestitution = 1.5000001e-001;
	BouncesBeforeDeath = 0;
}
CParticleAttributeList	$LOCAL$/_GlobalAttributes
{
	EditorInfosPosition = int2(-756, 216);
	AttributeList = 
	{
		"$LOCAL$/CParticleAttributeDeclaration_A36A92E0",
		"$LOCAL$/CParticleAttributeDeclaration_A07F388F",
		"$LOCAL$/CParticleAttributeDeclaration_2C454FD5",
	};
}
CParticleAttributeDeclaration	$LOCAL$/CParticleAttributeDeclaration_A36A92E0
{
	EditorInfosPosition = int2(-832, 234);
	AttributeName = "Power";
	DefaultValueF4 = float4(1.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000);
	MaxValueF4 = float4(1.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000);
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_29ECD16B
{
	EditorInfosPosition = int2(-866, -116);
	FieldName = "ColorRibbon";
	FieldType = float4;
}
CParticleEvolver_Script	$LOCAL$/CParticleEvolver_Script_4C7E77C4
{
	EditorInfosPosition = int2(-949, 754);
	EditorInfosIsBlockMinimized = 0;
	Expression = "$LOCAL$/CCompilerSyntaxNodeExpression_19C74777";
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_19C74777
{
	EditorInfosPosition = int2(-1019, 763);
	Expression = "function void	Eval()
{	
	TextureID = StartTextureID + LifeRatio * 16;
		
	float3	fuelColor = float3(0.1, 0.1, 1);
	float3	fireColor = RGB;
	float	lerpCurve = LerpCurve.sample(LifeRatio);
	
	float3	baseColor = lerp(fuelColor, fireColor, lerpCurve);
	float	fireIntensity = pow(1-LifeRatio, 0.5) * 20;
	
	Color = float4(baseColor * fireIntensity, 0);
	
	float	ribbonIntensity = RibbonIntensityCurve.sample(LifeRatio);
	
	ColorRibbon = float4(baseColor * ribbonIntensity,0);
	
	Size = pow(LifeRatio, 0.8);
	SizeRibbon = Size * 0.4;

	// This timer is used to trigger Smoke
	X -= dt;

	int 	condition = X < 0;
	Smoke.trigger(condition);
	
	float	resetTimeur = select(X, infinity, condition);
	X = resetTimeur;
}
";
}
CParticleEvolver_Rotation	$LOCAL$/CParticleEvolver_Rotation_7831645E
{
	EditorInfosPosition = int2(-954, 723);
}
CParticleAttributeDeclaration	$LOCAL$/CParticleAttributeDeclaration_A07F388F
{
	EditorInfosPosition = int2(-832, 263);
	AttributeName = "RGB";
	AttributeType = float3;
	DefaultValueF4 = float4(1.0000000e+000, 2.5000000e-001, 1.0000000e-001, 0.0000000e+000);
	HasMin = true;
	HasMax = true;
	MaxValueF4 = float4(1.0000000e+000, 1.0000000e+000, 1.0000000e+000, 1.0000000e+000);
	MaxValueI4 = int4(10, 10, 10, 10);
}
CParticleRenderer_Ribbon	$LOCAL$/CParticleRenderer_Ribbon_8CF37097
{
	DrawOrder = 10;
	BillboardingMaterial = AlphaBlend_Additive_Soft;
	Diffuse = "Textures/Fx/SymmetricGradient_02.png";
	TextureUField = "LifeRatio";
	ColorField = "ColorRibbon";
	WidthField = "SizeRibbon";
}
CParticleAttributeDeclaration	$LOCAL$/CParticleAttributeDeclaration_2C454FD5
{
	AttributeName = "Flux";
	DefaultValueF4 = float4(1.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000);
	HasMin = true;
	MaxValueF4 = float4(1.0000000e+001, 1.0000000e+000, 1.0000000e+000, 1.0000000e+000);
	MaxValueI4 = int4(10, 10, 10, 10);
}
CParticleEventDeclaration	$LOCAL$/CParticleEventDeclaration_7F5E9EB3
{
	EditorInfosPosition = int2(-863, 331);
	EventName = "Smoke";
	EventAction = "$LOCAL$/Smoke";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_2C73B50C
{
	EditorInfosPosition = int2(-866, -697);
	FieldName = "Color";
	FieldType = float4;
}
CParticleSamplerCurve	$LOCAL$/CParticleSamplerCurve_DB087A38
{
	SamplerName = "RibbonIntensityCurve";
	Times = 
	{
		0.0000000e+000,
		4.9999997e-002,
		5.2998996e-001,
		1.0000000e+000,
	};
	FloatValues = 
	{
		0.0000000e+000,
		1.0000000e+000,
		0.0000000e+000,
		0.0000000e+000,
	};
	FloatTangents = 
	{
		0.0000000e+000,
		2.9398711e+000,
		0.0000000e+000,
		0.0000000e+000,
		0.0000000e+000,
		0.0000000e+000,
		0.0000000e+000,
		0.0000000e+000,
	};
	MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000);
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_F90C3867
{
	EditorInfosPosition = int2(-866, -551);
	FieldName = "StartTextureID";
}
CParticleRenderer_Billboard	$LOCAL$/CParticleRenderer_Billboard_051AFFA6
{
	DrawOrder = 10;
	BillboardingMaterial = AlphaBlend_Additive_Soft;
	Diffuse = "Textures/Fx/Fire_01.png";
	AtlasDefinition = "Textures/Fx/Fire_01.pkat";
	SoftAnimationBlending = true;
}
CActionFactoryParticleSpawnerBase	$LOCAL$/Smoke
{
	EditorInfosPosition = int2(-696, 203);
	Descriptor = "$LOCAL$/CParticleDescriptor_77BB3C2C";
}
CParticleDescriptor	$LOCAL$/CParticleDescriptor_77BB3C2C
{
	EditorInfosPosition = int2(-790, 210);
	Renderer = "$LOCAL$/CParticleRenderer_Billboard_AB7E8C06";
	CustomFields = 
	{
		"$LOCAL$/CParticleFieldDeclaration_4744248E",
		"$LOCAL$/CParticleFieldDeclaration_B94399A4",
		"$LOCAL$/CParticleFieldDeclaration_FB230C02",
	};
	SpawnEvaluator = "$LOCAL$/CCompilerSyntaxNodeExpression_09749A3F";
	States = 
	{
		"$LOCAL$/CParticleState_3EEE92B1",
	};
}
CParticleRenderer_Billboard	$LOCAL$/CParticleRenderer_Billboard_AB7E8C06
{
	EditorInfosPosition = int2(-972, 22);
	DrawOrder = 11;
	BillboardingMaterial = AlphaBlend_Additive_Soft;
	Diffuse = "Textures/Fx/Smoke_03.png";
	AtlasDefinition = "Textures/Fx/AtlasX2.pkat";
	SoftAnimationBlending = true;
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_4744248E
{
	EditorInfosPosition = int2(-974, 121);
	FieldName = "Color";
	FieldType = float4;
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_B94399A4
{
	EditorInfosPosition = int2(-974, 215);
	FieldName = "SizeCoeff";
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_09749A3F
{
	EditorInfosPosition = int2(-972, 485);
	Expression = "function void	Eval()
{
	Life = rand(0.25,1);
	
	Velocity = vrand().x0z * 2;
	Rotation = rand(-pi, pi);

	TextureID = ninja * 4;
	SizeCoeff = Power;
}
";
}
CParticleState	$LOCAL$/CParticleState_3EEE92B1
{
	EditorInfosPosition = int2(-988, 606);
	StateName = "State_0";
	Evolvers = 
	{
		"$LOCAL$/CParticleEvolver_Physics_5A64EAB0",
		"$LOCAL$/CParticleEvolver_Script_0FC3FBF8",
	};
}
CParticleEvolver_Physics	$LOCAL$/CParticleEvolver_Physics_5A64EAB0
{
	EditorInfosPosition = int2(-1076, 615);
	ConstantAcceleration = float3(0.0000000e+000, 1.0000000e+001, 0.0000000e+000);
	Drag = 1.0000000e+000;
}
CParticleEvolver_Script	$LOCAL$/CParticleEvolver_Script_0FC3FBF8
{
	EditorInfosPosition = int2(-1076, 677);
	Expression = "$LOCAL$/CCompilerSyntaxNodeExpression_D3B08ADB";
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_D3B08ADB
{
	EditorInfosPosition = int2(-1149, 705);
	Expression = "function void	Eval()
{
	float	alpha = (1 - pow(LifeRatio, 2));
	float3	smokeColor = float3(0.05);

	Color = float4(smokeColor, 1) * alpha;
	
	Size = LifeRatio * SizeCoeff;
}
";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_33C92B6F
{
	FieldName = "X";
}
CParticleSpatialLayerList	$LOCAL$/CParticleSpatialLayerList_45B77F40
{
	LayerList = 
	{
		"$LOCAL$/CParticleSpatialDescriptor_CAA86F03",
	};
}
CParticleSpatialDescriptor	$LOCAL$/CParticleSpatialDescriptor_CAA86F03
{
	Global = true;
	LayerName = "Flame";
	CustomFields = 
	{
		"$LOCAL$/CParticleFieldDeclaration_1474C86C",
	};
}
CParticleEvolver_SpatialInsertion	$LOCAL$/Evolver_1
{
	SpatialLayer = "$LOCAL$/CParticleSpatialDescriptor_CAA86F03";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_1474C86C
{
	FieldName = "Heat";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_ED59999F
{
	FieldName = "Heat";
}
CParticleSamplerCurve	$LOCAL$/CParticleSamplerCurve_708AA483
{
	SamplerName = "LerpCurve";
	Times = 
	{
		0.0000000e+000,
		5.8490567e-002,
		1.0000000e+000,
	};
	FloatValues = 
	{
		0.0000000e+000,
		1.0000000e+000,
		1.0000000e+000,
	};
	FloatTangents = 
	{
		0.0000000e+000,
		1.2675617e+000,
		0.0000000e+000,
		0.0000000e+000,
		0.0000000e+000,
		0.0000000e+000,
	};
	MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000);
	MaxLimits = float4(1.0000000e+000, 1.0000000e+000, 1.0000000e+000, 1.0000000e+000);
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_FB230C02
{
	FieldName = "Rotation";
}
