<?xml version="1.0"?>
<ItemRenderer>
  <Data>
    <Sprite name="s_medal" fileName="game/player_cosmetics3.rttex" textureSize="32" frame="17,9" />
    <Sprite name="s_pet" fileName="game/pets/p_missiletoad.rttex" textureSize="32" frame="0,0" />
    <Sprite name="s_missileRed" fileName="game/particles11.rttex" textureSize="32" frame="21,11" />
    <Sprite name="s_missileGreen" fileName="game/particles11.rttex" textureSize="32" frame="22,11" />
    <Sprite name="s_missileWhite" fileName="game/particles11.rttex" textureSize="32" frame="23,11" />
    <Sprite name="s_shrapnelRed" fileName="game/particles11.rttex" textureSize="32" frame="24,11" />
    <Sprite name="s_shrapnelGreen" fileName="game/particles11.rttex" textureSize="32" frame="25,11" />
    <Sprite name="s_shrapnelWhite" fileName="game/particles11.rttex" textureSize="32" frame="26,11" />
    <Sprite name="s_muzzleFlash" fileName="game/particles6.rttex" textureSize="32" frame="14,1" />
    
    <Animations>
      <SpriteAnimation name="a_Attack" sprite="s_pet" animTime="100" isLoop="true" playOnState="Motion.Punch">
        <Frame>4,1</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_Fall" sprite="s_pet" animTime="100" isLoop="true" playOnState="Motion.Down">
        <Frame>3,1</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_Idle" sprite="s_pet" animTime="400" isLoop="true" playOnState="Motion.None">
        <Frame>0,0</Frame>
        <Frame>1,0</Frame>
        <Frame>2,0</Frame>
        <Frame>3,0</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_Jump" sprite="s_pet" animTime="100" isLoop="true" playOnState="Motion.Up">
        <Frame>2,1</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_Move" sprite="s_pet" animTime="600" isLoop="true" playOnState="Motion.Horizontal">
        <Frame>4,0</Frame>
        <Frame>5,0</Frame>
        <Frame>6,0</Frame>
        <Frame>7,0</Frame>
        <Frame>0,1</Frame>
        <Frame>1,1</Frame>
      </SpriteAnimation>
    </Animations>
    
    <ParticleSystems>
      <ParticleSystem name="ps_rockets">
        <Emitter>
          <Set name="offset">10,-26</Set>
          <Set name="lifeTime">0.4</Set>
          <Set name="emissionInterval">0.04</Set>
          <Set name="infParticles">true</Set>
          <Set name="checkParticleNumToEmit">true</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="particlesToEmit">1</Set>
        </Emitter>
        <Particle>
          <Random name="variantId" min="0" max="3" />
          <Select name="sprite" input="variantId">
            <Item>"s_missileRed"</Item>
            <Item>"s_missileGreen"</Item>
            <Item>"s_missileWhite"</Item>
          </Select>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.4</Set>
          <Set name="rotateWithVelocity">true</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 0.5</KeyFrame>
            <KeyFrame>1, 1</KeyFrame>
          </Curve>
          <Set name="interpolateVelocity">true</Set>
          <VectorTo name="initialVelocity" source="targetPos" duration="lifeTime" x="1.15" angle="30"/>
          <Random name="targetPosOffset" min="-12,-11" max="12,11" />
          <VectorTo name="finalVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="1.15" angle="-30"/>
          <OnFinish>
            <ParticleSystemName>ps_shrapnel</ParticleSystemName>
          </OnFinish>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_shrapnel">
        <Emitter>
          <Set name="particlesPerEmission">7</Set>
        </Emitter>
        <Particle UseParentVariantId="true">
          <Select name="sprite" input="variantId">
            <Item>"s_shrapnelRed"</Item>
            <Item>"s_shrapnelGreen"</Item>
            <Item>"s_shrapnelWhite"</Item>
          </Select>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.5</Set>
          <Curve name="initialScale">
            <KeyFrame>0, 1, 1</KeyFrame>
            <KeyFrame>1, 1.5, 1.5</KeyFrame>
          </Curve>
          <Curve name="initialAlpha">
            <KeyFrame>0, 1</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Set name="rotateWithVelocity">true</Set>
          <RandomRadial name="initialVelocity" angleRange="0,360" radiusRange="25,50"/>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_muzzleFlash">
        <Emitter>
          <Set name="offset">14,-20</Set>
          <Set name="lifeTime">0.4</Set>
          <Set name="infParticles">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_muzzleFlash</Set>
          <Set name="relativeToEmitter">true</Set>
          <Set name="initialScale">1.5,1.5</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 1</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Set name="lifeTime">0.4</Set>
        </Particle>
      </ParticleSystem>
    </ParticleSystems>
    
    <StateMachines>
      <StateMachine name="Motion">
        <States>
          <State name="None" />
          <State name="Up" />
          <State name="Down" />
          <State name="Horizontal" />
          <State name="Punch" />
        </States>
        <Transitions>
          <Transition to="None" from="Punch|Up|Down|Horizontal">
            <Condition type="and">
              <IsVariableFloat name="pet.velocity.length" operator="Less" abs="true">0.1</IsVariableFloat>
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition to="Up" from="Punch|None|Down|Horizontal">
            <Condition type="and">
              <IsVariableFloat name="pet.velocity.y" operator="Less">-0.1</IsVariableFloat>
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition to="Down" from="Punch|None|Up|Horizontal">
            <Condition type="and">
              <IsVariableFloat name="pet.velocity.y" operator="Greater">0.1</IsVariableFloat>
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition to="Horizontal" from="Punch|None|Down|Up">
            <Condition type="and">
              <IsVariableFloat name="pet.velocity.x" operator="Greater" abs="true">0.1</IsVariableFloat>
              <IsVariableFloat name="pet.velocity.y" operator="Less" abs="true">0.1</IsVariableFloat>
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition to="Punch" from="None|Up|Down|Horizontal">
            <Condition>
              <IsAction>PUNCH</IsAction>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
    </StateMachines>
    <RenderOptions>
      <Default>
        <Set name="PunchSoundOverride">CHESTITEM</Set>
        <Set name="PlayDefaultPunchAudio">false</Set>
        <Set name="NeedRenderPet">true</Set>
        <Set name="PetOffsetDuplication">-36,0</Set>
        <Set name="UsePetForceFaceTime">false</Set>
        <Set name="HideParticlesOnTransform">false</Set>
        <Set name="IgnorePunchTypeCheck">false</Set>
      </Default>
    </RenderOptions>
  </Data>
  <RenderRules>
    <RenderChestItem>
      <SpriteRender name="s_medal" offset="0,0" alignment="DOWN_CENTER" />
    </RenderChestItem>
    <OnPunchUpdate>
      <AvatarTransform class="Face">
        <Set name="face">MAD</Set>
      </AvatarTransform>
      <AvatarTransform class="ArmAngle" onState="Motion.Punch">
        <Set name="armName">arm1Angle</Set>
        <Set name="pointTowardsPunchTarget">true</Set>
      </AvatarTransform>
    </OnPunchUpdate>
    <RenderPet>
      <SpriteRender name="s_pet" offset="0,0" alignment="DOWN_CENTER" />
      <StopIf>
        <IsTrnsformed>true</IsTrnsformed>
      </StopIf>
      <ParticleSystemUpdate name="ps_muzzleFlash" onState="Motion.Punch"/>
      <ParticleSystemUpdate name="ps_rockets" onState="Motion.Punch"/>
    </RenderPet>
    <UpdatePet>
      <ContextUpdate type="SetPetWalkRunJump">
        <Set name="PetWalkRunJump.minSpeed">500</Set>
        <Set name="PetWalkRunJump.distSpeedMult">20</Set>
      </ContextUpdate>
    </UpdatePet>
  </RenderRules>
</ItemRenderer>
