<?xml version="1.0" encoding="utf-8"?>
<ItemRenderer>
  <Data>
    <Sprite name="s_staff" fileName="game/player_longhanditem4.rttex" textureSize="64,32" frame="0,11" />
    <Sprite name="s_punchSparkleMain" fileName="game/particles12.rttex" textureSize="32" frame="24,12"/>
    <Sprite name="s_punchSparkleTrail" fileName="game/particles12.rttex" textureSize="32" frame="25,12"/>

    <Animations>
      <SpriteAnimation name="a_staff" sprite="s_staff" autoPlay="true" isLoop="true" animTime="400">
        <Frame>0,11</Frame>
        <Frame>1,11</Frame>
        <Frame>2,11</Frame>
        <Frame>3,11</Frame>
      </SpriteAnimation>
    </Animations>

    <ParticleSystems>
      <ParticleSystem name="ps_mainPunchSparkleMain" updateStage="OnPunchStart" secondary="ps_trail">
        <Emitter attachment="targetPos">
          <Set name="offset">0,-48</Set>
          <Set name="lifeTime">0.5</Set>
          <Set name="particlesPerEmission">1</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_punchSparkleMain</Set>
          <Random name="offset" min="-60,-35" max="60,-25"/>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="rotateWithVelocity">true</Set>
          <Set name="lifeTime">0.5</Set>
          <VectorTo name="initialVelocity" source="targetPos" duration="lifeTime" x="1"/>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_trail">
        <Emitter>
          <Set name="lifeTime">0.5</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="particlesToEmit">80</Set>
          <Set name="emissionInterval">0.05</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_punchSparkleTrail</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.3</Set>
          <Random name="initialRotationRate" min="-120" max="120"/>
          <Random name="offset" min="-2,-2" max="2,2"/>
          <Random name="initialScale" min="0.5,0.5" max="1,1"/>
          <Curve name="initialAlpha">
            <KeyFrame>0, 1</KeyFrame>
            <KeyFrame>0.5, 1</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
        </Particle>
      </ParticleSystem>
    </ParticleSystems>

    <StateMachines>
      <StateMachine name="Action">
        <States>
          <State name="OnGround"/>
          <State name="InAir"/>
          <State name="Punching"/>
        </States>
        <Transitions>
          <Transition to="OnGround" from="InAir|Punching">
            <Condition type="and">
              <IsVariableBool name="onGround">true</IsVariableBool>
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition to="InAir" from="OnGround|Punching">
            <Condition type="and">
              <IsVariableBool name="onGround">false</IsVariableBool>
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition to="Punching" from="OnGround|InAir">
            <Condition>
              <IsAction>PUNCH</IsAction>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
    </StateMachines>

    <RenderOptions>
      <Default>
        <Set name="DefaultRenderMannequinHandItem">false</Set>
        <Set name="HideParticlesOnTransform">false</Set>
        <Set name="RenderBackArmBuild">true</Set>
        <Set name="IncludeAllActions">true</Set>
        <Set name="RenderFrontArmInfected">true</Set>
        <Set name="RenderBackArmInfected">true</Set>
      </Default>
    </RenderOptions>

  </Data>

  <RenderRules>
    <Update>
      <StopIf>
        <IsAction>BUILD</IsAction>
      </StopIf>
      <StopIf type="and">
        <IsZombified>true</IsZombified>
        <IsAction>PUNCH</IsAction>
      </StopIf>
      <AvatarTransform class="ArmAngle" onState="Action.InAir">
        <Set name="armName">arm1Angle</Set>
        <Set name="armAngle">-140</Set>
      </AvatarTransform>
      <AvatarTransform class="ArmAngle" onState="Action.OnGround|Action.Punching">
        <Set name="armName">arm1Angle</Set>
        <Set name="armAngle">-90</Set>
      </AvatarTransform>
    </Update>
    <OnPunchUpdate>
      <AvatarTransform class="Face">
        <Set name="face">MAD</Set>
      </AvatarTransform>
    </OnPunchUpdate>
    <RenderBackHandItem>
      <StopIf>
        <IsAction>BUILD</IsAction>
      </StopIf>
      <StopIf type="and">
        <IsZombified>true</IsZombified>
        <IsAction>PUNCH</IsAction>
      </StopIf>
      <Translate onState="Action.OnGround">-3,3,0</Translate>
      
      <Translate onState="Action.InAir">-6,2,0</Translate>
      <Rotate onState="Action.InAir">50,0,0,1</Rotate>

      <Translate onState="Action.Punching">-3,3,0</Translate>
      <Rotate onState="Action.Punching">20,0,0,1</Rotate>
      
      <SpriteRender name="s_staff" blend="PREMULTIPLIED_ALPHA"/>
    </RenderBackHandItem>
  </RenderRules>
</ItemRenderer>