<?xml version="1.0" encoding="utf-8"?>
<ItemRenderer>
  <Data>
    <Sprite name="s_brain" fileName="game/player_cosmetics4.rttex" textureSize="32" frame="18,18"/>
    <Sprite name="s_punchStart" fileName="game/particles12.rttex" textureSize="32" frame="8,12"/>
    <Sprite name="s_punchContinue" fileName="game/particles12.rttex" textureSize="32" frame="8,13"/>
    <Sprite name="s_punchEnd" fileName="game/particles12.rttex" textureSize="32" frame="8,12"/>
    <Sprite name="s_projectile" fileName="game/particles11.rttex" textureSize="32" frame="10,23"/>

    <Animations>
      <SpriteAnimation name="a_brainNonPunch" sprite="s_brain" animTime="2600" isLoop="true" playOnState="Punch.False">
        <Frame>0,4</Frame>
        <Frame>1,4</Frame>
        <Frame>2,4</Frame>
        <Frame>3,4</Frame>
        <Frame>4,4</Frame>
        <Frame>5,4</Frame>
        <Frame>6,4</Frame>
        <Frame>7,4</Frame>
        <Frame>8,4</Frame>
        <Frame>9,4</Frame>
        <Frame>10,4</Frame>
        <Frame>11,4</Frame>
        <Frame>12,4</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_brainPunch" sprite="s_brain" animTime="1300" isLoop="true" playOnState="Punch.True">
	      <Frame>0,5</Frame>
	      <Frame>1,5</Frame>
	      <Frame>2,5</Frame>
	      <Frame>3,5</Frame>
	      <Frame>4,5</Frame>
	      <Frame>5,5</Frame>
	      <Frame>6,5</Frame>
	      <Frame>7,5</Frame>
	      <Frame>8,5</Frame>
	      <Frame>9,5</Frame>
	      <Frame>10,5</Frame>
	      <Frame>11,5</Frame>
	      <Frame>12,5</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_punchContinue" sprite="s_punchContinue" animTime="500" isLoop="true" playOnState="PunchAnim.Continue">
        <Frame>8,13</Frame>
        <Frame>9,13</Frame>
        <Frame>10,13</Frame>
        <Frame>11,13</Frame>
        <Frame>12,13</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_punchEnd" sprite="s_punchEnd" animTime="500" playOnState="PunchAnim.End">
        <Frame>8,12</Frame>
        <Frame>12,12</Frame>
        <Frame>11,12</Frame>
        <Frame>10,12</Frame>
        <Frame>9,12</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_punchStart" sprite="s_punchStart" animTime="500" playOnState="PunchAnim.Start">
        <Frame>12,12</Frame>
        <Frame>8,12</Frame>
        <Frame>9,12</Frame>
        <Frame>10,12</Frame>
        <Frame>11,12</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_projectile" sprite="s_projectile">
        <Frame>10,23</Frame>
        <Frame>11,23</Frame>
      </SpriteAnimation>
    </Animations>

    <StateMachines>
      <StateMachine name="Punch">
        <States>
          <State name="True"/>
          <State name="False"/>
        </States>
        <Transitions>
          <Transition from="False" to="True">
            <Condition>
              <IsAction>PUNCH</IsAction>
            </Condition>
          </Transition>
          <Transition from="True" to="False">
            <Condition>
              <IsAction operatorType="NotEqual">PUNCH</IsAction>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
      <StateMachine name="PunchAnim">
        <States>
          <State name="Off"/>
          <State name="Start"/>
          <State name="Continue"/>
          <State name="End"/>
        </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>
              <IsAnimationFinished>a_punchStart</IsAnimationFinished>
            </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>
              <IsAnimationFinished>a_punchEnd</IsAnimationFinished>
            </Condition>
          </Transition>
        </Transitions>
      </StateMachine>
    </StateMachines>


    <ParticleSystems>
      <ParticleSystem name="punch_start_particle">
        <Emitter attachment="targetPos">
          <Set name="offset">0,-64</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_punchStart</Set>
          <Set name="offset">0, 0</Set>
          <Set name="inSpecificOrder">true</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.5</Set>
          <Set name="initialScale">1.5,1.5</Set>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="punch_continue_particle">
        <Emitter attachment="targetPos">
          <Set name="offset">0,-64</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.24</Set>
        </Emitter>
        <Particle>
          <Set name="sprite">s_punchContinue</Set>
          <Set name="offset">0, 0</Set>
          <Set name="inSpecificOrder">true</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.25</Set>
          <Set name="initialScale">1.5,1.5</Set>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="punch_end_particle">
        <Emitter attachment="targetPos">
          <Set name="offset">0,-64</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_punchEnd</Set>
          <Set name="offset">0, 0</Set>
          <Set name="inSpecificOrder">true</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.5</Set>
          <Set name="initialScale">1.5,1.5</Set>
        </Particle>
      </ParticleSystem>
      <ParticleSystem name="ps_punchProjectile" updateStage="OnDamagedTile" updateState="Punch.True">
        <Emitter>
          <Random name="emissionInterval" min="0.1" max="0.2" />
          <Set name="infParticles">true</Set>
          <Set name="lifeTime">0.5</Set>
          <Set name="particlesPerEmission">1</Set>
          <Set name="useTargetTileColorForTint">true</Set>
        </Emitter>
        <Particle randomSpriteFrame="true">
          <Set name="sprite">s_projectile</Set>
          <Set name="blendingMode">PREMULTIPLIED_ALPHA</Set>
          <Set name="lifeTime">0.3</Set>
          <Set name="initialVelocity">0,-220</Set>
          <Curve name="initialAlpha">
            <KeyFrame>0, 0</KeyFrame>
            <KeyFrame>0.2, 1</KeyFrame>
            <KeyFrame>0.8, 1</KeyFrame>
            <KeyFrame>1, 0</KeyFrame>
          </Curve>
          <Random name="offset" min="-10, -8" max="10, 8" />
          <Random name="initialRotationRate" min="50" max="360" />
        </Particle>
      </ParticleSystem>
    </ParticleSystems>

    <RenderOptions>
      <Default>
      </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>
      <ParticleSystemUpdate name="punch_continue_particle" />
    </Update>
    <OnPunchBegin>
      <ParticleSystemOff name="punch_continue_particle" />
      <ParticleSystemOff name="punch_end_particle" />
      <ParticleSystemUpdate name="punch_start_particle" />
    </OnPunchBegin>
    <OnPunchStop>
      <ParticleSystemOff name="punch_continue_particle" />
      <ParticleSystemOff name="punch_start_particle" />
      <ParticleSystemUpdate name="punch_end_particle" />
    </OnPunchStop>
    <RenderHair>
      <SpriteRender name="s_brain" alignment="DOWN_CENTER" offset="0,-16"/>
    </RenderHair>
    <RenderInFront>
      <ParticleSystemRender name="punch_start_particle" onState="PunchAnim.Start" />
      <ParticleSystemRender name="punch_continue_particle" onState="PunchAnim.Continue" />
      <ParticleSystemRender name="punch_end_particle" onState="PunchAnim.End" />
    </RenderInFront>
  </RenderRules>
</ItemRenderer>