<?xml version="1.0"?>
<ItemRenderer item="ITEM_ID_HOLIDAY_LIGHTs_body">
  <Data>
    <Sprite name="s_body" fileName="game/particles_large17.rttex" textureSize="64" frame="10,0" />
    <Sprite name="s_head" fileName="game/particles12.rttex" textureSize="32" frame="3,15" />
    <Sprite name="s_tail" fileName="game/particles12.rttex" textureSize="32" frame="3,17" />
    <Sprite name="s_PunchFireSprite" fileName="game/particles11.rttex" textureSize="32" frame="19,21" />
    
    <Animations>
      <SpriteAnimation name="a_body" sprite="s_body" animTime="600" isLoop="true" autoPlay="true">
        <Frame>10,0</Frame>
        <Frame>11,0</Frame>
        <Frame>12,0</Frame>
        <Frame>13,0</Frame>
        <Frame>14,0</Frame>
        <Frame>15,0</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_head" sprite="s_head" animTime="600" isLoop="true" autoPlay="true" playOnState="Action.None">
        <Frame>3,15</Frame>
        <Frame>4,15</Frame>
        <Frame>5,15</Frame>
        <Frame>6,15</Frame>
        <Frame>7,15</Frame>
        <Frame>8,15</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_tail" sprite="s_tail" animTime="600" isLoop="true" autoPlay="true">
        <Frame>3,17</Frame>
        <Frame>4,17</Frame>
        <Frame>5,17</Frame>
        <Frame>6,17</Frame>
        <Frame>7,17</Frame>
        <Frame>8,17</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_headPunch" sprite="s_head" animTime="600" isLoop="true" playOnState="Action.Punch">
        <Frame>3,16</Frame>
        <Frame>4,16</Frame>
        <Frame>5,16</Frame>
        <Frame>6,16</Frame>
        <Frame>7,16</Frame>
        <Frame>8,16</Frame>
      </SpriteAnimation>
    </Animations>

    <StateMachines>
      <StateMachine name="Action">
        <States>
          <State name="None"/>
          <State name="Punch"/>
        </States>
        <Transitions>
          <Transition to="None" from="Punch">
            <Condition type="and">
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition to="Punch" from="None">
            <Condition type="and">
              <IsAction>PUNCH</IsAction>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
      <StateMachine name="Render">
        <States>
          <State name="True"/>
          <State name="False"/>
        </States>
        <Transitions>
          <Transition to="True" from="False">
            <Condition type="and">
              <CompareCustomVariable operatorType="Equal" VariableNameToCompare="chest_is_rendering">true</CompareCustomVariable>
            </Condition>
          </Transition>
          <Transition to="False" from="True">
            <Condition type="and">
              <CompareCustomVariable operatorType="Equal" VariableNameToCompare="chest_is_rendering">false</CompareCustomVariable>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
    </StateMachines>

    <VariableMap>
      <Set name="chest_is_rendering">false</Set>
    </VariableMap>

    <ParticleSystems>
      <ParticleSystem name="ps_PunchFire" updateStage="RenderChestBackItem" updateState="Action.Punch">
        <Emitter attachment="handspotRoot">
          <Set name="offset">-2, -4</Set>
          <Random name="emissionInterval" min="0.001" max="0.005" />
          <Set name="infParticles">true</Set>
          <Set name="infLifeTime">true</Set>
          <Set name="particlesPerEmission">1</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_PunchFireSprite</Set>
          <Set name="renderAlignment">LEFT_CENTER</Set>
          <Set name="blendingMode">ADDITIVE</Set>
          <Set name="rotateWithVelocity">true</Set>
          <Set name="lifeTime">0.5</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 0.5</KeyFrame>
            <KeyFrame>0.8, 0.5</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Curve name="initialScale">
            <KeyFrame>0, 1, 0.3</KeyFrame>
            <KeyFrame>1, 1.5, 1.5</KeyFrame>
          </Curve>
          <Random name="targetPosOffset" min="-12,-8" max="12,8"/>
          <VectorTo name="initialVelocity" source="targetPos" offset="targetPosOffset" duration="lifeTime" x="0.8" angleOutVar="projectile_angle"/>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_hitFlame" updateStage="OnPunchStart">
        <Emitter attachment="targetPos">
          <Set name="lifeTime">0.4</Set>
          <Set name="infParticles">true</Set>
          <Set name="emissionInterval">0.05</Set>
          <Set name="particlesPerEmission">1</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_PunchFireSprite</Set>
          <Random name="offset" min="-4,-8" max="4,0" />
          <Set name="renderAlignment">CENTER</Set>
          <Set name="blendingMode">ADDITIVE</Set>
          <Set name="initialAngle">90</Set>
          <Set name="initialScale">2,2</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 0</KeyFrame>
            <KeyFrame>0.5, 0.5</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Set name="lifeTime">0.4</Set>
        </Particle>
      </ParticleSystem>
    </ParticleSystems>
    
    <RenderOptions>
      <Default>
        <Set name="IgnorePunchTypeCheck">false</Set>
        <Set name="PunchSoundOverride">CHESTITEM</Set>
        <Set name="PlayDefaultPunchAudio">false</Set>
      </Default>
    </RenderOptions>
  </Data>
  <RenderRules>
    <Update>
      <ArithmethicOperation LeftHandVariableName="chest_is_rendering" RightHandVariableName="false" OperationType="Set" />
    </Update>
    <OnPunchUpdate>
      <AvatarTransform class="Face">
        <Set name="face">MAD</Set>
      </AvatarTransform>
    </OnPunchUpdate>
    <RenderInFront>


      <Group>
        <StopIf>
          <IsZombified>true</IsZombified>
        </StopIf>
      <SpriteRender name="s_head" offset="-16,-16" onState="Render.True"/>
      <SpriteRender name="s_tail" offset="16,-16" onState="Render.True"/>
      </Group>
      
      <Group>
        <StopIf>
          <IsZombified>false</IsZombified>
        </StopIf>
        <SpriteRender name="s_head" offset="-16,-16" onState="Render.True"  tintOverride="111,217,45,255"/>
        <SpriteRender name="s_tail" offset="16,-16" onState="Render.True"  tintOverride="111,217,45,255"/>
      </Group>
    </RenderInFront>
    <RenderChestBackItem>
      <ArithmethicOperation LeftHandVariableName="chest_is_rendering" RightHandVariableName="true" OperationType="Set" />
      <SpriteRender name="s_body" offset="0,-32" />
      <StopIf type="or">
        <IsRenderMod>RENDER_MOD_MINI_YOU</IsRenderMod>
      </StopIf>
    </RenderChestBackItem>
  </RenderRules>
</ItemRenderer>
