<?xml version="1.0"?>
<ItemRenderer>
	<Data>
		<Sprite name="Sprite26_front" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="0,3" />
		<Sprite name="Sprite26_back" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="1,3" />
		<Sprite name="s_punch" fileName="game/particles12.rttex" textureSize="32" frame="14,14" />
		<Sprite name="s_hit" fileName="game/particles12.rttex" textureSize="32" frame="15,14" />
		<Sprite name="s_aura" fileName="game/particles12.rttex" textureSize="32" frame="12,14"/>
		<Sprite name="emberSprite" fileName="game/particles12.rttex" textureSize="32" frame="10,14" />
		<Animations>
			<SpriteAnimation name="a_aura" sprite="s_aura">
				<Frame>12,14</Frame>
				<Frame>13,14</Frame>
			</SpriteAnimation>			
			<SpriteAnimation name="a_ember" sprite="emberSprite" isLoop="false" animTime="200" >
				<Frame>10,14</Frame>
				<Frame>11,14</Frame>
			</SpriteAnimation>
		</Animations>
		<StateMachines>
			<StateMachine name="Motion">
				<States>
					<State name="Idle" />
					<State name="Move" />
					<State name="Punch" />
				</States>
				<Transitions>
					<Transition to="Idle" from="Move|Punch">
						<Condition type="and">
							<IsVariableFloat name="speed.length" operator="Less" abs="true">0.1</IsVariableFloat>
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition to="Move" from="Idle|Punch">
						<Condition type="and">
							<IsVariableFloat name="speed.length" operator="Greater" abs="true">0.1</IsVariableFloat>
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition to="Punch" from="Idle|Move">
						<Condition>
							<IsAction>PUNCH</IsAction>
						</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="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>
		</StateMachines>
		<ParticleSystems>
			<ParticleSystem name="EmberLeftParticle">
				<Emitter>
					<Set name="offset">0, 0</Set>
					<Set name="randomizeInterval">true</Set>
					<Set name="intervalMin">0.07</Set>
					<Set name="intervalMax">0.14</Set>
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">emberSprite</Set>
					<Set name="inSpecificOrder">true</Set>
					<Random name="offset" min="-3, 0" max="3, 8" />
					<Set name="renderAlignment">CENTER</Set>
					<Set name="blendingMode">ADDITIVE</Set>
					<Random name="initialScale" min="0.2" max="0.4"/>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="lifeTime">1</Set>
					<Random name="initialVelocity" min="0, -16" max="0, -30" />
					<Set name="initialRotationRate">360</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="EmberRightParticle">
				<Emitter>
					<Set name="offset">-2, -5</Set>
					<Set name="randomizeInterval">true</Set>
					<Set name="intervalMin">0.07</Set>
					<Set name="intervalMax">0.14</Set>
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">emberSprite</Set>
					<Set name="inSpecificOrder">true</Set>
					<Random name="offset" min="-3, 0" max="3, 8" />
					<Set name="renderAlignment">CENTER</Set>
					<Set name="blendingMode">ADDITIVE</Set>
					<Random name="initialScale" min="0.2" max="0.4"/>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="lifeTime">1</Set>
					<Random name="initialVelocity" min="0, -16" max="0, -30" />
					<Set name="initialRotationRate">360</Set>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_frontSmoke" updateStage="AddClothingParticles" renderStage="RenderHandItem" updateState="Motion.Idle">
				<Emitter>
					<Random name="emissionInterval" min="0.5" max="1" />
					<Set name="infParticles">true</Set>
					<Set name="lifeTime">1</Set>
					<Set name="particlesPerEmission">1</Set>
					<Random name="offset" min="-9, -3" max="-6, 2" />
				</Emitter>
				<Particle randomSpriteFrame="true">
					<Set name="inSpecificOrder">true</Set>
					<Set name="sprite">s_aura</Set>
					<Set name="renderAlignment">DOWN_CENTER</Set>
					<Set name="blendingMode">ADDITIVE</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 0</KeyFrame>
						<KeyFrame>0.2, 1</KeyFrame>
						<KeyFrame>0.5, 0.5</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Curve name="initialScale">
						<KeyFrame>0, 0.4, 0.4</KeyFrame>
						<KeyFrame>1, 0.4, 0.6</KeyFrame>
					</Curve>
					<Set name="lifeTime">2</Set>
					<Random name="flipX" min="false" max="true"/>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_backSmoke" updateStage="AddClothingParticles" updateState="Motion.Idle">
				<Emitter>
					<Random name="emissionInterval" min="0.5" max="1" />
					<Set name="infParticles">true</Set>
					<Set name="lifeTime">1</Set>
					<Set name="particlesPerEmission">1</Set>
					<Random name="offset" min="6, -3" max="9, 2" />
				</Emitter>
				<Particle randomSpriteFrame="true">
					<Set name="inSpecificOrder">true</Set>
					<Set name="sprite">s_aura</Set>
					<Set name="renderAlignment">DOWN_CENTER</Set>
					<Set name="blendingMode">ADDITIVE</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 0</KeyFrame>
						<KeyFrame>0.2, 1</KeyFrame>
						<KeyFrame>0.5, 0.5</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Curve name="initialScale">
						<KeyFrame>0, 0.4, 0.4</KeyFrame>
						<KeyFrame>1, 0.4, 0.6</KeyFrame>
					</Curve>
					<Set name="lifeTime">2</Set>
					<Random name="flipX" min="false" max="true"/>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_frontSmokeMove" updateStage="AddClothingParticles" renderStage="RenderHandItem" updateState="Motion.Move">
				<Emitter>
					<Random name="emissionInterval" min="0.01" max="0.1" />
					<Set name="infParticles">true</Set>
					<Set name="lifeTime">0.5</Set>
					<Set name="particlesPerEmission">1</Set>
					<Random name="offset" min="-10, -3" max="-6, 2" />
				</Emitter>
				<Particle randomSpriteFrame="true">
					<Set name="inSpecificOrder">true</Set>
					<Set name="sprite">s_aura</Set>
					<Set name="renderAlignment">DOWN_CENTER</Set>
					<Set name="blendingMode">ADDITIVE</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 0</KeyFrame>
						<KeyFrame>0.2, 1</KeyFrame>
						<KeyFrame>0.5, 0.5</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Curve name="initialScale">
						<KeyFrame>0, 0.4, 0.4</KeyFrame>
						<KeyFrame>1, 0.8, 1.2</KeyFrame>
					</Curve>
					<Set name="lifeTime">1</Set>
					<Random name="flipX" min="false" max="true"/>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_backSmokeMove" updateStage="AddClothingParticles" updateState="Motion.Move">
				<Emitter>
					<Random name="emissionInterval" min="0.01" max="0.1" />
					<Set name="infParticles">true</Set>
					<Set name="lifeTime">0.5</Set>
					<Set name="particlesPerEmission">1</Set>
					<Random name="offset" min="6, -3" max="9, 2" />
				</Emitter>
				<Particle randomSpriteFrame="true">
					<Set name="inSpecificOrder">true</Set>
					<Set name="sprite">s_aura</Set>
					<Set name="renderAlignment">DOWN_CENTER</Set>
					<Set name="blendingMode">ADDITIVE</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 0</KeyFrame>
						<KeyFrame>0.2, 1</KeyFrame>
						<KeyFrame>0.5, 0.5</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Curve name="initialScale">
						<KeyFrame>0, 0.4, 0.4</KeyFrame>
						<KeyFrame>1, 0.8, 1.2</KeyFrame>
					</Curve>
					<Set name="lifeTime">1</Set>
					<Random name="flipX" min="false" max="true"/>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="ps_hitFlash" updateStage="OnDamagedTile">
				<Emitter>
					<Set name="lifeTime">0</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
					<Set name="sprite">s_hit</Set>
					<Set name="blendingMode">ADDITIVE</Set>
					<Curve name="initialScale">
						<KeyFrame>0, 1,1</KeyFrame>
						<KeyFrame>1, 2,2</KeyFrame>
					</Curve>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>0.4, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="offset" source="projectile_offset"/>
					<Set name="initialAngle" source="projectile_angle"/>
					<Set name="lifeTime">0.5</Set>
					<Random name="initialAngle" min="0" max="360" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="Punch1" updateStage="RenderBackHandItem" updateState="Action.Punch">
				<Emitter attachment="handspotRoot" onPunchCount="odd">
					<Set name="offset">-3, -3</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">ADDITIVE</Set>
					<Set name="lifeTime">0.4</Set>
					<Set name="rotateWithVelocity">true</Set>
					<Random name="targetPosOffset" min="-12,-11" max="12,11"/>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="1" angleOutVar="projectile_angle"/>
					<SetVar name="projectile_offset" source="targetPosOffset"/>
					<Set name="initialAngle">90</Set>
					<Set name="flipY" source="punch.flipY"/>
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="Punch2" updateStage="RenderHandItem" updateState="Action.Punch">
				<Emitter attachment="handspotRoot" onPunchCount="even">
					<Set name="offset">-3, -3</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">ADDITIVE</Set>
					<Set name="lifeTime">0.4</Set>
					<Set name="rotateWithVelocity">true</Set>
					<VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="1" angleOutVar="projectile_angle"/>
					<SetVar name="projectile_offset" source="targetPosOffset"/>
					<Set name="initialAngle">90</Set>
					<Set name="flipY" source="punch.flipY"/>
				</Particle>
			</ParticleSystem>
		</ParticleSystems>
		<RenderOptions>
			<Default>
				<Set name="RenderBackArmInfected">true</Set>
				<Set name="RenderFrontArmInfected">true</Set>
				<Set name="IncludeAllActions">true</Set>
			</Default>
		</RenderOptions>
		<VariableMap>
			<Set name="punch.flipY">false</Set>
			<Set name="facingVariable">1, 1, 1</Set>
			<Set name="backArmTranslate">-2.3,11,0</Set>
			<Set name="projectile_offset">0, 0</Set>
			<Set name="projectile_angle">0</Set>
		</VariableMap>
	</Data>
	<RenderRules>
		<RenderHandItem>
			<SpriteRender name="Sprite26_front" offset="0.3,16" rotateOffset="true" rotationPoint="0.2,1" blend="NORMAL" alignment="CENTER" drawShadow="true" onState="Facing.Right"/>
			<SpriteRender name="Sprite26_front" offset="0.3,16" rotateOffset="true" rotationPoint="-0.2,1" blend="NORMAL" alignment="CENTER" drawShadow="true" onState="Facing.Left"/>
			<StopIf type="or">
				<IsRenderMod>RENDER_MOD_MINI_YOU</IsRenderMod>
				<IsRenderMod>RENDER_MOD_MANNEQUIN</IsRenderMod>
				<IsSitting ItemID="ITEM_ID_THEATER_SEAT">true</IsSitting>
				<IsSleepingOnaBed>true</IsSleepingOnaBed>
			</StopIf>
			<ParticleSystemUpdate name="EmberLeftParticle" onState="Action.None"/>
			<ParticleSystemRender name="EmberLeftParticle" />
		</RenderHandItem>
		<RenderFrontArm>
			<ContextUpdate type="PositionSinPulse" onState="Action.Punch">
				<Set name="period">200</Set>
				<Set name="scale">-2</Set>
				<Set name="clamp">true</Set>
			</ContextUpdate>
		</RenderFrontArm>
		<RenderBackArm>
			<ContextUpdate type="PositionSinPulse" onState="Action.Punch">
				<Set name="period">-200</Set>
				<Set name="scale">-2</Set>
				<Set name="clamp">true</Set>
			</ContextUpdate>
		</RenderBackArm>
		<RenderBackHandItem>
			<StopIf type="or">
				<IsAction>BUILD</IsAction>
				<IsSitting ItemID="ITEM_ID_THEATER_SEAT">true</IsSitting>
				<IsSleepingOnaBed>true</IsSleepingOnaBed>
			</StopIf>
			<ParticleSystemRender name="ps_backSmoke"/>
			<ParticleSystemRender name="ps_backSmokeMove"/>
			<Group onState="Action.Punch">
				<StopIf>
					<IsZombified>true</IsZombified>
				</StopIf>
				<SpriteRender name="Sprite26_back" offset="-2.8,11.3" rotateOffset="true" rotationPoint="1,1" blend="NORMAL" alignment="CENTER" drawShadow="true" onState="Facing.Right"/>
				<SpriteRender name="Sprite26_back" offset="-2.8,11.3" rotateOffset="true" rotationPoint="-1,1" blend="NORMAL" alignment="CENTER" drawShadow="true" onState="Facing.Left"/>
			</Group>
			<Group onState="Action.None">
				<SpriteRender name="Sprite26_back" offset="-2.8,11.3" rotateOffset="true" rotationPoint="1,1" blend="NORMAL" alignment="CENTER" drawShadow="true" onState="Facing.Right"/>
				<SpriteRender name="Sprite26_back" offset="-2.8,11.3" rotateOffset="true" rotationPoint="-1,1" blend="NORMAL" alignment="CENTER" drawShadow="true" onState="Facing.Left"/>
			</Group>
			<StopIf type="or">
				<IsRenderMod>RENDER_MOD_MINI_YOU</IsRenderMod>
				<IsRenderMod>RENDER_MOD_MANNEQUIN</IsRenderMod>
			</StopIf>
			<ParticleSystemUpdate name="EmberRightParticle" onState="Action.None"/>
			<ParticleSystemRender name="EmberRightParticle" />
		</RenderBackHandItem>
 		<OnPunchStart>
			<ArithmethicOperation LeftHandVariableName="punch.flipY" RightHandVariableName="false" OperationType="Set" />
			<StopIf>
				<IsFacingLeft>false</IsFacingLeft>
			</StopIf>
			<ArithmethicOperation LeftHandVariableName="punch.flipY" RightHandVariableName="true" OperationType="Set" />
		</OnPunchStart>
		<OnPunchUpdate>
			<AvatarTransform class="Face">
				<Set name="face">MAD</Set>
			</AvatarTransform>
			<AvatarTransform class="ArmAngle">
				<Set name="armName">arm2Angle</Set>
				<Set name="pointTowardsPunchTarget">true</Set>
			</AvatarTransform>
			<AvatarTransform class="ArmAngle">
				<Set name="armName">arm1Angle</Set>
				<Set name="pointTowardsPunchTarget">true</Set>
			</AvatarTransform>
		</OnPunchUpdate>
	</RenderRules>
</ItemRenderer>
