<?xml version="1.0" ?>
<ItemRenderer>
    <Data>
        <Sprite name="s_back" fileName="game/particles_large16.rttex" textureSize="64,64" frame="9,1" />
        <Sprite name="s_front" fileName="game/particles_large16.rttex" textureSize="64,64" frame="13,1" />
        <Sprite name="s_cannon" fileName="game/particles12.rttex" textureSize="32,32" frame="26,4" />
        <Sprite name="s_splash" fileName="game/particles12.rttex" textureSize="32,32" frame="27,4" />
        <Animations>
            <SpriteAnimation name="a_back_idle" sprite="s_back" isLoop="true" animTime="400" playOnState="Motion.Idle">
                <Frame>9,1</Frame>
                <Frame>10,1</Frame>
                <Frame>11,1</Frame>
                <Frame>12,1</Frame>
            </SpriteAnimation>
			<SpriteAnimation name="a_front_idle" sprite="s_front" isLoop="true" animTime="800" playOnState="Motion.Idle">
                <Frame>8,6</Frame>
                <Frame>9,6</Frame>
                <Frame>10,6</Frame>
                <Frame>11,6</Frame>
                <Frame>12,6</Frame>
                <Frame>13,6</Frame>
                <Frame>14,6</Frame>
                <Frame>15,6</Frame>
            </SpriteAnimation>
            <SpriteAnimation name="a_back_move" sprite="s_back" isLoop="true" animTime="800" playOnState="Motion.Move">
                <Frame>8,5</Frame>
                <Frame>9,5</Frame>
                <Frame>10,5</Frame>
                <Frame>11,5</Frame>
                <Frame>12,5</Frame>
                <Frame>13,5</Frame>
                <Frame>14,5</Frame>
                <Frame>15,5</Frame>
            </SpriteAnimation>
            <SpriteAnimation name="a_front_move" sprite="s_front" isLoop="true" animTime="800" playOnState="Motion.Move">
                <Frame>8,6</Frame>
                <Frame>9,6</Frame>
                <Frame>10,6</Frame>
                <Frame>11,6</Frame>
                <Frame>12,6</Frame>
                <Frame>13,6</Frame>
                <Frame>14,6</Frame>
                <Frame>15,6</Frame>
            </SpriteAnimation>
			<SpriteAnimation name="a_back_jump" sprite="s_back" isLoop="false" animTime="200" playOnState="Motion.Jump">
                <Frame>14,1</Frame>
                <Frame>15,1</Frame>
            </SpriteAnimation>
            <SpriteAnimation name="a_front_jump" sprite="s_front" isLoop="false" animTime="200" playOnState="Motion.Jump">
                <Frame>14,2</Frame>
                <Frame>15,2</Frame>
            </SpriteAnimation>
            <SpriteAnimation name="a_back_fall" sprite="s_back" isLoop="false" animTime="200" playOnState="Motion.Fall">
                <Frame>12,3</Frame>
                <Frame>13,3</Frame>
            </SpriteAnimation>
            <SpriteAnimation name="a_front_fall" sprite="s_front" isLoop="false" animTime="200" playOnState="Motion.Fall">
                <Frame>12,4</Frame>
                <Frame>13,4</Frame>
            </SpriteAnimation>
            <SpriteAnimation name="a_back_punch" sprite="s_back" isLoop="true" animTime="800" playOnState="Motion.Punch">
                <Frame>8,7</Frame>
                <Frame>9,7</Frame>
                <Frame>10,7</Frame>
                <Frame>11,7</Frame>
                <Frame>12,7</Frame>
                <Frame>13,7</Frame>
                <Frame>14,7</Frame>
                <Frame>15,7</Frame>
            </SpriteAnimation>
            <SpriteAnimation name="a_front_punch" sprite="s_front" isLoop="true" animTime="800" playOnState="Motion.Punch">
                <Frame>8,6</Frame>
                <Frame>9,6</Frame>
                <Frame>10,6</Frame>
                <Frame>11,6</Frame>
                <Frame>12,6</Frame>
                <Frame>13,6</Frame>
                <Frame>14,6</Frame>
                <Frame>15,6</Frame>
            </SpriteAnimation>
        </Animations>
		<RenderOptions>
			<Default>
				<Set name="IgnoreDefaultDamagedTileEffect">true</Set>
				<Set name="AllowChangePunchType">true</Set>
				<Set name="NeedRenderBareFeetWithShoesItem">false</Set>
				<Set name="ClothingOffsetFromShoes">-4</Set>
				<Set name="IsToRenderPants">false</Set>
			</Default>
		</RenderOptions>
		<StateMachines>
			<StateMachine name="Motion">
				<States>
					<State name="Idle" />
					<State name="Move" />
					<State name="Jump" />
					<State name="Fall" />
					<State name="Punch" />
				</States>
				<Transitions>
					<Transition to="Idle" from="Fall|Move|Punch">
						<Condition type="and">
							<IsVariableBool name="onGround">true</IsVariableBool>
							<IsVariableFloat name="speed.length" operator="Less" abs="true">0.1</IsVariableFloat>
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition to="Move" from="Jump|Fall|Idle|Punch">
						<Condition type="and">
							<IsVariableBool name="onGround">true</IsVariableBool>
							<IsVariableFloat name="speed.length" operator="Greater" abs="true">0.1</IsVariableFloat>
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition to="Jump" from="Fall|Idle|Move|Punch">
						<Condition type="and">
							<IsVariableBool name="onGround">false</IsVariableBool>
							<IsVariableFloat name="speed.y" operator="Less">-0.1</IsVariableFloat>
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition to="Fall" from="Jump|Idle|Move|Punch">
						<Condition type="and">
							<IsVariableBool name="onGround">false</IsVariableBool>
							<IsVariableFloat name="speed.y" operator="Greater">0.1</IsVariableFloat>
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition to="Punch" from="Fall|Jump|Idle|Move">
						<Condition type="and">
							<IsAction>PUNCH</IsAction>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
		</StateMachines>
        <ParticleSystems>
			<ParticleSystem name="ps_cannon">
				<Emitter>
					<Set name="emissionInterval">0.2</Set>
					<Set name="offset">22, -20</Set>
					<Set name="lifeTime">0</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_cannon</Set>
					<Set name="renderAlignment">LEFT_CENTER</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Set name="rotateWithVelocity">true</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>0.7, 1</KeyFrame>
						<KeyFrame>0.71, 0</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="lifeTime">0.4</Set>
					<Random name="initialScale" min="0.5, 0.75" max="0.75, 1.25"/>
					<VectorTo name="initialVelocity" source="targetPos" duration="lifeTime" x="1"/>
					<OnFinish>
						<ParticleSystemName>ps_splash</ParticleSystemName>
						<ParticleSystemName>ps_drops</ParticleSystemName>
					</OnFinish>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_splash">
				<Emitter>
					<Set name="offset">0, 0</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_splash</Set>
					<Random name="offset" min="-4, -4" max="4, 4"/>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="useGravity">true</Set>
					<Curve name="initialScale">
						<KeyFrame>0, 0.8, 0.8</KeyFrame>
						<KeyFrame>1, 1.5, 1.5</KeyFrame>
					</Curve>
					<Set name="lifeTime">1</Set>
					<Random name="initialAngle" min="0" max="360"/>
					<Set name="gravityVector">0, 20</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_drops">
				<Emitter>
					<Set name="particlesPerEmission">14</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_cannon</Set>
					<Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
					<Random name="offset" min="-4, -4" max="4, 4"/>
					<Set name="rotateWithVelocity">true</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="useGravity">true</Set>
					<Set name="lifeTime">1</Set>
					<Random name="initialScale" min="0.25" max="0.4"/>
					<RandomRadial name="initialVelocity" angleRange="0,360" radiusRange="30,40"/>
					<Set name="gravityVector">0, 40</Set>
				</Particle>
			</ParticleSystem>
        </ParticleSystems>
    </Data>
    <RenderRules>
        <RenderBehind>
			<StopIf>
				<IsZombified>true</IsZombified>
				<IsSitting>true</IsSitting>
				<IsSleepingOnaBed>true</IsSleepingOnaBed>
				<IsWearing slot="SHIRT">ITEM_ID_TACTICAL_STEALTH_DEVICE</IsWearing>
			</StopIf>
			<Translate>0,-4,0</Translate>
            <SpriteRender name="s_back" blend="PREMULTIPLIED_ALPHA" drawShadow="true" />
        </RenderBehind>
        <RenderShoes>
			<Translate>4,4,0</Translate>
            <SpriteRender name="s_front" blend="PREMULTIPLIED_ALPHA" alignment="DOWN_CENTER" drawShadow="true" />
        </RenderShoes>
		<OnPunchStart>
			<AvatarTransform class="Face">
				<Set name="face">MAD</Set>
			</AvatarTransform>
			<AvatarTransform class="ArmAngle">
				<Set name="armName">arm1Angle</Set>
				<Set name="armAngle">-90</Set>
			</AvatarTransform>
			<ParticleSystemUpdate name="ps_cannon"/>
		</OnPunchStart>
    </RenderRules>
</ItemRenderer>
