<?xml version="1.0"?>
<ItemRenderer>
	<Data>
		<Sprite name="s_cannon" fileName="game/player_longhanditem4.rttex" textureSize="64,32" frame="0,9" />
		<Sprite name="s_ember" fileName="game/particles11.rttex" textureSize="32" frame="21,21" />
		<Sprite name="s_muzzleFlash" fileName="game/particles12.rttex" textureSize="32" frame="29,1" />
		<Sprite name="s_punch" fileName="game/particles12.rttex" textureSize="32" frame="30,1" />
		<Animations>
			<SpriteAnimation name="a_cannon" sprite="s_cannon" animTime="400" isLoop="true" playOnState="Idle.No">
				<Frame>0,9</Frame>
				<Frame>1,9</Frame>
				<Frame>2,9</Frame>
				<Frame>3,9</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="a_cannonIdle" sprite="s_cannon" animTime="400" isLoop="true" playOnState="Idle.Yes">
				<Frame>4,9</Frame>
				<Frame>5,9</Frame>
				<Frame>6,9</Frame>
				<Frame>7,9</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="a_punch" sprite="s_punch" animTime="200">
				<Frame>30,1</Frame>
				<Frame>31,1</Frame>
			</SpriteAnimation>
		</Animations>
		<StateMachines>
			<StateMachine name="Idle">
				<States>
					<State name="No" />
					<State name="Yes" />
				</States>
				<Transitions>
					<Transition to="No" from="Yes">
						<Condition type="or">
							<IsVariableFloat name="speed.length" operator="Greater" abs="true">0.1</IsVariableFloat>
							<IsAction>PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition to="Yes" from="No">
						<Condition type="and">
							<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_ember">
				<Emitter attachment="handspotRoot">
					<Set name="offset">16, 8</Set>
					<Random name="emissionInterval" min="0.1" max="0.3" />
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_ember</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>0.5, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="inSpecificOrder">true</Set>
					<Set name="lifeTime">1.5</Set>
					<RandomRadial name="initialVelocity" angleRange="210,330" radiusRange="5,15" />
					<Random name="initialRotationRate" min="-90" max="90" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_muzzleFlash">
				<Emitter attachment="handspotRoot">
					<Set name="offset">2, 24</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_muzzleFlash</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>0.2, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="inSpecificOrder">true</Set>
					<Set name="lifeTime">0.15</Set>
					<Set name="initialAngle">90</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_punch" updateStage="RenderBackHandItem" updateState="Punch.Yes">
				<Emitter attachment="handspotRoot">
					<Set name="offset">0, 19</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 randomSpriteFrame="true">
					<Set name="sprite">s_punch</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="rotateWithVelocity">true</Set>
					<Set name="lifeTime">0.4</Set>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="1" angle="0" />
					<Set name="initialAngle">90</Set>
				</Particle>
			</ParticleSystem>
		</ParticleSystems>
		<TileStampData>
			<Set name="FileName">game/particles11.rttex</Set>
			<Set name="EndFrame">29,19</Set>
			<Set name="FrameCount">4</Set>
			<Set name="RenderObjectName">AquaticVolcanicCannonTileStamp</Set>
			<Set name="RenderDefaultCracks">true</Set>
		</TileStampData>
		<RenderOptions>
			<Default>
				<Set name="PunchSoundOverride">HAND</Set>
				<Set name="PlayDefaultPunchAudio">false</Set>
				<Set name="RenderBackArmBuild">false</Set>
				<Set name="RenderBackArmInfected">true</Set>
				<Set name="RenderFrontArmInfected">true</Set>
				<Set name="IncludeAllActions">true</Set>
				<Set name="DefaultRenderMannequinHandItem">false</Set>
			</Default>
		</RenderOptions>
	</Data>
	<RenderRules>
		<Update>
			<AvatarTransform class="ArmAngle" onState="Idle.Yes">
				<Set name="armName">arm1Angle</Set>
				<Set name="armAngle">-90</Set>
			</AvatarTransform>
		</Update>
		<AddClothingParticles>
		<ParticleSystemUpdate name="ps_ember" onState="Punch.No"/>
		</AddClothingParticles>
		<OnPunchUpdate>
			<AvatarTransform class="Face">
				<Set name="face">MAD</Set>
			</AvatarTransform>
			<AvatarTransform class="ArmAngle">
				<Set name="armName">arm1Angle</Set>
				<Set name="pointTowardsPunchTarget">true</Set>
			</AvatarTransform>
		</OnPunchUpdate>
		<RenderBackArm>
			<ContextUpdate type="PositionSinPulse" onState="Punch.Yes">
				<Set name="period">200</Set>
				<Set name="scale">-2</Set>
				<Set name="clamp">true</Set>
			</ContextUpdate>
		</RenderBackArm>
		<RenderBackHandItem>
			<StopIf type="and">
				<IsZombified>true</IsZombified>
				<IsAction>PUNCH</IsAction>
			</StopIf>
			<ParticleSystemRender name="ps_ember" />
			<Group onState="Idle.Yes">
				<Rotate>180,0,0,1</Rotate>
				<Translate>-2,-8,0</Translate>
				<SpriteRender name="s_cannon" flip="1,0" rotateOffset="true" rotationPoint="0,1" alignment="CENTER" blend="PREMULTIPLIED_ALPHA"/>
			</Group>
			<Group onState="Punch.Yes">
				<Rotate>90,0,0,1</Rotate>
				<Translate>-6,0,0</Translate>
				<SpriteRender name="s_cannon" rotateOffset="true" rotationPoint="0,1" alignment="CENTER" blend="PREMULTIPLIED_ALPHA" />
				<ParticleSystemUpdate name="ps_muzzleFlash" />
				<ParticleSystemRender name="ps_muzzleFlash" />
			</Group>
			<Group onState="Punch.No">
				<Group onState="Idle.No">
					<Translate>-4,2,0</Translate>
					<SpriteRender name="s_cannon" rotateOffset="true" rotationPoint="0,1" alignment="CENTER" blend="PREMULTIPLIED_ALPHA" />
				</Group>
			</Group>
		</RenderBackHandItem>
	</RenderRules>
</ItemRenderer>
