<?xml version="1.0"?>
<ItemRenderer>
  <Data>
    <Sprite name="s_FrontArm" fileName="game/player_cosmetics3.rttex" textureSize="32" frame="17,25"/>
    <Sprite name="s_punchBubbles" fileName="game/particles11.rttex" textureSize="32" frame="23,28" />
    <Sprite name="s_explosion" fileName="game/particles11.rttex" textureSize="32" frame="25,31" />
    <Sprite name="s_punchSplash" fileName="game/particles11.rttex" textureSize="32" frame="23,26"/>

    <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_explosion" sprite="s_explosion" animTime="400" isLoop="false">
        <Frame>29,30</Frame>
        <Frame>25,31</Frame>
        <Frame>26,31</Frame>
        <Frame>27,31</Frame>
      </SpriteAnimation>
    </Animations>

    <RenderOptions>
      <Default>
        <Set name="PunchSoundOverride">HAND</Set>
        <Set name="PlayDefaultPunchAudio">false</Set>
        <Set name="DefaultRenderMannequinHandItem">false</Set>
        <Set name="RenderFrontArmInfected">true</Set>
        <Set name="IgnoreDefaultDamagedTileEffect">true</Set>
        <Set name="RenderFrontArmInTheFront">true</Set>
      </Default>
    </RenderOptions>

    <ParticleSystems>
      <ParticleSystem name="ps_punchBubbles" updateStage="AddClothingParticles" updateState="Punch.True">
        <Emitter>
          <Set name="offset">4, -18</Set>
          <Set name="offsetFacing">true</Set>
          <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="sprite">s_punchBubbles</Set>
          <Set name="renderAlignment">CENTER</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="initialScale">0.1,0.1</Set>
          <Random name="finalScale" min="0.2" max="0.75"/>
          <Set name="interpolateScale">true</Set>
          <Set name="lifeTime">0.7</Set>
          <Random name="targetPosOffset" min="-12,-11" max="12,11"/>
          <VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="2" angleOutVar="projectile_angle"/>
          <VectorTo name="finalVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="0.1" angleOutVar="projectile_angle"/>
          <Set name="interpolateVelocity">true</Set>
          <OnFinish>
            <ParticleSystemName>ps_explosion</ParticleSystemName>
            <ParticleSystemName>ps_punchSplash</ParticleSystemName>
          </OnFinish>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_explosion">
        <Emitter>
          <Set name="lifeTime">0.4</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="offset">0,0</Set>
          <Set name="particlesToEmit">1</Set>
          <Set name="checkParticleNumToEmit">true</Set>
        </Emitter>
        <Particle UseParentScale="true">
          <Set name="sprite">s_explosion</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.4</Set>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_punchSplash">
        <Emitter attachment="targetPos">
          <Set name="lifeTime">1</Set>
          <Set name="emissionInterval">0.5</Set>
          <Set name="particlesPerEmission">2</Set>
        </Emitter>
        <Particle UseParentScale="true">
          <Set name="sprite">s_punchSplash</Set>
          <Random name="offset" min="0, 0" max="0, 0"/>
          <Set name="rotateWithVelocity">true</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 1</KeyFrame>
            <KeyFrame>0.5, 1</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Set name="useGravity">true</Set>
          <Set name="lifeTime">0.75</Set>
          <RandomRadial name="initialVelocity" angleRange="0,360" radiusRange="25,50" baseAnglePosition="targetPos" baseOffset="0,16"/>
          <Set name="gravityVector">0, 45</Set>
        </Particle>
      </ParticleSystem>
    </ParticleSystems>
  </Data>

  <RenderRules>
    <RenderHandItem>
      <SpriteRender name="s_FrontArm" offset="0,0" rotateOffset="true" rotationPoint="0,1" alignment="UPPER_CENTER" blend="PREMULTIPLIED_ALPHA"/>
    </RenderHandItem>
    <OnPunchUpdate>
      <StopIf>
        <IsZombified>true</IsZombified>
      </StopIf>
      <AvatarTransform class="Emotion">
        <Set name="emotion">SWIMMING</Set>
      </AvatarTransform>
      <AvatarTransform class="ArmAngle">
        <Set name="armName">arm2Angle</Set>
        <Set name="armAngle">-65</Set>
      </AvatarTransform>
    </OnPunchUpdate>
    <!--<OnDamagedTile>
      <ParticleSystemUpdate name="ps_punchSplash" />
    </OnDamagedTile>-->
  </RenderRules>
</ItemRenderer>