<?xml version="1.0"?>
<ItemRenderer>
  <Data>
    <Sprite name="s_pendant" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="5,0" />
    <Sprite name="s_transform" fileName="game/tf_page4.rttex" textureSize="64" frame="0,5" />
    <Sprite name="s_flash" fileName="game/tf_page4.rttex" textureSize="64" frame="11,6" />
    <Sprite name="s_slash" fileName="game/particles12.rttex" textureSize="32" frame="15,5" />
    <Sprite name="s_break" fileName="game/particles12.rttex" textureSize="32" frame="20,5" />
    <Sprite name="s_death" fileName="game/tf_page4.rttex" textureSize="64" frame="0,6" />
    <Sprite name="s_sparkles" fileName="game/particles.rttex" textureSize="32" frame="15,5" />

    <StateMachines>
      <StateMachine name="Main">
        <States>
          <State name="Idle" />
          <State name="Walk" />
          <State name="Jump" />
          <State name="Fall" />
          <State name="PunchOnGround" />
          <State name="PunchInAir" />
        </States>
        <Transitions>
          <Transition to="Idle" from="Walk|Fall|PunchOnGround|Jump|PunchInAir">
            <Condition type="and">
              <IsVariableBool name="onGround">true</IsVariableBool>
              <IsVariableFloat name="speed.length" operator="Less" abs="true">0.1</IsVariableFloat>
              <IsAction operator="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition to="Walk" from="Idle|Fall|PunchOnGround|PunchInAir|Jump">
            <Condition type="and">
              <IsVariableBool name="onGround">true</IsVariableBool>
              <IsVariableFloat name="speed.length" operator="Greater" abs="true">0.1</IsVariableFloat>
              <IsAction operator="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition to="Jump" from="Idle|Walk|Fall|PunchInAir|PunchOnGround">
            <Condition type="and">
              <IsVariableBool name="onGround">false</IsVariableBool>
              <IsVariableFloat name="speed.y" operator="Less">-0.1</IsVariableFloat>
              <IsAction operator="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition to="Fall" from="Jump|Idle|Walk|PunchInAir|PunchOnGround">
            <Condition type="and">
              <IsVariableBool name="onGround">false</IsVariableBool>
              <IsVariableFloat name="speed.y" operator="Greater">0.1</IsVariableFloat>
              <IsAction operator="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition to="PunchOnGround" from="Idle|Walk|PunchInAir|Jump|Fall">
            <Condition type="and">
              <IsAction>PUNCH</IsAction>
              <IsVariableBool name="onGround">true</IsVariableBool>
            </Condition>
          </Transition>
          <Transition to="PunchInAir" from="Idle|Walk|Jump|Fall|PunchOnGround">
            <Condition type="and">
              <IsAction>PUNCH</IsAction>
              <IsVariableBool name="onGround">false</IsVariableBool>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
      <StateMachine name="IsTransformed">
        <States>
          <State name="No" />
          <State name="Transition" />
          <State name="Yes" />
        </States>
        <Transitions>
          <Transition to="Yes" from="Transition">
            <Condition>
              <IsItemTransformed>true</IsItemTransformed>
            </Condition>
          </Transition>
          <Transition to="No" from="Transition">
            <Condition>
              <IsItemTransformed>false</IsItemTransformed>
            </Condition>
          </Transition>
          <Transition to="Transition" from="No">
            <Condition>
              <IsItemTransformed>true</IsItemTransformed>
            </Condition>
          </Transition>
          <Transition to="Transition" from="Yes">
            <Condition>
              <IsItemTransformed>false</IsItemTransformed>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
      <StateMachine name="Motion">
        <States>
          <State name="Idle" />
          <State name="Move" />
        </States>
        <Transitions>
          <Transition to="Idle" from="Move">
            <Condition>
              <IsVariableFloat name="speed.length" operator="Less" abs="true">0.1</IsVariableFloat>
            </Condition>
          </Transition>
          <Transition to="Move" from="Idle">
            <Condition>
              <IsVariableFloat name="speed.length" operator="Greater" abs="true">0.1</IsVariableFloat>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
    </StateMachines>
    <RenderOptions>
      <Default>
        <Set name="AllowChangePunchType">true</Set>
        <Set name="IncludeAllActions">true</Set>
        <Set name="HideAvatarOnDeath">false</Set>
      </Default>
      <Override overrideOnState="IsTransformed.Yes">
        <Set name="HideAvatarOnDeath">true</Set>
      </Override>
    </RenderOptions>
    <TileStampData>
      <Set name="FileName">game/particles12.rttex</Set>
      <Set name="EndFrame">19,5</Set>
      <Set name="FrameCount">4</Set>
    </TileStampData>
    <Animations>
      <SpriteAnimation name="a_idle" sprite="s_transform" animTime="500" isLoop="true" playOnState="Main.Idle">
        <Frame>0,5</Frame>
        <Frame>1,5</Frame>
        <Frame>2,5</Frame>
        <Frame>3,5</Frame>
        <Frame>4,5</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_walk" sprite="s_transform" animTime="400" isLoop="true" playOnState="Main.Walk">
        <Frame>5,5</Frame>
        <Frame>6,5</Frame>
        <Frame>7,5</Frame>
        <Frame>8,5</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_jump" sprite="s_transform" animTime="300" isLoop="true" playOnState="Main.Jump">
        <Frame>9,5</Frame>
        <Frame>10,5</Frame>
        <Frame>11,5</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_fall" sprite="s_transform" animTime="300" isLoop="true" playOnState="Main.Fall">
        <Frame>12,5</Frame>
        <Frame>13,5</Frame>
        <Frame>14,5</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_punch" sprite="s_transform" animTime="300" isLoop="true" playOnState="Main.PunchOnGround|Main.PunchInAir">
        <Frame>8,6</Frame>
        <Frame>9,6</Frame>
        <Frame>10,6</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_flash" sprite="s_flash" animTime="400" >
        <Frame>14,6</Frame>
        <Frame>11,6</Frame>
        <Frame>12,6</Frame>
        <Frame>13,6</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_death" sprite="s_death" animTime="800">
        <Frame>7,6</Frame>
        <Frame>0,6</Frame>
        <Frame>1,6</Frame>
        <Frame>2,6</Frame>
        <Frame>3,6</Frame>
        <Frame>4,6</Frame>
        <Frame>5,6</Frame>
        <Frame>6,6</Frame>
      </SpriteAnimation>
    </Animations>
    <ParticleSystems>
      <ParticleSystem name="p_flash" updateStage="AddClothingParticles" updateState="IsTransformed.Transition">
        <Emitter>
          <Set name="particlesPerEmission">1</Set>
          <Set name="offset">0, -32</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_flash</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.4</Set>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="p_flashRespawn" updateStage="OnRespawned" updateState="IsTransformed.Yes">
        <Emitter>
          <Set name="particlesPerEmission">1</Set>
          <Set name="offset">0, -680</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_flash</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.4</Set>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_punchCurved" updateStage="OnPunchStart">
        <Emitter>
          <Set name="offset">16,-18</Set>
          <Set name="lifeTime">0.4</Set>
          <Set name="emissionInterval">0.3</Set>
          <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_slash</Set>
          <Set name="blendingMode">ADDITIVE</Set>
          <Set name="lifeTime">0.3</Set>
          <Set name="rotateWithVelocity">true</Set>
          <Set name="interpolateAlpha">false</Set>
          <Set name="initialAlpha">1</Set>
          <Set name="finalAlpha">1</Set>
          <Set name="interpolateVelocity">true</Set>
          <Set name="initialScale">2,2</Set>
          <VectorTo name="initialVelocity" source="targetPos" duration="lifeTime" x="1" angle="0"/>
          <VectorTo name="finalVelocity" source="targetPos" duration="lifeTime" x="1" angle="0"/>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_break" updateStage="OnDestroyedTile">
        <Emitter>
          <Set name="particlesPerEmission">1</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_break</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Curve name="initialScale">
            <KeyFrame>0, 1,1</KeyFrame>
            <KeyFrame>1, 0,0</KeyFrame>
          </Curve>
          <Set name="lifeTime">0.5</Set>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_killedAnim" updateStage="OnKilled">
        <Emitter>
          <Set name="lifeTime">0.8</Set>
          <Set name="infParticles">true</Set>
          <Set name="checkParticleNumToEmit">true</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="particlesToEmit">1</Set>
          <Set name="useCharacterPos">true</Set>
          <Set name="offset">0,-32</Set>
        </Emitter>
        <Particle usePlayerFacing="true">
          <Set name="sprite">s_death</Set>
          <Set name="relativeToEmitter">true</Set>
          <Set name="inSpecificOrder">true</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.8</Set>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_Sparkles" updateStage="AddClothingParticles" updateState="Motion.Move">
        <Emitter>
          <Set name="offset">0, -16</Set>
          <Random name="emissionInterval" min="0.01" max="0.1" />
          <Set name="infParticles">true</Set>
          <Set name="infLifeTime">true</Set>
          <Set name="particlesPerEmission">1</Set>
        </Emitter>
        <Particle randomSpriteFrame="true">
          <Set name="sprite">s_sparkles</Set>
          <Random name="offset" min="-10, -16" max="10, 16" />
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 0</KeyFrame>
            <KeyFrame>0.05, 1</KeyFrame>
            <KeyFrame>0.1, 0</KeyFrame>
            <KeyFrame>0.15, 1</KeyFrame>
            <KeyFrame>0.2, 0</KeyFrame>
            <KeyFrame>0.25, 1</KeyFrame>
            <KeyFrame>0.3, 0</KeyFrame>
            <KeyFrame>0.35, 1</KeyFrame>
            <KeyFrame>0.4, 0</KeyFrame>
            <KeyFrame>0.45, 1</KeyFrame>
            <KeyFrame>0.5, 0</KeyFrame>
            <KeyFrame>0.55, 1</KeyFrame>
            <KeyFrame>0.6, 0</KeyFrame>
            <KeyFrame>0.65, 1</KeyFrame>
            <KeyFrame>0.7, 0</KeyFrame>
            <KeyFrame>0.75, 1</KeyFrame>
            <KeyFrame>0.8, 0</KeyFrame>
            <KeyFrame>0.85, 1</KeyFrame>
            <KeyFrame>0.9, 0</KeyFrame>
            <KeyFrame>0.95, 1</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Set name="interpolateScale">true</Set>
          <Random name="initialScale" min="0.25" max="0.75" />
          <Set name="finalScale">0, 0</Set>
          <Random name="lifeTime" min="1" max="1.5" />
          <Select name="initialRotationRate" input="randomNumber">
            <Item>-720</Item>
            <Item>-360</Item>
            <Item>360</Item>
            <Item>720</Item>
          </Select>
          <Set name="isBackgroundParticle">true</Set>
        </Particle>
      </ParticleSystem>
    </ParticleSystems>
  </Data>
  <RenderRules>
    <RenderInFront>
      <StopIf>
        <IsItemTransformed>false</IsItemTransformed>
      </StopIf>
      <SpriteRender name="s_death" alignment="CENTER" offset="0,-8" onState="IsDying.True" />
    </RenderInFront>
    <RenderChestItem>
      <SpriteRender name="s_pendant" alignment="DOWN_CENTER" />
    </RenderChestItem>
    <RenderTransform>
      <ParticleSystemRender name="ps_killedAnim"/>
      <StopIf>
        <IsAction>DIE</IsAction>
      </StopIf>
      <SpriteRender name="s_transform" blend="PREMULTIPLIED_ALPHA" offset="0,-8" />
    </RenderTransform>
    <OnDamagedTile>
      <StopIf>
        <IsItemTransformed>false</IsItemTransformed>
      </StopIf>
    </OnDamagedTile>
    <OnDestroyedTile>
      <StopIf>
        <IsItemTransformed>false</IsItemTransformed>
      </StopIf>
    </OnDestroyedTile>
  </RenderRules>
</ItemRenderer>
