<?xml version="1.0" ?>
<ItemRenderer>
    <Data>
        <Sprite name="s_Equaliser" fileName="game/particles_large17.rttex" textureSize="64,64" frame="0,8" />
		<Sprite name="s_JumpDouble" fileName="game/particles_large17.rttex" textureSize="64,64" frame="0,8" />
        <Sprite name="s_Punch" fileName="game/particles_large17.rttex" textureSize="64,64" frame="14,8" />
        <Animations>
            <SpriteAnimation name="a_Low" sprite="s_Equaliser" isLoop="true" playOnState="Equalizer.Low" animTime="1200">
                <Frame>0,8</Frame>
                <Frame>1,8</Frame>
                <Frame>2,8</Frame>
                <Frame>3,8</Frame>
                <Frame>4,8</Frame>
                <Frame>5,8</Frame>
            </SpriteAnimation>
            <SpriteAnimation name="a_Medium" sprite="s_Equaliser" isLoop="true" playOnState="Equalizer.Medium" animTime="800">
                <Frame>6,8</Frame>
                <Frame>7,8</Frame>
                <Frame>8,8</Frame>
                <Frame>9,8</Frame>
            </SpriteAnimation>
            <SpriteAnimation name="a_High" sprite="s_Equaliser" isLoop="true" playOnState="Equalizer.High" animTime="800">
                <Frame>10,8</Frame>
                <Frame>11,8</Frame>
                <Frame>12,8</Frame>
                <Frame>13,8</Frame>
            </SpriteAnimation>
			<SpriteAnimation name="a_JumpDouble" sprite="s_JumpDouble" isLoop="true" playOnState="Equalizer.High" animTime="800">
                <Frame>10,8</Frame>
                <Frame>11,8</Frame>
                <Frame>12,8</Frame>
                <Frame>13,8</Frame>
            </SpriteAnimation>
        </Animations>
        <ParticleSystems>
			<ParticleSystem name="ps_PunchTarget1">
				<Emitter attachment="targetPos">
					<Set name="offset">0,0</Set>
					<Set name="offsetFacing">true</Set>
					<Set name="emissionInterval">0.2</Set>
					<Set name="particlesPerEmission">1</Set>
					<Set name="particlesToEmit">1</Set>
					<Set name="checkParticleNumToEmit">true</Set>
					<Set name="lifeTime">0.3</Set>
					<Set name="infParticles">true</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_Punch</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="lifeTime">0.3</Set>
					<Curve name="initialScale">
						<KeyFrame>0, 0.5,0.5</KeyFrame>
						<KeyFrame>1, 2,2</KeyFrame>
					</Curve>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Random name="variantId" min="0" max="3" />
					<SetVar name="variantIdVar" source="variantId"/>
					<Select name="initalRGB" input="variantId">
						<Item>1, 0, 1</Item>
						<Item>1, 1, 0</Item>
						<Item>0, 1, 0</Item>
					</Select>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_PunchTarget2">
				<Emitter attachment="targetPos">
					<Set name="offset">0,0</Set>
					<Set name="offsetFacing">true</Set>
					<Set name="emissionInterval">0.2</Set>
					<Set name="particlesPerEmission">1</Set>
					<Set name="particlesToEmit">1</Set>
					<Set name="checkParticleNumToEmit">true</Set>
					<Set name="lifeTime">0.3</Set>
					<Set name="infParticles">true</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_Punch</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="lifeTime">0.3</Set>
					<Curve name="initialScale">
						<KeyFrame>0, 0.15,0.15</KeyFrame>
						<KeyFrame>1, 1,1</KeyFrame>
					</Curve>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="variantId" source="variantIdVar"/>
					<Select name="initalRGB" input="variantId">
						<Item>1, 0, 1</Item>
						<Item>1, 1, 0</Item>
						<Item>0, 1, 0</Item>
					</Select>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_JumpDouble">
				<Emitter>
					<Set name="offset">0,32</Set>
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle randomSpriteFrame="true">
					<Set name="sprite">s_JumpDouble</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="lifeTime">0.4</Set>
					<Set name="flipY">true</Set>
					<Set name="relativeToEmitter">true</Set>
				</Particle>
			</ParticleSystem>
		</ParticleSystems>
        <VariableMap>
			<Set name="variantIdVar" ForceFloats="false">0</Set>
		</VariableMap>
        <StateMachines>
			<StateMachine name="Equalizer">
				<States>
					<State name="Low" />
					<State name="Medium" />
					<State name="High" />
				</States>
				<Transitions>
					<Transition to="Low" from="Medium|High">
						<Condition type="and">
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
							<IsAction operatorType="NotEqual">JUMP</IsAction>
							<IsAction operatorType="NotEqual">JUMPDOUBLE</IsAction>
							<IsAction operatorType="NotEqual">FALL</IsAction>
						</Condition>
					</Transition>
					<Transition to="Medium" from="Low|High">
						<Condition type="and">
							<SubCondition type="or">
								<IsAction>JUMP</IsAction>
								<IsAction>JUMPDOUBLE</IsAction>
								<IsAction>FALL</IsAction>
							</SubCondition>
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition to="High" from="Low|Medium">
						<Condition>
							<IsAction>PUNCH</IsAction>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
			<StateMachine name="Punch">
				<States>
					<State name="No"/>
					<State name="Yes"/>
				</States>
				<Transitions>
					<Transition to="No" from="Yes">
						<Condition>
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition to="Yes" from="No">
						<Condition>
							<IsAction>PUNCH</IsAction>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
		</StateMachines>
        <RenderOptions>
			<Default>
				<Set name="IgnorePunchTypeCheck">true</Set>
			</Default>
		</RenderOptions>
    </Data>
    <RenderRules>
        <RenderBackpack>
            <SpriteRender name="s_Equaliser" blend="PREMULTIPLIED_ALPHA" alignment="DOWN_CENTER" drawShadow="false" />
        </RenderBackpack>
		<Update>
			<ParticleSystemUpdate name="ps_PunchTarget1" onState="Punch.Yes"/>
			<ParticleSystemUpdate name="ps_PunchTarget2" onState="Punch.Yes"/>
		</Update>
		<AddClothingParticles>
			<ParticleSystemUpdate name="ps_JumpDouble" onAction="JUMPDOUBLE"/>
		</AddClothingParticles>
    </RenderRules>
</ItemRenderer>
