<?xml version="1.0" encoding="utf-8"?>
<ItemRenderer>
  <Data>
    <Sprite name="s_swordBack" fileName="game/player_longhanditem4.rttex" textureSize="64,32" frame="0,12" />
    <Sprite name="s_swordFront" fileName="game/player_longhanditem4.rttex" textureSize="64,32" frame="1,12" />
    <Sprite name="s_separateSlash" fileName="game/particles12.rttex" textureSize="32" frame="27,18"/>
    <Sprite name="s_combinedSlash" fileName="game/particles12.rttex" textureSize="32" frame="26,18"/>
    <Sprite name="s_flash" fileName="game/particles_large17.rttex" textureSize="64" frame="12,7" />
    <Sprite name="s_hitSparks" fileName="game/particles12.rttex" textureSize="32" frame="29,18"/>
    <Sprite name="s_hitFlash" fileName="game/particles_large17.rttex" textureSize="64" frame="13,7"/>
    <Animations>
      <SpriteAnimation name="a_swordBackNormalSeparate" sprite="s_swordBack" playOnState="PunchType.NoneSeparate|PunchType.Separate|PunchType.TransitionFromSeparate">
        <Frame>0,12</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_swordBackNormalCombined" sprite="s_swordBack" playOnState="PunchType.NoneCombined|PunchType.Combined|PunchType.TransitionFromCombine">
        <Frame>2,12</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_separateSlash" autoPlay="false" sprite="s_separateSlash">
        <Frame>27,18</Frame>
        <Frame>28,18</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="hit_Sprites" autoPlay="false" sprite="s_hitSparks">
        <Frame>29,18</Frame>
        <Frame>30,18</Frame>
        <Frame>31,18</Frame>
      </SpriteAnimation>
    </Animations>
    <RenderOptions>
      <Default>
        <Set name="PunchSoundOverride">HAND</Set>
        <Set name="PlayDefaultPunchAudio">false</Set>
        <Set name="DefaultRenderMannequinHandItem">false</Set>
        <Set name="RenderBackArmBuild">false</Set>
        <Set name="RenderFrontArmInfected">true</Set>
        <Set name="RenderBackArmInfected">true</Set>
        <Set name="UserNameOffset">15</Set>
        <Set name="IgnoreDefaultDamagedTileEffect">true</Set>
        <Set name="OnEquipTag">COMBINED_BLADE</Set>
        <Set name="RenderFrontArmInTheFront">true</Set>
      </Default>
    </RenderOptions>
    <StateMachines>
      <StateMachine name="Punch">
        <States>
          <State name="False" />
          <State name="True" />
        </States>
        <Transitions>
          <Transition from="False" to="True">
            <Condition>
              <IsAction>PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition from="True" to="False">
            <Condition>
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
      <StateMachine name="PunchType">
        <States>
          <State name="NoneSeparate"/>
          <State name="NoneCombined"/>
          <State name="Separate"/>
          <State name="Combined"/>
          <State name="TransitionFromSeparate"/>
          <State name="TransitionFromCombined"/>
        </States>
        <Transitions>
          <Transition to="NoneSeparate" from="NoneCombined|Separate|Combined|TransitionFromSeparate|TransitionFromCombined">
            <Condition type="and">
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
              <ItemHasTag operatorType="NotEqual">COMBINED_BLADE</ItemHasTag>
            </Condition>
          </Transition>
          <Transition to="NoneCombined" from="NoneSeparate|Separate|Combined|TransitionFromSeparate|TransitionFromCombined">
            <Condition type="and">
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
              <ItemHasTag>COMBINED_BLADE</ItemHasTag>
            </Condition>
          </Transition>
          <Transition to="Separate" from="NoneSeparate|NoneCombined">
            <Condition type="and">
              <IsAction>PUNCH</IsAction>
              <CompareCustomVariable operatorType="Greater" VariableNameToCompare="punchDuration">0.0</CompareCustomVariable>
              <CheckRandomRangeNumber EndNumber="2">0</CheckRandomRangeNumber>
            </Condition>
          </Transition>
          <Transition to="Combined" from="NoneSeparate|NoneCombined">
            <Condition type="and">
              <IsAction>PUNCH</IsAction>
              <CompareCustomVariable operatorType="Greater" VariableNameToCompare="punchDuration">0.0</CompareCustomVariable>
              <CheckRandomRangeNumber EndNumber="2">1</CheckRandomRangeNumber>
            </Condition>
          </Transition>
          <Transition to="TransitionFromCombined" from="Combined">
            <Condition type="and">
              <IsAction>PUNCH</IsAction>
              <CompareCustomVariable operatorType="Less" VariableNameToCompare="punchDuration">0.0</CompareCustomVariable>
            </Condition>
          </Transition>
          <Transition to="TransitionFromSeparate" from="Separate">
            <Condition type="and">
              <IsAction>PUNCH</IsAction>
              <CompareCustomVariable operatorType="Less" VariableNameToCompare="punchDuration">0.0</CompareCustomVariable>
            </Condition>
          </Transition>
          <Transition to="Combined" from="TransitionFromSeparate">
            <Condition type="and">
              <IsAction>PUNCH</IsAction>
              <CompareCustomVariable operatorType="Greater" VariableNameToCompare="punchDuration">0.0</CompareCustomVariable>
            </Condition>
          </Transition>
          <Transition to="Separate" from="TransitionFromCombined">
            <Condition type="and">
              <IsAction>PUNCH</IsAction>
              <CompareCustomVariable operatorType="Greater" VariableNameToCompare="punchDuration">0.0</CompareCustomVariable>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
    </StateMachines>
    <ParticleSystems>
      <ParticleSystem name="ps_hitSparks" updateStage="OnDamagedTile">
        <Emitter>
          <Set name="offset">0,0</Set>
          <Set name="lifeTime">0</Set>
          <Set name="particlesPerEmission">10</Set>
          <Set name="delayTimer">0.0</Set>
        </Emitter>
        <Particle randomSpriteFrame="true">
          <Set name="sprite">s_hitSparks</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.5</Set>
          <Set name="initalRGB">1,1,1</Set>
          <Set name="initialScale">1,1</Set>
          <Set name="rotateWithVelocity">true</Set>
          <Set name="interpolateAlpha">true</Set>
          <RandomRadial name="initialVelocity" angleRange="0,360" radiusRange="200,250"/>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_hitFlash" updateStage="OnDamagedTile">
        <Emitter>
          <Set name="lifeTime">1</Set>
          <Set name="particlesToEmit">1</Set>
          <Set name="particlesPerEmission">1</Set>
        </Emitter>
        <Particle>
          <Random name="initialAngle" min="-360" max="360"/>
          <Set name="sprite">s_hitFlash</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.5</Set>
          <Curve name="initialScale">
            <KeyFrame>0, 0.4,0.4</KeyFrame>
            <KeyFrame>1, 1.3,1.3</KeyFrame>
          </Curve>
          <Curve name="initialAlpha">
            <KeyFrame>0, 1</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_flash">
        <Emitter>
          <Set name="offset">6, -14</Set>
          <Set name="emissionInterval">0.1</Set>
          <Set name="infParticles">true</Set>
          <Set name="infLifeTime">true</Set>
          <Set name="checkParticleNumToEmit">true</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="particlesToEmit">1</Set>
        </Emitter>
        <Particle usePlayerFacing="true">
          <Set name="sprite">s_flash</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 1</KeyFrame>
            <KeyFrame>0.25, 1</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Curve name="initialScale">
            <KeyFrame>0, 1, 1</KeyFrame>
            <KeyFrame>1, 1.75, 1.75</KeyFrame>
          </Curve>
          <Set name="lifeTime">0.5</Set>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_separateSlash">
        <Emitter>
          <Set name="offset">9,-18</Set>
          <Set name="emissionInterval">0.25</Set>
          <Set name="lifeTime">0.25</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="particlesToEmit">1</Set>
        </Emitter>
        <Particle alternateSpriteFrameWithPunch="true">
          <Set name="sprite">s_separateSlash</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.4</Set>
          <Set name="rotateWithVelocity">true</Set>
          <Set name="initialScale">2,2</Set>
          <Set name="initialAlpha">1</Set>
          <VectorTo name="initialVelocity" source="targetPos" duration="lifeTime" x="0.8" angle="0"/>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_combinedSlash">
        <Emitter>
          <Set name="offset">24,-14</Set>
          <Set name="emissionInterval">0.25</Set>
          <Set name="lifeTime">0.25</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="particlesToEmit">1</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_combinedSlash</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.4</Set>
          <Set name="rotateWithVelocity">true</Set>
          <Set name="initialScale">2,2</Set>
          <Set name="initialAlpha">1</Set>
          <VectorTo name="initialVelocity" source="targetPos" duration="lifeTime" x="0.8" angle="0"/>
        </Particle>
      </ParticleSystem>
    </ParticleSystems>
    <VariableMap>
      <Set name="punchDuration" MinValue="2" MaxValue="4">0</Set>
      <Set name="DeltaTime">0.0</Set>
    </VariableMap>
  </Data>
  <RenderRules>
    <Update>
      <StopIf>
        <IsZombified>true</IsZombified>
      </StopIf>
      <AvatarTransform class="ArmAngle" onState="Punch.False">
        <Set name="armName">arm1Angle</Set>
        <Set name="armAngle">215</Set>
      </AvatarTransform>
    </Update>
    <AddClothingParticles>
      <StopIf>
        <IsZombified>true</IsZombified>
      </StopIf>
      <ParticleSystemUpdate name="ps_flash" onState="PunchType.Separate|PunchType.Combined"/>
    </AddClothingParticles>
    <RenderBackHandItem>
      <StopIf type="and">
        <IsZombified>true</IsZombified>
        <IsAction>PUNCH</IsAction>
      </StopIf>

      <Group onState="PunchType.NoneSeparate|PunchType.NoneCombined|PunchType.Separate|PunchType.TransitionFromSeparate">
        <SpriteRender name="s_swordBack" offset="18, 2" rotationPoint="0,1" flip="0,0" alignment="CENTER" rotateOffset="true" blend="PREMULTIPLIED_ALPHA" />
      </Group>

      <Group onState="PunchType.Combined|PunchType.TransitionFromCombine">
        <Rotate forceValue="true">0,0,0,1</Rotate>
        <Translate>-6,2,0</Translate>
        <SpriteRender name="s_swordBack" alignmentLeft="RIGHT_CENTER" alignmentRight="LEFT_CENTER" rotateOffset="true" useFixedRotation="true" fixedRotation="0" blend="PREMULTIPLIED_ALPHA" />
      </Group>
      
    </RenderBackHandItem>
    <RenderHandItem>
      <Group onState="PunchType.NoneSeparate|PunchType.Separate|PunchType.TransitionFromSeparate">
        <SpriteRender name="s_swordFront" offset="25, 8" rotationPoint="0,1" flip="0,0" alignment="CENTER" rotateOffset="true" blend="PREMULTIPLIED_ALPHA" />
      </Group>
    </RenderHandItem>
    <OnPunchUpdate>
      <StopIf>
        <IsZombified>true</IsZombified>
      </StopIf>
      
      <ArithmethicOperation LeftHandVariableName="punchDuration" RightHandVariableName="punchDuration" OperationType="Randomize" onState="PunchType.NoneSeparate|PunchType.NoneCombined|PunchType.TransitionFromCombined|PunchType.TransitionFromSeparate"/>
      
      <ArithmethicOperation LeftHandVariableName="punchDuration" RightHandVariableName="DeltaTime" OperationType="Substract"/>
      <AvatarTransform class="Face">
        <Set name="face">MAD</Set>
      </AvatarTransform>
      <Group onState="PunchType.Separate">
        <AvatarTransform class="ArmAngle">
          <Set name="armName">arm2Angle</Set>
          <Set name="animTime">1000</Set>
          <Set name="Curve">
            <KeyFrame>0.0, 0</KeyFrame>
            <KeyFrame>0.3, 0</KeyFrame>
            <KeyFrame>0.60, 360</KeyFrame>
            <KeyFrame>0.99, 720</KeyFrame>
          </Set>
        </AvatarTransform>
        <AvatarTransform class="ArmAngle">
          <Set name="armName">arm1Angle</Set>
          <Set name="animTime">1000</Set>
          <Set name="Curve">
            <KeyFrame>0.0, 60</KeyFrame>
            <KeyFrame>0.3, 360</KeyFrame>
            <KeyFrame>0.60, 360</KeyFrame>
            <KeyFrame>0.99, 720</KeyFrame>
          </Set>
        </AvatarTransform>
      </Group>
      <Group onState="PunchType.Combined">
        <AvatarTransform class="ArmAngle">
          <Set name="armName">arm1Angle</Set>
          <Set name="armAngle">1200</Set>
          <Set name="isAdditive">true</Set>
        </AvatarTransform>
        <AvatarTransform class="ArmAngle">
          <Set name="armName">arm2Angle</Set>
          <Set name="armAngle">0</Set>
        </AvatarTransform>
      </Group>
    </OnPunchUpdate>
    <OnPunchStart>
      <ParticleSystemUpdate name="ps_separateSlash" onState="PunchType.Separate"/>
      <ParticleSystemUpdate name="ps_combinedSlash" onState="PunchType.Combined"/>
    </OnPunchStart>
  </RenderRules>
</ItemRenderer>
