Version = 1.9.4.30080; CParticleEffect $LOCAL$/Resource { EditorInfosPosition = int2(73, 52); OnSpawn = "$LOCAL$/Spawner"; CustomAttributes = "$LOCAL$/_GlobalAttributes"; Autostart = true; } CActionFactoryParticleSpawnerBase $LOCAL$/Counter { EditorInfosPosition = int2(-288, -61); Descriptor = "$LOCAL$/CParticleDescriptor_AE135B2A"; DurationInSeconds = 1.0000000e-003; SpawnCountMode = TotalParticleCount; SpawnCount = 5.0000000e+000; FirstSpawnDelay = 5.0000000e-001; } CParticleDescriptor $LOCAL$/CParticleDescriptor_AE135B2A { EditorInfosPosition = int2(-392, -44); Renderer = "$LOCAL$/CParticleRenderer_Billboard_CCF3F9A5"; CustomFields = { "$LOCAL$/CParticleFieldDeclaration_ABFAB774", "$LOCAL$/CParticleFieldDeclaration_2708A391", "$LOCAL$/CParticleFieldDeclaration_44F71A8B", "$LOCAL$/CParticleFieldDeclaration_F79636AA", "$LOCAL$/CParticleFieldDeclaration_5A785C66", "$LOCAL$/CParticleFieldDeclaration_F20BC64B", "$LOCAL$/CParticleFieldDeclaration_A36E6D6A", }; Samplers = { "$LOCAL$/CParticleSamplerCurve_6FA29F33", "$LOCAL$/CParticleSamplerCurve_5208EF37", "$LOCAL$/CParticleSamplerCurve_017C52A1", "$LOCAL$/CParticleSamplerCurve_BEFBA82A", "$LOCAL$/CParticleSamplerCurve_2BC8AA39", }; SpawnEvaluator = "$LOCAL$/CCompilerSyntaxNodeExpression_5566F5E7"; States = { "$LOCAL$/CParticleState_B9A83643", }; } CActionFactoryWithChilds $LOCAL$/Spawner { EditorInfosPosition = int2(-162, -81); ChildList = { "$LOCAL$/Counter", "$LOCAL$/Effective", }; } CCompilerSyntaxNodeExpression $LOCAL$/CCompilerSyntaxNodeExpression_5566F5E7 { EditorInfosPosition = int2(-508, 22); Expression = "function void Eval() { float spawnCount = 5; // must match the spawner\'s \'SpawnCount\' property float particleId = floor(spawner.LifeRatio * spawnCount); digitId = int(spawnCount - 1 - particleId); DigitFactor = int(pow(10, digitId)); Digit = digitId; TextureID = 0; ValueBuffer = Value; RGBBuffer = RGB; Digit = particleId; TextureID = 0; Life = 2; SizeRatioBuffer = SizeRatio * 0.5; Size = 1 * SizeRatioBuffer; int alignCount = select(0, select(1, select(2, select(3,4, (ValueBuffer >= 10000)), (ValueBuffer >= 1000)), (ValueBuffer >= 100)), (ValueBuffer >= 10)); Position = float3((Digit * (Size * 2)) + (alignCount * (Size)) - 8 * SizeRatioBuffer,-1 * SizeRatioBuffer,0); Position = Position + WiggleVec; } "; } CParticleAttributeList $LOCAL$/_GlobalAttributes { EditorInfosPosition = int2(-599, -20); AttributeList = { "$LOCAL$/CParticleAttributeDeclaration_ADA781AB", "$LOCAL$/CParticleAttributeDeclaration_5C4C877F", "$LOCAL$/CParticleAttributeDeclaration_96B84472", "$LOCAL$/CParticleAttributeDeclaration_A3472A57", "$LOCAL$/CParticleAttributeDeclaration_E3BAC177", "$LOCAL$/CParticleAttributeDeclaration_C820BAE4", }; } CParticleAttributeDeclaration $LOCAL$/CParticleAttributeDeclaration_5C4C877F { AttributeName = "Value"; DefaultValueF4 = float4(9.9999000e+004, 7.3939565e+003, 4.9917007e+003, 2.0278772e+002); HasMin = true; HasMax = true; MaxValueF4 = float4(9.9999000e+004, 9.9990000e+003, 9.9990000e+003, 9.9990000e+003); MaxValueI4 = int4(10, 10, 10, 10); } CParticleSamplerCurve $LOCAL$/CParticleSamplerCurve_6FA29F33 { SamplerName = "CountScaler"; Times = { 0.0000000e+000, 1.4999999e-001, 1.0000000e+000, }; FloatValues = { 1.0000000e+000, 1.0000000e+000, 6.8535805e-003, }; FloatTangents = { 0.0000000e+000, 5.9798788e-003, 0.0000000e+000, 0.0000000e+000, -1.5446687e+000, 0.0000000e+000, }; MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); } CParticleAttributeDeclaration $LOCAL$/CParticleAttributeDeclaration_96B84472 { AttributeName = "RGB"; AttributeType = float3; DefaultValueF4 = float4(1.0000000e+000, 1.0000000e+000, 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); } CParticleSamplerCurve $LOCAL$/CParticleSamplerCurve_5208EF37 { SamplerName = "CountDigit"; Interpolator = Linear; Times = { 0.0000000e+000, 1.5000001e-001, 1.0000000e+000, }; FloatValues = { 0.0000000e+000, 1.0000000e+000, 1.0000000e+000, }; MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); } CParticleRenderer_Billboard $LOCAL$/CParticleRenderer_Billboard_CCF3F9A5 { CustomName = "Billboard"; BillboardingMaterial = AlphaBlend; Diffuse = "Textures/FX/DamageCounterAtlas.png"; AtlasDefinition = "Textures/FX/DamageCounterAtlas.pkat"; AxisField = "AxisUp"; Axis2Field = "AxisNormal"; AxisScale = 1.0000000e+000; } CCompilerSyntaxNodeExpression $LOCAL$/CCompilerSyntaxNodeExpression_DE935980 { Expression = "function void Eval() { } "; } CParticleState $LOCAL$/CParticleState_B9A83643 { StateName = "State_0"; Evolvers = { "$LOCAL$/Script_1", }; } CParticleEvolver_Script $LOCAL$/Script_1 { CustomName = "Script"; Expression = "$LOCAL$/CCompilerSyntaxNodeExpression_1EDE0DAD"; } CCompilerSyntaxNodeExpression $LOCAL$/CCompilerSyntaxNodeExpression_1EDE0DAD { Expression = "function void Eval() { // extract digit in the [0, 9] range int value = int(ValueBuffer * CountDigit.sample(LifeRatio)); int digit = (value / DigitFactor) % 10; int digitCount = select(1,select(2,select(3,select(4,5,(value / 10000) > 0),(value / 1000) > 0),(value / 100) > 0),(value / 10) > 0); int colorRatio = select(0,1, (digitCount > digitId)); TextureID = 1 + digit; float3 currentColor = RGBBuffer * pow(PowScaler.sample(LifeRatio),1.5) * 5; Color = float4(currentColor.r, currentColor.g ,currentColor.b ,1 * CountScaler.sample(LifeRatio)) * colorRatio; Position = float3(Position.r,Position.g + (3 * SizeRatioBuffer * dt) * PositionScaler.sample(LifeRatio),Position.b); } "; } CParticleFieldDeclaration $LOCAL$/CParticleFieldDeclaration_ABFAB774 { FieldName = "Digit"; } CParticleFieldDeclaration $LOCAL$/CParticleFieldDeclaration_2708A391 { FieldName = "Color"; FieldType = float4; } CParticleAttributeDeclaration $LOCAL$/CParticleAttributeDeclaration_ADA781AB { AttributeName = "SizeRatio"; DefaultValueF4 = float4(1.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); HasMin = true; HasMax = true; MaxValueF4 = float4(1.0000000e+001, 1.0000000e+000, 1.0000000e+000, 1.0000000e+000); MaxValueI4 = int4(10, 10, 10, 10); } CActionFactoryParticleSpawnerBase $LOCAL$/Effective { Descriptor = "$LOCAL$/CParticleDescriptor_78ED1C4A"; DurationInSeconds = 1.0000000e+000; } CParticleDescriptor $LOCAL$/CParticleDescriptor_78ED1C4A { Renderer = "$LOCAL$/CParticleRenderer_Billboard_5181DCBC"; CustomFields = { "$LOCAL$/CParticleFieldDeclaration_503A3206", "$LOCAL$/CParticleFieldDeclaration_42F9F0C7", "$LOCAL$/CParticleFieldDeclaration_B83CBAA8", }; Samplers = { "$LOCAL$/CParticleSamplerCurve_EBCA4539", "$LOCAL$/CParticleSamplerCurve_F89AE5B3", "$LOCAL$/CParticleSamplerCurve_91AE325B", }; SpawnEvaluator = "$LOCAL$/CCompilerSyntaxNodeExpression_B6926BD5"; States = { "$LOCAL$/CParticleState_42371C2F", }; } CCompilerSyntaxNodeExpression $LOCAL$/CCompilerSyntaxNodeExpression_B6926BD5 { Expression = "function void Eval() { Life = select(0,2,IsEffective >= 1); Size = 4 * SizeRatio; SizeRatioBuffer = SizeRatio; TextureID = 11; EffectiveRGBBuffer = EffectiveRGB; Position = float3(0,-1 * SizeRatio,0); } "; } CParticleRenderer_Billboard $LOCAL$/CParticleRenderer_Billboard_5181DCBC { CustomName = "Billboard"; BillboardingMaterial = AlphaBlend; Diffuse = "Textures/FX/DamageCounterAtlas.png"; AtlasDefinition = "Textures/FX/DamageCounterAtlas.pkat"; AspectRatio = 4.0000000e+000; AxisField = "AxisUp"; Axis2Field = "AxisNormal"; AxisScale = 3.0000000e+000; } CParticleSamplerCurve $LOCAL$/CParticleSamplerCurve_EBCA4539 { SamplerName = "SizeScaler"; Times = { 0.0000000e+000, 2.4355963e-002, 1.6915630e-001, 1.0000000e+000, }; FloatValues = { -3.6398053e-002, 2.0451326e+000, 1.3082646e+000, 1.0000000e+000, }; FloatTangents = { 0.0000000e+000, 1.0317829e-001, 0.0000000e+000, 0.0000000e+000, -7.1222752e-002, -4.0866598e-001, 0.0000000e+000, 0.0000000e+000, }; MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); } CParticleState $LOCAL$/CParticleState_42371C2F { StateName = "State_0"; Evolvers = { "$LOCAL$/Script_2", }; } CParticleEvolver_Script $LOCAL$/Script_2 { CustomName = "Script"; Expression = "$LOCAL$/CCompilerSyntaxNodeExpression_CC9EE573"; } CCompilerSyntaxNodeExpression $LOCAL$/CCompilerSyntaxNodeExpression_CC9EE573 { Expression = "function void Eval() { Size = SizeScaler.sample(LifeRatio) * SizeRatioBuffer * 2.5; float3 nowColor = EffectiveRGBBuffer * pow(PowScaler.sample(LifeRatio),1.5) * 5; Color = float4(nowColor.r, nowColor.g, nowColor.b, 1 * AlphaScaler.sample(LifeRatio)); } "; } CParticleAttributeDeclaration $LOCAL$/CParticleAttributeDeclaration_C820BAE4 { AttributeName = "EffectiveRGB"; AttributeType = float3; DefaultValueF4 = float4(1.0000000e+000, 1.0000000e+000, 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); } CParticleAttributeDeclaration $LOCAL$/CParticleAttributeDeclaration_E3BAC177 { AttributeName = "IsEffective"; HasMin = true; HasMax = true; MaxValueF4 = float4(1.0000000e+000, 1.0000000e+000, 1.0000000e+000, 1.0000000e+000); MaxValueI4 = int4(1, 10, 10, 10); } CParticleFieldDeclaration $LOCAL$/CParticleFieldDeclaration_503A3206 { FieldName = "Color"; FieldType = float4; } CParticleSamplerCurve $LOCAL$/CParticleSamplerCurve_F89AE5B3 { SamplerName = "AlphaScaler"; Times = { 0.0000000e+000, 6.1971840e-002, 5.0417644e-001, 1.0000000e+000, }; FloatValues = { 0.0000000e+000, 1.0050679e+000, 2.5061363e-001, 3.0404329e-003, }; FloatTangents = { 0.0000000e+000, 0.0000000e+000, -9.9549599e-002, -7.1034342e-001, -4.0042052e-001, -4.4897300e-001, 0.0000000e+000, 0.0000000e+000, }; MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); } CParticleSamplerCurve $LOCAL$/CParticleSamplerCurve_017C52A1 { SamplerName = "PositionScaler"; Times = { 0.0000000e+000, 1.3387942e-001, 4.3303892e-001, 1.0000000e+000, }; FloatValues = { 8.7837130e-003, 1.0556037e+000, 6.0568529e-001, 5.9038198e-001, }; FloatTangents = { 0.0000000e+000, 8.0912089e-001, 0.0000000e+000, 0.0000000e+000, -7.9958864e-002, -1.5153642e-001, 0.0000000e+000, 0.0000000e+000, }; MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); } CParticleFieldDeclaration $LOCAL$/CParticleFieldDeclaration_42F9F0C7 { FieldName = "SizeRatioBuffer"; } CParticleFieldDeclaration $LOCAL$/CParticleFieldDeclaration_B83CBAA8 { FieldName = "EffectiveRGBBuffer"; FieldType = float3; } CParticleFieldDeclaration $LOCAL$/CParticleFieldDeclaration_44F71A8B { FieldName = "RGBBuffer"; FieldType = float3; } CParticleFieldDeclaration $LOCAL$/CParticleFieldDeclaration_F79636AA { FieldName = "ValueBuffer"; } CParticleSamplerCurve $LOCAL$/CParticleSamplerCurve_91AE325B { SamplerName = "PowScaler"; Times = { 0.0000000e+000, 9.8143883e-002, 2.6273492e-001, 1.0000000e+000, }; FloatValues = { -2.9802322e-008, 2.2768583e+000, 1.0343304e+000, -4.2200089e-005, }; FloatTangents = { 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, -1.5507212e-001, -6.9462633e-001, 0.0000000e+000, 0.0000000e+000, }; MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); } CParticleSamplerCurve $LOCAL$/CParticleSamplerCurve_BEFBA82A { SamplerName = "PowScaler"; Times = { 0.0000000e+000, 2.5912471e-002, 7.4472822e-002, 1.0813399e-001, 1.4977711e-001, 1.9108307e-001, 7.2358525e-001, 1.0000000e+000, }; FloatValues = { -2.9802322e-008, 5.9801555e+000, 5.9550467e+000, 2.2619810e+000, 1.2742829e+000, 1.2854443e+000, 9.7928166e-001, -4.2200089e-005, }; FloatTangents = { 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 5.9012314e-003, 7.6076642e-002, -8.7698895e-001, -4.5523325e-001, -1.0723122e+000, 0.0000000e+000, }; MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); } CParticleAttributeDeclaration $LOCAL$/CParticleAttributeDeclaration_A3472A57 { AttributeName = "WiggleVec"; AttributeType = float3; HasMin = true; HasMax = true; MaxValueF4 = float4(1.0000000e+002, 1.0000000e+002, 1.0000000e+002, 1.0000000e+000); MaxValueI4 = int4(10, 10, 10, 10); } CParticleFieldDeclaration $LOCAL$/CParticleFieldDeclaration_5A785C66 { FieldName = "SizeRatioBuffer"; } CParticleSamplerCurve $LOCAL$/CParticleSamplerCurve_2BC8AA39 { SamplerName = "SizeScaler"; Times = { 0.0000000e+000, 8.2965605e-002, 1.1842398e-001, 1.6704187e-001, 1.0000000e+000, }; FloatValues = { 5.0070963e+000, 8.4559309e-001, 1.4216506e+000, 1.0000000e+000, 1.0091280e+000, }; FloatTangents = { 0.0000000e+000, -2.8719206e+000, 1.0947915e+000, 4.6789899e-001, 0.0000000e+000, 0.0000000e+000, -3.9148447e-003, -6.7072049e-002, 9.1279745e-003, 0.0000000e+000, }; MinLimits = float4(0.0000000e+000, 0.0000000e+000, 0.0000000e+000, 0.0000000e+000); } CParticleFieldDeclaration $LOCAL$/CParticleFieldDeclaration_F20BC64B { FieldName = "DigitFactor"; FieldType = int; } CParticleFieldDeclaration $LOCAL$/CParticleFieldDeclaration_A36E6D6A { FieldName = "digitId"; FieldType = int; }