<?xml version="1.0" encoding="utf-8"?>
<ItemRenderer>
  <Data>
    <Sprite name="s_frontDagger" fileName="game/player_cosmetics3.rttex" textureSize="32" frame="0,23"/>
    <Sprite name="s_backDagger" fileName="game/player_cosmetics3.rttex" textureSize="32" frame="1,23"/>
    <Sprite name="s_aura" fileName="game/particles_large13.rttex" textureSize="64" frame="13,8"/>
    <Sprite name="s_projectile" fileName="game/particles11.rttex" textureSize="32" frame="22,26"/>
    <Sprite name="s_hitShrapnel" fileName="game/particles11.rttex" textureSize="32" frame="21,28"/>

    <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>
    </StateMachines>

    <Animations>
      <SpriteAnimation name="a_aura" sprite="s_aura">
        <Frame>13,8</Frame>
        <Frame>14,8</Frame>
        <Frame>15,8</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_hitShrapnel" sprite="s_hitShrapnel">
        <Frame>21,28</Frame>
        <Frame>22,28</Frame>
      </SpriteAnimation>
    </Animations>

    <ParticleSystems>
      <ParticleSystem name="ps_punchProjectile" updateStage="AddClothingParticles" updateState="Motion.Punch">
        <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>
          <Set name="offset">8,-16</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_projectile</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.3</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 0</KeyFrame>
            <KeyFrame>0.2, 0</KeyFrame>
            <KeyFrame>0.2, 1</KeyFrame>
            <KeyFrame>1, 1</KeyFrame>
          </Curve>
          <Random name="offset" min="-10, -8" max="10, 8" />
          <VectorTo name="initialVelocity" source="targetPos" offset="offset" duration="lifeTime" x="1"/>
          <Set name="rotateWithVelocity">true</Set>
          <OnFinish>
            <ParticleSystemName>ps_punchSmoke</ParticleSystemName>
          </OnFinish>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_punchSmoke">
        <Emitter>
          <Random name="emissionInterval" min="0.01" max="0.1" />
          <Set name="infParticles">true</Set>
          <Set name="lifeTime">0.5</Set>
          <Set name="particlesPerEmission">2.5</Set>
        </Emitter>
        <Particle randomSpriteFrame="true">
          <Set name="sprite">s_aura</Set>
          <Set name="renderAlignment">UPPER_CENTER</Set>
          <Set name="blendingMode">ADDITIVE</Set>
          <Random name="offset" min="-8, -8" max="8, 8" />
          <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.2, 0.2</KeyFrame>
            <KeyFrame>1, 0.4, 0.6</KeyFrame>
          </Curve>
          <Set name="lifeTime">1</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="-2, -12" max="6, -12" />
        </Emitter>
        <Particle randomSpriteFrame="true">
          <Set name="inSpecificOrder">true</Set>
          <Set name="sprite">s_aura</Set>
          <Set name="renderAlignment">UPPER_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.2, 0.2</KeyFrame>
            <KeyFrame>1, 0.2, 0.3</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="14, -12" max="22, -12" />
        </Emitter>
        <Particle randomSpriteFrame="true">
          <Set name="inSpecificOrder">true</Set>
          <Set name="sprite">s_aura</Set>
          <Set name="renderAlignment">UPPER_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.2, 0.2</KeyFrame>
            <KeyFrame>1, 0.2, 0.3</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="-2, -15" max="6, -15" />
        </Emitter>
        <Particle randomSpriteFrame="true">
          <Set name="inSpecificOrder">true</Set>
          <Set name="sprite">s_aura</Set>
          <Set name="renderAlignment">UPPER_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.2, 0.2</KeyFrame>
            <KeyFrame>1, 0.4, 0.6</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="14, -15" max="22, -15" />
        </Emitter>
        <Particle randomSpriteFrame="true">
          <Set name="inSpecificOrder">true</Set>
          <Set name="sprite">s_aura</Set>
          <Set name="renderAlignment">UPPER_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.2, 0.2</KeyFrame>
            <KeyFrame>1, 0.4, 0.6</KeyFrame>
          </Curve>
          <Set name="lifeTime">1</Set>
          <Random name="flipX" min="false" max="true"/>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_shrapnel">
        <Emitter>
          <Set name="lifeTime">0.25</Set>
          <Set name="particlesPerEmission">16</Set>
          <Set name="particlesToEmit">1</Set>
        </Emitter>
        <Particle randomSpriteFrame="true">
          <Set name="sprite">s_hitShrapnel</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">1</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 1</KeyFrame>
            <KeyFrame>0.5, 1</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Curve name="initialScale">
            <KeyFrame>0, 1.1,1.1</KeyFrame>
            <KeyFrame>1, 0,0</KeyFrame>
          </Curve>
          <Random name="initialRotationRate" min="5" max="15" />
          <Random name="offset" min="-8" max="8" />
          <RandomRadial name="initialVelocity" angleRange="0,360" radiusRange="50,100" />
        </Particle>
      </ParticleSystem>
    </ParticleSystems>

    <RenderOptions>
      <Default>
        <Set name="PunchSoundOverride">HAND</Set>
        <Set name="PlayDefaultPunchAudio">false</Set>
        <Set name="RenderBackArmInfected">true</Set>
        <Set name="RenderFrontArmInfected">false</Set>
        <Set name="RenderBackArmBuild">true</Set>
        <Set name="IncludeAllActions">true</Set>
        <Set name="DefaultRenderMannequinHandItem">false</Set>
        <Set name="IgnoreDefaultDamagedTileEffect">true</Set>
      </Default>
    </RenderOptions>
  </Data>

  <RenderRules>
    <RenderBackHandItem>
      <StopIf>
        <IsAction>BUILD</IsAction>
      </StopIf>
      <StopIf type="and">
        <IsZombified>true</IsZombified>
        <IsAction>PUNCH</IsAction>
      </StopIf>
      <ParticleSystemRender name="ps_backSmoke"/>
      <ParticleSystemRender name="ps_backSmokeMove"/>
      <SpriteRender name="s_backDagger" offset="-2,5" rotationPoint="0,1" alignment="CENTER" rotateOffset="true" blend="PREMULTIPLIED_ALPHA"/>
    </RenderBackHandItem>
    <RenderHandItem>
      <SpriteRender name="s_frontDagger" offset="0,0.5" alignment="UPPER_CENTER" blend="PREMULTIPLIED_ALPHA" />
    </RenderHandItem>
    <OnPunchUpdate>
      <StopIf>
        <IsZombified>true</IsZombified>
      </StopIf>
      <AvatarTransform class="Face">
        <Set name="face">MAD</Set>
      </AvatarTransform>
      <AvatarTransform class="ArmAngle">
        <Set name="armName">arm1Angle</Set>
        <Set name="animTime">200</Set>
        <Set name="Curve">
          <KeyFrame>0, 0</KeyFrame>
          <KeyFrame>1, 360</KeyFrame>
        </Set>
      </AvatarTransform>
      <AvatarTransform class="ArmAngle">
        <Set name="armName">arm2Angle</Set>
        <Set name="animTime">200</Set>
        <Set name="Curve">
          <KeyFrame>0, 180</KeyFrame>
          <KeyFrame>1, 540</KeyFrame>
        </Set>
      </AvatarTransform>
    </OnPunchUpdate>
    <OnDamagedTile>
      <ParticleSystemUpdate name="ps_shrapnel" />
    </OnDamagedTile>
  </RenderRules>
</ItemRenderer>