<?xml version="1.0" encoding="utf-8"?>
<ItemRenderer>
	<Data>
		<StateMachines>
			<StateMachine name="Action">
				<States>
					<State name="None"/>
					<State name="PrePunch" ExitTime="0.15"/>
					<State name="PunchL"/>
					<State name="PunchR"/>
				</States>
				<Transitions>
					<Transition to="None" from="PunchL|PunchR|PrePunch">
						<Condition>
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition to="PrePunch" from="None">
						<Condition>
							<IsAction>PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition to="PunchL" from="PrePunch">
						<Condition type="and">
							<IsAction>PUNCH</IsAction>
							<IsFacingLeft>true</IsFacingLeft>
						</Condition>
					</Transition>
					<Transition to="PunchR" from="PrePunch">
						<Condition type="and">
							<IsAction>PUNCH</IsAction>
							<IsFacingLeft>false</IsFacingLeft>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
		</StateMachines>

		<Sprite name="s_Item" fileName="game/player_longhanditem4.rttex" textureSize="64,32" frame="4,13"/>
		<Sprite name="s_Punch" fileName="game/particles12.rttex" textureSize="32" frame="1,19"/>
		<Sprite name="s_Smoke" fileName="game/particles9.rttex" textureSize="32" frame="5,9"/>

		<Animations>
			<SpriteAnimation name="a_IdleItem" sprite="s_Item" playOnState="Action.None">
				<Frame>3, 13</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="a_PunchItem" sprite="s_Item" playOnState="Action.PunchL|Action.PunchR">
				<Frame>4, 13</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="a_Smoke" sprite="s_Smoke"  animTime="500">
				<Frame>14,9</Frame>
				<Frame>5,9</Frame>
				<Frame>6,9</Frame>
				<Frame>7,9</Frame>
				<Frame>8,9</Frame>
				<Frame>9,9</Frame>
				<Frame>10,9</Frame>
				<Frame>11,9</Frame>
				<Frame>12,9</Frame>
				<Frame>13,9</Frame>
			</SpriteAnimation>
		</Animations>
		
		<ParticleSystems>
			<ParticleSystem name="ps_PunchR" updateStage="RenderHandItem" updateState="Action.PunchR">
				<Emitter attachment="handspotRoot">
					<Set name="offset">-24, 0</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">PREMULTIPLIED_ALPHA</Set>
					<Set name="lifeTime">0.4</Set>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="1"/>
					<Set name="rotateWithVelocity">true</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_PunchL" updateStage="RenderHandItem" updateState="Action.PunchL">
				<Emitter attachment="handspotRoot">
					<Set name="offset">-24, 0</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">PREMULTIPLIED_ALPHA</Set>
					<Set name="lifeTime">0.4</Set>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="1"/>
					<Set name="rotateWithVelocity">true</Set>
					<Set name="flipY">true</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_Explosion">
				<Emitter>
					<Set name="lifeTime">0.4</Set>
					<Set name="particlesPerEmission">1</Set>
					<Set name="offset">0,0</Set>
					<Set name="particlesToEmit">1</Set>
					<Set name="checkParticleNumToEmit">true</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_Smoke</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="lifeTime">0.5</Set>
					<Random name="initialAngle" min="0" max="360"/>
					<Set name="initialRotationRate">360</Set>
					<Set name="initialScale">2,2</Set>
				</Particle>
			</ParticleSystem>
		</ParticleSystems>

		<RenderOptions>
			<Default>
				<Set name="PunchSoundOverride">HAND</Set>
				<Set name="PlayDefaultPunchAudio">false</Set>
				<Set name="RenderBackArmBuild">true</Set>
				<Set name="RenderFrontArmInfected">true</Set>
				<Set name="RenderBackArmInfected">true</Set>
				<Set name="IncludeAllActions">true</Set>
				<Set name="DefaultRenderMannequinHandItem">false</Set>
				<Set name="RenderFrontArmInTheFront">true</Set>
				<Set name="IgnoreDefaultDamagedTileEffect">true</Set>
				<Set name="IgnoreDefaultDestroyedTileEffect">true</Set>
			</Default>
		</RenderOptions>
	</Data>

	<RenderRules>
		<OnPunchUpdate>
			<AvatarTransform class="Face">
				<Set name="face">MAD</Set>
			</AvatarTransform>
			<AvatarTransform class="ArmAngle" onState="Action.PunchL|Action.PunchR">
				<Set name="armName">arm2Angle</Set>
				<Set name="angleOffset">-90</Set>
				<Set name="pointTowardsPunchTarget">true</Set>
				<Set name="pulseArmScale">5</Set>
				<Set name="pulseArmRate">300</Set>
			</AvatarTransform>
			<AvatarTransform class="ArmAngle" onState="Action.PrePunch">
				<Set name="armName">arm2Angle</Set>
				<Set name="animTime">160</Set>
				<Set name="Curve">
					<KeyFrame>0, 0</KeyFrame>
					<KeyFrame>1, 180</KeyFrame>
				</Set>
			</AvatarTransform>
		</OnPunchUpdate>
		<RenderHandItem>
			<StopIf type="and">
				<IsZombified>true</IsZombified>
				<IsAction>PUNCH</IsAction>
			</StopIf>
			<Group onState="Action.None|Action.PrePunch">
				<Translate>0,10,0</Translate>
				<SpriteRender name="s_Item" alignment="CENTER" blend="PREMULTIPLIED_ALPHA"/>
			</Group>
			<SpriteRender name="s_Item" flip="1,1" alignment="CENTER" blend="PREMULTIPLIED_ALPHA" onState="Action.PunchL|Action.PunchR"/>
		</RenderHandItem>
		<OnDamagedTile>
			<ParticleSystemUpdate name="ps_Explosion"/>
		</OnDamagedTile>
		<OnDestroyedTile>
			<ParticleSystemUpdate name="ps_Explosion"/>
		</OnDestroyedTile>
	</RenderRules>
</ItemRenderer>