Version = 1.8.4.27161;
CParticleEffect	$LOCAL$/Resource
{
	EditorInfosPosition = int2(73, 52);
	OnSpawn = "$LOCAL$/Spawner";
	CustomAttributes = "$LOCAL$/_GlobalAttributes";
	Autostart = true;
}
CActionFactoryParticleSpawnerBase	$LOCAL$/OutLightning_pCoords
{
	EditorInfosPosition = int2(-288, -61);
	EditorInfosIsBlockMinimized = 0;
	Descriptor = "$LOCAL$/CParticleDescriptor_AE135B2A";
	Infinite = true;
	DurationInSeconds = 2.0000000e+000;
	FluxFactorExpression = "Flux";
}
CParticleDescriptor	$LOCAL$/CParticleDescriptor_AE135B2A
{
	EditorInfosPosition = int2(-392, -44);
	CustomFields = 
	{
		"$LOCAL$/CParticleFieldDeclaration_2FAA954C",
		"$LOCAL$/CParticleFieldDeclaration_3DDDE71F",
	};
	SpawnEvaluator = "$LOCAL$/CCompilerSyntaxNodeExpression_5566F5E7";
	States = 
	{
		"$LOCAL$/CParticleState_3AF8190E",
	};
}
CActionFactoryWithChilds	$LOCAL$/Spawner
{
	EditorInfosPosition = int2(-162, -81);
	ChildList = 
	{
		"$LOCAL$/OutLightning_pCoords",
		"$LOCAL$/InLightning_pCoords",
		"$LOCAL$/Other",
	};
}
CParticleAttributeDeclaration	$LOCAL$/CParticleAttributeDeclaration_86407B2A
{
	AttributeName = "RGB";
	AttributeType = float3;
	DefaultValueF4 = float4(2.5000000e-001, 5.0000000e-001, 1.0000000e+000, 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);
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_5566F5E7
{
	EditorInfosPosition = int2(-508, 22);
	Expression = "function void	Eval()
{
	Life = 0.25;
	
	//	An great use of parametric coordinates is to set it by the spawning position of every particles,
	//	with this you can use sampling in this place to set attributes linked by the surface of your sampler like the normal axis
	pCoords = Shape_0.sampleParametricCoords();
	Position=Shape_0.samplePosition(pCoords)*0.9*Scale;
	AxisUp=Shape_0.sampleNormal(pCoords);
}
";
}
CParticleState	$LOCAL$/CParticleState_3AF8190E
{
	EditorInfosPosition = int2(-508, 65);
	StateName = "State_0";
	Evolvers = 
	{
		"$LOCAL$/LocalSpace_6",
		"$LOCAL$/Trail_1",
	};
}
CParticleEvolver_Script	$LOCAL$/Script_3
{
	Expression = "$LOCAL$/CCompilerSyntaxNodeExpression_5F5E20FA";
}
CParticleAttributeList	$LOCAL$/_GlobalAttributes
{
	EditorInfosPosition = int2(-599, -20);
	AttributeList = 
	{
		"$LOCAL$/CParticleAttributeDeclaration_86407B2A",
		"$LOCAL$/CParticleAttributeDeclaration_ACB53148",
		"$LOCAL$/CParticleAttributeDeclaration_6D21C725",
		"$LOCAL$/CParticleAttributeDeclaration_E795E065",
	};
	SamplerList = 
	{
		"$LOCAL$/CParticleSamplerShape_B4A3F15A",
	};
}
CParticleSamplerShape	$LOCAL$/CParticleSamplerShape_B4A3F15A
{
	SamplerName = "Shape_0";
	Shape = "$LOCAL$/CShapeDescriptor_00485E25";
}
CShapeDescriptor	$LOCAL$/CShapeDescriptor_00485E25
{
	ShapeType = SPHERE;
	Radius = 2.0000000e+000;
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_5F5E20FA
{
	Expression = "function void	Eval()
{
	Size=(1-LifeRatio)*0.25*Scale;
	VelocityField=Turb_0.sample(Position/Scale);
}
";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_2FAA954C
{
	FieldName = "pCoords";
	FieldType = int3;
}
CParticleEvolver_Rotation	$LOCAL$/Evolver_3
{
}
CParticleEvolver_Script	$LOCAL$/Script_5
{
	Expression = "$LOCAL$/CCompilerSyntaxNodeExpression_67DDAB2D";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_3DDDE71F
{
	FieldName = "AxisUp";
	FieldType = float3;
	TransformFilter = rotate;
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_67DDAB2D
{
	Expression = "function void	Eval()
{
	Color=sin(LifeRatio*3)*Distortion;
}
";
}
CParticleEvolver_Spawner	$LOCAL$/Trail_1
{
	EditorInfosIsBlockMinimized = 0;
	SpawnMetric = Time;
	SpawnInterval = 3.9999999e-002;
	ForwardAxisField = "Axis";
	FirstSpawnDelay = 0.0000000e+000;
	LocalSpaceSpawn = true;
	Descriptor = "$LOCAL$/CParticleDescriptor_FB247043";
}
CParticleState	$LOCAL$/CParticleState_61782B80
{
	StateName = "State_0";
	Evolvers = 
	{
		"$LOCAL$/LocalSpace_7",
	};
}
CParticleDescriptor	$LOCAL$/CParticleDescriptor_FB247043
{
	Renderer = "$LOCAL$/CParticleRenderer_Ribbon_88AD4B47";
	CustomFields = 
	{
		"$LOCAL$/CParticleFieldDeclaration_D3592D0B",
		"$LOCAL$/CParticleFieldDeclaration_66AA7FEC",
		"$LOCAL$/CParticleFieldDeclaration_6ED3D8FF",
		"$LOCAL$/CParticleFieldDeclaration_AFC47789",
	};
	Samplers = 
	{
		"$LOCAL$/CParticleSamplerProceduralTurbulence_D13BE328",
	};
	SpawnEvaluator = "$LOCAL$/CCompilerSyntaxNodeExpression_0256E2C2";
	States = 
	{
		"$LOCAL$/CParticleState_61782B80",
	};
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_0256E2C2
{
	Expression = "function void	Eval()
{
	Life = 0.25*(1-spawner.LifeRatio);
	//	Associate with an evolver spawner you can make an hairy effect directed by the normal of the surface
	Velocity=(parent.AxisUp*10+vrand())*Scale;
	Color=spawner.LifeRatio*RGB.xyz1*10;
	TextureID=ninja*16;
	Mass=Scale;
}
";
}
CParticleRenderer_Ribbon	$LOCAL$/CParticleRenderer_Ribbon_88AD4B47
{
	BillboardingMaterial = Additive_Soft;
	Diffuse = "Textures/Fx/Lightning_05.dds";
	AtlasDefinition = "Textures/Fx/AtlasX4.pkat";
	TextureIDField = "TextureID";
}
CParticleEvolver_Physics	$LOCAL$/CParticleEvolver_Physics_BA79E974
{
	Mass = 0.0000000e+000;
	Drag = 1.0000000e+000;
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_66AA7FEC
{
	FieldName = "TextureID";
}
CParticleSamplerProceduralTurbulence	$LOCAL$/CParticleSamplerProceduralTurbulence_D13BE328
{
	SamplerName = "Turb_0";
	Scale = 1.5000000e+000;
	Strength = 5.0000000e+001;
	TimeScale = 1.0000000e+000;
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_D3592D0B
{
	FieldName = "Color";
	FieldType = float4;
}
CActionFactoryParticleSpawnerBase	$LOCAL$/Ball
{
	EditorInfosIsBlockMinimized = 0;
	Descriptor = "$LOCAL$/CParticleDescriptor_207FBFFE";
	Infinite = true;
	DurationInSeconds = 2.0000000e+000;
	SpawnCount = 2.0000000e+000;
}
CParticleDescriptor	$LOCAL$/CParticleDescriptor_207FBFFE
{
	Renderer = "$LOCAL$/CParticleRenderer_Mesh_31DAE3BD";
	CustomFields = 
	{
		"$LOCAL$/CParticleFieldDeclaration_4664FEE6",
		"$LOCAL$/CParticleFieldDeclaration_D58C74A1",
		"$LOCAL$/CParticleFieldDeclaration_1BDA079B",
	};
	SpawnEvaluator = "$LOCAL$/CCompilerSyntaxNodeExpression_26A73F99";
	States = 
	{
		"$LOCAL$/CParticleState_3D5454D3",
	};
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_26A73F99
{
	Expression = "function void	Eval()
{
	Life = 1.0;
	Size = 2*Scale;
	RotationInit=vrand()*pi;
}
";
}
CParticleRenderer_Mesh_Descriptor	$LOCAL$/CParticleRenderer_Mesh_Descriptor_687E3EC4
{
	Mesh = "Meshes/Geosphere.pkmm";
	Material = Additive_NoAlpha;
	MaterialParametersFields = 
	{
		"DiffuseColor = Color",
	};
	Diffuse = "Textures/EnergyBall_02.dds";
}
CParticleState	$LOCAL$/CParticleState_3D5454D3
{
	StateName = "State_0";
	Evolvers = 
	{
		"$LOCAL$/LocalSpace_1",
	};
}
CParticleEvolver_Localspace	$LOCAL$/LocalSpace_1
{
	ChildList = 
	{
		"$LOCAL$/Script_2",
	};
}
CParticleRenderer_Mesh	$LOCAL$/CParticleRenderer_Mesh_31DAE3BD
{
	Meshes = 
	{
		"$LOCAL$/CParticleRenderer_Mesh_Descriptor_687E3EC4",
	};
	ScaleField = "Size";
	EulerRotationField = "Rotation";
	RotationAxisAngleField = "";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_4664FEE6
{
	FieldName = "Size";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_D58C74A1
{
	FieldName = "Color";
	FieldType = float4;
}
CParticleEvolver_Script	$LOCAL$/Script_2
{
	Expression = "$LOCAL$/CCompilerSyntaxNodeExpression_71E8EF78";
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_71E8EF78
{
	Expression = "function void	Eval()
{
	Rotation=RotationInit+float3(0,scene.Time*10,0);
	Color=RGB.xyz1*sin(LifeRatio*3)*4;
}
";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_1BDA079B
{
	FieldName = "RotationInit";
	FieldType = float3;
	TransformFilter = full;
}
CParticleDescriptor	$LOCAL$/CParticleDescriptor_D8E1BE65
{
	EditorInfosPosition = int2(-392, -44);
	CustomFields = 
	{
		"$LOCAL$/CParticleFieldDeclaration_20D35A8C",
		"$LOCAL$/CParticleFieldDeclaration_1694863F",
		"$LOCAL$/CParticleFieldDeclaration_F01DDC2E",
		"$LOCAL$/CParticleFieldDeclaration_E2763880",
	};
	Samplers = 
	{
		"$LOCAL$/CParticleSamplerProceduralTurbulence_7110CCC0",
	};
	SpawnEvaluator = "$LOCAL$/CCompilerSyntaxNodeExpression_30AD0A83";
	States = 
	{
		"$LOCAL$/CParticleState_01226A02",
	};
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_20D35A8C
{
	FieldName = "pCoords";
	FieldType = int3;
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_1694863F
{
	FieldName = "AxisUp";
	FieldType = float3;
	TransformFilter = rotate;
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_F2B14DAF
{
	FieldName = "AxisUp";
	FieldType = float3;
	TransformFilter = rotate;
}
CActionFactoryWithChilds	$LOCAL$/Other
{
	ChildList = 
	{
		"$LOCAL$/Ball",
		"$LOCAL$/Glow",
		"$LOCAL$/Disto",
	};
}
CParticleSamplerProceduralTurbulence	$LOCAL$/CParticleSamplerProceduralTurbulence_7110CCC0
{
	SamplerName = "Turb_0";
	Scale = 2.0000000e+000;
	Strength = 1.0000000e+002;
	TimeScale = 1.0000000e+000;
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_30AD0A83
{
	EditorInfosPosition = int2(-508, 22);
	Expression = "function void	Eval()
{
	Life = 0.25;
	pCoords = Shape_0.sampleParametricCoords();
	Position=Shape_0.samplePosition(pCoords)*Scale;
	Mass=Scale;
}
";
}
CParticleState	$LOCAL$/CParticleState_01226A02
{
	EditorInfosPosition = int2(-508, 65);
	StateName = "State_0";
	Evolvers = 
	{
		"$LOCAL$/LocalSpace_4",
		"$LOCAL$/Trail_2",
	};
}
CParticleEvolver_Script	$LOCAL$/CParticleEvolver_Script_0F7E6FED
{
	Expression = "$LOCAL$/CCompilerSyntaxNodeExpression_1C55A6B4";
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_1C55A6B4
{
	Expression = "function void	Eval()
{
	//	In this case the sampling of the normal is set in realtime
	//	because the trail travel along the surface and we want to match the faces of the ribbon with the surface
	AxisUp=Shape_0.sampleNormal(pCoords);
	Position=Position*Scale;
	VelocityField=Turb_0.sample(Position/Scale);
}
";
}
CActionFactoryParticleSpawnerBase	$LOCAL$/InLightning_pCoords
{
	EditorInfosPosition = int2(-288, -61);
	EditorInfosIsBlockMinimized = 0;
	Descriptor = "$LOCAL$/CParticleDescriptor_D8E1BE65";
	Infinite = true;
	DurationInSeconds = 2.0000000e+000;
	FluxFactorExpression = "Flux";
}
CParticleEvolver_Projection	$LOCAL$/Evolver_1
{
	Shape = "Shape_0";
	OutputParametricCoordsField = "pCoords";
}
CParticleEvolver_Physics	$LOCAL$/Evolver_2
{
	Mass = 0.0000000e+000;
	Drag = 1.0000000e+000;
}
CParticleEvolver_Spawner	$LOCAL$/Trail_2
{
	EditorInfosIsBlockMinimized = 0;
	SpawnMetric = Time;
	SpawnInterval = 2.0000000e-002;
	LocalSpaceSpawn = true;
	Descriptor = "$LOCAL$/CParticleDescriptor_7A4351D2";
}
CParticleState	$LOCAL$/CParticleState_E8DB9F13
{
	StateName = "State_0";
	Evolvers = 
	{
		"$LOCAL$/LocalSpace_5",
	};
}
CParticleDescriptor	$LOCAL$/CParticleDescriptor_7A4351D2
{
	Renderer = "$LOCAL$/CParticleRenderer_Ribbon_35782C54";
	CustomFields = 
	{
		"$LOCAL$/CParticleFieldDeclaration_7F906BF6",
		"$LOCAL$/CParticleFieldDeclaration_42738008",
		"$LOCAL$/CParticleFieldDeclaration_F2B14DAF",
	};
	SpawnEvaluator = "$LOCAL$/CCompilerSyntaxNodeExpression_42CA8BFD";
	States = 
	{
		"$LOCAL$/CParticleState_E8DB9F13",
	};
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_42CA8BFD
{
	Expression = "function void	Eval()
{
	Life = 0.1;
	Size = 0.2*Scale;
	ColorCoeff=sin(spawner.LifeRatio*3)*RGB.xyz1*10;
	Position=vrand()*0.1*Scale;
	//	Simply add the normals information in the axis field of the ribbon and that\'s it!
	AxisUp=parent.AxisUp;
}
";
}
CParticleRenderer_Ribbon	$LOCAL$/CParticleRenderer_Ribbon_35782C54
{
	BillboardingMaterial = Additive_Soft;
	Diffuse = "Textures/Fx/Lightning_05.dds";
	AtlasDefinition = "Textures/Fx/AtlasX4.pkat";
	TextureIDField = "TextureID";
	AxisField = "AxisUp";
}
CParticleEvolver_Localspace	$LOCAL$/LocalSpace_5
{
	ChildList = 
	{
		"$LOCAL$/Script_4",
	};
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_7F906BF6
{
	FieldName = "Color";
	FieldType = float4;
}
CParticleEvolver_Script	$LOCAL$/Script_4
{
	Expression = "$LOCAL$/CCompilerSyntaxNodeExpression_3106DEF1";
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_3106DEF1
{
	Expression = "function void	Eval()
{
	Color=ColorCoeff*sin(LifeRatio*3);
}
";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_42738008
{
	FieldName = "ColorCoeff";
	FieldType = float4;
}
CActionFactoryParticleSpawnerBase	$LOCAL$/Glow
{
	EditorInfosIsBlockMinimized = 0;
	Descriptor = "$LOCAL$/CParticleDescriptor_29F3590A";
	Infinite = true;
	DurationInSeconds = 2.0000000e+000;
}
CParticleDescriptor	$LOCAL$/CParticleDescriptor_29F3590A
{
	Renderer = "$LOCAL$/CParticleRenderer_Billboard_766CC37C";
	CustomFields = 
	{
		"$LOCAL$/CParticleFieldDeclaration_C1FAB4F9",
	};
	SpawnEvaluator = "$LOCAL$/CCompilerSyntaxNodeExpression_32830795";
	States = 
	{
		"$LOCAL$/CParticleState_3A34A9EF",
	};
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_32830795
{
	Expression = "function void	Eval()
{
	Life = 1.0;
	Size = 2.1*Scale;
	Color=(RGB.xyz1*0.5+0.5)*0.2;
}
";
}
CParticleRenderer_Billboard	$LOCAL$/CParticleRenderer_Billboard_766CC37C
{
	Diffuse = "Textures/Fx/Glow_02.dds";
}
CParticleState	$LOCAL$/CParticleState_3A34A9EF
{
	StateName = "State_0";
	Evolvers = 
	{
		"$LOCAL$/LocalSpace_2",
	};
}
CParticleEvolver_Localspace	$LOCAL$/LocalSpace_2
{
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_C1FAB4F9
{
	FieldName = "Color";
	FieldType = float4;
}
CParticleDescriptor	$LOCAL$/CParticleDescriptor_78C6FECC
{
	Renderer = "$LOCAL$/CParticleRenderer_Billboard_E542DF7F";
	CustomFields = 
	{
		"$LOCAL$/CParticleFieldDeclaration_B49E24AE",
	};
	SpawnEvaluator = "$LOCAL$/CCompilerSyntaxNodeExpression_412E2A09";
	States = 
	{
		"$LOCAL$/CParticleState_C6F09D00",
	};
}
CParticleRenderer_Billboard	$LOCAL$/CParticleRenderer_Billboard_E542DF7F
{
	BillboardingMaterial = AlphaBlend_Distortion;
	Diffuse = "Textures/Fx/Distortion_01.dds";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_B49E24AE
{
	FieldName = "Color";
	FieldType = float4;
}
CCompilerSyntaxNodeExpression	$LOCAL$/CCompilerSyntaxNodeExpression_412E2A09
{
	Expression = "function void	Eval()
{
	Life = 1.0;
	Size = 2.1*Scale;
	Color=1;
	Rotation=rand(-pi,pi);
	ScalarRotationSpeed=rand(-2,2);
}
";
}
CParticleState	$LOCAL$/CParticleState_C6F09D00
{
	StateName = "State_0";
	Evolvers = 
	{
		"$LOCAL$/LocalSpace_3",
	};
}
CParticleEvolver_Localspace	$LOCAL$/LocalSpace_3
{
	ChildList = 
	{
		"$LOCAL$/Evolver_3",
		"$LOCAL$/Script_5",
	};
}
CActionFactoryParticleSpawnerBase	$LOCAL$/Disto
{
	EditorInfosIsBlockMinimized = 0;
	Descriptor = "$LOCAL$/CParticleDescriptor_78C6FECC";
	Infinite = true;
	DurationInSeconds = 2.0000000e+000;
	SpawnCount = 2.0000000e+000;
}
CParticleEvolver_Localspace	$LOCAL$/LocalSpace_4
{
	ChildList = 
	{
		"$LOCAL$/Evolver_2",
		"$LOCAL$/Evolver_1",
		"$LOCAL$/CParticleEvolver_Script_0F7E6FED",
	};
}
CParticleEvolver_Localspace	$LOCAL$/LocalSpace_6
{
}
CParticleEvolver_Localspace	$LOCAL$/LocalSpace_7
{
	ChildList = 
	{
		"$LOCAL$/CParticleEvolver_Physics_BA79E974",
		"$LOCAL$/Script_3",
	};
}
CParticleAttributeDeclaration	$LOCAL$/CParticleAttributeDeclaration_ACB53148
{
	AttributeName = "Flux";
	DefaultValueF4 = float4(4.0000000e+002, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000);
	HasMin = true;
	MaxValueF4 = float4(1.0000000e+003, 1.0000000e+000, 1.0000000e+000, 1.0000000e+000);
	MaxValueI4 = int4(10, 10, 10, 10);
}
CParticleAttributeDeclaration	$LOCAL$/CParticleAttributeDeclaration_6D21C725
{
	AttributeName = "Scale";
	DefaultValueF4 = float4(1.0000000e+000, 0.0000000e+000, 0.0000000e+000, 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);
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_6ED3D8FF
{
	FieldName = "Mass";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_F01DDC2E
{
	FieldName = "Mass";
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_AFC47789
{
	FieldName = "VelocityField";
	FieldType = float3;
}
CParticleFieldDeclaration	$LOCAL$/CParticleFieldDeclaration_E2763880
{
	FieldName = "VelocityField";
	FieldType = float3;
}
CParticleAttributeDeclaration	$LOCAL$/CParticleAttributeDeclaration_E795E065
{
	AttributeName = "Distortion";
	DefaultValueF4 = float4(1.0000000e+000, 0.0000000e+000, 0.0000000e+000, 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);
}