<?xml version="1.0" encoding="utf-8"?>
<ItemRenderer>
	<Data>
		<Sprite name="s_flipper" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="6,7"/>
		<Sprite name="s_punchFlipper" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="11,7"/>
		<Sprite name="s_punchPancake" fileName="game/particles12.rttex" textureSize="32" frame="24,13"/>
		<Sprite name="s_punchHit" fileName="game/particles12.rttex" textureSize="32" frame="25,13"/>

		<RenderOptions>
			<Default>
				<Set name="DefaultRenderMannequinHandItem">false</Set>
				<Set name="RenderFrontArmInfected">true</Set>
				<Set name="RenderFrontArmInTheFront">true</Set>
				<Set name="IgnoreDefaultDamagedTileEffect">true</Set>
			</Default>
		</RenderOptions>
		<Animations>
			<SpriteAnimation name="s_Idle" sprite="s_flipper" animTime="100" autoPlay="false" isLoop="true" playOnState="Flip.No">
				<Frame>6, 7</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="s_Flip" sprite="s_flipper" animTime="500" autoPlay="false" isLoop="false" playOnState="Flip.Yes">
				<Frame>6, 7</Frame>
				<Frame>7, 7</Frame>
				<Frame>8, 7</Frame>
				<Frame>9, 7</Frame>
				<Frame>10, 7</Frame>
			</SpriteAnimation>
		</Animations>
		<StateMachines>
			<StateMachine name="Flip">
				<States>
					<State name="No" ExitTime="3"/>
					<State name="Yes" ExitTime="0.5"/>
				</States>
				<Transitions>
					<Transition to="No" from="Yes">
						<Condition type="or">
							<IsVariableFloat name="speed.length" operator="Greater" abs="true">0.1</IsVariableFloat>
							<IsAnimationFinished>s_Flip</IsAnimationFinished>
						</Condition>
					</Transition>
					<Transition to="Yes" from="No">
						<Condition>
							<IsVariableFloat name="speed.length" operator="Less" abs="true">0.1</IsVariableFloat>
							<IsAction operatorType="NotEqual">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>
		<ParticleSystems>
			<ParticleSystem name="ps_punchProjectile">
				<Emitter attachment="handspotRoot">
					<Set name="offset">7, 0</Set>
					<Set name="lifeTime">0.4</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_punchPancake</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="lifeTime">0.4</Set>
					<Random name="targetPosOffset" min="-12,-12" max="12,12"/>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="1"/>
					<SetVar name="projectile_offset" source="targetPosOffset"/>
					<Random name="initialRotationRate" min="-300" max="-450" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_hit">
				<Emitter>
					<Set name="lifeTime">1</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_punchHit</Set>
					<Random name="offset" min="-4, -4" max="4, 4"/>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>0.6, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Curve name="initialScale">
						<KeyFrame>0, 0.4, 0.4</KeyFrame>
						<KeyFrame>1, 1, 1</KeyFrame>
					</Curve>
					<Set name="lifeTime">0.8</Set>
				</Particle>
			</ParticleSystem>
		</ParticleSystems>
	</Data>
	<RenderRules>
		<RenderHandItem>
			<Translate>-1,13,0</Translate>
			<SpriteRender name="s_flipper" rotateOffset="true" alignment="CENTER" blend="PREMULTIPLIED_ALPHA" onState="Punch.No"/>
			<SpriteRender name="s_punchFlipper" rotateOffset="true" alignment="CENTER" blend="PREMULTIPLIED_ALPHA" onState="Punch.Yes"/>
		</RenderHandItem>
		<Update>
			<StopIf>
				<IsWearing slot="SHIRT">ITEM_ID_TACTICAL_STEALTH_DEVICE</IsWearing>
			</StopIf>
			<AvatarTransform class="ArmAngle" onState="Punch.No">
				<Set name="armName">arm2Angle</Set>
				<Set name="armAngle">0</Set>
			</AvatarTransform>
		</Update>
		<OnPunchStart>
			<ParticleSystemUpdate name="ps_punchProjectile"/>
		</OnPunchStart>
		<OnPunchUpdate>
			<StopIf>
				<IsZombified>true</IsZombified>
			</StopIf>
			<AvatarTransform class="Face">
				<Set name="face">MAD</Set>
			</AvatarTransform>
			<AvatarTransform class="ArmAngle">
				<Set name="armName">arm2Angle</Set>
				<Set name="animTime">400</Set>
				<Set name="Curve">
					<KeyFrame>0.0, 30</KeyFrame>
					<KeyFrame>0.3, -90</KeyFrame>
					<KeyFrame>1, 30</KeyFrame>
				</Set>
			</AvatarTransform>
		</OnPunchUpdate>
		<OnDamagedTile>
			<ParticleSystemUpdate name="ps_hit"/>
		</OnDamagedTile>
		<OnDestroyedTile>
			<ParticleSystemUpdate name="ps_hit"/>
		</OnDestroyedTile>
	</RenderRules>
</ItemRenderer>