<?xml version="1.0"?>
<ItemRenderer item="ITEM_ID_BURNING_PEARL_SPINNER">
	<Data>
		<Sprite name="PunchFireSprite" fileName="game/particles11.rttex" textureSize="32" frame="26,22" />
		<Sprite name="SmokeSprite" fileName="game/particles11.rttex" textureSize="32" frame="27,22" />
		<Sprite name="SparkleSprite" fileName="game/particles11.rttex" textureSize="32" frame="29,22" />
		<Sprite name="StickFireSprite" fileName="game/particles11.rttex" textureSize="32" frame="19,22" />
		<Sprite name="StickPearlSprite" fileName="game/particles11.rttex" textureSize="32" frame="25,22" />
		<Sprite name="StickSprite" fileName="game/player_longhanditem4.rttex" textureSize="64,32" frame="6,2" />
		<Sprite name="TileHitSprite" fileName="game/particles11.rttex" textureSize="32" frame="26,22" />
		<StateMachines>
			<StateMachine name="PlayerAction">
				<States>
					<State name="Idle" />
					<State name="Punch" />
					<State name="Move" />
					<State name="Dance" />
				</States>
				<Transitions>
					<Transition from="Idle|Punch|Dance" to="Move">
						<Condition type="and">
							<IsVariableFloat name="speed.length" operator="Greater" abs="true">0.1</IsVariableFloat>
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
							<IsAction operatorType="NotEqual">DANCE</IsAction>
							<IsAction operatorType="NotEqual">DANCE_DAB</IsAction>
							<IsAction operatorType="NotEqual">DANCE_FLOSS</IsAction>
						</Condition>
					</Transition>
					<Transition from="Move|Punch|Dance" to="Idle">
						<Condition type="and">
							<IsVariableFloat name="speed.length" operator="Less" abs="true">0.1</IsVariableFloat>
							<IsAction operatorType="NotEqual">PUNCH</IsAction>
							<IsAction operatorType="NotEqual">DANCE</IsAction>
							<IsAction operatorType="NotEqual">DANCE_DAB</IsAction>
							<IsAction operatorType="NotEqual">DANCE_FLOSS</IsAction>
						</Condition>
					</Transition>
					<Transition from="Move|Idle|Dance" to="Punch">
						<Condition>
							<IsAction>PUNCH</IsAction>
						</Condition>
					</Transition>
					<Transition from="Move|Idle|Punch" to="Dance">
						<Condition>
							<IsAction>DANCE</IsAction>
							<IsAction>DANCE_DAB</IsAction>
							<IsAction>DANCE_FLOSS</IsAction>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
      <StateMachine name="TrailParticles">
				<States>
					<State name="On" />
					<State name="Off" />
				</States>
				<Transitions>
					<Transition from="Off" to="On">
						<Condition type="and">
              <IsSitting ItemID="ITEM_ID_THEATER_SEAT">false</IsSitting>
              <IsSleepingOnaBed>false</IsSleepingOnaBed>
						</Condition>
					</Transition>
					<Transition from="On" to="Off">
						<Condition type="or">
              <IsSitting ItemID="ITEM_ID_THEATER_SEAT">true</IsSitting>
              <IsSleepingOnaBed>true</IsSleepingOnaBed>
						</Condition>
					</Transition>
				</Transitions>
			</StateMachine>
		</StateMachines>
		<Animations>
			<CurveAnimationVec4 name="staff_rotation_anim_right" isLoop="true" useFacing="RIGHT" playOnState="PlayerAction.Move|PlayerAction.Dance" sprite="StickSprite" animTime="500">
				<Curve name="staff_rotation">
					<KeyFrame>0, 0, 0,0,1</KeyFrame>
					<KeyFrame>1, -360, 0,0,1</KeyFrame>
				</Curve>
			</CurveAnimationVec4>
			<CurveAnimationVec4 name="staff_rotation_anim_left" isLoop="true" useFacing="LEFT" playOnState="PlayerAction.Move|PlayerAction.Dance" sprite="StickSprite" animTime="500">
				<Curve name="staff_rotation">
					<KeyFrame>0, 0, 0,0,1</KeyFrame>
					<KeyFrame>1, 360, 0,0,1</KeyFrame>
				</Curve>
			</CurveAnimationVec4>
			<CurveAnimationVec4 name="staff_fixed_rotation" playOnState="PlayerAction.Idle|PlayerAction.Punch" sprite="StickSprite" animTime="1">
				<Curve name="staff_rotation">
					<KeyFrame>0, 0, 0,0,1</KeyFrame>
				</Curve>
			</CurveAnimationVec4>
			<SpriteAnimation name="random_smoke" sprite="SmokeSprite" animTime="800" autoPlay="true" isLoop="true">
				<Frame>27,22</Frame>
				<Frame>28,22</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="random_sparkles" sprite="SparkleSprite">
				<Frame>29,22</Frame>
				<Frame>30,22</Frame>
			</SpriteAnimation>
			<SpriteAnimation name="stick_fire_animation" sprite="StickFireSprite" animTime="600" autoPlay="true" isLoop="true">
				<Frame>19,22</Frame>
				<Frame>20,22</Frame>
				<Frame>21,22</Frame>
				<Frame>22,22</Frame>
				<Frame>23,22</Frame>
				<Frame>24,22</Frame>
			</SpriteAnimation>
		</Animations>
		<VariableMap>
			<Set name="staff_rotation">0, 0, 0, 1</Set>
			<Set name="staff_offset">0, 8, 0</Set>
			<Set name="fire_offset_right">16, 0, 0</Set>
			<Set name="fire_offset_left">-16, 0, 0</Set>
			<Set name="fire_rotation">0, 0, 0, 1</Set>
			<Set name="fire_offset_down">0, -4, 0</Set>
		</VariableMap>
		<ParticleSystems>
			<ParticleSystem name="PunchFire">
				<Emitter>
					<Set name="offset">8, -18</Set>
					<Set name="offsetFacing">true</Set>
					<Random name="emissionInterval" min="0.001" max="0.005" />
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle autoLifeTimeToTarget="true">
					<Set name="sprite">PunchFireSprite</Set>
					<Set name="relativeToEmitter">true</Set>
					<Set name="renderAlignment">LEFT_CENTER</Set>
					<Set name="blendingMode">ADDITIVE</Set>
					<Set name="rotateWithVelocity">true</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>0.8, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Curve name="initialScale">
						<KeyFrame>0, 1, 0.3</KeyFrame>
						<KeyFrame>1, 1.5, 2</KeyFrame>
					</Curve>
					<RandomRadial name="initialVelocity" angleRange="-5,5" radiusRange="150,200" baseAnglePosition="targetPos" baseOffset="0,16" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="SmokeTrailLeft">
				<Emitter>
					<Random name="emissionInterval" min="0.25" max="0.5" />
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
          <Set name="inSpecificOrder">true</Set>
					<Set name="sprite">SmokeSprite</Set>
					<Random name="offset" min="-4, 0" max="4, 0" />
					<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, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Curve name="initialScale">
						<KeyFrame>0, 0.5, 0.5</KeyFrame>
						<KeyFrame>1, 0.25, 1</KeyFrame>
					</Curve>
					<Set name="lifeTime">1</Set>
					<Random name="initialVelocity" min="0, -20" max="0, -30" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="SmokeTrailLeftMove">
				<Emitter>
					<Random name="emissionInterval" min="0.05" max="0.2" />
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
          <Set name="inSpecificOrder">true</Set>
					<Set name="sprite">SmokeSprite</Set>
					<Random name="offset" min="-4, 0" max="4, 0" />
					<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, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Curve name="initialScale">
						<KeyFrame>0, 0.5, 0.5</KeyFrame>
						<KeyFrame>1, 0.25, 1</KeyFrame>
					</Curve>
					<Set name="lifeTime">1</Set>
					<Random name="initialVelocity" min="0, -20" max="0, -30" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="SmokeTrailRight">
				<Emitter>
					<Random name="emissionInterval" min="0.25" max="0.5" />
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
          <Set name="inSpecificOrder">true</Set>
					<Set name="sprite">SmokeSprite</Set>
					<Random name="offset" min="-4, 0" max="4, 0" />
					<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, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Curve name="initialScale">
						<KeyFrame>0, 0.5, 0.5</KeyFrame>
						<KeyFrame>1, 0.25, 1</KeyFrame>
					</Curve>
					<Set name="lifeTime">1</Set>
					<Random name="initialVelocity" min="0, -20" max="0, -30" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="SmokeTrailRightMove">
				<Emitter>
					<Random name="emissionInterval" min="0.05" max="0.2" />
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle>
          <Set name="inSpecificOrder">true</Set>
					<Set name="sprite">SmokeSprite</Set>
					<Random name="offset" min="-4, 0" max="4, 0" />
					<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, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Curve name="initialScale">
						<KeyFrame>0, 0.5, 0.5</KeyFrame>
						<KeyFrame>1, 0.25, 1</KeyFrame>
					</Curve>
					<Set name="lifeTime">1</Set>
					<Random name="initialVelocity" min="0, -20" max="0, -30" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="SparkleTrailLeft">
				<Emitter>
					<Random name="emissionInterval" min="0.07" max="0.14" />
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle randomSpriteFrame="true">
          <Set name="inSpecificOrder">true</Set>
					<Set name="sprite">SparkleSprite</Set>
					<Random name="offset" min="-4, -4" max="4, 4" />
					<Set name="blendingMode">ADDITIVE</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="initialScale">0.75, 0.75</Set>
					<Set name="lifeTime">1</Set>
					<Random name="initialVelocity" min="0, -20" max="0, -30" />
					<Random name="initialAngle" min="-75" max="75" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="SparkleTrailLeftMove">
				<Emitter>
					<Random name="emissionInterval" min="0" max="0.02" />
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle randomSpriteFrame="true">
          <Set name="inSpecificOrder">true</Set>
					<Set name="sprite">SparkleSprite</Set>
					<Random name="offset" min="-4, -4" max="4, 4" />
					<Set name="blendingMode">ADDITIVE</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="initialScale">0.75, 0.75</Set>
					<Set name="lifeTime">1</Set>
					<Random name="initialVelocity" min="0, -20" max="0, -30" />
					<Random name="initialAngle" min="-75" max="75" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="SparkleTrailRight">
				<Emitter>
					<Random name="emissionInterval" min="0.07" max="0.14" />
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle randomSpriteFrame="true">
          <Set name="inSpecificOrder">true</Set>
					<Set name="sprite">SparkleSprite</Set>
					<Random name="offset" min="-4, -4" max="4, 4" />
					<Set name="blendingMode">ADDITIVE</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="initialScale">0.75, 0.75</Set>
					<Set name="lifeTime">1</Set>
					<Random name="initialVelocity" min="0, -20" max="0, -30" />
					<Random name="initialAngle" min="-75" max="75" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="SparkleTrailRightMove">
				<Emitter>
					<Random name="emissionInterval" min="0" max="0.02" />
					<Set name="infParticles">true</Set>
					<Set name="infLifeTime">true</Set>
					<Set name="particlesPerEmission">1</Set>
				</Emitter>
				<Particle randomSpriteFrame="true">
          <Set name="inSpecificOrder">true</Set>
					<Set name="sprite">SparkleSprite</Set>
					<Random name="offset" min="-4, -4" max="4, 4" />
					<Set name="blendingMode">ADDITIVE</Set>
					<Curve name="initialAlpha">
						<KeyFrame>0, 1</KeyFrame>
						<KeyFrame>1, 0</KeyFrame>
					</Curve>
					<Set name="initialScale">0.75, 0.75</Set>
					<Set name="lifeTime">1</Set>
					<Random name="initialVelocity" min="0, -20" max="0, -30" />
					<Random name="initialAngle" min="-75" max="75" />
				</Particle>
			</ParticleSystem>
			<ParticleSystem name="TileHitParticle">
        <Emitter>
          <Set name="lifeTime">0.2</Set>
          <Set name="infParticles">true</Set>
          <Set name="checkParticleNumToEmit">true</Set>
          <Set name="particlesPerEmission">8</Set>
          <Set name="particlesToEmit">1</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">TileHitSprite</Set>
          <Random name="offset" min="-6" max="6" />
          <Set name="blendingMode">ADDITIVE</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 1</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Set name="useGravity">true</Set>
          <Random name="initialScale" min="0.6" max="0.8" />
          <Set name="lifeTime">0.5</Set>
          <RandomRadial name="initialVelocity" angleRange="0,-180" radiusRange="100,150" />
          <Set name="initialAngle">90</Set>
          <Set name="gravityVector">0, 50</Set>
        </Particle>
			</ParticleSystem>
		</ParticleSystems>
		<TileStampData>
			<Set name="RenderObjectName">BurningPearlSpinnerTileStamp</Set>
			<Set name="RenderDefaultCracks">true</Set>
		</TileStampData>
    <RenderOptions>
      <Default>
        <Set name="PunchSoundOverride">HAND</Set>
        <Set name="PlayDefaultPunchAudio">false</Set>
        <Set name="RenderFrontArmInTheFront">true</Set>
        <Set name="RenderFrontArmInfected">true</Set>
        <Set name="IncludeAllActions">true</Set>
        <Set name="IgnoreDefaultDamagedTileEffect">true</Set>
        <Set name="DefaultRenderMannequinHandItem">false</Set>
      </Default>
    </RenderOptions>
	</Data>
	<RenderRules>
		<OnPunchUpdate>
      <AvatarTransform class="Emotion">
        <Set name="emotion">SWIMMING</Set>
      </AvatarTransform>
			<AvatarTransform class="ArmAngle">
				<Set name="armName">arm2Angle</Set>
				<Set name="armAngle">-40</Set>
			</AvatarTransform>
			<AvatarTransform class="ArmAngle">
				<Set name="armName">arm1Angle</Set>
				<Set name="armAngle">0</Set>
			</AvatarTransform>
		</OnPunchUpdate>
		<RenderHandItem>
			<Translate>staff_offset</Translate>
			<Rotate onState="PlayerAction.Punch|PlayerAction.Idle">staff_rotation</Rotate>
			<Rotate forceValue="true" onState="PlayerAction.Move|PlayerAction.Dance">staff_rotation</Rotate>
			<SpriteRender name="StickSprite" blend="PREMULTIPLIED_ALPHA" />
			<StopIf>
				<IsZombified>true</IsZombified>
        <IsSitting ItemID="ITEM_ID_THEATER_SEAT">true</IsSitting>
        <IsSleepingOnaBed>true</IsSleepingOnaBed>
			</StopIf>
			<Group>
				<Translate>fire_offset_right</Translate>
				<Rotate forceValue="true">fire_rotation</Rotate>
				<Group onState="PlayerAction.Idle|PlayerAction.Move|PlayerAction.Dance">
					<Translate>fire_offset_down</Translate>
					<SpriteRender name="StickFireSprite" blend="ADDITIVE" drawShadow="false"/>
				</Group>
        <StopIf>
          <IsVariableBool name="isMannequin">true</IsVariableBool>
        </StopIf>
        <ParticleSystemUpdate name="SmokeTrailRight" onState="PlayerAction.Idle|PlayerAction.Dance" />
        <ParticleSystemUpdate name="SparkleTrailRight" onState="PlayerAction.Idle|PlayerAction.Dance" />
        <ParticleSystemUpdate name="SmokeTrailRightMove" onState="PlayerAction.Move" />
        <ParticleSystemUpdate name="SparkleTrailRightMove" onState="PlayerAction.Move" />
				<ParticleSystemRender name="SmokeTrailRight" onState="PlayerAction.Idle|PlayerAction.Dance" />
        <ParticleSystemRender name="SparkleTrailRight" onState="PlayerAction.Idle|PlayerAction.Dance" />
        <ParticleSystemRender name="SmokeTrailRightMove" onState="PlayerAction.Move" />
        <ParticleSystemRender name="SparkleTrailRightMove" onState="PlayerAction.Move" />
			</Group>
      <SpriteRender name="StickPearlSprite" blend="PREMULTIPLIED_ALPHA" rotateOffset="true" offset="16,0" scale="0.8,0.8"/>
			<Group>
				<Translate>fire_offset_left</Translate>
				<Rotate forceValue="true">fire_rotation</Rotate>
				<Group onState="PlayerAction.Idle|PlayerAction.Move|PlayerAction.Dance">
					<Translate>fire_offset_down</Translate>
					<SpriteRender name="StickFireSprite" blend="ADDITIVE" drawShadow="false"/>
				</Group>
        <StopIf>
          <IsVariableBool name="isMannequin">true</IsVariableBool>
        </StopIf>
        <ParticleSystemUpdate name="SmokeTrailLeft" onState="PlayerAction.Idle|PlayerAction.Dance" />
        <ParticleSystemUpdate name="SparkleTrailLeft" onState="PlayerAction.Idle|PlayerAction.Dance" />
        <ParticleSystemUpdate name="SmokeTrailLeftMove" onState="PlayerAction.Move" />
        <ParticleSystemUpdate name="SparkleTrailLeftMove" onState="PlayerAction.Move" />
        <ParticleSystemRender name="SmokeTrailLeft" onState="PlayerAction.Idle|PlayerAction.Dance" />
        <ParticleSystemRender name="SparkleTrailLeft" onState="PlayerAction.Idle|PlayerAction.Dance" />
        <ParticleSystemRender name="SmokeTrailLeftMove" onState="PlayerAction.Move" />
        <ParticleSystemRender name="SparkleTrailLeftMove" onState="PlayerAction.Move" />
			</Group>
      <SpriteRender name="StickPearlSprite" blend="PREMULTIPLIED_ALPHA" onState="PlayerAction.Idle|PlayerAction.Move|PlayerAction.Dance" rotateOffset="true" offset="-16,0" scale="0.8,0.8"/>
		</RenderHandItem>
		<AddClothingParticles>
			<ParticleSystemUpdate name="PunchFire" onState="PlayerAction.Punch" />
		</AddClothingParticles>
		<OnDamagedTile>
			<ParticleSystemUpdate name="TileHitParticle" />
		</OnDamagedTile>
	</RenderRules>
</ItemRenderer>
