<?xml version="1.0"?>
<ItemRenderer>
	<Data>
		<Sprite name="Sprite26" fileName="game/player_cosmetics3.rttex" textureSize="32" frame="24,29" />
		<Sprite name="s_muzzle" fileName="game/particles12.rttex" textureSize="32" frame="31,2" />
		<Sprite name="s_punch" fileName="game/particles12.rttex" textureSize="32" frame="30,3" />
		<Animations />
		<StateMachines>
			<StateMachine name="Action">
				<States>
					<State name="None" />
					<State name="Punch" />
				</States>
				<Transitions>
					<Transition to="None" from="Punch">
						<Condition>
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition to="Punch" from="None">
						<Condition>
							<IsAction>PUNCH</IsAction>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
		</StateMachines>
		<ParticleSystems>
			<ParticleSystem name="MuzzleFlash1" updateStage="RenderBackHandItem" updateState="Action.Punch" renderStage="RenderBackHandItem">
				<Emitter attachment="handspotRoot" onPunchCount="odd">
					<Set name="offset">0, 25</Set>
					<Set name="lifeTime">0.3</Set>
					<Set name="emissionInterval">0.05</Set>
					<Set name="infParticles">true</Set>
					<Set name="checkParticleNumToEmit">true</Set>
					<Set name="particlesPerEmission">1</Set>
					<Set name="particlesToEmit">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_muzzle</Set>
					<Set name="inSpecificOrder">true</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="lifeTime">0.15</Set>
					<Set name="initialAngle">90</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="Punch1" updateStage="RenderBackHandItem" updateState="Action.Punch">
				<Emitter attachment="handspotRoot" onPunchCount="odd">
					<Set name="offset">0, 4</Set>
					<Set name="lifeTime">0.3</Set>
					<Set name="emissionInterval">0.05</Set>
					<Set name="infParticles">true</Set>
					<Set name="checkParticleNumToEmit">true</Set>
					<Set name="particlesPerEmission">1</Set>
					<Set name="particlesToEmit">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_punch</Set>
					<Set name="blendingMode">ADDITIVE</Set>
					<Set name="lifeTime">0.4</Set>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="1"/>
					<Set name="initialAngle">90</Set>
					<Set name="flipY" source="punch.flipY"/>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="MuzzleFlash2" updateStage="RenderHandItem" updateState="Action.Punch" renderStage="RenderHandItem">
				<Emitter attachment="handspotRoot" onPunchCount="even">
					<Set name="offset">0, 25</Set>
					<Set name="lifeTime">0.3</Set>
					<Set name="emissionInterval">0.05</Set>
					<Set name="infParticles">true</Set>
					<Set name="checkParticleNumToEmit">true</Set>
					<Set name="particlesPerEmission">1</Set>
					<Set name="particlesToEmit">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_muzzle</Set>
					<Set name="inSpecificOrder">true</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="lifeTime">0.15</Set>
					<Set name="initialAngle">90</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="Punch2" updateStage="RenderHandItem" updateState="Action.Punch">
				<Emitter attachment="handspotRoot" onPunchCount="even">
					<Set name="offset">0, 4</Set>
					<Set name="lifeTime">0.3</Set>
					<Set name="emissionInterval">0.05</Set>
					<Set name="infParticles">true</Set>
					<Set name="checkParticleNumToEmit">true</Set>
					<Set name="particlesPerEmission">1</Set>
					<Set name="particlesToEmit">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_punch</Set>
					<Set name="blendingMode">ADDITIVE</Set>
					<Set name="lifeTime">0.4</Set>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="1"/>
					<Set name="initialAngle">90</Set>
					<Set name="flipY" source="punch.flipY"/>
				</Particle>
			</ParticleSystem>
		</ParticleSystems>
		<RenderOptions>
			<Default>
				<Set name="RenderBackArmInfected">true</Set>
				<Set name="RenderFrontArmInfected">true</Set>
				<Set name="IncludeAllActions">true</Set>
			</Default>
		</RenderOptions>
		<VariableMap>
			<Set name="punch.flipY">false</Set>
		</VariableMap>
	</Data>
	<RenderRules>
		<RenderHandItem>
			<SpriteRender name="Sprite26" drawShadow="true" blend="PREMULTIPLIED_ALPHA" alignment="UPPER_CENTER" />
		</RenderHandItem>
		<RenderFrontArm>
			<ContextUpdate type="PositionSinPulse" onState="Action.Punch">
				<Set name="period">200</Set>
				<Set name="scale">-2</Set>
				<Set name="clamp">true</Set>
			</ContextUpdate>
		</RenderFrontArm>
		<RenderBackArm>
			<ContextUpdate type="PositionSinPulse" onState="Action.Punch">
				<Set name="period">-200</Set>
				<Set name="scale">-2</Set>
				<Set name="clamp">true</Set>
			</ContextUpdate>
		</RenderBackArm>
		<RenderBackHandItem>
			<StopIf>
				<IsAction>BUILD</IsAction>
			</StopIf>
			<Translate>-2,-5,0</Translate>
			<Group onState="Action.Punch">
				<StopIf>
					<IsZombified>true</IsZombified>
				</StopIf>
				<SpriteRender name="Sprite26" drawShadow="true" blend="PREMULTIPLIED_ALPHA" alignment="UPPER_CENTER" />
			</Group>
			<Group onState="Action.None">
				<SpriteRender name="Sprite26" drawShadow="true" blend="PREMULTIPLIED_ALPHA" alignment="UPPER_CENTER" />
			</Group>
		</RenderBackHandItem>
 		<OnPunchStart>
			<ArithmethicOperation LeftHandVariableName="punch.flipY" RightHandVariableName="false" OperationType="Set" />
			<StopIf>
				<IsFacingLeft>false</IsFacingLeft>
			</StopIf>
			<ArithmethicOperation LeftHandVariableName="punch.flipY" RightHandVariableName="true" OperationType="Set" />
		</OnPunchStart>
		<OnPunchUpdate>
			<AvatarTransform class="Face">
				<Set name="face">MAD</Set>
			</AvatarTransform>
			<AvatarTransform class="ArmAngle">
				<Set name="armName">arm2Angle</Set>
				<Set name="pointTowardsPunchTarget">true</Set>
			</AvatarTransform>
			<AvatarTransform class="ArmAngle">
				<Set name="armName">arm1Angle</Set>
				<Set name="pointTowardsPunchTarget">true</Set>
			</AvatarTransform>
		</OnPunchUpdate>
	</RenderRules>
</ItemRenderer>
