<?xml version="1.0"?>
<ItemRenderer>
	<Data>
		<Sprite name="Sprite26_front" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="11,2" />
		<Sprite name="Sprite26_back" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="13,2" />
		<Sprite name="Sprite26_GLOW_front" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="12,2" />
		<Sprite name="s_muzzle" fileName="game/particles12.rttex" textureSize="32" frame="12,9" />
		<Sprite name="s_punch" fileName="game/particles_large16.rttex" textureSize="64" frame="8,9" />
		<Sprite name="s_punch_back" fileName="game/particles_large16.rttex" textureSize="64" frame="9,9" />
		<Sprite name="s_hitFlash" fileName="game/particles12.rttex" textureSize="32" frame="13,9" />
		<Animations>
			<SpriteCurveAnimation name="Sprite26_GLOWAnim" isLoop="true" sprite="Sprite26_GLOW_front" animTime="2000" autoPlay="true">
				<Curve name="alpha">
					<KeyFrame>0.f, 0.f</KeyFrame>
					<KeyFrame>0.2f, 0.f</KeyFrame>
					<KeyFrame>0.4f, 1.f</KeyFrame>
					<KeyFrame>0.8f, 1.f</KeyFrame>
					<KeyFrame>1.f, 0.f</KeyFrame>
				</Curve>
			</SpriteCurveAnimation>
			<SpriteAnimation name="a_hitFlash" sprite="s_hitFlash" animTime="400" autoPlay="true">
				<Frame>13,9</Frame>
				<Frame>14,9</Frame>
				<Frame>15,9</Frame>
				<Frame>16,9</Frame>
			</SpriteAnimation>
		</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">-4, 0</Set>
					<Set name="particlesPerEmission">1</Set>
					<Set name="particlesToEmit">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_muzzle</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="initialAngle">90</Set>
					<Set name="lifeTime">0.15</Set>
					<Set name="rotateWithVelocity">true</Set>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="-0.1"/>
					<Set name="initialScale">1,1</Set>
					<Set name="finalScale">1.3,1.3</Set>
					<Set name="interpolateScale">true</Set>
					<Set name="inSpecificOrder">true</Set>
					<Set name="interpolateAlpha">true</Set>
					<Set name="initialAlpha">0.5</Set>
					<Set name="finalAlpha">0</Set>
					<Set name="flipX">true</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="Punch1" updateStage="RenderBackHandItem" updateState="Action.Punch">
				<Emitter attachment="handspotRoot" onPunchCount="odd">
					<Set name="offset">0, 0</Set>
					<Set name="lifeTime">0.2</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_back</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="lifeTime">0.4</Set>
					<Set name="isBackgroundParticle">false</Set>
					<Set name="rotateWithVelocity">true</Set>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="0.95"/>
					<Set name="initialAngle">90</Set>
					<Set name="flipY" source="punch.flipY"/>
					<Set name="interpolateAlpha">true</Set>
					<Set name="initialAlpha">0.6</Set>
					<Set name="finalAlpha">0.4</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="MuzzleFlash2" updateStage="RenderHandItem" updateState="Action.Punch" renderStage="RenderHandItem">
				<Emitter attachment="handspotRoot" onPunchCount="even">
					<Set name="offset">-2, 4</Set>
					<Set name="particlesPerEmission">1</Set>
					<Set name="particlesToEmit">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_muzzle</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="initialAngle">90</Set>
					<Set name="lifeTime">0.15</Set>
					<Set name="rotateWithVelocity">true</Set>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="-0.1"/>
					<Set name="initialScale">1,1</Set>
					<Set name="finalScale">1.3,1.3</Set>
					<Set name="interpolateScale">true</Set>
					<Set name="inSpecificOrder">true</Set>
					<Set name="interpolateAlpha">true</Set>
					<Set name="initialAlpha">0.5</Set>
					<Set name="finalAlpha">0</Set>
					<Set name="flipX">true</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="Punch2" updateStage="RenderHandItem" updateState="Action.Punch">
				<Emitter attachment="handspotRoot" onPunchCount="even">
					<Set name="offset">0, 0</Set>
					<Set name="lifeTime">0.2</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="rotateWithVelocity">true</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="lifeTime">0.4</Set>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="0.95"/>
					<Set name="initialAngle">90</Set>
					<Set name="flipY" source="punch.flipY"/>
					<Set name="interpolateAlpha">true</Set>
					<Set name="initialAlpha">1</Set>
					<Set name="finalAlpha">0.8</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_hitFlash">
				<Emitter>
					<Set name="lifeTime">0</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_hitFlash</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Curve name="initialScale">
						<KeyFrame>0, 1, 1</KeyFrame>
						<KeyFrame>1, 1.6, 1.6</KeyFrame>
					</Curve>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>0.6, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="lifeTime">0.5</Set>
					<Random name="initialAngle" min="0" max="360" />
				</Particle>
			</ParticleSystem>
		</ParticleSystems>
		<RenderOptions>
			<Default>
				<Set name="RenderBackArmInfected">true</Set>
				<Set name="RenderFrontArmInfected">true</Set>
				<Set name="IncludeAllActions">true</Set>
				<Set name="IgnoreDefaultDamagedTileEffect">true</Set>
				<Set name="DefaultRenderMannequinHandItem">false</Set>
			</Default>
		</RenderOptions>
		<VariableMap>
			<Set name="punch.flipY">false</Set>
		</VariableMap>
	</Data>
	<RenderRules>
		<RenderHandItem>
			<Group onState="Action.None">
				<Translate>0,-7,0</Translate>
				<SpriteRender name="Sprite26_front" drawShadow="true" blend="PREMULTIPLIED_ALPHA" alignment="UPPER_CENTER" />
				<SpriteRender name="Sprite26_GLOW_front" drawShadow="true" blend="PREMULTIPLIED_ALPHA" alignment="UPPER_CENTER" />
			</Group>
		</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>-4,-11.8,0</Translate>
			<Group onState="Action.None">
				<SpriteRender name="Sprite26_back" 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>
		<OnDamagedTile>
			<ParticleSystemUpdate name="ps_hitFlash"/>
		</OnDamagedTile>
		<OnDestroyedTile>
			<ParticleSystemUpdate name="ps_hitFlash"/>
		</OnDestroyedTile>
	</RenderRules>
</ItemRenderer>
