<?xml version="1.0" encoding="utf-8"?>
<ItemRenderer>
  <Data>
    <Sprite name="s_tentacle" fileName="game/particles12.rttex" textureSize="32" frame="26,17" />
    <Sprite name="s_mist" fileName="game/particles_large17.rttex" textureSize="64" frame="6,13" />
    <Sprite name="s_tileHit" fileName="game/particles4.rttex" textureSize="32" frame="4,2" />
    <Sprite name="s_eyes" fileName="game/particles_large17.rttex" textureSize="64" frame="15,11" />
    <Sprite name="s_cthulu" fileName="game/particles_large17.rttex" textureSize="64" frame="0,13" />
    <Sprite name="s_chest" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="20,7" />
    <Sprite name="s_pet" fileName="game/pets/p_espawn_r.rttex" textureSize="32" frame="0,0" />

    <Animations>
      <SpriteAnimation name="a_Attack" sprite="s_tentacle" animTime="500" isLoop="true" playOnState="PunchAnim.Continue">
        <Frame>26,17</Frame>
        <Frame>27,17</Frame>
        <Frame>28,17</Frame>
        <Frame>29,17</Frame>
        <Frame>30,17</Frame>
        <Frame>31,17</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_cthuluAttack" sprite="s_cthulu" animTime="600" isLoop="true" playOnState="PunchAnim.Start|PunchAnim.Continue|PunchAnim.End">
        <Frame>0,13</Frame>
        <Frame>1,13</Frame>
        <Frame>2,13</Frame>
        <Frame>3,13</Frame>
        <Frame>4,13</Frame>
        <Frame>5,13</Frame>
      </SpriteAnimation>

      <SpriteCurveAnimation name="a_cthuluStart" isLoop="false" playOnState="PunchAnim.Start" sprite="s_cthulu" animTime="200">
        <Curve name="alpha">
          <KeyFrame>0.f, 0.f</KeyFrame>
          <KeyFrame>1.f, 1.f</KeyFrame>
        </Curve>
      </SpriteCurveAnimation>

      <SpriteCurveAnimation name="a_eyesStart" isLoop="false" playOnState="PunchAnim.Start" sprite="s_eyes" animTime="200">
        <Curve name="alpha">
          <KeyFrame>0.f, 0.f</KeyFrame>
          <KeyFrame>1.f, 1.f</KeyFrame>
        </Curve>
      </SpriteCurveAnimation>

      <SpriteCurveAnimation name="a_cthuluEnd" isLoop="false" playOnState="PunchAnim.End" sprite="s_cthulu" animTime="200">
        <Curve name="alpha">
          <KeyFrame>0.f, 1.f</KeyFrame>
          <KeyFrame>1.f, 0.f</KeyFrame>
        </Curve>
      </SpriteCurveAnimation>

      <SpriteCurveAnimation name="a_eyesEnd" isLoop="false" playOnState="PunchAnim.End" sprite="s_eyes" animTime="200">
        <Curve name="alpha">
          <KeyFrame>0.f, 1.f</KeyFrame>
          <KeyFrame>1.f, 0.f</KeyFrame>
        </Curve>
      </SpriteCurveAnimation>

      <SpriteCurveAnimation name="a_cthuluContinue" isLoop="true" playOnState="PunchAnim.Continue" sprite="s_cthulu" animTime="500">
        <Curve name="alpha">
          <KeyFrame>0.f, 1.f</KeyFrame>
          <KeyFrame>1.f, 1.f</KeyFrame>
        </Curve>
      </SpriteCurveAnimation>

      <SpriteCurveAnimation name="a_eyesContinue" isLoop="true" playOnState="PunchAnim.Continue" sprite="s_eyes" animTime="500">
        <Curve name="alpha">
          <KeyFrame>0.f, 1.f</KeyFrame>
          <KeyFrame>1.f, 1.f</KeyFrame>
        </Curve>
      </SpriteCurveAnimation>

      <SpriteAnimation name="a_PetIdle" sprite="s_pet" animTime="300" isLoop="true" playOnState="Action.None">
        <Frame>0,0</Frame>
        <Frame>1,0</Frame>
        <Frame>2,0</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_PetPunch" sprite="s_pet" animTime="300" isLoop="true" playOnState="Action.Punch">
        <Frame>3,0</Frame>
        <Frame>4,0</Frame>
        <Frame>5,0</Frame>
      </SpriteAnimation>
    </Animations>

    <ParticleSystems>
      <ParticleSystem name="punch_start_particle">
        <Emitter attachment="targetPos">
          <Set name="offset">0,-96</Set>
          <Set name="lifeTime">0</Set>
          <Set name="infParticles">true</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="particlesToEmit">1</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_tentacle</Set>
          <Set name="offset">0, 0</Set>
          <Set name="inSpecificOrder">true</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="renderAlignment">UPPER_CENTER</Set>
          <Set name="lifeTime">0.2</Set>
          <Curve name="initialScale">
            <KeyFrame>0, 1, 0</KeyFrame>
            <KeyFrame>1, 1, 3</KeyFrame>
          </Curve>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="punch_continue_particle">
        <Emitter attachment="targetPos">
          <Set name="offset">0,-96</Set>
          <Set name="lifeTime">0</Set>
          <Set name="infParticles">true</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="particlesToEmit">1</Set>
          <Set name="delayTimer">0.23</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_tentacle</Set>
          <Set name="offset">0, 0</Set>
          <Set name="inSpecificOrder">true</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="renderAlignment">UPPER_CENTER</Set>
          <Set name="lifeTime">0.25</Set>
          <Set name="initialScale">1,3</Set>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="punch_end_particle">
        <Emitter attachment="targetPos">
          <Set name="offset">0,-96</Set>
          <Set name="lifeTime">0</Set>
          <Set name="infParticles">true</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="particlesToEmit">1</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_tentacle</Set>
          <Set name="offset">0, 0</Set>
          <Set name="inSpecificOrder">true</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="renderAlignment">UPPER_CENTER</Set>
          <Set name="lifeTime">0.2</Set>
          <Curve name="initialScale">
            <KeyFrame>0, 1, 3</KeyFrame>
            <KeyFrame>1, 1, 0</KeyFrame>
          </Curve>
        </Particle>
      </ParticleSystem>

      <ParticleSystem name="ps_mistBack">
        <Emitter attachment="targetPos">
          <Set name="offset">0,-96</Set>
          <Set name="emissionInterval">0.2</Set>
          <Set name="infParticles">true</Set>
          <Set name="infLifeTime">true</Set>
          <Set name="particlesPerEmission">2</Set>
          <Set name="rgbTint">0, 0, 0, 1</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_mist</Set>
          <Set name="inSpecificOrder">true</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 0.25</KeyFrame>
            <KeyFrame>0.5, 0.5</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Curve name="initialScale">
            <KeyFrame>0, 0.5, 0.5</KeyFrame>
            <KeyFrame>1, 1.25, 1.25</KeyFrame>
          </Curve>
          <Set name="lifeTime">1</Set>
          <Set name="initialVelocity">0, 0</Set>
          <Random name="offset" min="20,0" max="-20,0" />
          <Random name="initialAngle" min="0" max="360" />
        </Particle>
      </ParticleSystem>

      <ParticleSystem name="ps_mistFront">
        <Emitter attachment="targetPos">
          <Set name="offset">0,-96</Set>
          <Set name="emissionInterval">0.3</Set>
          <Set name="infParticles">true</Set>
          <Set name="infLifeTime">true</Set>
          <Set name="particlesPerEmission">2</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_mist</Set>
          <Set name="inSpecificOrder">true</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 0.25</KeyFrame>
            <KeyFrame>0.5, 0.5</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Curve name="initialScale">
            <KeyFrame>0, 0.5, 0.5</KeyFrame>
            <KeyFrame>1, 1, 1</KeyFrame>
          </Curve>
          <Set name="lifeTime">1</Set>
          <Set name="initialVelocity">0, 0</Set>
          <Random name="offset" min="-16,0" max="16,0" />
          <Random name="initialAngle" min="0" max="360" />
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_tileHit">
        <Emitter attachment="targetPos">
          <Set name="particlesPerEmission">1</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_tileHit</Set>
          <Random name="offset" min="-16,-16" max="16,16" />
          <Set name="blendingMode">ADDITIVE</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 1</KeyFrame>
            <KeyFrame>0.5, 1</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Random name="initialScale" min="0.5,0.75" max="0.5,1" />
          <Set name="lifeTime">0.2</Set>
          <Random name="initialAngle" min="0" max="360" />
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_cthuluMist">
        <Emitter>
          <Set name="offset">-28, -36</Set>
          <Set name="emissionInterval">0.5</Set>
          <Set name="infParticles">true</Set>
          <Set name="infLifeTime">true</Set>
          <Set name="particlesPerEmission">1</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_mist</Set>
          <Set name="relativeToEmitter">true</Set>
          <Set name="inSpecificOrder">true</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 0</KeyFrame>
            <KeyFrame>0.2, 0.5</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Curve name="initialScale">
            <KeyFrame>0, 0.5, 0.5</KeyFrame>
            <KeyFrame>1, 1.25, 1.25</KeyFrame>
          </Curve>
          <Set name="lifeTime">3</Set>
          <Set name="initialVelocity">0, 0</Set>
          <Random name="initialAngle" min="0" max="360" />
        </Particle>
      </ParticleSystem>
    </ParticleSystems>

    <StateMachines>
      <StateMachine name="Action">
        <States>
          <State name="None" />
          <State name="Punch" />
        </States>
        <Transitions>
          <Transition to="None" from="Punch">
            <Condition>
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition to="Punch" from="None">
            <Condition>
              <IsAction>PUNCH</IsAction>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
      <StateMachine name="PunchAnim">
        <States>
          <State name="Off"/>
          <State name="Start" ExitTime="0.2"/>
          <State name="Continue"/>
          <State name="End" ExitTime="0.2"/>
        </States>
        <Transitions>
          <Transition from="Off|End" to="Start">
            <Condition>
              <IsAction>PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition from="Start" to="Continue">
            <Condition type="and">
              <IsAction>PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition from="Continue|Start" to="End">
            <Condition>
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition from="End" to="Off">
            <Condition type="and">
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
    </StateMachines>
    <RenderOptions>
      <Default>
        <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>
        <Set name="UserNameOffset">16</Set>
      </Default>
    </RenderOptions>
  </Data>
  <RenderRules>
    <OnPunchUpdate>
      <AvatarTransform class="Face">
        <Set name="face">MAD</Set>
      </AvatarTransform>
      <AvatarTransform class="ArmAngle">
        <Set name="armName">arm1Angle</Set>
        <Set name="pointTowardsPunchTarget">true</Set>
      </AvatarTransform>
      <AvatarTransform class="ArmAngle">
        <Set name="armName">arm2Angle</Set>
        <Set name="armAngle">0</Set>
      </AvatarTransform>
    </OnPunchUpdate>
    <Update>
      <StopIf>
        <IsRenderMod>RENDER_MOD_MINI_YOU</IsRenderMod>
      </StopIf>
      <ParticleSystemUpdate name="punch_continue_particle" />
      <ParticleSystemUpdate name="ps_mistBack" onState="PunchAnim.Start|PunchAnim.Continue|PunchAnim.End" />
      <ParticleSystemUpdate name="ps_mistFront" onState="PunchAnim.Start|PunchAnim.Continue|PunchAnim.End" />
    </Update>
    <AddClothingParticles>
      <StopIf>
        <IsRenderMod>RENDER_MOD_MINI_YOU</IsRenderMod>
      </StopIf>
      <ParticleSystemUpdate name="ps_cthuluMist" onState="PunchAnim.Start|PunchAnim.Continue|PunchAnim.End" />
      <ParticleSystemUpdate name="ps_tileHit" onState="PunchAnim.Start|PunchAnim.Continue|PunchAnim.End" />
    </AddClothingParticles>
    <OnPunchBegin>
      <StopIf>
        <IsRenderMod>RENDER_MOD_MINI_YOU</IsRenderMod>
      </StopIf>
      <ParticleSystemOff name="punch_continue_particle" />
      <ParticleSystemOff name="punch_end_particle" />
      <ParticleSystemUpdate name="punch_start_particle" />
    </OnPunchBegin>
    <OnPunchStop>
      <StopIf>
        <IsRenderMod>RENDER_MOD_MINI_YOU</IsRenderMod>
      </StopIf>
      <ParticleSystemOff name="punch_continue_particle" />
      <ParticleSystemOff name="punch_start_particle" />
      <ParticleSystemUpdate name="punch_end_particle" />
    </OnPunchStop>
    <RenderInFront>
      <StopIf>
        <IsRenderMod>RENDER_MOD_MINI_YOU</IsRenderMod>
      </StopIf>
      <ParticleSystemRender name="ps_mistBack"/>
      <ParticleSystemRender name="punch_start_particle" onState="PunchAnim.Start" />
      <ParticleSystemRender name="punch_continue_particle" onState="PunchAnim.Continue" />
      <ParticleSystemRender name="punch_end_particle" onState="PunchAnim.End" />
      <ParticleSystemRender name="ps_mistFront"/>
    </RenderInFront>
    <RenderBehind>
      <StopIf>
        <IsRenderMod>RENDER_MOD_MINI_YOU</IsRenderMod>
      </StopIf>
      <SpriteRender name="s_cthulu" offset="-16,-16" alignment="CENTER" blend="PREMULTIPLIED_ALPHA" onState="PunchAnim.Start|PunchAnim.Continue|PunchAnim.End" />
      <ParticleSystemRender name="ps_cthuluMist"/>
      <SpriteRender name="s_eyes" offset="-16,-16" alignment="CENTER" blend="PREMULTIPLIED_ALPHA" onState="PunchAnim.Start|PunchAnim.Continue|PunchAnim.End" />
    </RenderBehind>
    <RenderChestItem>
      <SpriteRender name="s_chest" offset="0,0" alignment="DOWN_CENTER" />
    </RenderChestItem>
    <RenderPet>
      <SpriteRender name="s_pet" offset="0,0" alignment="DOWN_CENTER" />
    </RenderPet>
  </RenderRules>
</ItemRenderer>
