<?xml version="1.0"?>
<ItemRenderer>
	<Data>
		<Sprite name="s_hit" fileName="game/particles_large5.rttex" textureSize="64" frame="10,12" />
		<Sprite name="s_mist" fileName="game/particles12.rttex" textureSize="32" frame="14,0" />
		<Sprite name="s_punch" fileName="game/particles12.rttex" textureSize="32" frame="13,0" />
		<Sprite name="s_staff" fileName="game/player_longhanditem4.rttex" textureSize="64,32" frame="0,7" />
		<Animations>
			<CurveAnimationVec4 name="a_staff" playOnState="Action.Punch" sprite="s_staff" animTime="150" isLoop="true">
				<Curve name="staff_rotation2">
					<KeyFrame>0, 0, 0,0,1</KeyFrame>
					<KeyFrame>0.32, 0, 0,0,1</KeyFrame>
					<KeyFrame>0.33, 15, 0,0,1</KeyFrame>
					<KeyFrame>0.65, 15, 0,0,1</KeyFrame>
					<KeyFrame>0.66, -15, 0,0,1</KeyFrame>
					<KeyFrame>1, -15, 0,0,1</KeyFrame>
				</Curve>
			</CurveAnimationVec4>
			<SpriteSinPulseAnimation name="a_punch" sprite="s_punch" autoPlay="true" isLoop="true">
				<Parameter name="alpha">
					<Set name="period">300</Set>
					<Set name="scale">0.5</Set>
					<Set name="offset">0.5</Set>
				</Parameter>
			</SpriteSinPulseAnimation>
			<SpriteAnimation name="a_hit" sprite="s_hit" animTime="400">
				<Frame>10,12</Frame>
				<Frame>11,12</Frame>
				<Frame>12,12</Frame>
				<Frame>13,12</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="a_mist" sprite="s_mist" animTime="600" autoPlay="true" isLoop="true">
				<Frame>14,0</Frame>
				<Frame>15,0</Frame>
				<Frame>16,0</Frame>
			</SpriteAnimation>
		</Animations>
		<StateMachines>
			<StateMachine name="Facing">
				<States>
					<State name="Left" />
					<State name="Right" />
				</States>
				<Transitions>
					<Transition to="Left" from="Right">
						<Condition>
							<IsFacingLeft>true</IsFacingLeft>
						</Condition>
					</Transition>
					<Transition to="Right" from="Left">
						<Condition>
							<IsFacingLeft>false</IsFacingLeft>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
			<StateMachine name="Motion">
				<States>
					<State name="Idle" />
					<State name="Moving" />
				</States>
				<Transitions>
					<Transition to="Idle" from="Moving">
						<Condition>
							<IsVariableFloat name="speed.length" operator="Less" abs="true">0.1</IsVariableFloat>
						</Condition>
					</Transition>
					<Transition to="Moving" from="Idle">
						<Condition>
							<IsVariableFloat name="speed.length" operator="Greater" abs="true">0.1</IsVariableFloat>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
			<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>
			<StateMachine name="AlternatePunch">
				<States>
					<State name="Off" />
					<State name="On" />
				</States>
				<Transitions>
					<Transition from="Off" to="On">
						<Condition type="or">
							<IsSitting ItemID="ITEM_ID_THEATER_SEAT">true</IsSitting>
							<IsWearing slot="SHIRT">ITEM_ID_TACTICAL_STEALTH_DEVICE</IsWearing>
						</Condition>
					</Transition>
					<Transition from="On" to="Off">
						<Condition type="and">
							<IsSitting ItemID="ITEM_ID_THEATER_SEAT">false</IsSitting>
							<IsWearing slot="SHIRT" operatorType="NotEqual">ITEM_ID_TACTICAL_STEALTH_DEVICE</IsWearing>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
		</StateMachines>
		<RenderOptions>
			<Default>
				<Set name="IncludeAllActions">true</Set>
				<Set name="IgnoreDefaultDamagedTileEffect">true</Set>
				<Set name="RenderBackArmInfected">true</Set>
				<Set name="RenderFrontArmInfected">true</Set>
				<Set name="DefaultRenderMannequinHandItem">false</Set>
				<Set name="PunchSoundOverride">HAND</Set>
				<Set name="PlayDefaultPunchAudio">false</Set>
			</Default>
		</RenderOptions>
		<ParticleSystems>
			<ParticleSystem name="p_hit" updateStage="OnDamagedTile">
				<Emitter>
					<Set name="emissionInterval">0.1</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_hit</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="lifeTime">0.3</Set>
					<Random name="initialAngle" min="0" max="360" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="p_pumch2" updateStage="OnPunchStart" updateState="AlternatePunch.On">
				<Emitter>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_punch</Set>
					<Set name="rotateWithVelocity">true</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Curve name="initialScale">
						<KeyFrame>0, 0, 1</KeyFrame>
						<KeyFrame>1, 2.5, 1</KeyFrame>
					</Curve>
					<Set name="lifeTime">0.25</Set>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="0.2" angle="0" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="p_punch">
				<Emitter attachment="contextRotation">
					<Set name="offset">0, 4</Set>
					<Set name="lifeTime">0.15</Set>
					<Set name="emissionInterval">0.05</Set>
					<Set name="infParticles">true</Set>
					<Set name="particlesPerEmission">1</Set>
					<Set name="particlesToEmit">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_punch</Set>
					<Set name="renderAlignment">LEFT_CENTER</Set>
					<Set name="blendingMode">ADDITIVE</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 0.7</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="inSpecificOrder">true</Set>
					<Curve name="initialScale">
						<KeyFrame>0, 0, 1</KeyFrame>
						<KeyFrame>1, 2.5, 1</KeyFrame>
					</Curve>
					<Set name="lifeTime">0.25</Set>
				</Particle>
			</ParticleSystem>
		</ParticleSystems>
		<VariableMap>
			<Set name="staff_rotation">0, 0, 0, 1</Set>
			<Set name="staff_rotation2">0, 0, 0, 1</Set>
			<Set name="target.direction">0, 0, 0, 1</Set>
		</VariableMap>
	</Data>
	<RenderRules>
		<Update>
			<StopIf type="and">
				<IsZombified>true</IsZombified>
				<IsAction>BUILD</IsAction>
			</StopIf>
			<AvatarTransform class="ArmAngle" onState="Action.None">
				<Set name="armName">arm1Angle</Set>
				<Set name="armAngle">-90</Set>
			</AvatarTransform>
		</Update>
		<OnPunchUpdate>
			<AvatarTransform class="Face">
				<Set name="face">MAD</Set>
			</AvatarTransform>
			<AvatarTransform class="ArmAngle">
				<Set name="armName">arm1Angle</Set>
				<Set name="animTime">300</Set>
				<Set name="Curve">
					<KeyFrame>0, 0</KeyFrame>
					<KeyFrame>0.5, 0</KeyFrame>
					<KeyFrame>0.51, -90</KeyFrame>
					<KeyFrame>1, -90</KeyFrame>
				</Set>
			</AvatarTransform>
		</OnPunchUpdate>
		<RenderBackHandItem>
			<StopIf type="and">
				<IsAction>BUILD</IsAction>
			</StopIf>
			<StopIf type="and">
				<IsZombified>true</IsZombified>
				<IsAction>PUNCH</IsAction>
			</StopIf>
			<ParticleSystemRender name="p_mist" onState="Action.None" />
			<Group onState="Action.Punch">
				<Rotate forceValue="true">target.direction</Rotate>
				<Rotate>staff_rotation2</Rotate>
				<SpriteRender name="s_staff" offset="0,4" flip="1,0" alignment="CENTER" onState="Facing.Left" />
				<SpriteRender name="s_staff" offset="0,4" alignment="CENTER" onState="Facing.Right" />
				<ParticleSystemUpdate name="p_punch" />
				<ParticleSystemRender name="p_punch" />
			</Group>
			<Group onState="Action.None">
				<Group>
					<Rotate>90, 0,0,1</Rotate>
					<SpriteRender name="s_mist" offset="3,-20" scale="1,1.2" rotationPoint="0,1" alignment="CENTER" drawShadow="false" blend="ADDITIVE"/>
				</Group>
				<SpriteRender name="s_staff" offset="-3,4" rotationPoint="0,1" alignment="CENTER" rotateOffset="true" />
			</Group>
		</RenderBackHandItem>
	</RenderRules>
</ItemRenderer>
