<?xml version="1.0" encoding="utf-8"?>
<ItemRenderer>
  <Data>
    <Sprite name="s_bow" fileName="game/player_longhanditem4.rttex" textureSize="64,32" frame="6,10"/>
    <Sprite name="s_bowGlow" fileName="game/player_longhanditem4.rttex" textureSize="64,32" frame="7,10"/>
    <Sprite name="s_sleeve" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="2,6"/>
    <Sprite name="s_sleeveGlow" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="3,6"/>
    <Sprite name="s_chest" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="0,6"/>
    <Sprite name="s_chestGlow" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="1,6"/>
    <Sprite name="s_arrow" fileName="game/particles12.rttex" textureSize="32" frame="20,16"/>
    <Sprite name="s_tileArrow" fileName="game/particles12.rttex" textureSize="32" frame="18,16"/>
    <Sprite name="s_tileDestroyArrow" fileName="game/particles12.rttex" textureSize="32" frame="19,16"/>

    <StateMachines>
      <StateMachine name="Punch">
        <States>
          <State name="True"/>
          <State name="False"/>
        </States>
        <Transitions>
          <Transition from="False" to="True">
            <Condition type="and">
              <IsAction>PUNCH</IsAction>
              <IsZombified>false</IsZombified>
            </Condition>
          </Transition>
          <Transition from="True" to="False">
            <Condition>
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
    </StateMachines>

    <Animations>
      <SpriteAnimation name="a_bow" isLoop="true" playOnState="Punch.False" sprite="s_bow"  animTime="2000">
        <Frame>6,10</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_bowPunch" isLoop="true" playOnState="Punch.True" sprite="s_bow"  animTime="200">
        <Frame>7,10</Frame>
		<Frame>7,11</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_bowGlowNoPunch" isLoop="true" playOnState="Punch.False" sprite="s_bowGlow"  animTime="2000">
        <Frame>7,10</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_bowGlowPunchSprite" isLoop="true" playOnState="Punch.True" sprite="s_bowGlow"  animTime="200">
        <Frame>7,10</Frame>
		<Frame>7,11</Frame>
      </SpriteAnimation>
      <SpriteCurveAnimation name="a_bowGlow" isLoop="true" playOnState="Punch.False" sprite="s_bowGlow" animTime="2000">
        <Curve name="alpha">
          <KeyFrame>0.f, 0.f</KeyFrame>
          <KeyFrame>0.5f, 1.f </KeyFrame>
          <KeyFrame>1.f, 0.f</KeyFrame>
        </Curve>
      </SpriteCurveAnimation>
      <SpriteCurveAnimation name="a_sleeveGlow" isLoop="true" playOnState="Punch.False" sprite="s_sleeveGlow" animTime="2000">
        <Curve name="alpha">
          <KeyFrame>0.f, 0.f</KeyFrame>
          <KeyFrame>0.5f, 1.f </KeyFrame>
          <KeyFrame>1.f, 0.f</KeyFrame>
        </Curve>
      </SpriteCurveAnimation>
      <SpriteCurveAnimation name="a_chestGlow" isLoop="true" playOnState="Punch.False" sprite="s_chestGlow" animTime="2000">
        <Curve name="alpha">
          <KeyFrame>0.f, 0.f</KeyFrame>
          <KeyFrame>0.5f, 1.f </KeyFrame>
          <KeyFrame>1.f, 0.f</KeyFrame>
        </Curve>
      </SpriteCurveAnimation>
      <SpriteCurveAnimation name="a_bowGlowPunch" isLoop="true" playOnState="Punch.True" sprite="s_bowGlow" animTime="3000">
        <Curve name="alpha">
          <KeyFrame>0.f, 1.f</KeyFrame>
          <KeyFrame>1.f, 1.f</KeyFrame>
        </Curve>
      </SpriteCurveAnimation>
      <SpriteCurveAnimation name="a_sleeveGlowPunch" isLoop="true" playOnState="Punch.True" sprite="s_sleeveGlow" animTime="3000">
        <Curve name="alpha">
          <KeyFrame>0.f, 1.f</KeyFrame>
          <KeyFrame>1.f, 1.f</KeyFrame>
        </Curve>
      </SpriteCurveAnimation>
      <SpriteCurveAnimation name="a_chestGlowPunch" isLoop="true" playOnState="Punch.True" sprite="s_chestGlow" animTime="3000">
        <Curve name="alpha">
          <KeyFrame>0.f, 1.f</KeyFrame>
          <KeyFrame>1.f, 1.f</KeyFrame>
        </Curve>
      </SpriteCurveAnimation>
    </Animations>

    <VariableMap>
      <Set name="projectile_offset">0, 0</Set>
      <Set name="projectile_angle">0</Set>
    </VariableMap>

    <ParticleSystems>
      <ParticleSystem name="ps_punchProjectile" updateStage="RenderBackHandItem" updateState="Punch.True">
        <Emitter attachment="handspotRoot">
          <Set name="offset">-3, 0</Set>
          <Set name="lifeTime">0.25</Set>
          <Set name="emissionInterval">0.25</Set>
          <Set name="infParticles">true</Set>
          <Set name="checkParticleNumToEmit">true</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="particlesToEmit">1</Set>
        </Emitter>
        <Particle randomSpriteFrame="true">
          <Set name="sprite">s_arrow</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="renderAlignment">RIGHT_CENTER</Set>
          <Set name="lifeTime">0.2</Set>
          <Random name="targetPosOffset" min="-4,-4" max="4,4"/>
          <VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="1" angleOutVar="projectile_angle"/>
          <Set name="rotateWithVelocity">true</Set>
          <SetVar name="projectile_offset" source="targetPosOffset"/>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_tileArrow">
        <Emitter>
          <Set name="infParticles">true</Set>
          <Set name="checkParticleNumToEmit">false</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="particlesToEmit">1</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_tileArrow</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.6</Set>
          <Set name="renderAlignment">RIGHT_CENTER</Set>
          <Set name="offset" source="projectile_offset"/>
          <Set name="initialAngle" source="projectile_angle"/>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_tileDestroyArrow">
        <Emitter>
          <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_tileDestroyArrow</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.6</Set>
          <Set name="renderAlignment">RIGHT_CENTER</Set>
          <Set name="offset" source="projectile_offset"/>
          <Set name="initialAngle" source="projectile_angle"/>
          <Curve name="initialAlpha">
            <KeyFrame>0, 0</KeyFrame>
			<KeyFrame>0.2, 0</KeyFrame>
            <KeyFrame>0.7, 1</KeyFrame>
            <KeyFrame>0.9, 1</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
        </Particle>
      </ParticleSystem>
    </ParticleSystems>

    <RenderOptions>
      <Default>
        <Set name="PunchSoundOverride">HAND</Set>
        <Set name="PlayDefaultPunchAudio">false</Set>
        <Set name="DefaultRenderMannequinHandItem">false</Set>
        <Set name="RenderFrontArmInfected">true</Set>
        <Set name="RenderBackArmInfected">true</Set>
        <Set name="RenderBackArmBuild">true</Set>
        <Set name="IgnoreDefaultDamagedTileEffect">true</Set>
        <Set name="IncludeAllActions">true</Set>
        <Set name="HideParticlesOnTransform">true</Set>
      </Default>
    </RenderOptions>

    <TileStampData>
      <Set name="FileName">game/particles10.rttex</Set>
      <Set name="EndFrame">21,1</Set>
      <Set name="FrameCount">4</Set>
    </TileStampData>
  </Data>

  <RenderRules>
    <RenderFrontArm value="playerCenter">
      <SpriteRender name="s_chest" offset="0, -16" useFixedRotation="true" fixedRotation="0" blend="PREMULTIPLIED_ALPHA"/>
      <SpriteRender name="s_chestGlow" offset="0, -16" useFixedRotation="true" fixedRotation="0" blend="PREMULTIPLIED_ALPHA" drawShadow="false"/>
    </RenderFrontArm>
    <RenderBackHandItem>
      <StopIf>
        <IsAction>BUILD</IsAction>
      </StopIf>
      <StopIf type="and">
        <IsZombified>true</IsZombified>
        <IsAction>PUNCH</IsAction>
      </StopIf>
      <SpriteRender name="s_bow" offset="-2,-2" rotationPoint="0,1" alignment="CENTER" rotateOffset="true" blend="PREMULTIPLIED_ALPHA"/>
      <SpriteRender name="s_bowGlow" offset="-2,-2" rotationPoint="0,1" alignment="CENTER" rotateOffset="true" blend="PREMULTIPLIED_ALPHA" drawShadow="false"/>
      <SpriteRender name="s_sleeve" offset="-3,11" rotateOffset="true" rotationPoint="0,1" alignment="CENTER" blend="PREMULTIPLIED_ALPHA"/>
      <SpriteRender name="s_sleeveGlow" offset="-3,11" rotateOffset="true" rotationPoint="0,1" alignment="CENTER" blend="PREMULTIPLIED_ALPHA" drawShadow="false"/>
    </RenderBackHandItem>
    <OnPunchUpdate>
      <AvatarTransform class="Face">
        <Set name="face">MAD</Set>
      </AvatarTransform>
      <AvatarTransform class="ArmAngle">
        <Set name="armName">arm1Angle</Set>
        <Set name="pointTowardsPunchTarget">true</Set>
      </AvatarTransform>
      <AvatarTransform class="ArmAngle">
        <Set name="armName">arm2Angle</Set>
        <Set name="armAngle">1500</Set>
        <Set name="isAdditive">true</Set>
      </AvatarTransform>
    </OnPunchUpdate>
    <OnDamagedTile>
      <StopIf type="or">
        <IsWearing slot="SHIRT">ITEM_ID_TACTICAL_STEALTH_DEVICE</IsWearing>
        <IsSitting ItemID="ITEM_ID_THEATER_SEAT">true</IsSitting>
      </StopIf>
      <ParticleSystemUpdate name="ps_tileArrow" />
      <ParticleSystemUpdate name="ps_tileDestroyArrow" />
    </OnDamagedTile>
  </RenderRules>
</ItemRenderer>