<?xml version="1.0" encoding="utf-8"?>
<ItemRenderer>
  <Data>
    <Sprite name="s_brain" fileName="game/player_cosmetics3.rttex" textureSize="32" frame="18,18"/>
    <Sprite name="s_punchStart" fileName="game/particles11.rttex" textureSize="32" frame="0,23"/>
    <Sprite name="s_punchContinue" fileName="game/particles11.rttex" textureSize="32" frame="5,23"/>
    <Sprite name="s_punchEnd" fileName="game/particles11.rttex" textureSize="32" frame="4,23"/>
    <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>18,18</Frame>
        <Frame>19,18</Frame>
        <Frame>20,18</Frame>
        <Frame>21,18</Frame>
        <Frame>22,18</Frame>
        <Frame>23,18</Frame>
        <Frame>24,18</Frame>
        <Frame>25,18</Frame>
        <Frame>26,18</Frame>
        <Frame>27,18</Frame>
        <Frame>28,18</Frame>
        <Frame>29,18</Frame>
        <Frame>30,18</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_brainPunch" sprite="s_brain" animTime="1300" isLoop="true" playOnState="Punch.True">
        <Frame>18,19</Frame>
        <Frame>19,19</Frame>
        <Frame>20,19</Frame>
        <Frame>21,19</Frame>
        <Frame>22,19</Frame>
        <Frame>23,19</Frame>
        <Frame>24,19</Frame>
        <Frame>25,19</Frame>
        <Frame>26,19</Frame>
        <Frame>27,19</Frame>
        <Frame>28,19</Frame>
        <Frame>29,19</Frame>
        <Frame>30,19</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_punchContinue" sprite="s_punchContinue" animTime="500" isLoop="true" playOnState="PunchAnim.Continue">
        <Frame>5,23</Frame>
        <Frame>6,23</Frame>
        <Frame>7,23</Frame>
        <Frame>8,23</Frame>
        <Frame>9,23</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_punchEnd" sprite="s_punchEnd" animTime="500" playOnState="PunchAnim.End">
        <Frame>0,23</Frame>
        <Frame>4,23</Frame>
        <Frame>3,23</Frame>
        <Frame>2,23</Frame>
        <Frame>1,23</Frame>
      </SpriteAnimation>
      <SpriteAnimation name="a_punchStart" sprite="s_punchStart" animTime="500" playOnState="PunchAnim.Start">
        <Frame>4,23</Frame>
        <Frame>0,23</Frame>
        <Frame>1,23</Frame>
        <Frame>2,23</Frame>
        <Frame>3,23</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>